Skip to content

Runtime: backport native node byte IPC and committed pairing publication - #3828

Draft
Kimiyu-186 wants to merge 14 commits into
codex/strands-03-revision-providerfrom
codex/strands-04-native-runtime
Draft

Kimiyu-186 wants to merge 14 commits into
codex/strands-03-revision-providerfrom
codex/strands-04-native-runtime

Conversation

@Kimiyu-186

@Kimiyu-186 Kimiyu-186 commented Oct 27, 2026 •

Copy link
Copy Markdown
Collaborator

This is review unit 4/8, replacing the corresponding part of #3823. Its base is codex/strands-03-revision-provider so Files changed shows only this module. The series is a review stack; no individual draft claims the complete integration is independently deployable.

Previous: #3827 · Next: #3829

Problem, change and necessity

The pinned OpenClaw runtime has two independent blockers for this integration. Native Node IPC calls recvmsg, while Box denies descriptor reception. Separately, a pending pairing write for another device can invalidate an already committed node binding.

This applies hash-checked runtime backports with regression patches before OpenClaw compilation. The node launcher selects an advertised byte-only protocol, retaining bootstrap acknowledgement and parent-loss cleanup. The pairing repair preserves committed authority during unrelated publication while keeping revocation and changed approvals effective. It introduces no request retry.

Attribution: byte IPC is the sandbox compatibility change. Pairing publication is an existing OpenClaw defect, already fixed upstream by openclaw/openclaw#169575; no duplicate upstream fix is proposed. The build contains the backport because the selected runtime predates it. Both patches must be removed when an approved source pin contains their fixes. This PR does not update a runtime pin.

Review: read the two implementation .patch files; their companion regression patches are tests. Dockerfile runs those tests offline during assembly and build-runtime-assets.mjs records patch hashes. Full installed-image evidence is below; x86 image assembly is not claimed.

Review fixes and focused verification

No further production change was required in this module by the independent review. The pairing change is an existing OpenClaw correction; the byte protocol is the Box compatibility adaptation. The retained native base image and backport provenance are checked before the new Box layer is built. Cached build-layer reuse is not reported as a fresh rerun of its earlier pinned-source tests. Fresh assembled-runtime acceptance is reported below.

Current assembled qualification

The refreshed Linux ARM64 composition uses Box source 7cafba29bdc8cb7db1b2db9512bb2a4bd0c15d20, combining the owner work with Box #182. The unchanged OpenClaw source pin is f8386bc7df0a6c9eda7a28ae81943c5c06a414ff with the reviewed compatibility backports; the OCE code-mode entrypoint links unchanged Codex libraries at a6274249d5877030676db098914db686bab7c921.

Current local images:

  • Controller: sha256:b7aeb2ae12d2a6509a40f0d467fc8be00bc78a4b59cfe5afc39f91d22a1b4318
  • Gateway/Harness runtime: sha256:a97dacd66f3b06d23adacbfdb3d10074d02d2130f345ec5217ad89135d27bf7b

On these images, native invalid-key deployment returned RUNTIME_AUTHENTICATION_FAILED; the provider stayed unready and the revision never activated. The ordinary Service remained Ready-only. Earlier failed startup attempts are retained as failures and were resolved by explicit fixes, not retries into a pass.

Fresh local native acceptance completed 37/37 checks on the two images above. It covers real model file operations and denial, split storage, exact skill bytes and execution, lexical and local semantic memory, authenticated streaming/stdin/cancellation/reconnect, native code mode, Pod replacement, live revision replacement, two-Agent isolation and overlapping turns, and guarded fixture/key cleanup. Local embeddings worked while Gateway public HTTPS remained denied.

Live DNS maintenance replaced real A→B exact destinations and withdrew stale addresses. A real lookup failure recorded maintenance failure without changing the policy. Maintenance resumed after a worker restart. The temporary DNS fixture and installation changes were restored.

An actual retained-VM stop/start changed the boot ID. The same revision, PVC identities, index database inode, workspace data, paired node, immutable images and security profile survived. Postboot real memory_search retrieved both the earlier fact and a synonym-only semantic seed; skills and shell execution succeeded without workload or policy repair. Only observer connections were restored.

Evidence limit: the reboot receipt retains an overall FAILED result because its read-only executable observer used unsupported k3s ctr; the recovery snapshots and single model task passed. A separate same-image, single-task supplement used the installed native containerd client and captured the live code-mode host as an app-server child, matching the packaged inode and SHA256 ab1f0119c95797473ac20a391433e612fdddbf026cf2943d777ff6837ad0beaa. That supplement passed and does not relabel the earlier failed observation as an uninterrupted green run. Earlier fixture failures are retained separately. Both Agents are stopped, the original binding/index and installation are restored, and the personal key is absent from tenant Secrets.

