2.4 KiB
id, title, status, wave, depends_on, plan, requirements, acceptance_criteria, system_design
| id | title | status | wave | depends_on | plan | requirements | acceptance_criteria | system_design | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 01-lifecycle | Startup lifecycle | done | 1 | plan.md |
|
|
|
Startup lifecycle
Scope
Early bootstrap ownership, phase reporting, cancellation, backup ordering, and launcher diagnostics.
Exclusions
No backup mechanism replacement, registry conversion, retention redesign, or publication.
Acceptance
- Meet the referenced lifecycle criteria with isolated regression evidence.
- Preserve health identity, timeout overrides, and required persistence gates.
- Record exact verification results and measurement limitations.
Files likely touched
apps/backend/internal/backendapp, internal/persistence, internal/launcher,
internal/db, task repository measurement tests, and owning/public documentation.
Verification
Use the corresponding commands in plan, from their stated directories.
Dependencies
None.
Parallelism
Sequential. No delegation.
Risks
See plan and system design for cancellation and retry retention constraints.
Results
Implemented and tested the lifecycle changes. The bootstrap listener now binds
before database opening, backup, migrations, service initialization, and
session recovery. /health is live during initialization, /ready reports a
typed phase with elapsed measurements, cancellation closes listeners while
initialization drains, and the launcher reports the last phase on early exit.
The backend lifecycle and launcher race suites passed. Backup failure remains before migrations, canceled persistence does not start backup work, and restore quiescing cancels workers without ending the process lifetime before the restore result is delivered. Repository startup checks cancellation at schema and store admission boundaries; task migrations pass cancellation into their data statements and table rebuilds. An in-flight database statement can still finish according to the driver's cancellation semantics, and cleanup waits for the synchronous initializer to return.