Skip to content

feat(agent-launch): hiding an agent only hides it from pickers - #27766

Closed
brennanb2025 wants to merge 7 commits into
mainfrom
brennanb2025/agents-hidden-not-refused
Closed

brennanb2025 wants to merge 7 commits into
mainfrom
brennanb2025/agents-hidden-not-refused

Conversation

@brennanb2025

@brennanb2025 brennanb2025 commented Oct 12, 2026 •

Copy link
Copy Markdown
Contributor
Files Added Deleted Net
Test 42 $\color{#1a7f37}{\Huge{\mathbf{+}}}$​249 $\color{#cf222e}{\Huge{\mathbf{−}}}$​763 $\color{#cf222e}{\Huge{\mathbf{−}}}$​514
Prod 73 $\color{#1a7f37}{\Huge{\mathbf{+}}}$​224 $\color{#cf222e}{\Huge{\mathbf{−}}}$​485 $\color{#cf222e}{\Huge{\mathbf{−}}}$​261

ELI5

Hiding an agent in Settings (the switch used to say Disabled) did more than hide it from menus. Orca also refused to start it when you asked for it by name, from the phone, the CLI, orchestration workers, workspace creation, resume, chat sessions and the Source Control AI buttons. Each path had its own "agent is disabled" error, and some quietly swapped in a different agent. Hiding also removed the agent's status hooks, and a typed command like claude stopped being treated as that agent.

After this change the switch only decides whether an agent shows in menus and pickers. As Brennan put it: "the disabled button is just for showing it in the UI or not". An agent you've hidden still starts when something asks for it by name, and it behaves like any other agent.

What Changed

Every row assumes the agent is hidden in Settings.

Host (anything that asks an Orca host to start an agent: phone, CLI, workers, the desktop window)

Path Before After
A request to open a new terminal with that agent (from the phone or another client) Error "Selected agent is disabled" The agent starts
Phone: tapping a tab that is still waiting for its agent A plain shell opened under the agent icon The agent starts in the tab
In-app launches that ask the host to start an agent (for example the AI buttons below) Error "Agent X is disabled. Choose an enabled agent." The agent starts
Orchestration workers (worker-start --agent X) Error "Agent launcher X is disabled or unavailable" The worker starts on that agent
Creating a workspace with a startup agent (including orca worktree create --agent X) Error "Selected agent is disabled…", no workspace The workspace is created and the agent starts
Creating a workspace from an issue or PR with a starting prompt and a chosen agent Silently started a different detected agent with the prompt Starts the agent you chose
Resuming a saved session Error "Choose an enabled agent before resuming." The session resumes
Starting a chat session with that agent Error "Selected agent is disabled…" The chat starts
A typed agent command such as claude (for example orca terminal create --command claude) Ran as a plain command, without that agent's Settings arguments or environment Runs as that agent, with its Settings arguments and environment

Desktop window

Path Before After
A Source Control AI action whose saved agent is hidden: Resolve conflicts, Fix broken checks (PR page dialog, fix split button, checks panel, check-run details) and the commit/push failure recovery buttons The dialog opened with "X is not enabled or was not detected on this workspace host." and Start disabled, or a toast saying the saved agent is unavailable; nothing started The saved agent starts (auto-starts when saved), as long as it is installed
Checks panel AI actions when every detected agent is hidden but an action's saved agent is installed Greyed out with "No enabled AI agents. Configure agents in Settings." That action is available; an action with no saved agent of its own stays greyed out

Also removed, as cleanup: the same check in dashboard "start agent", "Continue in ", saving a new automation, and the new-workspace composer. Their pickers already listed only visible agents, so users couldn't reach those refusals. Nothing changes for users there.

Settings > Agents: each agent's switch now reads Shown / Hidden instead of Enabled / Disabled (its screen-reader label is " visibility"), and a hidden agent's badge says "Hidden". Notices that said "No enabled agents" now talk about installed and shown agents instead of enabled ones, and name the next step. For example, the Quick Launch menu says "All agents are hidden. Show one in Settings." The AI buttons and checks panel say "No AI agent is both installed and shown in Settings. Install one, or show one in Settings." The CLI worker-start --agent help no longer says the agent must be "enabled". Every language is updated.

Mobile app: the phone's own menus and pre-checks still block hidden agents until the mobile follow-up PR: the new-tab list, task-page workspace create, new-workspace submit and AI actions. That follow-up also shows an older host's refusal in plain words. Until then, the phone benefits from this PR only on the waiting-tab row above.

Status hooks

  • An agent you hide in Settings keeps its status (working, waiting, done) when you launch it.
  • Hiding an agent no longer removes its hooks; turning off status hooks still does.
  • At the first start after updating, Orca reinstalls status hooks for agents you had hidden, if they are installed (for Codex this includes its entry in ~/.codex).
  • Hooks are installed only where the agent's command-line tool is found, and Pi, OMP and prime-agent extensions only where the agent's own folder exists, on the machine that runs the agent. Nothing is written for agents you don't have.

Still the same: hidden agents stay out of menus, pickers, shortcut lists and the automatic agent pick, meaning the default-agent choice and the agent Orca picks from the CLIs it detects. Typed commands still match in the same order as before; the only difference is that a hidden agent's command is no longer skipped. Users who hide nothing see no change.

Mechanism

  • Removed the six host refusals: the host step that starts an agent in a new terminal (runtime-agent-terminal-startup.ts), chat-session create, resume, the phone's session-terminal command, workspace-create startup (runtime-worktree-agent-startup.ts, orca-runtime-create-managed-worktree.ts) and the orchestration launcher check. Also removed the hidden-agent skip from the step that recognises a typed agent command (resolveBareAgentLaunchCommand).
  • When a workspace is created from an issue or PR with a starting prompt, an explicitly chosen agent is used as is (resolveWorktreeStartupDraftAgent). Only the default and the detected pick still skip hidden agents.
  • Deleted isAgentStatusHooksEnabledForAgent. Every hook gate now reads only the status-hooks switch: managed hook install and removal, hook detection, Pi/OMP/prime-agent extensions, Codex launch preflight, the OpenCode plugin locally and in WSL, Claude account hook setup, and the offline CLI orca agent hooks on/off. Changing which agents are hidden no longer re-runs hook installation.
  • Desktop: the Source Control dialog and auto-start check only whether the saved or selected agent is installed (isSourceControlAgentDetected); its picker stays filtered. pickSourceControlLaunchAgent keeps a saved agent that is installed even if it is hidden. The phone's only caller still rejects a hidden saved agent before reaching it, so the phone's behaviour doesn't change. Orphaned strings and their translations are deleted.
  • The phone's fallback to a plain shell is still reachable when an agent's launch can't be built (for example, an unclosed quote in its Settings arguments). It keeps one unit test.

Merging main brought in #26479, whose new host settings path re-ran status-hook installation when the hidden-agent list changed. That re-run is removed here, because hiding no longer changes hooks.

This was split out of #27692 (launch convergence). The two PRs overlap on one spot, the 3-line refusal in runtime-agent-terminal-startup.ts. Whichever merges second rebases that line.

Why

Brennan's decision: the Settings switch is a display preference. A refusal at launch time turned a menu preference into a lock. Every caller had to re-check it, and they disagreed: some refused, some silently swapped in another agent, some fell back to a plain shell, and some did nothing. Removing the refusals, instead of adding a "launch anyway" path, means hiding has one meaning everywhere.

Linked Issue

Split out of #27692.

Visual Proof

Live QA on the final head (bf61858), in a hidden test copy of Orca with an isolated profile and real Claude/Codex.

Settings > Agents: each agent has a Shown / Hidden switch; a hidden agent gets a "Hidden" badge.

Settings > Agents with Claude set to Hidden

With every detected agent hidden, the "+" menu names the next step instead of listing agents:

The + menu when all agents are hidden

A hidden agent still starts when asked for by name. Here the phone (iOS simulator, paired to the test copy) opens a workspace whose only tab was a slept, hidden Claude tab: Claude starts in that tab (its own folder-trust screen), not a plain shell.

Phone opening a slept hidden-Claude tab starts Claude

Testing

  • tc-gate pnpm tc:node, tc:web, tc:cli: pass.
  • Targeted vitest: the 47 changed or affected test files (1774 tests), all pass.
  • orca-ci-checks --no-typecheck: 24 of 25 pass. The remaining one, typecheck:ci, could not run locally: its bun runner failed with Script not found "check" before type checking. The three typechecks above cover the same projects.

Tests that pinned the removed refusals or the hidden-agent hook opt-out were deleted. Tests that used the hidden list only as a switch for "plugin off" now use the status-hooks switch. Guards added (each goes red if the change is reverted):

  • Host: an explicitly requested hidden agent starts, both as a startup agent and as a typed command that gets its Settings arguments. Checked by putting each removed check back.

  • A chosen hidden agent for a workspace created from an issue or PR with a starting prompt is used without detection.

  • A hidden agent whose CLI is present still gets its hooks installed.

  • Desktop: a Source Control action whose saved agent is hidden auto-starts. Checked by putting the old check back. Plus pickSourceControlLaunchAgent keeps a hidden saved agent that is installed.

  • The phone's plain-shell fallback when a launch can't be built.

  • I manually tested these changes locally

  • Automated tests added/updated, or explained why not below

Review

Agent skill upstream boundary

  • Not applicable, or this change copies or mechanically translates no upstream skill-installer source, tests, fixtures, registry entries, path tables, comments, or documentation.

Notes

  • SSH and WSL: the host rules apply on every execution host. The WSL OpenCode plugin follows the same status-hooks switch as local.
  • Follow-up, not changed here on purpose: in a plain terminal that wasn't started as a specific OpenCode version, the OpenCode status plugin now always attaches as OpenCode. Before, if only OpenCode was hidden, it attached as OpenCode 2.
  • Remote compatibility: no RPC or stream shapes change. An older host keeps refusing hidden agents until it updates. An older client that sends a hidden agent to a new host gets it started. The agent_disabled hook skip reason stays in the shared type because older hosts can still report it.

Checklist

  • This PR is small and focused
  • I explained what changed and why (ELI5, the user-facing before/after, the mechanism, and why over the alternatives)
  • Before/after screenshots or videos attached for UI changes, or N/A with reason (after shots from live QA above; the before state is the old Enabled / Disabled switch)
  • Self-reviewed for correctness, security, and performance
  • Cross-platform, SSH/remote, and path/shortcut impact considered (or N/A)
  • pnpm lint, pnpm typecheck, pnpm test, and pnpm build pass (or CI will cover; local preferred)

The Settings switch that turns an agent off now only decides whether it
shows in menus and pickers. An explicit launch of a hidden agent works
from every path:

- Host: removes the agent.launch planner, OpenCode session, resume, phone
  session terminal, worktree-create startup and orchestration launcher
  refusals, and the bare-command matcher's hidden skip. A linked draft
  starts the requested agent as is; only the default and detected picks
  skip hidden agents.
- Typed commands match Settings command overrides before built-in
  commands, so a collision resolves to the agent the user named.
- Status hooks follow only the status-hooks switch. Hiding an agent no
  longer removes its hooks or re-runs hook installation; hooks still go
  only to agents whose CLI is found on the machine.
- Desktop window: dashboard spawn, saved AI-button / fix-checks agents,
  automation save, session continuation, the Source Control launch
  check, task-page direct launch and composer submit no longer refuse or
  drop an explicitly chosen hidden agent.

The phone client's own pre-checks move to a follow-up PR.
…dialog

- The Source Control action dialog and its auto-start check only whether
  the saved or selected agent is installed; the picker stays filtered.
- Checks panel AI actions stay available when a saved agent is installed
  even if every detected agent is hidden.
- Typed agent commands keep main's match order; only the hidden-agent
  skip is gone, so users who hide nothing see no change.
- Leftovers: the offline CLI hook path, the OpenCode hook selector and
  the hook installer no longer carry per-agent hidden state.
… is selected

Also drops the WSL guest install's now-pointless settings copy and the
offline CLI test's leftover hidden-list expectation.
Hiding an agent only removes it from menus and pickers, so the Settings
switch and the notices that mention it say shown/hidden instead of
enabled/disabled, in every language.
…ices

The AI buttons, checks panel and Fix checks say no agent is both
installed and shown, and offer installing or showing one; Quick Launch
says all agents are hidden. Locale pins keep the new label and ja Shown
stable under regeneration.
@brennanb2025

brennanb2025 commented Oct 12, 2026 •

Copy link
Copy Markdown
Contributor Author

Status: ready for review (head eecf9da)

Since bf61858. One review fix: each checks-panel AI button is now enabled only when its own saved agent, or a shown installed agent, can launch it (before, a saved hidden agent for one action kept all three enabled). New test covers it; CI green.

Review. Three rounds with fresh reviewers each round, every finding fixed or listed:

  • Round 1 (host + hooks, window callers + tests): the Source Control dialogs and checks panel still refused a hidden saved agent; body rows were wrong or unreachable. Fixed.
  • Round 2 (delta): one dialog status line was wrong when every installed agent is hidden. Fixed.
  • Round 3 (copy + main sync): the switch now reads Shown / Hidden (it said Enabled / Disabled while a "disabled" agent still started by name), every "no enabled agent" notice now names both causes (not installed, or hidden) and the next step, and translation pins were updated so regenerating catalogs keeps the new text.
  • One main sync, at the end: main's Edit agent launch settings on the workspace host #26479 added a settings path that re-ran hook installation whenever the hidden list changed, using a function this PR deletes. That re-run is removed, because hiding no longer changes hooks.

Readiness. CI green on bf61858 (19 pass, 0 fail). Merged locally (no commit) with current main 93e0b80: no conflicts; localization extraction, catalogs and coverage, the Settings/locale tests and the renderer typecheck all pass. No file over the line limit, no line-limit disables, no new type assertions.

Live QA (macOS hidden test copy with an isolated profile and real Claude/Codex; phone through the iOS simulator; settings changed only through the Settings UI):

Row What was checked Result
R1 A saved "Resolve with AI" recipe starts Claude while Claude is hidden; the sidebar shows it waiting PASS
R2 The "+" menu leaves hidden Claude out; orca terminal create --command claude and orca worktree create --agent claude start the real Claude with its Settings arguments PASS
R3 Hiding Claude keeps its status hooks; turning the hooks switch off removes them; a pane opened with hooks off gets no hook variables (re-checked on the final head) PASS
R4 The phone opens a workspace whose only tab is a slept, hidden Claude tab: Claude starts in that tab, not a plain shell PASS (the phone's own new-tab list check was blocked by the Expo dev-menu button)
R5 Shown / Hidden switch and "Hidden" badge; with every agent hidden the "+" menu says "All agents are hidden. Show one in Settings."; showing Codex again lists only Codex PASS

During QA the real ~/.claude/settings.json fingerprint changed once (06:28Z). No rig Claude was running then and turning rig hooks on/off left every real file unchanged, so it was not the test; nothing was copied or restored.

Not verified. The host-computer Settings > Agents screen (the test copy only had the local Mac); the phone's new-tab list with hidden agents (blocked as above). Follow-up listed in the body: a plain terminal now always attaches the opencode status plugin (it attached opencode2 when only OpenCode was hidden).

@brennanb2025
brennanb2025 marked this pull request as ready for review October 12, 2026 10:31
@coderabbitai

coderabbitai Bot commented Oct 12, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Repository UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 604c1316-65a8-4635-b805-21db3fed6f17

📥 Commits

Reviewing files that changed from the base of the PR and between bf61858 and eecf9da.


📒 Files selected for processing (5)
  • src/renderer/src/components/right-sidebar/checks-panel/active-content-props.ts
  • src/renderer/src/components/right-sidebar/checks-panel/active-content.tsx
  • src/renderer/src/components/right-sidebar/checks-panel/panel-content-rendering.test.tsx
  • src/renderer/src/components/right-sidebar/checks-panel/use-checks-panel-comment-resolution.test.tsx
  • src/renderer/src/components/right-sidebar/checks-panel/use-checks-panel-comment-resolution.tsx

🚧 Files skipped from review as they are similar to previous changes (1)
  • src/renderer/src/components/right-sidebar/checks-panel/use-checks-panel-comment-resolution.tsx

Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 9 remain after this review.



📝 Walkthrough
📝 Walkthrough

Walkthrough

The change separates agent visibility from detection and explicit-agent launch behavior. Several runtime, renderer, and hook paths no longer reject hidden agents. Agent status hooks now use a shared enablement setting. Agent settings labels and localized availability messages describe agents as shown or hidden and distinguish installed agents from detected agents.


Priority: ➖ Normal

Merge Risk: ⚪ Minimal · up to eecf9

A saved hidden agent remains available for its own action without enabling unrelated actions. No actionable merge-blocking risk remains.

Pre-merge checks | Passed 4 | Failed 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage Warning Docstring coverage is 15.38% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 39 functions across 55 files. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Description check Passed The description is detailed and covers the required sections, including user impact, implementation, rationale, linked issue context, visual proof, testing results, compatibility notes, and checklist …
Title check Passed The title is concise, specific, and accurately summarizes the primary behavior change: hiding an agent only removes it from pickers.

  • Fix all pre-merge checks with AI
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Commit to this branch
  • Create a new PR

  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1


ℹ️ Review info
⚙️ Run configuration
  • Configuration used: Repository UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 7395f6b2-e0f6-40fb-a87e-b7978d09d89b
📥 Commits

Reviewing files that changed from the base of the PR and between 9a64866 and bf61858.

📒 Files selected for processing (111)
  • config/scripts/ci-shard-timings.json
  • config/scripts/locale-ja-value-overrides.mjs
  • config/scripts/locale-key-overrides.mjs
  • config/scripts/locale-value-overrides.mjs
  • config/scripts/vitest-sqlite-runtime-files.mjs
  • src/cli/handlers/agent-hooks.ts
  • src/cli/runtime-client-deferral.test.ts
  • src/cli/specs/orchestration-worker-specs.ts
  • src/main/agent-hooks/managed-agent-hook-controls.test.ts
  • src/main/agent-hooks/managed-agent-hook-controls.ts
  • src/main/agent-hooks/managed-agent-hook-startup.ts
  • src/main/agent-hooks/managed-hook-detection-commands.test.ts
  • src/main/agent-hooks/managed-hook-detection-commands.ts
  • src/main/agent-hooks/opencode-plugin-settings.ts
  • src/main/agent-hooks/wsl-hook-relay-guest-install.ts
  • src/main/agent-hooks/wsl-opencode-install-race.test.ts
  • src/main/agent-hooks/wsl-opencode-settings-lifetime.test.ts
  • src/main/agent-hooks/wsl-opencode-settings.test.ts
  • src/main/agent-launch/startup-agent-worktree-create.test.ts
  • src/main/claude-accounts/claude-launch-routing.test.ts
  • src/main/claude-accounts/claude-profile-router.test.ts
  • src/main/claude-accounts/claude-profile-router.ts
  • src/main/claude-accounts/claude-profile-wsl-router.test.ts
  • src/main/claude/claude-structured-launch-account-routing.test.ts
  • src/main/ipc/pty-ipc-spawn-drivers.ts
  • src/main/ipc/pty-spawn-env-terminal-basics.test.ts
  • src/main/ipc/pty/host-env/assembly.ts
  • src/main/ipc/pty/host-env/opencode-config.ts
  • src/main/ipc/pty/host-env/opencode-hook-installation.test.ts
  • src/main/ipc/pty/host-env/types.ts
  • src/main/ipc/pty/ipc/spawn-env-codex.ts
  • src/main/ipc/pty/provider/local-configure.ts
  • src/main/ipc/pty/runtime/spawn-preflight.ts
  • src/main/ipc/settings.test.ts
  • src/main/ipc/settings.ts
  • src/main/opencode/opencode-status-plugin-startup-refresh.test.ts
  • src/main/opencode/opencode-status-plugin-startup-refresh.ts
  • src/main/orcad/orcad-managed-agent-hooks.ts
  • src/main/persistence/profile-state/profile-state-offline-settings.test.ts
  • src/main/persistence/profile-state/profile-state-offline-settings.ts
  • src/main/runtime/managed-worktree-create-telemetry.test.ts
  • src/main/runtime/orca-runtime-create-agent-session.ts
  • src/main/runtime/orca-runtime-create-managed-worktree.ts
  • src/main/runtime/orca-runtime-get-agent-session-execution-namespace.ts
  • src/main/runtime/orca-runtime-get-terminal-interactive-wait.ts
  • src/main/runtime/orca-runtime-perform-mobile-session-pty-records-refresh.ts
  • src/main/runtime/orca-runtime-resolve-mobile-session-terminal-command.ts
  • src/main/runtime/orca-runtime-stop-requested-pty-ids.ts
  • src/main/runtime/orca-runtime-test-scenario-builders.spec.ts
  • src/main/runtime/orca-runtime-tests/mobile-session-tabs-part-08.spec.ts
  • src/main/runtime/orca-runtime-tests/mobile-session-tabs-part-12.spec.ts
  • src/main/runtime/orca-runtime-tests/paired-settings.spec.ts
  • src/main/runtime/orca-runtime-tests/terminal-creation-and-readiness-part-02.spec.ts
  • src/main/runtime/orca-runtime-tests/terminal-creation-and-readiness-part-03.spec.ts
  • src/main/runtime/orca-runtime-tests/worktree-setup-and-startup-part-03.spec.ts
  • src/main/runtime/orca-runtime-tests/worktree-setup-and-startup-part-04.spec.ts
  • src/main/runtime/rpc/methods/agent-hooks.test.ts
  • src/main/runtime/rpc/methods/agent-hooks.ts
  • src/main/runtime/rpc/methods/orchestration/worker/worker-start-validation.ts
  • src/main/runtime/runtime-agent-launch-resolution.ts
  • src/main/runtime/runtime-agent-terminal-startup.ts
  • src/main/runtime/runtime-client-agent-launch-settings-durability.test.ts
  • src/main/runtime/runtime-client-settings.ts
  • src/main/runtime/runtime-worktree-agent-startup.test.ts
  • src/main/runtime/runtime-worktree-agent-startup.ts
  • src/main/startup/codex-hook-startup-wiring.test.ts
  • src/main/startup/codex-launch-hook-switch.test.ts
  • src/main/startup/codex-launch-preparation.ts
  • src/main/startup/codex-session-resume-daemon-guard.test.ts
  • src/main/startup/codex-session-resume-launch.ts
  • src/main/startup/main-process-pty-startup.ts
  • src/main/startup/main-process-ready-runtime.ts
  • src/renderer/src/components/agent-session-continuation/AgentSessionContinuationDialog.tsx
  • src/renderer/src/components/automations/automation-save-action.ts
  • src/renderer/src/components/dashboard/launch-dashboard-agent.ts
  • src/renderer/src/components/right-sidebar/SourceControlAgentActionDialog.test.tsx
  • src/renderer/src/components/right-sidebar/SourceControlAgentActionDialogForm.tsx
  • src/renderer/src/components/right-sidebar/buildSourceControlAgentDeliveryPlan.ts
  • src/renderer/src/components/right-sidebar/checks-panel/use-checks-panel-comment-resolution.tsx
  • src/renderer/src/components/right-sidebar/source-control-agent-action-dialog-support.ts
  • src/renderer/src/components/right-sidebar/source-control/ai/recovery-launch.ts
  • src/renderer/src/components/right-sidebar/useSavedSourceControlAgentActionAutoStart.ts
  • src/renderer/src/components/right-sidebar/useSourceControlAgentActionDialog.ts
  • src/renderer/src/components/settings/AgentCatalogRow.tsx
  • src/renderer/src/components/settings/AgentsPane.test.tsx
  • src/renderer/src/components/tab-bar/QuickLaunchButton.tsx
  • src/renderer/src/hooks/composer-state/composer-name-ownership.test.ts
  • src/renderer/src/hooks/composer-state/composer-submit-orchestration.ts
  • src/renderer/src/hooks/composer-state/folder-submit-orchestration.ts
  • src/renderer/src/hooks/composer-state/quick-submit-source-preparation.ts
  • src/renderer/src/i18n/locales/en.json
  • src/renderer/src/i18n/locales/es.json
  • src/renderer/src/i18n/locales/fr.json
  • src/renderer/src/i18n/locales/ja.json
  • src/renderer/src/i18n/locales/ko.json
  • src/renderer/src/i18n/locales/zh.json
  • src/renderer/src/lib/fix-checks-agent-launch.ts
  • src/renderer/src/lib/launch-agent-session-continuation.ts
  • src/renderer/src/lib/launch-work-item-direct-agent-routing.ts
  • src/renderer/src/lib/launch-work-item-direct.test.ts
  • src/renderer/src/lib/source-control-agent-action-launch-check.test.ts
  • src/renderer/src/lib/source-control-agent-action-launch-check.ts
  • src/shared/agent-status-hooks-setting.ts
  • src/shared/opencode-launch-command.test.ts
  • src/shared/opencode-launch-command.ts
  • src/shared/orchestration-dispatch-refusal-contract.ts
  • src/shared/source-control-launch-agent-selection.test.ts
  • src/shared/source-control-launch-agent-selection.ts
  • src/shared/tui-agent-selection.test.ts
  • src/shared/tui-agent-selection.ts
  • tests/e2e/host-agent-launch-settings-hook-bookkeeping.unit.test.ts
💤 Files with no reviewable changes (25)
  • src/main/ipc/pty/ipc/spawn-env-codex.ts
  • src/renderer/src/hooks/composer-state/composer-submit-orchestration.ts
  • src/renderer/src/lib/source-control-agent-action-launch-check.test.ts
  • src/main/opencode/opencode-status-plugin-startup-refresh.test.ts
  • src/main/runtime/orca-runtime-tests/terminal-creation-and-readiness-part-02.spec.ts
  • src/shared/tui-agent-selection.ts
  • src/renderer/src/lib/launch-work-item-direct.test.ts
  • tests/e2e/host-agent-launch-settings-hook-bookkeeping.unit.test.ts
  • src/renderer/src/hooks/composer-state/composer-name-ownership.test.ts
  • src/main/ipc/pty/provider/local-configure.ts
  • config/scripts/vitest-sqlite-runtime-files.mjs
  • src/main/runtime/orca-runtime-tests/mobile-session-tabs-part-12.spec.ts
  • config/scripts/locale-ja-value-overrides.mjs
  • src/main/ipc/pty/runtime/spawn-preflight.ts
  • src/renderer/src/components/right-sidebar/buildSourceControlAgentDeliveryPlan.ts
  • src/main/ipc/pty/host-env/types.ts
  • src/main/runtime/orca-runtime-resolve-mobile-session-terminal-command.ts
  • src/main/runtime/orca-runtime-tests/worktree-setup-and-startup-part-03.spec.ts
  • src/renderer/src/lib/source-control-agent-action-launch-check.ts
  • src/main/runtime/orca-runtime-get-agent-session-execution-namespace.ts
  • src/main/ipc/pty-ipc-spawn-drivers.ts
  • src/main/runtime/runtime-agent-terminal-startup.ts
  • src/main/runtime/orca-runtime-create-agent-session.ts
  • src/renderer/src/lib/launch-agent-session-continuation.ts
  • src/shared/agent-status-hooks-setting.ts

Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 9 remain after this review.

A saved hidden agent for Fix checks no longer enables Resolve conflicts and
Resolve comments, whose launches have no agent to start.
@brennanb2025

Copy link
Copy Markdown
Contributor Author

Closing: disabled agents should be refused at launch, because Orca stops maintaining their status hooks (Brennan, 10-12). Main's refusals stay.

@brennanb2025
brennanb2025 deleted the brennanb2025/agents-hidden-not-refused branch October 12, 2026 21:10
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.

1 participant