Thanks to visit codestin.com
Credit goes to github.com

Skip to content

feat: integrated terminal — runtime-owned shells for people and agents - #490

Merged
pedronauck merged 75 commits into
mainfrom
integrated-terminal
Sep 3, 2026
Merged

feat: integrated terminal — runtime-owned shells for people and agents#490
pedronauck merged 75 commits into
mainfrom
integrated-terminal

Conversation

@pedronauck

@pedronauck pedronauck commented Aug 26, 2026

Copy link
Copy Markdown
Member

Summary

CompozyOS gains real, fully functional terminals that live in the runtime. A terminal is owned by the daemon — not by the window that happens to display it — so it survives page reloads, app restarts, and dropped connections, and it renders identically in the web app and the desktop app. The same terminals are first-class for agents: an agent can deliberately run work in a terminal a human watches live, either side can hold control with explicit handoff, interactive prompts route to the human when they should, and everything that ran is answerable afterwards from a durable per-project command journal.

This lands as one PR because the pieces are load-bearing for each other. Nothing registers publicly until the journal, the control lease, the approval ladder, the CLI, the docs, and the official skill are all in place — a terminal without its audit trail is not a shippable terminal. Fifteen commits, 631 files, ~63k insertions across the Go runtime, CLI, HTTP/UDS, native tools, Web, packages/ui, docs, SDK contracts, and the QA tracker.


Motivation

Users leave CompozyOS every time work needs a shell: starting a dev server, running a migration, poking at a failing build, answering an installer's prompt. That context switch breaks the promise of an agent operating system.

It cuts both ways. When an agent's work would benefit from being watched — a long process, an interactive program, a demo — there is today no shared place where a person can see it happen, step in, and hand back. The agent runs blind and the human reads a summary after the fact.

This change closes both gaps with one substrate, and adds the part that makes shared control trustworthy rather than merely convenient: an audit trail that can answer "what ran here, who approved it, and how do we know" without keeping every byte forever.


What users can do now

Open a terminal in a project and keep it

Terminals are tabbed inside a terminal window, identified, and sized to the connected clients. They persist across reload and restart — the current screen comes back first, recent scrollback behind it.

Terminal window with the operator in control

Watch an agent work, and take control when it matters

Watching is never gated on the writer's permission (up to 16 viewers per terminal). Exactly one actor types at a time. When an agent holds control the cursor is hollow and the only affordance is "Take control".

Terminal window with an agent in control

Human takeover from an agent is immediate and unilateral. Displacing another person is not — it asks first and names who you are interrupting.

Take control from another person confirmation

Approve what an agent runs

Agent execution is approval-by-default. The prompt shows the command, the working directory, the terminal, and the scope being granted.

Approval prompt for an agent exec

A fixed set of irreversible commands never runs unprompted regardless of autonomy tier, and it is visually distinct from a routine approval. "Always allow" is not offered here.

Irreversible command approval with danger treatment

Answer the prompts programs actually ask

When a program asks for a secret, the request is pinned to the live terminal with the prompt excerpt. The entry is hidden, and the value is never displayed, stored, journaled, recorded, or shown to the agent.

Redacted input request for a password prompt

Answer "what ran here" afterwards

Every command executed in a CompozyOS terminal produces exactly one journal row: who ran it, the directory, the outcome, the approval that allowed it, and how the boundaries were detected. Rows whose boundaries are inferred are labeled estimated rather than presented as exact.

Command journal with actor, approval, outcome, and confidence

Live output is otherwise ephemeral. Full-fidelity recording is opt-in per request and retention-limited, with replay from the journal.

Recording replay with retention label

See the truth when something degrades

If the journal cannot record, the terminal enters audit-blocked: new input and exec are refused with journal_unavailable, while output draining and watching continue. The product says so instead of silently running unaudited work.

Audit-blocked bar with watching still live

A watcher that falls too far behind is disconnected and told so — the terminal is never slowed down to accommodate a slow client.

Slow-consumer gap notice with reconnect

Work per profile

A terminal belongs to the profile that opened it. Switching profile re-scopes the list the way it re-scopes everything else — another profile's terminal is hidden, not lost, and is still running when you switch back.

Profile-scoped terminal list

Reach terminals where the rest of CompozyOS lives

Deliberate agent terminal work appears inside the session transcript as a live block that links back to the real terminal.

Live terminal block inside a session transcript

And terminals launch from the dock like every other CompozyOS app, with an attention badge when one needs a person.

Dock terminal launcher with attention badge


Architecture and terminal lifecycle

A new internal/terminal package (65 non-test Go files) owns interactive terminal sessions in the daemon:

Piece Responsibility
Manager / registry Workspace-keyed session registry; open/exec/list/close; caps; activity-based idle reaping; lifecycle drain on shutdown
session One PTY (or pipe) process: fan-out hub, ring buffer, lease state machine, wait conditions, resize reconciliation (min-wins)
pty/ PTY facade over Charm xpty plus the Compozy hardening rules (dup + O_NONBLOCK rescue, Setsid/Setctty, Control()-only ioctls); ConPTY adapter for Windows; pipe implementation via mvdan.cc/sh
vt/ Single-goroutine VT actor over charmbracelet/x/vt — screen snapshots and ANSI-stripped reads for agents
journal/ Command-row assembly from authenticated markers and exec results, secret scrub, workspacedb persistence and queries
wire/ Frame codec for compozy.terminal.v1 — opcodes, sequence numbers, ack/drop flow-control accounting, coalescer

Data flow (interactive). PTY read on the dup'd fd → OSC security filter → coalescer (8 KiB / 5 ms, sub-1 KiB bypass) → sequence-stamped ring append → fan-out to WebSocket subscribers, the VT actor, and the recorder when active. The filter returns two ordered outputs — display bytes and typed marker facts — so the journal is fed by parse-once typed facts rather than a second byte-parsing consumer downstream.

Every internal consumer is bounded and none can stall the hot path. The VT actor has a 256 KiB mailbox and on overflow goes dirty, rebuilding its grid from the ring at an escape-safe replay point (Screen() returns busy:true meanwhile). The recorder has a 1 MiB write buffer and on storage stall stops with an auditable recording_stopped{reason, truncated:true} rather than degrading the terminal. EventBus observers are synchronous, O(1), non-blocking, panic-recovered per invocation, and frozen at wiring.

Lifecycle and lease. Clients attach over a binary WebSocket, one socket per attached terminal, authorized by a single-use attach ticket even on localhost; the terminal catalog and lifecycle events ride SSE. The control lease is single-writer and generation-fenced against session runtime generations, so a stale or recovered agent run cannot act on a terminal it no longer owns. A disconnected controller's lease survives a pinned 30-second grace and then drops to available. When the agent run bound to a terminal ends, control auto-yields to the human — an abandoned agent terminal becomes the human's usable shell, never a locked orphan. Close is actor-aware: agents may close terminals bound to their own run or lease, are denied on human-controlled ones with the controller named, and humans always may.

