Skip to content

feat(cli): add secure supervised Zoo host - #1158

Open
taltas wants to merge 7 commits into
fm/zoo-cli-headless-apifrom
fm/zoo-cli-host-security
Open

feat(cli): add secure supervised Zoo host#1158
taltas wants to merge 7 commits into
fm/zoo-cli-headless-apifrom
fm/zoo-cli-host-security

Conversation

@taltas

@taltas taltas commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Stack

Position 3 of 6 in the Zoo CLI stack.

  • Parent/base: fm/zoo-cli-headless-api (PR feat(cli): add direct headless extension API #1157)
  • Child: fm/zoo-cli-automation (planned)
  • Native local ancestry is preserved; GitHub uses the documented classic fallback because native stacked PRs are disabled for this repository.

Scope

  • Adds private @roo-code/zoo-host with production extension bootstrap through the VS Code shim.
  • Adds dedicated Node IPC transport, gapless sequencing, heartbeat, serialized dispatch, ACK plus DONE/ERROR, and immutable workspace identity.
  • Adds explicit extension/workspace/storage/app roots.
  • Adds injectable macOS Keychain/Linux Secret Service storage and no plaintext shim fallback.
  • Adds true task-local provider/profile/model/mode/reasoning/approval overrides resolved read-only before eviction.
  • Preserves canonical approval policy, including denials and destructive-command boundaries.
  • Adds non-rehydrating headless cancellation while retaining existing UI cancellation behavior.

Acceptance Evidence

  • pnpm --dir packages/zoo-host test (4 tests), typecheck, and build
  • pnpm --dir packages/vscode-shim test src/__tests__/ExtensionContext.test.ts (22 tests)
  • pnpm --dir src test core/webview/__tests__/ClineProvider.run-overrides.spec.ts extension/__tests__/api-headless.spec.ts (8 tests)
  • Relevant package and extension typechecks/lint passed.
  • Repository pre-commit lint and pre-push typecheck passed.

Risk

Provider-specific model fields are resolved through the canonical model-key map. OS-vault command availability remains a packaging/runtime prerequisite; unsupported platforms fail rather than downgrading to plaintext. The child currently provides an empty read-only history result pending the automation/session layer.

flowchart LR
    P[zoo parent] <-->|Node IPC only| H[zoo-host]
    H --> S[VS Code shim]
    S --> E[Production extension.js]
    E --> A[Direct headless API]
    V[OS credential vault] --> S
    R[Explicit workspace/storage roots] --> H
    H -->|ACK then DONE/ERROR| P
Loading

@coderabbitai

coderabbitai Bot commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: cf74de13-4272-42d9-807a-bc2b030a0321

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

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@taltas
taltas force-pushed the fm/zoo-cli-headless-api branch from 8a77d78 to c2a17a8 Compare August 5, 2026 18:01
@taltas
taltas force-pushed the fm/zoo-cli-host-security branch 2 times, most recently from 4274a2f to d692b18 Compare August 5, 2026 18:09
@taltas
taltas force-pushed the fm/zoo-cli-headless-api branch from 83a32fc to f6ecb17 Compare August 5, 2026 18:20
@taltas
taltas force-pushed the fm/zoo-cli-host-security branch from d692b18 to a957c99 Compare August 5, 2026 18:20
@taltas
taltas force-pushed the fm/zoo-cli-host-security branch from 8391c2b to 0aa818f Compare August 5, 2026 19:06
@codecov

codecov Bot commented Aug 5, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 83.82353% with 11 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
src/core/task/Task.ts 75.00% 4 Missing and 3 partials ⚠️
src/core/webview/ClineProvider.ts 89.18% 1 Missing and 3 partials ⚠️

📢 Thoughts on this report? Let us know!

@github-actions github-actions Bot added the awaiting-review PR changes are ready and waiting for maintainer re-review label Aug 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

awaiting-review PR changes are ready and waiting for maintainer re-review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant