Idea detail
webview_claim_race
reqlan rq/extension/host/startup-performance.rq:69
Summary
Setting `webview.html` or calling `postMessage` before the workbench has claimed the overlay ( or after it has disposed it ) can fail with `Webview is in an invalid state` / `Webview is disposed`.
This is intermittent and more common on Windows during extension init, when the activity-bar view is restored in the same tick as another webview ( first-run onboarding ).
Contract:
- Activity-bar host posts only after the webview's `ready` signal; `post` is a no-op until then and swallows disposed / invalid-state errors.
- `resolveWebviewView` may run more than once: dispose prior view listeners, clear `webviewReady`, rebind, reassign HTML.
- First-run onboarding waits for the activity-bar paint gate or 400 ms, whichever first, so it does not register a second webview service worker during sidebar claim. Palette `reqlan.showOnboarding` stays immediate.
Index and language-client startup still use the existing paint / timeout fallbacks — a dead sidebar must not strand indexing.
first_paint_contract onboarding_check
activity-bar-webview-provider.ts
main.ts
safe-webview-post.ts
Navigation
Attributes
Ancestor context
No ancestor chain recorded.
Outbound references
| Kind | Idea | Path | Snippet |
|---|---|---|---|
| references | first_paint_contract | reqlan rq/extension/host/startup-performance.rq | first_paint_contract |
| references | onboarding_check | reqlan rq/extension/host/activation.rq | onboarding_check |
| file_reference | "../../../packages/extension/src/activity_bar_module/activity-bar-webview-provider.ts" | packages/extension/src/activity_bar_module/activity-bar-webview-provider.ts | activity-bar-webview-provider.ts |
| file_reference | "../../../packages/extension/src/extension/main.ts" | packages/extension/src/extension/main.ts | main.ts |
| file_reference | "../../../packages/extension/src/shared/safe-webview-post.ts" | packages/extension/src/shared/safe-webview-post.ts | safe-webview-post.ts |
Inbound references
| Kind | Idea | Path | Snippet |
|---|---|---|---|
| references | first_paint_startup | reqlan rq/extension/host/activation.rq | webview_claim_race |
| references | onboarding_check | reqlan rq/extension/host/activation.rq | webview_claim_race |
| references | extension_startup_reliability | reqlan rq/extension/host/startup-performance.rq | webview_claim_race |
| references | first_paint_contract | reqlan rq/extension/host/startup-performance.rq | webview_claim_race |
| references | deferred_startup_sequence | reqlan rq/extension/host/startup-performance.rq | webview_claim_race |
Unresolved references
| Kind | Idea | Path | Snippet |
|---|---|---|---|
| None | |||
Local graph
Initialising graph…