Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/audit/local.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ For `## Loopback Listeners`, read `lib/src/host/loopback-guard.ts` first — it

For `## Network policy`, read `docs/specs/remote-network.md` -> "Policy", then `lib/src/remote/network-policy.ts`, the policy half of `lib/src/host/remote/service.ts` (the transport guard, and each level's hold on the Burrow), and its two other choke points, `lib/src/host/managed-voice-host.ts` and `standalone/src/updater.ts`. Then run `node scripts/outbound-lint.mjs` and read its allowlist, `OUTBOUND_SITES` and `REMOTE_LITERALS`: trace each `guarded:` file to its choke point and each `user:` file's call to the trigger its class names, and check that each `loopback`, `local-ipc`, `phone`, and `dev-only` file is what its reason says. Its `FORMS` is textual, so also search the shipped directories it scans for a network reach it cannot spell — a primitive through a variable, a re-export, or a new dependency. Read `lib/src/host/remote/outbound.test.ts` and `vscode-ext/test/outbound.test.ts` for what they boot and send, and judge each level's sentence and `connectionsFor` row in `lib/src/components/NetworkSettings.tsx` against what the code opens, the STUN and phone rows included, which those suites do not drive.

For `## Terminal context directory actions`, read `docs/specs/terminal-context.md` and `docs/specs/layout.md` -> "Workspace names"; for `## Spawned programs`, `docs/specs/terminal-context.md` -> "Helper lifecycle" and "Global autorun setting", and `docs/specs/dor-browser.md` -> "Pane Context Menu Connect" and "Browser Host"; for `## Dor Tool configuration`, `docs/specs/dor-tool.md` -> "Declaring tools", "Trust", and "Serving"; then the code each section's `Source of truth` names.
For `## Terminal context directory actions`, read `docs/specs/terminal-context.md` and `docs/specs/layout.md` -> "Workspace names"; for `## Spawned programs`, `docs/specs/terminal-context.md` -> "Helper lifecycle", and `docs/specs/dor-browser.md` -> "Pane Context Menu Connect" and "Browser Host"; for `## Dor Tool configuration`, `docs/specs/dor-tool.md` -> "Declaring tools", "Trust", and "Serving"; then the code each section's `Source of truth` names.

For the rest of `docs/specs/security-local.md`, read each section's owner first — `docs/specs/terminal-escapes.md` and the owners its rows name, `docs/specs/dor-tool.md` -> "Reaping", "Terminal links", and "Opening local files", `docs/specs/dor-browser.md` -> "Automated Browser", "Iframe Renderer", and "Iframe Host Capability And CSP", `docs/specs/dor-cli.md` -> "Spawning External Binaries" and "Host Plumbing", `docs/specs/vscode.md` -> "Webview message authentication" and "Burrow: a service in the extension host", `docs/specs/standalone.md` -> "Persistence", `docs/compatible-agents.md` -> "Recovery contract (maintainers)" — then the parser, the iframe shim, the control-socket code, the persistence paths they point at, and the files the checklist below names.

Expand Down
2 changes: 1 addition & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ A spec is the accurate reference for the current code: it states the invariants
- **`docs/specs/tiling-engine.md`** — **Lath**, the in-house headless tiling engine: pure split-tree core, never-re-parent LathHost adapter, wall store + engine, Lath-only persistence.
- **`docs/specs/alert.md`** — The Activity layer: alert tracks, attention model, TODO lifecycle, notification protocols with their sanitization rules, the Workspace union projection.
- **`docs/specs/terminal-state.md`** — Per-Session semantic state: CWD, prompt/command lifecycle, title candidates and header derivation, grouping keys.
- **`docs/specs/terminal-context.md`** — Unified terminal context and helper terminal: lifecycle, promotion, source closure, and global autorun settings.
- **`docs/specs/terminal-context.md`** — Unified terminal context and helper terminal: lifecycle, promotion, and source closure.
- **`docs/specs/terminal-escapes.md`** — Registry of every escape sequence parsed, answered, or ignored, each row pointing at its owning spec. Read before touching OSC/CSI parsing.
- **`docs/compatible-agents.md`** — Public agent guide plus the hidden recovery contract: shutdown capture, detection, single-use records, and cold-restore execution.
- **`docs/specs/transport.md`** — Adapter-agnostic webview ↔ host protocol: PTY lifecycle and buffering, reconnection, message contracts, persisted-session types, the invariants every adapter honors. A rule both hosts implement identically lives here, and each host spec points at it.
Expand Down
2 changes: 1 addition & 1 deletion TESTING_AND_MODIFICATION_GUIDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ The Hosted walkthroughs in `docs/stories/` join app and account stories. Hosted

Snapshot clock: `lib/.storybook/snapshot-clock.ts` freezes `Date.now` and `new Date()` at 2026-01-15 12:00 UTC for an Argos run, before any story module loads, so a story reads `Date.now()` anywhere, a `parameters` literal included, and never pins its own clock.

Helper placement snapshots: defer the fake helper's first prompt until its terminal is mounted and fitted. Drain queued xterm writes before capture and assert one autorun echo, both complete prompts, and a viewport at the bottom. Output emitted at the initial wide grid can lose the current prompt line when xterm shrinks; waiting afterward cannot repair it. `lib/src/stories/HelperPlacement.stories.tsx` owns the gate and `lib/src/lib/platform/fake-adapter-helper.test.ts` covers deferred startup and narrow wrapping.
Helper placement snapshots: defer the fake helper's first prompt until its terminal is mounted and fitted. Drain queued xterm writes before capture and assert the one complete prompt and a viewport at the bottom. Output emitted at the initial wide grid can lose the current prompt line when xterm shrinks; waiting afterward cannot repair it. `lib/src/stories/HelperPlacement.stories.tsx` owns the gate and `lib/src/lib/platform/fake-adapter-helper.test.ts` covers deferred startup and narrow wrapping.

Help snapshots: after changing any `dor` help text, rebuild and refresh with `cd dor && pnpm build && UPDATE_SNAPSHOTS=1 node --test`, then run `node --test` again and commit `dor/test/snapshots/`.

Expand Down
2 changes: 1 addition & 1 deletion docs/specs/dor-tool.rationale.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ Every preview-slot retarget of a serving Tool (the built-in file viewer, `builti

## Lifecycle

The September 2026 integration reuses Terminal Context for the Tool's primary terminal. The auxiliary helper's automatic refresh, Reset, and Promote semantics do not describe a serving command, whose Session also owns the browser and remote terminal identity. Sharing the presentation avoids introducing a second navigation mechanism or a second shell.
The September 2026 integration reuses Terminal Context for the Tool's primary terminal. The auxiliary helper's Reset and Promote semantics do not describe a serving command, whose Session also owns the browser and remote terminal identity. Sharing the presentation avoids introducing a second navigation mechanism or a second shell.

## Reaping

Expand Down
2 changes: 1 addition & 1 deletion docs/specs/mouse-and-clipboard.md
Original file line number Diff line number Diff line change
Expand Up @@ -326,7 +326,7 @@ Source of truth: `handleEditableClipboard` in `lib/src/components/wall/keyboard/

**Must give application-captured right-click to the terminal program.** Do not add a Shift-right-click override gesture.

**Must route clipboard chords and selection operations to the focused helper**, while leaving its Escape, Tab, arrows, and digits with xterm. Which of those disarm autorun follows `docs/specs/terminal-context.md` → "Helper lifecycle".
**Must route clipboard chords and selection operations to the focused helper**, while leaving its Escape, Tab, arrows, and digits with xterm.

**Must copy selected context diagnostic text with Cmd+C on macOS and Ctrl+C elsewhere.** Copy only a selection contained in the focused diagnostic, retaining it on clipboard failure; helper and editable-field chords keep their own routing.

Expand Down
Loading
Loading