engines: [metrics, journal, files, chunks, progression, loads]
scenarios:
- id: unknown_export_rejected
what: "a typo'd -e/--export → loud error naming the known exports, never a silent empty-state exit 0 (dogfood MED — the wired-into-only-some class: files/chunks/progression accepted an unknown name silently while metrics/journal/reset rejected it). Shared seam: src/pipeline/cli.rs::require_known_export."
metrics: { test: show_metrics_unknown_export_bails_with_known_names }
journal: { test: show_journal_unknown_export_bails_with_known_names }
files: { test: inspect_handlers_reject_an_unknown_export }
chunks: { test: inspect_handlers_reject_an_unknown_export }
progression: { test: inspect_handlers_reject_an_unknown_export }
loads: { na: "state loads has no -e/--export — it scopes by --target, whose empty-vs-filter-miss contract is the zero_row_request_not_empty_state row below." }
- id: zero_row_request_not_empty_state
what: "--last 0 asks for ZERO rows — an empty result is then a zero-row request, NOT an empty ledger, so the 'no <X> recorded yet' text is suppressed (the --json path already returns []). (dogfood LOW: the two were conflated, so a --last 0 on a POPULATED ledger read as empty state.)"
metrics: { test: is_zero_row_request_only_for_last_zero }
journal: { test: is_zero_row_request_only_for_last_zero }
files: { test: is_zero_row_request_only_for_last_zero }
chunks: { na: "state chunks takes no --last — it shows one export's LATEST chunk run, not a bounded list, so there is no zero-row request to conflate." }
progression: { na: "state progression takes no --last — it lists ALL committed/verified boundaries, not a bounded window." }
loads: { test: empty_loads_message_distinguishes_zero_request_and_filter_miss }