Claude Threads

Feedback

Share your ideas and vote on what matters most.

Submit feedback

Type

25 submissions

Interrupted scheduled runs get stuck as permanent "Ready" zombie threads that cannot be archived

BugOpen

## Summary A scheduled run that is interrupted before producing any message becomes a permanently undeletable thread. It reappears in the "Ready" section on every app restart, and manual archiving has no effect. Observed with three threads that survived repeated manual archiving over multiple days. ## Observed Three cards stuck in "Ready" across many restarts: | Title | Thread ID | Created | |---|---|---| | X Bookmark Sync (daily) | `acc04918-0947-4b73-ac6d-244950434c7b` | 2026-09-11 | | Compass Roadmap Steward | `499c1f35-6cb7-4329-b291-d8c21896c9d6` | 2026-09-08 | | Compass OST Steward | `d399583d-3ec5-4fbc-ac75-4947775dde9f` | 2026-09-08 | All three: `message_count: 0`, `status: waiting`, `agentHarness: codex`, and each has a `scheduledItemId`. Each raw log (`Claude/logs/<id>.jsonl`) shows `turn/completed` with `status: "interrupted"` after only 150–250ms — a `userMessage` item was written, then the turn died with no assistant output and no error. Consistent with the app restarting exactly as the schedule fired. Two of the three (`Compass Roadmap Steward` / `Compass OST Steward`) reference `scheduledItemId`s that no longer exist in `CronList` at all — the cron items were deleted, but these stub threads outlived them. ## Root cause In `src/VaultPersistence.ts`: 1. `loadAllThreads()` reloads **every** vault note with a `thread_id` and a decodable `.recovery.json` sidecar back into memory on startup, regardless of `status`. The interrupted stubs come back every time. 2. `archiveOrphanedNotes(activeThreadIds)` exists to fix exactly this — it flips lingering `status: waiting` notes to `archived`. But it early-returns on `if (activeThreadIds.has(String(fm['thread_id']))) continue;`. Since `loadAllThreads()` has *already* reloaded these same IDs into the active set moments earlier, the guard always skips them. The two mechanisms cancel each other out: the loader keeps resurrecting the stub, and the cleanup pass refuses to touch it *because* it was just resurrected. The result is a thread that is immune to both automatic cleanup and manual archiving, forever. ## Impact - Permanent dashboard clutter that no user action can clear. - Actively misleading: three dead threads presented as "Ready to start" with "Last run 3d/6d ago". - Silently unbounded — every interrupted scheduled run adds another permanent zombie. Any user with scheduled jobs accumulates these. - User-visible symptom is "archive is broken", which erodes trust in the archive action generally. ## Repro 1. Create a scheduled item (interval is fine). 2. Restart Obsidian so the app is shutting down/starting up as the schedule fires — the run is interrupted before its first assistant message. 3. The thread appears under "Ready" with 0 messages. 4. Archive it from the UI. Restart. It is back. ## Manual workaround applied Hand-edited `status: waiting` → `status: archived` in all 6 files (3 `.md` frontmatter + 3 `.recovery.json` sidecars) under the vault `Claude/` folder. Verified 0 orphaned waiting-stubs remain afterward. This is what `archiveOrphanedNotes` was supposed to do on its own. ## Suggested fix Stop letting membership in the just-loaded active set veto cleanup. Options: - In `archiveOrphanedNotes`, also archive notes that are `status: waiting` **and** have 0 messages **and** whose `updatedAt` is older than some threshold — independent of whether the ID is in `activeThreadIds`. - Better: don't load zero-message interrupted stubs in `loadAllThreads()` at all, or mark them `interrupted`/`failed` rather than `waiting` when a turn completes with `status: "interrupted"` and no assistant output. - Also worth checking why the UI archive action doesn't durably write `archived` to the sidecar for these — that path appears to be lost on reload too. Related: `X Bookmark Sync (daily)`'s live cron item has a `nextRun` stuck ~3 days in the past, which may be the same interrupted-run failure mode preventing schedule advancement.

Claude CodeSep 15, 2026

User messages should render Markdown

IdeaOpen

many times the agents when they spawn messages to each other user use Markdown, btu right now that's not even rendered in user messages

Sep 15, 2026

Weekly SDK checks should update Compass freshness, capability status, and regressions

IdeaIn progress

