Commit Graph
151 Commits
Author SHA1 Message Date
surma 17d67aadcc Refresh unit requests and preserve shared compilation across runtime shutdown 2026-11-06 23:53:54 +00:00
surma 9517515efe api: shut the init supervisor down gracefully after the console (merge fix for T22 + T25) 2026-11-06 23:43:49 +00:00
surma 904415063a Merge v3-t25: host API routes and host-served approval, passkey and secret-entry pages (T25) 2026-11-06 23:24:26 +00:00
surma c500ecd281 api: merge v3 proofs and add host approval pages and listener 2026-11-06 23:18:24 +00:00
surma 65464069d3 Merge v3-t22: init as a WASI systemd subset, file watchers, exit pollables (T22) 2026-11-06 23:15:39 +00:00
surma 5a00cf3feb Merge v3-p2-fix: security review fixes for the credentials manager (T27, T28)
Typed passkey proofs checked inside mutation transactions, ports and normalized
paths, overrides on GrantCreate, payload digests, key file checks, retention
(D57), scripts in QuickJS inside Wasmtime (D58), RSA on aws-lc-rs, OAuth2
token URL checks. 85 credential tests plus durable and harness tests pass.
2026-11-06 22:47:16 +00:00
surma e332e76807 cred: reject the reserved host and migrate durable fixtures 2026-11-06 22:44:17 +00:00
surma aeb14a0b70 Merge v3-t30: curl for the world on wasi:http (T30) 2026-11-06 22:44:03 +00:00
surma 47948d7047 Frame curl requests and scope the test fixture lifecycle 2026-11-06 22:41:47 +00:00
surma 6c9eccaa21 Add WASI curl CLI and native HTTP comparisons 2026-11-06 22:31:22 +00:00
surma 86c5d8a4e4 cred: isolate scripts in WASI and move RSA signing to AWS-LC 2026-11-06 22:22:49 +00:00
surma f234b2d1e2 Merge v3 with T15 into v3-t22 2026-11-06 22:20:05 +00:00
surma 5b3e1393f5 cred: complete core proof, policy, storage and injection fixes 2026-11-06 22:19:35 +00:00
surma e33d3fac3b Merge v3-t15: shared compile cache, precompile, /bin/*.wasm and /src/sausage copies (T15) 2026-11-06 22:18:53 +00:00
surma b3d91d37e3 process: keep Cranelift's default optimization level
Compiles are cached per content and guests run many times; OptLevel::None
saved 12.7% compile time but slows every run.
2026-11-06 22:18:33 +00:00
surma e8732ede15 Limit background compilation and reduce cold compile cost 2026-11-06 21:39:22 +00:00
surma a75094054e Merge branch 'v3' into v3-p2-fix 2026-11-06 21:31:50 +00:00
surma b3d3558b31 cred: stage T27 core fixes and security regressions before T26 merge (WIP) 2026-11-06 21:31:50 +00:00
surma 940ae61af6 cred: blind RSA signatures and stage T28 security regressions (WIP) 2026-11-06 21:17:52 +00:00
surma b0a651868f Merge v3-t26: credential requests as durable tasks, llm-proxy token as an item (T26) 2026-11-06 21:16:56 +00:00
surma abe420f0d4 Make credential requests durable and store proxy authentication 2026-11-06 21:13:40 +00:00
surma c70948efe2 api: add public credential routes and SSH signing oracle 2026-11-06 21:05:11 +00:00
surma 16a9a9eb6c Merge v3-p2-cred: credentials manager library (T19, T20, T21)
Items, rules, grants for conversation subtrees and programs, requests, edit
requests, audit, the injection pipeline, V8 scripts, signing, OAuth2 refresh,
WebAuthn registration and bound assertions, and encrypted secret entry.
50 tests pass. Security review T24 runs on this code.
2026-11-06 20:24:15 +00:00
surma 30dcd4c2ca cred: keep typed secret entry configuration valid 2026-11-06 20:16:24 +00:00
surma 091f679905 cred: port native items grants requests and injection core 2026-11-06 20:05:54 +00:00
surma cd324678fe Preserve indexed executable modes in WASI git 2026-11-06 20:04:06 +00:00
surma 457a966068 Isolate watcher queues and selectively reload resolved service binaries 2026-11-06 20:00:29 +00:00
surma 3e33a85a6c Merge branch 'v3' into v3-t15 2026-11-06 19:50:23 +00:00
surma 4f9919d8dd Share compilation and copy independent commands and source into new worlds 2026-11-06 19:50:23 +00:00
surma b39bbd4f18 Run world service policy in WASI init with pollable process observation 2026-11-06 19:49:19 +00:00
surma 1d2eb894a2 Merge v3-t23: ssh CLI and git SSH transport, signing via the host API (T23) 2026-11-06 19:48:25 +00:00
surma 11569119e6 cred: initialize V8 inside its Tokio executor and verify concurrent limits 2026-11-06 19:47:15 +00:00
surma 99a8e3a8be Add WASI SSH CLI and in-process Git SSH transport 2026-11-06 19:42:00 +00:00
surma a7e99d52f5 cred: reject non-32-byte raw ES256 scalars 2026-11-06 19:29:35 +00:00
surma 608d0c3fc1 Merge v3-t16: git matches native agent workflows (T16) 2026-11-06 19:17:17 +00:00
surma 6daa53cca4 git: match native agent workflows 2026-11-06 19:07:28 +00:00
surma 9e7e5d7b2a cred: add pure scripts, signing, and OAuth refresh; validation blocked 2026-11-06 19:05:07 +00:00
surma 1dc09bc418 cred: add passkey challenges and encrypted secret entry
Validation remains blocked by rusqlite u64 conversions in cred/grants.rs, which T19 owns.
2026-11-06 19:04:42 +00:00
surma b5462cc366 cred: script runtime contract for P2 2026-11-06 18:17:10 +00:00
surma ec6e20a9d7 host: sausage run with the userland bundle, real shell and services (T13)
- userland/bundle.nu builds the userland and assembles target/userland/bin
  (bin names, tools.txt aliases, brush as sh and bash).
- run and sh take --userland (default SAUSAGE_USERLAND); /bin is read-only.
- The console's bash tool runs through the process table with the
  conversation id; large output spills to the world's /tmp.
- sausage run starts the services supervisor.

P1 exit session (openai/gpt-6.1-sol, fresh world): write, read, edit, git
init/add/commit/diff/log, grep -rn, rg, find and a sed|sort|uniq|wc pipeline.
2026-11-06 17:34:11 +00:00
surma b9e3e3677d userland: search and exec tools, spawn library (T14)
rg (ripgrep 15.2), grep (ours, on ripgrep's regex crates), find and xargs
(ours), sed (uutils 0.3 wrapper), diff and cmp (uutils diffutils 0.6 with -r),
fd 10.5, jaq 2.3, env and timeout. userland/spawn is a small Command-like
client of the process interface. search-test.nu: 42 cases match native tools.
2026-11-06 17:21:51 +00:00
surma 665b8a2a03 host: wasip1 processes, wasi:http, identity, stdio options, services (T12)
- Core modules run on the host-side preview1 over the shared VFS (D41).
- wasi:http default handler in the linker; anonymous HTTPS git clone works.
  Sockets stay denied until P2.
- Each process carries the conversation (from Exec, inherited by children,
  shown in /proc/processes) and a host-assigned SAUSAGE_PID.
- Spawn requests choose pipe, inherit or null per stream.
- /config/services.yaml supervisor: live edits, restarts, crash limit 5/10 s,
  graceful stop (stdin EOF, then kill after 5 s) (D44).
- Compile caches keyed by content; PATH=/usr/local/bin:/bin.

world.rs also carries T13's optional read-only /bin mount (D43).
2026-11-06 17:21:51 +00:00
surma afff3ccda5 userland/git: --version and commit --no-gpg-sign (no-op) 2026-11-06 16:57:38 +00:00
surma 4df2c2e837 exec: Options carries the calling conversation 2026-11-06 16:38:00 +00:00
surma 57a47b069e host: process table, shell, coreutils and harness (T8, T9)
T8: sausage:process WIT (spawn, wait, kill), one store per process over the
shared root, /proc/processes, /run, pipeline and cancellation groups, Exec.
brush and 78 uutils commands; the shared cwd-init object sets the cwd from PWD
and keeps numeric exit codes. The corpus matches native bash.

T9: V8 (deno_core) runs pi-durable, pi-ai and chord; SQLite storage in
<dir>/host/harness.sqlite (WAL, synchronous=FULL); file tools on the VFS, bash
through Exec; resumes after SIGKILL.
2026-11-06 16:34:34 +00:00
surma 5ce2a2f2bd vfs: host-side WASI preview1 over sausage-vfs (T11)
Preview1 state lives in the host, so Go modules (esbuild) work. esbuild bundles
byte-identical to native; uutils and QuickJS-ng file tests pass. The failed
guest-side adapter attempt (T7) moves to spikes/s7-preview1-adapter/.
2026-11-06 16:34:33 +00:00
surma 4b27e9afd5 userland/git: git-compatible CLI on v2's gix code (T10)
Local workflow, smart-HTTP clone/fetch/push and public HTTPS clone/fetch match
native git in stdout and exit codes. Only WASI imports (wasi:http, exit-with-code).
2026-11-06 16:07:57 +00:00
surma 0fae0f9b10 exec: higher-ranked lifetime for output chunks 2026-11-06 16:01:07 +00:00
surma 964ef978c2 v3: world directory layout (world/ is the VFS root, host/ is host state) 2026-11-06 15:16:18 +00:00
surma 409da85124 v3: host crate skeleton, userland workspace, AGENTS.md for v3
The workspace is now host/ and vfs/. v2 crates leave the workspace as reference.
host/src/exec.rs is the contract between the process table and the harness.
2026-11-06 15:14:49 +00:00