Skip to content

Route Agent plugin catalogs by Harness in mixed Installations - #4174

Open
stevenlee-oai wants to merge 7 commits into
mainfrom
dev/stevenlee/multiple-plugin-drivers
Open

stevenlee-oai wants to merge 7 commits into
mainfrom
dev/stevenlee/multiple-plugin-drivers

Conversation

@stevenlee-oai

@stevenlee-oai stevenlee-oai commented Oct 30, 2026 •

Copy link
Copy Markdown
Contributor

An operator can enable both bundled catalogs in one Installation. OpenClaw Agents use occ-plugin in embedded and dedicated mode. Dedicated Codex Agents use codex-plugin. Agent authors select the Harness, and the Console opens its catalog automatically.

To replay the Console flow, run pnpm storybook and open Pages / Create Agent / Select Linear from the curated catalog. Add Linear under Codex, then change to OpenClaw. The Codex selection clears and the picker shows the instructions for Google Workspace on a saved dedicated Agent. This story uses controlled fixtures.

Behavior

  • OCC keeps one list of enabled catalogs. A single-catalog Installation derives its existing API response from that list. An Agent operation selects its driver from the Harness and passes it to policy, configuration and placement checks.
  • Existing single-object Installation YAML and plugin-free deployments remain supported. API and worker startup accept both catalogs together and reject duplicate or unknown registrations.
  • Discovery resolves the Harness before reading credentials. Saved-Agent discovery rechecks the Agent, binding and selected Driver across asynchronous reads. Stored plugin selections belong to their admitting Driver. When that identity is unknown or incompatible, operators can clear the selections and reselect from the correct catalog.
  • The worker checks the revision's pinned Driver before preparation or cutover. Historical revisions remain readable and stoppable. An old embedded OpenClaw revision with a Codex pin must be corrected before redeployment.

Verification

On the current head, 164 tests across controller lifecycle, startup, discovery and Agent APIs passed on the OCE DevBox. A failed change from two catalogs to one preserves the existing Compute hooks. A successful change replaces them with the remaining driver’s hooks. Four image-upgrade checks also passed, along with formatting, TypeScript and workspace checks.

Mixed-installation HTTP tests discovered, saved and admitted Google Workspace and a Codex plugin for separate dedicated Agents. Browser tests exercised Harness changes. Four PostgreSQL worker regressions covered refusal before predecessor stop, continued maintenance, ordinary Stop, and standing Git authorization after catalog removal. Migration and restore tests covered an existing populated database. Compute, startup and repository-admission tests passed 197/197. Repository runtime material tests passed 119/119. The existing QA matrix now keeps both catalogs enabled across Agent presets.

A live Google Workspace operation and a Codex plugin tool call on the same Installation still need an authorized test account. The recorded Storybook walkthrough is available to the author locally. Uploading it as PR media is pending.

RFC-0026 · CI for the current PR head

@stevenlee-oai
stevenlee-oai requested a review from a team as a code owner October 30, 2026 07:25
@clawsweeper

clawsweeper Bot commented Oct 30, 2026 •

Copy link
Copy Markdown
Contributor

🦞👀
ClawSweeper picked this up.

Pull request received. I will update this pull request when review starts.

ClawSweeper review complete

ClawSweeper finished reviewing this revision. The review result is being finalized.

View the workflow run.

@clawsweeper clawsweeper Bot added clawsweeper:intake:feature Preliminary submission classification; full source review pending. P3 Low-risk cleanup, docs, polish, ergonomics, or speculative feature. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. and removed clawsweeper:intake:feature Preliminary submission classification; full source review pending. labels Oct 30, 2026
@clawsweeper

clawsweeper Bot commented Oct 30, 2026

Copy link
Copy Markdown
Contributor

Codex review: needs maintainer review before merge.

What this changes

This PR proposes enabling both bundled plugin catalogs and selecting one for each Agent by its Harness.

Example: One Installation hosts a dedicated OpenClaw Agent using Google Workspace and a dedicated Codex Agent using Linear.

  • Before: The Installation selects either occ-plugin or codex-plugin, preventing both Agents from using their respective catalogs.
  • After: Under the proposal, both catalogs are enabled, and each Agent uses the catalog selected for its Harness.

Review scores

Measure Result What it means
Overall readiness 🐚 platinum hermit (4/6) A coherent, source-grounded proposal with no actionable findings; runtime and upgrade qualification belong to the implementation.
Proof confidence 🌊 off-meta tidepool Not applicable: This revision submits an unimplemented RFC; its future verification scenarios are requirements rather than claims of exercised runtime behavior.
Patch quality 🐚 platinum hermit (4/6) No actionable review findings were identified.

Product

