Zero targets is the first screen after install, and it offered no way to
scan. Start scan opened the launch dialog in custom mode with nothing
selected, because a new project has no engines.
The empty dashboard is now the launcher: one field, the configuration
select, Start scan. It validates through targetsApi.validate and launches
with target_values, so the target is created at launch. Below it, the one
line the wizard cannot assert, worker and check library state, which
expands into cells only when something needs a person.
While the first scan runs, the same card reports it in place: the running
stage, the stage strip, and the five surface dimensions filling as they
land. A dimension no planned stage produces reads "not in plan" rather
than claiming to be queued.
first_run is instance wide and false once any scan has completed, so a
second project gets the launcher alone.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W4aVRxnvv65nBvUd5Mw3Y4