feat(runtime): package commit-matched companion plugins - #102
Conversation
|
🦞👀 Pull request received. I will update this pull request when review starts. |
|
Codex review: needs maintainer review before merge. Reviewed August 21, 2026, 4:16 PM ET / 20:16 UTC. ClawSweeper reviewWhat this changesThis PR adds repeatable Merge readinessKeep open for maintainer product direction: the two prior compatibility findings are fixed on the current head, but the new public companion-packaging contract needs explicit sponsorship before merge. Priority: P2 Review scores
Verification
Live VerificationCommand: Result: FAIL (failed) — execution before step 1 Assertions:
How this fits togetherOCM’s local runtime builder packages an OpenClaw checkout into a release-shaped managed runtime. This change optionally packages selected official companion plugins beside the staged host package and records metadata for runtime verification. flowchart LR
A[OpenClaw checkout] --> B[Local runtime build]
B --> C[Select plugin by manifest ID]
C --> D[Package plugin and dependencies]
D --> E[Stage beside host package]
E --> F[Record hashes and metadata]
F --> G[Runtime verification]
Decision needed
Why: The implementation can be assessed technically, but accepting a new public CLI mode and its compatibility commitment requires maintainer intent. Before merge
Agent review detailsSecurityNone. Review metrics
Merge-risk optionsMaintainer options:
Technical reviewBest possible solution: Either explicitly sponsor and document the companion packaging contract as supported OCM behavior, or keep local runtime builds limited to the existing core and source-extension paths. Do we have a high-confidence way to reproduce the issue? Not applicable: this PR proposes a new runtime-build capability rather than reporting a broken existing behavior; focused fixtures cover the repaired code paths. Is this the best way to solve the issue? Unclear: the two prior technical defects are repaired, but only maintainers can decide whether this new public packaging contract is the right product direction. AGENTS.md: not found in the target repository. Codex review notes: model internal, reasoning high; reviewed against 768714ae3491. LabelsLabel changes:
Label justifications:
EvidenceWhat I checked:
Likely related people:
Rating scale
Overall follows the weaker of proof and patch quality. Workflow
HistoryReview history (2 earlier review cycles)
|
|
@clawsweeper re-review I accepted both actionable compatibility findings and pushed Manifest-ID selection
This reuses the same ambiguity and package validation boundary as source-extension selection instead of creating a second manifest scanner. Staged host peerCompanion installation now uses Regression coverageThe companion fixture now:
Validation:
Product-contract decisionI did not attempt to resolve the sponsorship question in code. This PR continues to propose No local OCM deployment or gateway restart was performed. |
|
🦞🧹 I asked ClawSweeper to review this item again. |
|
Maintainer decision: sponsor this contract. We are intentionally accepting |
d2c86c0 to
005a1f1
Compare
|
ClawSweeper status: review started. I am starting a fresh review of this pull request: feat(runtime): package commit-matched companion plugins This is item 1/1 in the current shard. Shard 0/1. This placeholder means the worker is alive and reading the current context. I will edit this same comment with the actual review when the claws are done clicking. Crustacean status: shell secured, claws on keyboard, evidence pebbles being sorted. |
Related: #60
Additional instructions
MUST: Keep Allow edits from maintainers enabled for this PR so maintainers
can help update the branch when needed.
What Problem This Solves
runtime build-localcan preserve bundled source extensions, but it cannot produce a complete release-shaped runtime when an official plugin is published separately from the OpenClaw package. Operators building an exact source runtime for plugins such as Codex, iMessage, or WhatsApp must otherwise assemble and verify those companion trees outside OCM.Current OpenClaw source graphs can also contain nested private
workspace:*dependencies. The existing adapter supplies direct workspace packages, but nested packed archives can retain unresolved workspace protocols and fail during isolated installation.Why This Change Was Made
Add repeatable
--companion <plugin-id>selection to the existing local runtime builder. Each selected companion must use OpenClaw's package-local release contract, match the host version, be publishable, and remain separate from already bundled extensions. OCM installs each companion in a runtime-owned tree and records its package identity, artifact digest, entrypoint, entrypoint digest, and completed package-tree integrity.Resolve the complete private workspace dependency closure and rewrite nested
workspace:*protocols only inside scratch package archives. The source checkout remains unchanged. Existing--for-env,--include-source-extensions, build-profile selection, and full-tree verification remain authoritative and are not replaced.Gateway lifecycle and named Tailscale Service ingress changes are intentionally outside this PR.
User Impact
Operators can build one reproducible, release-shaped runtime from an OpenClaw checkout together with explicitly selected commit-matched companion plugins. Incomplete, mismatched, duplicate, non-publishable, or drifted companion trees fail closed during build or verification instead of surfacing later as runtime plugin failures.
Existing local builds that do not select companions retain their current behavior.
Evidence
main; it contains no gateway lifecycle or Tailscale ingress changes.cargo fmt --all -- --check: passed.git diff --check origin/main..HEAD: passed.cargo test --locked --test runtime_command_tests --test store_compatibility_tests: 58 passed, 0 failed.CHANGELOG.md; current upstream release entries were retained and only the runtime packaging note was added.