Skip to content

Covers: draw them wide (16:9) for the full-width band - #25

Merged
ofcRS merged 3 commits into
mainfrom
feat/landscape-covers
Oct 10, 2026
Merged

ofcRS merged 3 commits into
mainfrom
feat/landscape-covers

Conversation

@ofcRS

@ofcRS ofcRS commented Oct 10, 2026

Copy link
Copy Markdown
Owner

Summary

  • The meeting page shows its cover as a full-width band, and a square cover showed only its middle third there. Every new cover.jpg is now the largest centred 16:9 crop of the engine's answer, at most 1536 px wide, never upscaled. Older square covers still show; New Cover redraws one wide.
  • Engines ask for a wide picture: OpenRouter aspect_ratio: 16:9, the OpenAI-compatible body 1536x1024, Codex "1536x1024, landscape".
  • The prompt keeps the characters together in the centre with open background to both edges, so one picture reads as the band and as the 56 pt square tile cut from its centre (scene prompt revision 5).
  • MeetingCoverTile sizes its thumbnail by the short side, so the centre square keeps 2× pixels.
  • Design: docs/plans/2026-09-24-meeting-illustrations.md §10 landscape addendum, with the two-round paid look test.

Test plan

  • swift build and swift build --package-path app in the branch worktree
  • swift test on CI (this Mac has Xcode 27 with Command Line Tools 26.6, so the Testing macro and framework disagree and the tests cannot compile locally; main fails the same way)
  • CI packaged-app smoke test
  • By eye: a redrawn cover on the meeting page at a narrow and a wide pane, and its row tile in History

ofcRS added 3 commits October 10, 2026 17:30
The meeting page shows its cover as a full-width band, and a square cover
showed only its middle third there (the user, on a real meeting). Every new
cover.jpg is now the largest centred 16:9 crop of what the engine answered,
at most 1536 px wide, never upscaled; a dropped-in cover.png still bypasses
normalize. Older square covers still show; New Cover redraws one wide.

- CoverImageFile: integer 16:9 crop (a wider source loses columns, a taller
  one rows), aspectWidth/aspectHeight/aspect public, read-back checks the
  exact target size.
- Engines: OpenRouter aspect_ratio 16:9; the OpenAI-compatible body asks
  1536x1024 (the one landscape size OpenAI's own image models take, any
  multiple of 16 for Flux); Codex is asked for "1536x1024, landscape".
- Prompt: "A wide 16:9 cover illustration", the characters close together
  in the centre with open background to both edges, so the picture reads
  as a banner and as a square thumbnail cut from its centre. Scene prompt
  revision 5 reshapes only the first paragraph.
- MeetingCoverTile asks the thumbnail cache for size x 2 x aspect px on the
  long side, so the 56 pt centre square keeps 2x pixels. CoverHeroGeometry
  is unchanged: a 1,400 pt pane shows the middle 51 % of the cover's height.
- Paid look test (two rounds, OpenRouter + Codex) recorded in the design
  §10 landscape addendum; CHANGELOG and CLAUDE.md updated.
@ofcRS
ofcRS merged commit 09c3f71 into main Oct 10, 2026
3 checks passed
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.

1 participant