docs: stop implying matrix/bash/forge is a closed todo-producer list

This commit is contained in:
damocles 2026-08-04 00:06:19 +02:00
commit 642377c5e0
10 changed files with 57 additions and 31 deletions

View file

@ -278,13 +278,18 @@ pub enum LooseEnd {
#[serde(default)]
summary: String,
},
/// A dynamic, subsystem-pushed todo (loose-ends v2). Produced
/// by an in-container subsystem (matrix / forge / bash) via
/// `UpsertTodo`. Cleared by that subsystem (`ClearTodo`) or by the
/// agent itself (`MarkTodoDone`, by `id`).
/// A dynamic, subsystem-pushed todo (loose-ends v2). Produced by an
/// in-container subsystem via `UpsertTodo` — matrix/bash/forge are the
/// *built-in* producers that ship today, but `subsystem` is a plain
/// string, not a closed set: any user-configured MCP server declared
/// in an agent's `agent.nix` can dial the in-agent socket and push its
/// own todos the same way. Cleared by that subsystem (`ClearTodo`) or
/// by the agent itself (`MarkTodoDone`, by `id`).
Todo {
id: i64,
/// Producing subsystem marker (`"matrix"`, `"forge"`, `"bash"`, …).
/// Producing subsystem marker (`"matrix"`, `"forge"`, `"bash"`, …
/// — built-in producers; a user-configured MCP server can push
/// its own arbitrary marker here too, nothing enforces the set).
subsystem: String,
/// Optional subsystem-specific key (matrix room id, bash task id).
#[serde(default, skip_serializing_if = "Option::is_none")]