diff --git a/README.md b/README.md
index 056bfed..7c4baa1 100644
--- a/README.md
+++ b/README.md
@@ -195,6 +195,7 @@ SQLite migration rule:
- Workspace reads are resolved through API requests in `WorkspaceQueryService`; browser interop stays focused on auth forms, session storage, SSE wiring, and small DOM helpers.
- Interactive authenticated startup begins in `WorkspaceRouteView.razor` after first render because `RpgRollerApiClient` still depends on JS interop-backed `fetch`.
- Workspace startup diagnostics now log route initialization, route-content render phases, and browser-side workspace mutation snapshots to help isolate the remaining Firefox startup crash documented in `POSTMORTEM.md`.
+- Pre-Blazor diagnostics also watch the static `#rr-interactive-host` container before `_framework/blazor.web.js` connects, so extension-driven DOM mutations can be compared against the first failing interactive batch.
- Live workspace refresh compares separate roster, per-character sheet, and log versions so unrelated changes do not trigger full reloads.
- Campaign log data is loaded in bounded slices: campaign summaries, one selected roster, one selected character sheet, and a 25-row incremental log window from `/api/campaigns/{campaignId}/log/page`.
- Log rows return compact summary data first and lazy-load full detail from `/api/rolls/{rollId}` when expanded.
diff --git a/RpgRoller/Components/App.razor b/RpgRoller/Components/App.razor
index 73e211d..9c1bffa 100644
--- a/RpgRoller/Components/App.razor
+++ b/RpgRoller/Components/App.razor
@@ -25,11 +25,16 @@
}
else
{
-