
byrongamatosandClaude Sonnet 4.6
7623ad85e3
feat(h3d-carve-15): extract U-section (per-frame renderer) into src/renderer.js
- createRenderer factory DI: 241 params (consts, fn-refs, 33 pool getters,
material/settings/camera/ND getters, 35 setters)
- screen.js: tombstone + createRenderer wiring after createNoteRenderer +
createCamera wirings (§1 ruling: createNoteRenderer called from screen.js)
- Restore createArp wiring + _resetStringDependentCaches to screen.js
(accidentally dropped during carve; both needed in IIFE scope)
- smoothNow: correction 3 — setter form setFrameNow(v); return v (no bare
return (_frameNow = raw))
- _applyNoteCamTargets callers: 2 sites (7940/9923); correction 2 verified
- lookaheadSmoothCamStep callers: 3 sites (9963/9974/9978); correction 2 verified
- plugin.json: bump 3.50.0 → 3.51.0
Tests (16 files updated to scan renderer.js):
- highway_3d_renderer.test.js: new, 15 tests — export contract, DI count
(241), tombstone, caller-list corrections, smoothNow semantics, ordering
- highway_3d_arp_deferral.test.js: add renderer.js scan (deferChordGems /
noteStreamCoversArpShape moved to renderer.js)
- highway_3d_lean_sustain.test.js: add renderer.js scan; update to
setLeanSus/getLeanSus() getter form
- highway_3d_smooth_clock_pause.test.js: fix literal-newline syntax error;
update to setClkAudioT/setClkPerf/setFrameNow setter form;
update new-sample regex to match getClkAudioT()
- highway_3d_slide_target.test.js: add renderer.js to src scan
- highway_3d_sustain_rail.test.js: assert against rendererSrc (pattern
moved from U-section)
- highway_chart_transform.test.js: add utils.js scan (_openStringPitchLabels-
ForTuning moved to src/utils.js by h3d-carve-3)
- highway_note_state.test.js: add renderer.js scan (_ndGetNoteState /
_ndHasProvider captures in renderer.js update())
- highway_3d_camera_bootstrap.test.js: setter form for camSnapped/curX/
measureStarts; renderer.js added to scan
- highway_3d_camera_framing.test.js: renderer.js added; setMeasureStarts/
setCamSnapped setter form in assertions
Suite: 1395/1396 (test 46 pre-existing failure unrelated to carve-15)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014uZ169yfoFYArXz962g7KW
2026-09-05 22:47:48 +02:00
..
2026-07-16 12:06:52 +02:00
2026-06-16 18:49:40 +01:00
2026-09-05 22:47:48 +02:00
2026-09-03 17:52:30 +02:00
2026-06-16 18:47:13 +02:00
2026-07-12 01:26:02 +02:00
2026-07-05 00:17:43 +02:00
2026-07-03 12:15:43 +02:00
2026-07-10 15:06:22 +02:00
2026-07-11 11:56:53 +02:00
2026-07-11 11:56:53 +02:00
2026-07-03 12:15:43 +02:00
2026-07-11 11:32:21 +02:00
2026-07-03 12:15:43 +02:00
2026-06-23 11:03:01 +02:00
2026-07-03 12:15:43 +02:00
2026-07-11 15:36:22 +02:00
2026-06-16 18:47:13 +02:00
2026-07-03 12:15:43 +02:00
2026-07-12 00:50:50 +02:00
2026-07-12 00:50:50 +02:00
2026-09-03 17:52:30 +02:00
2026-07-11 14:56:12 +02:00
2026-07-23 01:01:51 +02:00
2026-07-11 11:32:21 +02:00
2026-07-03 12:15:43 +02:00
2026-07-03 12:15:43 +02:00
2026-07-12 11:30:53 +02:00
2026-07-03 13:01:07 +02:00
2026-06-23 11:03:01 +02:00
2026-07-03 13:01:07 +02:00
2026-07-05 00:15:50 +02:00
2026-06-16 19:36:53 +01:00
2026-07-11 11:32:21 +02:00
2026-07-11 16:33:03 +02:00
2026-07-15 21:23:10 +02:00
2026-07-13 16:53:06 +02:00
2026-07-05 21:09:38 +02:00
2026-06-23 11:03:01 +02:00
2026-07-02 08:40:20 +02:00
2026-07-07 23:58:49 +02:00
2026-07-05 00:20:31 +02:00
2026-07-19 00:56:32 -05:00
2026-07-10 13:12:10 +02:00
2026-07-19 01:36:28 -05:00
2026-07-05 20:08:19 +02:00
2026-07-03 12:15:43 +02:00
2026-06-16 18:47:13 +02:00
2026-07-10 21:12:54 +02:00
2026-07-21 13:27:41 +02:00
2026-07-10 21:12:54 +02:00
2026-07-10 21:12:54 +02:00
2026-07-07 23:57:20 +02:00
2026-07-03 12:15:43 +02:00
2026-07-03 12:15:43 +02:00
2026-07-19 00:04:30 -05:00
2026-07-19 00:04:30 -05:00
2026-06-16 18:47:13 +02:00
2026-06-23 11:03:01 +02:00
2026-07-10 19:16:01 +02:00
2026-07-03 12:15:43 +02:00
2026-07-19 00:04:30 -05:00
2026-07-14 01:58:24 -04:00
2026-06-16 19:36:53 +01:00
2026-07-11 11:32:21 +02:00
2026-07-05 01:11:38 +02:00
2026-07-07 23:58:49 +02:00
2026-07-07 10:27:45 +02:00
2026-07-07 10:27:17 +02:00
2026-07-13 12:22:42 -04:00
2026-07-03 12:15:43 +02:00
2026-06-16 18:47:13 +02:00
2026-07-19 00:40:08 -05:00
2026-06-16 18:47:13 +02:00
2026-07-10 17:16:34 +02:00
2026-06-23 11:03:01 +02:00
2026-07-10 20:16:22 +02:00
2026-07-19 00:10:53 -05:00
2026-07-12 00:29:48 +02:00
2026-06-23 11:03:01 +02:00
2026-07-11 22:44:03 +02:00
2026-07-12 00:19:59 +02:00
2026-07-12 00:29:48 +02:00
2026-07-03 12:15:43 +02:00
2026-07-03 12:15:43 +02:00
2026-06-16 18:47:13 +02:00
2026-07-12 00:50:50 +02:00
2026-09-03 13:57:19 +02:00
2026-07-14 19:48:39 +02:00
2026-06-16 18:47:13 +02:00
2026-09-04 13:45:04 +02:00
2026-07-11 11:32:21 +02:00
2026-07-12 01:26:02 +02:00
2026-07-11 12:35:05 +02:00
2026-07-11 12:35:05 +02:00
2026-07-05 00:16:42 +02:00
2026-06-16 18:47:13 +02:00
2026-07-03 12:15:43 +02:00
2026-07-21 13:27:41 +02:00
2026-06-16 18:47:13 +02:00
2026-06-20 21:59:04 +02:00
2026-07-11 15:36:22 +02:00
2026-07-13 12:22:42 -04:00
2026-06-20 14:10:04 -07:00
2026-06-20 21:23:48 +02:00
2026-06-16 18:47:13 +02:00
2026-07-23 11:27:21 +02:00
2026-06-20 21:35:07 +02:00
2026-07-23 11:27:21 +02:00
2026-07-13 17:13:08 +02:00
2026-07-19 11:45:16 -04:00
2026-06-16 18:47:13 +02:00
2026-07-13 15:36:05 +02:00
2026-07-03 12:15:43 +02:00
2026-07-21 13:30:54 +02:00
2026-07-02 20:51:57 +02:00
2026-07-13 13:25:44 +02:00
2026-07-03 12:15:43 +02:00
2026-07-12 01:32:46 +02:00
2026-06-23 11:03:01 +02:00
2026-07-12 13:25:16 +02:00
2026-07-23 11:27:21 +02:00
2026-07-21 13:27:41 +02:00
2026-07-12 15:24:39 -05:00
2026-07-03 12:15:43 +02:00
2026-06-16 18:47:13 +02:00
2026-07-03 12:15:43 +02:00
2026-07-03 12:15:43 +02:00
2026-07-03 12:15:43 +02:00
2026-07-10 21:30:53 +02:00
2026-07-22 15:45:56 -04:00
2026-06-16 18:47:13 +02:00