DEVELOPMENT / HOT MODULE RELOAD

Hot reload across targets

Keep dowe dev running while Dowe rebuilds changed views and publishes the latest valid module to each selected development target.

1 / AUTOMATIC IN DEVELOPMENT

Save source and let the active session update

HMR starts automatically for supported targets selected by dowe dev. There is no application-level HMR import, configuration file, or JavaScript development server to add.

dowe
dowe dev --target web
dowe dev --target desktop
dowe dev --target android
dowe dev --target ios
Phase
Responsibility
Behavior

No data

There are no records to display

2 / TARGET BEHAVIOR

Keep the renderer native to each platform

HMR changes development delivery, not the rendering model. Dowe does not execute authored source in the browser or replace native views with a WebView.

Target
Update strategy
Details

No data

There are no records to display

3 / STATE AND RECOVERY

Keep the last valid experience active

Dowe preserves useful development context when the new module remains compatible and avoids replacing a working module with incomplete output.

State
What happens

No data

There are no records to display

Native module updates publish only after all generated target sources compile. If iOS compilation fails, the simulator keeps the last valid module and the next save can retry the build.

Server changes use a successful backend restart rather than view HMR. Production builds do not include the HMR client, module server, or .dowe/dev dependency.

4 / CURRENT PERFORMANCE

Rebuild only what the session needs

The first compile fills a development-session cache. Later page and layout saves reuse unchanged modules, while iOS keeps the complete dynamic Icon catalog in bounded Swift shards outside the shared route index.

A save with identical generated output emits no browser update. Shared components, Stores, types, theme, i18n, environment, icons, deletes, and unknown paths keep a conservative invalidation path.

Review watch behavior