byrongamatos and Claude Sonnet 4.6
6050b6262b
fix(h3d): thread maxStrings param through resolveStringCount (Toby r1)
...
Toby r1 on c7f7c88 : MAX_RENDER_STRINGS=6 hardcoded in utils.js is a
stale compile-time copy — if S_COL grows to 7 entries, resolveStringCount
silently clamps a 7-string chart to 6 and no test fails.
Fix: delegator-param pattern (mirrors fretX / geoFretX):
- Remove const MAX_RENDER_STRINGS from utils.js
- resolveStringCount(bundle, maxStrings) — param replaces the copy
- _openStringPitchLabelsForTuning(bundle, songInfo, n, maxStrings) — same
- screen.js import aliases (_resolveStringCountBase, _openStringPitchLabelsForTuningBase)
- 1-line delegators in IIFE supply MAX_RENDER_STRINGS (= S_COL.length); zero call sites change
- NSTR=6 kept (it is a fixed semantic fact about standard guitar, not a palette ceiling)
New test: 'maxStrings param is authoritative, not a hardcoded 6'
— resolveStringCount({stringCount:7}, 7)=7; re-hardcode mutation → RED.
Wiring tests: delegator lines asserting _resolveStringCountBase/
_openStringPitchLabelsForTuningBase each receive MAX_RENDER_STRINGS.
Mutation-verified: re-hardcode 6 → 1 RED; original → 210/210 GREEN.
Suite: node --test tests/js/highway_3d*.test.js plugins/highway_3d/tests/*.test.js
207→210/210 pass.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_014uZ169yfoFYArXz962g7KW
2026-09-05 08:02:00 +02:00
..
2026-07-11 16:33:03 +02:00
2026-06-16 18:47:13 +02:00
2026-07-19 12:16:02 +02:00
2026-06-23 11:03:01 +02:00
2026-06-23 11:03:01 +02:00
2026-06-16 18:47:13 +02:00
2026-06-23 11:03:01 +02:00
2026-06-23 11:03:01 +02:00
2026-06-23 11:03:01 +02:00
2026-06-23 11:03:01 +02:00
2026-06-23 11:03:01 +02:00
2026-06-23 11:03:01 +02:00
2026-06-23 11:03:01 +02:00
2026-06-23 11:03:01 +02:00
2026-06-23 11:03:01 +02:00
2026-07-12 14:22:19 +02:00
2026-07-05 23:50:30 +02:00
2026-07-10 23:19:20 +02:00
2026-06-23 11:03:01 +02:00
2026-06-23 11:03:01 +02:00
2026-06-23 11:03:01 +02:00
2026-06-23 11:03:01 +02:00
2026-06-23 11:03:01 +02:00
2026-06-23 11:03:01 +02:00
2026-06-23 11:03:01 +02:00
2026-06-23 11:03:01 +02:00
2026-07-11 18:18:00 +02:00
2026-06-23 11:03:01 +02:00
2026-09-03 18:34:02 +02:00
2026-07-15 10:50:55 +02:00
2026-07-19 11:27:52 +02:00
2026-07-23 11:26:32 +02:00
2026-06-23 11:03:01 +02:00
2026-07-02 18:42:26 +02:00
2026-07-12 13:43:57 +02:00
2026-07-05 23:37:39 +02:00
2026-07-19 11:52:51 +02:00
2026-07-19 11:52:51 +02:00
2026-07-15 00:36:20 +02:00
2026-07-10 23:19:20 +02:00
2026-06-23 11:03:01 +02:00
2026-09-05 07:19:58 +02:00
2026-06-29 15:31:24 +02:00
2026-07-05 22:20:32 +02:00
2026-06-16 18:47:13 +02:00
2026-06-16 18:47:13 +02:00
2026-09-05 06:50:52 +02:00
2026-09-05 07:19:58 +02:00
2026-06-16 18:47:13 +02:00
2026-07-10 23:19:20 +02:00
2026-06-22 13:27:21 +02:00
2026-09-05 07:52:41 +02:00
2026-06-23 11:03:01 +02:00
2026-09-05 07:19:58 +02:00
2026-07-02 00:40:52 +02:00
2026-06-16 18:47:13 +02:00
2026-07-10 23:19:20 +02:00
2026-09-05 06:50:52 +02:00
2026-06-16 18:47:13 +02:00
2026-09-05 07:42:18 +02:00
2026-09-05 08:02:00 +02:00
2026-07-01 02:59:51 -04:00
2026-07-12 12:24:40 +02:00
2026-06-23 11:03:01 +02:00
2026-07-12 12:31:56 +02:00
2026-07-21 15:35:08 +02:00
2026-07-12 12:31:56 +02:00
2026-07-19 11:27:52 +02:00
2026-07-11 19:22:14 +02:00
2026-07-10 23:19:20 +02:00
2026-07-12 12:24:40 +02:00
2026-07-12 13:00:29 +02:00
2026-07-15 00:36:16 +02:00
2026-07-10 23:19:20 +02:00
2026-07-10 23:19:20 +02:00
2026-07-12 12:24:40 +02:00
2026-07-12 13:00:29 +02:00
2026-07-10 23:19:20 +02:00
2026-07-11 20:58:41 +02:00
2026-07-11 22:44:03 +02:00
2026-07-12 00:19:59 +02:00
2026-06-16 19:36:53 +01:00
2026-07-03 14:35:07 +02:00
2026-07-13 00:35:09 +02:00
2026-07-11 21:32:31 +02:00
2026-07-23 11:26:32 +02:00
2026-06-23 11:03:01 +02:00
2026-07-12 16:06:28 +02:00
2026-06-23 11:03:01 +02:00
2026-06-23 11:03:01 +02:00
2026-07-11 23:26:35 +02:00
2026-07-15 12:39:25 +02:00
2026-07-03 13:07:47 +02:00
2026-07-11 23:26:35 +02:00
2026-06-23 11:03:01 +02:00
2026-06-23 11:03:01 +02:00
2026-06-23 11:03:01 +02:00
2026-06-23 11:03:01 +02:00
2026-07-11 18:18:00 +02:00
2026-07-12 00:19:59 +02:00
2026-07-12 00:19:59 +02:00
2026-07-11 18:18:00 +02:00
2026-06-23 11:03:01 +02:00
2026-06-23 11:03:01 +02:00
2026-06-23 11:03:01 +02:00
2026-06-23 11:03:01 +02:00
2026-07-11 22:44:03 +02:00
2026-07-11 20:58:41 +02:00
2026-07-12 14:08:45 +02:00
2026-07-12 16:05:50 +02:00
2026-07-12 14:22:19 +02:00
2026-07-11 22:05:22 +02:00
2026-07-12 11:56:07 +02:00
2026-07-11 21:52:51 +02:00
2026-07-11 23:26:35 +02:00
2026-07-12 14:22:19 +02:00
2026-06-16 18:47:13 +02:00
2026-06-23 11:03:01 +02:00
2026-07-12 14:22:19 +02:00
2026-06-16 18:47:13 +02:00
2026-07-11 19:37:44 +02:00
2026-07-11 19:37:44 +02:00
2026-06-28 13:58:14 +02:00
2026-07-02 14:03:05 +02:00
2026-06-29 10:42:41 +02:00
2026-07-02 14:52:40 +02:00
2026-07-03 14:35:07 +02:00
2026-07-11 23:30:30 +02:00
2026-06-28 14:10:15 +02:00
2026-07-19 00:10:53 -05:00
2026-06-28 12:39:13 +02:00
2026-06-29 12:26:29 +02:00
2026-07-19 00:04:30 -05:00
2026-07-05 00:19:46 +02:00
2026-07-02 13:57:58 +02:00
2026-06-29 14:44:56 +02:00
2026-07-13 15:07:28 +02:00
2026-06-16 18:47:13 +02:00
2026-06-23 11:03:01 +02:00
2026-07-14 22:11:52 +02:00
2026-07-15 12:39:25 +02:00
2026-07-11 18:41:52 +02:00
2026-06-23 11:03:01 +02:00
2026-09-03 14:37:34 +02:00
2026-07-11 17:09:18 +02:00
2026-07-01 11:07:58 +02:00
2026-07-05 00:16:42 +02:00