Skip to content

return to agents view when leaving a subagent opened from it - #271

Merged
kevinjosethomas merged 11 commits into
mainfrom
eng-4255
Jun 29, 2026
Merged

return to agents view when leaving a subagent opened from it#271
kevinjosethomas merged 11 commits into
mainfrom
eng-4255

Conversation

@kevinjosethomas

@kevinjosethomas kevinjosethomas commented Jun 26, 2026

Copy link
Copy Markdown
Member
  • opening a subagent from the agents view and pressing back dropped you into the parent agent's chat instead of the agents view you came from.
  • the session now remembers it was launched straight into a subagent detail and returns to the agents view on back, while subagents opened from within a chat still go back to that chat.
  • the back hint reads "back to agents" in that case so the destination is clear.

Note

Low Risk
UI navigation and agents-view state restoration only; no auth, daemon protocol, or data-model changes beyond optional fields on existing result types.

Overview
Fixes navigation when you open a subagent from the agents view: Back now returns to the agents list instead of the parent agent chat.

The agents view persists an ancestor session-id chain when opening a subagent and, on return, re-expands nested subagent rows and reselects that subagent (session ids are used so expansion survives identity changes when a parent goes active→persisted).

In interactive mode, sessions launched from the agents view with returnToAgentsView set a flag when entering via initialSubagentNodeId; Back from subagent detail calls returnToAgentsView() instead of closing only the panel. ChildAgentDetailComponent gets a configurable back hint ("back to agents" vs default "back to chat").

Adds a test that nested subagents only appear after both parent levels are expanded.

Reviewed by Cursor Bugbot for commit ec8cfa5. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Return to agents view when leaving a subagent opened from it

  • When a subagent is opened from the agents view, the ancestor session ID chain is stored in persistent state so the agents view can restore expansion and selection on return.
  • applyPendingAncestorExpansion walks the stored session IDs, expands matching parent rows, and rebuilds the row list until all ancestors are visible.
  • The back hint label in ChildAgentDetailComponent is now configurable, showing 'back to agents' when entered via the agents view and 'back to chat' otherwise.
  • InteractiveMode tracks entry path via enteredSessionViaSubagentDetail and routes onCancel back to the agents view when appropriate.

Macroscope summarized ec8cfa5.

@linear

linear Bot commented Jun 26, 2026

Copy link
Copy Markdown
ENG-4255 Opening subagents from Agents View and returning should open Agents View

Opening subagents from Agents View and returning should open Agents View, while it currently opens the chat view of the parent agemt

Review in Linear

Comment thread packages/coding-agent/src/modes/interactive/interactive-mode.ts
Comment thread packages/coding-agent/src/modes/agents-view/agents-view-mode.ts
Comment thread packages/coding-agent/src/modes/agents-view/agents-view-mode.ts
Comment thread packages/coding-agent/src/modes/agents-view/agents-view-mode.ts
Comment thread packages/coding-agent/src/modes/agents-view/agents-view-mode.ts
Comment thread packages/coding-agent/src/modes/agents-view/agents-view-state.ts Outdated

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 1b5fc76. Configure here.

Comment thread packages/coding-agent/src/modes/agents-view/agents-view-mode.ts
@kevinjosethomas
kevinjosethomas merged commit f0b6c53 into main Jun 29, 2026
3 checks passed
@kevinjosethomas
kevinjosethomas deleted the eng-4255 branch June 29, 2026 20:49
zhengr pushed a commit to zhengr/prime-agent that referenced this pull request Aug 8, 2026
…tellect-ai#271)

* return to agents view when leaving a subagent opened from it

* drop explanatory comments

* reset subagent-entry state when an extension swaps the editor

* restore subagent selection and expansion when returning to agents view

* expand full ancestor chain when returning to a nested subagent

* stop persisting transient subagent expansions across agents-view re-entry

* key subagent ancestor breadcrumb by stable sessionId

* resolve subagent ancestor breadcrumb to identities, keep expansion identity-keyed

* trim comments

* expand nested ancestors iteratively so deep subagents are revealed
thomaswillner pushed a commit to thomaswillner/prime-agent that referenced this pull request Aug 29, 2026
…rimeIntellect-ai#271 remains

Closes the record for this session.

