06-Sep-2026 — restore log panel builds up line by line instead of flashing empty on every log flush #389
build 881 — commit 72e30a6
While a restore ran, the History tab's expanded log panel collapsed to "Waiting for log output..." and re-filled roughly every half second. The per-session progress websocket handler reloaded the whole session list on every message, and the list endpoint strips logs, so the in-progress session was replaced with a logless copy until a second request fetched its logs again. The panel also changed height while doing this, so the groups below it jumped.
- Drop the per-line progress handler and its toast; the session-updated event is now the only feed for the log panel
- Keep existing logs when the session list is refetched without them
- Track log lines by a stable key so new lines append with a short fade-in instead of rewriting every line
- Hold the panel height while a session is in progress
Add tools/check-inline-sass.ts, which extracts every inline styles: block from the component files and compiles it with the Sass compiler bundled with @angular/build, resolving relative @use against the component path and blanking template interpolations. Run it as npm run lint:inline-sass, from npm run lint, and from the pre-commit hook on staged component files, so a broken block fails before the dev server overlay shows it.