feat(FN-980): add mission autopilot for autonomous slice progression
- Add MissionAutopilot class with state machine (inactive → watching → activating → completing) - Add autopilot database schema: autopilotEnabled, autopilotState, lastAutopilotActivityAt columns - Integrate autopilot with scheduler: handleTaskCompletion() triggers slice activation - Add API routes: GET/PATCH /missions/:id/autopilot, POST start/stop endpoints - Add autopilot toggle UI in MissionManager dashboard component - Add retry logic with exponential backoff (up to 3 attempts) for slice activation - Add background poll (60s) to detect stale autopilot missions - Include changeset for @gsxdsm/fusion minor bump
This commit is contained in:
@@ -40,6 +40,16 @@ export interface ServerOptions {
|
||||
automationStore?: AutomationStore;
|
||||
/** Optional AiSessionStore — if not provided, one is created from the default store's database */
|
||||
aiSessionStore?: AiSessionStore;
|
||||
/** Optional MissionAutopilot for autonomous mission progression */
|
||||
missionAutopilot?: {
|
||||
watchMission(missionId: string): void;
|
||||
unwatchMission(missionId: string): void;
|
||||
isWatching(missionId: string): boolean;
|
||||
getAutopilotStatus(missionId: string): import("@fusion/core").AutopilotStatus;
|
||||
checkAndStartMission(missionId: string): Promise<void>;
|
||||
start(): void;
|
||||
stop(): void;
|
||||
};
|
||||
}
|
||||
|
||||
type DashboardExpressApp = ReturnType<typeof express> & {
|
||||
|
||||
Reference in New Issue
Block a user