Merge branch 'v3' into v3-t98
This commit is contained in:
+7
-12
@@ -1,4 +1,4 @@
|
||||
# Run Sausage v3 on Citadel
|
||||
# Run Sausage
|
||||
|
||||
Use the web UI for conversations, passkeys, approvals, and secret entry. The host serves only JSON through `/api/`.
|
||||
|
||||
@@ -8,7 +8,7 @@ Keep the complete world folder between starts.
|
||||
|
||||
## Build and start
|
||||
|
||||
Run host commands from a checkout of the `v3` branch on Citadel.
|
||||
Run host commands from a checkout of the repository.
|
||||
Use Nix with flakes. The package supplies the native Rust builder and its tools.
|
||||
Use `sausage run --no-builder-sandbox WORLD` only when the host must run the builder without namespace isolation.
|
||||
|
||||
@@ -56,9 +56,6 @@ Cargo puts the host under `target/release/sausage`, unless `CARGO_TARGET_DIR` se
|
||||
Use that binary with `init WORLD --userland BUNDLE`, then `run WORLD`.
|
||||
Use the repository's build slots and shared executor target directory for agent validation builds.
|
||||
|
||||
Choose `$HOME/sausage-v3`, not the live v2 `~/world`.
|
||||
For the actual cutover, let v2 finish its work before you stop it.
|
||||
Do not run two production services. This guide does not stop or replace the deployed service.
|
||||
The host creates this layout:
|
||||
|
||||
| Host path | Purpose |
|
||||
@@ -85,7 +82,7 @@ The pending-requests banner opens the approval view in the page. The host verifi
|
||||
Agents edit `/srv/www/index.html`. Each request reads the file fresh without a build or restart.
|
||||
|
||||
The terminal console remains optional. Each nonempty console line submits a message to the main agent conversation.
|
||||
Assistant text appears on stdout. This is not a shell or the v2 command dispatcher.
|
||||
Assistant text appears on stdout. This is not a shell.
|
||||
Text such as `quit`, `help`, and `core.restart` has no special host meaning.
|
||||
Ask the agent to execute world commands when you need tools.
|
||||
|
||||
@@ -105,10 +102,10 @@ and [`harness/mod.rs`](../host/src/harness/mod.rs).
|
||||
## Reach the chat and approval pages
|
||||
|
||||
The world web server listens on port 8080. The host opens no separate port.
|
||||
From the laptop, create one SSH tunnel:
|
||||
If Sausage runs on another machine, forward the port with one SSH tunnel from your computer:
|
||||
|
||||
```sh
|
||||
ssh -N -L 8080:127.0.0.1:8080 citadel.vpn.surma.technology
|
||||
ssh -N -L 8080:127.0.0.1:8080 YOUR-SERVER
|
||||
```
|
||||
|
||||
Open **http://localhost:8080**. The first-passkey notice opens the Passkeys view.
|
||||
@@ -229,9 +226,8 @@ These are world programs, not console commands. Ask the agent to run them.
|
||||
| Tool | Use and limits |
|
||||
| --- | --- |
|
||||
| `cargo` | Build, run, and test Rust programs. The host copies the workspace through the VFS, fetches dependencies, then builds offline in namespaces. It publishes WASI artifacts into the world. Other targets are unsupported. |
|
||||
| `box` | Build non-Rust projects or run browser tests in disposable containers. The default service is `citadel.vpn.surma.technology:8093`. It requires network access and service availability. Remove boxes after use. |
|
||||
| `undo` | Inspect tags and restore filesystem changes. Later edits can conflict. Network effects and native builds are not reversible. Retention is seven days or 4 GiB of unique content. |
|
||||
| `systemctl` | Control world init services, not Citadel's systemd. Persistent units live under `/etc/systemd/system`. Init observes edits without daemon reload. |
|
||||
| `systemctl` | Control world init services, not the host machine's systemd. Persistent units live under `/etc/systemd/system`. Init observes edits without daemon reload. |
|
||||
| `journalctl` | Read world service logs under `/var/log/journal`. Each unit retains a 1 MiB log and one rotated file. |
|
||||
| `git` | Manage world repositories. HTTPS credential rules can inject authorization through the host HTTP hook. SSH remotes use host signing. |
|
||||
| `ssh` | Execute a remote command without a PTY. Public identities and signatures come from the host. Private keys never enter the world. Host keys live in the world's known_hosts file. |
|
||||
@@ -242,7 +238,7 @@ A missing credential grant causes a pending host request, not an automatic appro
|
||||
A changed SSH host key fails even with the accept-new policy.
|
||||
|
||||
Command reference and implementation evidence:
|
||||
[`builder`](../host/src/builder/README.md), [`box`](../userland/box/README.md),
|
||||
[`builder`](../host/src/builder/README.md),
|
||||
[`undo`](../userland/undo/README.md), [`init`](../userland/init/README.md),
|
||||
[`git`](../userland/git/README.md), and [`ssh`](../userland/ssh/README.md).
|
||||
|
||||
@@ -282,6 +278,5 @@ Source: [`host API contract`](../host/src/api/README.md),
|
||||
- The bootstrap chat is deliberately plain. There is no item editor or credential dashboard.
|
||||
- The console has no shell commands, transcript navigation, or special quit command.
|
||||
- `sausage sh` requires `-c`. Its interactive shell is not implemented.
|
||||
- This guide does not migrate a v2 world. Keep the live v2 folder untouched.
|
||||
|
||||
A successful local start does not verify external services or the production passkey origin.
|
||||
|
||||
Reference in New Issue
Block a user