feat(FN-3067): polish onboarding disclosure UX, plugin slot fallback, and m

Merge brings FN-3067 UX revisions across onboarding components, including reduced ModelOnboardingModal complexity, new fallback styling for PluginSlot, and polish to OnboardingDisclosure, OnboardingResumeCard, and PostOnboardingRecommendations with minor updates to PlanningModeModal and SettingsModa

Fusion-Task-Id: FN-3067
This commit is contained in:
Fusion
2026-05-02 21:11:35 -07:00
committed by gsxdsm
parent 2ff8fd1af8
commit 4f897d1a46
11 changed files with 84 additions and 73 deletions

View File

@@ -9470,17 +9470,22 @@ Task with acceptance criteria
it("cache is updated when polling is active even without fs.watch", async () => {
// Start watching which enables polling
await store.watch();
const task = await createTestTask();
// Verify the cache was updated (internal detail: the isWatching getter)
// Move the task and verify the event fires correctly (not duplicated by poll)
const movedEvents: any[] = [];
store.on("task:moved", (data: any) => movedEvents.push(data));
await store.moveTask(task.id, "todo");
try {
const task = await createTestTask();
expect(movedEvents).toHaveLength(1);
expect(movedEvents[0].from).toBe("triage");
expect(movedEvents[0].to).toBe("todo");
// Verify the cache was updated (internal detail: the isWatching getter)
// Move the task and verify the event fires correctly (not duplicated by poll)
const movedEvents: any[] = [];
store.on("task:moved", (data: any) => movedEvents.push(data));
await store.moveTask(task.id, "todo");
expect(movedEvents).toHaveLength(1);
expect(movedEvents[0].from).toBe("triage");
expect(movedEvents[0].to).toBe("todo");
} finally {
store.stopWatching();
}
});
});