Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Emitting to quipu

Caboodle is itself a quipu emitter, twice over:

The box emits. Every applied and functionally verified tool transition is written as a redacted episode under .caboodle/episodes/. The filename is the SHA-256 identity of the event content, so rerunning the same transition creates no duplicate. A failed delivery leaves the exact bytes pending; a later replay can safely receive Quipu’s unchanged outcome and then move the file to sent/.

Beads emits. Bead lifecycle — created, closed, commented — flows to quipu as episodes through the same discipline. caboodle queue-br export.jsonl projects each issue row into created, comment, and (when closed) closure events; re-reading a snapshot is idempotent. Because br is upstream, this integration lives in CABOODLE and requires no fork patch.

Flush only after reviewing the queue. The endpoint must be HTTPS (or explicit localhost HTTP), and the bearer comes only from QUIPU_AUTH_TOKEN; it is never written into the plan, queue, or command line. CABOODLE first runs a SPARQL control whose marker must return, then posts files byte-for-byte:

caboodle queue-br br-export.jsonl
QUIPU_AUTH_TOKEN=... caboodle flush-episodes --endpoint https://graph.example

Created, updated, and unchanged are successful delivery outcomes. A transport error, malformed response, or missing outcome preserves the identical pending file instead of guessing whether the write committed.