Skip to content

refactor: modularize VM runtime with V8 defaults - #2040

Draft
NathanFlurry wants to merge 1 commit into
mainfrom
binarian
Draft

NathanFlurry wants to merge 1 commit into
mainfrom
binarian

Conversation

@NathanFlurry

@NathanFlurry NathanFlurry commented Oct 13, 2026 •

Copy link
Copy Markdown
Member
  • Separate the VM kernel, driver and executor contracts while keeping V8 as the default for JavaScript, Python and WASM; Wasmtime and Binaryen remain opt-in.
  • Correct lifecycle, networking, filesystem, resource limits and Rust/TypeScript client behavior. Remove implicit model-provider endpoints and preserve VM-local networking when outbound access is denied.
  • Restore the hosted API and checked examples, and validate real Git/SSH, curl protocols, GNU awk and Linux/WASM UDP packet-info support.
  • Fresh installation, current runtime compatibility, and the mixed-runtime and callback soaks pass. Required CI is under its ten-minute target with unchanged coverage; full packaging, nightly validation and longer lifecycle checks remain open.
  • Keep this as a draft: performance comparisons, final security review, hosted dependency hygiene and official hosted delivery/adoption are still open. Local hosted checks use private upstream fixes.

@railway-app

railway-app Bot commented Oct 13, 2026 •

Copy link
Copy Markdown

🚅 Environment agentos-pr-2040 in rivet-frontend has no services deployed.

3 services not affected by this PR
  • sentry-tunnel
  • kitchen-sink
  • mcp-hub

@NathanFlurry
NathanFlurry force-pushed the binarian branch 2 times, most recently from 88f7f44 to e9f54db Compare October 30, 2026 02:56
@github-actions

github-actions Bot commented Oct 30, 2026 •

Copy link
Copy Markdown
Contributor

📟 Pip-Boy · 0df5893

📦 Packages

Skipped: this PR doesn't change any published package.

🧹 Rust dependencies · cargo deny + cargo shear

❌ The hygiene job failed. See the run.

check new in this PR fixed existing on base
advisories ❌ 1 12 19
licenses ✅ 0 0 0
sources ✅ 0 0 0
bans ✅ 0 0 0
unused 🟡 66 13 3
new finding via
RUSTSEC-2021-0127 serde_cbor@0.11.2: serde_cbor is unmaintained agentos-bindgen-export › agentos-actor › rivetkit › rivetkit-client › serde_cbor
unused dependency 'rivetkit-core' crates/actor/Cargo.toml
unused dependency 'sha2' crates/actor/Cargo.toml
misplaced dependency 'base64' crates/actor/Cargo.toml
misplaced dependency 'hex' crates/actor/Cargo.toml
15 unlinked files in 'agentos-actor' ``
3 unlinked files in 'agentos-client' ``
unused dependency 'agentos-executor-node-v8' crates/executor-conformance/Cargo.toml
unused dependency 'agentos-executor-python-v8-pyodide' crates/executor-conformance/Cargo.toml
unused dependency 'agentos-executor-wasm-abi' crates/executor-conformance/Cargo.toml
unused dependency 'agentos-executor-wasm-v8' crates/executor-conformance/Cargo.toml
unused dependency 'ciborium' crates/executor-conformance/Cargo.toml
unused dependency 'flume' crates/executor-conformance/Cargo.toml
unused dependency 'getrandom' crates/executor-conformance/Cargo.toml
unused dependency 'nix' crates/executor-conformance/Cargo.toml
unused dependency 'serde_bytes' crates/executor-conformance/Cargo.toml
unused dependency 'sha2' crates/executor-conformance/Cargo.toml
unused dependency 'tokio' crates/executor-conformance/Cargo.toml
unused dependency 'tracing' crates/executor-conformance/Cargo.toml
unused optional dependency 'agentos-executor-wasm-wasmtime' crates/executor-conformance/Cargo.toml
… and 47 more

🦀 Binaries · publish Dockerfiles, --release

Base: main@4662e36, the newest main commit with native builds before the merge base. Size changes merged to main since then show up here too.

