anthropics / anthropics/claude-code

[BUG] Delivered mobile push notifications are never revoked once the session has moved on (re: #76900)

未关闭
#92,528 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
bug has repro platform:ios
主要语言
Python
星标
145k
派生
23.1k
PR 合并指标
PR 指标待抓取

描述

## Summary

Push notifications delivered to the iOS Claude app are never withdrawn. When a session pushes "Claude has a question" and the question is then answered on another device — or the session simply moves past that point — the notification stays in the iOS notification center indefinitely and has to be swiped away by hand.

This is a re-file of **#76900**, which had a confirmed repro and carried `bug` / `has repro` / `platform:ios`, but was closed `not planned` by the stale bot on 2026-09-03 with no human response. The bot's closing message invites a new issue if the problem is still relevant. It is: I hit it daily on 2.1.231.

## Steps to reproduce

1. Run one or more sessions with mobile push enabled (`inputNeededNotifEnabled: true`, `agentPushNotifEnabled: true`).
2. Let a session reach a point where it needs input. A push arrives on the iPhone.
3. Answer it on the desktop — the session continues and no longer needs anything.
4. Look at the phone's lock screen.

## Expected

The notification is withdrawn on the other devices once the session no longer needs input, the way multi-device messaging apps revoke a notification after it is acted on elsewhere. APNs supports both mechanisms: `apns-collapse-id` to coalesce per session, and a Notification Service Extension to remove already-delivered notifications.

## Actual

Every notification ever pushed is still on the lock screen. Tapping one opens a session that is long past that question. Running several sessions a day, the lock screen becomes a wall of questions that were all resolved hours ago — and because none of them are actionable, the ones that *are* stop being noticed. That is the real cost: the notification channel loses its signal.

Two consequences worth separating:

- **No revocation** — an answered question's notification is never removed.
- **No coalescing** — a single session that asks several times leaves one notification per question, rather than one live notification per session.

## Environment

- Claude Code 2.1.231
- macOS 26.6.2 (25G83), arm64
- iOS Claude app, current App Store build
- `~/.claude/settings.json`: `inputNeededNotifEnabled: true`, `agentPushNotifEnabled: true`

## Note

Distinct from the "push not delivered" reports (#60208, #50949, #30592) — delivery works fine here; revocation is what is missing.

Minor, and a change since #76900 was filed: **neither** `inputNeededNotifEnabled` nor `agentPushNotifEnabled` appears in the settings reference at https://code.claude.com/docs/en/settings.md any more. #76900 noted only the first as undocumented; both are now absent, while both still have an effect.

贡献指南

这个仓库没有索引到贡献指南

调研方向

The issue names no repository files or tests; start by reproducing the flow with inputNeededNotifEnabled and agentPushNotifEnabled in ~/.claude/settings.json, then locate the push-notification path for input-needed events. Done means resolved notifications are withdrawn or coalesced across devices, and the two settings are checked against docs/en/settings.md.

由索引模型根据 Issue 内容生成。

评估

技术栈
ios, python
领域
backend, mobile-dev
Issue 类型
缺陷
难度
5/5
预计耗时
一周以上
活跃度
活跃
描述清晰度
基本清楚
新手友好度
35/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。