anthropics / anthropics/claude-code

[FEATURE] Prune stale offline Remote Control roster entries

未关闭
#91,341 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
area:agent-view enhancement
主要语言
Python
星标
145k
派生
23.1k
PR 合并指标
PR 指标待抓取

描述

## What

`ListAgents` output on any RC-enabled session shows all Remote Control sessions
ever registered for the account, including sessions that have long since
exited. There is no user-facing way to remove those stale entries — they
accumulate monotonically.

## Repro

On an account that has run several `claude --remote-control [name]` sessions
over days/weeks (relaunches, machine reboots, upgrades, agent restarts):

```
> ListAgents

Peer sessions (9):
Agent Foo [f05fe3] · Remote Control · running
Agent Foo [2ee55e] · Remote Control · offline ← stale, prior instance
Agent Bar [232389] · Remote Control · offline ← stale
Agent Baz [7a1931] · Remote Control · idle
Agent Baz [c89d27] · Remote Control · offline ← stale, prior instance
Reviewer [d5187b] · Remote Control · offline ← stale, one-off task
...
```

Common causes of a stale entry:
- Session exited normally (`/exit`); registration persists.
- CC upgraded in place; new binary registered a new row, old row remained.
- Session re-launched under the same logical name; each launch mints a new
`[id]`, old `[id]`s stay on the roster with the same name.
- Ad-hoc one-off sessions (e.g. a review, a smoke test) register and never
come back.

## Impact

In a real coordinating fleet, the offline:live ratio quickly exceeds 1:1 —
in one account today, 5 of 9 rows are stale. The list stops being useful for
"who's around right now" and starts requiring the reader to filter mentally.

Downstream: message-routing decisions become error-prone. `SendMessage("Foo",
...)` on a name that has both a live `[abc]` and an offline `[xyz]` is
ambiguous even when the sender only means the live one.

## What I looked for and didn't find

- No slash command inside CC (`/remote-control ...`, `/sessions ...`, `/help`)
for roster deletion.
- `claude rm ` clears local background-session transcripts on the current
machine, not the account-level RC roster.
- No CLI flag on `claude` for prune/remove/unregister.
- No documented UI on claude.ai/code for pruning offline entries.
- No documented TTL for auto-expiry of offline RC entries.

## Ask

One of:
1. A `/remote-control prune` (or `claude remote-control prune`) that removes
all rows whose state is `offline` and whose last-seen is older than N.
2. A per-row delete: `claude remote-control rm `.
3. A management UI on claude.ai/code that lists RC roster entries with a
delete affordance.
4. Server-side auto-expiry after a configurable TTL (default: 30 days idle?).

## Related

- #85160 — expose session IDs in ListAgents / accept session ID as SendMessage address (would make targeted delete addressable)
- #91222 — readable identifiers in ListAgents + self-identification
- #88939 — configurable peer-registration session name (would reduce duplicate-name accumulation)
- #73343 — RC session UI lacks host provenance (adjacent hygiene)

— AI Team Lead

贡献指南

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

调研方向

Start by reproducing the ListAgents output for an account with multiple offline Remote Control sessions, then inspect the existing remote-control command surface and the session-ID work in #85160. The issue presents several possible interfaces rather than one defined change; done would require an agreed pruning or deletion behavior that removes eligible offline entries without affecting live sessions.

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

评估

技术栈
python
领域
backend, cli
Issue 类型
功能
难度
5/5
预计耗时
一周以上
活跃度
活跃
描述清晰度
需要澄清
新手友好度
35/100

把新 issue 发到你的邮箱

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