Boundaries. internal/terminal imports procutil, toolruntime, workspace, store (types only), store/workspacedb, hooks, config, and redact — never daemon, api/*, cli, acp, session, tools, profile, or sandbox. Profile availability arrives through a consumer-defined ProfileGuard interface injected by the daemon. internal/daemon is the only composition point, and magefiles/boundaries.go gains the enforcing rules in this same change.


Security, approval, and redaction

A terminal is arbitrary command execution with the operator's authority, and the design treats it that way.

  • Attach authorization. Opening a terminal connection requires a fresh, explicit, single-use ticket — including on the local machine. Watching and controlling are separately authorized, and every takeover is auditable.
  • Approval ladder. Observing is free. Execution is approval-by-default. An administrator-defined allowlist enables autonomous execution for classifiable command shapes only; unclassifiable commands always prompt; a fixed irreversible set never runs unprompted at any tier.
  • Typing is never covered by autonomy config. Before an agent may type into a terminal it needs a standing per-terminal human grant (allow once / allow for this terminal / reject). Grants end on takeover, on run end, or on revocation.
  • OSC security filter. OSC 52 (clipboard) is stripped in both directions and window titles are sanitized before bytes reach the ring — so they never reach clients, replay, or recordings.
  • Journal rows cannot be forged by the audited process. Command boundaries come from a versioned Compozy marker, ESC ] 7113 ; v1 ; <nonce> ; …, whose nonce is cryptographically random per terminal and injected by the shell-integration shim into non-exported shell state, so child processes never inherit it. detected_by:"marker" is accepted only on a nonce match; bare OSC 133 and any wrong-nonce 7113 frame is an untrusted hint that degrades the row to detected_by:"idle". Marker frames are consumed by the filter before the ring, so they are never visible to clients.
  • Secret redaction end to end. Hidden-echo prompts and explicitly redacted input are never displayed, stored, journaled, recorded, or shown to the agent — only a marker that redacted input of a given length occurred. Redaction is server-authoritative, not a client-side mask.
  • Not in scope at launch. Remote/gateway (off-machine) terminal access is excluded; local surfaces only.

Persistence, journal, and fail-closed audit

The journal is durable, per-project, and lives in workspacedb:

  • Declarative schema internal/store/workspacedb/schema/definitions/01_terminal_journal.sql
  • Queries internal/store/workspacedb/queries/terminal_journal.sql
  • Append-only Goose migrations 00002_schema.sql and 00003_schema.sql

Exactly one row per executed command, carrying actor, approval, outcome, and detection confidence, with approximate boundaries labeled approximate and exit causes truthful — exited, signaled, or unknown, never fabricated.

Row assembly is pure and O(fact). Profile validity is checked at admission (Open/Exec) through the injected ProfileGuard, never on the write path: once a command is admitted its row appends regardless of what happens to the owning profile afterwards, so archiving a profile can never strand rows, audit-block a live terminal, or fail daemon shutdown. Persistence is async through a bounded 64-row in-memory pending lane into the same workspacedb writer — deliberately not a second durable queue. On write failure the row is retained and retried; on retry exhaustion the terminal enters audit-blocked and refuses new input and exec with journal_unavailable while output draining, watching, and reads continue. Manager.Shutdown flushes the pending lane within a bounded wait, and if the store is dead the daemon exits with an explicit audit-gap error — the terminal having already been audit-blocked, so no command ever ran without its eventual row.

Live output is otherwise ephemeral: bounded in-memory scrollback for reattach, gone on terminal end or runtime restart. Recording happens only by explicit request and expires per retention policy (default 30 days).

Agent-internal execution outside CompozyOS terminals never enters the terminal journal or the terminal list. Its record stays in the session view, rendered as a terminal-styled block labeled as agent-reported, with no control affordances and no journal rows.


Workspace and profile isolation

Every new datum here is workspace-scoped and profile-scoped, and both are fixed at creation and never change.

  • Ownership of a terminal is (workspace, profile). Listing, viewing, journal queries, and any live feed never cross either boundary.
  • Looking up another profile's terminal is indistinguishable from it not existing — cross-profile access returns terminal_not_found, not a permission error that would confirm existence.
  • Single-owner operations take a resolved profileID; aggregate reads take a store.ReadScope so all_profiles is expressible where it is legitimate. List is fail-closed: an invalid scope yields an empty slice, never an unfiltered one.
  • Per-project terminal limits count per profile, so one profile can never consume another's budget.
  • A caller with no project — an agent in a global session — cannot open or run terminals. It is told to scope itself to a project first, never silently placed in one.
  • Archiving a profile terminates that profile's terminals through the drain path and emits terminal.closed{reason:"profile_archived"}; ticket invalidation and pending-request resolution ride that event as observers. Journal history is retained.

Surfaces

Enumerated from the tree at this head, not from the spec.

CLIcompozy terminal: open, list, get, attach, kill, exec, signal, input-requests, respond, journal, record start|stop, quote. attach dials the WebSocket over UDS and keeps input in raw mode, intercepting the detach chord locally so it never terminates the client.

HTTP / UDS — 16 terminal paths, verified against openapi/compozy.json:

GET,POST     /api/workspaces/{workspace_id}/terminals
GET          /api/workspaces/{workspace_id}/terminals/stream
POST         /api/workspaces/{workspace_id}/terminals/exec
GET          /api/workspaces/{workspace_id}/terminals/journal
GET          /api/workspaces/{workspace_id}/terminals/input-requests
GET          /api/workspaces/{workspace_id}/terminals/artifacts/{id}
GET          /api/workspaces/{workspace_id}/terminals/recordings/{id}
GET,DELETE   /api/workspaces/{workspace_id}/terminals/{id}
GET          /api/workspaces/{workspace_id}/terminals/{id}/stream
GET          /api/workspaces/{workspace_id}/terminals/{id}/read
POST         /api/workspaces/{workspace_id}/terminals/{id}/attach-ticket
POST         /api/workspaces/{workspace_id}/terminals/{id}/wait
POST         /api/workspaces/{workspace_id}/terminals/{id}/signal
POST         /api/workspaces/{workspace_id}/terminals/{id}/recording
POST         /api/workspaces/{workspace_id}/terminals/{id}/input-requests/{request_id}/answer
POST         /api/workspaces/{workspace_id}/terminals/{id}/input-requests/{request_id}/reject

Native tools — the compozy__terminal toolset: compozy__terminal_open, _list, _read, _write, _exec, _wait, _signal, _claim, _yield, _close, _request_input. Descriptors, toolset wiring, capability strings (terminal.observe / terminal.exec), risk flags, and the native-tool catalog fixture are updated together.

Web — new web/src/systems/terminal/ domain system (protocol client, wire schema, lease/grant/permission logic, gap buffer, resync, store, fixtures) plus the TerminalView primitive in packages/ui on @xterm/xterm, with terminal-tokens.css and a Storybook story. TerminalView has zero protocol knowledge; the domain system owns the client.

Desktop — inherits the web app unchanged under the thin-shell contract. Nothing terminal-shaped lives only in the desktop shell; the only desktop change in this diff is an Electron E2E spec.

Docs — new packages/site/content/docs/terminal/ section (index, tutorial, agents-and-safety, journal-and-recordings, platform-support, profile-segmentation), the full docs/cli/terminal/* command reference, and a configuration lifecycle-matrix.mdx.

Config — a [terminal] block with typed compozy config set support and validation: default_shell, detached_ttl, exit_retention, max_per_daemon, max_per_workspace, max_subscribers, recording_retention_days, scrollback_bytes.

Hooks / extensibility — 11 terminal.* events: opened, closed, command_started, command_finished, input_requested, input_provided, lease_changed, limit_rejected, recording_started, recording_stopped, subscriber_evicted. Regenerated sdk/go/contracts (hook contracts, hook events, types 017/028–031) and sdk/typescript/src/generated/contracts.ts, plus extension SDK named types for the terminal domain.

Platform honesty — macOS and Linux ship the complete experience. Windows and remote sandboxes execute commands from day one and state what they cannot do yet, before anything can hang.


Testing and QA evidence

Two tiers, kept separate on purpose.

Focused checks at this exact head (7cf022483, post-rebase)

These are the only results attributable to the commit this PR points at:

Check Result
go test -race ./internal/cli 2,121 passed
Six focused Web suites through Turborepo 145 passed
Owning UI terminal suite, after removing two unused branch exports 22 passed
Web protocol suite, after the same removal 29 passed
Turbo codegen-check (within those focused runs) pass
React Doctor zero branch-introduced findings

Two notes so these numbers are not read as more than they are. The 29-test protocol run is a rerun of a suite already contained in the 145 above — it is not additive; it is reported only to show that removing the two unused exports was safe. And React Doctor's three remaining findings are inherited unchanged from origin/main; they are not attributable to this branch.

Pre-rebase QA evidence

The following comes from the QA pass recorded in docs/qa/reports/2026-08-26-integrated-terminal.md, run against bootstrap build ae5c2eb1c in an isolated lab. This is pre-rebase QA evidence for the feature's behavior — it is not verification of this head and is not a substitute for exact-head CI.

Lane Result
Runtime E2E after remediation daemon 175/175, HTTP 21/21, UDS 46/46, harness 8/8, CLI 4/4
Browser E2E discovery run 245 passed, 22 failed, 3 skipped — every failure fixed and retested in its focused owning suite, or confirmed environmental
Session-deletion unit invariants (Turborepo) 41/41 passed
make web-build pass
Strict evidence audit pass — 0 blockers, 0 warnings
Visual contracts 22 bundles captured under task_05 (reference / implementation / side-by-side / diff)
Lab teardown "clean": true, survivors: []

Five defects were found and fixed during that pass, each with production code changed rather than a test weakened: journal access rejecting the public workspace id; CLI attach losing the selected profile; the detach chord terminating the CLI client; terminal settings not settable through config set; and profile-scoped agents failing to start sessions. Zero open product defects remain from the pass. Corresponding QA scenarios, charters, journeys, and content-addressed bug files are in docs/qa/ in this diff.


Compozy Impact Audit

  • Native tools: 11 new compozy__terminal_* tool IDs in a new compozy__terminal toolset (internal/tools/builtin/terminal.go, descriptors.go, toolsets.go, builtin_ids_terminal.go), with I/O schemas, risk flags, terminal.observe / terminal.exec capability gates, approval-grant handling in internal/tools/approval_grants.go, dispatch and dispatch-hook wiring, and the testdata/native-tool-catalog.json fixture regenerated.
  • Extensibility and hooks: 11 terminal.* hook events with per-event payloads bridged from the terminal EventBus through internal/hooks via non-blocking submit to the existing async pool; regenerated sdk/go/contracts (hook contracts + events + types 017/028–031) and sdk/typescript/src/generated/contracts.ts; new extension SDK named types in internal/extension/contract/sdk_named_types_terminal.go; [terminal] config lifecycle registered in internal/config/lifecycle and documented in the site lifecycle matrix. Extension-controlled terminal surfaces are explicitly not promised in v1, and nothing here precludes them.
  • Workspace data isolation: every terminal, journal row, recording, artifact, input request, and lifecycle event is workspace-scoped and profile-scoped at creation and immutable thereafter. Single-owner operations take a resolved profileID; aggregate reads take store.ReadScope and fail closed to an empty result on an invalid scope. Cross-profile lookup returns terminal_not_found. Limits count per profile. HTTP/UDS routes are workspace-prefixed; SSE catalog and per-terminal streams carry the same fence; ArchiveProfile drains that profile's terminals and emits terminal.closed{reason:"profile_archived"}. A project-less global session is refused rather than silently scoped. Covered by ET-terminal-profile-segmentation, ET-terminal-profile-selectors, and the runtime isolation suites.
  • Official Compozy skill: updated — skills/compozy/SKILL.md plus a new skills/compozy/references/terminal.md covering the terminal domain, its tool IDs, CLI paths, and hook events.

Known blocked human-only verifications

Three scenarios could not be executed in the macOS lab. These are environment limits, not known failures — each needs a platform or delivery target the lab does not have:

  1. Windows ConPTY parity — needs a Windows host. The ConPTY adapter and the Windows-runner suites are in this diff; only their execution is blocked.
  2. Packaged desktop fidelity (clipboard, accelerators, zoom, IME) — needs a release desktop build.
  3. Published documentation first-run walk — needs the deployed site; the source content contract was checked in-repo.

They are recorded as blocked-verify in docs/qa/scenarios/, not as untested or fail.


CI ownership

  • The focused checks in the table above passed at exact head 7cf022483.
  • Everything in the QA report predates the rebase. It is evidence about the feature's behavior, not verification of this commit.
  • The single local make gate attempt was BLOCKED when its internal golangci-lint subprocess exceeded the configured 10-minute timeout (recorded in the lab's gate-verify.log, alongside passing codegen-check, gate-integration, and mage-test lanes). That attempt was also pre-rebase — so no full gate has ever run against 7cf022483.
  • Heavy full verification is therefore intentionally delegated to exact-head PR CI. This PR stays draft and owned by me until every required check is green at 7cf022483; a red or pending check keeps the workstream open and I repair, push, and re-wait.

Reviewing this PR

Suggested order:

  1. internal/terminal/ — the domain authority. Start at the Manager interface and the session actor, then pty/, vt/, journal/, wire/.
  2. The surfaces that hang off it — internal/api/core terminal handlers (shared by HTTP and UDS), internal/cli/terminal*.go, internal/tools/builtin/terminal.go.
  3. web/src/systems/terminal/ and the TerminalView primitive in packages/ui.
  4. internal/store/workspacedb/ for the journal schema and migrations, and magefiles/boundaries.go for the enforced import rules.

Note that .compozy/tasks/** is gitignored, so the spec, the 18 ADRs, the DX and UI/UX contracts, and the visual-contract evidence bundles are local-only and are not in this diff. The screenshots above are those evidence bundles, hosted so they are reviewable here.

🤖 Generated with Claude Code

Closes #535

@vercel

vercel Bot commented Aug 26, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
compozy-site Ready Ready Preview Sep 3, 2026 12:21am UTC

Request Review

@coderabbitai

coderabbitai Bot commented Aug 26, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Too many files!

This PR contains 954 files, which is 654 over the limit of 300.

To get a review, reduce the PR to 300 files or fewer by splitting it into smaller PRs or changing its base branch.

Usage-priced reviews support at most 300 files.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Team

Run ID: 01656d40-faa0-4c49-aac4-40bbef65cda2

📥 Commits

Reviewing files that changed from the base of the PR and between 7f0d112 and fc34ec8.

⛔ Files ignored due to path filters (178)
  • .agents/skills/deep-review/SKILL.md is excluded by !**/*.md, !.agents/**
  • .agents/skills/deep-review/references/orchestration.md is excluded by !**/*.md, !.agents/**
  • .agents/skills/deep-review/scripts/build_jobs.py is excluded by !.agents/**
  • .claude/plans/terminal-rework-plain-sessions-agent-windows.md is excluded by !**/*.md, !.claude/**
  • .github/workflows/ci.yml is excluded by !**/*.yml
  • .github/workflows/react-doctor.yml is excluded by !**/*.yml
  • COPY.md is excluded by !**/*.md
  • DESIGN.md is excluded by !**/*.md
  • bun.lock is excluded by !**/*.lock, !**/*.lock
  • config.toml is excluded by !**/*.toml
  • docs/_memory/glossary.md is excluded by !**/*.md
  • docs/design/generated/terminal-wire.md is excluded by !**/generated/**, !docs/design/**/*, !**/*.md, !**/generated/**
  • docs/design/opendesign/integrated-terminal/DESIGN-NOTES.md is excluded by !docs/design/**/*, !**/*.md
  • docs/design/opendesign/integrated-terminal/integrated-terminal-states.html is excluded by !docs/design/**/*
  • docs/qa/automation-backlog/terminal-private-input-skill-fidelity.md is excluded by !**/*.md
  • docs/qa/bugs/BUG-20260826-terminal-attach-profile-scope.md is excluded by !**/*.md
  • docs/qa/bugs/BUG-20260826-terminal-cli-raw-mode.md is excluded by !**/*.md
  • docs/qa/bugs/BUG-20260826-terminal-config-set-unsupported.md is excluded by !**/*.md
  • docs/qa/bugs/BUG-20260826-terminal-journal-workspace-id.md is excluded by !**/*.md
  • docs/qa/bugs/BUG-20260826-workspace-profile-agents-unavailable.md is excluded by !**/*.md
  • docs/qa/bugs/BUG-20260829-command-palette-portal-remains-mounted.md is excluded by !**/*.md
  • docs/qa/bugs/BUG-20260829-terminal-journal-unlock-remount.md is excluded by !**/*.md
  • docs/qa/bugs/BUG-20260829-workspace-delete-visible-terminal-deadlock.md is excluded by !**/*.md
  • docs/qa/bugs/BUG-20260830-busy-input-turn-end-stranded.md is excluded by !**/*.md
  • docs/qa/bugs/BUG-20260830-terminal-retarget-duplicate-window.md is excluded by !**/*.md
  • docs/qa/bugs/BUG-20260901-private-passphrase-session-composer.md is excluded by !**/*.md
  • docs/qa/bugs/BUG-20260902-background-window-stream-starvation.md is excluded by !**/*.md
  • docs/qa/bugs/BUG-20260902-private-input-shell-leak.md is excluded by !**/*.md
  • docs/qa/charters/CH-malformed-skill-recovery.md is excluded by !**/*.md
  • docs/qa/charters/CH-skill-view-error-recovery.md is excluded by !**/*.md
  • docs/qa/charters/CH-terminal-approval-ladder.md is excluded by !**/*.md
  • docs/qa/charters/CH-terminal-capacity-and-config.md is excluded by !**/*.md
  • docs/qa/charters/CH-terminal-cli-transport-parity.md is excluded by !**/*.md
  • docs/qa/charters/CH-terminal-desktop-fidelity.md is excluded by !**/*.md
  • docs/qa/charters/CH-terminal-docs-first-success.md is excluded by !**/*.md
  • docs/qa/charters/CH-terminal-journal-fail-closed.md is excluded by !**/*.md
  • docs/qa/charters/CH-terminal-lease-fencing-takeover.md is excluded by !**/*.md
  • docs/qa/charters/CH-terminal-operator-shell.md is excluded by !**/*.md
  • docs/qa/charters/CH-terminal-platform-ladder.md is excluded by !**/*.md
  • docs/qa/charters/CH-terminal-profile-fence.md is excluded by !**/*.md
  • docs/qa/charters/CH-terminal-redaction-osc-boundary.md is excluded by !**/*.md
  • docs/qa/charters/CH-terminal-reference-recovery.md is excluded by !**/*.md
  • docs/qa/charters/CH-terminal-stream-flow-control.md is excluded by !**/*.md
  • docs/qa/charters/CH-terminal-window-tabs-canary.md is excluded by !**/*.md
  • docs/qa/journeys/J-administer-terminal-capacity.md is excluded by !**/*.md
  • docs/qa/journeys/J-audit-terminal-work.md is excluded by !**/*.md
  • docs/qa/journeys/J-learn-terminal-from-docs.md is excluded by !**/*.md
  • docs/qa/journeys/J-operate-integrated-terminal.md is excluded by !**/*.md
  • docs/qa/journeys/J-operate-terminal-by-cli.md is excluded by !**/*.md
  • docs/qa/journeys/J-operate-terminal-windows.md is excluded by !**/*.md
  • docs/qa/journeys/J-supervise-agent-terminal.md is excluded by !**/*.md
  • docs/qa/journeys/J-switch-profile-terminal-scope.md is excluded by !**/*.md
  • docs/qa/journeys/J-use-terminal-desktop.md is excluded by !**/*.md
  • docs/qa/reports/2026-08-26-integrated-terminal.md is excluded by !**/*.md
  • docs/qa/reports/2026-08-28-integrated-terminal-rebase.md is excluded by !**/*.md
  • docs/qa/reports/2026-08-31-terminal-stabilization.md is excluded by !**/*.md
  • docs/qa/reports/2026-09-01-integrated-terminal-review-r2.md is excluded by !**/*.md
  • docs/qa/reports/2026-09-01-terminal-rework.md is excluded by !**/*.md
  • docs/qa/reports/2026-09-02-skill-terminal-recovery.md is excluded by !**/*.md
  • docs/qa/scenarios/APP-terminal-desktop-fidelity.md is excluded by !**/*.md
  • docs/qa/scenarios/ET-agent-terminal-window-materialization.md is excluded by !**/*.md
  • docs/qa/scenarios/ET-compozy-official-skill-discovery.md is excluded by !**/*.md
  • docs/qa/scenarios/ET-skill-ecosystem-frontmatter-quiet.md is excluded by !**/*.md
  • docs/qa/scenarios/ET-skill-view-actionable-errors.md is excluded by !**/*.md
  • docs/qa/scenarios/ET-terminal-agent-handoff-input.md is excluded by !**/*.md
  • docs/qa/scenarios/ET-terminal-approval-ladder-grants.md is excluded by !**/*.md
  • docs/qa/scenarios/ET-terminal-browser-lifecycle.md is excluded by !**/*.md
  • docs/qa/scenarios/ET-terminal-cli-public-contract.md is excluded by !**/*.md
  • docs/qa/scenarios/ET-terminal-hook-events.md is excluded by !**/*.md
  • docs/qa/scenarios/ET-terminal-journal-fail-closed.md is excluded by !**/*.md
  • docs/qa/scenarios/ET-terminal-journal-recording.md is excluded by !**/*.md
  • docs/qa/scenarios/ET-terminal-lease-fencing.md is excluded by !**/*.md
  • docs/qa/scenarios/ET-terminal-limits-capabilities.md is excluded by !**/*.md
  • docs/qa/scenarios/ET-terminal-nerd-glyphs.md is excluded by !**/*.md
  • docs/qa/scenarios/ET-terminal-profile-segmentation.md is excluded by !**/*.md
  • docs/qa/scenarios/ET-terminal-profile-selectors.md is excluded by !**/*.md
  • docs/qa/scenarios/ET-terminal-redaction-boundaries.md is excluded by !**/*.md
  • docs/qa/scenarios/ET-terminal-session-block-handoff.md is excluded by !**/*.md
  • docs/qa/scenarios/ET-terminal-shell-config-fidelity.md is excluded by !**/*.md
  • docs/qa/scenarios/ET-terminal-stream-resilience.md is excluded by !**/*.md
  • docs/qa/scenarios/ET-terminal-window-native-flow.md is excluded by !**/*.md
  • docs/qa/scenarios/ET-terminal-windows-parity.md is excluded by !**/*.md
  • docs/qa/scenarios/ET-web-catalog-navigation.md is excluded by !**/*.md
  • docs/qa/scenarios/ET-web-command-palette-shortcuts.md is excluded by !**/*.md
  • docs/qa/scenarios/ET-web-dock-contextual-session-launch.md is excluded by !**/*.md
  • docs/qa/scenarios/ET-web-dock-default-window-size.md is excluded by !**/*.md
  • docs/qa/scenarios/ET-web-window-routing-lifecycle.md is excluded by !**/*.md
  • docs/qa/scenarios/MS-terminal-config-lifecycle.md is excluded by !**/*.md
  • docs/qa/scenarios/NB-003.md is excluded by !**/*.md
  • docs/qa/scenarios/RT-014.md is excluded by !**/*.md
  • docs/qa/scenarios/RT-019.md is excluded by !**/*.md
  • docs/qa/scenarios/RT-model-catalog-cold-open.md is excluded by !**/*.md
  • docs/qa/scenarios/RT-session-delete-keeps-empty-tab.md is excluded by !**/*.md
  • docs/qa/scenarios/SITE-terminal-docs-truth.md is excluded by !**/*.md
  • docs/qa/scenarios/TA-web-task-run-detail-redesign.md is excluded by !**/*.md
  • go.sum is excluded by !**/*.sum, !**/*.sum
  • internal/sandbox/daytona/sidecar_assets/compozy-daytona-sidecar-linux-amd64.gz is excluded by !**/*.gz, !**/*.gz
  • internal/sandbox/daytona/sidecar_assets/compozy-daytona-sidecar-linux-arm64.gz is excluded by !**/*.gz, !**/*.gz
  • internal/store/globaldb/schema/migrations/atlas.sum is excluded by !**/*.sum, !**/*.sum
  • internal/store/workspacedb/schema/migrations/atlas.sum is excluded by !**/*.sum, !**/*.sum
  • internal/store/workspacedb/sqlc.yaml is excluded by !**/*.yaml
  • internal/terminal/wire/protocol.json is excluded by !**/*.json
  • internal/testutil/acpmock/testdata/integrated_terminal_fixture.json is excluded by !**/*.json
  • internal/testutil/acpmock/testdata/loop_node_lifecycle_fixture.json is excluded by !**/*.json
  • internal/testutil/acpmock/testdata/terminal_generation_bump_fixture.json is excluded by !**/*.json
  • internal/tools/builtin/testdata/native-tool-catalog.json is excluded by !**/*.json
  • openapi/compozy.json is excluded by !**/*.json
  • package.json is excluded by !**/*.json
  • packages/site/content/docs/cli/compozy.mdx is excluded by !**/*.mdx
  • packages/site/content/docs/cli/meta.json is excluded by !**/*.json
  • packages/site/content/docs/cli/terminal/attach.mdx is excluded by !**/*.mdx
  • packages/site/content/docs/cli/terminal/exec.mdx is excluded by !**/*.mdx
  • packages/site/content/docs/cli/terminal/get.mdx is excluded by !**/*.mdx
  • packages/site/content/docs/cli/terminal/index.mdx is excluded by !**/*.mdx
  • packages/site/content/docs/cli/terminal/input-requests.mdx is excluded by !**/*.mdx
  • packages/site/content/docs/cli/terminal/journal.mdx is excluded by !**/*.mdx
  • packages/site/content/docs/cli/terminal/kill.mdx is excluded by !**/*.mdx
  • packages/site/content/docs/cli/terminal/list.mdx is excluded by !**/*.mdx
  • packages/site/content/docs/cli/terminal/meta.json is excluded by !**/*.json
  • packages/site/content/docs/cli/terminal/open.mdx is excluded by !**/*.mdx
  • packages/site/content/docs/cli/terminal/quote.mdx is excluded by !**/*.mdx
  • packages/site/content/docs/cli/terminal/record/index.mdx is excluded by !**/*.mdx
  • packages/site/content/docs/cli/terminal/record/meta.json is excluded by !**/*.json
  • packages/site/content/docs/cli/terminal/record/start.mdx is excluded by !**/*.mdx
  • packages/site/content/docs/cli/terminal/record/stop.mdx is excluded by !**/*.mdx
  • packages/site/content/docs/cli/terminal/respond.mdx is excluded by !**/*.mdx
  • packages/site/content/docs/cli/terminal/signal.mdx is excluded by !**/*.mdx
  • packages/site/content/docs/configuration/config-toml.mdx is excluded by !**/*.mdx
  • packages/site/content/docs/configuration/lifecycle-matrix.mdx is excluded by !**/*.mdx
  • packages/site/content/docs/meta.json is excluded by !**/*.json
  • packages/site/content/docs/terminal/agents-and-safety.mdx is excluded by !**/*.mdx
  • packages/site/content/docs/terminal/index.mdx is excluded by !**/*.mdx
  • packages/site/content/docs/terminal/journal-and-recordings.mdx is excluded by !**/*.mdx
  • packages/site/content/docs/terminal/meta.json is excluded by !**/*.json
  • packages/site/content/docs/terminal/platform-support.mdx is excluded by !**/*.mdx
  • packages/site/content/docs/terminal/profile-segmentation.mdx is excluded by !**/*.mdx
  • packages/site/content/docs/terminal/tutorial.mdx is excluded by !**/*.mdx
  • packages/ui/CLAUDE.md is excluded by !**/*.md
  • packages/ui/package.json is excluded by !**/*.json
  • packages/ui/src/assets/fonts/symbols-nerd-font-mono.woff2 is excluded by !**/*.woff2
  • packages/ui/src/components/custom/stories/pill.stories.tsx is excluded by !**/*.stories.tsx
  • packages/ui/src/components/stories/dialog.stories.tsx is excluded by !**/*.stories.tsx
  • packages/ui/src/components/stories/questionnaire.stories.tsx is excluded by !**/*.stories.tsx
  • packages/ui/src/components/stories/slider.stories.tsx is excluded by !**/*.stories.tsx
  • packages/ui/src/components/stories/table.stories.tsx is excluded by !**/*.stories.tsx
  • packages/ui/src/components/stories/terminal-view.stories.tsx is excluded by !**/*.stories.tsx
  • packages/ui/src/xterm-css.d.ts is excluded by !**/*.d.ts
  • sdk/typescript/src/generated/contracts.ts is excluded by !**/generated/**, !**/generated/**
  • skills/compozy/SKILL.md is excluded by !**/*.md
  • skills/compozy/references/configuration.md is excluded by !**/*.md
  • skills/compozy/references/native-tools.md is excluded by !**/*.md
  • skills/compozy/references/terminal.md is excluded by !**/*.md
  • skills/compozy/references/tools-and-skills.md is excluded by !**/*.md
  • web/e2e/__tests__/attention.spec.ts is excluded by !web/e2e/**
  • web/e2e/__tests__/automation.spec.ts is excluded by !web/e2e/**
  • web/e2e/__tests__/marketplace.spec.ts is excluded by !web/e2e/**
  • web/e2e/__tests__/os-shell.spec.ts is excluded by !web/e2e/**
  • web/e2e/__tests__/profiles.spec.ts is excluded by !web/e2e/**
  • web/e2e/__tests__/session-hardening.spec.ts is excluded by !web/e2e/**
  • web/e2e/__tests__/settings.spec.ts is excluded by !web/e2e/**
  • web/e2e/__tests__/terminal-agent.spec.ts is excluded by !web/e2e/**
  • web/e2e/__tests__/terminal.spec.ts is excluded by !web/e2e/**
  • web/e2e/__tests__/worktrees.spec.ts is excluded by !web/e2e/**
  • web/e2e/fixtures/__tests__/runtime.test.ts is excluded by !**/fixtures/**, !web/e2e/**
  • web/e2e/fixtures/os-navigation.ts is excluded by !**/fixtures/**, !web/e2e/**
  • web/e2e/fixtures/pty-bridge.exp is excluded by !**/fixtures/**, !web/e2e/**
  • web/e2e/fixtures/runtime-process.ts is excluded by !**/fixtures/**, !web/e2e/**
  • web/e2e/fixtures/terminal-watcher.ts is excluded by !**/fixtures/**, !web/e2e/**
  • web/package.json is excluded by !**/*.json
  • web/src/generated/compozy-openapi.d.ts is excluded by !**/generated/**, !**/generated/**, !**/*.d.ts
  • web/src/generated/terminal-wire.ts is excluded by !**/generated/**, !**/generated/**
  • web/src/systems/os/components/stories/os-dock.stories.tsx is excluded by !**/*.stories.tsx
  • web/src/systems/session/components/stories/permission-dock.stories.tsx is excluded by !**/*.stories.tsx
  • web/src/systems/settings/routes/settings-terminal.stories.tsx is excluded by !**/*.stories.tsx
  • web/src/systems/terminal/components/stories/session-terminal-block.stories.tsx is excluded by !**/*.stories.tsx
  • web/src/systems/terminal/components/stories/terminal-surfaces.stories.tsx is excluded by !**/*.stories.tsx
  • web/src/systems/terminal/components/stories/terminal-window.stories.tsx is excluded by !**/*.stories.tsx
  • web/src/systems/tool-approvals/components/stories/tool-approval-grants-section.stories.tsx is excluded by !**/*.stories.tsx