- All five briefed PRs merged (PrimeIntellect-ai#268, PrimeIntellect-ai#263, PrimeIntellect-ai#270, PrimeIntellect-ai#269, PrimeIntellect-ai#273); main is c84855d.
  Issues PrimeIntellect-ai#266 and PrimeIntellect-ai#272 closed by their PRs. PrimeIntellect-ai#271 is the only open brief and
  was never authorised, so never started. Runtime testing is unblocked.
- The CI outage (13:51Z-15:47Z) was account-level and hit main identically;
  recovery was visible as `changes` taking 9s with real steps instead of 2s
  with none. Nothing in the diff ever needed changing.
- Records the scope misjudgement worth carrying forward: a Codex P1 mapped
  directly to an acceptance checkbox I had deferred as out of scope. When a
  finding maps to an acceptance criterion it is in scope by definition.
- Records the auto-merge hazard: squash composes the commit message from the
  PR body, so a body left stale after a review round writes false claims into
  main permanently. Rewrite the body before merge; keep corrections visible.
- Records a published test claim that had not been executed, and the rule
  that follows from it.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G5B7QM1QLQuWSBMCxiCzS6
thomaswillner pushed a commit to thomaswillner/prime-agent that referenced this pull request Aug 29, 2026
Records, without editing the now-false text away, that sections 9 and 4 went
stale five hours after they were written. The correction matters more than the
content: this file exists to stop sessions trusting notes over GitHub, and it
caught its own author.

- main is 8d2139c. Between 16:12Z and 21:54Z the fleet merged PrimeIntellect-ai#279 (the PrimeIntellect-ai#58
  alert-bridge race, FIXED — stop carrying it as a standing exception), PrimeIntellect-ai#278
  (AGENTS.md invariants), PrimeIntellect-ai#283 (repo cleanup), and PrimeIntellect-ai#284, which delivered the
  last brief and closed PrimeIntellect-ai#165 with a keyword.
- Section 3's routing conclusion was confirmed by events: PrimeIntellect-ai#271 was delivered
  by the Mac maker fleet via auto-dispatch, exactly as argued, and the remote
  session correctly declined to open a second lane.
- Flags issue-state drift: PrimeIntellect-ai#271, PrimeIntellect-ai#276 and PrimeIntellect-ai#274 are delivered and merged yet
  still open, because a title reference is not a closing keyword. That is the
  mirror image of the hazard the V2 CLAUDE.md documents, and it leaves
  open-work disagreeing with main. Operator action, named as such.
- Records the residual PrimeIntellect-ai#284 deferred on stated grounds (PrimeIntellect-ai#286), which is a
  known open edge on the LIVE path.
- States the next slice: S4 / PrimeIntellect-ai#236, the first whose exit criteria need a real
  broker order. Certification stays 0/12; the system has never placed a trade.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G5B7QM1QLQuWSBMCxiCzS6
thomaswillner added a commit to thomaswillner/prime-agent that referenced this pull request Aug 29, 2026
…e-notes lesson (#13)

* docs(spx-v2): verification pass, queue state, and self-refinement record

No code written this session — a verification pass over already-delivered
work plus the queue-state answer.

Records, so future sessions do not repeat them:

- The audit-challenge / V1-coverage / rag-tot-cot-challenge / corrected-input
  deliverable ALREADY EXISTS (AUDIT_CHALLENGE sections A-D and
  PRIME_AGENT_INPUT_SPX_V2). An operator prompt has now asked for it in at
  least two sessions; redoing it is inventing work.
- Verified queue state from GitHub: PrimeIntellect-ai#266/PR PrimeIntellect-ai#268 merged (and PrimeIntellect-ai#263 with it,
  now main f64029a); PrimeIntellect-ai#265/PR PrimeIntellect-ai#269 and PrimeIntellect-ai#264/PR PrimeIntellect-ai#270 open with CI in flight;
  PrimeIntellect-ai#272 and PrimeIntellect-ai#271 filed, unstarted, no lane.
- Errors and corrections: settle elapsed time from GitHub workflow-run
  timestamps, never the container clock; add_repo push access was
  classifier-denied so a remote session may hold read-only and cannot push;
  register_repo_root denial falls back to reading CLAUDE.md directly.
- MATS/superpowers/routing settled empirically with the exact commands used,
  so the search is not repeated: they are Mac-harness resident, and PrimeIntellect-ai#272/PrimeIntellect-ai#271
  already carry auto-dispatch, which is what routes them to the maker fleet.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G5B7QM1QLQuWSBMCxiCzS6

* docs(spx-v2): implementation-session addendum — access, setup, CI outage, self-review

Appends the second half of the session to the notes: implementing PrimeIntellect-ai#272 after
the operator corrected two access assumptions.

The corrections matter more than the code:
- push DOES work; "I cannot push" was inferred from add_repo's access label
  rather than tested. A dry-run push proved it. Also: the refspec push form is
  classifier-denied while `git push -u origin <branch>` succeeds.
- this host is not the MacBook (uname, no /Users, no ~/.prime).

Also records the environment setup the Makefile assumes (venv before
v2-install, ruff 0.15.22 via python -m, seeding the gitignored account.yaml,
and proving PYTHONPATH beats editable installs in a worktree), the method that
diagnosed the repo-wide CI outage in two calls (zero recorded steps, then the
same workflow red on main), and two test defects self-review caught before
pushing.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G5B7QM1QLQuWSBMCxiCzS6

