docs(chord): slice 8: only Chord watchables are followed as contributions

This commit is contained in:
Mario Zechner 2026-10-28 21:07:42 +00:00
parent 790a98b9ab
commit edab3efa83

View file

@ -58,8 +58,9 @@ await host.root(async (ctx) => (await ctx.get(Notes, { session })).add(note, ctx
when the table is built, an older one without an adapter or a newer one is left out and reported (`HostError`
`contribution_refused { registry, plugin, version }`).
- **Contributions:** a plain value, or a Chord watchable (a `writable`, a derive, a document member; another
registry's value too, a cycle of registries reading each other refused when the second one serves or contributes), followed as a dependent of the table (its change recomposes); a foreign watchable (a Durable watch)
is refused at `contribute` (declaration policy). The table's entry is `{ plugin, type?, version, value }` (`type` for
registry's value too, a cycle of registries reading each other refused when the second one serves or contributes), followed as a dependent of the table (its change recomposes), recognised by Chord's own mark; anything
else is a plain value, whatever methods it has (a harness, a conversation handle or a runtime is contributed as a plain
value, not followed; build review 2026-10-27, replacing "a foreign watchable is refused"). The table's entry is `{ plugin, type?, version, value }` (`type` for
an object contributor; served types carry their plugin's name).
- **`compose(table, { report })`:** pure, lazy as a derive: the registry's value is marked when its table changes (a
contributor goes live or ends, a watchable contribution changes) and composed when read or, while watched, in the