Keep MissionManager mission interview state and detail rendering in sync while stabilizing the failing test coverage.
- reload assertion-linked feature data when mission details or milestone panels load
- keep selected mission detail state synchronized after mission update events instead of forcing a full mission reload
- hide the sidebar edit form while the selected mission is already being edited in the detail pane
- add a non-destructive Send to background action for resume-launched mission interview modals
- tighten MissionManager tests to target the detail pane and slice-scoped controls that now render alongside sidebar content
Files changed:
docs/missions.md | 2 +-
.../app/components/MissionInterviewModal.tsx | 30 ++++++++
.../dashboard/app/components/MissionManager.tsx | 77 +++++++++++--------
.../components/__tests__/MissionManager.test.tsx | 88 +++++++++++++++-------
4 files changed, 137 insertions(+), 60 deletions(-)
Fusion-Task-Id: FN-5895
Fusion-Task-Lineage: d018a945-33a7-4471-9636-35bc36dc88a9
Keep mission interview drafts recoverable when closing and refreshing Missions.
- make MissionInterviewModal use a single non-destructive close path for header, Escape, and backdrop actions
- refresh mission interview draft/session rows on mission and ai-session SSE updates and reconnects
- open Plan New Mission as a fresh interview instead of always resuming the last session, with regression coverage and docs updates
Files changed:
docs/missions.md | 2 +-
.../app/components/MissionInterviewModal.tsx | 89 +++-----
.../dashboard/app/components/MissionManager.tsx | 156 ++++++++++----
.../__tests__/MissionInterviewModal.test.tsx | 100 ++++++++-
.../components/__tests__/MissionManager.test.tsx | 224 +++++++++++++++++++++
5 files changed, 455 insertions(+), 116 deletions(-)
Fusion-Task-Id: FN-5882
Fusion-Task-Lineage: 75de9e94-edef-4564-a266-91782e60c2ac
Improve Mission Manager run-state UX by separating mission run controls from autopilot behavior.
- Group mission run settings in the detail view and add explicit Start mission / Stop mission / Resume mission buttons with contextual helper text.
- Humanize autopilot state labels (Off, Watching, Activating slice, Completing) and add explanatory autopilot description copy.
- Update Mission Manager styling to support the new run-settings layout and helper text blocks in list/detail views.
- Extend MissionManager tests to verify labeled run controls, endpoint wiring for start/stop/resume, and humanized autopilot badge labels.
- Update mission docs to clarify the distinction between mission run-state controls and the autopilot toggle.
Files changed:
docs/missions.md | 2 +-
packages/dashboard/app/components/MissionManager.css | 62 ++++-
packages/dashboard/app/components/MissionManager.tsx | 272 +++++++++++++--------
packages/dashboard/app/components/__tests__/MissionManager.test.tsx | 107 +++++++-
4 files changed, 330 insertions(+), 113 deletions(-)
Fusion-Task-Id: FN-5681
Fusion-Task-Lineage: 0dcac659-2eff-435b-a176-b66e7646b054
Enable mission target branch to be viewed and updated from the mission edit form.
- Add `baseBranch` to mission form state and initialize it when opening edit mode.
- Include trimmed `baseBranch` in mission PATCH updates.
- Add target branch input to both MissionManager edit form render paths.
- Add MissionManager tests for pre-filling and saving edited target branch values.
Files changed:
.../dashboard/app/components/MissionManager.tsx | 24 ++++++++
.../components/__tests__/MissionManager.test.tsx | 66 ++++++++++++++++++++++
2 files changed, 90 insertions(+)
Fusion-Task-Id: FN-5665
Fusion-Task-Lineage: b25cf171-b681-4dd8-b5f4-70f0e8714774
Adds two new integration/end-to-end test suites for the review-tab create-PR flow (FN-5169) alongside targeted test fixes and a small CSS fix to anchor the TaskCard footer chip cluster. Minor updates to agents-view mobile tests and token stats panel coverage also included.
Fusion-Task-Id: FN-5169
The previous commit collapsed both header spans into a single isMobile-
conditional render, but that broke 3 desktop-header tests that
intentionally assert on both spans being present (the CSS handles
visibility). The real fix for the "Found multiple elements" failures
was the localStorage.clear() in beforeEach; the structural change was
unnecessary. Restore the original dual-render markup.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The header rendered both a "Missions" desktop span AND a mobile span
containing the selected mission title simultaneously, relying on CSS to
hide the inactive variant. jsdom doesn't apply media queries, so
testing-library's getByText found the mission title in both the body
cards and the otherwise-hidden mobile header — failing 49 tests with
"Found multiple elements with the text: <title>". Render only the
active variant based on isMobile.
Also clear localStorage in beforeEach so the SWR mission cache from
prior tests doesn't pre-hydrate into the next render and surface its
own fixtures as duplicates.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
When fetchMissions returns a non-array (envelope shape, error path, or
mocked detail object) setMissions(data) leaks the bad shape into render,
where missions.filter() throws "is not a function" and crashes the
entire MissionManager test file. Coerce to [] before storing, matching
the existing defenses on the useState init and cache-hydration paths.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Make mission and interview list rows keyboard-reachable buttons with descriptive aria labels
- Handle Enter and Space activation while preventing nested control bubbling from triggering row actions
- Replace targeted MissionManager sizing literals with design tokens and add regression coverage for tokenized CSS
Fixes UX review feedback for the MissionManager drafts feature, refactoring the component logic and updating corresponding tests. Minor CSS adjustments for the updated UI.
Fusion-Task-Id: FN-4124
- Add dashboard API routes and mission interview store support to list and inspect draft missions
- Update Mission Manager UI to surface draft interview sessions with styling and regression coverage
- Extend CLI mission commands and extension tools to expose draft listings consistently
- Document the draft surfacing behavior and include a changeset for the published CLI package
Fusion-Task-Id: FN-4124
Implements swipe-back gesture support for mobile navigation across ChatView, MissionManager, and PlanningModeModal, wired through a shared navigation history context and covered by a comprehensive test suite (~548 lines of swipe-back tests). A small fixup ensures swipe-back behaves correctly when la
Fusion-Task-Id: FN-4139
Added interview session visibility on task resume in MissionManager, with comprehensive test coverage for the resume-session interview behavior.
Fusion-Task-Id: FN-4064
Fixed mission resume behavior in MissionManager by repairing the interview resume latch and added tests covering the feature, with a one-line documentation update to clarify resume discoverability.
Fusion-Task-Id: FN-4038
Made interview-stage missions visible in the mission list (MissionManager) and documented the behavior in the missions reference. Tests added for the new visibility logic.
Fusion-Task-Id: FN-3975
Scoped mission interview persistence is restored, enabling resume functionality within mission interview flows, with corresponding test coverage and documentation. The implementation touches MissionManager, mission-interview routing, and plugin view registration, with the bulk of changes in tests an
Fusion-Task-Id: FN-3954
Aligned GitHub tracking resolution to resolve task-level overrides, with regression tests covering the create-flow path and documentation of the override semantics.
Fusion-Task-Id: FN-3943
Refactored the MissionManager CTA for desktop by moving it to the sidebar footer and aligning its sizing contract, with corresponding test updates and docs refresh.
Fusion-Task-Id: FN-3915
Merged FN-3597 feature branch adds two-step protection against malformed columns in the board and list views: Step 1 normalizes malformed column data at the core level, and Step 2 hardens the Board and ListView grouping logic to gracefully handle edge cases. The changeset covers test isolation impro
Fusion-Task-Id: FN-3597
Fusion-Task-Id: FN-3607
This merge lands eval score categorization and evaluator hardening in core/engine, mobile mission CTA improvements with documented behavior, reply-link threading documentation, and a test-isolation fix that tolerates runtime noise on shared HOME directories. Dashboard components affected include Mai
Fusion-Task-Id: FN-3601
- Promote the sidebar "Plan New Mission" CTA to a btn-primary (matching the
chat sidebar's "New Chat") and drop the dashed icon buttons; full-width
progress bar and Activity row each get their own line in the card.
- Auto-select the first mission in the inline desktop view so users land
in detail rather than the empty placeholder. Skipped in mobile and the
standalone modal so existing flows and unit tests stay intact.
- Replace the bare "No missions yet" line with a richer empty state that
explains what missions are and offers an inline Plan New Mission CTA.
- Guard loadMissionDetail against malformed responses (missing milestones)
so racing fetch fallbacks don't crash the detail render.
- Update three MissionManager tests to match the new copy/structure.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Stack mission cards vertically inside the sidebar so the title gets
the full card width; action buttons drop to their own row below.
- Move the Activity timestamp out of the cramped stats row onto its
own line.
- Replace the icon-only Sparkles button in the sidebar header with a
full-width centered "Plan New Mission" button (icon + text). Mobile
footer button uses the same label.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Make the mission split sidebar drag-resizable (220–560px, persisted) so
long mission titles aren't trapped behind a fixed-width column.
- Move card tags (autopilot/health/status) to a row below the title and
drop the overflowing "Active: …" line.
- Collapse mission creation to a single AI-driven entry point: rename
Sparkles to "Create New Mission" and remove the manual "+" button.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This merge adds test coverage for the two-panel split layout (FN-3135) with desktop and mobile CSS tests, restores Claude usage tracking from Fusion's Anthropic auth storage (FN-3289) in the usage module, and adds mobile auto-routing to the Planning Mode component for empty sessions (FN-3269).
Fusion-Task-Id: FN-3135
This merge adds a standalone bottom-gap CSS token for PWA mobile compatibility, implements a responsive back button that hides on desktop and restores on mobile, refactors the test-changed script for improved workflow testing, and expands the test suite with new CI workflow tests and mobile CSS cont
Fusion-Task-Id: FN-3133
Merged branch adds the new AgentsOverviewBar component with accompanying test coverage, fixes CSS token issues across MissionManager and sidebar typography (including resolving undefined surface-hover token fallback), and updates agents layout documentation. Also adds test coverage for the insights
Fusion-Task-Id: FN-3132