* docs(spx-v2): final queue state — PrimeIntellect-ai#273 merged, only PrimeIntellect-ai#271 remains

Closes the record for this session.

- All five briefed PRs merged (PrimeIntellect-ai#268, PrimeIntellect-ai#263, PrimeIntellect-ai#270, PrimeIntellect-ai#269, PrimeIntellect-ai#273); main is c84855d.
  Issues PrimeIntellect-ai#266 and PrimeIntellect-ai#272 closed by their PRs. PrimeIntellect-ai#271 is the only open brief and
  was never authorised, so never started. Runtime testing is unblocked.
- The CI outage (13:51Z-15:47Z) was account-level and hit main identically;
  recovery was visible as `changes` taking 9s with real steps instead of 2s
  with none. Nothing in the diff ever needed changing.
- Records the scope misjudgement worth carrying forward: a Codex P1 mapped
  directly to an acceptance checkbox I had deferred as out of scope. When a
  finding maps to an acceptance criterion it is in scope by definition.
- Records the auto-merge hazard: squash composes the commit message from the
  PR body, so a body left stale after a review round writes false claims into
  main permanently. Rewrite the body before merge; keep corrections visible.
- Records a published test claim that had not been executed, and the rule
  that follows from it.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G5B7QM1QLQuWSBMCxiCzS6

* docs(spx-v2): correct the queue state — the last brief landed while idle

Records, without editing the now-false text away, that sections 9 and 4 went
stale five hours after they were written. The correction matters more than the
content: this file exists to stop sessions trusting notes over GitHub, and it
caught its own author.

- main is 8d2139c. Between 16:12Z and 21:54Z the fleet merged PrimeIntellect-ai#279 (the PrimeIntellect-ai#58
  alert-bridge race, FIXED — stop carrying it as a standing exception), PrimeIntellect-ai#278
  (AGENTS.md invariants), PrimeIntellect-ai#283 (repo cleanup), and PrimeIntellect-ai#284, which delivered the
  last brief and closed PrimeIntellect-ai#165 with a keyword.
- Section 3's routing conclusion was confirmed by events: PrimeIntellect-ai#271 was delivered
  by the Mac maker fleet via auto-dispatch, exactly as argued, and the remote
  session correctly declined to open a second lane.
- Flags issue-state drift: PrimeIntellect-ai#271, PrimeIntellect-ai#276 and PrimeIntellect-ai#274 are delivered and merged yet
  still open, because a title reference is not a closing keyword. That is the
  mirror image of the hazard the V2 CLAUDE.md documents, and it leaves
  open-work disagreeing with main. Operator action, named as such.
- Records the residual PrimeIntellect-ai#284 deferred on stated grounds (PrimeIntellect-ai#286), which is a
  known open edge on the LIVE path.
- States the next slice: S4 / PrimeIntellect-ai#236, the first whose exit criteria need a real
  broker order. Certification stays 0/12; the system has never placed a trade.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G5B7QM1QLQuWSBMCxiCzS6

---------

Co-authored-by: Claude <noreply@anthropic.com>
thomaswillner added a commit to thomaswillner/prime-agent that referenced this pull request Aug 29, 2026
…pshots (#14)

The orchestration folder had grown five point-in-time documents, three of
which asserted a queue state main had moved past — including a table calling
PrimeIntellect-ai#271 and PrimeIntellect-ai#272 "NOT STARTED" after both had merged, and one file whose own
addendum contradicted its body. That is actively misleading to any reader,
human or model, and it is the opposite of what these documents are for.

Removed (git history keeps them; nothing referenced them):
- SESSION_NOTES_2026-08-29_QUEUE_266_265_264.md  — every row now false
- SESSION_NOTES_2026-08-29_VERIFICATION_AND_QUEUE_STATE.md — self-contradicting
- SESSION_LEARNINGS_2026-08-28.md — date-stamped; content folded into LESSONS.md

Added:
- STATE.md   — short, current, maintained. Says GitHub outranks it and that a
  disagreement means this file is stale. Carries slice status, the three things
  only the operator can do, and the facts that keep getting re-derived.
- LESSONS.md — the durable, non-time-bound lessons from all three removed files,
  deduplicated. Explicitly does not keep session snapshots.

Updated:
- PRIME_AGENT_INPUT_SPX_V2.md — status banner: still the input of record, but
  its section 2 ground truth is dated and S0-S3 are merged.
- AUDIT_CHALLENGE_2026-08-28.md — marked a frozen historical record, with why
  it is kept and which sections still answer live questions.

Net: five files to four, 921 lines to 623, and nothing left that contradicts
main. All internal links verified to resolve.


Claude-Session: https://claude.ai/code/session_01G5B7QM1QLQuWSBMCxiCzS6

Co-authored-by: Claude <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant