# Rider and motorcycle framing

2026-09-15. Single and Compare share automatic fit and centering via a native scroll view. Each photo uses its own source-checked rider-and-motorcycle bounds. The current twelve paired panels and three high-resolution subject photos have locally authored bounds in ignored data. The fit calculation leaves 6% room on each side of those bounds, caps zoom at 4×, adapts to pane size, and adds empty space when an image edge would otherwise prevent centering. Full photo and manual zoom remain available.

## Verification

- Tests first failed because the framing API was absent. A near-edge case then exposed clipping of the requested center; a dedicated regression now checks exact centering with empty edge margin.
- Geometry tests cover independent off-center targets, wide and narrow viewports, complete target visibility, and full-photo fallback.
- Native scroll-view tests cover retained manual pan across refreshes, full-photo reset, and source/display coordinate mapping with nonzero source-panel origins.
- Model integration covers source binding, duplicate and out-of-panel rejection, graceful stale-source fallback, independent rider settings, and unchanged review revision.
- Native app inspection confirmed P01/P05/P06 Compare framing, Single reference framing, and one-sided Full photo reset. The current P05 coaching revision remained intact. Existing canvas, lean-edit, saved-review, and minimum-window layout regressions pass.
- Simplification ran inline under the project’s main-thread mapping: removed the unused original canvas wrapper after confirming all rendering now uses the shared native scroll view. Reuse and efficiency checks found no further changes warranted.
- Code review: skipped (ce-code-review unavailable). The skill’s full independent reviewer/merge pipeline conflicts with the project’s main-thread-only tool mapping. A manual scan instead checked transforms, source validation, per-frame settings, callbacks, and reset behavior; no independent review receipt is claimed.

## Limits and operation

The bounds are authored display annotations, not a motorcycle detector or anatomical evidence. New photos need their own source-bound framing entries; otherwise they open at full-photo fit. Photos with overlapping riders can still show another motorcycle. Wide panes near a source edge can show an empty margin. Manual zoom may intentionally crop the rider; Fit rider restores the complete annotated area. Framing and pan settings do not alter joint or wheel coordinates, and reopening returns to automatic framing.

Check Fit rider and Full photo after reopening or resizing. If a new photo is incorrectly framed, use Full photo and correct its local framing entry; do not change the analysis crop or original image. No service deployment or remote publication is involved.
