Skip to content

Add framework integrations and demos for @bomb.sh/dom - #15

Open
cowboyd wants to merge 1 commit into
dom-spikefrom
dom-integrations
Open

cowboyd wants to merge 1 commit into
dom-spikefrom
dom-integrations

Conversation

@cowboyd

@cowboyd cowboyd commented Oct 21, 2026 •

Copy link
Copy Markdown

What does this PR do?

Add framework integrations, demos and acceptance tests on top of the @bomb.sh/dom core layer. Framework dependencies and support code live in separate example packages, with JSX configuration local to each example.

  • Exercise actual Preact 11 rendering, asynchronous updates across documents, keyed identity, refs, events, cross-document portals and cleanup.
  • Add React reconciler, Solid universal-renderer and Crank generic-renderer adapters over the same DOM tree.
  • Add real Lit/custom-element and Svelte compiler/client-runtime fixtures using persistent document-specific Node VM contexts.
  • Add framework documentation, capability coverage, workspace commands and lockfile entries.

This layer changes no DOM implementation or core tests. It is stacked on the core PR using native GitHub Stacks.

Scope and limitations

These are tested example integrations, not complete browser-renderer compatibility. Lit and Svelte load separately bundled browser runtimes inside persistent Node VM contexts; ordinary fully typed browser imports remain unproven. Each context keeps asynchronous work associated with its document without swapping process globals.

Hydration, broader framework APIs and richer namespace/property support remain unfinished. Framework support is not exported by @bomb.sh/dom.

Validation

Revalidated after rebasing onto the expanded interactive-controls core:

  • Frozen-lockfile offline installation succeeded.
  • All 21 framework tests passed: Preact 8, React 3, Solid 2, Lit 4, Svelte 2, Crank 2. The base layer separately passes 335 core and 11 existing workspace tests.
  • All seven framework/support example packages passed TypeScript checking; the core ESM/declaration build passed.
  • All tracked files passed formatting. The whole-workspace formatter flags an existing ignored local .claude/settings.local.json, left unchanged.
  • Workspace lint passed with 78 existing warnings.

Type of change

  • Bug fix
  • Feature
  • Refactor (no behavior change)
  • Documentation
  • Performance improvement
  • Tests
  • Chore (dependencies, CI, tooling)

Checklist

  • All tests pass (pnpm test)
  • Files are formatted (pnpm format)
  • I have added/updated tests for my changes (if applicable)
  • I have added a changeset

AI-generated code disclosure

  • This PR includes AI-generated code

@cowboyd
cowboyd added this pull request to stack #16 October 21, 2026 20:24
@socket-security

socket-security Bot commented Oct 21, 2026 •

Copy link
Copy Markdown

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