- changeEmail validates and refuses an address another account owns (users.email is UNIQUE; a collision was a 500 inside the settings form).
- /app/[id] no longer redirects a 'running' row to itself; it renders what exists and says the run was interrupted.
- ScoreBar / OptionRow / VerdictBlock survive null numbers from the model instead of throwing and losing the block (seen live: '[openui] runtime/render-error: Component ScoreBar render failed').
- drop the ad-hoc render-debug scripts now that Playwright covers the browser.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Dockerfile/compose written but never built or run on this machine (no Docker). smoke.sh now works in both modes and fails loudly.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>