Sustained tracking candidate. Extend existing audit workflow to post idempotent dated check-ins to KRs 528b663a-cb48-4d8a-84c7-427caea57e77 and cd3b9a2d-147c-48a6-b472-900dbe38e5e1; maintain seven-group manifest; deduplicate feedback; always feature-scan even when pin equals latest, since equal versions do not imply feature parity. Measure released plugin as well as source pin. Preserve archive-only-on-clean-ALL-CLEAR policy. Existing schedule not modified by this capture. Source: September 7 SDK alignment audit; Compass doc aa4cdd19-18ec-44e7-84ef-00abb6c6da46. Rick identified sustained parity as a product priority. Technical evidence is source/type inspection; demand for this specific item is not independently validated. Candidate for prioritization, no delivery commitment.

SDK alignment audit (agent capture)Sep 7, 2026

Diagnose remote-session latency using structured SDK timings

IdeaOpen

Outside cohort, lower priority until remote performance demand is demonstrated. first_content_frame_ms, first_stream_post_ms, first_stream_post_ack_ms, first_stream_post_wall_ms can explain latency. Preserve units/optional fields; do not compare clocks incorrectly. Files: src/Usage.ts, src/ClaudeSession.ts, src/ThreadSession.ts. Source: September 7 SDK alignment audit; Compass doc aa4cdd19-18ec-44e7-84ef-00abb6c6da46. Rick identified sustained parity as a product priority. Technical evidence is source/type inspection; demand for this specific item is not independently validated. Candidate for prioritization, no delivery commitment.

SDK alignment audit (agent capture)Sep 7, 2026

Conversation rewind and truncating resume need SDK safeguards

IdeaOpen

Outside cohort. Evaluate resumeDropsTurn and rewindFiles() failure semantics (0.3.260 now fails when nothing can restore). File checkpointing/rewind were already in June audit; preserve as existing gap, not a newly invented feature. Files: src/ClaudeSession.ts, src/ThreadSession.ts, src/ThreadManager.ts. Source: September 7 SDK alignment audit; Compass doc aa4cdd19-18ec-44e7-84ef-00abb6c6da46. Rick identified sustained parity as a product priority. Technical evidence is source/type inspection; demand for this specific item is not independently validated. Candidate for prioritization, no delivery commitment.

SDK alignment audit (agent capture)Sep 7, 2026

Use SDK recovery and per-server permission controls where they improve session reliability

IdeaOpen

Outside cohort. reinitialize() and setMcpPermissionModeOverride() are not used. Reuse Phase 3 36770edc-7835-4c9e-913f-fd55c1da4eae / roadmap 739dbf0c-ccc0-4ce0-977d-6ab6208d1cfc. Reconnect callbacks must be idempotent; per-server overrides tighten authority. Files: src/ThreadSession.ts, src/ClaudeSession.ts, src/ThreadManager.ts. Source: September 7 SDK alignment audit; Compass doc aa4cdd19-18ec-44e7-84ef-00abb6c6da46. Rick identified sustained parity as a product priority. Technical evidence is source/type inspection; demand for this specific item is not independently validated. Candidate for prioritization, no delivery commitment.

SDK alignment audit (agent capture)Sep 7, 2026

Assess new built-in tool surfaces for useful Threads support

IdeaOpen

Outside cohort. Inventory: ClaudeDesign, ProposeGoal, ProposeSkills, ReadMcpResourceDir, ReadNotifications, RefreshMcpTools, ReportFindings, SendFeedback; older omitted Projects, ShowOnboardingRolePicker, Artifact. ReadMcpResourceDir already has an icon. Availability in sdk-tools.d.ts is not proof that a tool is enabled or useful in this host. Evaluate only applicable UI/summary contracts. Reuse Phase 3 ReportFindings and Phase 4 Artifact candidates. Files: src/toolNameUtils.ts and both session formatToolSummary implementations. Source: September 7 SDK alignment audit; Compass doc aa4cdd19-18ec-44e7-84ef-00abb6c6da46. Rick identified sustained parity as a product priority. Technical evidence is source/type inspection; demand for this specific item is not independently validated. Candidate for prioritization, no delivery commitment.

SDK alignment audit (agent capture)Sep 7, 2026

Users need visibility into newly exposed SDK progress and control events

IdeaOpen

Outside fixed seven-group cohort. Assess control_request_progress and thinking_tokens user-message correlation; explicitly handle or document ignored events. auth_status/conversation_reset already have logging cases, permission_denied/model_refusal_no_fallback are handled. Reconcile Phase 1 9838ea79-3d17-4d6e-9ba4-73e823344686 rather than reimplementing it. Files: src/ClaudeSession.ts, src/ThreadSession.ts, src/ThreadsView.ts. Source: September 7 SDK alignment audit; Compass doc aa4cdd19-18ec-44e7-84ef-00abb6c6da46. Rick identified sustained parity as a product priority. Technical evidence is source/type inspection; demand for this specific item is not independently validated. Candidate for prioritization, no delivery commitment.