📒 Files selected for processing (954)
  • .repoclone.rc
  • cmd/compozy-codegen/codegen_all.go
  • cmd/compozy-codegen/codegen_check.go
  • cmd/compozy-codegen/generated_artifact_transaction.go
  • cmd/compozy-codegen/main.go
  • cmd/compozy-codegen/main_test.go
  • cmd/compozy-codegen/terminal_wire.go
  • cmd/compozy-codegen/terminal_wire_manifest.go
  • cmd/compozy-codegen/terminal_wire_paths.go
  • cmd/compozy-codegen/terminal_wire_publish.go
  • cmd/compozy-codegen/terminal_wire_render_docs.go
  • cmd/compozy-codegen/terminal_wire_render_go.go
  • cmd/compozy-codegen/terminal_wire_render_typescript.go
  • cmd/compozy-codegen/terminal_wire_test.go
  • desktop/e2e/_electron/__tests__/shell.spec.ts
  • go.mod
  • internal/acp/acp_bench_test.go
  • internal/acp/agent_event.go
  • internal/acp/agent_event_tool.go
  • internal/acp/agent_process.go
  • internal/acp/agent_process_prompt.go
  • internal/acp/client.go
  • internal/acp/client_control.go
  • internal/acp/client_start_contract_test.go
  • internal/acp/handlers.go
  • internal/acp/handlers_helpers.go
  • internal/acp/handlers_session_state.go
  • internal/acp/handlers_session_update.go
  • internal/acp/handlers_test.go
  • internal/acp/launcher_tool_host_test.go
  • internal/acp/permission.go
  • internal/acp/permission_event.go
  • internal/acp/process_tree.go
  • internal/acp/process_tree_test.go
  • internal/acp/request_contract_test.go
  • internal/acp/start_process.go
  • internal/acp/terminal.go
  • internal/acp/terminal_access.go
  • internal/acp/terminal_conformance_test.go
  • internal/acp/terminal_create.go
  • internal/acp/terminal_process.go
  • internal/acp/terminal_test_support_test.go
  • internal/acp/tool_host.go
  • internal/acp/types.go
  • internal/api/contract/session_attention.go
  • internal/api/contract/settings_config_payloads.go
  • internal/api/contract/settings_source_payloads.go
  • internal/api/contract/settings_terminal_payload.go
  • internal/api/contract/terminal.go
  • internal/api/contract/terminal_enums.go
  • internal/api/contract/terminal_errors.go
  • internal/api/contract/terminal_projection_enums.go
  • internal/api/contract/terminal_sequence.go
  • internal/api/core/base_handlers.go
  • internal/api/core/conversions.go
  • internal/api/core/conversions_acp_observations.go
  • internal/api/core/conversions_general.go
  • internal/api/core/handlers_test.go
  • internal/api/core/interfaces_session.go
  • internal/api/core/profile_read_scope.go
  • internal/api/core/prompt_stream.go
  • internal/api/core/prompt_stream_blocks.go
  • internal/api/core/prompt_stream_emit.go
  • internal/api/core/session_attention_test.go
  • internal/api/core/session_manager_stub_test.go
  • internal/api/core/settings_general_payload.go
  • internal/api/core/settings_internal_test.go
  • internal/api/core/settings_section_requests.go
  • internal/api/core/settings_test.go
  • internal/api/core/stream_lifecycle.go
  • internal/api/core/tasks_integration_test.go
  • internal/api/core/tasks_surface_integration_test.go
  • internal/api/core/tasks_terminal_integration_test.go
  • internal/api/core/terminal_actor.go
  • internal/api/core/terminal_agent_handlers.go
  • internal/api/core/terminal_agent_handlers_test.go
  • internal/api/core/terminal_artifact_test.go
  • internal/api/core/terminal_browser_identity_test.go
  • internal/api/core/terminal_catalog.go
  • internal/api/core/terminal_catalog_sse.go
  • internal/api/core/terminal_catalog_test.go
  • internal/api/core/terminal_downloads.go
  • internal/api/core/terminal_errors.go
  • internal/api/core/terminal_handlers.go
  • internal/api/core/terminal_payloads.go
  • internal/api/core/terminal_port.go
  • internal/api/core/terminal_profile_read_scope.go
  • internal/api/core/terminal_stream_lifecycle.go
  • internal/api/core/terminal_stream_test.go
  • internal/api/core/terminal_transport_test.go
  • internal/api/core/terminal_wire_integration_test.go
  • internal/api/core/terminal_ws.go
  • internal/api/core/tool_errors.go
  • internal/api/core/tools_test.go
  • internal/api/core/window_manager_service.go
  • internal/api/httpapi/handlers.go
  • internal/api/httpapi/handlers_test.go
  • internal/api/httpapi/helpers_test.go
  • internal/api/httpapi/server_handler_config.go
  • internal/api/httpapi/server_shutdown.go
  • internal/api/httpapi/server_test.go
  • internal/api/httpapi/surface_routes.go
  • internal/api/httpapi/terminal_routes.go
  • internal/api/httpapi/window_manager_options.go
  • internal/api/spec/agent_hook_values.go
  • internal/api/spec/operations.go
  • internal/api/spec/parameters.go
  • internal/api/spec/schema_customizers.go
  • internal/api/spec/schema_enum_registry.go
  • internal/api/spec/schema_reflection.go
  • internal/api/spec/spec.go
  • internal/api/spec/spec_test.go
  • internal/api/spec/terminal.go
  • internal/api/spec/terminal_operation_helpers.go
  • internal/api/spec/terminal_operations_artifact.go
  • internal/api/spec/terminal_operations_catalog.go
  • internal/api/spec/terminal_operations_command.go
  • internal/api/spec/terminal_public_wire_test.go
  • internal/api/spec/terminal_schema_test.go
  • internal/api/spec/terminal_test.go
  • internal/api/spec/tool_schema_enums.go
  • internal/api/testutil/session_stub.go
  • internal/api/udsapi/handler_config.go
  • internal/api/udsapi/handlers_test.go
  • internal/api/udsapi/hosted_mcp.go
  • internal/api/udsapi/hosted_mcp_test.go
  • internal/api/udsapi/routes.go
  • internal/api/udsapi/server_handler_config.go
  • internal/api/udsapi/server_handlers.go
  • internal/api/udsapi/server_shutdown.go
  • internal/api/udsapi/terminal_integration_test.go
  • internal/api/udsapi/terminal_routes.go
  • internal/api/udsapi/udsapi_integration_test.go
  • internal/api/udsapi/window_manager_options.go
  • internal/cli/agent_identity.go
  • internal/cli/cli_integration_test.go
  • internal/cli/client_api_errors.go
  • internal/cli/client_bridge_target_resolution.go
  • internal/cli/client_loops.go
  • internal/cli/client_sessions.go
  • internal/cli/client_settings_vault.go
  • internal/cli/client_terminal.go
  • internal/cli/client_terminal_agent.go
  • internal/cli/client_terminal_contract.go
  • internal/cli/client_terminal_errors.go
  • internal/cli/client_terminal_frames.go
  • internal/cli/client_terminal_input.go
  • internal/cli/client_terminal_retry.go
  • internal/cli/client_terminal_stream.go
  • internal/cli/client_terminal_stream_test.go
  • internal/cli/client_test.go
  • internal/cli/client_tools.go
  • internal/cli/client_transport.go
  • internal/cli/client_window_manager_stream.go
  • internal/cli/config.go
  • internal/cli/config_terminal.go
  • internal/cli/config_test.go
  • internal/cli/daemon_status.go
  • internal/cli/daemon_wait_test.go
  • internal/cli/doc.go
  • internal/cli/doc_test.go
  • internal/cli/docpost/docpost.go
  • internal/cli/docpost/docpost_enrichment.go
  • internal/cli/docpost/docpost_test.go
  • internal/cli/local_database_test.go
  • internal/cli/perf_bench_test.go
  • internal/cli/profile_read_scope.go
  • internal/cli/profile_resolution.go
  • internal/cli/root.go
  • internal/cli/root_commands.go
  • internal/cli/root_terminal_errors.go
  • internal/cli/session_clarify.go
  • internal/cli/terminal.go
  • internal/cli/terminal_agent_commands.go
  • internal/cli/terminal_agent_output.go
  • internal/cli/terminal_attach_output.go
  • internal/cli/terminal_commands.go
  • internal/cli/terminal_input_mode.go
  • internal/cmdpalette/corecmds/apps.go
  • internal/cmdpalette/corecmds/provider_test.go
  • internal/codegen/storeschema/atlas.go
  • internal/codegen/storeschema/atlas_test.go
  • internal/codegen/storeschema/sqlc.go
  • internal/codegen/storeschema/sqlite_triggers.go
  • internal/codegen/storeschema/streams.go
  • internal/command/command_test.go
  • internal/command/instructions.go
  • internal/config/config_clone.go
  • internal/config/config_extensions_sandbox.go
  • internal/config/config_validation.go
  • internal/config/defaults.go
  • internal/config/lifecycle/lifecycle.go
  • internal/config/lifecycle/lifecycle_test.go
  • internal/config/merge_overlay.go
  • internal/config/merge_terminal.go
  • internal/config/profile_overlay.go
  • internal/config/terminal.go
  • internal/config/terminal_test.go
  • internal/daemon/boot.go
  • internal/daemon/boot_hooks.go
  • internal/daemon/boot_memory_session.go
  • internal/daemon/boot_network.go
  • internal/daemon/boot_profiles.go
  • internal/daemon/boot_profiles_test.go
  • internal/daemon/boot_publish.go
  • internal/daemon/boot_runtime_services.go
  • internal/daemon/boot_session_repair.go
  • internal/daemon/boot_tool_registry.go
  • internal/daemon/boot_worktrees_test.go
  • internal/daemon/cmd_palette_action_executor.go
  • internal/daemon/daemon.go
  • internal/daemon/daemon_extension_agent_native_e2e_integration_test.go
  • internal/daemon/daemon_lifecycle.go
  • internal/daemon/daemon_mock_agents_integration_test.go
  • internal/daemon/daemon_runtime_state.go
  • internal/daemon/daemon_shutdown_runtime.go
  • internal/daemon/daemon_test.go
  • internal/daemon/extension_commands_integration_test.go
  • internal/daemon/harness_context_integration_test.go
  • internal/daemon/hooks_bridge_session_dispatch.go
  • internal/daemon/hooks_notifier.go
  • internal/daemon/hosted_mcp.go
  • internal/daemon/loop_goal_context_runtime.go
  • internal/daemon/loop_goal_executor_test.go
  • internal/daemon/loop_goal_managed_runtime_integration_test.go
  • internal/daemon/loop_read_cli_e2e_integration_test.go
  • internal/daemon/model_catalog.go
  • internal/daemon/model_catalog_refresh_loop.go
  • internal/daemon/model_catalog_test.go
  • internal/daemon/native_hook_helpers.go
  • internal/daemon/native_memory_propose.go
  • internal/daemon/native_terminal_bindings.go
  • internal/daemon/native_terminal_calls.go
  • internal/daemon/native_terminal_context.go
  • internal/daemon/native_terminal_identity.go
  • internal/daemon/native_terminal_input.go
  • internal/daemon/native_terminal_io.go
  • internal/daemon/native_terminal_lifecycle.go
  • internal/daemon/native_tool_authored_paths.go
  • internal/daemon/native_tool_availability.go
  • internal/daemon/native_tool_bindings.go
  • internal/daemon/native_tool_dependencies.go
  • internal/daemon/native_tool_registry_skills.go
  • internal/daemon/native_tool_results.go
  • internal/daemon/native_tool_workspace_memory_calls.go
  • internal/daemon/native_tools.go
  • internal/daemon/native_tools_dependencies_builder.go
  • internal/daemon/native_tools_test.go
  • internal/daemon/notifier_test.go
  • internal/daemon/runtime_dependencies.go
  • internal/daemon/runtime_deps.go
  • internal/daemon/sandbox_reconcile.go
  • internal/daemon/sandbox_reconcile_test.go
  • internal/daemon/server_options.go
  • internal/daemon/session_manager_deps.go
  • internal/daemon/session_manager_factory.go
  • internal/daemon/task_claim_handoff.go
  • internal/daemon/task_claim_handoff_test.go
  • internal/daemon/terminal_boot.go
  • internal/daemon/terminal_hooks.go
  • internal/daemon/terminal_hooks_test.go
  • internal/daemon/terminal_permissions.go
  • internal/daemon/terminal_run_lifecycle.go
  • internal/daemon/terminal_window_bridge.go
  • internal/daemon/terminal_window_bridge_test.go
  • internal/daemon/tool_approval_bridge.go
  • internal/daemon/tool_approval_bridge_grants.go
  • internal/daemon/tool_approval_bridge_test.go
  • internal/daemon/tool_events.go
  • internal/daemon/window_manager_boot.go
  • internal/daemon/window_manager_runtime_test.go
  • internal/daemon/workspace_deletion_lifecycle.go
  • internal/daemon/worktree_turn_refresh.go
  • internal/extension/contract/sdk_named_types.go
  • internal/extension/contract/sdk_named_types_terminal.go
  • internal/extension/host_api_test.go
  • internal/hooks/dispatch_terminal.go
  • internal/hooks/events.go
  • internal/hooks/events_catalog.go
  • internal/hooks/events_terminal.go
  • internal/hooks/events_test.go
  • internal/hooks/introspection_descriptors.go
  • internal/hooks/introspection_terminal.go
  • internal/hooks/matcher.go
  • internal/hooks/payloads.go
  • internal/hooks/payloads_terminal.go
  • internal/hooks/terminal_dispatch_test.go
  • internal/loop/action.go
  • internal/loop/action_runloop.go
  • internal/loop/action_runtime_helpers.go
  • internal/loop/action_test.go
  • internal/loop/action_types.go
  • internal/loop/coordinator_action.go
  • internal/loop/goal/executor_test.go
  • internal/loop/goal/turns.go
  • internal/mcp/auth/manager.go
  • internal/mcp/hosted.go
  • internal/mcp/hosted_binding.go
  • internal/mcp/hosted_proxy.go
  • internal/mcp/hosted_proxy_result.go
  • internal/mcp/hosted_proxy_result_test.go
  • internal/mcp/hosted_proxy_test.go
  • internal/mcp/hosted_proxy_transport_error.go
  • internal/mcp/hosted_records.go
  • internal/mcp/hosted_test.go
  • internal/modelcatalog/service_refresh.go
  • internal/modelcatalog/service_test.go
  • internal/procutil/process_group_unix.go
  • internal/procutil/process_group_unix_test.go
  • internal/procutil/process_group_windows_test.go
  • internal/procutil/procutil_windows.go
  • internal/sandbox/daytona/tool_host.go
  • internal/sandbox/local/provider.go
  • internal/sandbox/types.go
  • internal/session/advertised_commands.go
  • internal/session/health_test.go
  • internal/session/interfaces.go
  • internal/session/manager.go
  • internal/session/manager_busy_input.go
  • internal/session/manager_busy_input_queue.go
  • internal/session/manager_busy_input_test.go
  • internal/session/manager_defaults.go
  • internal/session/manager_delete_attachment_commit.go
  • internal/session/manager_delete_attachments.go
  • internal/session/manager_delete_capabilities.go
  • internal/session/manager_delete_commit.go
  • internal/session/manager_delete_staging.go
  • internal/session/manager_delete_test.go
  • internal/session/manager_hooks.go
  • internal/session/manager_hooks_runtime_recovery.go
  • internal/session/manager_input_dispatch.go
  • internal/session/manager_managed_input_submit.go
  • internal/session/manager_prompt_admission.go
  • internal/session/manager_prompt_contract_test.go
  • internal/session/manager_prompt_event_storage.go
  • internal/session/manager_prompt_hosted.go
  • internal/session/manager_prompt_identity.go
  • internal/session/manager_prompt_input_event.go
  • internal/session/manager_prompt_lifetime_test.go
  • internal/session/manager_prompt_pump.go
  • internal/session/manager_prompt_recovery.go
  • internal/session/manager_prompt_request.go
  • internal/session/manager_prompt_state.go
  • internal/session/manager_prompt_submit.go
  • internal/session/manager_start_env.go
  • internal/session/manager_test.go
  • internal/session/manager_test_support_test.go
  • internal/session/manager_transition_test.go
  • internal/session/manager_types.go
  • internal/session/manager_workspace.go
  • internal/session/prompt_chunk_coalescer_test.go
  • internal/session/sandbox.go
  • internal/session/session_pending_events.go
  • internal/session/synthetic_prompt.go
  • internal/settings/general_settings.go
  • internal/settings/section_config_update.go
  • internal/settings/sections_daemon.go
  • internal/skills/diagnostics.go
  • internal/skills/loader.go
  • internal/skills/registry.go
  • internal/skills/registry_agent.go
  • internal/skills/registry_command.go
  • internal/skills/registry_config_generation.go
  • internal/skills/registry_discovery.go
  • internal/skills/registry_load.go
  • internal/skills/registry_reserved_runtime.go
  • internal/skills/registry_test.go
  • internal/skills/registry_toggle.go
  • internal/skills/registry_workspace_projection.go
  • internal/skills/resource.go
  • internal/store/globaldb/global_db_test.go
  • internal/store/globaldb/global_db_workspace.go
  • internal/store/globaldb/global_db_workspace_deletion.go
  • internal/store/globaldb/queries/workspace_deletions.sql
  • internal/store/globaldb/schema/definitions/01_workspace_deletions.sql
  • internal/store/globaldb/schema/migrations/00100_schema.sql
  • internal/store/globaldb/sqlcgen/models.go
  • internal/store/globaldb/sqlcgen/workspace_deletions.sql.go
  • internal/store/globaldb/sqlite_constraints.go
  • internal/store/migrate_streams_test.go
  • internal/store/session_attention.go
  • internal/store/types_event.go
  • internal/store/workspacedb/migration_stream.go
  • internal/store/workspacedb/pool.go
  • internal/store/workspacedb/pool_removal.go
  • internal/store/workspacedb/queries/terminal_journal.sql
  • internal/store/workspacedb/schema/definitions/01_terminal_journal.sql
  • internal/store/workspacedb/schema/embed.go
  • internal/store/workspacedb/schema/migrations/00002_schema.sql
  • internal/store/workspacedb/schema/migrations/00003_schema.sql
  • internal/store/workspacedb/schema/migrations/00004_schema.sql
  • internal/store/workspacedb/schema/schema.sql
  • internal/store/workspacedb/sqlcgen/db.go
  • internal/store/workspacedb/sqlcgen/models.go
  • internal/store/workspacedb/sqlcgen/terminal_journal.sql.go
  • internal/store/workspacedb/terminal_journal_artifact.go
  • internal/store/workspacedb/terminal_journal_types.go
  • internal/store/workspacedb/terminal_journal_write.go
  • internal/store/workspacedb/workspace_db_test.go
  • internal/store/write.go
  • internal/terminal/attach_tickets.go
  • internal/terminal/audit_gate.go
  • internal/terminal/capabilities.go
  • internal/terminal/capabilities_test.go
  • internal/terminal/classification.go
  • internal/terminal/classification_irreversible.go
  • internal/terminal/classification_shell.go
  • internal/terminal/coalescer.go
  • internal/terminal/coalescer_test.go
  • internal/terminal/contracts.go
  • internal/terminal/doc.go
  • internal/terminal/errors.go
  • internal/terminal/id.go
  • internal/terminal/idgen/id.go
  • internal/terminal/input_handoff.go
  • internal/terminal/input_outcome.go
  • internal/terminal/input_registry.go
  • internal/terminal/input_requests.go
  • internal/terminal/journal/artifact.go
  • internal/terminal/journal/assembler.go
  • internal/terminal/journal/id.go
  • internal/terminal/journal/idle.go
  • internal/terminal/journal/lane.go
  • internal/terminal/journal/lane_close.go
  • internal/terminal/journal/live_output_tail.go
  • internal/terminal/journal/output_tail.go
  • internal/terminal/journal/query.go
  • internal/terminal/journal/record.go
  • internal/terminal/journal/recording.go
  • internal/terminal/journal/scrub.go
  • internal/terminal/journal/service.go
  • internal/terminal/journal/service_test.go
  • internal/terminal/journal/workspace_removal.go
  • internal/terminal/journal_contracts.go
  • internal/terminal/lease.go
  • internal/terminal/lease_test.go
  • internal/terminal/lease_transitions.go
  • internal/terminal/manager.go
  • internal/terminal/manager_exec.go
  • internal/terminal/manager_journal.go
  • internal/terminal/manager_launch.go
  • internal/terminal/manager_open.go
  • internal/terminal/manager_pipe.go
  • internal/terminal/manager_run_lifecycle.go
  • internal/terminal/manager_test.go
  • internal/terminal/manager_workspace_lifecycle.go
  • internal/terminal/manager_workspace_removal.go
  • internal/terminal/mode_preamble.go
  • internal/terminal/model_output.go
  • internal/terminal/notifier.go
  • internal/terminal/options.go
  • internal/terminal/osc_filter.go
  • internal/terminal/osc_filter_test.go
  • internal/terminal/output_segments.go
  • internal/terminal/output_shape.go
  • internal/terminal/pty/echo_bsd.go
  • internal/terminal/pty/echo_linux.go
  • internal/terminal/pty/echo_unix_common.go
  • internal/terminal/pty/echo_windows.go
  • internal/terminal/pty/environment.go
  • internal/terminal/pty/io_lifecycle.go
  • internal/terminal/pty/pipe.go
  • internal/terminal/pty/pipe_unix.go
  • internal/terminal/pty/pipe_windows.go
  • internal/terminal/pty/proc_common.go
  • internal/terminal/pty/pty_test.go
  • internal/terminal/pty/pty_unix.go
  • internal/terminal/pty/pty_windows.go
  • internal/terminal/pty/pty_windows_test.go
  • internal/terminal/pty/reader_unix.go
  • internal/terminal/pty/redacted_write.go
  • internal/terminal/pty/shell_integration.go
  • internal/terminal/pty/size.go
  • internal/terminal/pty/types.go
  • internal/terminal/pty/windows_job.go
  • internal/terminal/pty/windows_sync_io.go
  • internal/terminal/reaper.go
  • internal/terminal/recording.go
  • internal/terminal/ring.go
  • internal/terminal/ring_test.go
  • internal/terminal/runtime_contracts.go
  • internal/terminal/sequence_schema.go
  • internal/terminal/session.go
  • internal/terminal/session_capture.go
  • internal/terminal/session_finalization.go
  • internal/terminal/session_handle.go
  • internal/terminal/session_input.go
  • internal/terminal/session_lifecycle.go
  • internal/terminal/session_output.go
  • internal/terminal/session_reader.go
  • internal/terminal/settings.go
  • internal/terminal/shell_candidates_unix.go
  • internal/terminal/shell_candidates_windows.go
  • internal/terminal/shell_candidates_windows_test.go
  • internal/terminal/subscription.go
  • internal/terminal/subscription_attach.go
  • internal/terminal/subscription_lifecycle.go
  • internal/terminal/subscription_presence.go
  • internal/terminal/test_helpers_test.go
  • internal/terminal/testdata/flood/main.go
  • internal/terminal/testdata/hidden_echo/main.go
  • internal/terminal/testdata/mid_escape/main.go
  • internal/terminal/testdata/prompt/main.go
  • internal/terminal/testdata/tui/main.go
  • internal/terminal/vt/actor.go
  • internal/terminal/vt/actor_test.go
  • internal/terminal/wait.go
  • internal/terminal/wait_test.go
  • internal/terminal/wire/codec.go
  • internal/terminal/wire/codec_test.go
  • internal/terminal/wire/flow_group.go
  • internal/terminal/wire/flow_queue.go
  • internal/terminal/wire/flow_test.go
  • internal/terminal/wire/manifest.go
  • internal/terminal/wire/opcodes.go
  • internal/terminal/wire/opcodes_generated.go
  • internal/testutil/acpmock/cmd/acpmock-driver/main.go
  • internal/testutil/acpmock/cmd/acpmock-driver/main_test.go
  • internal/testutil/acpmock/driver_cancel_test.go
  • internal/testutil/acpmock/driver_test.go
  • internal/testutil/acpmock/fixture_step_validation.go
  • internal/testutil/acpmock/fixture_test.go
  • internal/testutil/e2e/runtime_harness_lifecycle_test.go
  • internal/testutil/e2e/runtime_harness_transport.go
  • internal/toolmeta/native_entries.go
  • internal/toolmeta/registry_test.go
  • internal/toolruntime/registry_lifecycle.go
  • internal/toolruntime/registry_test.go
  • internal/toolruntime/types.go
  • internal/tools/approval_grants.go
  • internal/tools/approval_grants_test.go
  • internal/tools/builtin/builtin_test.go
  • internal/tools/builtin/descriptors.go
  • internal/tools/builtin/skills.go
  • internal/tools/builtin/terminal.go
  • internal/tools/builtin/toolsets.go
  • internal/tools/builtin_ids.go
  • internal/tools/builtin_ids_terminal.go
  • internal/tools/dispatch.go
  • internal/tools/dispatch_errors.go
  • internal/tools/dispatch_events.go
  • internal/tools/dispatch_hooks.go
  • internal/tools/dispatch_test.go
  • internal/tools/policy.go
  • internal/tools/reason.go
  • internal/tools/result.go
  • internal/tools/tool.go
  • internal/transcript/agent_event_codec.go
  • internal/transcript/redaction.go
  • internal/transcript/transcript_codec_contract_test.go
  • internal/transcript/ui_agent_event_payload.go
  • internal/workspace/resolver.go
  • internal/workspace/resolver_config_behavior_test.go
  • internal/workspace/resolver_crud.go
  • internal/workspace/resolver_mutation_test.go
  • internal/workspace/resolver_test_support_test.go
  • internal/workspace/scanner.go
  • internal/workspace/skill_identity.go
  • internal/workspace/store.go
  • internal/workspace/unregister_coordinator.go
  • internal/workspace/unregister_preparation.go
  • internal/workspace/workspace.go
  • magefiles/boundaries.go
  • packages/site/scripts/generate-openapi.ts
  • packages/ui/src/assets/fonts/symbols-nerd-font-mono-license.txt
  • packages/ui/src/components/__tests__/dialog.test.tsx
  • packages/ui/src/components/__tests__/dropdown-menu.test.tsx
  • packages/ui/src/components/__tests__/questionnaire.test.tsx
  • packages/ui/src/components/__tests__/slider.test.tsx
  • packages/ui/src/components/__tests__/table.test.tsx
  • packages/ui/src/components/custom/__tests__/detail-inspector.test.tsx
  • packages/ui/src/components/custom/__tests__/pill.test.tsx
  • packages/ui/src/components/custom/detail-inspector.tsx
  • packages/ui/src/components/custom/pill-types.ts
  • packages/ui/src/components/custom/pill-variants.ts
  • packages/ui/src/components/custom/pill.tsx
  • packages/ui/src/components/custom/property-row.tsx
  • packages/ui/src/components/dialog.tsx
  • packages/ui/src/components/hooks/use-dialog-context.ts
  • packages/ui/src/components/hooks/use-dialog-motion-transition.ts
  • packages/ui/src/components/hooks/use-dialog-motion.ts
  • packages/ui/src/components/questionnaire.tsx
  • packages/ui/src/components/reui/filter-value-selector.tsx
  • packages/ui/src/components/reui/filters-content.tsx
  • packages/ui/src/components/slider.tsx
  • packages/ui/src/components/table.tsx
  • packages/ui/src/components/terminal/__tests__/fake-font-face-set.ts
  • packages/ui/src/components/terminal/__tests__/fake-terminal-engine.ts
  • packages/ui/src/components/terminal/__tests__/terminal-fonts.test.ts
  • packages/ui/src/components/terminal/__tests__/terminal-view.test.tsx
  • packages/ui/src/components/terminal/terminal-engine.ts
  • packages/ui/src/components/terminal/terminal-fonts.ts
  • packages/ui/src/components/terminal/terminal-metrics.ts
  • packages/ui/src/components/terminal/terminal-registry.ts
  • packages/ui/src/components/terminal/terminal-renderer.ts
  • packages/ui/src/components/terminal/terminal-theme.ts
  • packages/ui/src/components/terminal/terminal-view.tsx
  • packages/ui/src/components/terminal/terminal-write-abandoned.ts
  • packages/ui/src/components/terminal/use-terminal-instance.ts
  • packages/ui/src/components/terminal/use-terminal-pending-queue.ts
  • packages/ui/src/exports/conversation.ts
  • packages/ui/src/exports/listing.ts
  • packages/ui/src/exports/terminal.ts
  • packages/ui/src/index.ts
  • packages/ui/src/primitives.ts
  • packages/ui/src/terminal-tokens.css
  • packages/ui/src/tokens-runtime.css
  • packages/ui/src/tokens.css
  • scripts/gate.sh
  • scripts/gate_integration_test.go
  • scripts/sync-design-md.mjs
  • scripts/sync-emojibase.mjs
  • sdk/go/contracts/hook_contracts_gen.go
  • sdk/go/contracts/hook_events_gen.go
  • sdk/go/contracts/types_017_gen.go
  • sdk/go/contracts/types_019_gen.go
  • sdk/go/contracts/types_020_gen.go
  • sdk/go/contracts/types_021_gen.go
  • sdk/go/contracts/types_022_gen.go
  • sdk/go/contracts/types_023_gen.go
  • sdk/go/contracts/types_024_gen.go
  • sdk/go/contracts/types_025_gen.go
  • sdk/go/contracts/types_026_gen.go
  • sdk/go/contracts/types_027_gen.go
  • sdk/go/contracts/types_028_gen.go
  • sdk/go/contracts/types_029_gen.go
  • sdk/go/contracts/types_030_gen.go
  • sdk/go/contracts/types_031_gen.go
  • skills/bundled_test.go
  • web/src/components/assistant-ui/__tests__/session-thread.test.tsx
  • web/src/components/assistant-ui/__tests__/session-timeline.logic.test.ts
  • web/src/components/assistant-ui/hooks/use-session-busy-input-actions.ts
  • web/src/components/assistant-ui/hooks/use-session-composer-context.ts
  • web/src/components/assistant-ui/hooks/use-session-composer-controller.ts
  • web/src/components/assistant-ui/hooks/use-session-composer-state.ts
  • web/src/components/assistant-ui/hooks/use-session-thread-state.ts
  • web/src/components/assistant-ui/session-composer-action-row.tsx
  • web/src/components/assistant-ui/session-composer-provider.tsx
  • web/src/components/assistant-ui/session-composer-send-button.tsx
  • web/src/components/assistant-ui/session-composer.tsx
  • web/src/components/assistant-ui/session-thread.tsx
  • web/src/components/assistant-ui/session-timeline-fold.ts
  • web/src/components/assistant-ui/session-timeline-summary.ts
  • web/src/components/assistant-ui/session-timeline-work.ts
  • web/src/components/assistant-ui/session-timeline.logic.ts
  • web/src/hooks/routes/__tests__/use-session-page-controls.test.tsx
  • web/src/hooks/routes/use-session-busy-input-controls.ts
  • web/src/hooks/routes/use-session-page-controls.ts
  • web/src/routeTree.gen.ts
  • web/src/routes/_app/settings/-terminal-settings-page.tsx
  • web/src/routes/_app/settings/__tests__/-general.test.tsx
  • web/src/routes/_app/settings/terminal.tsx
  • web/src/routes/_app/terminal.ts
  • web/src/routes/_app/terminal/$terminalId.tsx
  • web/src/routes/_app/terminal/index.tsx
  • web/src/storybook/app-route-stories.ts
  • web/src/storybook/msw.ts
  • web/src/storybook/route-story-registry.ts
  • web/src/storybook/route-story-types.ts
  • web/src/storybook/settings-route-stories.ts
  • web/src/storybook/terminal-route-stories.ts
  • web/src/systems/knowledge/components/__tests__/knowledge-detail-panel.test.tsx
  • web/src/systems/loops/hooks/__tests__/use-loop-editor-state.test.ts
  • web/src/systems/loops/hooks/loop-editor-store-contracts.ts
  • web/src/systems/loops/hooks/loop-editor-store-draft.ts
  • web/src/systems/loops/hooks/use-loop-editor-clipboard.ts
  • web/src/systems/loops/hooks/use-loop-editor-graph-actions.ts
  • web/src/systems/loops/hooks/use-loop-editor-state.ts
  • web/src/systems/loops/hooks/use-loop-editor-synchronization.ts
  • web/src/systems/loops/hooks/use-loop-editor.ts
  • web/src/systems/loops/lib/loop-editor-view-model.ts
  • web/src/systems/os/apps/settings/settings-window.tsx
  • web/src/systems/os/apps/tasks/__tests__/use-task-run-location.test.tsx
  • web/src/systems/os/apps/tasks/use-task-run-location.ts
  • web/src/systems/os/apps/terminal/__tests__/use-terminal-window-controller-state.test.ts
  • web/src/systems/os/apps/terminal/hooks/use-terminal-window-context.ts
  • web/src/systems/os/apps/terminal/hooks/use-terminal-window-controller-state.ts
  • web/src/systems/os/apps/terminal/hooks/use-terminal-window-host-actions.ts
  • web/src/systems/os/apps/terminal/lib/terminal-window-journal.ts
  • web/src/systems/os/apps/terminal/terminal-window.tsx
  • web/src/systems/os/components/__tests__/attention-bell.test.tsx
  • web/src/systems/os/components/__tests__/os-dock.test.tsx
  • web/src/systems/os/components/attention-bell-row.tsx
  • web/src/systems/os/components/desktop-dock.tsx
  • web/src/systems/os/components/desktop-menubar.tsx
  • web/src/systems/os/components/desktop-pager.tsx
  • web/src/systems/os/components/desktop-shell.tsx
  • web/src/systems/os/components/index.ts
  • web/src/systems/os/components/os-dock-icons.tsx
  • web/src/systems/os/components/os-dock-tab-bar.tsx
  • web/src/systems/os/components/os-dock.tsx
  • web/src/systems/os/components/stories/_desktop.tsx
  • web/src/systems/os/components/stories/_shell-fixture.tsx
  • web/src/systems/os/hooks/__tests__/os-interaction-hooks.test.tsx
  • web/src/systems/os/hooks/__tests__/use-desktop-overlays.test.tsx
  • web/src/systems/os/hooks/__tests__/use-os-attention.test.tsx
  • web/src/systems/os/hooks/__tests__/use-os-palette-root.test.tsx
  • web/src/systems/os/hooks/__tests__/use-os-window-deck.test.tsx
  • web/src/systems/os/hooks/__tests__/window-manager-runtime.test.ts
  • web/src/systems/os/hooks/use-desktop-dock.ts
  • web/src/systems/os/hooks/use-desktop-overlays.ts
  • web/src/systems/os/hooks/use-desktop-shell-body.ts
  • web/src/systems/os/hooks/use-menubar-attention-selection.ts
  • web/src/systems/os/hooks/use-os-attention.ts
  • web/src/systems/os/hooks/use-os-palette-dispatch-actions.ts
  • web/src/systems/os/hooks/use-os-palette-domain-open.ts
  • web/src/systems/os/hooks/use-os-palette-domain-search.ts
  • web/src/systems/os/hooks/use-os-palette-entity-sections.ts
  • web/src/systems/os/hooks/use-os-palette-landing-actions.ts
  • web/src/systems/os/hooks/use-os-palette-resource-sections.ts
  • web/src/systems/os/hooks/use-os-palette-root.ts
  • web/src/systems/os/hooks/use-os-palette-terminal-search.ts
  • web/src/systems/os/hooks/use-terminal-dock-running.ts
  • web/src/systems/os/hooks/use-window-live-data-enabled.ts
  • web/src/systems/os/hooks/use-workspaces-switcher.ts
  • web/src/systems/os/lib/__tests__/app-registry.test.ts
  • web/src/systems/os/lib/__tests__/attention-model.test.ts
  • web/src/systems/os/lib/__tests__/cmd-palette-dispatch.test.ts
  • web/src/systems/os/lib/__tests__/desktop-chrome-client-context.test.ts
  • web/src/systems/os/lib/__tests__/os-palette-domain-search.test.ts
  • web/src/systems/os/lib/__tests__/raise-palette-view.test.ts
  • web/src/systems/os/lib/__tests__/routing-coordinator.test.ts
  • web/src/systems/os/lib/app-catalog.ts
  • web/src/systems/os/lib/app-registry.ts
  • web/src/systems/os/lib/attention-model.ts
  • web/src/systems/os/lib/desktop-menubar-model.ts
  • web/src/systems/os/lib/os-dock-model.ts
  • web/src/systems/os/lib/os-palette-domain-context.ts
  • web/src/systems/os/lib/os-palette-domain-search.ts
  • web/src/systems/os/lib/os-types.ts
  • web/src/systems/os/lib/raise-palette-view.ts
  • web/src/systems/os/lib/routing-coordinator.ts
  • web/src/systems/os/lib/window-manager-view.ts
  • web/src/systems/os/mocks/cmd-palette-fixtures.ts
  • web/src/systems/os/runtime/window-manager-desktop-commands.ts
  • web/src/systems/os/runtime/window-manager-runtime-core.ts
  • web/src/systems/os/runtime/window-manager-runtime.ts
  • web/src/systems/os/runtime/window-manager-semantic-open.ts
  • web/src/systems/os/runtime/window-manager-tab-commands.ts
  • web/src/systems/os/stores/window-manager-store-types.ts
  • web/src/systems/sandbox/routes/sandbox-page.tsx
  • web/src/systems/session/components/__tests__/permission-data-part.test.tsx
  • web/src/systems/session/components/__tests__/session-decision-dock.test.tsx
  • web/src/systems/session/components/__tests__/tool-call-card.test.tsx
  • web/src/systems/session/components/permission-data-part.tsx
  • web/src/systems/session/components/permission-dock.tsx
  • web/src/systems/session/components/permission-waiting-line.tsx
  • web/src/systems/session/components/session-chat-runtime-provider.tsx
  • web/src/systems/session/components/session-terminal-quote-slot.tsx
  • web/src/systems/session/components/tool-call-card.tsx
  • web/src/systems/session/components/tool-renderers/__tests__/expanded-tool-content.test.tsx
  • web/src/systems/session/components/tool-renderers/expanded-tool-content.tsx
  • web/src/systems/session/components/tool-renderers/terminal-content.tsx
  • web/src/systems/session/hooks/__tests__/use-session-actions.test.tsx
  • web/src/systems/session/hooks/__tests__/use-session-create-dialog.test.tsx
  • web/src/systems/session/hooks/__tests__/use-session-create.test.tsx
  • web/src/systems/session/hooks/use-abortable-mutation-request.ts
  • web/src/systems/session/hooks/use-permission-dock.ts
  • web/src/systems/session/hooks/use-reject-menu-elements.ts
  • web/src/systems/session/hooks/use-session-actions.ts
  • web/src/systems/session/hooks/use-session-chat-runtime.ts
  • web/src/systems/session/hooks/use-session-create-dialog-actions.ts
  • web/src/systems/session/hooks/use-session-create-dialog.ts
  • web/src/systems/session/hooks/use-session-create-submit.ts
  • web/src/systems/session/hooks/use-session-create.ts
  • web/src/systems/session/hooks/use-session-prompt-fallback.ts
  • web/src/systems/session/hooks/use-session-terminal-catalog.ts
  • web/src/systems/session/hooks/use-session-terminal-quote.ts
  • web/src/systems/session/hooks/use-session-terminal-scope.ts
  • web/src/systems/session/index.ts
  • web/src/systems/session/lib/__tests__/session-data-renderers.test.tsx
  • web/src/systems/session/lib/__tests__/session-pending-interactions.test.ts
  • web/src/systems/session/lib/__tests__/session-prompt-chat-transport.test.ts
  • web/src/systems/session/lib/__tests__/session-prompt-recovery.test.ts
  • web/src/systems/session/lib/__tests__/session-terminal-quote.test.ts
  • web/src/systems/session/lib/__tests__/tool-labels.test.ts
  • web/src/systems/session/lib/message-parts.ts
  • web/src/systems/session/lib/permission-receipt-copy.ts
  • web/src/systems/session/lib/session-create-destination.ts
  • web/src/systems/session/lib/session-first-prompt.ts
  • web/src/systems/session/lib/session-pending-interactions.ts
  • web/src/systems/session/lib/session-prompt-chat-transport.ts
  • web/src/systems/session/lib/session-prompt-recovery.ts
  • web/src/systems/session/lib/session-terminal-quote-actions.ts
  • web/src/systems/session/lib/session-terminal-quote-prompt.ts
  • web/src/systems/session/lib/session-terminal-quote.ts
  • web/src/systems/session/lib/session-terminal-tools.ts
  • web/src/systems/session/lib/session-toolkit.ts
  • web/src/systems/session/lib/tool-labels.ts
  • web/src/systems/session/quote.ts
  • web/src/systems/session/stores/__tests__/session-create-store.test.ts
  • web/src/systems/session/stores/__tests__/session-store.test.ts
  • web/src/systems/session/stores/session-create-store.ts
  • web/src/systems/session/types.ts
  • web/src/systems/settings/adapters/__tests__/settings-api.test.ts
  • web/src/systems/settings/components/__tests__/terminal-settings-sections.test.tsx
  • web/src/systems/settings/components/index.ts
  • web/src/systems/settings/components/settings-byte-field.tsx
  • web/src/systems/settings/components/terminal-limits-settings-section.tsx
  • web/src/systems/settings/components/terminal-recording-settings-section.tsx
  • web/src/systems/settings/components/terminal-retention-settings-section.tsx
  • web/src/systems/settings/components/terminal-settings-field-helpers.tsx
  • web/src/systems/settings/components/terminal-settings-section-types.ts
  • web/src/systems/settings/components/terminal-settings-sections.tsx
  • web/src/systems/settings/components/terminal-shell-settings-section.tsx
  • web/src/systems/settings/components/terminal-shell-validation.ts
  • web/src/systems/settings/hooks/__tests__/use-settings-general-page.test.tsx
  • web/src/systems/settings/hooks/__tests__/use-settings-mutations.test.tsx
  • web/src/systems/settings/hooks/__tests__/use-settings-page.test.tsx
  • web/src/systems/settings/hooks/use-settings-roles-page.ts
  • web/src/systems/settings/index.ts
  • web/src/systems/settings/lib/__tests__/sections.test.ts
  • web/src/systems/settings/lib/sections.ts
  • web/src/systems/settings/lib/terminal-settings-duration.ts
  • web/src/systems/settings/lib/terminal-settings-projection.ts
  • web/src/systems/settings/lib/terminal-settings-types.ts
  • web/src/systems/settings/mocks/fixtures.ts
  • web/src/systems/settings/types.ts
  • web/src/systems/terminal/__tests__/types.test.ts
  • web/src/systems/terminal/adapters/__tests__/terminal-api.test.ts
  • web/src/systems/terminal/adapters/__tests__/terminal-socket.test.ts
  • web/src/systems/terminal/adapters/terminal-api.ts
  • web/src/systems/terminal/adapters/terminal-socket.ts
  • web/src/systems/terminal/components/__tests__/terminal-approvals.test.tsx
  • web/src/systems/terminal/components/__tests__/terminal-input-request.test.tsx
  • web/src/systems/terminal/components/__tests__/terminal-journal-panel.test.tsx
  • web/src/systems/terminal/components/__tests__/terminal-quote-surface.test.tsx
  • web/src/systems/terminal/components/__tests__/terminal-recording-player.test.tsx
  • web/src/systems/terminal/components/__tests__/terminal-window-app.test.tsx
  • web/src/systems/terminal/components/__tests__/terminal-window-harness.tsx
  • web/src/systems/terminal/components/session-terminal-block.tsx
  • web/src/systems/terminal/components/stories/terminal-scripted-socket.ts
  • web/src/systems/terminal/components/stories/terminal-visual-stage.tsx
  • web/src/systems/terminal/components/terminal-approval-detail.tsx
  • web/src/systems/terminal/components/terminal-connecting-line.tsx
  • web/src/systems/terminal/components/terminal-empty-states.tsx
  • web/src/systems/terminal/components/terminal-exit-bar.tsx
  • web/src/systems/terminal/components/terminal-grant-row.tsx
  • web/src/systems/terminal/components/terminal-header-actions.tsx
  • web/src/systems/terminal/components/terminal-header.tsx
  • web/src/systems/terminal/components/terminal-input-request-stack.tsx
  • web/src/systems/terminal/components/terminal-input-request.tsx
  • web/src/systems/terminal/components/terminal-journal-confidence.tsx
  • web/src/systems/terminal/components/terminal-journal-detail.tsx
  • web/src/systems/terminal/components/terminal-journal-empty.tsx
  • web/src/systems/terminal/components/terminal-journal-footer.tsx
  • web/src/systems/terminal/components/terminal-journal-host-chrome.tsx
  • web/src/systems/terminal/components/terminal-journal-output.tsx
  • web/src/systems/terminal/components/terminal-journal-panel.tsx
  • web/src/systems/terminal/components/terminal-journal-row.tsx
  • web/src/systems/terminal/components/terminal-journal-toolbar.tsx
  • web/src/systems/terminal/components/terminal-lease-badge.tsx
  • web/src/systems/terminal/components/terminal-limit-dialog.tsx
  • web/src/systems/terminal/components/terminal-notices.tsx
  • web/src/systems/terminal/components/terminal-pane.tsx
  • web/src/systems/terminal/components/terminal-pipe-log-pane.tsx
  • web/src/systems/terminal/components/terminal-quote-block.tsx
  • web/src/systems/terminal/components/terminal-recording-player.tsx
  • web/src/systems/terminal/components/terminal-takeover-dialog.tsx
  • web/src/systems/terminal/components/terminal-window-app.tsx
  • web/src/systems/terminal/components/terminal-window-body.tsx
  • web/src/systems/terminal/contexts/terminal-store-context.tsx
  • web/src/systems/terminal/contexts/terminal-store-handle.ts
  • web/src/systems/terminal/hooks/__tests__/use-terminal-catalog-stream.test.tsx
  • web/src/systems/terminal/hooks/__tests__/use-terminal-input-answer.test.tsx
  • web/src/systems/terminal/hooks/__tests__/use-terminal-recordings.test.tsx
  • web/src/systems/terminal/hooks/use-compact-terminal-window.ts
  • web/src/systems/terminal/hooks/use-known-terminal-title.ts
  • web/src/systems/terminal/hooks/use-terminal-attachment.ts
  • web/src/systems/terminal/hooks/use-terminal-catalog-stream.ts
  • web/src/systems/terminal/hooks/use-terminal-input-answer.ts
  • web/src/systems/terminal/hooks/use-terminal-journal-context.ts
  • web/src/systems/terminal/hooks/use-terminal-journal-unlocked.ts
  • web/src/systems/terminal/hooks/use-terminal-pane-status.ts
  • web/src/systems/terminal/hooks/use-terminal-recording-playback.ts
  • web/src/systems/terminal/hooks/use-terminal-recordings.ts
  • web/src/systems/terminal/hooks/use-terminal-replay.ts
  • web/src/systems/terminal/hooks/use-terminal-scope-cleanup.ts
  • web/src/systems/terminal/hooks/use-terminal-selection.ts
  • web/src/systems/terminal/hooks/use-terminal-store.ts
  • web/src/systems/terminal/hooks/use-terminal-window-app-state.ts
  • web/src/systems/terminal/hooks/use-terminal-window-body-controller.ts
  • web/src/systems/terminal/hooks/use-terminal-window-connection.ts
  • web/src/systems/terminal/index.ts
  • web/src/systems/terminal/lib/__tests__/query-keys.test.ts
  • web/src/systems/terminal/lib/__tests__/terminal-badge.test.ts
  • web/src/systems/terminal/lib/__tests__/terminal-catalog-stream.test.ts
  • web/src/systems/terminal/lib/__tests__/terminal-journal-clock.test.ts
  • web/src/systems/terminal/lib/__tests__/terminal-protocol-client.test.ts
  • web/src/systems/terminal/lib/__tests__/terminal-quote.test.ts
  • web/src/systems/terminal/lib/__tests__/terminal-recording-state.test.ts
  • web/src/systems/terminal/lib/__tests__/terminal-scope-key.test.ts
  • web/src/systems/terminal/lib/__tests__/terminal-stream-harness.ts
  • web/src/systems/terminal/lib/asciicast.ts
  • web/src/systems/terminal/lib/catalog-query.ts
  • web/src/systems/terminal/lib/query-keys.ts
  • web/src/systems/terminal/lib/query-options.ts
  • web/src/systems/terminal/lib/terminal-argv.ts
  • web/src/systems/terminal/lib/terminal-attention-location.ts
  • web/src/systems/terminal/lib/terminal-backoff.ts
  • web/src/systems/terminal/lib/terminal-badge.ts
  • web/src/systems/terminal/lib/terminal-catalog-stream.ts
  • web/src/systems/terminal/lib/terminal-command-sender.ts
  • web/src/systems/terminal/lib/terminal-contract-schema.ts
  • web/src/systems/terminal/lib/terminal-control-frames.ts
  • web/src/systems/terminal/lib/terminal-copy.ts
  • web/src/systems/terminal/lib/terminal-credit-window.ts
  • web/src/systems/terminal/lib/terminal-emulator-queue.ts
  • web/src/systems/terminal/lib/terminal-exit.ts
  • web/src/systems/terminal/lib/terminal-frame-consumers.ts
  • web/src/systems/terminal/lib/terminal-gap-buffer.ts
  • web/src/systems/terminal/lib/terminal-grant.ts
  • web/src/systems/terminal/lib/terminal-input-expiry.ts
  • web/src/systems/terminal/lib/terminal-input-identity.ts
  • web/src/systems/terminal/lib/terminal-journal-actor.ts
  • web/src/systems/terminal/lib/terminal-journal-clock.ts
  • web/src/systems/terminal/lib/terminal-journal-copy.ts
  • web/src/systems/terminal/lib/terminal-journal-filter-fields.ts
  • web/src/systems/terminal/lib/terminal-journal-host.ts
  • web/src/systems/terminal/lib/terminal-lease-attr.ts
  • web/src/systems/terminal/lib/terminal-lease-requests.ts
  • web/src/systems/terminal/lib/terminal-lease.ts
  • web/src/systems/terminal/lib/terminal-output-consumer.ts
  • web/src/systems/terminal/lib/terminal-permission-copy.ts
  • web/src/systems/terminal/lib/terminal-permission.ts
  • web/src/systems/terminal/lib/terminal-protocol-client.ts
  • web/src/systems/terminal/lib/terminal-protocol-contract.ts
  • web/src/systems/terminal/lib/terminal-quote-choose.ts
  • web/src/systems/terminal/lib/terminal-quote-pending.ts
  • web/src/systems/terminal/lib/terminal-quote.ts
  • web/src/systems/terminal/lib/terminal-recording-state.ts
  • web/src/systems/terminal/lib/terminal-redacted-input-consumer.ts
  • web/src/systems/terminal/lib/terminal-redacted-marker.ts
  • web/src/systems/terminal/lib/terminal-replay-state.ts
  • web/src/systems/terminal/lib/terminal-resync.ts
  • web/src/systems/terminal/lib/terminal-scope-key.ts
  • web/src/systems/terminal/lib/terminal-stream-fatal.ts
  • web/src/systems/terminal/lib/terminal-stream-open.ts
  • web/src/systems/terminal/lib/terminal-window-actions.ts
  • web/src/systems/terminal/lib/terminal-wire-schema.ts
  • web/src/systems/terminal/lib/terminal-wire.ts
  • web/src/systems/terminal/mocks/index.ts
  • web/src/systems/terminal/mocks/terminal-fixtures.ts
  • web/src/systems/terminal/parts.ts
  • web/src/systems/terminal/stores/__tests__/terminal-store.test.ts
  • web/src/systems/terminal/stores/terminal-journal-unlock-store.ts
  • web/src/systems/terminal/stores/terminal-store.ts
  • web/src/systems/terminal/types.ts
  • web/src/systems/tool-approvals/components/__tests__/tool-approval-grants-section.test.tsx
  • web/src/systems/tool-approvals/components/tool-approval-grants-section.tsx
  • web/src/systems/tool-approvals/hooks/__tests__/use-tool-approval-grants-panel.test.tsx
  • web/src/systems/tool-approvals/hooks/use-tool-approval-grants-panel.ts
  • web/src/systems/tool-approvals/mocks/fixtures.ts
  • web/src/systems/tool-approvals/mocks/index.ts

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

