Commit Graph

2483 Commits

Author SHA1 Message Date
gsxdsm
38891bfd81 FN-8296: add chat-requested task verification
Enable chat agents to queue and monitor executor-owned verification runs.

- Persist task verification requests through a new PostgreSQL migration.
- Expose action-gated chat request and status tools with executor processing.
- Show verification status in task and Command Center views.
- Advance the schema baseline to migration 0024 and keep chat mocks complete.

Files changed:
 .changeset/fn-8296-feature.md                      |  7 ++
 docs/agent-tool-surface-full-loop.md               | 10 +--
 docs/dashboard-guide.md                            |  4 +
 packages/core/src/index.ts                         |  2 +
 .../core/src/postgres/migrations/0000_initial.sql  | 20 +++++
 .../migrations/0024_task_verification_request.sql  | 20 +++++
 packages/core/src/postgres/schema-applier.ts       | 13 ++-
 packages/core/src/postgres/schema/project.ts       | 25 ++++++
 packages/core/src/store.ts                         | 16 +++-
 packages/core/src/task-store/reads.ts              | 14 +++-
 packages/core/src/task-store/remaining-ops-6.ts    | 49 ++++++++++-
 packages/core/src/types.ts                         | 30 +++++++
 packages/dashboard/app/api/legacy.ts               |  1 +
 packages/dashboard/app/api/task-content.ts         | 10 +++
 .../dashboard/app/components/TaskDetailModal.tsx   | 17 +++-
 .../app/components/TaskVerificationStatus.css      | 94 ++++++++++++++++++++++
 .../app/components/TaskVerificationStatus.tsx      | 39 +++++++++
 .../__tests__/TaskVerificationStatus.test.tsx      | 28 +++++++
 .../components/command-center/CommandCenter.css    | 33 ++++++++
 .../components/command-center/CommandCenter.tsx    | 37 ++++++++-
 packages/dashboard/src/__tests__/chat.test.ts      |  1 +
 packages/dashboard/src/chat.ts                     | 55 +++++++++++++
 .../src/routes/register-command-center-routes.ts   | 20 +++++
 .../src/routes/register-task-workflow-routes.ts    | 17 ++++
 packages/engine/src/executor.ts                    | 51 +++++++++++-
 packages/engine/src/gating-classifications.ts      |  5 ++
 packages/engine/src/index.ts                       |  2 +-
 27 files changed, 605 insertions(+), 15 deletions(-)

Fusion-Task-Id: FN-8296

Fusion-Task-Lineage: f94647cf-c89f-4f0e-b25f-cbf5b56683bc

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-18 18:38:47 -07:00
gsxdsm
e2b5532290 FN-8288: add native structure preview foundation
Provide reusable, typed previews for native dashboard structures.

- Define five-kind native structure references and preview payloads.
- Add project-scoped preview resolution API with unavailable states and capped excerpts.
- Add a callback-driven inline preview card, tests, documentation, and release note.

Files changed:
 .changeset/fn-8288-native-structure-preview.md     |   7 ++
 docs/dashboard-guide.md                            |   4 +
 packages/core/src/index.gate.ts                    |   2 +-
 packages/core/src/index.ts                         |   1 +
 packages/core/src/types.ts                         |  54 ++++++++++
 packages/dashboard/app/api/legacy.ts               |   1 +
 packages/dashboard/app/api/task-content.ts         |  13 ++-
 .../app/components/NativeStructurePreview.css      |  61 +++++++++++
 .../app/components/NativeStructurePreview.tsx      | 115 +++++++++++++++++++++
 .../__tests__/NativeStructurePreview.test.tsx      | 102 ++++++++++++++++++
 packages/dashboard/src/native-structure-preview.ts |  88 ++++++++++++++++
 .../native-structure-preview-routes.test.ts        | 102 ++++++++++++++++++
 .../src/routes/register-task-workflow-routes.ts    |  23 +++++
 13 files changed, 571 insertions(+), 2 deletions(-)

Fusion-Task-Id: FN-8288

Fusion-Task-Lineage: 1a4ce369-9f9e-4a45-b533-2d53b5f1020c

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-18 18:11:02 -07:00
gsxdsm
4cc8002c97 FN-8341: rework planning interviews for reactive validation
Make planning interviews user-controlled and context-aware from validation through task creation.

- Replace fixed-depth and deepening checkpoints with reactive follow-up questions
- Add explicit planning validation and require it before creating or breaking down work
- Expose validation through the API, CLI, routes, types, documentation, and release notes
- Update localized copy and PlanningModeModal mocks and assertions for the revised workflow

Files changed:
 .changeset/fn-8341-deepening-checkpoint-removal.md |   7 +
 .changeset/fn-8341-planning-reactive-backend.md    |   7 +
 docs/dashboard-guide.md                            |   8 +-
 packages/cli/src/commands/task.ts                  |  12 +-
 packages/core/src/index.gate.ts                    |   2 +-
 packages/core/src/index.ts                         |   2 +-
 packages/core/src/types.ts                         |  38 +-
 packages/dashboard/app/api/legacy.ts               |  15 +-
 .../dashboard/app/components/PlanningModeModal.tsx | 192 +-----
 .../__tests__/PlanningModeModal.autosize.test.tsx  |   4 +
 .../__tests__/PlanningModeModal.initial.test.tsx   |  50 +-
 .../PlanningModeModal.planning-flow.test.tsx       | 442 +------------
 .../__tests__/PlanningModeModal.test-helpers.ts    |   1 +
 .../PlanningModeModal.ui-interactions.test.tsx     |   3 +
 .../__tests__/planning-infinite-interview.test.ts  | 221 +++++++
 packages/dashboard/src/planning.ts                 | 711 ++++++---------------
 .../src/routes/register-planning-subtask-routes.ts |  64 +-
 packages/i18n/locales/en/app.json                  |   1 -
 packages/i18n/locales/es/app.json                  |   1 -
 packages/i18n/locales/fr/app.json                  |   1 -
 packages/i18n/locales/ko/app.json                  |   1 -
 packages/i18n/locales/zh-CN/app.json               |   1 -
 packages/i18n/locales/zh-TW/app.json               |   1 -
 23 files changed, 536 insertions(+), 1249 deletions(-)

Fusion-Task-Id: FN-8341

Fusion-Task-Lineage: 102f88af-2675-43f5-8e08-5403a0e17da8

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-18 17:53:20 -07:00
gsxdsm
7e7c3c999b FN-8317: add reviewed report screenshots and activity traces
Capture optional report context while preserving scrubbed text-first filing.\n\n- Add browser screenshot capture, review, validation, and compensating upload cleanup.\n- Include bounded activity traces in report drafts and filing flows.\n- Preserve roadmap deduplication and document report privacy behavior.\n\nFiles changed:\n .changeset/fn-8317-report-context.md               |   7 +
 docs/dashboard-guide.md                            |   4 +-
 packages/dashboard/app/api/report.ts               |  15 +-
 packages/dashboard/app/components/ReportModal.css  |   5 +-
 packages/dashboard/app/components/ReportModal.tsx  |  52 +++----
 .../app/components/__tests__/ReportModal.test.tsx  |  14 ++
 packages/dashboard/app/hooks/useViewState.ts       |   7 +
 .../app/utils/__tests__/report-capture.test.ts     |  17 +++
 packages/dashboard/app/utils/report-capture.ts     |  47 +++++++
 packages/dashboard/package.json                    |   1 -
 .../src/__tests__/report-pipeline.test.ts          | 100 +++++++++++++-
 .../dashboard/src/__tests__/report-routes.test.ts  |  17 +++
 .../dashboard/src/__tests__/report-scrub.test.ts   |   8 ++
 packages/dashboard/src/github.ts                   | 107 +++++++++++++++
 packages/dashboard/src/report-pipeline.ts          | 152 ++++++++++++++++-----
 packages/dashboard/src/report-scrub.ts             |   8 ++
 .../dashboard/src/routes/register-report-routes.ts | 103 ++++++--------
 pnpm-lock.yaml                                     | 129 +++++++++--------
 18 files changed, 590 insertions(+), 203 deletions(-)

Fusion-Task-Id: FN-8317

