Skip to content

[Epic] Complete remaining Code OSS native release acceptance #227

Description

@wieslawsoltes

Current implementation checkpoint — 18 September 2026, 23:24 CEST

Exact repository state

Latest focused implementation

Recoverable work queue

  1. Synchronize integration: advance vscode-demo submodules to the exact upstream heads, update local docs, and rebase WebScene Add Code OSS browser and native desktop compatibility #76 without merging any consolidation PR.
  2. CSS correctness/performance: implement pointer-driven :active state and bounded invalidation under Complete selector matching, specificity, and dependency invalidation coverage #237; resume dynamic nested/imported/constructed CSSOM under Complete dynamic CSSOM for nested, imported, and constructed stylesheets #239; finish remaining masks/filters/backdrop work under Render CSS masks, filters, clip paths, and backdrop effects in retained scenes #256; keep [Epic] CSS features, compatibility, validation, and performance #235 as the CSS coordination epic and avoid duplicating merged Fix catalog script and logical sizing compatibility #148 work.
  3. Workspace/files: complete Qualify remote workspace bootstrap, Explorer contents, and watcher refresh #252/Implement File System Access pickers and handles over AppScene native panels #248/Qualify VS Code file edit, save, revert, and hot-exit recovery #269 with AppScene Make transition frame-demand test deterministic #131 so Open File, Open Folder, workspaces, Explorer contents/watch refresh, save/revert/hot-exit, cancellation, restart, and error paths operate through opaque native grants.
  4. Webviews/workers: finish Enforce secure nested-document lifecycle for Code OSS webviews #267/Complete nested-webview interaction, find, focus, and accessibility handoff #268 for Markdown preview and extension webview lifecycle, projected input coordinates, find/focus/accessibility; close the remaining Implement Worker, transferable MessagePort, and iframe contexts for Code OSS #81/Keep active MessagePort listeners reachable across garbage collection #288 MessagePort and forced-GC lifetime matrix.
  5. Terminal and performance: resolve terminal open-to-prompt latency in Bound and reduce VS Code integrated-terminal open-to-prompt latency #244 and continue CSS/visual-tree profiling in Profile unchanged VS Code CSS and visual-tree workloads with bounded performance gates #243, including cascade, invalidation, panel add/remove, layout, paint, memory, and idle CPU budgets.
  6. Acceptance and release: complete Render generated icon-font pseudo-elements correctly in tabs and list rows #246 and Establish Chromium/AppScene visual and geometry regression gates for unchanged Code OSS #259Publish a Code OSS Web API capability ledger and expand WPT coverage #263, then AppScene Keep captured Performance methods on one timeline #130 for a single exact SDK/CLI Release package with visual Chromium comparison, WPT/API, accessibility, workbench/Chat, performance, size/disk, lifecycle, supported-RID, signing/archive, and static/runtime zero-browser gates.

Open planned inventory at this checkpoint: 34 WebScene issues and 3 AppScene issues, including epics. No focused implementation PR from this workstream is left open; only the three consolidation PRs remain open.

Validation and handoff debt

The current directive is implementation throughput, so the latest focused merges intentionally skipped build, WPT/browser/native, performance, memory, package, and CI validation beyond whitespace/diff sanity. The exact SDK archive /private/tmp/appscene-webscene-sdk-ac235de-eef0055.tar.gz predates the latest implementation waves and is stale. The interrupted Release build produced the Code OSS server payload but no promoted .app; no current package claim is made.

If work stops because of usage limits, resume from the numbered queue above. First fetch both upstream mains and re-read this managed block because other developers are merging concurrently. Preserve all issue history outside this block and append focused issue/PR results as they land.

Goal

Run unchanged VS Code OSS 1.137 as a native AppScene/WebScene application with its Node server and extension host, without Electron, Chromium, CEF, WKWebView/WebView, a browser process, or a C++ port. Reusable behavior belongs in AppScene or WebScene; vscode-demo owns only product configuration, evidence, and the unmerged integration branch.

This is the top-level native GitHub epic for all remaining integration-owned work.

Planning status — investigation gate complete

