Claude Code on the notch: fix interrupted sessions, add Vibe Island-style features
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 35/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Stack tecnologico
- electron, swift
- Ambito
- backend-api-design, desktop
Direzione di ricerca
Start with main/ipc/claude.ts, the related renderer/ session views, and main/ipc/claude.test.ts; read the hook protocol notes in CLAUDE.md before changing hook entries. Work through the interrupted-session fix and seven listed features in the suggested order, checking the existing session and transcript handling as you go. Done means the requested behaviors work in the Electron app and tests use a temporary CLAUDE_CONFIG_DIR; the native rewrite carryover is specified separately.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Compared against Vibe Island's feature list. Everything below is worth taking; everything else on their list is out of scope (see bottom).
Implement against the Electron app (main/ipc/claude.ts, renderer/) first. The native rewrite reuses the same hook protocol, so the native Claude spec (next number after 0032) should carry these over.
Fix
- Interrupted session stays "working" for up to 10 minutes. Pressing Esc in Claude Code sends no
Stophook.seen()setsworkingon any event and onlyStopclears it, so the only recovery is theWORKING_STALE_MStimeout (10 min,main/ipc/claude.ts:31,281). Use the transcript: if it has not changed for a few seconds and no permission request is pending, or the last entry is an interrupt marker, flip toidle. Vibe Island watches the transcript JSONL for the same reason.
Add (most value first)
- 1. Claude activity on the closed notch. Expand the notch sideways with a spinner while any session is
working, like music and the timer already do. State is already known. - 2. Sound when Claude is ready or needs you. Play a system sound on
Stopand on a new permission request or question. Settings: on/off plus a sound picker (None default off or Pop, to decide). - 3. "Allow always" on permission popups. A third button next to Allow and Deny. The
PermissionRequesthook reply can carryupdatedPermissions. Touchesmain/ipc/claude.ts:353and the request strip. - 4. Jump to the session's window. Cheap version only: activate the app that owns the session (VS Code, or the terminal) from a button on the session row, using the existing
source(cli/vscode). No tmux, yabai or Accessibility permission for now. - 5. Last "You:" message and "Needs your input" label on each session row. The transcript is already read for chat, and
waitingalready exists. - 6. Archive/dismiss a session row. Hide it from the list until it has new activity.
- 7.
PreCompact/PostCompactas a "compacting" state. Two more hook entries (hook entries must stay in sync with the live port, see CLAUDE.md "Easy to miss") and a fourth state shown on the row.
Not doing
Subagent tracking, per-tool chat renderers (diff, Grep, MCP, etc.), yabai, the long terminal list (Zed, Tabby, Rio, foot, st, urxvt and similar), Mixpanel analytics, a formal validated state machine, and the newer hook events (PostToolUseFailure, StopFailure, PermissionDenied). Markdown rendering in chat is a maybe, separate issue if wanted.
Notes
- Never touch the real
~/.claudein tests; pointCLAUDE_CONFIG_DIRat a temp folder (main/ipc/claude.test.ts). - Suggested order: the fix, then 1, 2, 3, then 5, 6, 4, 7.
- Lingua principale
- Swift
- Stelle
- 1
- Fork
- 1
- Merge medio
- 14m
- PR unite (30g)
- 15
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di thecharydev/catnotch
-
documentation good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 83/100
thecharydev/catnotch#41 ·
I maintainer di solito rispondono entro 1 giorno
-
documentation good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 87/100
thecharydev/catnotch#40 ·
I maintainer di solito rispondono entro 1 giorno
-
documentation good first issue
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 86/100
thecharydev/catnotch#39 ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement needs-triage
Difficoltà 3/5 1-2 giorni Idoneità per principianti 57/100
thecharydev/catnotch#51 ·
I maintainer di solito rispondono entro 1 giorno
-
bug needs-triage
Difficoltà 3/5 1-2 giorni Idoneità per principianti 67/100
thecharydev/catnotch#49 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di thecharydev/catnotch
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
I maintainer di solito rispondono entro 1 giorno
-
area:infra enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
axeslasher/Jelly-Shark#352 ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
abue-ammar/tinycast#1875 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
OneBusAway/onebusaway-ios#1658 ·
I maintainer di solito rispondono entro 1 giorno
-
clawsweeper:fix-shape-clear clawsweeper:queueable-fix clawsweeper:source-repro impact:ux-friction issue-rating: 🦞 diamond lobster no-stale P2
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
steipete/CodexBar#5048 · 1 commento · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno