Repository navigation
Promote virtuoso-dev → main (v0.2.2) — the 2026-07-14 batch #4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 4 commits
5fa6f13
6f60d70
d1f1157
143a391
9e234f6
af8fed8
a5d04ec
4ee1f3a
40cb71d
3a4efe9
cb6cc0d
13a9c8f
190fa5e
b7211f5
d68121a
df2eabc
b22c15b
161801c
c022065
8cc4076
4f9bf8e
f0c78c6
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -26,6 +26,19 @@ Verification: 18 Playwright smoke suites (`.claude/skills/run-virtuoso/`, `npm t | |
|
|
||
| ## Open threads | ||
|
|
||
| - **STOPPED HERE (2026-07-14 session) — TAPPING LADDERS (guitar + bass) SHIPPED to `virtuoso-dev` (v0.1.11, commit `cb6cc0d`), PUSHED. Folded into PR #4 (dev→main) at Christian's call — PR #4 now carries BOTH the v0.1.10 grading fixes AND the v0.1.11 tapping ladders; title/body updated to match.** New `concept_tapping` Concepts pack, carved out of Legato (the lone `leg_tapping` rung re-homed as `tap_articulation`). Full 6-agent group-design (learning-design chair + guitar/bass-pedagogy + metal-idiom + harmony + rhythm). Detail + decisions: memory `project_tapping_ladders_2026-07-14`. | ||
| - **Engine:** `buildTappingExercise` split — plain `tapping` = the single-string tap→pull ARTICULATION drill (replaces the off-idiom "scalar tap +12 across the neck" metal-idiom flagged); new `tapArp` flag → `buildTappedArpeggioExercise`/`buildTapCascadePath` = idiomatic tap→pull→hammer CASCADE cells (reuses `sweepArpeggioPositions` grid; guitar = 3-note EVH cell, bass = 2-note tap→pull; wide interval always routed to the RH tap; fret cap 22; no-unison adjacency pass incl. the dim7-symmetry seam). `tapArp` plumbed like `sweepStrings` (hidden field + readConfig + anti-leak default). | ||
| - **Rungs:** guitar 5 (`tap_articulation`→`tap_cell`→`tap_cascade`→`tap_sevenths`→`tap_changes`, descending tempo ceilings, `tap_cascade` density-ramps triplet→sixteenth_triplet); bass 4 (`btap_articulation`→`btap_arpeggio`→`btap_groove`→`btap_apply`, register-clamped frets 5–12). Both in the one `concept_tapping` band (bass rungs instrument-hidden). Edges + FORM_CUE + `screen.html` options wired. | ||
| - **Verified:** `node --check` + `probe-tapping-ladders.mjs` (9/9 rungs: startup guards pass, tp/po/ho present, frets ≤22, no adjacent unison, bass on bass strings) + smoke-generators 134/134, core-purity 40/40, strings, renderers 8/8. Screenshots confirm the `17ᵀ→5ᵖ→9ʰ` cell renders in Tab. **No HOST CHECK needed — generation-path (core) work, our USP, not shell.** | ||
| - **DEFERRED (v2, engine gaps flagged by the panel):** bass two-hand independence (needs a two-voice engine), bass open-string cascades, guitar tapped-pedal-point color rung. Not gated the ladder on these. | ||
| - **NEXT:** review/merge **PR #4** (dev→main — now the combined grading+tapping PR, https://github.com/got-feedBack/feedBack-plugin-virtuoso/pull/4); on merge `main` goes 0.1.9→0.1.11 (skips a standalone 0.1.10 tag — both land together). Then re-cut beta (`node scripts/cut-beta.mjs --push`). Smoke still MOCKS the contained verifier, so the grading fixes remain real-desktop-DI-dogfood-verified only (standing owe). | ||
|
Comment on lines
+57
to
+59
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 📐 Maintainability & Code Quality | 🟠 Major | ⚡ Quick win Separate tapping verification from grading verification. “No HOST CHECK needed” is valid only for the tapping generation path. This combined PR also ships grading-display fixes, whose installed-desktop/real-detector verification is a release requirement; the current note says that verification is still owed. 🧰 Tools🪛 LanguageTool[grammar] ~59-~59: Ensure spelling is correct (QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1) 🤖 Prompt for AI Agents |
||
| - **STOPPED HERE (2026-07-10 session) — v0.1.10 grading-DISPLAY fixes SHIPPED to `virtuoso-dev` (`5fa6f13`); PR #4 dev→main OPEN (not merged), so `main` is still 0.1.9 and beta is NOT yet re-cut.** Detail + lessons: memory `project_grading_display_fixes_2026-07-10`. | ||
| - **Card `0%`/`0-of-0` hero** — `shareCardAction` was STILL delegating to note_detect's `renderResultsCard`/`copyResultsCard` (a stale v0.1.3 path that survived the ratified v0.1.4 "keep our renderer" decision). nd's card hero reads top-level `d.accuracy`/`d.hits`/`d.misses` we never set (only `stats[]`) → 0/0, while the delegation silently suppressed our skins + crest on desktop. **Retired the delegation** → Virtuoso always draws its own skinned `renderShareCardImage`. (`_ndCardApi`/`_resultsCardData`/`_virCardOverlay` kept dormant; the `virtuoso_beta` brand was `cut-beta.mjs`'s token-rename, not note_detect.) | ||
|
coderabbitai[bot] marked this conversation as resolved.
|
||
| - **3D highway hit-flare invisible** — highway_3d's **feedBack#254** per-note PROVIDER (`getNoteState`) is authoritative over the `notedetect:hit` window-event marks and culls the gem ~100ms past the strike line unless the provider returns a live verdict THAT FRAME; ours only returned `'hit'` after the async contained drain (~150-400ms late) → gem culled first. Fix: a display-only `{ state:'active', live:true }` **live-ear keep-alive** (`_ptLive` captured in `ptOnPitch`; mirrors note_detect's own `noteStateFor`), pitch-gated ≤ the credit floor + level-gated + ±0.12s window; it renders NO judgment and credit stays verifier-only via `_ptScored`. notedetect-expert APPROVED (not a parallel grader). Return the OBJECT with `live:true` (highway's non-latched `hit-live` branch) — a bare `'active'` string sticks green. **Flare CONFIRMED lighting on Christian's real DI** ("nailed it") → the `_ptHandle` minigames ear DOES hear his DI. | ||
| - **⭐ DEPLOY-TARGET GOTCHA (cost a fully-broken build):** Christian dogfoods the **INSTALLED app** at `C:\Program Files\feedback\current\resources\slopsmith\plugins\virtuoso` (hand-copied; needs an **ELEVATED** shell to write), NOT the `%APPDATA%\slopsmith-desktop` dev symlink (which → the working tree). A **PARTIAL** copy (`screen.js` over an older `screen.html`) → version SKEW → `screen.js` boots against a mismatched DOM → total break (no theming/highway/buttons; `node --check` still passes since nothing runs at load). **Always copy the FULL runtime set** (`screen.js` `screen.html` `plugin.json` `routes.py` `settings.html` + `static/` + `assets/`). highway_3d there is NOT symlinked (uses its stale bundle). | ||
| - **VERSION CORRECTIONS (supersede the stale refs in the older threads below):** **highway_3d = 3.30.0** (installed desktop bundle) / **3.31.3** (core checkout) — NOT 3.26.0/3.22.0. **note_detect on the desktop = 1.28.0** (via the `%APPDATA%` symlink → repo checkout) — NOT 1.19.0/1.15.3. Both highway_3d versions carry the feedBack#254 provider contract. | ||
| - **NEXT:** merge PR #4 → `main` (ships all users via `update_manager`); re-cut beta (`node scripts/cut-beta.mjs --push` → 0.1.10-beta.1). Smoke still MOCKS the contained verifier → both fixes are **real-desktop-DI-dogfood-verified only** (the standing owe). | ||
|
|
||
| - **STOPPED HERE (2026-07-09 session) — v0.1.8 + v0.1.9 grading-DISPLAY fixes SHIPPED to main + dev + beta (all pushed). `main` 0.1.6 → 0.1.9.** Full detail + lessons: memory `project_grading_display_fixes_2026-07-09`. | ||
| - **REFRAME (headline):** tester reports (MajorMokoto/Kyri, Discord) of "grading broken / scored 0 / B-standard 24%" were **NOT detection** — notes count correctly (95/95, 100% on the HUD + our own card). All three bugs were grading-**DISPLAY**. | ||
| - **Fix 1 — structural tunings mis-scored (v0.1.8 `51ab8d7`).** drop-\*/B-standard/BEAD/DADGAD/open on a KEYED rung charted on STANDARD opens while the player was physically re-strung → verifier targets missed → 24%. Built the `applyTuningAdaptL1` STRUCTURAL branch (chart on the player's REAL opens at concert pitch; degree-driven resolver re-fingers the line) = the bass-ruling Phase-2 gap, **now BUILT**. Guarded by new smoke-strings `8-struct` rows. | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win
Fix the grammar in the deferred-work note.
Change “Not gated the ladder on these” to “The ladder was not gated on these.”
🤖 Prompt for AI Agents
Source: Linters/SAST tools