Invocation#
transcript-lake [--data-dir <path>] label remove <session-id> --aspect <name> [--note <text>] [--runtime <r>] [--source <name[:detail]>] [--json]Purpose#
The counterpart of label add. The label store is append-only, so a withdrawal is one more record — the same shape as an assignment, with no value. It becomes the latest row for its session and aspect, and label list and label aspects, which keep only the latest row with a value, then show no assignment in force. Nothing is deleted: the labels view and query still read every assignment and every withdrawal.
Inputs and options#
- Required
<session-id>and non-empty--aspect <name>. - Optional
--note <text>saying why,--runtime <r>to disambiguate a session id held under several runtimes, and--json. --sourcedefaults tomanualand acceptsmanual,human,model, orbrama, optionally followed by:detail, so a withdrawal carries provenance as an assignment does.
Output and state effect#
Mutating. Resolves exactly one existing session/runtime, checks that a label for the aspect is in force, appends one complete record with value: null to labels/labels.ndjson, and fsyncs before success. It does not take the event-writer lease. Human output prints removed the <aspect> label of <session-id> (<runtime>); JSON emits the record. Running it again for the same session and aspect is refused, so a withdrawal is never repeated.
Exact refusals#
- Missing aspect:
--aspect must be a non-empty string. - No assignment to withdraw:
session "<session-id>" has no <aspect> label in force; nothing to remove. - Unknown session:
unknown session "<session-id>": not present in the selected Lake (check the id or start the stream first). - Ambiguous runtime:
session id "<session-id>" is ambiguous across runtimes (<runtimes>); repeat with --runtime; a runtime the session is not held under:session "<session-id>" exists under <runtimes>, not <runtime>. - Invalid provenance:
--source must match ^(manual|human|model|brama)(:[A-Za-z0-9._/-]+)?$ (manual, human, model, or brama, with an optional :detail suffix).
All long flags are exact and single-use. A value flag never consumes another --flag. Global --data-dir may appear anywhere in the invocation, must appear once, and selects an absolute root.