These are local composition results, not stock Box-main qualification or a complete upstream test-suite pass. CI remains scoped to each exact PR head; skipped draft lanes are not counted as passes.

Scope and merge boundary

This is the data-plane revision-Pod architecture with remote Harness and split storage. Existing sandbox/network restrictions remain. Local ARM64 evidence does not establish other architectures, production scale or production distribution. Credential proxy and Codex PAT are excluded; pause/resume is explicitly unsupported.

Draft only. Human no-merge hold and applicable independent-review/image qualification gates remain. No ready promotion, merge, production rollout or internal pin approval is implied.

@clawsweeper

clawsweeper Bot commented Oct 27, 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:bug Preliminary submission classification; full source review pending. clawsweeper:intake:needs-repro Preliminary submission classification; full source review pending. P2 Normal priority bug or improvement with limited blast radius. merge-risk: 🚨 security-boundary 🚨 Merging this PR could weaken sandboxing, authorization, credentials, or sensitive data. rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. and removed clawsweeper:intake:bug Preliminary submission classification; full source review pending. clawsweeper:intake:needs-repro Preliminary submission classification; full source review pending. labels Oct 27, 2026
@clawsweeper

clawsweeper Bot commented Oct 27, 2026 •

Copy link
Copy Markdown
Contributor

Codex review: blocked before merge.

What this changes

This PR backports byte-only node supervision and preserves committed pairing authority during unrelated pairing writes.

Example: Node A receives canvas.snapshot while node B’s presence update is pending.

  • Before: The pinned Gateway can reject A’s dispatch because the pending write makes pairing authority unavailable.
  • After: A receives the command while B’s write remains pending; revoking A still prevents stale dispatch.

Review scores

Measure Result What it means
Overall readiness 🦐 gold shrimp (3/6) Useful, focused runtime repairs with meaningful authority evidence; protocol-transition qualification remains incomplete.
Proof confidence 🦐 gold shrimp (3/6) Real behavior proof is not required for maintainer- or bot-authored pull requests.
Patch quality 🐚 platinum hermit (4/6) No actionable review findings were identified.

Product

Kind: Bug fix · Worth it: Yes · Fix scope: Complete
User problem: Native node supervision cannot operate under the sandbox’s descriptor-reception restriction, and the older pinned Gateway can interrupt a node during another device’s pairing write.
Reason: The maintainer-authored direction addresses concrete integration blockers through existing runtime owners, with the already-upstream portion removable during integration.

Merge readiness

⛔ Blocked before merge - 2 items remain

Keep this PR open for maintainer triage under its explicit no-merge hold; no discrete correctness defect was found in the introduced hunks, but main’s runtime update requires integration work.

Priority: P2
Reviewed head: cd7aa8921e109d8046a6b887cf098a62cb4432c8

Before merge

  • Resolve merge risk - Before merging the stack, the PR owner must reconcile these patches with main’s newer source: remove the already-upstream pairing backport and duplicate regressions, adapt the retained byte transport, and register every retained patch in the existing provenance inventory.
  • Await maintainer action - The human stack owner must explicitly lift the recorded no-merge hold before ready promotion or landing.

Findings

None.

Tests

  • Missing end-to-end proof: The supplied evidence does not show an installed upgrade from the latest stable legacy-IPC runtime to the byte-pipe runtime with node identity, settings, and persisted state retained.
Agent review details

How this fits together

The runtime image build patches pinned OpenClaw source before compilation; the resulting Gateway authorizes node delivery, and the node supervisor exchanges bootstrap, readiness, and restart messages with its child.

flowchart LR
  Source[Pinned OpenClaw source] --> Build[Runtime image build]
  Patches[Reviewed backports] --> Build
  Build --> Gateway[Gateway pairing publication]
  Build --> Supervisor[Node supervisor]
  Supervisor -->|Private byte messages| Node[Harness node]
  Gateway -->|Current pairing check before delivery| Node
Loading

Technical review

Best possible solution:

Retain the byte transport on main’s selected source, reuse its upstream pairing repair, and record retained patches through the existing provenance inventory.

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

The old pinned source exposes both reported triggers; current main already contains the pairing repair but still uses native node IPC, and no target code was executed during this review.

Is this the best way to solve the issue?

The backports address the owning launcher and Gateway publication paths without retries or sandbox permission expansion, but the final integration should contain only changes absent from main’s selected upstream source.

