feat(FN-1454): improve mission autopilot and stale recovery

- Unify slice activation and auto-triage semantics for mission progression
- Align engine progression with stale recovery logic for active missions
- Fix scheduler delegation check to use feature.missionId instead of deprecated field
- Add integration tests for stale mission recovery scenarios
- Fix mission API recovery gaps for active missions (activate on first non-done slice)
- Update README.md autopilot documentation section
This commit is contained in:
gsxdsm
2026-04-09 18:10:29 -07:00
parent 7d599a5387
commit b682898caf
7 changed files with 395 additions and 101 deletions

View File

@@ -456,13 +456,15 @@ Status flows automatically: when features are linked to tasks and completed, sli
Enable **autopilot** to let Fusion progress a mission with less manual intervention.
- `autoAdvance` — Existing behavior: activate the next pending slice when the current slice completes
- `autopilotEnabled` — Enable active monitoring and progression orchestration for a mission
- `autopilotEnabled` — Primary control to enable active monitoring and progression orchestration for a mission
- `autoAdvance` — Legacy compatibility field (deprecated); autopilot uses `autopilotEnabled` as the canonical control
When autopilot is enabled, the runtime tracks task completions and advances mission state through:
`inactive → watching → activating → completing`
**Recovery behavior:** When autopilot is enabled and re-engaged (via `/resume`, PATCH `/autopilot`, or POST `/autopilot/start`), the system automatically calls `recoverStaleMission` to reconcile any inconsistent state (defined features without tasks, stale feature status, etc.) and progress if possible.
Autopilot API endpoints:
- `GET /api/missions/:missionId/autopilot`