25 lines · 1.6 KB · Markdown
RawDownload

Mobile development lifecycle

The connection runtime's HMR boundary keeps a stable atom runtime and replaces its Effect layer through a writable atom. It accepts the update only after installing the new layer. Otherwise importers retain the old behavior even though Metro reports a successful refresh.

Do not reset the shared atom registry to refresh a connection-runtime edit. Reset removes listeners from mounted consumers that Metro has no reason to rerender. When the registry or managed-runtime module itself changes, normal Metro propagation disposes its old resources. This boundary does not make arbitrary module-level atom families safe to hot-swap. Production uses an ordinary atom runtime.

Environment supervisor scopes are children of the registry scope. The per-environment map supports targeted shutdown, but a supervisor created after its cleanup runs would escape it. A closed parent scope also closes late arrivals, preventing interrupted startup or runtime replacement from leaving a WebSocket alive outside the new registry.

The Uniwind patch still compiles CSS on Metro updates so newly used classes are discovered. It skips global style invalidation only when the generated stylesheet and theme list are unchanged. Skipping compilation would lose new classes; invalidating every consumer for unchanged output makes an ordinary component edit refresh the whole app. The fingerprint is recorded only after initialization succeeds.

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t