Repository navigation
fix: qualify local bridge execution, DNS isolation, and trace provenance - #263
Conversation
…t-jailed claude and kimi runs can start The pool registers its verified jail under the executor config name (`claude`, `kimi`), while the chat route looks it up by `backend.name` (`claude-code`, `kimi-code`). Every net-jailed Claude or Kimi request is therefore refused with "backend 'claude-code' has no net-jail in force", even though the jail is provisioned and verified at startup. buildExecutorForBackend now takes the routed name and keys the registry with it; each call site passes the same name its backend registers under. Measured on beelink1, 2026-10-17, at 755bd3c with CLAUDE_EXECUTOR=docker and BRIDGE_NET_JAIL_MODE=net-jail: the log shows "net-jail verified ... egress denied except api.anthropic.com:443", and every chat request returns 400 executor_misconfigured. With this key fix, the same configuration serves net-jailed Claude runs. Inside the slot, example.com and a tailnet address both return 000.
fix(net-jail): key the jail registry by the routed backend name so net-jailed claude and kimi runs can start
tangletools
left a comment
There was a problem hiding this comment.
✅ Auto-approved PR — 40f7dcd7
Blanket team auto-approval is intentional. This is not a code review.
No automated review runs on this PR. This approval rests on the rule above alone.
tangletools · auto-approval · reason: blanket_auto_approve · 2026-10-18T01:57:34Z
tangletools
left a comment
There was a problem hiding this comment.
✅ Auto-approved PR — 6509d1e7
Blanket team auto-approval is intentional. This is not a code review.
No automated review runs on this PR. This approval rests on the rule above alone.
tangletools · auto-approval · reason: blanket_auto_approve · 2026-10-18T02:56:46Z
tangletools
left a comment
There was a problem hiding this comment.
✅ Auto-approved PR — 96cd28d9
Blanket team auto-approval is intentional. This is not a code review.
No automated review runs on this PR. This approval rests on the rule above alone.
tangletools · auto-approval · reason: blanket_auto_approve · 2026-10-18T02:57:47Z
tangletools
left a comment
There was a problem hiding this comment.
✅ Auto-approved PR — b73b5d3a
Blanket team auto-approval is intentional. This is not a code review.
No automated review runs on this PR. This approval rests on the rule above alone.
tangletools · auto-approval · reason: blanket_auto_approve · 2026-10-18T02:59:57Z
tangletools
left a comment
There was a problem hiding this comment.
✅ Auto-approved PR — d7df6f93
Blanket team auto-approval is intentional. This is not a code review.
No automated review runs on this PR. This approval rests on the rule above alone.
tangletools · auto-approval · reason: blanket_auto_approve · 2026-10-18T03:00:57Z
Scope and status
The local execution path is now qualified end to end: published Agent Runtime -> authenticated loopback CLI-Bridge -> actual OpenCode -> explicitly selected GLM free inference. The model completed a filesystem task, the Bridge was restarted, and the same native session resumed successfully. The final live-proof job also passed the complete repository suite, TypeScript check, published Runtime consumer regression and actual Linux jail isolation checks.
Current qualified head:
d7df6f93282396910b0fe178cc7162915fea2c09. The successful PR integration tree recorded by the execution receipt isd608afecbd6b73f82812e48923fec3815ce6021d. The source fixes for the remaining timeout regressions were published in6509d1e7f33fe93346064077446dd949cc5fae8e. All temporary source-finalization and cloud-bundle workflows are deleted; the maintained opt-in live-inference workflow remains.Changes
Executed verification
Source qualification 39091779283: integrated current main, frozen strict-peer installation, TypeScript, three repeated executions of the Pi/native process-lifetime regressions, the complete repository suite and the actual published Runtime consumer all passed. Only then were the source fixes committed. The two repaired test files also passed locally: 28 tests, zero failures.
Final live qualification 39092115882, on the PR integration tree recorded above:
opencode/glm-5.3-flash-free, with no automatic model or paid fallback.ses_eb30a40a4ffeJzfkwzXfzxVi2E; the resumed task recovered the prior conversation-only marker without resupplying it and wrote the checked result.The downloaded receipt reports
status:passed; the artifact archive digest and both output-file digests were independently recomputed and matched. Artifactlocal-inference-39092115882-1(ID 12122983625), SHA-256c5dca0a1f19243134a278749b368fb004e7b47f056a2822a54d18be4411cee0f, is retained with the successful run. The receipt, native logs, before/after session records and trace objects are included. Provider monetary accounting remainsusdKnown:false; selecting a free model is not a separate billing audit.Earlier rate-limited provider attempts and failed runner preflights remain in Actions history; they are not counted as success. The earlier direct ChatGPT-container boot/authentication proof remains valid, but its inference attempt failed due to external connectivity. The successful complete inference proof above ran on GitHub's cloud runner, not in that DNS-restricted container.
Reproduce
Requires Linux with working bubblewrap, supported Node and installed OpenCode.
OPENCODE_BINselects the executable;CLI_BRIDGE_LIVE_OUTselects a new evidence directory. Missing prerequisites, provider errors, incorrect file output or failed continuation fail the proof rather than self-skipping. The maintained workflow provisions its own CLI and uses fresh synthetic workspaces, not customer data or host model credentials.Boundaries
This qualifies local Runtime execution, Bridge HTTP/process handling, filesystem tools, native restart/resume and local trace retention. It does not qualify Agent App browser journeys, production R2 capture, complete producer coverage, disaster recovery or training eligibility. Storage changes are in agent-container #10962. There are no unresolved inline review threads; independent reviewer approval is not asserted. Nothing was merged, deployed, published as a dataset or used for training.