jpmschweitzer and Claude Fable 5
374b195594
fix(ui): PR #205 review round — integer px-per-gridunit fit replaces fractional (T-1189, T-1192)
...
The fractional fit branch is deleted, resolving both review findings at
the root: tyre showed its comments cited D-255 for an exception the
record does not contain (the language came from the lead's ticket text,
not governance), and hoshe showed it returned sub-1x for a canvas
exceeding the viewport on one axis. Replacement: fit_scale_ratio()
chooses the largest integer pixels-per-gridunit R fitting both
legend-reserved axes, floored at 1 (over-viewport draws native and
crops like every fixed rung) — the fine-grained integer lattice (GJ1c
1080p -> 9px/gu = 1593x792, ~98% width; 4K -> 20) that makes the
fractional hatch unnecessary. center_offset() floors to whole pixels
(half-pixel centering would blur the texel grid). Doc comments cite the
real sanction (D-255 amendment 2026-07-25, this branch). Legend column
constant is now canonical in transport, read directly by the legend
(was an independently-typed literal); its test asserts real geometry.
New regression test proves _global_body_extent clears on body switch
and never caps another body's requests.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-25 13:14:12 +02:00
..
2026-07-22 10:35:37 +02:00
2026-07-16 20:29:53 +02:00
2026-07-06 21:53:35 +02:00
2026-02-28 12:20:02 +01:00
2026-04-05 09:59:56 +02:00
2026-02-18 11:51:41 +01:00
2026-02-25 11:45:34 +01:00
2026-02-28 12:20:02 +01:00
2026-06-12 16:22:01 +02:00
2026-04-22 09:06:51 +02:00
2026-02-18 11:51:41 +01:00
2026-07-22 11:41:37 +02:00
2026-07-22 19:51:12 +02:00
2026-07-22 11:41:37 +02:00
2026-07-25 09:32:52 +02:00
2026-04-05 09:59:56 +02:00
2026-02-21 13:43:43 +01:00
2026-06-12 16:22:01 +02:00
2026-02-21 13:43:43 +01:00
2026-07-17 10:24:39 +02:00
2026-04-21 17:29:49 +02:00
2026-02-21 13:43:43 +01:00
2026-04-05 09:59:56 +02:00
2026-02-18 11:51:41 +01:00
2026-04-21 14:30:38 +02:00
2026-03-20 07:48:47 +01:00
2026-04-21 09:48:26 +02:00
2026-04-05 09:59:56 +02:00
2026-02-21 13:43:43 +01:00
2026-05-02 10:19:11 +02:00
2026-02-18 11:51:41 +01:00
2026-06-12 16:22:01 +02:00
2026-02-18 11:51:41 +01:00
2026-04-19 21:58:24 +02:00
2026-02-18 11:51:41 +01:00
2026-02-23 21:01:30 +01:00
2026-02-21 13:43:43 +01:00
2026-02-19 12:05:36 +01:00
2026-02-18 11:51:41 +01:00
2026-03-04 09:50:02 +01:00
2026-06-12 16:22:01 +02:00
2026-02-28 12:20:02 +01:00
2026-06-12 16:22:01 +02:00
2026-02-28 12:20:02 +01:00
2026-06-12 16:22:01 +02:00
2026-02-12 23:43:37 +01:00
2026-06-12 16:22:01 +02:00
2026-02-28 12:20:02 +01:00
2026-05-02 22:50:17 +02:00
2026-02-28 12:20:02 +01:00
2026-07-06 20:18:01 +02:00
2026-02-18 11:51:41 +01:00
2026-05-02 22:50:17 +02:00
2026-05-02 18:03:06 +02:00
2026-05-02 22:50:17 +02:00
2026-02-28 12:20:02 +01:00
2026-04-05 09:59:34 +02:00
2026-02-28 12:20:02 +01:00
2026-07-07 00:35:20 +02:00
2026-04-21 17:29:49 +02:00
2026-02-21 13:43:43 +01:00
2026-07-14 15:44:56 +02:00
2026-04-19 15:36:04 +02:00
2026-04-19 15:36:04 +02:00
2026-04-19 15:36:04 +02:00
2026-07-21 20:00:18 +02:00
2026-02-18 18:28:37 +01:00
2026-02-21 13:43:43 +01:00
2026-07-21 20:00:18 +02:00
2026-07-16 21:30:52 +02:00
2026-02-14 09:49:41 +01:00
2026-04-05 09:59:56 +02:00
2026-02-21 13:43:43 +01:00
2026-04-21 17:29:49 +02:00
2026-02-18 11:51:41 +01:00
2026-04-21 17:29:49 +02:00
2026-02-12 23:43:37 +01:00
2026-04-21 17:29:49 +02:00
2026-02-28 12:20:02 +01:00
2026-04-21 17:29:49 +02:00
2026-02-11 20:59:46 +01:00
2026-04-05 09:59:34 +02:00
2026-02-11 16:52:27 +01:00
2026-04-22 10:06:39 +02:00
2026-06-12 16:22:01 +02:00
2026-02-21 13:43:43 +01:00
2026-02-18 02:14:29 +01:00
2026-02-18 11:51:41 +01:00
2026-04-22 10:06:39 +02:00
2026-02-18 11:51:41 +01:00
2026-04-22 10:06:39 +02:00
2026-02-18 11:51:41 +01:00
2026-04-21 17:29:49 +02:00
2026-02-18 11:51:41 +01:00
2026-07-22 00:47:53 +02:00
2026-02-11 19:16:56 +01:00
2026-05-02 10:19:11 +02:00
2026-02-12 23:43:37 +01:00
2026-02-27 18:06:16 +01:00
2026-02-28 12:20:02 +01:00
2026-05-02 10:19:11 +02:00
2026-03-05 11:44:12 +01:00
2026-04-05 09:59:56 +02:00
2026-02-21 14:10:06 +01:00
2026-02-25 21:59:56 +01:00
2026-02-28 12:20:02 +01:00
2026-02-13 02:07:43 +01:00
2026-02-11 19:16:56 +01:00
2026-02-23 21:01:22 +01:00
2026-02-28 12:20:02 +01:00
2026-02-19 14:59:50 +01:00
2026-02-21 13:43:43 +01:00
2026-07-06 21:15:32 +02:00
2026-02-12 23:43:37 +01:00
2026-07-25 08:53:48 +02:00
2026-07-25 08:53:48 +02:00
2026-07-25 08:53:48 +02:00
2026-07-25 11:36:21 +02:00
2026-07-25 13:14:12 +02:00
2026-07-25 09:32:52 +02:00
2026-07-25 11:08:48 +02:00
2026-07-25 13:14:12 +02:00
2026-07-25 13:14:12 +02:00
2026-07-14 17:31:15 +02:00
2026-05-02 10:19:11 +02:00
2026-02-28 12:20:02 +01:00
2026-04-19 21:58:24 +02:00
2026-02-21 14:10:06 +01:00
2026-02-13 18:07:15 +01:00
2026-02-14 09:49:41 +01:00
2026-04-05 09:59:56 +02:00
2026-02-28 12:20:02 +01:00
2026-07-16 21:40:03 +02:00
2026-03-05 08:41:09 +01:00
2026-07-16 20:29:14 +02:00
2026-03-05 08:41:09 +01:00