feat: toon opgeslagen videometadata in de detail-popup (T-198/T-199) #90

Merged
janpeter merged 3 commits from codex/videometadata-popup into main 2026-09-22 13:50:12 +02:00
Owner

De detail-popup toont bij video’s nu de eerder verzamelde videometadata: analysestatus, duur, resolutie, container, codec/profiel, framerate, bitrate en audio. Uitklapbare groepen ontsluiten alle opgeslagen technische velden, streams en hoofdstukken.

Een beveiligde GET leest één record zodra de popup opent. Foto’s en legacybestanden behouden hun bestaande details; annuleren en bestandsgebonden state verhinderen dat een laat antwoord bij een ander bestand verschijnt. Er zijn geen wijzigingen aan scannen, afspelen of de database-inrichting.

Plan en werkitems

  • Sprint S-2026-09-21-3, PBI-26, ST-053, T-198 / T-199.
  • Goedgekeurd plan: ProductDoc cmucb3p4k007hfs173iwi2vpf, bevroren revisie 2 cmucbb3cm007rfs179jppn31q.

Verificatie

  • Volledige suite: 966 geslaagd, 1 bestaande non-Linux-test overgeslagen, 0 fouten.
  • Build en typecheck geslaagd; lint nul fouten, drie bestaande waarschuwingen in ongewijzigde media-sort.ts.
  • Chrome-praktijkbewijs: echte sessie en lokale productiebuild, opgeslagen collectorfixtures, statusvarianten, hoofdstukken/audio/HDR, foto, toetsenbord en 390px-weergave. Dummy-media; geen productie- of scanbewijs.
  • Onafhankelijke GPT-6 Astra-review: GO, geen noodzakelijke bevindingen, zelfstandig 19/19 tests herhaald. De laatste commit voegt uitsluitend bewijsdocumentatie toe.

De interactieve taken hebben geen job-plan_snapshot; de automatische planvergelijking kan daardoor geen alignment vaststellen. Het goedgekeurde plan is handmatig en onafhankelijk gecontroleerd. Merge en deployment volgen apart.

De detail-popup toont bij video’s nu de eerder verzamelde videometadata: analysestatus, duur, resolutie, container, codec/profiel, framerate, bitrate en audio. Uitklapbare groepen ontsluiten alle opgeslagen technische velden, streams en hoofdstukken. Een beveiligde GET leest één record zodra de popup opent. Foto’s en legacybestanden behouden hun bestaande details; annuleren en bestandsgebonden state verhinderen dat een laat antwoord bij een ander bestand verschijnt. Er zijn geen wijzigingen aan scannen, afspelen of de database-inrichting. ## Plan en werkitems - Sprint **S-2026-09-21-3**, **PBI-26**, **ST-053**, **T-198 / T-199**. - [Goedgekeurd plan](https://git.jp-visser.nl/janpeter/Media-Organizer/src/commit/b18b23204bf00c464bf9339023874dde5ee2e073/docs/superpowers/plans/2026-09-22-videometadata-detail-popup.md): ProductDoc `cmucb3p4k007hfs173iwi2vpf`, bevroren revisie 2 `cmucbb3cm007rfs179jppn31q`. ## Verificatie - Volledige suite: **966 geslaagd, 1 bestaande non-Linux-test overgeslagen, 0 fouten**. - Build en typecheck geslaagd; lint nul fouten, drie bestaande waarschuwingen in ongewijzigde `media-sort.ts`. - [Chrome-praktijkbewijs](https://git.jp-visser.nl/janpeter/Media-Organizer/src/commit/4f309c5100c1dc05e223e0eed372f86b28a0b653/docs/qa/2026-09-22-videometadata-popup.md): echte sessie en lokale productiebuild, opgeslagen collectorfixtures, statusvarianten, hoofdstukken/audio/HDR, foto, toetsenbord en 390px-weergave. Dummy-media; geen productie- of scanbewijs. - [Onafhankelijke GPT-6 Astra-review](https://git.jp-visser.nl/janpeter/Media-Organizer/src/commit/4f309c5100c1dc05e223e0eed372f86b28a0b653/docs/reviews/2026-09-22-videometadata-popup.md): **GO**, geen noodzakelijke bevindingen, zelfstandig 19/19 tests herhaald. De laatste commit voegt uitsluitend bewijsdocumentatie toe. De interactieve taken hebben geen job-plan_snapshot; de automatische planvergelijking kan daardoor geen alignment vaststellen. Het goedgekeurde plan is handmatig en onafhankelijk gecontroleerd. Merge en deployment volgen apart.
docs: record popup verification and independent review
All checks were successful
CI / test (historical-bootstrap) (pull_request) Successful in 1m5s
CI / test (video-migration) (pull_request) Successful in 1m3s
CI / test (suite) (pull_request) Successful in 2m53s
CI / docker-build (pull_request) Successful in 2m47s
4f309c5100
s4m-codex-reviewer left a comment

APPROVED

Findings

  • Geen blokkerende of error-severity findings gevonden.

Plan-conformiteit

De PR is getoetst tegen het gekoppelde plan Videometadata tonen in de detail-popup en de relevante productdocs voor videometadata en MD3-styling. De diff implementeert de geplande beveiligde GET /api/media/:fileId/metadata, beperkte database-read, non-cache response, lazy popup-load, abort/late-response bescherming, null-/precisiebehoud en bewijsvoering met tests en QA-docs. De implementatie blijft binnen de afgesproken grenzen: geen scan/probe/playback-start vanuit de popup, geen lijstquery-uitbreiding met technische JSON, geen nieuwe dependency en geen migratie.

# APPROVED ## Findings - Geen blokkerende of error-severity findings gevonden. ## Plan-conformiteit De PR is getoetst tegen het gekoppelde plan `Videometadata tonen in de detail-popup` en de relevante productdocs voor videometadata en MD3-styling. De diff implementeert de geplande beveiligde `GET /api/media/:fileId/metadata`, beperkte database-read, non-cache response, lazy popup-load, abort/late-response bescherming, null-/precisiebehoud en bewijsvoering met tests en QA-docs. De implementatie blijft binnen de afgesproken grenzen: geen scan/probe/playback-start vanuit de popup, geen lijstquery-uitbreiding met technische JSON, geen nieuwe dependency en geen migratie.
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
janpeter/Media-Organizer!90
No description provided.