AGENTS.md: found and applied where relevant.

Codex review notes: model internal, reasoning medium; reviewed against 0402f1cf13aa.

Merge-risk options

Maintainer options:

  1. Reconcile with the selected runtime (recommended)
    The PR owner removes obsolete backports and ports the remaining transport change into main’s current build and patch inventory before landing the stack.
  2. Keep the stack paused
    Maintainers retain the draft and no-merge hold until the runtime integration is ready.

Provenance checked

  • Pairing publication fence changes intended behavior with a stated reason (fix: keep concurrent node turns available during capacity updates openclaw#164087: The earlier repair preserved authority for three metadata operations while retaining the broader revocation and approval fence; the later upstream repair explains why committed receipts make that remaining fence unnecessary.)
  • Native node supervision changes intended behavior with a stated reason (unknown: The pinned launcher uses Node IPC for bootstrap acknowledgements, readiness, restart selection, and parent-loss handling; historical introduction was not established.)
  • Runtime build and regression placement keeps the original intent (e82fa9b: The native runtime integration applies scoped bridge patches and exercises their original public callers before packaging.)

Testing

Proof path: in-process harness.

Security

None.

Evidence

What I checked:

Labels

Label changes:

No label changes.

Label justifications:

  • P2: This is a scoped runtime integration repair for a draft sandbox stack, with no demonstrated urgent failure in current deployed users.
  • merge-risk: 🚨 compatibility: The node supervision protocol changes across selected packages, and main now uses a different source pin and patch inventory.
  • rating: 🦐 gold shrimp: Overall readiness is 🦐 gold shrimp; proof is 🦐 gold shrimp and patch quality is 🐚 platinum hermit.

Rank-up moves

Optional improvements that raise the rating; they are not merge blockers.

  • Demonstrate the installed legacy-IPC-to-byte-pipe upgrade with node identity, settings, and state retained.

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.

History

Review history (2 earlier review cycles)
  • reviewed 2026-10-27T06:45:30.735Z sha 4b2a179 :: needs real behavior proof before merge. :: none
  • reviewed 2026-10-27T18:20:14.199Z sha cd7aa89 :: blocked before merge. :: none

Reviewed October 27, 2026, 2:26 PM ET / 18:26 UTC (Revision 3).

…04-native-runtime

# Conflicts:
#	docs/flows/harness-execution-topology.md
@Kimiyu-186

Copy link
Copy Markdown
Collaborator Author

@clawsweeper re-review

The branch and PR body now include the scoped repair and inspectable evidence for head cd7aa8921e109d8046a6b887cf098a62cb4432c8. The assembled Linux ARM64 runtime passed a fresh 33/33 native OCE acceptance run and real VM stop/start recovery, including retained local semantic memory without reindexing. Authority, cleanup, protocol and focused regression outcomes and their limits are recorded in the body. Please reassess the prior findings against this revision.

This remains a draft under an explicit human no-merge hold. CI status is linked in the body; this request does not claim pending checks or independent human review are complete.

@clawsweeper

clawsweeper Bot commented Oct 27, 2026 •

Copy link
Copy Markdown
Contributor

🦞👀
Exact review queued.

Re-review progress:

@clawsweeper clawsweeper Bot added clawsweeper:intake:bug Preliminary submission classification; full source review pending. clawsweeper:intake:needs-repro Preliminary submission classification; full source review pending. merge-risk: 🚨 compatibility 🚨 Merging this PR could break existing users, config, migrations, defaults, or upgrades. rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. and removed merge-risk: 🚨 security-boundary 🚨 Merging this PR could weaken sandboxing, authorization, credentials, or sensitive data. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. clawsweeper:intake:bug Preliminary submission classification; full source review pending. clawsweeper:intake:needs-repro Preliminary submission classification; full source review pending. labels Oct 27, 2026
@freeqaz

freeqaz commented Oct 28, 2026

Copy link
Copy Markdown
Collaborator

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

Heads-up for the next sync with main: #3926 (merged) changed the openclaw-bridge-tests stage in deploy/runtime/Dockerfile. The two Node bridge test files now run in one scripts/test-projects.mts invocation on a tmpfs .artifacts mount, because each invocation first compiles the whole source tree for its workers (about a minute on a cold build).

This PR adds another test-runner step there. When you resolve the conflict, please add its test files to that single invocation instead of a separate RUN. A separate step pays the full compile again in every image lane and in the cache-warming job.

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

merge-risk: 🚨 compatibility 🚨 Merging this PR could break existing users, config, migrations, defaults, or upgrades. P2 Normal priority bug or improvement with limited blast radius. rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants