Native ACP session computer dispatch and renewable scoped admission #668
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/mausbot-native-computer-dispatch"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Merged main
71ca31b7records ACP computer capabilities but never dispatches the native agent's tools through them. This adds an explicit session-scoped ACP client-computer Backend: one retained session pins one fresh allocation tuple, its filesystem/exec tools use custodian callbacks, and failed admission, expiry, mismatch or transport ambiguity cannot select the configured Execd backend.Design
session/loadmetadata. Explicit intent is sticky even if initial admission fails. The full owner/allocation/session/workspace/sandbox/generation/executor/site/root tuple is immutable; only same-tuple lease extension is accepted. New connections must explicitly reattach. Capabilities alone do not enable dispatch; foreign principals and session operators cannot substitute another owner's computer.Bootstrap, renewal and receiver custody
sessionissuer and separatesandboxbootstrap principal perform allocation/attach/renew; custodianallocation_readandexecutor_scopedprincipals remain narrow and cannot acquire lifecycle authority.Endpoint.native_tlsprovides exact-issuer authenticated HTTPS, trusted token-file custody, no ambient proxy, redirects, retries or plaintext, while honoring the configured request deadline.native_admission_filerefreshes exact grants at request time without restarting either receiver, resetting generation, reattaching or losing processes/receipts. Missing/malformed/untrusted/expired snapshots fail closed with no cached/inline fallback. A coordinator renews the real lease first and publishes capped grants; native session cap refresh uses idle retained load, so turns remain bounded by the observed lease.Full contract and explicit Talos work: native-client-computer.md.
Validation and independent review
Final product/test/design revision
4c996e823ca79ec8b71b1c3907e51ae3e93a667c; evidence-only commits through20178602c4da24c057ea2cb71183523201234d29preserved all 30 recorded hashes. Current heade0ecfe99b46fbccc3c214547c6bf9726e5f17a18adds only the round-6c CI workflow/test-runner correction and evidence below. The other 28 recorded source files, including Rust product code, Rust tests and custodian fixtures, retain their hashes.50 selected local tests passed, zero failed, zero ignored on macOS arm64:
Fresh-context independent full-diff review is CLEAN STATIC REVIEW at the final source revision after seven findings were corrected. Reviewer ran no builds/tests. Retained report, exact raw compressed logs/checksums, artifact hashes and earlier failing evidence: round-6a evidence.
Every build used jobs=2 and dedicated
/Users/toasty/.cache/mausbot-round6a-target, debug0/incremental0, Data-volume preflight and a 20GiB floor watcher. No floor bypass or target cleanup. Feature-limited library compilation emitted existing unused/dead-code warnings; full feature/clippy/CI coverage is pending.Round 6c: native client computer CI prerequisite correction
Run 4321 / job 2 failed at exact old head
20178602c4da24c057ea2cb71183523201234d29. Authoritative Solstice request6967f100-88e5-42a5-8966-0a07c6122e53shows successful compilation, thennative_computer_fixture_survives_permissive_umaskand its innernative_agent_custodian_exact_fresh_receiverfail because the guest installed Node 12.22.9.driver.mjs:20top-levelawaitthrowsSyntaxError: Unexpected reserved word. The root test was never reached. This is CI prerequisite wiring, with no observed product, permission or timing defect and no blind rerun.The guest now installs official Node v22.23.3, pinned with separate x64/arm64 SHA256 checksums. Before Cargo, the runner checks both CI-user and sudo Node >=22, driver syntax, actual custodian-module import, top-level await and required APIs; successful CI receipts record both versions. Six local prerequisite/order/syntax checks pass; both Linux archives were streamed and their exact official SHA256 values verified without installation/execution. Other CI categories and test-selection/receipt requirements are unchanged.
Data remained below the 20 GiB floor (about 19.84 GiB), so round 6c performed no Rust compilation or fixture execution and deleted no targets. Real local Node preflight used v26.12.0; Node12/missing-runtime/failure-order cases use mocks. No new-head Linux pipeline pass is claimed. Product code and fixtures are unchanged, so no independent product-delta review was required. Exact raw compressed Solstice logs, readable views, source/artifact hashes, validation and classification: round-6c CI receipt.
WAITING-CI at
e0ecfe99b46fbccc3c214547c6bf9726e5f17a18; parent watches and merges. Temporary read-only logs port-forward closed. No Talos edits, merge, live/production mutation or live cluster daemon/binary execution.Required CI and post-merge acceptance
test-native-client-computerVM receipt (2 executed/0 ignored): non-root permissive-umask regression and actual root native pipeline, with missing-KILL/reduced-worker denials and exact cancellation under the seven-capability receiver profile. Linux execution was not performed on this Mac.No merge, production/live mutation, enrollment, grant/allocation installation, activation, Board action or live daemon probe was performed. All allocations/credentials/certificates/processes used here were disposable fixtures. Round 6b PID/discovery and incident reconciliation are untouched. Parent owns watching CI and merging.