anthropics / anthropics/claude-code

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

オープン
#92,528 コメント 0 件 リアクション 0 件 担当者 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
見積もり時間
1週間以上
活発さ
活発
明瞭さ
おおむね明確
初心者へのやさしさ
35/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。