Kind: Docs · Worth it: Yes · Fix scope: Complete
User problem: Operators cannot enable the OpenClaw and Codex plugin catalogs together for Agents in one Installation.
Reason: The maintainer-authored RFC defines a concrete missing capability, acknowledges the existing contract it changes, and clearly marks implementation as future work.

Merge readiness

✅ Ready for maintainer review

Keep this PR open for maintainer triage: it proposes a useful capability absent from main, and no actionable defect was found in the RFC-only diff.

Priority: P3
Reviewed head: 689413776dc8275499d62b9c66fa9f697d868a01

Before merge

None.

Findings

None.

Agent review details

How this fits together

Trusted Installation configuration supplies Plugin Drivers; OCC uses Agent Harness and selection state for discovery and admission, then Compute prepares the plugin runtime from the admitted revision.

flowchart TB
  A[Installation catalog inventory] -.-> B[Proposed Harness selection]
  C[Agent Harness and selections] -.-> B
  B -.-> D[Authorized catalog discovery]
  B -.-> E[Revision admission]
  E -.-> F[Pinned driver identity]
  F -.-> G[Compute plugin preparation]
Loading

Technical review

Best possible solution:

Retain this RFC as the proposed plugin-specific contract and assess implementation against its ownership, credential-routing, and pre-cutover refusal requirements.

Do we have a high-confidence way to reproduce the issue?

No bug reproduction applies; current-main composition and startup coverage confirm the single-catalog limitation motivating the proposal.

Is this the best way to solve the issue?

The proposal extends existing Installation composition, Plugin Driver selection, and revision admission while explicitly addressing stored ownership and the intentionally retired pairing.

AGENTS.md: found and applied where relevant.

Codex review notes: model internal, reasoning medium; reviewed against 32f1476071e4.

Security

None.

Evidence

What I checked:

Labels

Label changes:

  • add P3: This revision proposes a future capability through documentation and changes no running behavior.
  • add rating: 🐚 platinum hermit: Overall readiness is 🐚 platinum hermit; proof is 🌊 off-meta tidepool and patch quality is 🐚 platinum hermit.
  • add status: 👀 ready for maintainer look: ClawSweeper has no concrete contributor-facing blocker left for this PR.

Label justifications:

  • P3: This revision proposes a future capability through documentation and changes no running behavior.
  • rating: 🐚 platinum hermit: Overall readiness is 🐚 platinum hermit; proof is 🌊 off-meta tidepool and patch quality is 🐚 platinum hermit.
  • status: 👀 ready for maintainer look: ClawSweeper has no concrete contributor-facing blocker left for this PR.

Rating scale

6/6 🦀 challenger crab · 5/6 🦞 diamond lobster · 4/6 🐚 platinum hermit · 3/6 🦐 gold shrimp · 2/6 🦪 silver shellfish · 1/6 🧂 unranked krab. Overall follows the weaker of proof and patch quality; ✨ marks media proof (a screenshot, video, or linked artifact) that directly shows the changed behavior.

Workflow

ClawSweeper edits this one comment on every review. Comment @clawsweeper re-review for a fresh review only. Repair and merge execution lanes are retired.

Reviewed October 30, 2026, 3:39 AM ET / 07:39 UTC.

@stevenlee-oai stevenlee-oai changed the title RFC: Select the plugin catalog by Agent Harness Route Agent plugin catalogs by Harness in mixed Installations Oct 30, 2026
@freeqaz

freeqaz commented Oct 30, 2026

Copy link
Copy Markdown
Collaborator

Free's clanker here (an AI agent working on Free's behalf). ⭐ CI-support diagnosis for head c1d347a7: hosted run 41025836288 fails PostgreSQL Platform; smoke passes.

The log reports two concrete provisioning-test failures:

  • tests/integration/postgres-agent-provisioning.test.mjs:3250 expects the selected-Plugin-Driver rejection, but receives No Plugin Driver is enabled for the codex Harness. Remove the Agent's plugins or enable its catalog.
  • The Plugin Driver switch test at :3318 also fails with that message.

Separately, postgres-worker-stale-claim.test.mjs reaches the lane deadline after about 1083 seconds while running the lost-claim/plugin-warnings case. The diagnostics artifact is linked from the failed job log.

This is not just missing CI capacity: the provisioning assertions need investigation before an unchanged-head rerun would be useful. No duplicate manual CI run started.

@freeqaz

freeqaz commented Oct 30, 2026

Copy link
Copy Markdown
Collaborator

Free's clanker here (an AI agent working on Free's behalf).

Heads-up: #4098 landed 0065_selected_repository_set on main, so this PR's 0065 migration now collides with it. It needs the next free number, and migrations/meta/_canonical-history.json needs requalifying after merging main. #2520, #4174, #4231 and #4232 all claim 0065 right now, so whichever lands next takes 0066 and the others move up.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

P3 Low-risk cleanup, docs, polish, ergonomics, or speculative feature. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants