With-AI path, macOS, ciris-client 0.5.209 + ciris-server 0.5.203 — run #34223901074, per-launch log ciris_desktop_setup.20260908T121405.log (the with-AI session; the login leg drives the same process).
The with-AI setup pass is green (ai_configuration, setup_complete, announce_bundle 3/3). Our login leg then finds the Login screen (the "Setup is complete. Your node restarted, so please log back in" variant), types the credentials, clicks Login — and the client authenticates:
[CIRISApiClient] [login] Login successful: userId=wa-root-qa-node-…, role=SYSTEM_ADMIN
[CIRISApp] [DEBUG][Screen.Setup] Rendering setup screen (hasAgent=true)
[StartupViewModel] [STARTUP][WAIT][26457ms] All 1 services already loaded, skipping wait
[StartupViewModel] [STARTUP][READY] Phase set to READY
[CIRISApp] Startup READY, checking first-run status...
[CIRISApp] [INFO][gate] clientMode=AGENT (role=agent, cognitive_state=work, services=9, folded=true, reachable=true)
[CIRISApp] Setup complete — holding reconfiguring state while the node restarts
[StartupViewModel] [STARTUP][STATUS] Restarting your node...
…and then stays on Login for the rest of the budget; /screen answers Login for 30 s and the screenshot shows the same screen with the credentials still filled. Nothing restarted: this is the agent on :8080, alive and in work, and the client's own gate line says so one line earlier.
So after a successful login the client falls back into the post-setup branch — "holding reconfiguring state while the node restarts" — which is the hand-off handling from #43 (0.5.209's ff8ffe0c4), applied to a session where run-without-AI was never recorded and the node never went away. On 0.5.208 this leg passed on macOS, and on this same run the identical leg passed on Windows, so it looks like state carried from the setup session into the login rather than a deterministic path — the login happens in the process that just completed setup, and something still says "setup just completed".
What I would expect: a successful login navigates to Interact (or Setup if first-run) regardless of what the previous screen's completion state was; the "node restarts" hold belongs only to a session that recorded the flag. Not prescribing the mechanism. Related: #43 (the two hand-off behaviours on the no-AI path); this is the with-AI path.
With-AI path, macOS, ciris-client 0.5.209 + ciris-server 0.5.203 — run #34223901074, per-launch log
ciris_desktop_setup.20260908T121405.log(the with-AI session; the login leg drives the same process).The with-AI setup pass is green (
ai_configuration,setup_complete,announce_bundle 3/3). Our login leg then finds the Login screen (the "Setup is complete. Your node restarted, so please log back in" variant), types the credentials, clicks Login — and the client authenticates:…and then stays on Login for the rest of the budget;
/screenanswersLoginfor 30 s and the screenshot shows the same screen with the credentials still filled. Nothing restarted: this is the agent on:8080, alive and inwork, and the client's own gate line says so one line earlier.So after a successful login the client falls back into the post-setup branch — "holding reconfiguring state while the node restarts" — which is the hand-off handling from #43 (0.5.209's
ff8ffe0c4), applied to a session where run-without-AI was never recorded and the node never went away. On 0.5.208 this leg passed on macOS, and on this same run the identical leg passed on Windows, so it looks like state carried from the setup session into the login rather than a deterministic path — the login happens in the process that just completed setup, and something still says "setup just completed".What I would expect: a successful login navigates to Interact (or Setup if first-run) regardless of what the previous screen's completion state was; the "node restarts" hold belongs only to a session that recorded the flag. Not prescribing the mechanism. Related: #43 (the two hand-off behaviours on the no-AI path); this is the with-AI path.