{"id":"6a9d654b413329fbf5457840","title":"2026 09 06 Issue 389","path":"how-to/committee/release-notes/2026-09-06-issue-389","contentMarkdown":"# 06-Sep-2026 — restore log panel builds up line by line instead of flashing empty on every log flush [#389](https://github.com/nbarrett/ngx-ramblers/issues/389)\n\n## [build 881](https://github.com/nbarrett/ngx-ramblers/actions/runs/34034203673) — [commit 72e30a6](https://github.com/nbarrett/ngx-ramblers/commit/72e30a69de2d94a7ee8ddc804053f6d760a8921e)\n\n_____\n\nWhile a restore ran, the History tab's expanded log panel collapsed to\n\"Waiting for log output...\" and re-filled roughly every half second. The\nper-session progress websocket handler reloaded the whole session list on\nevery message, and the list endpoint strips logs, so the in-progress\nsession was replaced with a logless copy until a second request fetched\nits logs again. The panel also changed height while doing this, so the\ngroups below it jumped.\n\n- Drop the per-line progress handler and its toast; the session-updated\nevent is now the only feed for the log panel\n- Keep existing logs when the session list is refetched without them\n- Track log lines by a stable key so new lines append with a short\nfade-in instead of rewriting every line\n- Hold the panel height while a session is in progress\n\nAdd tools/check-inline-sass.ts, which extracts every inline styles: block\nfrom the component files and compiles it with the Sass compiler bundled\nwith @angular/build, resolving relative @use against the component path\nand blanking template interpolations. Run it as npm run lint:inline-sass,\nfrom npm run lint, and from the pre-commit hook on staged component\nfiles, so a broken block fails before the dev server overlay shows it.","contentHtml":"<h1>06-Sep-2026 — restore log panel builds up line by line instead of flashing empty on every log flush <a href=\"https://github.com/nbarrett/ngx-ramblers/issues/389\">#389</a></h1>\n<h2><a href=\"https://github.com/nbarrett/ngx-ramblers/actions/runs/34034203673\">build 881</a> — <a href=\"https://github.com/nbarrett/ngx-ramblers/commit/72e30a69de2d94a7ee8ddc804053f6d760a8921e\">commit 72e30a6</a></h2>\n<hr>\n<p>While a restore ran, the History tab&#39;s expanded log panel collapsed to\n&quot;Waiting for log output...&quot; and re-filled roughly every half second. The\nper-session progress websocket handler reloaded the whole session list on\nevery message, and the list endpoint strips logs, so the in-progress\nsession was replaced with a logless copy until a second request fetched\nits logs again. The panel also changed height while doing this, so the\ngroups below it jumped.</p>\n<ul>\n<li>Drop the per-line progress handler and its toast; the session-updated\nevent is now the only feed for the log panel</li>\n<li>Keep existing logs when the session list is refetched without them</li>\n<li>Track log lines by a stable key so new lines append with a short\nfade-in instead of rewriting every line</li>\n<li>Hold the panel height while a session is in progress</li>\n</ul>\n<p>Add tools/check-inline-sass.ts, which extracts every inline styles: block\nfrom the component files and compiles it with the Sass compiler bundled\nwith @angular/build, resolving relative @use against the component path\nand blanking template interpolations. Run it as npm run lint:inline-sass,\nfrom npm run lint, and from the pre-commit hook on staged component\nfiles, so a broken block fails before the dev server overlay shows it.</p>\n"}