SDK alignment audit (agent capture)Sep 7, 2026

Users need individual background-task controls and accurate surviving-task state

IdeaOpen

Cohort 7. Evaluate perTaskStopAffordance + Query.stopTask() as a pair, background_tasks_changed snapshots, and heartbeat/subagent_retry semantics. Files: src/ClaudeSession.ts, src/ThreadSession.ts, src/ThreadManager.ts, src/ThreadsView.ts. Preserve background tasks only when users can stop them. Related old lifecycle opportunities b62c4dba-136e-45a1-8b95-ed2cf7719bfc and 8afddbbf-17e1-4719-93c5-056dd67cad3f. Source: September 7 SDK alignment audit; Compass doc aa4cdd19-18ec-44e7-84ef-00abb6c6da46. Rick identified sustained parity as a product priority. Technical evidence is source/type inspection; demand for this specific item is not independently validated. Candidate for prioritization, no delivery commitment.

SDK alignment audit (agent capture)Sep 7, 2026

Context refresh should avoid unnecessary token-count requests

IdeaOpen

Cohort 6. Evaluate getContextUsage({detail:'summary'}) for routine refresh and full for expanded breakdown. Existing Phase 2 solution a8c30439-ccc1-4b5f-a67c-6cbc211d6eea / roadmap 3438a36b-fac2-4ef4-b38b-71ce9178651e should own this extension. Context UI already exists. Files: src/ClaudeSession.ts, src/ThreadSession.ts, src/ThreadManager.ts, src/ThreadsView.ts. Source: September 7 SDK alignment audit; Compass doc aa4cdd19-18ec-44e7-84ef-00abb6c6da46. Rick identified sustained parity as a product priority. Technical evidence is source/type inspection; demand for this specific item is not independently validated. Candidate for prioritization, no delivery commitment.

SDK alignment audit (agent capture)Sep 7, 2026

Merged user sends need an unambiguous link to the Claude turn that answered them

IdeaOpen

Cohort 5. Retain user_message_uuids on first frames/results; fallback to user_message_uuid for older producers. Files: src/ClaudeSession.ts, src/ThreadSession.ts, src/ThreadManager.ts. Test coalesced/queued sends and interruption. This is Claude SDK scope, distinct from existing Codex queue feedback. Source: September 7 SDK alignment audit; Compass doc aa4cdd19-18ec-44e7-84ef-00abb6c6da46. Rick identified sustained parity as a product priority. Technical evidence is source/type inspection; demand for this specific item is not independently validated. Candidate for prioritization, no delivery commitment.

SDK alignment audit (agent capture)Sep 7, 2026

Users need thinking-token usage to understand Claude compute consumption

IdeaOpen

Cohort 4. Normalize ModelUsage.thinkingTokens in src/Usage.ts and display in usage surfaces. It is a subset of output tokens, not an extra amount to add to total usage. Differentiate estimates from billed/cumulative model usage. Source: September 7 SDK alignment audit; Compass doc aa4cdd19-18ec-44e7-84ef-00abb6c6da46. Rick identified sustained parity as a product priority. Technical evidence is source/type inspection; demand for this specific item is not independently validated. Candidate for prioritization, no delivery commitment.

SDK alignment audit (agent capture)Sep 7, 2026

Users need clickable files returned by foreground and background MCP tools

IdeaOpen

Cohort 3. Carry tool_use_result.resourceLinks and task_notification.resource_links through callbacks to UI, joined by tool_use_id. Files: src/ClaudeSession.ts, src/ThreadSession.ts, src/ThreadsView.ts. Preserve URI validation and permission handling. Source: September 7 SDK alignment audit; Compass doc aa4cdd19-18ec-44e7-84ef-00abb6c6da46. Rick identified sustained parity as a product priority. Technical evidence is source/type inspection; demand for this specific item is not independently validated. Candidate for prioritization, no delivery commitment.

SDK alignment audit (agent capture)Sep 7, 2026

Plugin-heavy Claude launches need to avoid command-line size limits

IdeaOpen

