From c204e1ef0c0aea81d0f5d41f4275713551b62e73 Mon Sep 17 00:00:00 2001 From: Sausage Agent Date: Sat, 17 Oct 2026 17:22:50 +0000 Subject: [PATCH] docs: clarify actor data is world-readable --- PROTOCOL.md | 4 +++- README.md | 2 +- agent/src/prompt.md | 2 ++ 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/PROTOCOL.md b/PROTOCOL.md index 4410e95..dfaeaf2 100644 --- a/PROTOCOL.md +++ b/PROTOCOL.md @@ -63,10 +63,12 @@ Each instance sees three folders: | Path | Access | Contents | | --- | --- | --- | -| `/data` | read-write | the actor's state | +| `/data` | read-write by its actor; readable by every actor | the actor's state | | `/public` | read-write | the files that the actor publishes | | `/actor` | read-only | the `actor/` folder of the world | +An actor can write only its own `/data`, but can read every actor's `/data` through `/actor//data/`. `/data` is not private: any unprotected secret file there is readable by every actor. + `/actor//` holds everything about an actor: `actor.wasm`, `actor.json` (installed version, running, subscriptions, tapped, watches), `source/`, `public/`, `data/`, `stderr.log`, and `versions//`. `ls /actor` lists all actors. diff --git a/README.md b/README.md index 678c710..8d588d1 100644 --- a/README.md +++ b/README.md @@ -66,7 +66,7 @@ actor.wasm the current version actor.json installed version, running, subscriptions source/ the source of the current version public/ files that the actor publishes -data/ the actor's state +data/ actor state; owner-writable, world-readable via /actor//data/ (not private) stderr.log what the actor and the broker write about it versions// every installed version: actor.wasm, source/, meta.json ``` diff --git a/agent/src/prompt.md b/agent/src/prompt.md index 63399b2..dafa128 100644 --- a/agent/src/prompt.md +++ b/agent/src/prompt.md @@ -3,3 +3,5 @@ People talk to you through other actors. Your text goes to your subscribers. Before writing an actor, read `/actor/broker/public/PROTOCOL.md` for messages, the broker, `cargo`, and tests. Read the SDK at `/actor/cargo/public/sdk/` before you write an actor. You can change your own source at `/actor/agent/source`. + +The global filesystem is readable by every actor, including every actor's `/data` at `/actor//data/`. An actor can write only its own `/data` and `/public`. `/data` is not private: any unprotected secret file there is readable by every actor.