Skip to content

FIX-11: refuse video honestly at capture#35

Open
ChelseaKR wants to merge 1 commit into
mainfrom
roadmap/fix-11-resolve-the-half-supported-video-
Open

FIX-11: refuse video honestly at capture#35
ChelseaKR wants to merge 1 commit into
mainfrom
roadmap/fix-11-resolve-the-half-supported-video-

Conversation

@ChelseaKR

Copy link
Copy Markdown
Owner

habitable advertised capturing "short video," but video never reached a
packet: capture._MEDIA_TYPES accepted .mp4/.mov and sealed the bytes, yet
packet._EXT_BY_TYPE has no video entry and exif.make_shared_copy cannot
strip video metadata (out of scope). The result was a capture that silently
could not be shared or verified -- contradicting the honesty ethos.

Implements the doc's short-term honest-refusal path (full pipeline stays
EXP-07):

  • capture.py: drop .mp4/.mov from _MEDIA_TYPES; add an explicit guard that
    refuses any video suffix or explicit video/* media_type with a plain,
    actionable CaptureError before anything is hashed or sealed.
  • packet.py: note near _EXT_BY_TYPE that video is refused at capture
    (FIX-11/EXP-07); no video entry needed.
  • README.md, docs/evidence-method.md: drop/qualify the "short video" claim
    and state that video is not yet supported and why.
  • tests/test_vault_capture.py: cover refusal by .mp4/.mov suffix and by
    explicit media_type="video/mp4", asserting nothing is sealed or queued.
  • docs/ideation/02-large-scale-fixes.md: mark FIX-11 done.

CaptureError already surfaces cleanly (CLI stderr, exit 1; appserver 400)
via the existing HabitableError handlers -- verified end-to-end.

Co-Authored-By: Claude Fable 5 noreply@anthropic.com


Backfill PR for a completed roadmap item (roadmap/fix-11-resolve-the-half-supported-video-, 1 commit(s) over main). Part of the portfolio roadmap batch.

habitable advertised capturing "short video," but video never reached a
packet: capture._MEDIA_TYPES accepted .mp4/.mov and sealed the bytes, yet
packet._EXT_BY_TYPE has no video entry and exif.make_shared_copy cannot
strip video metadata (out of scope). The result was a capture that silently
could not be shared or verified -- contradicting the honesty ethos.

Implements the doc's short-term honest-refusal path (full pipeline stays
EXP-07):

- capture.py: drop .mp4/.mov from _MEDIA_TYPES; add an explicit guard that
  refuses any video suffix or explicit video/* media_type with a plain,
  actionable CaptureError before anything is hashed or sealed.
- packet.py: note near _EXT_BY_TYPE that video is refused at capture
  (FIX-11/EXP-07); no video entry needed.
- README.md, docs/evidence-method.md: drop/qualify the "short video" claim
  and state that video is not yet supported and why.
- tests/test_vault_capture.py: cover refusal by .mp4/.mov suffix and by
  explicit media_type="video/mp4", asserting nothing is sealed or queued.
- docs/ideation/02-large-scale-fixes.md: mark FIX-11 done.

CaptureError already surfaces cleanly (CLI stderr, exit 1; appserver 400)
via the existing HabitableError handlers -- verified end-to-end.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants