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
gsxdsm
eb7d223a03
FN-8207: add task reassignment for delegated work
...
Correct delegation routing for duplicate tasks and enable explicit task owner reassignment.
- Preserve requested assignee and todo routing on duplicate canonical tasks
- Add governed fn_task_assign to engine, heartbeat, triage, workflow, and chat sessions
- Cover assignment validation, truthful delegation responses, and tool availability
Files changed:
.changeset/fn-8207-delegate-assign.md | 7 ++
docs/agents.md | 6 ++
packages/core/src/types.ts | 1 +
packages/core/src/usage-events.ts | 2 +-
.../dashboard/src/__tests__/chat-manager.test.ts | 2 +
packages/dashboard/src/__tests__/chat.test.ts | 2 +
packages/dashboard/src/chat.ts | 2 +
.../engine/src/__tests__/agent-action-gate.test.ts | 2 +
.../src/__tests__/agent-tools-delegation.test.ts | 99 ++++++++++++++++++-
.../src/__tests__/agent-tools-task-assign.test.ts | 75 +++++++++++++++
.../src/__tests__/gating-classifications.test.ts | 1 +
.../src/__tests__/heartbeat-executor.test.ts | 8 +-
.../src/__tests__/permanent-agent-gating.test.ts | 2 +
.../src/__tests__/step-session-executor.test.ts | 4 +-
packages/engine/src/__tests__/triage.test.ts | 5 +-
packages/engine/src/agent-heartbeat.ts | 4 +-
packages/engine/src/agent-tools.ts | 105 ++++++++++++++++++++-
packages/engine/src/executor.ts | 3 +
packages/engine/src/gating-classifications.ts | 1 +
packages/engine/src/index.ts | 2 +
packages/engine/src/step-session-executor.ts | 2 +
packages/engine/src/triage.ts | 2 +
22 files changed, 324 insertions(+), 13 deletions(-)
Fusion-Task-Id: FN-8207
Fusion-Task-Lineage: db6f3876-bdc8-4279-b726-29344d9acdb9
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-17 10:53:19 -07:00
gsxdsm
86c281bc38
FN-8215: add GitHub issue comment posting
...
Enable operators to post upstream GitHub issue comments from the Import Tasks preview.
- Add authenticated GitHub CLI and REST fallback support for creating issue comments.
- Expose a validated API route and inline issue-comment composer with optimistic preview updates.
- Add localized UI copy, documentation, release metadata, and coverage for client, route, and modal behavior.
Files changed:
.changeset/fn-8215-github-issue-add-comment.md | 7 ++
docs/dashboard-guide.md | 9 ++-
packages/dashboard/app/api/legacy.ts | 13 ++++
.../dashboard/app/components/GitHubImportModal.css | 34 +++++++++
.../dashboard/app/components/GitHubImportModal.tsx | 68 +++++++++++++++++-
.../__tests__/GitHubImportModal.test.tsx | 62 +++++++++++++++++
packages/dashboard/src/__tests__/github.test.ts | 48 +++++++++++++
.../dashboard/src/__tests__/routes-github.test.ts | 80 ++++++++++++++++++++++
packages/dashboard/src/github.ts | 49 +++++++++++++
.../dashboard/src/routes/register-git-github.ts | 56 +++++++++++++++
packages/i18n/locales/en/app.json | 5 ++
packages/i18n/locales/es/app.json | 5 ++
packages/i18n/locales/fr/app.json | 5 ++
packages/i18n/locales/ko/app.json | 5 ++
packages/i18n/locales/zh-CN/app.json | 5 ++
packages/i18n/locales/zh-TW/app.json | 5 ++
packages/i18n/src/resources.d.ts | 5 ++
17 files changed, 459 insertions(+), 2 deletions(-)
Fusion-Task-Id: FN-8215
Fusion-Task-Lineage: 0fe6acca-e86d-484f-a97f-5746d32717a1
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-17 10:37:00 -07:00
gsxdsm
28878d8125
FN-8206: validate landed merge checkout
...
Validate mission assertions against the delivered merge revision rather than an ambient working branch.
- Materialize and dispose a detached checkout at mergeDetails.commitSha for validator sessions.
- Defer failed validation when landed-code ancestry cannot be proven, preventing spurious fix features.
- Link validator runs to their board tasks and document the inspection behavior.
Files changed:
.changeset/fn-8206-mission-validator-inspection-root.md | 7 +
docs/missions.md | 2 +
packages/engine/src/__tests__/mission-execution-loop.test.ts | 278 +++++++++++++--------
packages/engine/src/mission-execution-loop.ts | 160 ++++++++----
4 files changed, 298 insertions(+), 149 deletions(-)
Fusion-Task-Id: FN-8206
Fusion-Task-Lineage: dfd1eb21-fcdf-4722-acb8-416750f4f40b
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-17 10:00:18 -07:00
gsxdsm
67fac31f5c
FN-8202: prevent mDNS hostname conflicts
...
Prevent self-conflicting mDNS advertisements and allow automatic LAN discovery to be disabled.
- Advertise a Fusion-owned DNS-SD hostname derived from the node ID.
- Add a global automatic LAN discovery opt-out for dashboard and serve.
- Cover hostname isolation and discovery startup behavior with tests and documentation.
Files changed:
.changeset/fn-8202-mdns-hostname-fix.md | 7 +++++
docs/settings-reference.md | 1 +
docs/shared-mesh-protocol.md | 2 +-
.../cli/src/commands/__tests__/dashboard.test.ts | 24 ++++++++++++++++
packages/cli/src/commands/__tests__/serve.test.ts | 12 ++++++++
packages/cli/src/commands/dashboard.ts | 24 +++++++++++-----
packages/cli/src/commands/serve.ts | 24 +++++++++++-----
packages/core/src/__tests__/node-discovery.test.ts | 32 +++++++++++++++++++++-
.../core/src/__tests__/settings-defaults.test.ts | 8 ++++++
packages/core/src/node-discovery.ts | 31 +++++++++++++++++++++
packages/core/src/settings-schema.ts | 5 ++++
packages/core/src/types.ts | 2 ++
12 files changed, 156 insertions(+), 16 deletions(-)
Fusion-Task-Id: FN-8202
Fusion-Task-Lineage: c1d6e36b-bda7-4968-b40c-c14e16ebda28
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-17 09:54:44 -07:00
gsxdsm
d6860b5b76
FN-8204: add configurable mobile footer quick actions
...
Add an ordered project setting for mobile footer quick-action destinations.
- Render selected destinations as primary mobile tabs and retain omitted choices in More.
- Provide settings controls, validation, translations, documentation, and regression coverage.
- Add a minor changeset for the published CLI package.
Files changed:
.changeset/fn-8204-mobile-nav-primary-items.md | 7 +
docs/dashboard-guide.md | 4 +
docs/settings-reference.md | 4 +
.../src/__tests__/mobile-nav-primary-items.test.ts | 23 +++
packages/core/src/index.ts | 9 ++
packages/core/src/mobile-nav-primary-items.ts | 55 +++++++
packages/core/src/settings-schema.ts | 1 +
packages/core/src/types.ts | 7 +
packages/dashboard/app/App.tsx | 2 +
.../mobile-feature-access-regression.test.tsx | 19 +++
packages/dashboard/app/components/MobileNavBar.tsx | 159 +++++----------------
.../app/components/__tests__/MobileNavBar.test.tsx | 16 +++
.../app/components/settings/section-keys.ts | 1 +
.../settings/sections/GeneralSection.search.ts | 9 ++
.../settings/sections/GeneralSection.tsx | 45 ++++++
.../settings-default-descriptions.test.tsx | 1 +
packages/dashboard/app/hooks/useAppSettings.ts | 5 +
packages/i18n/locales/en/app.json | 4 +
18 files changed, 244 insertions(+), 127 deletions(-)
Fusion-Task-Id: FN-8204
Fusion-Task-Lineage: 077de4c4-d281-401d-bddd-e5ce8e91d4ab
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-17 09:27:33 -07:00
gsxdsm
e445b3e367
FN-8201: pin pi dependency versions
...
Pin the pi runtime packages to a single exact version so global npm installs resolve a compatible set.
- Pin pi-ai and pi-coding-agent declarations across workspace manifests
- Add a guard and tests that reject ranged or mismatched pi versions
- Document the source-install fallback and add a patch changeset
Files changed:
.changeset/fn-8201-pin-pi-versions.md | 7 ++
docs/getting-started.md | 3 +
package.json | 6 +-
packages/cli/package.json | 4 +-
packages/cli/src/__tests__/package-config.test.ts | 18 +++-
packages/core/package.json | 2 +-
packages/dashboard/package.json | 2 +-
packages/engine/package.json | 4 +-
packages/pi-claude-cli/package.json | 8 +-
.../__tests__/check-pi-versions-pinned.test.mjs | 45 ++++++++
scripts/check-pi-versions-pinned.mjs | 120 +++++++++++++++++++++
11 files changed, 205 insertions(+), 14 deletions(-)
Fusion-Task-Id: FN-8201
Fusion-Task-Lineage: bf0ac363-df5f-4445-835b-cfd2d4909659
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-17 09:12:01 -07:00
gsxdsm
7b540959c5
FN-8198: add Todo item task creation API
...
Add API endpoints that turn Todo lists and items into executable board tasks.
- Expose Todo list and item read endpoints with async store parity.
- Create tasks from Todo items with validation, project scoping, provenance, and workflow-default placement.
- Document the scripting flow and cover dashboard and PostgreSQL behavior.
Files changed:
.changeset/fn-8198-todo-api.md | 7 +
docs/todo-view.md | 18 ++-
.../src/__tests__/postgres/todo-store.pg.test.ts | 13 ++
packages/core/src/async-todo-store.ts | 17 +++
.../dashboard/src/__tests__/todo-routes.test.ts | 157 ++++++++++++++++++++-
packages/dashboard/src/todo-routes.ts | 128 ++++++++++++++++-
6 files changed, 335 insertions(+), 5 deletions(-)
Fusion-Task-Id: FN-8198
Fusion-Task-Lineage: f8d5032b-4844-43c9-97d1-3cc7d13d0ce1
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-17 01:23:32 -07:00
gsxdsm
a51cba0d69
FN-8197: move merge details to summary tab
...
Keep completed task merge metadata with its completion summary.
- Relocate the Merge Details card from Definition to the done-only Summary tab.
- Cover merge-detail states and Definition/mobile containment with dashboard tests.
- Document the Summary tab behavior and add a patch changeset.
Files changed:
.changeset/fn-8197-merge-details-summary-tab.md | 7 +++
docs/dashboard-guide.md | 2 +-
packages/dashboard/app/components/TaskDetailModal.tsx | 4 +-
packages/dashboard/app/components/TaskSummaryTab.tsx | 9 +++
packages/dashboard/app/components/__tests__/TaskDetailModal.responsive-and-dependencies.test.tsx | 49 ++++++++++------
packages/dashboard/app/components/__tests__/TaskDetailModal.summary-tab.test.tsx | 65 ++++++++++++++++++++++
6 files changed, 115 insertions(+), 21 deletions(-)
Fusion-Task-Id: FN-8197
Fusion-Task-Lineage: f4aac014-1e8d-4b8f-91f1-ba40ae879508
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-17 01:17:22 -07:00
gsxdsm
6183621ca3
FN-8196: add mobile footer stat tooltips
...
Make compact mobile executor footer statistics identifiable on tap.
- Add accessible tap targets and portaled tooltips for mobile footer statistics.
- Dismiss stat tooltips on repeat tap, outside interaction, Escape, scrolling, and viewport changes.
- Cover mobile behavior while preserving desktop and tablet inline labels.
- Document the interaction and add a patch changeset.
Files changed:
.changeset/fn-8196-mobile-footer-stat-tooltips.md | 7 +
docs/dashboard-guide.md | 2 +
.../dashboard/app/components/ExecutorStatusBar.css | 47 +++++-
.../dashboard/app/components/ExecutorStatusBar.tsx | 166 +++++++++++++++++++--
.../__tests__/ExecutorStatusBar.test.tsx | 132 +++++++++++++++-
5 files changed, 333 insertions(+), 21 deletions(-)
Fusion-Task-Id: FN-8196
Fusion-Task-Lineage: c566b614-739d-4538-85c5-a8ff62720f4d
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-17 01:12:08 -07:00
gsxdsm
87ffb24fca
FN-8194: align task detail inline controls
...
Align task-detail actions with Quick Add while preserving existing integrations.
- Add inline attachment and eligible GitHub tracking controls
- Replace the Oversight menu dots with an Eye icon and reorder metadata actions
- Cover action order, integration behavior, icon rendering, and mobile wrapping
Files changed:
.changeset/fn-8194-task-detail-inline-controls.md | 7 ++
docs/dashboard-guide.md | 6 +-
.../dashboard/app/components/TaskDetailModal.tsx | 99 +++++++++++++++-------
...lModal.inline-editing-and-integrations.test.tsx | 80 ++++++++++++++++-
.../TaskDetailModal.mock-coverage.test.ts | 1 +
.../TaskDetailModal.oversight-controls.test.tsx | 19 +++++
...etailModal.responsive-and-dependencies.test.tsx | 5 +-
.../__tests__/TaskDetailModal.test-helpers.ts | 10 +--
8 files changed, 187 insertions(+), 40 deletions(-)
Fusion-Task-Id: FN-8194
Fusion-Task-Lineage: 8de0e36f-b428-401c-98aa-35964c556a39
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-17 00:55:57 -07:00
gsxdsm
3fdc2c1fb7
FN-8193: add collapsible sticky provider lists
...
Keep model-provider headers visible and let users collapse provider model rows with persisted local preferences.
- Add sticky provider headers and accessible collapse toggles to CustomModelDropdown
- Persist collapsed provider groups locally while keeping filtered matches visible
- Cover collapse, keyboard navigation, storage recovery, and empty-state behavior
- Document the dashboard behavior and add a minor changeset
Files changed:
.changeset/fn-8193-collapsible-provider-lists.md | 7 ++
docs/dashboard-guide.md | 1 +
.../app/components/CustomModelDropdown.css | 48 +++++++-
.../app/components/CustomModelDropdown.tsx | 110 ++++++++++++++----
.../__tests__/CustomModelDropdown.test.tsx | 129 +++++++++++++++++++++
5 files changed, 266 insertions(+), 29 deletions(-)
Fusion-Task-Id: FN-8193
Fusion-Task-Lineage: 4fbc43a8-ef81-463c-b4d0-5f00a57ab27b
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-17 00:48:36 -07:00
gsxdsm
ac52438554
FN-8192: prevent mobile confirmation ghost-click dismissal
...
Keep mobile task-delete confirmations open through delayed compatibility clicks.
- Gate backdrop dismissal until the opening gesture settles.
- Cover deliberate backdrop dismissal and mobile ghost-click behavior.
- Document the regression and add a patch changeset.
Files changed:
.changeset/fn-8192-mobile-confirm-ghost-click.md | 7 +++
.../confirm-dialog-mobile-ghost-click-dismiss.md | 53 ++++++++++++++++++++++
.../dashboard/app/components/ConfirmDialog.tsx | 23 +++++++++-
.../components/__tests__/ConfirmDialog.test.tsx | 34 ++++++++++++--
.../app/hooks/__tests__/useConfirm.test.ts | 32 ++++++++++++-
5 files changed, 143 insertions(+), 6 deletions(-)
Fusion-Task-Id: FN-8192
Fusion-Task-Lineage: ea08a6c0-0f2e-4ec3-8ad7-23cdc4a5d7f1
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-17 00:29:48 -07:00
gsxdsm
6206af8ce9
FN-8146: restore persistent theme selection
...
Restore the full Settings theme picker while preserving Shadcn Mono selections across reloads.
- Merge the Settings selector into the current-theme row with shared dropdown controls.
- Restore Shadcn Mono across theme metadata, token styles, and dashboard/desktop bootstrap validation.
- Scope Mono light swatches correctly and cover restored options and persistence with tests.
Files changed:
.changeset/FN-8146-theme-dropdown-current-row.md | 7 +++
docs/dashboard-guide.md | 5 ++-
packages/core/src/types/execution-and-ui.ts | 1 +
.../dashboard/app/components/ThemeDropdown.css | 52 ++++++++++++++++++++++
.../dashboard/app/components/ThemeDropdown.tsx | 42 ++++++++++++++---
.../dashboard/app/components/ThemeSelector.css | 42 +----------------
.../dashboard/app/components/ThemeSelector.tsx | 45 +++++--------------
.../components/__tests__/ThemeDropdown.test.tsx | 46 ++++++++++++++++---
.../components/__tests__/ThemeSelector.test.tsx | 29 ++++++++----
.../__tests__/CommandCenterControls.test.tsx | 15 ++++++-
packages/dashboard/app/components/themeOptions.ts | 2 +
.../dashboard/app/hooks/__tests__/useTheme.test.ts | 8 ++--
packages/dashboard/app/hooks/useTheme.ts | 8 ++--
packages/dashboard/app/index.html | 5 +--
packages/dashboard/app/public/theme-data.css | 16 ++++++-
packages/desktop/src/renderer/index.html | 1 +
16 files changed, 213 insertions(+), 111 deletions(-)
Fusion-Task-Id: FN-8146
Fusion-Task-Lineage: 32ec7f21-ee6b-4459-8e7b-f5a5435c4994
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-17 00:00:46 -07:00
gsxdsm
5f70447a62
FN-8108: require resolution for triage duplicate tasks
...
Require explicit resolution for triage-detected duplicate tasks.
- Add configurable prompt, keep, and delete handling for explicit duplicate markers.
- Surface linked duplicate decisions in task details and scheduling settings.
- Preserve task failure provenance and strengthen lifecycle recovery coverage.
Files changed:
.changeset/blocked-park-survives-graph-teardown.md | 7 +
.changeset/failure-provenance-promoter-marker.md | 7 +
.changeset/fn-8108-triage-duplicate-resolution.md | 7 +
.changeset/veto-progressing-does-not-clear.md | 7 +
docs/settings-reference.md | 2 +
.../completed-promotion-failure-provenance.test.ts | 31 +++
.../core/src/__tests__/duplicate-intake.test.ts | 11 ++
.../src/completed-promotion-failure-provenance.ts | 38 +++-
packages/core/src/duplicate-intake.ts | 29 +++
packages/core/src/index.gate.ts | 1 +
packages/core/src/index.ts | 3 +-
packages/core/src/settings-schema.ts | 1 +
packages/core/src/types.ts | 6 +
.../dashboard/app/components/TaskDetailModal.tsx | 38 +++-
.../__tests__/TaskDetailModal.rendering.test.tsx | 26 +++
.../settings/sections/SchedulingSection.search.ts | 9 +
.../settings/sections/SchedulingSection.tsx | 15 ++
.../__tests__/routes-tasks-near-duplicate.test.ts | 31 +++
.../src/routes/register-task-workflow-routes.ts | 19 ++
.../__tests__/executor-task-done-blocked.test.ts | 212 ++++++++++++++++++++-
packages/engine/src/__tests__/merger-ai.test.ts | 56 +++++-
.../__tests__/overseer-noop-finalize-veto.test.ts | 64 ++++++-
.../explicit-duplicate-marker-sweep.test.ts | 19 +-
packages/engine/src/__tests__/self-healing.test.ts | 53 ++++++
.../triage-explicit-duplicate-marker.test.ts | 22 ++-
packages/engine/src/executor.ts | 30 +++
packages/engine/src/merger-ai.ts | 5 +-
packages/engine/src/overseer-noop-finalize-veto.ts | 148 ++++++++++----
packages/engine/src/self-healing.ts | 29 ++-
packages/engine/src/triage.ts | 58 +++---
packages/i18n/locales/en/app.json | 15 +-
packages/i18n/src/resources.d.ts | 13 +-
32 files changed, 897 insertions(+), 115 deletions(-)
Fusion-Task-Id: FN-8108
Fusion-Task-Lineage: 8e732bad-d418-426e-85e1-903a7f990fba
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-16 22:11:35 -07:00