{
  "version": "riddle.good-catch-artifact-report.v1",
  "runId": "run_034_neon_ui_mixer_control_precision",
  "title": "Neon UI mixer control precision proof",
  "date": "2026-05-25",
  "target": "https://riddlenode.com/neon-lab/games/drum-sequencer?song=monkberry-moon-delight-tab&mix=profile&view=trainer&instrument=guitar",
  "publicBundleUrl": "https://riddlenode.com/neon-lab/",
  "sourcePrs": {
    "lilarcade": 534,
    "agentNotes": 5
  },
  "commands": [
    "npm run test:neon",
    "npm run build",
    "npm run publish:neon-preview",
    "npm run proof:sequencer:riddlenode-mixer-control",
    "npm run proof:sequencer:riddlenode-current-target"
  ],
  "goodCatchCard": {
    "plainEnglishTitle": "Riddle caught the real slider rounding away a proof-backed mix level.",
    "summary": "A durable guitar candidate set the mix contract to 0.53, but the actual browser range input could only step by 0.05 and exposed 0.55 on the UI path.",
    "whatWentWrong": "The existing proof API helper could apply subtle candidate levels, but the real mixer slider was coarser than the ratchet's 0.02 and 0.03 level moves.",
    "whatRiddleCaught": "The new UI-only proof moved the real guitar slider without calling setMixerLevelForProof, then found the UI path could not restore the 0.53 durable level exactly until the slider step changed to 0.01.",
    "whatChanged": "LilArcade added stable proof selectors for mixer controls, added proof:sequencer:riddlenode-mixer-control, and changed the mixer level sliders from step 0.05 to step 0.01.",
    "doesNotProve": "This does not prove guitar 0.50 or 0.53 sounds better. It proves the real UI slider can represent, move, render, and restore the proof-backed level under deterministic guardrails."
  },
  "beforeFixEvidence": {
    "durableGuitarLevel": 0.53,
    "htmlRangeStep": 0.05,
    "observedInputLevel": 0.55,
    "finding": "restore_level_mismatch",
    "reason": "The browser range input rounded the durable level to the nearest 0.05 step."
  },
  "fixedResult": {
    "status": "ui_mixer_control_ready",
    "proofApiEditUsed": false,
    "track": "guitar",
    "targetLevel": 0.5,
    "beforeContractLevel": 0.53,
    "afterContractLevel": 0.5,
    "levelDelta": -0.03,
    "restoreLevel": 0.53,
    "restoredLevel": 0.53,
    "clipping": false,
    "lowLevel": false,
    "peak": 0.4347,
    "rms": 0.0635,
    "headroomDb": 7.24,
    "findingCount": 0
  },
  "validation": {
    "neonTests": "105 passed",
    "fullBuild": "passed",
    "githubCi": "passed on davisdiehl/lilarcade#534 at d608e1c",
    "uiMixerControlProof": "passed with proofApiEditUsed=false, guitar 0.53 -> 0.50 -> 0.53, and 0 findings",
    "currentTargetProof": "passed with 2 active durable overrides and 0 findings"
  },
  "boundary": "This proves deterministic real-UI control behavior and audio guardrails. It does not prove subjective mix quality or listener preference."
}