Four parallel audits completed before implementation resumed:

  1. all current AppScene/WebScene issues, PRs, coordination comments, release gates, desktop-capability decisions, and product surfaces;
  2. CSS/features/visual-tree/performance under [Epic] CSS features, compatibility, validation, and performance #235;
  3. webviews/iframes/Markdown and every unchanged nested-document consumer under [Epic] Qualify unchanged Code OSS webviews and nested document contexts #264;
  4. files/folders/workspaces/save/recovery under SceneTech/AppScene#122.

Every reproduced gap and required release surface now has one authoritative issue, repository owner, dependency position, proposed fix direction, browser/WPT/native/product evidence, numeric performance/lifecycle limits, and proposed PR-stack grouping. Duplicate ownership was explicitly rejected. The only cross-cutting overlap with special handling is #263/#236: #236 is the authoritative CSS capability source and #263 must ingest it with revision and denominator checks.

Current inventory:

Current exact inputs and coordination state

The exact AppScene/WebScene SDK archive from the current submodule inputs contains 2,859 verified files and passes producer, CLI install/verify/doctor, relocation, read-only, external-consumer, lifecycle, and integrity checks. It is not release-qualified because #237 currently fails on WebScene main. No .app is promoted from these heads.

Native hierarchy and ownership

Direct children of #227

CSS epic #235

Open owners remain #237#244, #44, #100, #112, and #246; #236 completed through PR #271. The completed audit added:

#236 dependency order zero completed through PR #271 at aa121fe. #237 coordinates with PR #245; Wave 1 #257 waits for that draft to reconcile. #238/#239/#240/#242 remain the sole owners of general cascade, CSSOM, layout, and animation work.

Webview epic #264

Ordered native children:

  1. Expose HTMLIFrameElement.sandbox for Code OSS webviews and Markdown Preview #253HTMLIFrameElement.sandbox IDL, live token list, enforcement, navigation, teardown.
  2. Complete ServiceWorker control and client lifecycle for Code OSS webviews #265 — ServiceWorker registration/control, Clients, controller lifecycle.
  3. Stream and cache admitted Code OSS webview resources #266 — Web Streams, CacheStorage, FetchEvent, admitted/ranged/cached resource broker.
  4. Enforce secure nested-document lifecycle for Code OSS webviews #267 — nested src/srcdoc/fake.html realms, open/write/close, origins, CSP, Permissions Policy, replacement, teardown.
  5. Complete nested-webview interaction, find, focus, and accessibility handoff #268 — find/Selection, focus/input, clipboard, links/downloads, reload, and accessibility handoff.

The exact first failure remains unchanged Code OSS calling iframe.sandbox.add(...) while WebScene exposes undefined. The deeper audit proves sandbox alone is insufficient: the unchanged prelude then requires ServiceWorker control, resource streaming/cache, secure nested-document lifecycle, and interaction behavior. Markdown Preview is the first fixture, not the scope boundary.

File/workspace epic SceneTech/AppScene#122

Native children are AppScene#123 (typed native panels/grants), AppScene#124 (owned-window navigation), and WebScene#269 (file model/save/revert/hot-exit recovery). Related WebScene owners remain #247, #248, and #252.

WebScene #247 is complete. The real remote dialog enumerated and accepted the isolated fixture; a ready-workbench sample reached visibility in 901.25 ms with 122 maximum dialog nodes. Exact Node 24.18.1 evidence retained BrowserHostService.openWindow call 1 with vscode-remote://127.0.0.1:64170/private/tmp/webscene-247-fixture/beta, folder kind, and all force-new/reuse/add flags false. No generic engine defect was found. AppScene#124 and #252 now own navigation and new-document workspace/provider/Explorer bootstrap.

Four-agent delivery schedule

No agent shares implementation files with another active lane. Before starting/rebasing and immediately before merging, each lane rescans open issues, PRs, and recent comments.

Wave 0 — current foundations

Agent lane Work Exit condition
Webview #253 Stack A: sandbox IDL/live token semantics → security/navigation/teardown → WPT/browser/native/Markdown proof Unchanged iframe creation passes with bounded teardown; focused cumulative top ready to merge
Files/workspaces Complete: #247 exact selected URI/openWindow handoff Exact target retained; #247 closed with Node 24.18.1 evidence and no engine defect
CSS/capability Complete: #236 schema/report/validator merged through PR #271 as aa121fe; no #245 structural file changed Native 32/32 and Chrome 25/32 with all seven failures retained; #263 consumes the versioned CSS slice and #245 can be requalified independently
Root/release harness #263 reachability ledger foundation plus #259 scenario/readiness/visual-manifest inventory; keep #227 and vscode-demo #1 synchronized All accepted scenarios and evidence denominators are machine-readable and compact