@github-actions

github-actions Bot commented Aug 26, 2026

Copy link
Copy Markdown
Contributor

React Doctor found no issues, but some checks were incomplete.

Incomplete Checks

  • dead-code: Maintainability analysis was incomplete: source-length-limit (3000001 observed, limit 1000000) while scanning src/generated/compozy-openapi.d.ts.
⚠️ Warning: .github/workflows/react-doctor.yml is configured incorrectly. See below to fix.

React Doctor compares against main to report only the issues this pull request introduces. This run couldn't complete that comparison (usually a shallow CI checkout with no merge base), so it listed every issue in the changed files, including ones that already existed on main.

Add fetch-depth: 0 to the actions/checkout step in .github/workflows/react-doctor.yml so the checkout includes the history React Doctor needs:

 jobs:
   react-doctor:
     steps:
       - uses: actions/checkout@v5
+        with:
+          fetch-depth: 0

       - uses: millionco/react-doctor@v2

To silence this warning, set silence-missing-baseline-warning: true on the React Doctor action.

Reviewed by React Doctor for commit fc34ec8.

@pedronauck
pedronauck force-pushed the integrated-terminal branch from 0887eba to dbcf2b9 Compare August 27, 2026 03:49
@pedronauck
pedronauck force-pushed the integrated-terminal branch from 083f40b to e670e6b Compare August 29, 2026 03:16
@pedronauck
pedronauck force-pushed the integrated-terminal branch from e670e6b to 0f84c0e Compare August 29, 2026 21:45
pedronauck and others added 19 commits September 2, 2026 21:15
Close is idempotent (exited terminals answer their recorded exit), the
stream client settles as closed instead of reconnecting a dead terminal,
size votes made before the socket opened are delivered on open, and the
fish shim rides vendor_conf.d without hiding the user's config. The web
terminal is window-native: one terminal per OS window, an id-less route
that adopts or creates, head-level Journal/New/Close verbs, and window
close never signals the PTY.

Co-Authored-By: Claude Fable 5 <[email protected]>
The zsh marker hooks shadowed zsh's read-only status parameter, killing the
precmd hook on every prompt and dropping every finish marker; a live zsh test
now pins the clean hook. The id-less terminal route waits for a catalog fetch
from this mount before adopting or creating, so a terminal opened moments
before the window cannot be missed and duplicated. Browser journeys walk the
window-native flow end to end, and the QA tracker records the walked verdicts.

Co-Authored-By: Claude Fable 5 <[email protected]>
Pull ADR-012 door 3 (`_meta.terminal_output`): the daemon no longer opts
into agent-reported terminal output, and the whole reported pipeline goes
with it — ACP ingestion and suppression, the `agent_reported` origin,
contract/stream payload fields, transcript codec/replay, acpmock steps,
and the web "reported by agent" xterm blocks. Agent-internal commands
render as plain command output again; the deliberate S3 supervised block
and the ACP pipe door stay untouched.

Co-Authored-By: Claude Fable 5 <[email protected]>
A daemon bridge observes terminal opened events and, for agent-actor
interactive PTY terminals (terminal_open, terminal_exec visible:true),
opens a managed Terminal window in the workspace window model — on the
desktop showing the bound session, never moving focus, one-shot per
terminal, deduped by instance key, and never failing the tool call.
Pipe terminals and human actors materialize nothing.

