## Summary
Task cards now remove the overseer eye as soon as their workflow's
effective oversight becomes `off`, instead of reusing an active value
cached before the setting changed.
The invalidation covers card remounts as well as mounted cards, and
authoritative writes from the dashboard, agents, and configuration
rollback reach the board through the existing project-scoped SSE stream.
Older in-flight responses cannot restore the eye after a newer `off`
value wins, while unrelated workflow-setting saves leave active
indicators undisturbed.
## Validation
- 99 focused dashboard regression tests passed across selected and
aggregate cards, desktop and mobile, SSE delivery, and out-of-order
responses
- Core and dashboard typechecks passed
- `pnpm lint` and `pnpm check:changesets` passed
- `pnpm verify:fast` passed production builds and the CLI/server boot
smoke
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **Bug Fixes**
- Planner-overseer eye badges now disappear immediately when workflow
oversight is turned off.
- Prevented stale or out-of-order updates from displaying incorrect
oversight status.
- Oversight indicators now remain hidden when the effective setting
cannot be confirmed.
- Live workflow setting changes now update task cards without requiring
a page refresh.
- **Documentation**
- Clarified eye badge visibility rules, tooltip meaning, and active
oversight states in the dashboard guide.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
## Summary
- Extend shared TaskDetailModal lucide mock for FN-8286
ArtifactsGallery/TaskReviewTab icons.
- Update schema-applier bookkeeping for FN-8295 ideation (93 project
tables, version 0022).
- Seed historical 0000 upgrade fixtures with missions/mission_features
stubs so ideation FKs apply after ownership rewrite.
## Test plan
- [x] TaskDetail modal suites + mock-coverage green locally
- [x] Full schema-applier suite (59 tests) green locally
- [ ] Full Suite all 4 shards green on main after merge
Restore persisted Planning Mode sessions without starting a new generation.
- Limit automatic retries to generations started by the current mounted UI
- Render saved questions, summaries, thinking, and errors with manual retry after reload or resume
- Cover desktop, mobile, stream, and polling recovery paths and document the behavior
- Add a patch changeset for the published package
Files changed:
.changeset/fn-8332-planning-reload-resume.md | 7 +
docs/dashboard-guide.md | 4 +-
.../dashboard/app/components/PlanningModeModal.tsx | 36 ++++-
.../PlanningModeModal.planning-flow.test.tsx | 175 +++++++++++++++++----
4 files changed, 180 insertions(+), 42 deletions(-)
Fusion-Task-Id: FN-8332
Fusion-Task-Lineage: 6b128dc3-a091-4e81-bc6a-9c541d8e4cf5
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
## Summary
- Index `embeddedPostgresMaxConnections` in Settings search
(backups-global).
- Export `withProjectId` + `api` from `CommandCenterControls` legacy
mock so FN-8284 portability card can mount under the controls suite.
## Test plan
- [x] CommandCenterControls + settings-search-index tests green locally
- [ ] Full Suite all 4 shards green on main after merge
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **New Features**
* Added the embedded PostgreSQL maximum connections setting to Settings
search, with relevant labels, help text, and keywords.
* **Tests**
* Improved test coverage setup for controls that use project-specific
API paths.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
## Summary
- Align heartbeat `customTools` expectations with FN-8294 mission
hierarchy tools (43→58).
- Refresh `COORDINATION_EXEMPT_TOOLS` snapshot for `fn_mission_list` /
`fn_mission_show`.
- Backfill `commandCenter.portability.*` for non-en locales and map
`reportMode` / `reportModeByAction` / `embeddedPostgresMaxConnections`
into settings default-description inventory with i18n help text.
- Realign FN-8064 skip-narration unit test with store-owned proactive
chat (no tool-side `appendAgentLog`).
- Quarantine load-sensitive `async-quality-store.pg.test.ts` (5s timeout
+ leftover psql under full-suite shard load; run 29657633544).
## Test plan
- [x] `pnpm --filter @fusion/engine exec vitest run`
gating-classifications + executor-prompt + heartbeat expected-tools case
- [x] `pnpm --filter @fusion/i18n exec vitest run` i18n-gate-coverage +
parity
- [x] `pnpm --filter @fusion/dashboard exec vitest run`
settings-default-descriptions
- [ ] Full Suite all 4 shards green on main after merge
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **Settings**
* Added clearer, localized help text for report modes and per-action
overrides, including inheritance behavior.
* Added advanced embedded database connection-limit settings and
validation guidance.
* **Localization**
* Expanded translations for report settings, database tuning, and
organization configuration import/export workflows across supported
languages.
* **Tests & Maintenance**
* Updated test coverage and expectations for expanded tools and
reporting behavior.
* Quarantined a flaky database-related test.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Protect localized Quick Add Save labels across Board and List composer widths.
- Add production-CSS smoke fixtures for every supported Save translation and composer state.
- Include all five production icon controls, including Session Advisor, in fixture coverage.
- Compact the desktop action-row gap so the full control set fits a 300px Board column.
Files changed:
.../__tests__/browser-layout-smoke-fixture.test.ts | 15 +++
.../dashboard/app/components/QuickEntryBox.css | 9 +-
.../dashboard/scripts/browser-layout-smoke.mjs | 109 ++++++++++++++++++++-
3 files changed, 131 insertions(+), 2 deletions(-)
Fusion-Task-Id: FN-8299
Fusion-Task-Lineage: 46befb8a-2af4-496c-85c2-69942ab0ea73
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
Make JavaScript the sole authority for mobile Kanban pan settlement.
- Suspend native proximity snapping while a user pan settles, then restore its inline baseline.
- Restore snapping after wheels with no horizontal scroll as well as pointer and touch completion.
- Document the unified magnetism behavior and cover restoration paths with hook tests.
Files changed:
.changeset/fn-8276-unify-board-magnetism.md | 7 +++
docs/dashboard-guide.md | 3 +-
.../hooks/__tests__/useColumnScrollSnap.test.ts | 53 +++++++++++++++--
.../dashboard/app/hooks/useColumnScrollSnap.ts | 66 ++++++++++++++++++++--
4 files changed, 119 insertions(+), 10 deletions(-)
Fusion-Task-Id: FN-8276
Fusion-Task-Lineage: 1ff3ae24-51e8-4c4f-aa5a-7a7b7c84d37c
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
## Summary
- Full Suite after FN-8271 restore turned red again
([29648952207](https://github.com/Runfusion/Fusion/actions/runs/29648952207)):
- **shard 4**: `mcp-lock-retry` / `task-lock-retry` 5s timeouts under
package-lane load
- **shard 3**: planning “never acquires a tab lock…” —
`respondToPlanning` never called after Small/Continue
- Re-quarantine the two CLI lock-retry files in ledger +
`packages/cli/vitest.config.ts` (no timeout appeasement).
- Planning tab-lock test: select Small via radio role, wait for checked,
longer `waitFor` on respond.
## Test plan
- [x] lockstep-cli-quarantine
- [x] planning tab-lock interaction test
- [ ] Full Suite all 4 shards green on main
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **Bug Fixes**
* Improved the reliability of the dashboard planning flow by using more
precise controls and bounded waits during automated interactions.
* **Tests**
* Quarantined two intermittently timing-out CLI integration tests to
reduce full-suite instability.
* Documented the quarantine reasons and tracking details for the
affected tests.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
## Summary
- Full Suite
[29646721723](https://github.com/Runfusion/Fusion/actions/runs/29646721723)
shard 3: multi-select Other-only timed out on `planning-other-input`.
- Wait for Other checkbox `toBeChecked()`, then `findByTestId`; apply
same settle to remaining Other paths.
## Test plan
- [x] Other-only multi/single-select + clear/confirm/checkpoint Other
tests
- [ ] Full Suite all 4 shards green on main
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **Tests**
* Improved planning-flow test reliability by waiting for “Other” inputs
and selections to be ready before interacting with them.
* Updated assertions to account for UI state settling during
multi-select and confirmation flows.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
## Summary
- Full Suite
[29645564540](https://github.com/Runfusion/Fusion/actions/runs/29645564540):
shards 1–3 green; shard 4 settings suite failed.
- Exact `Memory` nav name (vs `/Memory/` matching **Memory Backups**).
- `waitForSettingsModalReady` waits for Loading… to clear after
fetchSettings.
## Test plan
- [x] memory backend status hook test
- [x] Anthropic Subscription OAuth incomplete toast
- [ ] Full Suite all 4 shards green on main
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **Tests**
* Improved settings modal test synchronization to reliably wait for
loading to finish.
* Refined memory settings navigation checks to target the correct
section and avoid ambiguous matches.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
## Summary
- Full Suite
[29644469846](https://github.com/Runfusion/Fusion/actions/runs/29644469846):
shards 1–3 green; shard 4 failed `github-issue-comment`
(`this.store.getTask is not a function`).
- Tracking Done comments re-read the task for landing-commit metadata;
MockStore now implements `getTask` (null → product snapshot fallback).
## Test plan
- [x] `github-issue-comment.test.ts` — 33 passed
- [ ] Full Suite all 4 shards green on main
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **Tests**
* Updated GitHub issue comment test scaffolding to support task lookups
during completion handling.
* Kept comment-posting assertions deterministic.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
## Summary
- Full Suite
[29643371961](https://github.com/Runfusion/Fusion/actions/runs/29643371961)
after #2298: shards 1–2 green; shard 3 confirm Other race; shard 4 MCP +
re-emit planning tests.
- MCP lane mock: follow-up prompts return `complete` (product defaults
clarification off).
- Re-emit suite: pass `clarificationEnabled: true` so multi-question
interview invariants still run.
- Confirm Other UI test: `findByTestId("planning-other-input")` after
click.
## Test plan
- [x] mcp-lane-forwarding + planning-answered-question-reemit (14)
- [x] confirm Other desktop/mobile planning-flow
- [ ] Full Suite all 4 shards green on main
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **Tests**
* Improved automated coverage for planning-mode interviews, including
“Other” responses and follow-up prompts.
* Increased test reliability by handling asynchronous input updates more
consistently.
* Added validation for clarification-enabled interviews and completion
behavior in MCP forwarding scenarios.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
## Summary
- Full Suite
[29642536622](https://github.com/Runfusion/Fusion/actions/runs/29642536622)
after #2297: shards 1–2 green; shard 4 i18n parity + shard 3
PlanningMode loading.
- Add `settings.general.ephemeralAgentTaskCreationPolicy*` to
zh-CN/zh-TW/fr/es/ko (FN-8265 keys were en-only).
- Gate the follow-up SSE question in the PlanningMode loading test so
`.planning-loading` is assertable before the next question arrives (CI
race).
## Test plan
- [x] `@fusion/i18n` parity + gate-coverage tests
- [x] PlanningModeModal loading-after-response test
- [ ] Full Suite all 4 shards green on main
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **New Features**
* Added localized settings text for configuring ephemeral agent
follow-up task creation policies in Spanish, French, Korean, Simplified
Chinese, and Traditional Chinese.
* Added options to allow, require validation, or deny follow-up task
creation.
* **Tests**
* Improved planning mode loading-state test reliability with
deterministic synchronization.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
## Summary
- Full Suite run
[29641723814](https://github.com/Runfusion/Fusion/actions/runs/29641723814)
left shards 1–3 green; shard 4 (`@fusion/core`) failed after FN-8265
landed.
- `settings-parity`: `PROJECT_SETTINGS_KEYS` now includes
`NON_DEFAULT_PROJECT_SETTINGS_KEYS` (`ephemeralAgentTaskCreationPolicy`
has no default; resolver owns fallback).
- `schema-applier`: expected applied-migration lists and identity suite
include `TASK_PROPOSAL_CLAIM_VERSION` (`0020`).
## Test plan
- [x] `pnpm --filter @fusion/core exec vitest run
src/__tests__/settings-parity.test.ts
src/__tests__/postgres/schema-applier.test.ts` — 136 passed
- [ ] Full Suite all 4 shards green on main after merge
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **Tests**
* Updated migration validation tests to include the latest task proposal
claim migration.
* Expanded settings parity checks to cover non-default project settings.
* Added coverage confirming migration ordering and immutable migration
identities.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
## Summary
Full Suite shard 4 failed `PlanningModeModal.autosize` with missing
`fetchGlobalSettings` on the `../../api` mock (product clarification
gating).
- Autosize: add sync-settled `fetchGlobalSettings` (FN-8245 pattern)
- Initial: replace async `mockResolvedValue` with the same sync settle
## Test plan
- [x] Local autosize + initial (29 tests) green
- [ ] PR gate + Full Suite
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **Tests**
* Improved Planning Mode modal test reliability by making global
settings responses consistently complete.
* Reduced timing and race-condition sensitivity across initialization
and autosizing test scenarios.
* Added coverage for handling completed settings-loading flows without
affecting user-facing behavior.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
## Summary
Full Suite shard 3 (run 29640624429) failed mobile multi-select + Other:
submit payload only had `_other` and dropped `q-priorities: [\"speed\"]`
under load.
Hardens the test to click the Speed **checkbox by accessible name**,
wait for checked, then combine Other (FN-8245 settle discipline).
## Test plan
- [x] Local multi-select planning tests green
- [ ] PR gate
- [ ] Post-merge Full Suite all shards green
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **Tests**
* Improved mobile planning-flow test reliability by ensuring
multi-select choices are committed before entering additional “Other”
text.
* Reduced the risk of intermittent CI failures when combining predefined
options with custom responses.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
## Summary
Full Suite shard 3 failed `GitHubImportAutoTranslate` re-request after
body edit: mock call count hit 2 before `translations.get(1).title`
committed. Wait for the map entry.
## Test plan
- [x] Local re-request test green
- [ ] PR gate + Full Suite
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **Tests**
* Updated translation test timing to reliably account for asynchronous
translation results when issue content changes.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
## Summary
Full Suite after #2292: shards 1–3 green; shard 4 failed FN-7537 backup
automation tests with `store.getGlobalSettingsDir is not a function`.
- Add `getGlobalSettingsDir` to routes-automation mock store
- Point backup-parity fixtures’ global dir at the temp fusion dir
- Dashboard Vitest: alias `@fusion-plugin-examples/claude-runtime` →
`probes-entry` (same class as CLI #2292)
## Test plan
- [x] Local manual backup run parity (4 tests)
- [ ] PR gate
- [ ] Post-merge Full Suite
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **Bug Fixes**
* Improved automation backup test coverage for global backup directory
handling.
* Preserved reliable manual backup behavior and event ordering across
supported automation steps.
* Fixed dashboard API test configuration for Claude runtime probe
resolution.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Let operators open Chat from a selected GitHub issue or pull request with its link ready in the composer.
- Add GitHub-only Chat actions to import detail views and route their prefill through modal and embedded surfaces.
- Seed and focus the direct Chat composer without sending, while preserving saved drafts after failed default-session creation.
- Document the workflow and cover import, prefill, and draft-restoration behavior.
Files changed:
docs/dashboard-guide.md | 12 +++-
packages/dashboard/app/App.tsx | 16 +++++
packages/dashboard/app/components/AppModals.tsx | 3 +
packages/dashboard/app/components/ChatView.tsx | 70 +++++++++++++++++++-
.../dashboard/app/components/GitHubImportModal.tsx | 28 +++++++-
.../components/__tests__/ChatView.draft.test.tsx | 74 ++++++++++++++++++++++
.../__tests__/GitHubImportModal.test.tsx | 49 ++++++++++++++
.../app/components/dashboard/MainContent.tsx | 5 ++
.../dashboard/app/components/dashboard/types.ts | 3 +
9 files changed, 255 insertions(+), 5 deletions(-)
Fusion-Task-Id: FN-8266
Fusion-Task-Lineage: 30102ce8-5aca-4e34-8bb0-6f3c23e64044
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
## Summary
Full Suite after #2291: shards 1–3 green; shard 4 failed CLI suites
with:
`Failed to resolve entry for package
"@fusion-plugin-examples/claude-runtime"`
from `dashboard/src/runtime-provider-probes.ts` under the CLI vitest
package lane.
- Add `plugins/fusion-plugin-claude-runtime/src/probes-entry.ts` (probe
+ model discovery only)
- Alias `@fusion-plugin-examples/claude-runtime` to that entry in CLI
vitest config (same class as Cursor/Grok/OMP source aliases, but avoids
ACP index load)
## Test plan
- [x] Local: vitest-workspace-resolution, task-steer,
extension-task-tools
- [ ] PR gate
- [ ] Post-merge Full Suite green
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **Bug Fixes**
* Improved CLI resolution for Claude runtime diagnostics and provider
model discovery.
* Prevented unnecessary runtime dependencies from affecting CLI test
execution.
* **Refactor**
* Added a lightweight entry point for accessing Claude binary checks and
provider model discovery.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Keep the task-detail oversight indicator aligned with the effective session advisor state.
- Show and light the oversight eye for enabled advisor inheritance while lifecycle oversight is off or unresolved.
- Limit unresolved advisor-only menus to the session advisor toggle and repaint the icon after toggles.
- Cover desktop and mobile behavior and document the interaction.
Files changed:
.changeset/fn-8263-session-advisor-detail-eye.md | 7 ++
docs/dashboard-guide.md | 6 +-
.../dashboard/app/components/TaskDetailModal.tsx | 47 ++++++----
.../TaskDetailModal.oversight-controls.test.tsx | 101 +++++++++++++++++++++
.../TaskDetailModal.oversight-mobile.test.tsx | 40 ++++++++
5 files changed, 183 insertions(+), 18 deletions(-)
Fusion-Task-Id: FN-8263
Fusion-Task-Lineage: 61cd134c-7721-4e19-89a9-a406358f54a9
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>