From Save to runtime
Save updates local source. Build checks saved files and delivers a version. Start / Debug begins execution.
| Operation | Behavior |
|---|---|
| Design | Displays pages and supports layout editing and local interaction, without Object or Query calls |
| Save | Updates local project files, without changing the deployed version |
| Build | Builds saved files and Deploys to the selected target, without starting execution |
| Start / Debug | Creates a fresh instance from the deployed version; Object methods are admitted only after Init completes |
| Stop | Cancels and drains calls, runs Dispose, closes Providers, and releases resources; keeps deployment and persistent data |
Edit and Save → Build → Stopped → Start / Debug → Running / Debugging → Stop → Stopped
Design has no Runtime lifecycle or deployment dependency. Hold Alt in Editor Design to interact with local controls. Object methods return explicit typed design values and Queries return a non-executed result. Design does not log skipped calls. Preview supports page interaction; real calls reject in Stopped and log errors to Console, and are allowed after Run / Debug initialization completes. Design values do not prove business execution succeeded.
Runtime states
| State | Meaning |
|---|---|
| Stopped | No runtime instance; deployment and persistent state remain, Object calls are rejected |
| Starting | Creating the instance and executing Init |
| Running / Debugging | Init completed; Object methods and scans can execute |
| Stopping | Cancelling, draining, and releasing this run's resources |
| Faulted | Cleanup failed or timed out; restart Runtime target before another run |
An Object, QG, or lifecycle exception unhandled by QG try/catch, or an unrecoverable low-level fault, ends the run and cancels its concurrent calls. Logs preserve the original fault; a live event reports it once. Successful cleanup returns to Stopped. Cleanup failure or the ten-second cleanup deadline enters Faulted, without an endless busy indicator or automatic retries. Start, Debug, and Deploy are blocked in Faulted.
Every Start / Debug creates new Object instances and runs Init. Instance memory, including QG top-level let, is destroyed at Stop. Explicitly persist values that must survive runs. Stop does not delete saved data or the project StateRoot.
Deploy replaces the version in Stopped. Deployment over an active run requires a confirmed Stop and successful cleanup first. There are no separate Load / Unload operations.
When to Build again
After changing a Page, Component, QG program, Object, data, or configuration, Save and Build again before Start / Debug acceptance. Design uses source source; runtime Pages use only the delivered version. Run / Debug never Builds or Deploys implicitly.