Skip to content

Conversation

@jsantell
Copy link
Collaborator

@jsantell jsantell commented Dec 10, 2025

Summary by cubic

Runs the Runtime inside a Web Worker and wires the shell to it, moving recipe execution off the main thread and keeping the UI responsive. Introduces a cell proxy and duck-typed cells so existing reactive code keeps working.

  • New Features

    • Worker-based runtime with RuntimeWorker (main thread), worker script, and a typed IPC protocol.
    • RemoteCell (cell proxy) provides a cell-like interface across the worker; added CELL_MARKER and isCellLike for duck-typing.
    • Runner now exports ./worker and ./worker-script for integration.
    • Shell integrates the worker via RuntimeWorker and CharmHandle; added worker-friendly pattern factory helpers.
    • Worker emits console, navigate, and error events to the shell.
    • Identity.derive() accepts optional config to choose key implementation (used for Deno-friendly key serialization).
  • Migration

    • Prefer isCellLike over isCell in consumers; effect/render updated accordingly.
    • To adopt the worker: import RuntimeWorker from @commontools/runner/worker, await ready(), use getCellFromLink for RemoteCell, and dispose() when done.
    • UI changes: CharmController → CharmHandle; runtimeContext now provides RuntimeWorker and space DID.
    • Temporarily disabled features pending IPC: Favorites and ACL; one iframe counter test remains disabled; Outliner UI temporarily excluded.

Written for commit 9093dfd. Summary will update automatically on new commits.

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