feedBack/tests/js
Byron Gamatos 0f1006972b
feat(highway): render teaching marks fg/ch/sd on 2D + 3D (§6.2.2) (#538)
Render the three per-note teaching marks on both highways, mirroring the
bend-curve render (#532). Display only — no scoring / NoteVerifier coupling.

- 2D static/highway.js: fg renders by default as a small finger numeral hugging
  the gem (T = thumb, 1..4); sd (degree label) and ch (strum bracket connecting
  notes that share a ch key, arrow direction from pkd) are opt-in behind a new
  `showTeachingMarks` toggle (exposed via toggle/get/set + the bundle's
  `teachingMarksVisible` flag). Pure helpers teachingFingerLabel /
  teachingDegreeLabel / strumGroupBuckets drive the glyphs. ch bracket is
  note-stream-only (chord notes already read as one gesture).
- 3D plugins/highway_3d/screen.js: fg (default) + sd (opt-in, mirrors the 2D
  toggle via bundle.teachingMarksVisible) render next to the per-note fret label
  via a new pooled sprite (pTeachMarkLbl); _scrChordNote resets fg/sd so chord
  notes don't inherit stale marks. ch strum brackets are deferred in 3D (no
  cross-note batch pass in the per-note render); 2D covers ch.

Tests: tests/js/highway_teaching_marks.test.js extracts the pure helpers from
both files (extract-and-eval) and asserts label mapping + strum-group bucketing.

Part of got-feedback/feedback#334

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-21 07:58:04 +02:00
..
alpha_warning_banner.test.js Clean release snapshot 2026-06-16 18:47:13 +02:00
app_tour_library.test.js Clean release snapshot 2026-06-16 18:47:13 +02:00
audio_effects_host.test.js Purge external-format terminology from code, tests and docs 2026-06-16 19:36:53 +01:00
audio_effects_test_harness.js Clean release snapshot 2026-06-16 18:47:13 +02:00
audio_element_accessor.test.js Clean release snapshot 2026-06-16 18:47:13 +02:00
audio_session_compat.test.js Clean release snapshot 2026-06-16 18:47:13 +02:00
audio_session_host.test.js Purge external-format terminology from code, tests and docs 2026-06-16 19:36:53 +01:00
audio_session_input.test.js Clean release snapshot 2026-06-16 18:47:13 +02:00
audio_session_mix.test.js Purge external-format terminology from code, tests and docs 2026-06-16 19:36:53 +01:00
audio_session_monitoring.test.js Clean release snapshot 2026-06-16 18:47:13 +02:00
audio_session_routes.test.js Purge external-format terminology from code, tests and docs 2026-06-16 19:36:53 +01:00
audio_session_stems_bridge.test.js Clean release snapshot 2026-06-16 18:47:13 +02:00
audio_session_stems.test.js Clean release snapshot 2026-06-16 18:47:13 +02:00
audio_session_test_harness.js Clean release snapshot 2026-06-16 18:47:13 +02:00
beats_loaded.test.js Clean release snapshot 2026-06-16 18:47:13 +02:00
capabilities_claims.test.js Clean release snapshot 2026-06-16 18:47:13 +02:00
capabilities_diagnostics.test.js Clean release snapshot 2026-06-16 18:47:13 +02:00
capabilities_lifecycle.test.js Clean release snapshot 2026-06-16 18:47:13 +02:00
capabilities_manifest_runtime.test.js Clean release snapshot 2026-06-16 18:47:13 +02:00
capabilities_multi_provider.test.js Clean release snapshot 2026-06-16 18:47:13 +02:00
capabilities_ownership.test.js Clean release snapshot 2026-06-16 18:47:13 +02:00
capabilities_test_harness.js Clean release snapshot 2026-06-16 18:47:13 +02:00
capabilities_versioning.test.js Clean release snapshot 2026-06-16 18:47:13 +02:00
capability_inspector_nav.test.js Clean release snapshot 2026-06-16 18:47:13 +02:00
capability_inspector_render.test.js Clean release snapshot 2026-06-16 18:47:13 +02:00
diagnostics_summary.test.js Clean release snapshot 2026-06-16 18:47:13 +02:00
handshapes_pipeline.test.js Clean release snapshot 2026-06-16 18:47:13 +02:00
highway_3d_arp_deferral.test.js Clean release snapshot 2026-06-16 18:47:13 +02:00
highway_3d_camera_framing.test.js Clean release snapshot 2026-06-16 18:47:13 +02:00
highway_3d_fret_label_render_order.test.js Clean release snapshot 2026-06-16 18:47:13 +02:00
highway_3d_fret_row_labels.test.js Clean release snapshot 2026-06-16 18:47:13 +02:00
highway_3d_fret_spacing.test.js Improve wording in terminology cleanup 2026-06-16 19:43:45 +01:00
highway_3d_lean_sustain.test.js Clean release snapshot 2026-06-16 18:47:13 +02:00
highway_3d_lefty.test.js Clean release snapshot 2026-06-16 18:47:13 +02:00
highway_3d_panel_controls.test.js Clean release snapshot 2026-06-16 18:47:13 +02:00
highway_3d_pool_warm.test.js Clean release snapshot 2026-06-16 18:47:13 +02:00
highway_3d_render_order.test.js Clean release snapshot 2026-06-16 18:47:13 +02:00
highway_3d_resize_reframe.test.js Clean release snapshot 2026-06-16 18:47:13 +02:00
highway_3d_slide_target.test.js Clean release snapshot 2026-06-16 18:47:13 +02:00
highway_3d_smooth_clock_pause.test.js Clean release snapshot 2026-06-16 18:47:13 +02:00
highway_3d_sustain_bloom.test.js Clean release snapshot 2026-06-16 18:47:13 +02:00
highway_3d_sustain_rail.test.js Clean release snapshot 2026-06-16 18:47:13 +02:00
highway_adaptive_scale.test.js Clean release snapshot 2026-06-16 18:47:13 +02:00
highway_audio_barrier.test.js Clean release snapshot 2026-06-16 18:47:13 +02:00
highway_bend_curve.test.js fix(bend): GP8 short-bend curve loss + 2D curve timing + 3D bnv gating (#535) 2026-06-21 00:46:36 +02:00
highway_chord_render_cache.test.js Clean release snapshot 2026-06-16 18:47:13 +02:00
highway_colors_facade.test.js Clean release snapshot 2026-06-16 18:47:13 +02:00
highway_filtered_notes.test.js Clean release snapshot 2026-06-16 18:47:13 +02:00
highway_monotonic_clock.test.js Clean release snapshot 2026-06-16 18:47:13 +02:00
highway_note_state.test.js Clean release snapshot 2026-06-16 18:47:13 +02:00
highway_pause_throttle.test.js Clean release snapshot 2026-06-16 18:47:13 +02:00
highway_phrases.test.js Clean release snapshot 2026-06-16 18:47:13 +02:00
highway_string_colors.test.js Clean release snapshot 2026-06-16 18:47:13 +02:00
highway_teaching_marks.test.js feat(highway): render teaching marks fg/ch/sd on 2D + 3D (§6.2.2) (#538) 2026-06-21 07:58:04 +02:00
highway_visibility.test.js Clean release snapshot 2026-06-16 18:47:13 +02:00
juce_engine_reroute.test.js Clean release snapshot 2026-06-16 18:47:13 +02:00
legacy_shim_hits.test.js Clean release snapshot 2026-06-16 18:47:13 +02:00
library_card_actions.test.js Purge external-format terminology from code, tests and docs 2026-06-16 19:36:53 +01:00
live_guitar_tone_source.test.js Clean release snapshot 2026-06-16 18:47:13 +02:00
live_performance_hud.test.js Purge external-format terminology from code, tests and docs 2026-06-16 19:36:53 +01:00
loop_api.test.js Clean release snapshot 2026-06-16 18:47:13 +02:00
loop_restart.test.js Clean release snapshot 2026-06-16 18:47:13 +02:00
midi_input_domain.test.js feat(onboarding): input-device setup step + core-owned midi-input domain (#526) 2026-06-19 16:31:16 +02:00
note_detection_domain.test.js Purge external-format terminology from code, tests and docs 2026-06-16 19:36:53 +01:00
pedal_cables.test.js Clean release snapshot 2026-06-16 18:47:13 +02:00
playback_app_adapter.test.js Clean release snapshot 2026-06-16 18:47:13 +02:00
playback_compat.test.js Purge external-format terminology from code, tests and docs 2026-06-16 19:36:53 +01:00
playback_diagnostics.test.js Purge external-format terminology from code, tests and docs 2026-06-16 19:36:53 +01:00
playback_domain.test.js Purge external-format terminology from code, tests and docs 2026-06-16 19:36:53 +01:00
playback_test_harness.js Purge external-format terminology from code, tests and docs 2026-06-16 19:36:53 +01:00
plugin_style_injection.test.js Clean release snapshot 2026-06-16 18:47:13 +02:00
plugins_page.test.js Clean release snapshot 2026-06-16 18:47:13 +02:00
progress_calibration.test.js Clean release snapshot 2026-06-16 18:47:13 +02:00
settings_autosave.test.js Clean release snapshot 2026-06-16 18:47:13 +02:00
song_close.test.js Clean release snapshot 2026-06-16 18:47:13 +02:00
song_event_payload.test.js Clean release snapshot 2026-06-16 18:47:13 +02:00
song_restart.test.js Clean release snapshot 2026-06-16 18:47:13 +02:00
song_seek.test.js Clean release snapshot 2026-06-16 18:47:13 +02:00
speed_reset.test.js Purge external-format terminology from code, tests and docs 2026-06-16 19:36:53 +01:00
test_utils.js Clean release snapshot 2026-06-16 18:47:13 +02:00
tour_engine.test.js Clean release snapshot 2026-06-16 18:47:13 +02:00
tuner_auto_open.test.js Clean release snapshot 2026-06-16 18:47:13 +02:00
tuner_core.test.js Clean release snapshot 2026-06-16 18:47:13 +02:00
tuning_display.test.js Clean release snapshot 2026-06-16 18:47:13 +02:00
tuning_targets.test.js Clean release snapshot 2026-06-16 18:47:13 +02:00
v3_songs_scroll.test.js Clean release snapshot 2026-06-16 18:47:13 +02:00
v3_songs_tuning.test.js Clean release snapshot 2026-06-16 18:47:13 +02:00
venue_instrument_pov.test.js Clean release snapshot 2026-06-16 18:47:13 +02:00
venue_mood_fx.test.js Clean release snapshot 2026-06-16 18:47:13 +02:00
venue_scene_3d.test.js Clean release snapshot 2026-06-16 18:47:13 +02:00
venue_viz.test.js Clean release snapshot 2026-06-16 18:47:13 +02:00
visualization_domain.test.js Purge external-format terminology from code, tests and docs 2026-06-16 19:36:53 +01:00