observe/grab: progressive screencast frame extraction CLI
Adds `sol grab` for walking day → stream → segment → screen → frame_id and
optionally writing a frame image (single or batch). Linear-walk decode only
via observe.see.decode_frames (no av.seek, no ffmpeg -ss) — the 1 Hz capture
pipeline produced corruption with random-access decode. Saved frames are raw
pixels: no annotation, no redaction. Format inferred from --out suffix
(.png/.jpg/.jpeg/.webp). Batch mode decodes all frames first, then writes —
zero files on decode failure. observe.utils.load_analysis_frames gains an
opt-in keep_errors=True so level 4 can surface error-marked frames; default
behavior is unchanged for every existing caller.
This is a binary file and will not be displayed.
This is a binary file and will not be displayed.
This is a binary file and will not be displayed.
This is a binary file and will not be displayed.
This is a binary file and will not be displayed.