fix(onboarding): midi-input multi-provider discovery + home-tour lifecycle (#568)

Addresses Codex review of #526/#528:
- midi-input discover(): one provider's enumerate() rejection no longer aborts
  the whole discovery — other providers (e.g. a native/desktop MIDI provider)
  are still queried; denial is only reported when NO provider enumerates.
- Home tour now waits for a 'v3:dashboard-rendered' event (dashboard.js emits
  it after the #v3-home innerHTML swap) before attaching Shepherd, instead of a
  single animation frame that could latch onto pre-render nodes the async
  dashboard render then replaces.
- "Play it now" onboarding now arms the tour (armPendingFirstRun) to run the
  first time the user returns to v3-home, instead of silently never showing it.

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Byron Gamatos
2026-06-22 14:06:28 +02:00
committed by GitHub
co-authored by Claude Opus 4.8
parent 820a18648a
commit 5d0229fc82
4 changed files with 70 additions and 9 deletions
+4
View File
@@ -240,6 +240,10 @@
if (window.v3AudioRouting && typeof window.v3AudioRouting.render === 'function') {
try { window.v3AudioRouting.render(document.getElementById('v3-audio-routing')); } catch (e) { /* */ }
}
// Signal that #v3-home has been (re)built, so the first-run onboarding
// tour can wait for the real cards instead of attaching to nodes from a
// prior render that this innerHTML swap just replaced.
try { document.dispatchEvent(new CustomEvent('v3:dashboard-rendered')); } catch (e) { /* older runtimes */ }
}
function statCard(value, unit, unitColor) {