Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ platform concept.
`docs/bridge.md` (bridge), `docs/chat-records.md` (chat records),
`docs/durable-computers.md` (durability, including outstanding work),
`docs/secrets.md` (secret custody), `docs/ledger.md` (usage),
`docs/billing.md` (orgs and Stripe), `docs/hermes-relay.md` (runtime).
`docs/billing.md` (orgs and Stripe).
- `docs/published-fragments.md`: primitives that must stay expressible.
- `docs/technical-debt-ledger.md`: the only place shortcuts may live;
include the condition for removing each one.
Expand Down
1,506 changes: 397 additions & 1,109 deletions docs/bridge.md

Large diffs are not rendered by default.

1,188 changes: 318 additions & 870 deletions docs/chat-records.md

Large diffs are not rendered by default.

230 changes: 0 additions & 230 deletions docs/hermes-relay.md

This file was deleted.

8 changes: 4 additions & 4 deletions images/bridge/src/engine.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1353,10 +1353,10 @@ impl Engine {
/// The lane is done with one of a turn's owed records; a turn that owes
/// none is let go. Done means answered (appended, a replay, or refused:
/// a 409 is another life's end of the turn, a 403/404 a chat it may no
/// longer post in) or given up after the lane's tries (docs/bridge.md:
/// `POST_TRIES_MAX`, with jitter, on a transport error, 429 or 5xx), so
/// a record that keeps failing holds its turn for one life's tries at
/// most, then goes.
/// longer post in) or given up after the lane's tries
/// (`limits::POST_TRIES_MAX`, with jitter, on a transport error, 429 or
/// 5xx), so a record that keeps failing holds its turn for one life's
/// tries at most, then goes.
fn posted(&mut self, id: &str, post: &str, kept: bool) {
let Some(t) = self.state.turns.get_mut(id) else {
crate::ev!("owed.stale", { "turn": id, "id": post, "why": "no turn held by that id" });
Expand Down
2 changes: 1 addition & 1 deletion images/bridge/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
//! fragment-bridge version
//! ```
//!
//! Its settings are environment variables (docs/bridge.md lists them);
//! Its settings are environment variables (docs/bridge.md, "Settings");
//! secrets are files named by path, never values.

use std::net::SocketAddr;
Expand Down
4 changes: 2 additions & 2 deletions images/bridge/src/runtime/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
//! core speaks only these commands and events; each runtime translates them
//! into its own protocol. Two ship here:
//!
//! - `relay`: Hermes' Relay (docs/hermes-relay.md). Hermes dials the
//! bridge, which is its connector.
//! - `relay`: Hermes' Relay (docs/bridge.md, "Hermes' Relay"). Hermes
//! dials the bridge, which is its connector.
//! - `script`: a deterministic scripted agent (the stub image), so the
//! platform's lanes run without any agent runtime at all.
//!
Expand Down
2 changes: 1 addition & 1 deletion images/bridge/src/runtime/relay/fetch.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
//! hands back `https://….fal.media/…`, and Hermes sends a reply's image
//! links so). Its connector contract takes a `source_url` that is a local
//! upload or "an already-public URL (passed through)": the bridge fetches
//! it, so it is the chat's blob as an uploaded file is (docs/bridge.md).
//! it, so it is the chat's blob as an uploaded file is.
//!
//! Only what a page may show, from where the public may serve it: `https`;
//! a host whose every address is public (never this computer's own, its
Expand Down
9 changes: 5 additions & 4 deletions images/bridge/src/runtime/relay/wire.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
//! Hermes' Relay wire, as Hermes v0.21.5 (tag `v2026.9.24`, contract
//! version 1) speaks it, read from its `gateway/relay/` (docs/hermes-relay.md;
//! its code wins over its contract document). Pure: frames in, frames out.
//! version 1) speaks it, read from its `gateway/relay/` (docs/bridge.md,
//! "Hermes' Relay"; its code wins over its contract document). Pure:
//! frames in, frames out.
//!
//! Frames are JSON objects, one per line, each ending with `\n`, each under
//! `limits::FRAME_MAX_BYTES`. Hermes dials; the bridge is its connector.
Expand Down Expand Up @@ -804,8 +805,8 @@ mod tests {
assert_eq!(image_links(&many).len(), crate::limits::ATTACHMENTS_MAX);
}

/// The gateway's own test vector (docs/hermes-relay.md): its token is
/// ours, and ours is checked as the gateway mints it.
/// The gateway's own test vector (docs/bridge.md, "Hermes' Relay"): its
/// token is ours, and ours is checked as the gateway mints it.
#[test]
fn a_token_is_the_gateways() {
let t = token("gw-test", "s3cr3t", 1_790_000_000);
Expand Down
Loading
Loading