Skip to content

Add native documents, compiled UI, and relocatable WebScene SDK - #64

Merged
danwalmsley merged 475 commits into
mainfrom
codex/native-web-first
Sep 11, 2026
Merged

danwalmsley merged 475 commits into
mainfrom
codex/native-web-first

Conversation

@danwalmsley

@danwalmsley danwalmsley commented Sep 11, 2026

Copy link
Copy Markdown
Collaborator

Native applications can now use WebScene documents, events, styles, templates and Canvas directly from C++, compile HTML/CSS into application-owned C++ modules, and optionally link the same reusable JavaScript runtime. This provides the WebScene side of the AppScene SDK preview without rebuilding a runtime for each application.

  • Add the native document/compiler foundation, typed and shared CSS integration, optional host adapters, and Kestrel compiler/interaction fixtures.
  • Register compiled packages per engine with owned load snapshots, preserve shared-engine compatibility, and expose a synchronously detachable host work observer.
  • Install independent WebScene::Core, NativeWeb, Runtime, WebGPU, and Compiler CMake targets, complete public header dependencies, application build/package helpers, and headless SDK consumers.
  • Correct the interop ABI test to distinguish independently versioned hosting/file APIs, and await asynchronous visibility changes in the runtime tests.

Built on the now-merged WebGPU foundation #43. This branch also contains all commits from #60, including file services, startup viewport and SVG fixes, so #60 is subsumed by this PR.

Validation: 116 native compiler tests, 22 native document/compiler integration tests, 20 existing runtime/graphics tests, 18 TypeScript/tooling tests, 25 architecture/export tests, and repeated visibility contracts passed locally. The paired SDK built every standalone AppScene sample and both JavaScript configurations from a relocated, read-only installation with producer/source access denied. Independent hybrid builds ran concurrently; incremental asset/CSS/worker/module checks, runtime ownership tests, real Metal presentation/teardown and Kestrel smoke/parity passed. The final AppScene canvas resize fix was also verified interactively.

The binary SDK profile is a macOS ARM64 preview requiring macOS 26+ and LLVM 22.1.1. Additional desktop capabilities and a complete native C++ Kestrel remain outside this preview. A fresh full dependency rebuild and remote SDK workflow execution remain release qualification steps.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant