- ApplyStep: guard StartAsync against double-invocation (_running check at top) - ApplyService: replace raw StdErr dump with scrubbed message (exit code + first non-empty line, ≤200 chars) - ApplyStep: SanitiseForDisplay strips newlines and caps error at 200 chars before rendering - ApplyStep: add OnRunningChanged EventCallback<bool>; Routes.razor disables Back while _applyRunning - Routes.razor: AdvanceToDone uses _stepTitles.Length - 1 instead of magic literal 5 - app.css: replace Google Fonts CDN @import with local @font-face rules; bundle DM Mono (300/400/500 + italic 300) and Inter (300/400/500) latin woff2 files under wwwroot/fonts/ Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
47 KiB
47 KiB