anthropics / anthropics/claude-code
[BUG] Delivered mobile push notifications are never revoked once the session has moved on (re: #76900)
- 主要语言
- 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