Wave 1 — unblock complete editor surfaces

Wave 2 — secure behavior, durability, and measured performance

Wave 3 — cumulative unchanged-product acceptance

Close only from exact package evidence:

Wave 4 — release production

SceneTech/AppScene#130 consumes one exact clean set of merged AppScene/WebScene heads and unchanged VS Code:

  1. build/install/relocate/read-only-qualify one SDK through the AppScene CLI;
  2. build, run, publish, sign, and verify the .app, ZIP, and DMG;
  3. enforce architecture/dependency/license/inventory, deep signature, archive round trip, zero-browser, feature-preserving size, peak disk, retained-artifact, and package-time budgets;
  4. run complete editor/workbench, visual, file/workspace/save, webview, terminal, workers/extensions, crypto/MCP, accessibility, CSS/performance/memory, reload/close/crash/SIGKILL/descendant-cleanup gates;
  5. promote only a fail-closed green package and retain compact checksummed evidence.

PR stacks and merge policy

  • Each issue body defines its proposed stack. Related dependent PRs use GitHub native stacks; validate the cumulative top and merge the stack atomically.
  • Merge a focused AppScene/WebScene fix as soon as its directly related local and runner gates pass. Cancel duplicate lower-layer, unrelated broad, superseded, and post-merge jobs.
  • Every generic fix needs a browser-oracle/WPT-derived regression, native contract, and bounded performance/allocation/lifecycle gate for the changed hot path.
  • AppScene Stream native application video directly from file and network URLs #65, WebScene Add Code OSS browser and native desktop compatibility #76, and vscode-demo Typescript #1 remain draft/open/unmerged. vscode-demo Actions remain disabled. Local vscode-demo commits remain unpushed.
  • No implementation, test, CI, SDK, or packaging logic may remain only on a consolidation branch; reusable behavior moves upstream first.

Release quality gates

Evidence must name exact source, SDK, WPT/browser, OS, font, locale, theme, DPR, hardware/runner, and package checksums. Reports expose pass/fail/skipped/unavailable/total denominators; missing or stale evidence fails closed.

Required gates include semantic/computed state, geometry, pixels, focus/accessibility, event order, security/origin/admission, affected cascade/layout/scene counters, wall time, allocations, queue high-water marks, publications/frames, idle CPU, peak/steady RSS, repeated-cycle live-count return, no memory slope, installed/relocated/read-only SDK consumers, supported release RIDs, feature-preserving size, bounded disk/artifacts, deep signing, lifecycle, and static/runtime absence of embedded browser technology.

Ownership

  • WebScene: V8, DOM/HTML, Web APIs, CSS/layout/paint, workers/ports, iframe/service-worker contexts, scene publication, and product-neutral performance contracts.
  • AppScene: SDK/CLI, native host/window lifecycle, panels/grants, native accessibility/desktop dispatch, packaging, signing, Companion lifecycle, and release production.
  • vscode-demo: unchanged-product configuration, deterministic fixtures, Chromium/AppScene comparison, final package evidence, and the open consolidation PR.

Focused issues close only from retained exact evidence. This epic and all three consolidation PRs remain open until the final installed-SDK Release matrix is green.

Active synchronization — 17 September 2026

#276/#278 and #285 are merged. #281 remains draft/open behind #288/#245; #266 is held until that control-plane top merges. Workspace contents pass. #287 fixes its direct FileReader gate locally but is product-insufficient. Exact #81 instrumentation proves the local iframe/Worker/transferred-port path and creates #289 for distinct remote protocol delays (transport→Ready 1,177 ms; Ready→Initialized 4,379 ms); Explorer output follows AgentHost connection by 99 ms. Dependency order is #289#280#252. #288 remains the separate #281 blocker. CSS #286 is the 33rd #235 child and remains isolated from #245.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    epicTracks a coordinated set of focused issuesvscode-oss/plannedPlanned for the AppScene/WebScene VS Code OSS integration

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions