Claude
f12d11334a
fix(composer): center divider strokes and clamp gauge radii in preview canvas
...
Two outstanding CodeRabbit outside-diff findings on this PR:
- The divider branch applied its 0.5px centering offset after scaling
(`ay * s + 0.5`) instead of before it (`(ay + 0.5) * s`), so at SCALE>1
the stroke bled into the preceding LED row/column instead of straddling
its own.
- A small imported gauge with a wide lineWidth (e.g. width=1, height=1,
lineWidth=3) produced a negative radius, which ctx.ellipse() throws
IndexSizeError on, aborting render() for every element still to be
drawn. Radii are now clamped to zero.
Verified both against current code (neither was fixed by later commits
on this branch) and mutation-checked: reverting either fix fails the new
test.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-09-11 20:33:06 +00:00
..
2026-08-07 10:17:30 -04:00
2026-08-07 10:17:30 -04:00
2026-08-23 11:43:08 -04:00
2026-03-20 15:06:58 -04:00
2026-08-21 11:16:52 -04:00
2026-07-13 08:59:41 -04:00
2026-07-12 10:38:52 -04:00
2026-07-12 10:38:52 -04:00
2026-05-24 09:38:15 -04:00
2026-08-07 16:17:11 -04:00
2026-08-21 11:16:52 -04:00
2026-08-21 11:16:52 -04:00
2026-08-23 11:44:23 -04:00
2026-08-21 11:16:52 -04:00
2026-08-21 11:16:52 -04:00
2026-08-21 11:16:52 -04:00
2026-08-21 11:16:52 -04:00
2026-07-14 08:08:51 -04:00
2026-05-24 09:38:15 -04:00
2026-08-26 10:03:43 -04:00
2026-09-01 09:54:04 -04:00
2026-08-07 13:02:59 -04:00
2026-08-11 16:10:56 -04:00
2026-08-07 16:17:11 -04:00
2026-08-12 08:42:56 -04:00
2026-08-19 12:28:22 -04:00
2026-08-12 08:40:07 -04:00
2026-08-11 14:14:25 -04:00
2026-08-19 17:40:52 -04:00
2026-08-07 10:17:30 -04:00
2026-09-11 07:36:22 +00:00
2026-08-22 14:35:30 -04:00
2026-09-11 07:36:22 +00:00
2026-09-11 20:33:06 +00:00
2026-08-21 18:56:00 -04:00
2026-08-07 16:17:11 -04:00
2026-07-14 08:49:43 -04:00
2026-08-21 14:30:29 -04:00
2026-08-07 16:17:11 -04:00
2026-08-06 14:04:23 -04:00
2026-05-15 10:19:55 -04:00
2026-05-15 10:19:55 -04:00
2026-08-04 13:46:28 -04:00
2026-09-03 16:06:40 -04:00
2026-05-24 09:38:15 -04:00
2026-08-07 10:17:30 -04:00
2026-06-01 11:58:21 -04:00
2026-08-23 11:43:39 -04:00
2026-08-07 16:17:11 -04:00
2026-08-07 10:17:30 -04:00
2026-08-07 16:17:11 -04:00
2026-07-13 10:31:20 -04:00
2026-08-07 16:17:11 -04:00
2026-08-12 09:40:48 -04:00
2026-08-06 14:04:23 -04:00
2026-08-07 16:17:11 -04:00
2026-08-02 12:01:56 -04:00
2026-08-07 13:27:20 -04:00
2026-05-15 10:19:55 -04:00
2026-05-15 10:19:55 -04:00
2026-08-07 10:17:30 -04:00
2026-05-24 09:38:15 -04:00
2026-08-21 14:30:29 -04:00
2026-08-10 08:17:57 -04:00
2026-07-12 10:38:52 -04:00
2026-05-24 09:38:15 -04:00
2026-08-21 15:50:55 -04:00
2026-08-12 14:58:05 -04:00
2026-08-12 14:58:05 -04:00
2026-08-23 11:42:51 -04:00
2026-08-03 16:52:42 -04:00
2026-08-21 15:50:55 -04:00
2026-07-12 10:38:52 -04:00
2026-08-23 11:44:00 -04:00
2026-09-02 13:21:07 -04:00
2026-09-02 13:21:07 -04:00
2026-08-21 15:50:55 -04:00
2026-08-11 16:10:56 -04:00
2026-08-19 12:49:46 -04:00
2026-07-11 08:55:50 -04:00
2026-08-17 15:35:02 -04:00
2026-09-02 09:51:27 -04:00
2026-08-21 16:19:33 -04:00
2026-08-19 12:28:22 -04:00
2026-07-11 08:55:50 -04:00
2026-05-15 10:19:55 -04:00
2026-08-23 11:43:39 -04:00
2026-07-09 07:54:18 -04:00
2026-08-25 09:45:17 -04:00
2026-08-26 08:56:45 -04:00
2026-08-02 10:40:12 -04:00
2026-08-05 19:38:11 -04:00
2026-08-07 13:02:59 -04:00
2026-08-21 15:50:55 -04:00
2026-08-07 16:17:11 -04:00
2026-08-21 16:22:48 -04:00
2026-08-07 10:17:30 -04:00
2026-05-15 10:19:55 -04:00
2026-07-31 09:40:38 -04:00
2026-05-24 09:38:15 -04:00
2026-08-07 16:17:11 -04:00
2026-08-07 10:17:30 -04:00
2026-07-13 09:28:30 -04:00
2026-08-02 12:39:33 -04:00
2026-08-07 16:17:11 -04:00
2026-09-02 16:22:09 -04:00
2026-08-02 12:39:33 -04:00
2026-09-02 16:22:25 -04:00
2026-08-02 12:39:33 -04:00
2026-08-21 16:24:15 -04:00
2026-08-02 12:39:33 -04:00
2026-09-03 17:01:30 -04:00
2026-08-26 11:25:10 -04:00
2026-08-07 16:17:11 -04:00
2026-06-11 18:18:28 -04:00
2026-07-13 09:32:37 -04:00
2026-08-21 14:29:45 -04:00
2026-08-21 14:28:23 -04:00
2026-08-21 11:16:52 -04:00
2026-08-25 08:40:28 -04:00
2026-08-21 14:29:45 -04:00
2026-08-21 14:29:45 -04:00
2026-08-06 14:04:23 -04:00
2026-07-14 08:33:08 -04:00
2026-05-15 10:19:55 -04:00
2026-04-08 12:33:54 -04:00
2026-08-17 13:28:40 -04:00
2026-08-21 14:30:29 -04:00
2026-08-21 14:30:29 -04:00
2026-05-24 09:38:15 -04:00
2026-05-24 09:38:15 -04:00
2026-07-31 09:40:38 -04:00
2026-08-10 09:41:25 -04:00
2026-08-23 11:42:33 -04:00
2026-08-12 14:06:32 -04:00
2026-07-31 09:40:38 -04:00
2026-08-13 17:02:36 -04:00
2026-08-21 15:50:55 -04:00
2026-07-08 09:43:13 -04:00
2026-07-12 10:40:34 -04:00
2026-08-07 10:17:30 -04:00
2026-08-03 15:21:47 -04:00
2026-08-07 10:17:30 -04:00
2026-08-11 13:56:16 -04:00
2026-07-09 09:22:24 -04:00
2026-07-16 20:32:07 -04:00
2026-07-16 20:32:07 -04:00
2026-08-06 14:04:23 -04:00
2026-07-14 11:22:37 -04:00
2026-05-03 08:25:20 -04:00