Correct the transport, VS Code, and standalone specs; retire persistsSession - #711
Merged
Merged
Conversation
Deploying mouseterm with
|
| Latest commit: |
ecb3f79
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://ffc7336f.mouseterm.pages.dev |
| Branch Preview URL: | https://specs-host-audit.mouseterm.pages.dev |
dormouse-bot
left a comment
Collaborator
There was a problem hiding this comment.
Feedback on work in progress, not a merge verdict — mark the PR ready when you want the full review.
One finding, inline: the new native-dev aside under "Standalone browser-dev harness" contradicts the runDev rule two bullets above it.
This was referenced Sep 20, 2026
Merged
nedtwigg
added this pull request to stack #723
September 21, 2026 05:20
…chanism to the modules that own it The browser-dev harness is standalone's, not the adapter-agnostic protocol's, so its section moves from transport.md to standalone.md with every pointer updated. Agent-recovery capture, the peer-link bind-as-lease walk and the peer-link trust handshake keep their rules in the specs and lose the mechanism paragraphs the modules already carry verbatim; the two sentences those comments lacked are added there. Corrections against the code: a VS Code extension-host crash restores structure rather than starting fresh, since the periodic save writes workspaceState; a snapshot pane may be a tool, and a save probes every non-browser pane's cwd; a token-less reconnect answer is taken because the hosts that do not echo run one collector per realm, not because they have one webview; standalone's boot sequence sets the window label first, installs the window-close listener, boots a tear-out and arms Workspace moves after the restore, and checks for updates in main alone; the sidecar's shutdown has five steps; a blocking Tauri command must be async in either form; quit-teardown is an event; the Windows SIGTERM note belongs to step 3; an arrival carries allIds and its journal record carries settled; the bare-Wall default id comes from wrapSessionInWindow; standalone's drag controller must not assume in-range pointer coordinates; only the two recovery answers ride respondAsync; the updater log tail is 10,000 bytes in both specs; VS Code installs whatever AlertManager consumes rather than only inactivityTimeoutMs, its shipped command set is named where the manifest is described, burrow:command wraps its payload, and HANDSHAKE_BUDGET_MS and the PTY route table are attributed to peer-link.ts. The quit flow splits into Trigger interception / Quit protocol / Teardown ordering, the duplicated Terminal context host operations sections fold into transport.md, the VS Code webview-hosting diagram defers to transport.md's, auto-update's file table keeps the five files a reader opens first, and three cross-spec duplicates become pointers. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…and name the harness key `persistsSession` was a gate no shipping adapter ever opened: both standalone adapters answered `true`, which is what absent already reads as, and the only `false` in the tree was a test fixture. The member, the gate above the record build, both adapters' declarations, the two tests that pinned `true`, and the transport.md row go; the doc comment that had the rule backwards goes with them. A future non-persisting host reintroduces the gate in one line. The sidecar's `external` list read only `dependencies`, so the six `@node-datachannel/<platform>` packages — `optionalDependencies`, because only one installs on any machine — were neither external nor covered by `assertNothingInlined`, which claimed to assert the addon was not inlined and did not. Both keys are read now. `PEER_REPLY_BUDGET_MS` is defined as `ASK_BUDGET_MS + 2_000`, so the test asserting it is the larger could never fail; the argument moves to the constant's own comment and the test goes. The harness printed `dormouse.1.<key>` for a run that launched `dor ab --key`, whose session the holding Workspace namespaces — a name nothing ever created. It prints the key it passed instead, and the test pins that rather than the mismatch. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…ev actually binds it `pnpm tauri dev` routes through `tauri.mjs` to `runDev`, which binds Vite on port 0 and overlays `devUrl`, so an OS-assigned port is the native default too. `tauri.conf.json`'s `1420` is reached only by a direct `pnpm exec tauri dev`. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
nedtwigg
force-pushed
the
specs-host-audit
branch
from
September 21, 2026 06:38
a144a4c to
ecb3f79
Compare
nedtwigg
marked this pull request as ready for review
September 21, 2026 06:39
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.
Spec audit, group 3 (transport / vscode / standalone / auto-update). Stacked on #710 (the spec-audit PRs merge in order #708 → #715); independent of the alert series. Touches one line of
AGENTS.md(the harness pointer).Commit 1 — docs and comments. Corrections: the VS Code extension-host-crash row of the governing rule (it restores structure via
workspaceState, notFresh); the persisted-surface enumeration gainstool; the Windows quit-flow step number;AlertSettingsHostinstalls two settings, not one; the sidecar has five shutdown steps; the reconnection-token clause that contradicted "every host is multi-webview"; theasync fnvscommand(async)rule; the CORS-preflight carve-out in the harness; theburrow:commandnesting; payload shapes in the arrival queue; and more. Condensed: agent-recovery mechanism (≈600 words across three specs) → the modules that already carry it verbatim; peer-link mechanism →peer-link.ts; the browser-dev harness section moved from transport.md to standalone.md (nothing adapter-agnostic referenced it); duplicate rules across the three specs → pointers.standalone.md's 1,150-word "Trigger interception" split into "Quit protocol" / "Teardown ordering".Commit 2 — code.
persistsSessiondeleted: no shipping adapter answeredfalse, and its doc comment stated the governing rule backwards.SIDECAR_RUNTIME_DEPSnow coversoptionalDependencies, so the inlining assertion actually covers the six@node-datachannel/<platform>packages.--keyfor the inside-Dormouse path.PEER_REPLY_BUDGET_MSpin deleted.Budgets: transport 6250→5500, vscode 7550→7200, auto-update 1200→1150, standalone 10700→11500 (the harness section moved in). Net −242 words.
Deferred: collapsing the two app-global store channels (four-host refactor), the
burrow:askDeliveredfold,AWAITING_REPLAY_MAX, the Windowsnode.exevariants,restart-refusedas a field.🤖 Generated with Claude Code