artifact npm @latest base this PR Δ vs base
🟡 agentos-native-sidecar darwin-arm64 269.9 MB 120.3 MB 128.4 MB +8.1 MB (+6.8%)
🟡 agentos-native-sidecar darwin-x64 270.7 MB 129.7 MB 135.2 MB +5.5 MB (+4.2%)
🟡 agentos-native-sidecar linux-arm64-gnu 597.0 MB 141.1 MB 149.6 MB +8.5 MB (+6.0%)
🟡 agentos-native-sidecar linux-x64-gnu 593.7 MB 144.0 MB 150.2 MB +6.2 MB (+4.3%)
`agentos-native-sidecar linux-arm64-gnu` · crates that changed most (from symbol sizes, approximate)
crate base this PR Δ
agentos_vm 0 B 4.7 MB +4.7 MB (new)
agentos_native_sidecar 3.6 MB 0 B −3.6 MB (−100.0%)
agentos_executor_v8_runtime 0 B 2.2 MB +2.2 MB (new)
agentos_v8_runtime 1.9 MB 0 B −1.9 MB (−100.0%)
vfs 1.0 MB 0 B −1.0 MB (−100.0%)
core 6.3 MB 7.2 MB +984.7 KB (+15.4%)
agentos_vm_kernel 0 B 975.2 KB +975.2 KB (new)
agentos_vfs_core 0 B 865.0 KB +865.0 KB (new)
wasmparser 0 B 583.9 KB +583.9 KB (new)
agentos_driver_tokio 0 B 525.6 KB +525.6 KB (new)
`agentos-native-sidecar linux-x64-gnu` · crates that changed most (from symbol sizes, approximate)
crate base this PR Δ
agentos_vm 0 B 5.9 MB +5.9 MB (new)
agentos_native_sidecar 4.5 MB 0 B −4.5 MB (−100.0%)
agentos_executor_v8_runtime 0 B 2.3 MB +2.3 MB (new)
agentos_v8_runtime 2.0 MB 0 B −2.0 MB (−100.0%)
vfs 1.3 MB 0 B −1.3 MB (−100.0%)
agentos_vm_kernel 0 B 1.2 MB +1.2 MB (new)
agentos_vfs_core 0 B 1.1 MB +1.1 MB (new)
core 6.2 MB 7.1 MB +955.4 KB (+15.0%)
agentos_kernel 648.4 KB 0 B −648.4 KB (−100.0%)
agentos_runtime 646.4 KB 0 B −646.4 KB (−100.0%)

⏱ Timing

job wall time slowest step
zizmor 10s setup-uv · 3s
changes 26s checkout · 21s
self-test 32s setup-node · 8s
❌ hygiene 49s checkout · 20s
native · darwin-x64 3m52s Build with the publish Dockerfile · 3m36s
native · darwin-arm64 3m58s Build with the publish Dockerfile · 3m39s
native · linux-arm64-gnu 10m18s Build with the publish Dockerfile · 9m51s
native · linux-x64-gnu 4m41s Build with the publish Dockerfile · 4m23s
⏭ footprint — skipped
report 26s Write the comment and run summary · 7s
🔭 Full CI trace for this commit

One OpenTelemetry trace of CI and Pip-Boy for 0df5893: every job and step, with the sizes above attached. Run after CI finishes.

pnpm install --frozen-lockfile --filter 'pipboy...'
pnpm --filter pipboy pipboy trace --sha 0df58935963024845c97bceca63ea8a2c0e570c1

Add --otlp <url> to send it to any OTLP/HTTP collector.

Agent instruction: From a rivet-dev/agentos checkout, run the commands above, then read the trace file the last command prints. List the slowest jobs and steps and explain where CI time went.

@NathanFlurry
NathanFlurry force-pushed the binarian branch 3 times, most recently from 9440e16 to 35a675a Compare October 30, 2026 04:09
@NathanFlurry
NathanFlurry force-pushed the binarian branch 5 times, most recently from 131a40e to 599c600 Compare November 12, 2026 08:45

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

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant