Repository navigation
Show Orca publishing guidance only when the host has it on - #34547
Conversation
Walkthrough
Priority: Merge Risk:
|
There was a problem hiding this comment.
Actionable comments posted: 1

Review info
-
Run configuration-
- Source mode: Auto
- Repository: Unavailable
- Branch: Unavailable
- File: No configuration file from this repository applied
- Commit: Unavailable
- Layers: Repository UI
- Review profile: CHILL
- Plan: Advanced
- Run ID:
86cbe5dd-a3f9-4960-8741-0fdd3dda8f18
Files selected for processing: 17-
config/scripts/generate-bundled-skill-guides.mjsconfig/scripts/generate-bundled-skill-guides.test.mjsresources/skills/current-manifest.jsonresources/skills/released-digests.jsonskill-guides/orca-cli.mdskill-guides/orca-cli/references/artifacts.mdskill-guides/orca-cli/references/skill-sharing.mdskills/orca-cli/SKILL.mdsrc/cli/bundled-skill-guides.tssrc/cli/handlers/bundled-skill-guide-table.tssrc/cli/handlers/skill-guide-get.tssrc/cli/handlers/skill-guide-host-gate.test.tssrc/cli/handlers/skill-guide-host-gate.tssrc/cli/skills-reference-selector.test.tssrc/cli/skills.test.tssrc/cli/specs/bundled-guide-flags.test.tssrc/main/skills/bundled-skill-install/bundled-skill-sources.ts
Files with no reviewable changes: 2-
- src/cli/handlers/bundled-skill-guide-table.ts
- src/cli/skills-reference-selector.test.ts
Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 7 remain after this review.
-
| @@ -0,0 +1,32 @@ | |||
| <!-- host-capability: artifact-publishing --> | |||
There was a problem hiding this comment.
Keep artifact revocation guidance available when publishing is off.
When artifactSharingEnabled is false, the host gate removes this entire reference. skills get orca-cli --reference artifacts then rejects the request. The guide says list, unshare, and delete remain available, but an agent cannot load their commands or the path and token rules needed to revoke an existing public link. Put those commands in an ungated reference; gate only share and update guidance. (raw.githubusercontent.com)
ELI5
The Orca CLI skill that Browser Use setup installs was telling agents about Orca's public-link publishing even when the user had publishing turned off. An agent asked for "a public link" could pick Orca and then ask the user to flip a setting. Now agents only learn about publishing when this Orca actually has it switched on, and even then only use it when the user asks for Orca by name.
What Changed
orca-cliskill description no longer advertises artifacts or skill sharing. This text is installed globally, so it cannot depend on a setting.skill-guides/orca-cli.mdand its references wrap publishing text in<!-- host-capability: … -->blocks.orca skills getasks the runtime it targets (settings.get, 2 s timeout) and serves a block only when that feature is on:artifactSharingEnabledfor artifacts,agentSkillSharingEnabledfor skill sharing. Skill sharing is also withheld for forwarded and remote invocations, whichskills sharerefuses. Anything unreadable (Orca not running, sandboxed socket, headless or older host) withholds the text. This applies to the main guide,--full,--references, and--reference; asking for a withheld reference gives a short "turned off on this host" error.references/publishing.mdis split intoartifacts.mdandskill-sharing.mdso each can be gated on its own feature.--fullis now put together when the command runs instead of at build time, so withheld references leave nothing behind. Output for every ungated guide is byte-identical to before (checked against a snapshot of all ten guides). The generated table also drops its duplicate copy of each reference.skills getcontacts the runtime only when the text it serves has a gated block. Every other guide and reference stays local-only.Why
Fixes STA-12225: Linear. Browser Use setup installs
orca-cliglobally, so its publishing text reached agents outside Orca. Publishing is off by default, so for most users that text was a dead end that turned into a settings detour.Alternatives considered:
Gating at serve time keeps one skill and needs no install migration. The runtime permission checks in
artifacts share/updateandskills shareare unchanged and remain the real gate.Existing installs: the guide is served live by the installed CLI, so updating Orca fixes the guide text for every existing install. The changed stub description reaches installs through the existing skill freshness nudge / Update skills flow. That flow is installed-only, so it never re-adds removed skills, and the released-digest ledger still recognizes the previous stub.
Linked Issue
STA-12225 (Linear)
Visual Proof
N/A: no UI change. The change is to the text that
orca skills getserves.Testing
I manually tested these changes locally: ran
skills get orca-cli --referencesagainst a live local Orca with both permissions on (all four references listed, about 1.2 s total).Automated tests added/updated:
skill-guide-host-gate.test.tsdrivesorca skills getthroughmain()with a mocked runtime and covers:--full,--references, and--referenceA mutation that bypasses the gate fails 5 of the 8 tests.
pnpm tcand the generated-artifact verifiers pass. A localpnpm check:changedrun found only formatting and two type casts in the new test; both are fixed, and CI covers the rest.Model selection itself (whether an agent picks a provider) is not unit-testable here. These tests cover what each host serves.
Review
Agent skill upstream boundary
Notes
orca-cliguide.ORCA_ENVIRONMENT, the guide asks the selected runtime, butartifactscommands always use the local desktop runtime. In that case artifact text can be withheld even though sharing would work. The mismatch only ever withholds text; it never shows text for a feature that is off.Checklist
N/Awith reasonpnpm lint,pnpm typecheck,pnpm test, andpnpm buildpass (or CI will cover; local preferred)