Fusion-Task-Lineage: 9d200cee-cf69-4827-9e1e-f7789adf09e0

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-18 17:06:34 -07:00
gsxdsm
c95e08ea21 FN-8297: add research finding promotion to mission features
Bridge completed research findings into durable mission roadmap features.

- Persist stable finding and citation provenance on mission features
- Add idempotent promotion APIs, dashboard controls, and agent tooling
- Document the promotion flow and cover finding identity and feature synchronization

Files changed:
 .changeset/fn-8297-research-mission-bridge.md      |  7 ++++
 docs/missions.md                                   |  4 +++
 docs/research.md                                   |  4 +++
 .../__tests__/research-finding-identity.test.ts    | 15 +++++++++
 packages/core/src/async-mission-store-queries.ts   | 26 +++++++++++++++
 packages/core/src/async-mission-store.ts           | 16 +++++++++
 packages/core/src/index.gate.ts                    |  3 ++
 packages/core/src/index.ts                         |  3 ++
 packages/core/src/mission-types.ts                 | 13 ++++++++
 .../core/src/postgres/migrations/0000_initial.sql  |  4 +++
 .../0023_research_feature_provenance.sql           |  8 +++++
 packages/core/src/postgres/schema-applier.ts       | 13 +++++++-
 packages/core/src/postgres/schema/project.ts       |  5 +++
 packages/core/src/research-feature-promotion.ts    | 38 ++++++++++++++++++++++
 packages/core/src/research-types.ts                | 21 ++++++++++++
 packages/core/src/types.ts                         |  1 +
 packages/dashboard/app/api/legacy.ts               | 21 ++++++++++++
 packages/dashboard/app/components/ResearchView.tsx | 19 ++++++-----
 packages/dashboard/app/hooks/useResearch.ts        |  3 ++
 packages/dashboard/src/chat.ts                     |  4 +--
 packages/dashboard/src/research-routes.ts          | 37 +++++++++++++++++----
 .../src/__tests__/agent-mission-tools.test.ts      | 14 +++++++-
 .../src/__tests__/mission-feature-sync.test.ts     | 20 ++++++++++++
 packages/engine/src/agent-tools.ts                 | 26 +++++++++++++++
 packages/engine/src/mission-feature-sync.ts        |  1 +
 25 files changed, 308 insertions(+), 18 deletions(-)

Fusion-Task-Id: FN-8297

Fusion-Task-Lineage: ffef4d26-1372-466a-8d3d-2b9b5cc9a53b

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-18 16:18:15 -07:00
gsxdsm
1215c76d9a FN-8326: add roadmap report deduplication
Add an optional public-roadmap source for report deduplication.

- Add project settings and localized controls for roadmap matching.
- Resolve roadmap entries through the plugin API and stop strong duplicate reports before filing.
- Cover report pipeline, route, UI, and roadmap store behavior with tests.

Files changed:
 .changeset/fn-8326-roadmap-report-dedup.md         |  7 +++
 docs/dashboard-guide.md                            |  2 +
 docs/settings-reference.md                         |  1 +
 .../core/src/__tests__/settings-parity.test.ts     |  3 +
 packages/core/src/settings-schema.ts               |  1 +
 packages/core/src/types.ts                         |  6 ++
 packages/dashboard/app/components/ReportModal.tsx  | 11 +++-
 .../app/components/__tests__/ReportModal.test.tsx  | 14 +++++
 .../__tests__/SettingsModal.general.test.tsx       |  2 +
 .../settings/sections/GeneralSection.tsx           | 10 ++++
 .../settings-default-descriptions.test.tsx         |  1 +
 .../src/__tests__/report-pipeline.test.ts          | 31 +++++++++++
 .../src/__tests__/report-roadmap-source.test.ts    | 32 +++++++++++
 .../dashboard/src/__tests__/report-routes.test.ts  | 27 +++++++--
 packages/dashboard/src/index.ts                    |  1 +
 packages/dashboard/src/report-pipeline.ts          | 36 +++++++++++-
 packages/dashboard/src/report-roadmap-source.ts    | 64 ++++++++++++++++++++++
 .../dashboard/src/routes/register-report-routes.ts |  3 +
 packages/i18n/locales/en/app.json                  | 10 +++-
 packages/i18n/locales/es/app.json                  | 10 +++-
 packages/i18n/locales/fr/app.json                  | 10 +++-
 packages/i18n/locales/ko/app.json                  | 10 +++-
 packages/i18n/locales/zh-CN/app.json               | 10 +++-
 packages/i18n/locales/zh-TW/app.json               | 10 +++-
 .../src/__tests__/roadmap-store-factory.test.ts    | 25 +++++++++
 .../src/routes/roadmap-routes.ts                   | 24 +-------
 plugins/fusion-plugin-roadmap/src/server/index.ts  | 34 ++++++++++++
 27 files changed, 360 insertions(+), 35 deletions(-)

Fusion-Task-Id: FN-8326

Fusion-Task-Lineage: e9731c3f-dd92-44ac-910b-0e0efbaaf288

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-18 14:23:14 -07:00
gsxdsm
589e2503a9 docs(FN-8280): index agent tool-surface audit 2026-07-18 14:21:41 -07:00
gsxdsm
bcdad279d7 FN-8289: add feature-video review artifacts
Add gated local feature-video capture to completed user-facing deliverables.

- Capture loopback scenario WebM recordings through the existing artifact registry.
- Keep recording failures non-blocking and cover gated, unsafe, and failed capture paths.
- Document the scenario contract and package the Playwright runtime dependency.

Files changed:
 .changeset/fn-8289-feature-video.md                |   7 +
 docs/workflow-steps.md                             |   8 +
 packages/cli/package.json                          |   3 +-
 packages/cli/tsup.config.ts                        |   7 +
 packages/engine/package.json                       |   3 +-
 .../__tests__/executor-review-artifacts.test.ts    |  44 ++++
 packages/engine/src/executor.ts                    |  33 +++
 .../src/review-artifacts/feature-video.test.ts     |  75 +++++++
 .../engine/src/review-artifacts/feature-video.ts   | 226 +++++++++++++++++++++
 packages/engine/src/review-artifacts/index.ts      |  10 +
 pnpm-lock.yaml                                     |   6 +
 11 files changed, 420 insertions(+), 2 deletions(-)

Fusion-Task-Id: FN-8289