The transcript now recognizes real agent traffic: hosted-MCP tool names
(mcp__<server>__compozy__*) normalize to their native ids for the S3
supervised block and row labels, MCP string envelopes decode so
terminal_id reaches the block, and the remaining terminal tools carry
registered labels. E2E-003 asserts the window materializes without
stealing focus.

Co-Authored-By: Claude Fable 5 <[email protected]>
…rfaces

Terminal tool descriptors now lead with the desktop-window capability,
the official skill documents the windows contract and the
write-wait-read loop, and the site docs replace the agent-reported
block section with the plain-output and window-materialization truth.
QA tracker updated for ADR-019: the reported-terminal scenario is
deleted, affected scenarios were reset and re-walked with a real Haiku
agent in an isolated lab, and a new materialization scenario records
the walk (docs/qa/reports/2026-09-01-terminal-rework.md).

Co-Authored-By: Claude Fable 5 <[email protected]>
… rebase

Main's loop work took 00098/00099, so the workspace-deletion-intents
migration moves to the next gap-free version (00100), atlas.sum is
rehashed for the unpublished tail, and the SDK contract chunks
regenerate to the merged truth.

Co-Authored-By: Claude Fable 5 <[email protected]>
Main's new loop tests construct ActionExecutionInput with a value actor
while this branch moved the field to *task.ActorContext; the merged call
sites now take the pointer. The global ahead-schema fixtures pinned
version 100, which the renumbered terminal migration just occupied —
they use the 999 sentinel the other streams already use.

Co-Authored-By: Claude Fable 5 <[email protected]>
@pedronauck
pedronauck marked this pull request as ready for review September 3, 2026 00:17
@greptile-apps

greptile-apps Bot commented Sep 3, 2026

Copy link
Copy Markdown

Too many files changed for review (1132 files, 100 file limit).

@pedronauck
pedronauck merged commit b7667d8 into main Sep 3, 2026
21 of 24 checks passed
@pedronauck
pedronauck deleted the integrated-terminal branch September 3, 2026 00:17
@pedronauck pedronauck mentioned this pull request Sep 2, 2026
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.

[BUG] (skills): unparseable SKILL.md frontmatter is listed but fails skill_view as backend_unhealthy

1 participant