Wave 1 — the multi-agent console (#909) - #1008
Merged
Merged
Conversation
One direction across multi-agent console, streaming, F-graph/Environments, BYOK, MCP, sandbox, v2 remote. Waves with explicit triggers; decision log; plan folders demoted to subordinate detail. Grilled decision-by-decision with the owner before authoring. Co-Authored-By: Claude Opus 5 (1M context) <[email protected]> Claude-Session: https://claude.ai/code/session_01NxQWirpWsYV5Y6Tz8Txy5i
docs: DIRECTION.md — the one sequencing spine (owner-ratified waves)
#909 fix(agent): make CSS builds CWD-independent
#909 feat(front): address the browser wire per agent
#909 feat(console): multi-agent switcher, grouping, presence
#909 re-land native session adoption and rename menu
#909 fix(workspace): show multi-agent chats side by side
… actions UI Review's mobile hard gate flagged the new per-agent New chat row (20px tall) and its split-pane icon affordance (14x24px) as below the minimum tappable size. Bump the row and icon buttons to 44px (h-11 / size-11) on mobile/touch and keep the existing compact desktop sizing (sm:h-8 / sm:size-6, hover-reveal) so the split/quick-chat affordance is always reachable on touch instead of only on :hover.
Primary per-agent creation replaced the active pane whenever the selected agent was non-empty. Creating Beta while Alpha streamed therefore unmounted Alpha and dropped its transcript and live connection.\n\nResolve the active pane from retained pane ids and insert the new session when its owner differs, while preserving same-owner replacement semantics.
Bead: wt-391-forward-0jpy.32
Owner
Author
Ownership update — whole-diff review loopI reconciled the final branch with missing constituent PR #1007 and pushed review fixes at Whole-diff findings fixed
Proof
Remaining merge blockerEquivalent rebuilds can still change the persisted runtime identity because v1 conflates semantic compatibility with package/deployment bytes. The isolated stacked fix is implemented at I will not request #1008 merge until that blocker and the Wave 1 exit-bar PRs complete their review/proof loops. |
#909 merge: reconcile Wave 1 with latest main
hachej
added a commit
that referenced
this pull request
Jul 31, 2026
Revert "Merge pull request #1008 from hachej/integration/wave-1-final"
This was referenced Jul 31, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Wave 1 — the multi-agent console
Delivers Wave 1 of
docs/DIRECTION.md: multiple agents coexisting in oneworkspace, each with the same capabilities a single agent has today. 17 PRs already reviewed and
merged onto the integration branch; this is the whole wave landing on
mainas one unit.103 files changed, +10511 / -1493vsmain.What changes for a user
session list filtered by agent, not a session tree nested under each agent.
+ ⧉ ⚡actions. The row itself is not clickable; onlythe icons are.
of a bare status code, and sessions orphaned by a restart go read-only rather than vanishing.
What changes underneath
The browser is addressed per agent (
/api/v1/agents/{agentTypeId}/sessions/...) rather than goingthrough the legacy single-agent wire. Native session adoption and rename are re-landed on that
addressed wire, after the earlier attempt (#811) was reverted for three regressions.
Verification
--no-file-parallelism)200/200/421 AGENT_HOST_SCOPE_VIOLATIONGET /api/v1/agents, real auth202,PARITY_OKin session stateThe P0 triple is the bug that made the full-app UI unusable: case 1 is what the browser actually
sends, case 3 proves a genuinely foreign scope is rejected with the right status rather than the
500 that a missing
statusCodealias used to produce.An earlier agent-suite run showed 6 timeout failures under load average 74. Re-run serially at
load 1.9 on the same code: fully green. No non-timeout failure ever appeared.
Reviewer notes — two things NOT proven
across the entire model-policy path (
buildAgentComposition.ts,createHarness.ts,models/,realAgentFleet.ts) across all 9 merge commits, so it cannot have changed. That is soundreasoning about the merge — it is not the same as watching two agents answer on two different
models.
exactly what per-PR review is blind to, and this wave rewired the left pane, the session wire,
and the agent host in different PRs. A review of the combined diff is the remaining gap.
Found along the way (filed, not fixed here)
pnpm --filter full-app migratedoes not loadapps/full-app/.env— fails claimingauth.secretand
encryption.workspaceSettingsKeyare empty when both are present and correct. Blames yourconfig; the fault is the loader.
/dev-login404s.Both are onboarding defects, tracked on the
.32bead alongside theemail_verifiedrequirement.Constituent PRs
Refs #909
🤖 Generated with Claude Code
https://claude.ai/code/session_01C3rgJRALeGp4uwRwsnnmoW