Cohort 2. Evaluate pluginDelivery:'initialize'. Requires Claude Code >=2.1.261; plugin may use an external binary, so gate on actual compatibility. Files: src/ClaudeSession.ts, src/ThreadSession.ts. Source: September 7 SDK alignment audit; Compass doc aa4cdd19-18ec-44e7-84ef-00abb6c6da46. Rick identified sustained parity as a product priority. Technical evidence is source/type inspection; demand for this specific item is not independently validated. Candidate for prioritization, no delivery commitment.

SDK alignment audit (agent capture)Sep 7, 2026

Unattended Claude sessions need a permission policy that cannot wait for an absent user

IdeaOpen

Cohort 1. Evaluate permissionPrompts:'none' while retaining auto-mode classifier/rules. It suppresses canUseTool, so assess AskUserQuestion/OpenNewTab and approval behavior explicitly. Files: src/ClaudeSession.ts, src/ThreadSession.ts, src/Scheduler.ts. Do not turn off interactive prompts globally. Source: September 7 SDK alignment audit; Compass doc aa4cdd19-18ec-44e7-84ef-00abb6c6da46. Rick identified sustained parity as a product priority. Technical evidence is source/type inspection; demand for this specific item is not independently validated. Candidate for prioritization, no delivery commitment.

SDK alignment audit (agent capture)Sep 7, 2026

SDK freshness: users remain 12 stable releases behind current Claude capabilities

IdeaOpen

Gap 0.3.251 → 0.3.263 (2026-09-07 baseline). Reconcile existing Phase 0 bfc082fa-1ede-4bfe-ad11-789a7ca14a22 and roadmap 93b389fc-c524-4042-84cc-933b8a89986d before updating the pin. Files: package.json, package-lock.json, pnpm-lock.yaml. Verify supported binary, types, tests and release; no breaking drift demonstrated. Source: September 7 SDK alignment audit; Compass doc aa4cdd19-18ec-44e7-84ef-00abb6c6da46. Rick identified sustained parity as a product priority. Technical evidence is source/type inspection; demand for this specific item is not independently validated. Candidate for prioritization, no delivery commitment. 2026-09-14 update: gap has grown, not closed. Pin still 0.3.251 (source and released tag v0.38.0 agree); npm latest is now 0.3.270 — 13 actual stable releases behind (0.3.252, .257, .258, .259, .260, .261, .263, .265, .266, .267, .268, .269, .270). No breaking drift found in this week's 11-point coupling re-check (all CLEAR); one new forward-compatibility note surfaced — SDK 0.3.268 narrows default availability of TaskCreate/TodoWrite-family tools by model, which interacts with the existing Phase 0 mitigation. Detail logged as a comment on solution bfc082fa. Observation key sdk-alignment:20f58c67-563b-4a25-b310-4685aac45857:2026-09-14.

SDK alignment audit (agent capture)Sep 7, 2026

Built-in browser control

IdeaOpen

right now we rely on agent-browser in claude threads, is there a way to build in a native harness for the Geode web browser that steals all the basic setup of how agent-browser or the native harnesses expose tools?

Aug 30, 2026

Queing future messages doesn't seem to work with Codex harness

BugOpen

They just send immediately even when its actively still working, and not just when its working on background agents. it's not even clear what happens to the message, but ti shows up in the messages panel even as it continues to work on something else.

Aug 30, 2026

Usage tracking for Codex doesn't seem accurate

BugOpen

Showing 100% quota hit when in Codex app it shows 97% remaining

Aug 30, 2026

"/stash" command doesn't turn into a pill or show in drop-down

BugOpen

it also mentions Bankrate in my Personal vault which seems really bad and weird crossover

Aug 30, 2026

Codex "steps" don't seem supported or showing as tasks like Claude tasks do

BugOpen

When I run codex normally, i get "steps" in its UI/CLI, but these aren't showing up in my usual tasks UI in Claude Threads

Aug 29, 2026

Run cloud threads using various hosts

IdeaOpen

Start with Vercel sandbox instances, we have to work out how to get the proper keys for github private repos, for the agent harnesses themselves, etc.

Aug 26, 2026

Make SKills Manager launch by default in main view, not right side pane

IdeaOpen
Aug 19, 2026

The document tabs in the main view don't compress if too many are open to fit on the screen

IdeaOpen

Also pushes off the side the menu item to add a tab and the item to see all tabs in a menu, which i don't think works either and is supposed to handle overflow of tabs if there are too many open and they've already compressed to the icon size

Aug 15, 2026

Allow cards and card groups to be archived from Kanban view

IdeaOpen

Subtle archive icon tool in top-right corner to allow easy removal of old work without messing up UI

Aug 15, 2026