crabidy/plan/incremental-captures.md

1.7 KiB

Plan: incremental-captures

Ordered tasks; each names its verification (tests and/or gates in quality/incremental-captures.md).

  • T1 — Skipped playable in fsdy + proto. PlayableSpec.skipped, Playable::Skipped, cardinality validation, from_track_skipped, from_track preserves skipped-ness, to_track sets is_skipped; Track.is_skipped = 6 in the proto; fix all struct literals. Verifies: fsdy parse/round-trip tests; gates "Skipped playable".
  • T2 — Two-phase walk + incremental download sink. Enumerate (caps) then fetch; Sink::Download writes into the final folder, reuses satisfied entries, writes skipped tomls for uncapturable tracks, keeps progress on abort; Sink::Link keeps tmp-and-swap. Progress callback plumbed through. Verifies: capture/capture_store tests (resume, reuse, skipped toml, abort-keeps-progress, caps); gates "Incremental capture".
  • T3 — Proto CaptureProgress + accept-then-stream RPC. New oneof update; provider validates then replies and spawns the walk with a bounded progress channel; rpc forwards progress into the update broadcast. Verifies: gates "Progress + RPC".
  • T4 — Playback skip. Flag-based skip without provider call; skip loop bounded by queue length. Verifies: playback tests; gate "Playback".
  • T5 — TUI. Red skipped tracks (queue + library), capture progress lines with expiry, warnings in help + input label, focused selection contrast fix. Verifies: cbd-tui render/dispatch tests; gates "TUI".
  • T6 — Full verification. Workspace suite green; clippy/fmt/ taplo/markdownlint clean; quality gates ticked.
  • T7 — Docs. plan/summary.md section incl. deviations; reconcile architecture/incremental-captures.md.