fix: handle Astro managed background reader startup - #97
Conversation
timeleft--
left a comment
There was a problem hiding this comment.
Independent exact-head review of 9a09877 against d58f861: no actionable finding in this bounded lifecycle repair. Successful background starter exit now continues HTTP readiness checking; nonzero startup/later exit and readiness timeout remain failures, and attached-server cleanup is preserved.
Independently ran the complete frozen suite: 847 tests passed in 87.13s, including six lifecycle regressions and installed-package checks, in an isolated Python3.14.3 environment. Changed-file Ruff and diff checks pass; current GitHub required checks are all green. The author's real Astro startup/status/stop and invalid-config evidence was inspected separately; those runtime probes were author-run, not rerun by this reviewer.
Accepted for integration on native independent review evidence. This COMMENT is not a separate GitHub approval. No canonical data or live private reader state was changed during review. The five real operator sessions and continue/revise/stop decision remain open.
Astro 7 can start a managed background server in an agent environment and exit its starter successfully.
fava-trails rich-view servepreviously treated that exit as a startup failure even while the reader was available. It now waits for HTTP readiness after an exit of zero, reports Astro's supported status/stop commands, and preserves foreground Ctrl-C cleanup. Nonzero startup or later process failure and readiness timeout still return failure.Validation: the frozen Python suite passes 847 tests, including six focused lifecycle regressions. A fresh synthetic Astro reader started on loopback, returned HTTP 200, and stopped through
astro dev stop; status correctly reported both running and stopped states. A separate invalid Astro configuration returned CLI exit 1. Ruff andgit diff --checkpass.This follows the private reader acceptance in issue #54. The five real operator sessions and the continue/revise/stop decision remain open. No canonical trail records or global runtime configuration are changed by this PR.