Boards sent to H3 carry their Annotation layer #133

Closed
opened 2026-10-09 23:14:13 +00:00 by crowmaki · 0 comments
Owner

Parent

#24

What to build

Boards sent to H3 carry their Annotation layer, as User Stories 88 and 89 and the spec say. In the spec's Architecture section, Boards are "flattened from the stored sketch and annotation layers". CONTEXT.md says the Annotation layer "is composited on top by default".

Today no Annotation marks reach H3. Session::board_images (crates/studio-core/src/boards.rs:724) returns only the stored Sketch PNG. If the Panel is barred, it is fitted with bars first. The test boards.rs::a_panel_on_the_shots_canvas_flattens_to_its_sketch asserts this behaviour. As a result, the per-Shot "send clean sketch" toggle (board_clean) only changes the prompt text (prompt.rs:524 drops the "arrows are directions" phrase), and every Board is already sent clean. The Notation read-backs still reach the prompt through the detailed description, so no direction text is lost. Only the image lacks the marks.

Annotations are stored as structured JSON per Panel (Notation symbol, subject, direction), not as pixels. So the flattening has to draw each Notation glyph in its entry's colour onto the canvas. The draw has to be byte-stable, like Atlases, so a rebuilt Board doesn't cause false staleness.

Acceptance criteria

  • board_images draws each Panel's Annotation layer over its Sketch, unless the Shot's clean toggle is on
  • Retired Notation entries still draw, so old Boards keep their meaning
  • Freehand arrows that were never converted (flagged as meaningless) are drawn too, or left out. Decide which and record the choice
  • Tiled multi-Panel Boards and one-slot-per-Panel Boards both carry the marks
  • A barred Panel's marks line up with its Sketch after it is fitted with bars
  • The same Board, Notation set and ratio always give the same bytes
  • Turning the clean toggle on or off changes the sent image. Check whether this should be a Board/Keyframes Stale reason
  • Tests: replace a_panel_on_the_shots_canvas_flattens_to_its_sketch with tests for the composited image, the clean image, and byte stability
## Parent #24 ## What to build Boards sent to H3 carry their Annotation layer, as User Stories 88 and 89 and the spec say. In the spec's Architecture section, Boards are "flattened from the stored sketch and annotation layers". `CONTEXT.md` says the Annotation layer "is composited on top by default". Today no Annotation marks reach H3. `Session::board_images` (`crates/studio-core/src/boards.rs:724`) returns only the stored Sketch PNG. If the Panel is barred, it is fitted with bars first. The test `boards.rs::a_panel_on_the_shots_canvas_flattens_to_its_sketch` asserts this behaviour. As a result, the per-Shot "send clean sketch" toggle (`board_clean`) only changes the prompt text (`prompt.rs:524` drops the "arrows are directions" phrase), and every Board is already sent clean. The Notation read-backs still reach the prompt through the detailed description, so no direction text is lost. Only the image lacks the marks. Annotations are stored as structured JSON per Panel (Notation symbol, subject, direction), not as pixels. So the flattening has to draw each Notation glyph in its entry's colour onto the canvas. The draw has to be byte-stable, like Atlases, so a rebuilt Board doesn't cause false staleness. ## Acceptance criteria - [ ] `board_images` draws each Panel's Annotation layer over its Sketch, unless the Shot's clean toggle is on - [ ] Retired Notation entries still draw, so old Boards keep their meaning - [ ] Freehand arrows that were never converted (flagged as meaningless) are drawn too, or left out. Decide which and record the choice - [ ] Tiled multi-Panel Boards and one-slot-per-Panel Boards both carry the marks - [ ] A barred Panel's marks line up with its Sketch after it is fitted with bars - [ ] The same Board, Notation set and ratio always give the same bytes - [ ] Turning the clean toggle on or off changes the sent image. Check whether this should be a Board/Keyframes Stale reason - [ ] Tests: replace `a_panel_on_the_shots_canvas_flattens_to_its_sketch` with tests for the composited image, the clean image, and byte stability
Sign in to join this conversation.
No description provided.