Merge branch 'v3' into v3-t85

This commit is contained in:
2026-11-11 22:51:01 +00:00
142 changed files with 110842 additions and 8097 deletions
+10 -4
View File
@@ -8,18 +8,24 @@ Read [Run Sausage v3 on Citadel](docs/RUNNING.md) for the console, approvals, mo
```sh
nix build
result/bin/sausage init /path/to/world
result/bin/sausage run /path/to/world
result/bin/sausage sh /path/to/world -c 'echo hi | tr a-z A-Z; git --version'
```
The package includes the userland bundle.
At world creation, the host copies its tools into `/bin` as `<command>.wasm` files.
It also copies a committed source snapshot into `/src/sausage`.
The console uses `PI_PROXY_BASE_URL` and `PI_PROXY_API_KEY` from the host environment.
Secrets do not enter the world.
The bundle ships plain source files. `sausage init` creates their repository in `/src/sausage` with one commit on `main`.
The world config lives at `/etc/sausage/config.yaml`.
It defines the proxy, listener, standing agent, roster, and shared system prompt.
`init` fills proxy settings from `PI_PROXY_BASE_URL` and `PI_PROXY_API_KEY` when present. It asks nothing.
The host and chat can start with an empty proxy key. Model requests then name the config file in their error.
The proxy key in that file is intentionally visible to agents. Other managed secrets stay outside the world.
The chat and console use the configured standing conversation. A rename keeps that conversation.
Model, prompt, and proxy edits apply without a host restart. Listener edits require a restart.
The host creates `world/` for the shared filesystem and `host/` for private runtime state under the supplied directory.
Services come from `/config/services.yaml` in the world.
Services come from `/etc/systemd/system` in the world.
## Repository