Repository navigation
feat: seamless attach to hub sessions — status chips, question inbox, passive notifications (#1785) - #1789
Merged
aarontrowbridge merged 12 commits intoOct 15, 2026
Conversation
…m in server-sdk.test.ts (#1786 note) The #1784 (P4) overlay edit spliced the postEventStreamUrlAssert describe into the middle of the dead-man wiring describe's last test, dropping its closing }) and the describe's }). The file failed to parse: the whole suite was dead (0 of its 35 tests ran) and tsgo -b died on TS1005 before any type-check could run. Repair only — all 35 tests pass once parseable; the known baseline failure set is unchanged by the repair (measured, see the slice return).
… layout wiring (#1786) The badge is a canonical titlebar control (persisted pre-#1786 layouts fall back to the new default and gain it); the panel is the VaultPanel-shaped global drawer; NewLayout wires the per-window controller to the shared ServerSession store + the hub SDK and tears it down on server switches.
…added, 5 re-hashed)
…#1786) tsgo flags the flight's own finally comparing the promise before its initializer completes (TS2454); the holder is assigned after creation and read only in the finally (which runs after the first await).
Contributor
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: true
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
…es (3 added, 3 re-hashed)
…ot a live region (#1787)
S3 of #1785 (seamless attach): the extension host's existing sseClient stream finally tells a human. A FollowedSessionWatcher observes the one /event connection every posture opens (a new observe-only onEvent sink on OpencodeEventClient — contained, never mutating the stream) and raises VS Code notifications on followed sessions. - Follow = a live chat tab showing the session (opened or pinned), derived live from ChatPanel's registry — no new follow-management UI. - question.asked notifies with the session name + question header while the panel is unfocused; activating it reveals the tab (View). - session.status busy→idle raises a finished notification past the 30s flash window; a reconnect replay's compressed bracket stays silent. - Dedupe keys on the question REQUEST id (across reconnect gap replay); statuses honor the #1636 seq locally like the app's #1637 guard. - No notification while the focused panel shows the session (you're already there); unfollowed sessions pass silently.
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.
Closes #1785.
The UX layer over the fleet's existing foundations (P4 hub-client posture, P2 shared runtime rows, merged streams with replay + dead-men).
Slices — all merged into this branch and director-gated:
Integration gates on this tree (director-run): app suite 1680 pass / 24 fail with the failure set byte-identical to the standing lane baseline (19 lane drift-class + 5 main-inherited — pre-existing, reproduced on clean parents); extension suite green; drift gate PASS (968 files).
Stays DRAFT until the end-to-end headless probe gate (fresh client, question from an unopened session answered from the inbox, turn resumes; notification on question.asked) — which requires a deploy decision on the live plane (HITL: Aaron's; lockstep + route-containment gates apply per the 2026-10-13 skew incident).
Base: the union lane, which carries all three foundations (#1784, #1762, the streams work).