docs(graph): Ctrl-C aborts a graph run from anywhere; map as/output_key must differ; max_concurrency template is exactly one {{key}}
Adds an 'Abort and cancellation' subsection under the settings block
(per-node cancellation semantics, nesting, headless exit status, raw-mode
prompt caveat, subagents-cancelled / jobs-remain note) and rewrites the
Ctrl-C mentions under max_loop_iterations, timeout, the llm Turn cap part
(d), the self-loop rationale, and the map retry notes. The map field
reference now states that as and output_key must differ and that a string
max_concurrency must be exactly one {{key}} (whitespace around it allowed).
docs(graph): timeout: 0 disables the wall-clock bound
Documents the new zero-means-unbounded rule on all five timeout fields
(settings.timeout, agent, script, llm, rag), the validator warning that
flags an explicit 0, how bounds compose outward-in across nested graph
agents, and what interrupts an unbounded step.
docs: agent nodes can seed a child graph agent's state with inputs
Document the inputs map on agent nodes: overlay order over the child's
initial_state, the lone-reference typing rule and the null footgun, the
two load-time/runtime rejections, cross-branch read coverage, and the
fan-out narrowing example.
Rewrite the map section for subgraph branches: field reference with the
templated max_concurrency, branch subgraph rules in user terms (incl. the
now-honored fallback and the load error for fallback: end_*), the output
contract (key removed from the fork, read-before-write outcomes, the null
residual with the default key), a worked spawn -> verify -> retry-or-accept
example, and what stays unsupported. Fix the routing table, dynamic fan-out
and troubleshooting sentences that said a branch cannot have next, and add
the chain-lifetime and accepted-then-unread notes to teammate messaging.
docs: correct the implicit output-key section — the completion binding is transient
The completion is bound to `output` only while state_updates templates
render, then restored; an explicit `output` key in state_updates is now
honored; contention on `output` at a parallel join occurs only when the
key was absent before the super-step (every llm/agent/rag branch with
state_updates then leaves `output: null`). Recommends the named-key
pattern for map branches and fixes the reducer example and the
Branch-isolation bullet to match.
docs: Document the driver prompt at agent RAG init and the duckdb two-file pairing
Agent startup and graph rag nodes now offer the storage driver choice, so the
RAG page no longer claims it is only asked while creating a RAG with .rag.
Also documents that a duckdb RAG is two files that must travel together, what
Coyote does when only the .yaml arrives, and that a local Qdrant is reached
without going through an ambient proxy.
docs: Document RAG storage drivers, Qdrant attach, and sandbox wiring
Covers the pluggable RAG driver work: the yaml/duckdb/qdrant drivers and how
to choose between them, attaching a read-only remote Qdrant collection with
.rag attach, the driver field on graph rag nodes, and how an attached RAG's
host and API key reach a sandbox.
Also corrects two statements the driver work invalidated: embeddings are no
longer necessarily in-memory, and .rebuild rag now re-embeds the whole corpus
rather than just accommodating document changes.