Track and reopen threads started from roadmap items - #970
Conversation
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 2ce65ed. Configure here.
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: serverGenReqId_8634257c-6eb0-4a47-9ebd-3745f4c977a4) |
Merge conflict needs a human
|
|
Heads-up: this branch has merge conflicts with current main (post #991/#992/#999 CI fixes + roadmap changes). The e2e instability that was failing CI here is addressed on main — after resolving conflicts and updating, CI should be meaningfully greener. Conflicting areas: source files (not just screenshots), so resolving needs feature context. |
"Start thread" now stamps the created thread's id into the item's `thread` frontmatter field (new roadmap:setThread IPC). While that thread still exists, the editor offers a "Reopen thread" button and the list row shows a clickable thread chip; both switch back to the tracked thread instead of starting a fresh one. Restamping on a later Start thread points the field at the newest thread, and a deleted thread simply hides the affordances. Both controls are hidden in pop-out windows (no chat pane to land in), and the pane re-renders on threads_changed so chip/button visibility follows thread create/delete without an IPC round-trip. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016hBquXgJpTb5JHQTEsurLg
4d8e4bd to
6eeccd4
Compare
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: serverGenReqId_cad19d0e-d616-445f-a52e-806cf1575bb0) |
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: serverGenReqId_8ab6996e-3bfa-4eb6-ac7e-76fa112857e2) |
There was a problem hiding this comment.
Not approving: Cursor Bugbot skipped on the latest commit, so automated review is incomplete for this sync. The earlier Bugbot finding is resolved and CI is green, but human review is still needed before merge. AutomatedTester is already requested as reviewer.
Sent by Cursor Approval Agent: Pull Request Router and Approver
There was a problem hiding this comment.
Stale comment
PR health — auto-merge kept
Roadmap thread track/reopen has component + e2e coverage (
roadmap-thread-reopen.e2e.ts). Auto-merge already on. Tip CI is queued — not retriggering. ~11 behindmain; rebase after the in-flight suite finishes if still blocked.Sent by Cursor Automation: Check in with agent-pane prs
Resolve roadmap-pane list-row conflict by keeping both the tracked-thread reopen chip (this PR) and the ✓/↺ status toggle from main.
There was a problem hiding this comment.
PR health fleet check (trigger: this PR’s CI success)
Tip 6a44cdaa is MERGEABLE with auto-merge on (sibling already resolved the roadmap-pane conflict vs main’s ✓/↺ status toggle). Tip CI is mid-flight (precheck/autoformat/CodeQL pending) — not retriggering.
Actions this run
- #1051 — real
prechecklint failure (no-unnecessary-conditionon stream-cut test assertions). Pushed tip92f1e509; auto-merge kept; new CI pending. - This PR (#970) — left alone (already unblocked + AM; CI running).
Left alone (intentional / already handled)
- AM ready set (
#812,#900,#920,#956,#1023,#1031,#1035,#1041,#1047,#1048,#1049,#1050, …) — auto-merge already on; tip CI queued or green; no idle retriggers. - #1035 —
check/CI Passedstill infra-red (CHECKS_RUNNER kill mid-coverage:ci); e2e green; AM kept; not re-running into the queue backlog. - Worktree stack
#1037→#1040→#1043→#1046— tips green/CLEAN where settled; leaving draft until parent#1035lands. - Intentional drafts:
#840,#841,#1006,#1038(TS7 toolchain),#1044(superseded by#1050). - #978 / #989 — still CONFLICTING;
#978needs human rewrite vs#814publisher-onlyrelease-mac.yml(already tagged @jonathanKingston).#989spike — leave draft.
No additional drafts marked ready; no medium/high-confidence undrafts beyond the existing AM set.
Sent by Cursor Automation: Check in with agent-pane prs



Summary
This PR adds the ability to track chat threads started from roadmap items and quickly reopen them later. When a user clicks "Start thread" on a roadmap item, the thread ID is persisted in the item's
threadfield. The pane then offers a "Reopen thread" button and a visual chip on the row to jump back to that thread without creating a new one.Key Changes
Thread tracking on start: When "Start thread" is clicked, the created thread ID is stamped onto the item via a new
roadmap:setThreadIPC handler that updates the item'sthreadfield.Reopen button and chip:
Thread lifecycle handling: The pane re-renders when threads are created/deleted (via
threads_changedstore event) to update button visibility and chips.Graceful fallbacks:
Test coverage: Added comprehensive unit tests covering the happy path, thread deletion, chip interaction, and an e2e test validating the full workflow.
Implementation Details
itemThreadId()helper extracts the thread field from an itemgetThreadById()andswitchThread()helpers from thread-helpers are used to validate and switch threadssetThreadAPI call is best-effort; a failed stamp only costs the Reopen shortcutstopPropagation()to prevent row selectionhttps://claude.ai/code/session_016hBquXgJpTb5JHQTEsurLg
Note
Low Risk
Localized roadmap UI and knowledge-note frontmatter updates; IPC is validated and scoped to Roadmap notes with no auth or data-model breakage.
Overview
Roadmap items can now remember the chat thread created via Start thread and let users jump back without spawning another thread.
Start thread persists the new thread id on the item through a
roadmap:setThreadIPC handler (stored in frontmatterthread). Starting again from the same item overwrites that pointer with the latest thread. The pane adds Reopen thread, a list-row thread chip (keyboard-activatable, does not select the row), and refreshes reopen UI onthreads_changedwhen threads are created or deleted. Reopen usesswitchThread; if the tracked thread is gone, controls hide and the user gets an error suggesting Start thread again.Pop-out roadmap windows hide start/reopen/chip (no chat pane). Editor actions use a 3-column grid so buttons don’t clip. Unit and e2e tests cover stamping, reopen, missing thread, and chip behavior.
Reviewed by Cursor Bugbot for commit 9d6f860. Bugbot is set up for automated code reviews on this repo. Configure here.