Repository navigation
Description
VS Code OSS integration checkpoint — 20 September 2026
WebScene media is merged through #780 at 5c3bce4953c643911ac7d4ec110de1fcc48bb149. AppScene transport and all three platform providers are merged through #297 at 762bc24c2fb450385d4e6f963ddf3638b3c258f8. AppScene consolidation #65 is cc5f1044a3939662489a0198d741e433428df943; WebScene consolidation #76 is e0367a7ddc00a4d64081b88028d3e3ea9c6ce833; both remain open/unmerged. Local vscode-demo is a79d74811def02f491a1c9f898fa62db42593bd1, clean and intentionally unpushed.
No physical microphone, VM, performance, package, or unchanged Code OSS Chat result is claimed for the rapid Windows/Linux implementations. Cross-platform physical and exact-package acceptance is next.
Parent epic: #227.
Reproduced state
The unchanged Code OSS Chat/auxiliary-bar surface renders, but current package evidence does not prove pointer activation, input focus, text entry, Markdown/code rendering, scrolling, links, streaming updates, cancellation, or teardown. Earlier clicks did not change UI state; layout fixes landed afterward, so the failure must be reproduced before choosing an engine layer.
Investigation first
- Compare identical built-in Chat states in Chromium and AppScene with exact target geometry, hit-test path, focus transitions, input events, mutations, layout, scene publications, logs, and screenshots.
- Inventory unchanged consumers for DOMPurify traversal, Markdown, code blocks, clipboard, links, context menus, ARIA/live regions, resize/scroll, workers, storage, crypto/auth, and webviews.
- Separate unavailable proprietary/network services from local workbench behavior and use a deterministic local response fixture for rendering/streaming acceptance.
- Link existing Implement Worker, transferable MessagePort, and iframe contexts for Code OSS #81, Implement NodeIterator for DOMPurify and Code OSS chat rendering #82/Implement Node.hasChildNodes for DOM consumers #84, Add native input observability and Code OSS activation gates #100, Provide crypto.subtle through a vetted cross-platform provider #102, [Epic] CSS features, compatibility, validation, and performance #235, and webview tickets; create a new focused blocker only when evidence names the missing generic contract.
Proposed direction
Add deterministic product acceptance first. Implement only product-neutral WebScene/AppScene contracts exposed by the evidence. Keep VS Code OSS unchanged and do not add an Electron shim.
Acceptance
- Pointer and keyboard open/focus/close the auxiliary bar and Chat input with Chromium-equivalent focus order.
- Text entry, multiline editing, selection, copy/paste, submit, cancel, retry, and history work without duplicate input.
- Deterministic streamed Markdown/code/list/table/link content updates incrementally with correct geometry, clipping, scrolling, selectable text, and final pixels.
- Sanitization, links, local resources, context menus, accessibility roles/names/live announcements, and error states are explicit.
- Repeated open/hide/resize/stream/cancel cycles have bounded input latency, cascade/layout/scene work, CPU, memory, queues, and no retained-node slope.
- Unsupported configured services fail visibly and do not block the rest of the workbench.
Proposed PR stack
- deterministic local Chat fixture + Chromium/native observability;
- focused input/focus/hit-test fixes if reproduced;
- Markdown/stream/layout/accessibility fixes if reproduced;
- lifecycle/performance and final unchanged-product acceptance.
Activity
wieslawsoltes commentedon Sep 17, 2026
CSS/global dependency boundary:
The local streaming fixture should pin chunk/event order, cancellation point, final semantic hash, geometry/scene/pixel checks, accessible live announcements, and initial/mutated/restored resource counts. Its results should use explicit pass/fail/skipped/unavailable totals and exact revisions.