saphan capture
Sign and index one capture — the shared capture→sign→store→ACK primitive (STOP1_PLAN)
saphan capture
Sign and index one capture — the shared capture→sign→store→ACK primitive (STOP1_PLAN)
Capture, sign (sign.KindFile — the workspace key, the same key gate writes use), and index one spark or transcript. This phase indexes only: the row is signed and queryable through capture show/list the instant this returns, but ack/ack_ts stay false/"" until the CouchDB blob write lands (a later, HARD-BLOCKED phase) — a named gap, not a silent one.
--file names the exact bytes to capture, verbatim — no trimming, no normalization; "-" reads stdin. Re-capturing bytes already in this workspace's record is a no-op: it returns the EXISTING row, not a new one (content-addressed idempotency, STOP1_PLAN §3).
Subcommands
| Subcommand | What it does |
|---|---|
saphan capture list | List capture_index rows, id order (capture_list, contract v3) |
saphan capture show | Show one capture_index row by id (capture_show, contract v3) |
Options
| Option | Type | Default | Description |
|---|---|---|---|
--actor | string | unset | the capturing actor/session (falls back to env SAPHAN_ACTOR, then ~/.saphan/config's identity.actor) |
--file | string | unset | path to the exact bytes to capture ("-" reads stdin; required) |
--kind | string | unset | spark | transcript (required, no default) |
--ref | string | unset | optional free-form provenance note (never a secret VALUE, §1.6) |
--stream | string | unset | optional kin anchor: the stream/gate/tray that triggered this capture |
saphan capture list
List capture_index rows, id order (capture_list, contract v3)
Options
| Option | Type | Default | Description |
|---|---|---|---|
--limit | int | 0 | cap the row count (0 = no limit) |
--stream | string | unset | narrow to captures triggered by this stream |
saphan capture show
Show one capture_index row by id (capture_show, contract v3)