@@ -17829,51 +17829,48 @@ still require focused owners.
1782917829
1783017830## 2026-09-07 focused Keynote media-properties source ownership
1783117831
17832- This is a bounded source-ownership record. `litchi-keynote` now has the
17833- semantic `MediaProperties` value with four optional fields: hyperlink and
17834- accessibility-description strings, plus lock and aspect-ratio-lock booleans.
17835- The source-order typed `Package::{slide_media_properties,
17836- edit_slide_media_properties,apply_slide_media_properties}` API keeps native
17837- identifiers and wire values private. Its strict private 577-byte Buffa
17838- projection (`keynote_media_properties_codec`, SHA-256
17839- `3945a92dcc3f25333d6375eb68aaaf762ea00141cfd9055f71bf65cfb4f12b02`) keeps
17840- omitted values distinct from explicit empty strings and `false` values. Zero
17841- and absent geometry remain canonical optional geometry; positive geometry
17842- retains the existing ownership requirements.
17843-
17844- Exact no-op, inverse, replay, locality, and budget checks are in progress.
17845- The native CUA attempt still fails with ScreenCaptureKit error `-3802`
17846- (`Stream failed to start`), so there is no native media-properties fixture,
17847- save/actual-close/exact-reopen receipt, or retirement receipt. All four raw
17848- host APIs and their private helper remain retained with source-built parity
17849- oracles. Boundary retirement requires the
17850- `MEDIA_PROPERTIES_NATIVE_VERIFIED` marker, which is absent.
17851-
17852- ### Current media-properties verification update (2026-09-07)
17853-
17854- The neutral media-properties codec passes 10 cases with Clippy `-D warnings`;
17855- the common checks pass 166 cases, the Keynote library passes 273 cases, and
17856- the new media-properties integration slice passes 17 cases, including
17857- unselected Audio B opaque-message preservation. Existing audio
17858- position and movie-geometry integration passes 13 and 27 cases respectively.
17859- The host-properties slice passes 10 cases, including all three raw-focused
17860- parity cases and the absent-file-poster case. Focused checks verify exact
17861- no-op, inverse, replay, double-inverse, locality, malformed-header,
17862- reference-limit, and budget behavior. Shared-metadata work is precharged
17863- before mutation, and sibling validation is selected-only. Graph validation
17864- covers styles, comments, captions, ownership, media content, and optional
17865- posters through the existing replacement owner and residual-cap checks.
17866-
17867- Python verification remains at 978 cases, and the full boundary scan passes
17868- 64 packages, 238 internal edges, and 11 explicit debts. An optimized ASAN
17869- run completes 256 cases in 225 seconds without errors. The unoptimized
17870- startup 30-second timeout was diagnosed and is not counted as a pass; the
17871- root warm 64-case run remains pending after the final metadata-accounting
17872- changes.
17873-
17874- The native ScreenCaptureKit `-3802` stream failure remains, so no native
17875- media-properties fixture or native acceptance exists. The four raw host APIs
17876- and private helper remain retained, and the
17877- `MEDIA_PROPERTIES_NATIVE_VERIFIED` boundary marker is absent. Full hooks,
17878- cleanup, the final warm ASAN run, and the native gate remain pending for the
17879- root receipt.
17832+ Implementation commit `1f07df9db` adds focused `litchi-keynote` media-property
17833+ transactions. Detached `MediaProperties` retains optional hyperlink and
17834+ accessibility-description strings, lock state, and aspect-ratio lock state.
17835+ `Package::{slide_media_properties,edit_slide_media_properties,
17836+ apply_slide_media_properties}` uses typed source-order selectors for both
17837+ file movies and audio controls, keeping native identifiers private.
17838+
17839+ The private 577-byte Buffa projection has SHA-256
17840+ `3945a92dcc3f25333d6375eb68aaaf762ea00141cfd9055f71bf65cfb4f12b02`.
17841+ Its lazy codec preserves unknown bytes and distinguishes omission from
17842+ explicit empty strings and `false`. Properties admit absent or zero geometry;
17843+ the existing geometry and position owners retain their own validation.
17844+ Ownership checks cover styles, captions, comments, group/container/slide
17845+ owners, header references, and materialized media. The existing replacement
17846+ owner supplies content and optional-poster validation under residual limits.
17847+ Metadata traversal, parsing, allocation, hashing, and rewrite work are charged;
17848+ unselected media siblings retain their opaque messages.
17849+
17850+ Verification receipts:
17851+
17852+ - Neutral codec: 10 tests; common: 166; Keynote library: 273.
17853+ - Media-properties integration: 17; existing audio-position and movie-geometry
17854+ integration: 13 and 27. Checks cover exact no-op, inverse, replay,
17855+ double-inverse, locality, malformed headers, limits, and opaque siblings.
17856+ - Host-properties tests: 10, including all three raw/focused parity cases and
17857+ file media without a poster.
17858+ - Python: 978 tests. Full boundary scan: 64 workspace packages, 238 internal
17859+ dependency declarations, and 11 existing explicit debt items.
17860+ - Optimized AddressSanitizer: 256 runs in 225 seconds, followed by 64 runs in
17861+ 50 seconds after the final metadata-accounting changes; both passed.
17862+ The earlier unoptimized startup timeout is not counted as a passing run.
17863+ - Normal commit hooks passed: formatting, manifest sorting, workspace
17864+ all-features library Clippy with `-D warnings`, workspace library and
17865+ integration tests, and workspace doctests.
17866+
17867+ Cleanup removed the owned scratch directory, generated standalone fuzz lock,
17868+ empty artifact directories, and approximately 3.7 GiB of sanitizer build
17869+ artifacts. Approximately 52 GiB remained free after the workspace gates.
17870+
17871+ Native acceptance remains open: Computer Use failed with ScreenCaptureKit
17872+ `-3802` (`Stream failed to start`). No native media-properties fixture or
17873+ save/actual-close/exact-reopen receipt was produced. All four raw host APIs
17874+ and their private helper remain retained. `MEDIA_PROPERTIES_NATIVE_VERIFIED`
17875+ is absent, so this increment records source ownership and does not retire
17876+ those routes or complete the monolith exit.
0 commit comments