Repository navigation
RFC-0024: Optional RuntimeClass for dedicated Harnesses - #3893
cooktheryan wants to merge 13 commits into
Conversation
|
🦞👀 Pull request received. I will update this pull request when review starts. ClawSweeper review completeClawSweeper finished reviewing this revision. The review result is being finalized. |
|
Codex review: blocked before merge. What this changesThis PR proposes an optional RuntimeClass selector and compatible volume layout for Compute-owned dedicated Harnesses. Example: An operator wants a dedicated Codex Harness to use an installed RuntimeClass named kata-qemu.
Review scores
ProductKind: Feature · Worth it: Needs a maintainer decision · Fix scope: Complete Merge readiness⛔ Blocked before merge - 1 item remains Keep open for Compute-owner direction: this is a coherent RFC-only proposal, with no concrete patch defect found. Priority: P3 Decision needed
Before merge
FindingsNone. Agent review detailsHow this fits togetherKubernetes Compute turns admitted Agent requirements and Installation configuration into workloads and readiness observations; OpenShell separately owns provider-created Harnesses. flowchart TB
Installation[Installation configuration]
Compute[Kubernetes Compute]
Harness[Compute-owned Harness]
Runtime[Operator-installed RuntimeClass]
Readiness[Agent readiness]
Installation -. proposed selector .-> Compute
Compute -. proposed compatible layout .-> Harness
Harness -. selected class .-> Runtime
Compute -. class and Pod checks .-> Readiness
Technical reviewBest possible solution: Have Compute owners accept or defer the optional contract while retaining the plan's real Agent workflow and installed-Kata qualification requirements. Do we have a high-confidence way to reproduce the issue? This proposes a capability rather than reporting a bug; source inspection confirms the Compute selector is absent and its current mounts use subPath. Is this the best way to solve the issue? The proposal uses existing workload owners and preserves defaults, but maintaining a conditional layout requires the requested Compute-owner decision. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning medium; reviewed against d409e3c8a311. Provenance checked
SecurityNone. EvidenceWhat I checked:
LabelsLabel changes: No label changes. Label justifications:
Rank-up movesOptional improvements that raise the rating; they are not merge blockers.
Rating scale6/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. WorkflowClawSweeper edits this one comment on every review. Comment HistoryReview history (4 earlier review cycles)
Reviewed October 27, 2026, 8:50 PM ET / October 28, 2026, 00:50 UTC (Revision 5). |
|
@clawsweeper re-review |
|
🦞👀 Re-review progress:
|
|
@clawsweeper re-review |
|
🦞👀 Re-review progress:
|
|
On the decision question: I recommend the bounded optional contract for Compute-owned dedicated Harnesses. It addresses Kata's documented This is the proposer's rationale, not a recorded Compute-owner approval. Please keep the maintainer decision open. RFC-0024 remains Proposed, and this draft PR contains only the RFC, its planned delivery record, and the index entry. The required Agent integration and Kata qualification remain future delivery gates. |
|
@clawsweeper re-review |
|
🦞👀 Re-review progress:
|
|
@clawsweeper re-review |
|
🦞👀 Re-review progress:
|
|
@clawsweeper re-review I updated RFC-0024 and its plan with the isolated AWS Kata trial. The proposed contract remains fully optional: unset/blank values keep the current behavior; a selected class must not fall back. The real dedicated Harness reached Ready under Kata with zero |
|
🦞👀 Re-review progress:
|
|
@clawsweeper re-review — I clarified that Kata is the first qualification target, linked the closed gVisor proposal, and made the unset/blank default explicit: no alternate runtime installation or Pod layout change is required. This remains an RFC-only PR; other handlers need separate qualification before support is claimed. |
|
🦞👀 Re-review progress:
|
|
@clawsweeper re-review The RFC now explains the future OpenShell path: OCE's Sandbox Driver already puts its |
|
🦞👀 Re-review progress:
|
|
@clawsweeper re-review — I clarified that a future OpenShell Kata path reuses its existing Sandbox Driver RuntimeClass setting and the same operator-installed RuntimeClass. The RFC Compute setting only applies to Compute-owned Pods. The current OpenShell subPath layout and provider-owned workflow still need separate compatibility and qualification. |
|
🦞👀 Re-review progress:
|
0024 is taken by the pending Harness RuntimeClass RFC (openclaw#3893), per review. The continuity check in docs:check will report the resulting gap on this branch until openclaw#3893 lands and this PR rebases onto it.
0024 is taken by the pending Harness RuntimeClass RFC (openclaw#3893), per review. The continuity check in docs:check will report the resulting gap on this branch until openclaw#3893 lands and this PR rebases onto it.
0024 is taken by the pending Harness RuntimeClass RFC (openclaw#3893), per review. The continuity check in docs:check will report the resulting gap on this branch until openclaw#3893 lands and this PR rebases onto it.
Summary
runtime.harnessRuntimeClassNameis absent, empty, or whitespace-only; no alternate runtime installation is required. A nonblank selection must retain the named class through readiness; an unavailable class leaves the Agent unready without fallback.specs/rfcs/0024-optional-harness-runtime-class.md,specs/plans/0024-optional-harness-runtime-class.md, and thespecs/README.mdindex entry. The plan remains Planned; this PR changes no product code.Research
OpenShell’s Sandbox Driver already sets the RuntimeClass for provider-owned Harness Pods. The RFC records how a future Kata qualification can reuse that setting and the same operator-installed RuntimeClass. The Compute setting applies only to Compute-owned Pods. OpenShell’s current layout also uses
subPathmounts, so that path still needs mount compatibility and provider-owned Agent qualification.Current Kubernetes Compute leaves
runtimeClassNameunset and usessubPathmounts in its dedicated Harness. Kata does not support KubernetessubPathmounts, so selecting a class alone would not make that Pod compatible. The proposal confines a whole-volume layout to explicitly selected Harnesses. Kata is the first qualification target. The selector is runtime-neutral, but it does not qualify every handler: the earlier gVisor proposal closed unmerged, and gVisor needs its own Harness checks before support is claimed. Kata's VM architecture offers a separate guest kernel and another isolation layer; OCE's Secret, network, and tenant controls remain necessary.A disposable AWS M7i/k3d trial booted a Kata 4.3.1 QEMU smoke Pod with a different guest kernel and active guest seccomp. An isolated prototype then ran a real dedicated Harness Pod with the selected class and no
subPathmounts. The Agent completed a model turn, native file read/write, attachment continuation, and a separate Skill source upload/update/denied-write case. The broader workflow failed remote Memory retrieval, expected Skill discovery path, and paired-node reconnect after restart; optional repository projection, replacement persistence, missing-class behavior, and Codex localhost seccomp remain unproved. Symlink aliases for persistent state and workspace failed OpenClaw path checks, so the RFC now requires real private state directories and canonical workspace mapping. Host/dev/shmwas needed in the k3d node, and enforcing Fedora SELinux forvirtiofsdremains unqualified. These are trial findings, not a support claim.Verification
git diff --checkand file-scoped Prettier passed for the proposal files. The RFC is under 1,500 words and the plan under 1,500 words bywc -w, including Markdown syntax.pnpm docs:check-length,pnpm docs:check, andnode scripts/check-specs.mjscould not run on the final revision because the installed dependency graph lacks@sindresorhus/slugify; no dependency installation was performed as a verification side effect.Review focus
RFC numbering
The current base,
222d2266842db457415e146b70a30abf430480aa, ends at RFC-0023, so this proposal uses RFC-0024. Concurrent unmerged proposals, including PR #3137, also use RFC-0024; unmerged proposals do not reserve IDs. Reconcile the number and file names againstmainbefore merge. This draft requests architectural feedback and does not claim acceptance.