Fusion-Task-Lineage: 8a34675a-2417-4669-a14a-b74c4aa99331

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-18 13:53:58 -07:00
gsxdsm
02ee8a4fd5 fix: hide stale task-card oversight icons (#2318)
## 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 -->
2026-07-18 13:50:58 -07:00
gsxdsm
e0d2fd6085 FN-8332: preserve planning session progress after reload
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>
2026-07-18 13:32:33 -07:00
gsxdsm
d51ce46db5 FN-8295: add persisted ideation mission handoffs
Persist bounded ideation sessions through agent tools, the Command Center, and atomic Mission convergence.

- Store ideation sessions and divergent candidates in PostgreSQL with async APIs and migration support.
- Expose gated ideation tools, chat routes, and agent lifecycle integration.
- Add the Ideation panel, documentation, release metadata, and regression coverage.

Files changed:
 .changeset/fn-8295-ideation-diverge-converge.md    |   7 ++
 docs/ideation/persisted-diverge-converge.md        |  22 ++++
 docs/missions.md                                   |   4 +
 .../__tests__/postgres/ideation-store.pg.test.ts   |  57 +++++++++
 packages/core/src/async-ideation-store-queries.ts  | 117 +++++++++++++++++
 packages/core/src/async-ideation-store.ts          | 138 +++++++++++++++++++++
 packages/core/src/async-mission-store.ts           |  27 ++--
 packages/core/src/ideation-types.ts                |  69 +++++++++++
 packages/core/src/index.ts                         |   3 +
 .../core/src/postgres/migrations/0022_ideation.sql |  67 ++++++++++
 packages/core/src/postgres/schema-applier.ts       |  18 ++-
 packages/core/src/postgres/schema/project.ts       |  49 +++++++-
 packages/core/src/store.ts                         |   8 +-
 packages/core/src/task-store/remaining-ops-8.ts    |  14 +++
 .../components/command-center/CommandCenter.tsx    |   7 +-
 .../components/command-center/IdeationPanel.css    |  18 +++
 .../components/command-center/IdeationPanel.tsx    |  58 +++++++++
 .../__tests__/CommandCenter.test.tsx               |   6 +-
 .../dashboard/src/__tests__/chat-manager.test.ts   |   1 +
 packages/dashboard/src/__tests__/chat.test.ts      |   1 +
 .../__tests__/ideation-tool-route-parity.test.ts   |  29 +++++
 packages/dashboard/src/chat.ts                     |   4 +
 packages/dashboard/src/ideation-routes.ts          |  50 ++++++++
 .../src/routes/register-integrated-routers.ts      |   2 +
 .../src/__tests__/agent-ideation-tools.test.ts     |  40 ++++++
 .../src/__tests__/gating-classifications.test.ts   |  16 +++
 .../src/__tests__/permanent-agent-gating.test.ts   |   2 +
 packages/engine/src/agent-heartbeat.ts             |   4 +-
 packages/engine/src/agent-tools.ts                 |  67 ++++++++++
 packages/engine/src/executor.ts                    |   2 +
 packages/engine/src/gating-classifications.ts      |   8 ++
 packages/engine/src/index.ts                       |   1 +
 packages/engine/src/triage.ts                      |   2 +
 33 files changed, 897 insertions(+), 21 deletions(-)

Fusion-Task-Id: FN-8295

Fusion-Task-Lineage: 1b8b0752-22bd-4b2f-aebd-4305c63abcf9

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-18 13:18:08 -07:00
gsxdsm
13f936eb7b FN-8286: add review artifact controls and galleries
Add configurable review-deliverable policies and surface eligible artifacts in review workflows.

- Add project and PROMPT.md review-artifact modes with task eligibility enforcement.
- Display video and live-demo deliverables in Task Review and Command Center galleries.
- Document, localize, and test the new review-artifact controls.

Files changed:
 .changeset/fn-8286-review-artifacts.md             |  7 ++
 docs/settings-reference.md                         |  1 +
 .../core/src/__tests__/review-artifacts.test.ts    | 53 +++++++++++++++
 .../core/src/__tests__/settings-parity.test.ts     |  5 ++
 packages/core/src/index.ts                         |  4 +-
 packages/core/src/settings-schema.ts               |  1 +
 packages/core/src/types.ts                         | 75 ++++++++++++++++++++++
 packages/core/src/types/execution-and-ui.ts        |  8 +++
 .../dashboard/app/components/TaskReviewTab.tsx     | 28 +++++++-
 .../__tests__/SettingsModal.general.test.tsx       |  8 +++
 .../components/__tests__/TaskReviewTab.test.tsx    | 27 ++++++++
 .../components/command-center/CommandCenter.tsx    |  5 ++
 .../command-center/areas/ReviewArtifactsArea.tsx   | 59 +++++++++++++++++
 .../areas/__tests__/ReviewArtifactsArea.test.tsx   | 39 +++++++++++
 .../app/components/settings/section-keys.ts        |  1 +
 .../settings/sections/GeneralSection.tsx           | 20 ++++++
 .../settings-default-descriptions.test.tsx         |  1 +
 .../src/__tests__/agent-artifact-tools.test.ts     | 19 +++++-
 packages/engine/src/agent-tools.ts                 | 26 ++++++++
 packages/i18n/locales/en/app.json                  |  7 ++
 packages/i18n/src/resources.d.ts                   |  7 ++
 21 files changed, 397 insertions(+), 4 deletions(-)

Fusion-Task-Id: FN-8286
Fusion-Task-Lineage: 357ccbe3-510d-4ffd-ba7c-6bf79fe40a09
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-18 13:09:38 -07:00
gsxdsm
551074537f FN-8331: require planning interview before summaries
Ensure Planning Mode collects mandatory user context before it can generate a plan.

- Reject and re-prompt first-turn completion responses until a clarifying question is available.
- Preserve the interview invariant for streaming sessions and legacy session rehydration.
- Update Planning Mode defaults, documentation, regression coverage, and release metadata.

Files changed:
 .changeset/fn-8331-planning-interview.md           |   7 +
 docs/dashboard-guide.md                            |   2 +-
 docs/settings-reference.md                         |   2 +-
 .../dashboard/app/components/PlanningModeModal.tsx |  10 +-
 .../PlanningModeModal.planning-flow.test.tsx       |   4 +-
 .../src/__tests__/routes-planning.test.ts          | 120 ++++++++++++++++-
 packages/dashboard/src/planning.ts                 | 145 ++++++++++++++-------
 7 files changed, 233 insertions(+), 57 deletions(-)

Fusion-Task-Id: FN-8331

Fusion-Task-Lineage: 6fc98f2e-f263-4830-b88c-e52d1ba6551f

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-18 13:01:35 -07:00
gsxdsm
500275ac0c FN-8311: capture report activity context safely
Keep report traces useful while preserving local-only screenshot retention.

- Record report submissions, toast messages, and uncaught client errors in bounded report context
- Preserve single-upload screenshot artifacts across draft review and filing
- Document report-context capture and add a release changeset

Files changed:
 .changeset/fn-8311-report-context.md              |  7 +++++++
 docs/dashboard-guide.md                           |  2 +-
 packages/dashboard/app/App.tsx                    | 11 ++++++++++-
 packages/dashboard/app/components/ReportModal.tsx |  1 +
 4 files changed, 19 insertions(+), 2 deletions(-)

Fusion-Task-Id: FN-8311

Fusion-Task-Lineage: bca77264-7607-45d6-99f0-a83a4ba6631d

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-18 12:57:04 -07:00
gsxdsm
88b0db0f4d FN-8309: add report screenshot and activity capture
Add opt-in local screenshot attachments and scrubbed activity traces to reports.

- Capture, preview, confirm, and locally retain report screenshots without GitHub egress.
- Include bounded activity traces in draft and filing context with server-side validation.
- Add report pipeline coverage, documentation, and release metadata.

Files changed:
 .changeset/fn-8309-report-capture.md               |   7 ++
 docs/dashboard-guide.md                            |   2 +
 packages/dashboard/app/App.tsx                     |  10 ++
 packages/dashboard/app/api/report.ts               |  16 ++-
 packages/dashboard/app/components/ReportModal.css  |   3 +
 packages/dashboard/app/components/ReportModal.tsx  |  45 ++++++-
 .../app/utils/__tests__/activity-trace.test.ts     |  19 +++
 packages/dashboard/app/utils/activity-trace.ts     |  37 ++++++
 packages/dashboard/app/utils/capture-screenshot.ts |  22 ++++
 packages/dashboard/package.json                    |   5 +-
 .../src/__tests__/report-pipeline.test.ts          |  13 +++
 packages/dashboard/src/report-pipeline.ts          |  29 ++++-
 packages/dashboard/src/routes.ts                   |   2 +-
 .../dashboard/src/routes/register-report-routes.ts |  85 +++++++++++++-
 packages/dashboard/src/routes/types.ts             |   4 +-
 pnpm-lock.yaml                                     | 129 ++++++++++-----------
 16 files changed, 341 insertions(+), 87 deletions(-)

Fusion-Task-Id: FN-8309

Fusion-Task-Lineage: db9c14a6-1721-4e81-8891-cfd301473cd0

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-18 12:41:42 -07:00
gsxdsm
d5db5fd58d FN-8304: detect foreign issue-form content for translation
Recognize foreign GitHub and GitLab issue-form prose so import translation remains available.

- Remove issue-form scaffolding before content-language scoring.
- Identify Czech as unsupported foreign Latin content and offer translation.
- Cover automatic and manual translation paths with issue-form fixtures.
- Document the expanded import translation behavior and add a patch changeset.

Files changed:
 .changeset/fn-8304-issue-form-translation.md       |   7 ++
 docs/dashboard-guide.md                            |   2 +-
 docs/settings-reference.md                         |   2 +-
 packages/core/src/detect-content-language.ts       |  66 ++++++++++--
 .../__tests__/GitHubImportAutoTranslate.test.tsx   |  42 +++++++-
 .../utils/__tests__/detectContentLanguage.test.ts  | 120 +++++++++++++++++++++
 .../src/__tests__/import-translate-service.test.ts |  56 ++++++++++
 7 files changed, 284 insertions(+), 11 deletions(-)

Fusion-Task-Id: FN-8304

Fusion-Task-Lineage: ef6ca70c-aa67-40ff-a23a-077940b5a5f0

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-18 12:32:07 -07:00
gsxdsm
d593d87686 feat(FN-8064): make proactive task chat optional
Fusion-Task-Id: FN-8064
2026-07-18 12:21:08 -07:00
gsxdsm
9debeaa951 FN-8300: show planner activity on status-null cards
Keep planning cards visibly active while fresh planner logs precede authoritative task status updates.

- Track bounded client-only planner activity from fresh triage log events
- Render matching pulsing Planning badges in board and list card views
- Cover transient activity, authoritative clearing, and inactive edge cases

Files changed:
 docs/dashboard-guide.md                            |  2 +
 packages/core/src/types.ts                         |  6 +++
 packages/dashboard/app/components/ListView.tsx     | 26 ++++++++---
 packages/dashboard/app/components/TaskCard.tsx     | 20 +++++---
 .../app/components/__tests__/ListView.test.tsx     | 38 +++++++++++++++
 .../app/components/__tests__/TaskCard.test.tsx     | 19 +++++++-
 .../dashboard/app/hooks/__tests__/useTasks.test.ts | 54 ++++++++++++++++++++++
 packages/dashboard/app/hooks/useTasks.ts           | 44 +++++++++++++-----
 .../app/utils/__tests__/taskActivity.test.ts       | 22 ++++++++-
 packages/dashboard/app/utils/taskActivity.ts       | 15 +++++-
 10 files changed, 219 insertions(+), 27 deletions(-)

Fusion-Task-Id: FN-8300

Fusion-Task-Lineage: e12f1277-5628-45a1-b731-54310027540e

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-18 12:13:20 -07:00
gsxdsm
3568a86a66 FN-8284: add organization portability controls
Add Command Center tools for safe organization portability and configuration recovery.

- Register project-scoped organization export/import and revision rollback routes.
- Add localized, responsive Command Center controls for bundle preview, import, and rollback.
- Invalidate stale dry-run responses and retain only the exact previewed bundle for import.
- Cover portability routes and editing-during-preview behavior with tests.

Files changed:
 docs/dashboard-guide.md                            |   2 +
 .../command-center/CommandCenterControls.tsx       |   3 +
 .../command-center/OrgPortabilityControls.css      |  81 +++++++++
 .../command-center/OrgPortabilityControls.tsx      | 184 +++++++++++++++++++++
 .../__tests__/CommandCenter.mobile-scroll.test.tsx |   2 +
 .../__tests__/OrgPortabilityControls.test.tsx      |  94 +++++++++++
 packages/dashboard/src/routes.ts                   |   2 +
 .../register-org-portability-routes.test.ts        | 109 ++++++++++++
 .../src/routes/register-org-portability-routes.ts  | 129 +++++++++++++++
 packages/i18n/locales/en/app.json                  |  37 +++++
 10 files changed, 643 insertions(+)

Fusion-Task-Id: FN-8284

Fusion-Task-Lineage: 1fa06550-8064-417f-a8d0-40f693206404

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-18 12:06:00 -07:00
gsxdsm
baa1baff9f FN-8283: add secret-scrubbed organization bundle CLI
Add portable, secret-scrubbed organization export and import workflows.

- Assemble agents, raw skills, routines, automations, and settings into versioned bundles.
- Add org-export and org-import CLI commands with dry-run and collision controls.
- Preserve existing skills by default or materialize suffixed destinations, with CLI coverage.

Files changed: .changeset/fn-8283-org-bundle.md                   |   7 +
 docs/cli-reference.md                              |   9 ++
 docs/secrets.md                                    |  10 ++
 packages/cli/src/__tests__/bin.test.ts             |  17 ++
 packages/cli/src/bin.ts                            |  26 ++-
 .../cli/src/commands/__tests__/org-export.test.ts  |  30 ++++
 .../cli/src/commands/__tests__/org-import.test.ts  |  31 ++++
 packages/cli/src/commands/org-export.ts            |  19 +++
 packages/cli/src/commands/org-import.ts            |  18 +++
 packages/core/src/__tests__/org-bundle.test.ts     |  69 ++++++++
 packages/core/src/index.ts                         |  17 ++
 packages/core/src/org-bundle.ts                    | 176 +++++++++++++++++++++
 12 files changed, 428 insertions(+), 1 deletion(-)

Fusion-Task-Id: FN-8283

Fusion-Task-Lineage: 93877746-8e57-4c79-bdbe-8e4ec7a2efe6

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-18 11:49:11 -07:00
gsxdsm
bcb1256d6b FN-8282: add configuration revision history and rollback
Record configuration revisions so prior settings can be restored safely.

- Add revision storage interfaces, PostgreSQL schema, migration, and pruning.
- Capture changes to global settings, routines, automations, and async task settings.
- Expose revision listing and restore operations with coverage and storage documentation.

Files changed:
 .changeset/fn-8282-config-versioning.md            |   7 +
 docs/storage.md                                    |   6 +
 .../__tests__/configuration-revision-store.test.ts |  26 +++
 .../src/__tests__/postgres/schema-applier.test.ts  |  15 +-
 .../core/src/async-configuration-revision-store.ts | 192 +++++++++++++++++++++
 packages/core/src/automation-store.ts              |  88 +++++++++-
 packages/core/src/configuration-revision-store.ts  |  33 ++++
 packages/core/src/global-settings.ts               | 172 +++++++++++++++++-
 packages/core/src/index.gate.ts                    |   3 +
 packages/core/src/index.ts                         |   3 +
 .../migrations/0021_configuration_revisions.sql    |  40 +++++
 packages/core/src/postgres/schema-applier.ts       |  19 +-
 packages/core/src/postgres/schema/project.ts       |  27 +++
 packages/core/src/routine-store.ts                 | 103 ++++++++++-
 packages/core/src/store.ts                         |  21 ++-
 packages/core/src/task-store/async-settings.ts     |  14 +-
 packages/core/src/task-store/remaining-ops-2.ts    |  86 ++++++++-
 packages/core/src/task-store/settings-ops.ts       | 104 +++++++----
 packages/core/src/types.ts                         |  36 ++++
 packages/engine/src/agent-tools.ts                 |   7 +-
 20 files changed, 928 insertions(+), 74 deletions(-)

Fusion-Task-Id: FN-8282

Fusion-Task-Lineage: fd681798-10b0-47ce-b96b-6f33eecdf70a

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-18 11:34:42 -07:00
gsxdsm
e8c37b076e FN-8277: add in-app agentic reporting
Add guided in-app reporting that safely files or endorses GitHub issues and discussions.

- Add report actions, modal UI, API routes, and configurable per-action filing modes.
- Scrub report payloads, self-check Help requests, and deduplicate before filing or endorsing.
- Extend GitHub discussion support and cover the report pipeline with tests and documentation.

Files changed:
 .changeset/fn-8277-agentic-reports.md              |   7 +
 docs/dashboard-guide.md                            |   8 +
 docs/settings-reference.md                         |   2 +
 .../core/src/__tests__/settings-parity.test.ts     |   9 +
 packages/core/src/index.gate.ts                    |   2 +-
 packages/core/src/index.ts                         |   2 +-
 packages/core/src/settings-schema.ts               |   2 +
 packages/core/src/types.ts                         |  10 +
 packages/dashboard/app/api.ts                      |   1 +
 packages/dashboard/app/api/report.ts               |  11 +
 packages/dashboard/app/components/Header.tsx       |  30 +++
 .../dashboard/app/components/ReportActionMenu.css  |   6 +
 .../dashboard/app/components/ReportActionMenu.tsx  |  22 ++
 packages/dashboard/app/components/ReportModal.css  |   6 +
 packages/dashboard/app/components/ReportModal.tsx  |  81 ++++++++
 .../app/components/__tests__/Header.test.tsx       |   7 +-
 .../components/__tests__/ReportActionMenu.test.tsx |  18 ++
 .../app/components/__tests__/ReportModal.test.tsx  |  94 +++++++++
 .../__tests__/SettingsModal.general.test.tsx       |  15 ++
 .../settings/sections/GeneralSection.tsx           |  31 ++-
 .../src/__tests__/report-pipeline.test.ts          | 127 ++++++++++++
 .../dashboard/src/__tests__/report-routes.test.ts  |  51 +++++
 .../dashboard/src/__tests__/report-scrub.test.ts   |  47 +++++
 packages/dashboard/src/github.ts                   | 151 +++++++++++++-
 packages/dashboard/src/index.ts                    |   3 +
 packages/dashboard/src/report-help-selfcheck.ts    |  13 ++
 packages/dashboard/src/report-pipeline.ts          | 225 +++++++++++++++++++++
 packages/dashboard/src/report-scrub.ts             |  66 ++++++
 packages/dashboard/src/routes.ts                   |   2 +
 .../dashboard/src/routes/register-report-routes.ts | 118 +++++++++++
 30 files changed, 1156 insertions(+), 11 deletions(-)

Fusion-Task-Id: FN-8277
Fusion-Task-Lineage: d50dc1da-7534-4324-ab05-1f8a0ad77c6a
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-18 10:55:50 -07:00
gsxdsm
8d1620ea23 FN-8294: expose action-gated Mission hierarchy tools
Expose project-scoped Mission hierarchy operations to engine agents and eligible dashboard chat sessions.

- Add Mission, milestone, slice, and feature tool definitions backed by MissionStore
- Classify hierarchy mutations for action and permanent-agent approval gates
- Wire gated tool access through triage, executor, heartbeat, CLI, and chat lanes
- Cover tool availability, mutation gating, and chat integration with tests and documentation

Files changed:
 .changeset/fn-8294-mission-engine-tools.md         |   7 ++
 docs/missions.md                                   |   8 ++
 packages/cli/src/extension.ts                      |   2 +-
 .../dashboard/src/__tests__/chat-manager.test.ts   |  48 +++++++++
 packages/dashboard/src/__tests__/chat.test.ts      |   1 +
 packages/dashboard/src/chat.ts                     | 113 ++++++++++++++++++++-
 .../src/__tests__/agent-mission-tools.test.ts      |  43 ++++++++
 packages/engine/src/__tests__/triage.test.ts       |  34 ++++++-
 packages/engine/src/agent-heartbeat.ts             |   4 +-
 packages/engine/src/agent-tools.ts                 |  64 ++++++++++++
 packages/engine/src/executor.ts                    |   2 +
 packages/engine/src/gating-classifications.ts      |  11 ++
 packages/engine/src/index.ts                       |  17 ++++
 packages/engine/src/triage.ts                      | 111 ++++++++++++++++++++
 14 files changed, 457 insertions(+), 8 deletions(-)

Fusion-Task-Id: FN-8294

Fusion-Task-Lineage: ab0f248b-8a38-40e3-b297-79f9dbe18075

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-18 10:31:59 -07:00
gsxdsm
a6f1ed07e2 FN-8287: unify task-detail action button sizing
Standardize task-detail inline action controls across themes.

- Apply shared tokenized square sizing, borders, and radii to all inline metadata actions.
- Add a regression test for the common sizing rule and document the control cluster.
- Add a patch changeset for consistent task-detail action buttons.

Files changed:
 .changeset/fn-8287-task-detail-button-sizes.md     |  7 +++
 docs/dashboard-guide.md                            |  2 +-
 .../dashboard/app/components/TaskDetailModal.css   | 73 ++++++++--------------
 ...etailModal.responsive-and-dependencies.test.tsx | 24 +++++++
 4 files changed, 57 insertions(+), 49 deletions(-)

Fusion-Task-Id: FN-8287

Fusion-Task-Lineage: 21ce01e1-7443-4a41-8a7d-faaa2bcddb28

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-18 10:08:33 -07:00
gsxdsm
2b455672c6 FN-8275: clarify mission merge behavior
Clarify mission merge choices and surface shared branch status in mission detail.

- Explain auto-merge and single-pull-request behavior in mission forms
- Show mission-owned shared branch member and PR status
- Cover UI behavior and PostgreSQL triage auto-merge cascading

Files changed:
 .changeset/fn-8275-mission-merge-summary.md        |  7 ++
 docs/missions.md                                   |  2 +-
 .../dashboard/app/components/MissionManager.tsx    | 75 ++++++++++++++++++++++
 .../__tests__/MissionManager.auto-merge.test.tsx   | 64 ++++++++++++++++++
 .../mission-auto-merge-cascade.pg.test.ts          | 58 +++++++++++++++++
 5 files changed, 205 insertions(+), 1 deletion(-)

Fusion-Task-Id: FN-8275

Fusion-Task-Lineage: cd259293-b68e-4bc5-803e-40d2287d8438

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-18 09:41:25 -07:00
gsxdsm
119fcedcfe FN-8276: unify mobile board snap behavior
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>
2026-07-18 09:05:51 -07:00
gsxdsm
88fd8f3e7a FN-8280: document full-loop agent tool-surface plan
Document the current agent/chat build-loop surface, its gaps, and a safe delivery plan.

- Audit ideation, research, roadmap, execution, verification, and concurrency boundaries
- Define canonical-operation parity and guardrails for future tool exposure
- Link the audit from the agent tooling documentation

Files changed:
 docs/agent-tool-surface-full-loop.md | 138 +++++++++++++++++++++++++++++++++++
 docs/agents.md                       |   2 +-
 2 files changed, 139 insertions(+), 1 deletion(-)

Fusion-Task-Id: FN-8280

Fusion-Task-Lineage: ff28e0f4-c934-40a4-b030-9541b74bb913

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-18 08:47:18 -07:00
gsxdsm
69e7a34077 FN-8273: add mission auto-merge overrides
Allow operators to override project auto-merge behavior for each mission.

- Add create and update API support for mission auto-merge overrides, including clearing inherited behavior.
- Expose inherited, auto-merge, and single-pull-request choices in all mission forms.
- Apply disabled mission auto-merge to newly triaged tasks and cover storage, API, and UI behavior.
- Document the override and add a CLI changeset.

Files changed:
 .changeset/fn-8273-mission-auto-merge.md           |   7 ++
 docs/missions.md                                   |   4 +
 .../mission-store.sync-auto-merge.test.ts          |  22 ++++
 .../__tests__/postgres/mission-store.pg.test.ts    |  35 ++++++
 packages/core/src/async-mission-store.ts           |   5 +
 packages/core/src/mission-store.ts                 |   5 +
 packages/dashboard/app/api/legacy.ts               |   4 +-
 .../dashboard/app/components/MissionManager.tsx    |  55 +++++++++
 .../__tests__/MissionManager.auto-merge.test.tsx   | 132 +++++++++++++++++++++
 packages/dashboard/app/components/mission-types.ts |   2 +
 packages/dashboard/src/mission-routes.ts           |  18 ++-
 .../routes/__tests__/mission-autoMerge-e2e.test.ts |  66 +++++++++++
 12 files changed, 351 insertions(+), 4 deletions(-)

Fusion-Task-Id: FN-8273

Fusion-Task-Lineage: d24d7c22-5a14-4446-b3e1-c35b2f0480c3

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-18 08:01:44 -07:00
gsxdsm
7c23771433 FN-8265: add task follow-up proposal creation
Enable configured ephemeral workers to propose and create follow-up tasks from mailbox messages.

- Add persisted task-proposal claim state, migrations, and async messaging APIs.
- Register task-proposal creation routes, SSE events, agent tool support, and CLI integration.
- Add mailbox creation controls, settings, documentation, localization, and regression coverage.

Files changed:
 .changeset/fn-8265-task-follow-up-policy.md        |   7 ++
 docs/dashboard-guide.md                            |   2 +-
 docs/settings-reference.md                         |  12 ++-
 packages/cli/src/extension.ts                      |  34 ++++---
 .../src/__tests__/postgres/sqlite-migrator.test.ts |  14 ++-
 .../postgres/task-proposal-claim.pg.test.ts        |  51 +++++++++++
 packages/core/src/async-message-store.ts           |  39 ++++++++
 packages/core/src/index.gate.ts                    |   4 +-
 packages/core/src/index.ts                         |   4 +-
 packages/core/src/message-store.ts                 |  46 ++++++++++
 .../core/src/postgres/migrations/0000_initial.sql  |   2 +
 .../migrations/0020_task_proposal_claim.sql        |   4 +
 packages/core/src/postgres/schema-applier.ts       |  13 ++-
 packages/core/src/postgres/schema/project.ts       |   3 +
 packages/core/src/settings-schema.ts               |  19 +++-
 packages/core/src/task-store/async-persistence.ts  |   2 +-
 packages/core/src/task-store/persistence.ts        |   4 +-
 packages/core/src/task-store/serialization.ts      |   1 +
 packages/core/src/task-store/task-creation.ts      |  51 +++++++++++
 packages/core/src/task-store/task-row-mappers.ts   |   2 +-
 packages/core/src/types.ts                         |  56 +++++++++++-
 packages/dashboard/app/api/legacy.ts               |   5 +
 packages/dashboard/app/components/MailboxModal.tsx |   4 +
 .../app/components/MailboxTaskProposal.css         |   3 +
 .../app/components/MailboxTaskProposal.tsx         |  33 +++++++
 packages/dashboard/app/components/MailboxView.tsx  |   4 +
 .../__tests__/MailboxTaskProposal.test.tsx         |  43 +++++++++
 .../app/components/settings/section-keys.ts        |   2 +-
 .../settings/sections/GeneralSection.search.ts     |  13 ++-
 .../settings/sections/GeneralSection.tsx           |  22 +++--
 .../settings-default-descriptions.test.tsx         |   4 +-
 .../routes/__tests__/task-proposal-routes.test.ts  |  99 ++++++++++++++++++++
 .../src/routes/register-messaging-scripts.ts       | 101 +++++++++++++++++++++
 packages/dashboard/src/sse.ts                      |   7 ++
 packages/engine/src/agent-tools.ts                 |  30 ++++--
 packages/engine/src/executor.ts                    |   9 +-
 packages/engine/src/step-session-executor.ts       |   8 +-
 packages/i18n/locales/en/app.json                  |   5 +
 38 files changed, 696 insertions(+), 66 deletions(-)

Fusion-Task-Id: FN-8265

Fusion-Task-Lineage: 4e864a2f-3485-4a54-8be7-1699b5479a94

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-18 03:48:38 -07:00
gsxdsm
91eb1b088a FN-8266: add GitHub import Chat prefill
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>
2026-07-18 02:41:35 -07:00
gsxdsm
ce3f55fec9 FN-8263: reflect session advisor state in task-detail eye
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>
2026-07-18 02:20:31 -07:00
gsxdsm
4fd9ccd5ae FN-8267: dismiss mobile artifact viewers on back
Ensure mobile artifact viewers close before dashboard navigation.

- Register mobile viewer entries with navigation history.
- Consume entries for header and Escape dismissals.
- Cover browser and native Back behavior and document it.

Files changed:
 docs/dashboard-guide.md                            |   3 +-
 .../dashboard/app/components/ArtifactsGallery.tsx  |  26 +++-
 .../__tests__/ArtifactsGallery.swipe-back.test.tsx | 170 +++++++++++++++++++++
 3 files changed, 194 insertions(+), 5 deletions(-)

Fusion-Task-Id: FN-8267

Fusion-Task-Lineage: 5a5edb10-b6c5-4b9d-89a8-6623306953f6

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-18 02:05:35 -07:00
gsxdsm
44e20274d7 FN-8261: add GitHub issue planning import option
Add a Planning Mode path alongside direct GitHub issue imports.

- Pass selected issue context into Planning Mode after closing the import surface
- Preserve direct-import tracking while labeling its action clearly
- Cover issue planning behavior and document desktop and mobile flows

Files changed:
 docs/dashboard-guide.md                            |  9 ++-
 packages/dashboard/app/components/AppModals.tsx    |  1 +
 packages/dashboard/app/components/GitHubImportModal.tsx | 46 ++++++++++-
 packages/dashboard/app/components/__tests__/GitHubImportModal.test.tsx | 91 ++++++++++++++++++++--
 packages/dashboard/app/components/dashboard/MainContent.tsx |  1 +
 5 files changed, 137 insertions(+), 11 deletions(-)

Fusion-Task-Id: FN-8261

Fusion-Task-Lineage: 6b121563-7cfa-4ba1-82c9-9ad574738a20

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-18 02:00:34 -07:00
gsxdsm
d88e4f9c90 FN-8255: hide inherited-default oversight eye
Suppress transient task-card oversight eyes for unconfigured inherited autonomous workflows.

- Reuse the meaningful oversight badge gate for planner-overseer eye rendering.
- Cover aggregate, selected-workflow, explicit override, and mobile states.
- Document the inherited-default suppression and add a patch changeset.

Files changed:
 .changeset/fn-8255-card-eye-inherited-default-oversight.md |  7 ++
 docs/dashboard-guide.md                            |  3 +-
 packages/dashboard/app/components/TaskCard.tsx     | 21 +++---
 .../__tests__/TaskCard.oversight.test.tsx          | 78 +++++++++++++++++++---
 4 files changed, 88 insertions(+), 21 deletions(-)

Fusion-Task-Id: FN-8255

Fusion-Task-Lineage: 2c48f96f-9f06-4def-b7bb-1020e8505d7b

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-18 01:53:14 -07:00
gsxdsm
2bd25b0605 FN-8260: prevent truncated planning completions
Prevent incomplete AI responses from reaching the Planning Complete checkpoint.

- Reject completion payloads repaired from truncated JSON and retry once
- Preserve tolerant question parsing and add regression coverage
- Document the retryable incomplete-response behavior and add a patch changeset

Files changed:
 .../fn-8260-planning-truncated-completion.md       |  7 ++
 docs/dashboard-guide.md                            |  3 +-
 .../planning-truncated-completion.test.ts          | 35 +++++++++
 packages/dashboard/src/planning.ts                 | 85 +++++++++++++++++++---
 4 files changed, 117 insertions(+), 13 deletions(-)

Fusion-Task-Id: FN-8260

Fusion-Task-Lineage: aff1a1de-7b01-4cad-83a1-06b9684ed9de

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-18 01:36:38 -07:00
gsxdsm
d8735b3dbe FN-8249: persist GitHub translations and show status
Persist legacy GitHub translation cache entries and expose background translation progress to import operators.

- Backfill historic unscoped translation cache partitions during schema migration.
- Display accessible translating and failure status in the GitHub issues import list.
- Add migration, service, and UI coverage plus operator documentation.

Files changed:
 .../fn-8249-github-import-translation-status.md    |  7 ++
 docs/dashboard-guide.md                            |  2 +-
 .../postgres/import-translation-cache.pg.test.ts   | 13 +++-
 .../src/__tests__/postgres/schema-applier.test.ts  | 48 ++++++++++++
 ...translation_cache_legacy_partition_backfill.sql | 31 ++++++++
 packages/core/src/postgres/schema-applier.ts       | 29 ++++++-
 .../dashboard/app/components/GitHubImportModal.css | 42 ++++++++++
 .../dashboard/app/components/GitHubImportModal.tsx | 29 +++++++
 .../__tests__/GitHubImportModal.test.tsx           | 90 ++++++++++++++++++++++
 .../src/__tests__/import-translate-service.test.ts | 62 +++++++++++++++
 10 files changed, 346 insertions(+), 7 deletions(-)

Fusion-Task-Id: FN-8249

Fusion-Task-Lineage: 79c26d85-50f1-4d01-9341-a17db5e57f8f

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-17 16:46:42 -07:00
gsxdsm
b0654031bc FN-8251: hide overseer eye when oversight is off
Resolve inherited workflow oversight before rendering task-card overseer indicators.

- Resolve selected-workflow oversight using the planning workflow identity
- Fail closed for unknown, pending, malformed, and failed inherited settings
- Cover workflow changes and mobile suppression, and document the behavior
- Add a patch changeset for the corrected card indicator

Files changed:
 .changeset/fn-8251-card-eye-effective-oversight.md |   7 +
 docs/dashboard-guide.md                            |   4 +-
 packages/dashboard/app/components/TaskCard.tsx     | 116 ++++++++-------
 .../__tests__/TaskCard.oversight.test.tsx          | 161 ++++++++++++++++++++-
 .../app/components/__tests__/TaskCard.test.tsx     |   6 +-
 5 files changed, 234 insertions(+), 60 deletions(-)

Fusion-Task-Id: FN-8251

Fusion-Task-Lineage: 72dfa67e-e6d5-4557-91b3-23aff6dcf9e7

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-17 16:38:29 -07:00
gsxdsm
eee04bc1a8 FN-8248: fix Quick Chat popup stacking
Make Quick Chat and task popups honor their most recent interaction order.

- Place Quick Chat in the task-detail peer stack while retaining higher utility windows.
- Raise Create Room dialogs above Chat on each open, including mobile sheets.
- Add stacking regression coverage and operator documentation with screenshots.

Files changed:
 docs/assets/fn-8248-chat-above-task.png            | Bin 0 -> 55108 bytes
 docs/assets/fn-8248-mobile-create-room.png         | Bin 0 -> 56699 bytes
 docs/assets/fn-8248-task-above-chat.png            | Bin 0 -> 74263 bytes
 docs/dashboard-guide.md                            |   5 +-
 packages/dashboard/app/App.tsx                     |  13 +++-
 .../dashboard/app/components/CreateRoomModal.tsx   |  15 ++++-
 .../dashboard/app/components/FloatingWindow.tsx    |  11 +++-
 .../components/__tests__/CreateRoomModal.test.tsx  |  72 +++++++++++++++++++++
 .../FloatingWindowStack.cross-type.test.tsx        |  37 +++++++----
 .../app/components/floatingWindowStack.ts          |  10 +--
 10 files changed, 139 insertions(+), 24 deletions(-)

Fusion-Task-Id: FN-8248

Fusion-Task-Lineage: 94ef20f1-96da-4249-9812-169f780c9451

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-17 16:34:16 -07:00
gsxdsm
62f121e0c9 FN-8247: stop session advisor with oversight
Stop now persists session-advisor disablement and reflects inherited advisor state in task details.

- Persist an explicit advisor-off override and clear its live runtime when stopping oversight.
- Resolve workflow-level advisor defaults for task-detail icons and toggle behavior.
- Cover stop cleanup and desktop/mobile oversight state transitions with regression tests.
- Document the combined stop contract and add a patch changeset.

Files changed:
 .changeset/fn-8247-session-advisor-stop-and-icon.md       |   7 ++
 docs/dashboard-guide.md                            |   6 +-
 packages/dashboard/app/components/TaskDetailModal.tsx   |  86 +++++++++++------
 packages/dashboard/app/components/__tests__/TaskDetailModal.oversight-controls.test.tsx    | 104 +++++++++++++++++++++
 packages/dashboard/app/components/__tests__/TaskDetailModal.oversight-mobile.test.tsx      |  62 ++++++++++++
 packages/engine/src/__tests__/project-engine-stop-overseer-session-advisor.test.ts |  62 ++++++++++++
 packages/engine/src/project-engine.ts              |  13 ++-
 7 files changed, 310 insertions(+), 30 deletions(-)

Fusion-Task-Id: FN-8247

Fusion-Task-Lineage: dcb67af7-9a36-4b25-bafa-84722fe158a0

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-17 16:20:10 -07:00
gsxdsm
7517f2eddf FN-8239: align task card oversight icon state
Keep task-card overseer indicators aligned with resolved oversight settings.

- Gate transient Eye badges on the resolved effective oversight level.
- Suppress stale snapshots and empty header wrappers while inherited workflow settings load.
- Add regression coverage and document the consistent off-state behavior.

Files changed:
 .changeset/fn-8239-oversight-icon-consistency.md   |  7 ++++
 docs/dashboard-guide.md                            |  3 +-
 packages/dashboard/app/components/TaskCard.tsx     | 29 ++++++++++++----
 .../__tests__/TaskCard.oversight.test.tsx          | 40 ++++++++++++++++++++++
 .../app/components/__tests__/TaskCard.test.tsx     | 23 +++++++++++++
 5 files changed, 94 insertions(+), 8 deletions(-)

Fusion-Task-Id: FN-8239

Fusion-Task-Lineage: 2857358c-7626-4b04-b1b5-fa51c3a71418

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-17 14:35:07 -07:00
gsxdsm
9152d8fa61 FN-8229: remove background AI tasks pill
Replace the redundant footer AI session control with progress and action visibility in the session notification banner.

- Delete the BackgroundTasksIndicator component, styles, footer wiring, and obsolete translations.
- Surface non-planning generating and retained error sessions through the notification banner while leaving Planning in its dedicated view.
- Update session lifecycle, localization, documentation, and regression coverage.

Files changed:
 .../fn-8229-remove-ai-background-tasks-pill.md     |   7 +
 docs/dashboard-guide.md                            |   4 +-
 packages/dashboard/README.md                       |   1 -
 packages/dashboard/app/App.tsx                     |  28 +--
 .../app/__tests__/css-hygiene-scan.test.ts         |   2 -
 .../dashboard-component-color-tokenization.test.ts |   1 -
 packages/dashboard/app/api/legacy.ts               |   2 +-
 .../app/components/BackgroundTasksIndicator.css    | 130 -------------
 .../app/components/BackgroundTasksIndicator.tsx    | 210 ---------------------
 .../dashboard/app/components/ExecutorStatusBar.css |   3 -
 .../dashboard/app/components/ExecutorStatusBar.tsx |  30 +--
 .../app/components/SessionNotificationBanner.css   |  10 +
 .../app/components/SessionNotificationBanner.tsx   |  52 ++++-
 .../app/components/SubtaskBreakdownModal.tsx       |   7 +-
 .../app/components/__tests__/App.test.tsx          |  11 +-
 .../__tests__/ExecutorStatusBar.test.tsx           |   1 -
 .../__tests__/SessionNotificationBanner.test.tsx   |  88 ++++-----
 .../components/__tests__/utility-mobile.test.tsx   | 191 +------------------
 .../app/components/dashboard/DashboardBanners.tsx  |   8 +-
 .../dashboard/__tests__/DashboardBanners.test.tsx  |  30 ++-
 .../hooks/__tests__/useBackgroundSessions.test.ts  |  21 ++-
 .../dashboard/app/hooks/useBackgroundSessions.ts   |  21 ++-
 .../app/utils/__tests__/appLifecycle.test.ts       |  61 ++----
 packages/dashboard/app/utils/appLifecycle.ts       |  16 +-
 packages/dashboard/src/routes.ts                   |   2 +-
 packages/i18n/locales/en/app.json                  |  33 +---
 packages/i18n/locales/es/app.json                  |  44 ++---
 packages/i18n/locales/fr/app.json                  |  44 ++---
 packages/i18n/locales/ko/app.json                  |  44 ++---
 packages/i18n/locales/zh-CN/app.json               |  44 ++---
 packages/i18n/locales/zh-TW/app.json               |  44 ++---
 packages/i18n/src/resources.d.ts                   |  48 ++---
 32 files changed, 316 insertions(+), 922 deletions(-)

Fusion-Task-Id: FN-8229

Fusion-Task-Lineage: a232fb04-08ff-4f0a-a440-e94545243e61

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-17 14:25:30 -07:00
gsxdsm
a746a02f3b FN-8236: group mobile Settings sections by topic
Group the mobile Settings picker by desktop navigation topics while preserving scoped section adjacency.

- Render mobile section choices in native topic optgroups
- Preserve Global-before-Project ordering and search-aware empty groups
- Cover grouped picker behavior and document the mobile navigation

Files changed:
docs/dashboard-guide.md                            |  2 +-
packages/dashboard/app/components/SettingsModal.tsx | 31 +++++++--
packages/dashboard/app/components/__tests__/settings-mobile.test.tsx | 80 ++++++++++++++++++++++
3 files changed, 107 insertions(+), 6 deletions(-)

Fusion-Task-Id: FN-8236

Fusion-Task-Lineage: 3a90bc72-2393-4b41-a7c3-2c9e30c94e01

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-17 14:13:41 -07:00
gsxdsm
595c27ceae FN-8235: add mobile Kanban column snapping
Mobile Kanban now settles user swipes on the nearest column.

- add a mobile-only, user-driven scroll-end snapping hook
- wire snapping to every live Board rendering and cover interaction boundaries
- document the behavior and add a patch changeset

Files changed:
 .changeset/fn-8235-mobile-kanban-snap.md           |   7 +
 docs/dashboard-guide.md                            |   6 +
 packages/dashboard/app/components/Board.tsx        |  19 ++-
 .../app/components/__tests__/board-mobile.test.tsx |  14 +-
 .../hooks/__tests__/useColumnScrollSnap.test.ts    | 159 ++++++++++++++++++
 .../dashboard/app/hooks/useColumnScrollSnap.ts     | 179 +++++++++++++++++++++
 6 files changed, 380 insertions(+), 4 deletions(-)

Fusion-Task-Id: FN-8235

Fusion-Task-Lineage: 46881e93-59f2-49d6-b29e-fa6150420f2a

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-17 13:53:13 -07:00
gsxdsm
44c784264a FN-8237: refine mobile footer quick actions
Make mobile footer quick actions configurable, reorderable, and immediately applied.

- Expand the selectable quick-action universe and preserve valid configured items.
- Add General settings controls for reordering, adding, and removing footer actions.
- Wire updated navigation settings through the dashboard and document the behavior.

Files changed:
 .../fn-8237-mobile-nav-quick-actions-refinement.md |   7 +
 docs/dashboard-guide.md                            |   2 +-
 docs/settings-reference.md                         |   2 +-
 .../src/__tests__/mobile-nav-primary-items.test.ts |  17 +-
 packages/core/src/mobile-nav-primary-items.ts      |  44 ++-
 packages/dashboard/app/App.tsx                     |   4 +-
 packages/dashboard/app/components/AppModals.tsx    |   2 +
 packages/dashboard/app/components/MobileNavBar.tsx | 319 ++++-----------------
 .../dashboard/app/components/SettingsModal.tsx     |   4 +
 .../app/components/__tests__/MobileNavBar.test.tsx |  18 +-
 .../__tests__/SettingsModal.general.test.tsx       |  20 ++
 .../dashboard/app/components/dashboard/MainContent.tsx |   2 +
 .../dashboard/app/components/dashboard/types.ts    |   1 +
 .../settings/sections/GeneralSection.tsx           |  75 ++---
 packages/dashboard/app/hooks/useAppSettings.ts     |  11 +
 packages/i18n/locales/en/app.json                  |   5 +-
 16 files changed, 220 insertions(+), 313 deletions(-)

Fusion-Task-Id: FN-8237

Fusion-Task-Lineage: cff91b30-7ef9-4557-8880-cc71ed74dafb

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-17 13:45:41 -07:00
gsxdsm
f0b6e4be0c FN-8233: reflect oversight state in menu trigger
Make the Oversight menu trigger icon reflect the effective overseer configuration.

- Switch the trigger between Eye and EyeOff based on oversight level and Session advisor state.
- Cover icon updates after changing either control.
- Document the combined trigger-state behavior.

Files changed:
 docs/dashboard-guide.md                            |  6 ++-
 .../dashboard/app/components/TaskDetailModal.tsx   | 10 +++-
 .../TaskDetailModal.oversight-controls.test.tsx    | 61 ++++++++++++++++++++++
 3 files changed, 74 insertions(+), 3 deletions(-)

Fusion-Task-Id: FN-8233

Fusion-Task-Lineage: 16012bf1-94f8-4461-90b6-95d309aa9a6d

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-17 13:38:32 -07:00
gsxdsm
2f7da57601 FN-8230: translate GitHub import issues across pages
GitHub import auto-translation now covers every reachable issue page within the fetch cap.

- Translate and retain per-page results while invalidating changed or reloaded issues
- Raise the translation budget for a 300-issue traversal and cover pagination regressions
- Document the GitHub-only pagination behavior and add a patch changeset

Files changed:
 .changeset/fn-8230-import-translate-pagination.md  |   7 ++
 docs/dashboard-guide.md                            |   2 +-
 docs/settings-reference.md                         |   4 +-
 .../dashboard/app/components/GitHubImportModal.tsx |  33 ++++++---
 .../components/GitHubImportTranslateControls.tsx   |  80 ++++++++++++---------
 .../__tests__/GitHubImportAutoTranslate.test.tsx   |  66 ++++++++++++-----
 .../__tests__/GitHubImportModal.test.tsx           |  32 +++++++++
 .../dashboard/src/__tests__/ai-translate.test.ts   |  20 ++++++
 packages/dashboard/src/ai-translate.ts             |   6 +-
 packages/dashboard/src/import-translate-service.ts | Bin 11109 -> 11099 bytes
 10 files changed, 186 insertions(+), 64 deletions(-)

Fusion-Task-Id: FN-8230

Fusion-Task-Lineage: 2c3ce6f6-a8f3-46a9-b93a-0192f0cdaf54

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-17 13:31:42 -07:00
gsxdsm
9cdddab504 FN-8231: dismiss mobile mailbox details on Back
Mobile mailbox overlays now close through the shared navigation history before leaving the message list.

- Register mobile message, composer, and approval overlays as navigation modals.
- Remove matching history entries when mailbox overlays close or change state.
- Add mobile back-navigation coverage and document the behavior.

Files changed:
 docs/dashboard-guide.md                            |   3 +-
 packages/dashboard/app/components/MailboxView.tsx  | 117 ++++++++++++----
 .../app/components/__tests__/MailboxView.test.tsx  | 148 +++++++++++++++++++++
 3 files changed, 241 insertions(+), 27 deletions(-)

Fusion-Task-Id: FN-8231

Fusion-Task-Lineage: b6f06ed9-b03f-45d9-b90b-28b565231bcc

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-17 13:10:39 -07:00
gsxdsm
2e9c255268 FN-8228: support Back navigation in import detail sheets
Make mobile Back dismiss import detail sheets before the parent import modal.

- Register nested navigation entries for GitHub and GitLab detail sheets.
- Centralize detail selection cleanup across dismissal and successful actions.
- Cover native and browser Back flows and document the mobile behavior.

Files changed:
 docs/dashboard-guide.md                            |   7 ++
 .../dashboard/app/components/GitHubImportModal.tsx |  54 +++++++--
 .../__tests__/GitHubImportModal.test.tsx           | 132 ++++++++++++++++++++-
 3 files changed, 180 insertions(+), 13 deletions(-)

Fusion-Task-Id: FN-8228

Fusion-Task-Lineage: 36062d52-ad6b-4d5c-87ff-5a6959feecc9

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-17 12:53:46 -07:00
gsxdsm
54565a092d docs: add Claude Agent SDK bridge provider plan
Capture the implementation-ready plan for a conditional, experimental
pi-claude-bridge / Agent SDK provider behind policy and isolation gates.
2026-07-17 12:15:09 -07:00
gsxdsm
5d2c3be6a0 FN-8221: clear inactive planner overseer state
Clear retained planner overseer state when effective oversight is disabled.

- Remove monitor, recovery, advisor, and dedup runtime for oversight-off tasks.
- Suppress stale oversight-off Eye badges in task cards.
- Cover cleanup and badge behavior with regression tests.
- Document the runtime snapshot invariant and add a patch changeset.

Files changed:
 .changeset/fn-8221-overseer-badge-oversight-off.md |   7 ++
 docs/architecture.md                               |   4 +
 packages/dashboard/app/components/TaskCard.tsx     |   9 +-
 .../app/components/__tests__/TaskCard.test.tsx     |  20 ++++
 .../__tests__/planner-overseer-off-cleanup.test.ts | 119 +++++++++++++++++++++
 packages/engine/src/project-engine.ts              |  12 +++
 6 files changed, 170 insertions(+), 1 deletion(-)

Fusion-Task-Id: FN-8221

Fusion-Task-Lineage: 01c9d838-fbe4-4d34-8eb5-d735cf35e581

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-17 11:27:44 -07:00