gsxdsm
29bb6d0dc2
FN-8868: restore durable agent activity telemetry
...
Restore Activity telemetry for durable agent sessions.
- Emit session-start and usage events across durable agent lanes.
- Count durable agent sessions and user messages in Activity analytics.
- Cover lifecycle wiring and telemetry persistence with tests.
Files changed: .../fn-8868-durable-agent-activity-telemetry.md | 7 +
docs/dashboard-guide.md | 8 +-
.../message-store-user-message-telemetry.test.ts | 73 ++++++++++
...mmand-center-activity-durable-agents.pg.test.ts | 158 +++++++++++++++++++++
packages/core/src/board/activity-analytics.ts | 12 +-
packages/core/src/stores/message-store.ts | 16 +++
packages/core/src/task-store/async/async-events.ts | 11 ++
.../dashboard/src/__tests__/chat-manager.test.ts | 88 ++++++++++++
packages/dashboard/src/chat.ts | 17 +++
.../__tests__/agent-usage-telemetry-lanes.test.ts | 84 +++++++++++
.../__tests__/agent-usage-telemetry-wiring.test.ts | 119 ++++++++++++++++
.../src/__tests__/agent-usage-telemetry.test.ts | 33 +++++
.../engine/src/__tests__/executor-prompt.test.ts | 8 ++
packages/engine/src/__tests__/merger-ai.test.ts | 11 ++
.../src/__tests__/merger-merge-lifecycle.test.ts | 21 ++-
packages/engine/src/__tests__/reviewer.test.ts | 58 +++++++-
.../src/__tests__/step-session-executor.test.ts | 37 ++++-
packages/engine/src/__tests__/triage.test.ts | 31 ++++
packages/engine/src/agent-heartbeat.ts | 43 ++++++
packages/engine/src/agents/agent-logger.ts | 30 +++-
.../engine/src/agents/agent-usage-telemetry.ts | 30 ++++
packages/engine/src/execution/reviewer.ts | 41 +++++-
.../engine/src/execution/step-session-executor.ts | 12 ++
packages/engine/src/executor.ts | 27 +++-
packages/engine/src/merge/merger-ai.ts | 7 +
packages/engine/src/merger.ts | 120 +++++++++++++++-
packages/engine/src/triage.ts | 5 +
27 files changed, 1085 insertions(+), 22 deletions(-)
Fusion-Task-Id: FN-8868
Fusion-Task-Lineage: 0aa2ee4e-4d40-4adc-a510-bf8f4b1c0233
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-09 10:28:24 -07:00
gsxdsm
5108cfc312
FN-8906: scope Stats runtime-status assertions
...
Scope Task Detail Stats status assertions to their semantic region.
- Centralize the shared Stats runtime-status assertion helper.
- Update Stats-tab integration assertions to avoid ambiguous status queries.
Files changed:
...lModal.inline-editing-and-integrations.test.tsx | 10 ++++++++--
.../__tests__/TaskDetailModal.rendering.test.tsx | 19 ++----------------
.../__tests__/TaskDetailModal.test-helpers.ts | 23 +++++++++++++++++++++-
3 files changed, 32 insertions(+), 20 deletions(-)
Fusion-Task-Id: FN-8906
Fusion-Task-Lineage: 980f24a1-0409-46ba-9957-a87329e9831e
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-09 10:03:49 -07:00
gsxdsm
6ee8994767
FN-8881: test Planning Mode image import parity
...
Cover Planning Mode image-context import behavior at both responsive breakpoints.
- Exercise desktop and mobile Planning Mode actions with image-bearing issue comments.
- Assert provider metadata and every image-bearing body are forwarded without a client-side cap.
Files changed:
.../__tests__/GitHubImportModal.test.tsx | 58 ++++++++++++++--------
1 file changed, 36 insertions(+), 22 deletions(-)
Fusion-Task-Id: FN-8881
Fusion-Task-Lineage: e14cf0a6-a967-46ff-9d65-3e4fabbf9f45
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-09 09:21:29 -07:00
gsxdsm
c7c879905b
FN-8903: add event-driven GitHub CI merge checks
...
Persist ingested GitHub CI signals and use them to assess merge readiness.
- Store project-scoped GitHub check states with retention maintenance.
- Resolve configured required checks from ingested signals during PR merge decisions.
- Add delivery, lifecycle, persistence, and retention coverage with operator documentation.
Files changed:
.changeset/fn-8903-event-driven-checks.md | 7 ++
docs/architecture.md | 1 +
docs/settings-reference.md | 2 +-
docs/signals-connectors.md | 2 +-
.../src/commands/__tests__/task-lifecycle.test.ts | 50 ++++++++-
packages/cli/src/commands/task-lifecycle.ts | 7 +-
.../core/src/__tests__/ingested-checks.test.ts | 66 +++++++++++
.../postgres/github-check-states.pg.test.ts | 71 ++++++++++++
packages/core/src/config/index.ts | 1 +
packages/core/src/config/ingested-checks.ts | 32 ++++++
packages/core/src/index.ts | 10 ++
.../0048_fn_8903_github_check_states.sql | 32 ++++++
packages/core/src/postgres/schema-applier.ts | 15 ++-
packages/core/src/postgres/schema/project.ts | 29 ++++-
.../core/src/task-store/async/async-ci-checks.ts | 104 ++++++++++++++++++
packages/core/src/task-store/async/index.ts | 1 +
packages/core/src/types.ts | 2 +
packages/dashboard/src/__tests__/github.test.ts | 121 ++++++++++++++++++++-
.../src/__tests__/register-signal-routes.test.ts | 81 +++++++++++++-
packages/dashboard/src/github.ts | 74 +++++++++----
.../dashboard/src/routes/register-git-github.ts | 29 +++--
.../dashboard/src/routes/register-signal-routes.ts | 10 +-
.../src/routes/register-task-workflow-routes.ts | 14 ++-
packages/dashboard/src/signal-source.ts | 23 ++++
packages/dashboard/src/signal-sources/github.ts | 2 +
.../self-healing-github-check-retention.test.ts | 121 +++++++++++++++++++++
packages/engine/src/self-healing.ts | 23 ++++
27 files changed, 878 insertions(+), 52 deletions(-)
Fusion-Task-Id: FN-8903
Fusion-Task-Lineage: b2643587-c568-4b6c-8b3a-d50a6165963d
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-09 09:14:56 -07:00
gsxdsm
673b962dfe
FN-8904: fix GitHub PR conflict route tests
...
Align PR merge route mocks with the pre-flight readiness check.
- Add coverage for pre-flight merge blockers and missing head commits
- Sequence refreshed status mocks for post-failure conflict diagnostics
- Document the two-stage merge-status contract
Files changed:
.../dashboard/src/__tests__/routes-github.test.ts | 181 ++++++++++++++++-----
.../dashboard/src/routes/register-git-github.ts | 10 +-
2 files changed, 140 insertions(+), 51 deletions(-)
Fusion-Task-Id: FN-8904
Fusion-Task-Lineage: dabf463f-4f04-47a7-8ccb-7b158adaa767
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-09 08:56:18 -07:00
gsxdsm
b6af36916e
FN-8877: import GitHub issue images into planning mode
...
Planning Mode now preserves eligible GitHub issue and comment images through task creation.
- Capture image-bearing issue and cached comment bodies when starting Planning Mode.
- Persist validated image URLs with planning provenance and attach them after task creation.
- Bound browser transport and server downloads while covering the import flow with regression tests.
Files changed:
.../fn-8877-planning-issue-image-attachments.md | 7 ++
docs/dashboard-guide.md | 4 +-
.../dashboard/app/components/GitHubImportModal.tsx | 43 +++++--
.../__tests__/GitHubImportModal.test.tsx | 111 ++++++++++++++++++
.../src/__tests__/issue-image-attachments.test.ts | 33 +++++-
.../planning-body-parser-integration.test.ts | 58 ++++++++++
.../__tests__/planning-e2e-plan-creation.test.ts | 34 ++++++
.../__tests__/routes-planning-issue-images.test.ts | 127 +++++++++++++++++++++
.../src/__tests__/routes-planning-tracking.test.ts | 3 +
packages/dashboard/src/issue-image-attachments.ts | 37 ++++--
packages/dashboard/src/issue-image-markup.ts | 6 +
packages/dashboard/src/planning.ts | 31 ++++-
.../src/routes/register-planning-subtask-routes.ts | 28 ++++-
packages/dashboard/src/server.ts | 33 ++++--
14 files changed, 518 insertions(+), 37 deletions(-)
Fusion-Task-Id: FN-8877
Fusion-Task-Lineage: 057a8a2b-1c0f-4502-9fb3-7ee136d39563
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-09 08:31:26 -07:00
gsxdsm
661b2cf7b3
FN-8899: document unified AI merge path
...
Clarify that approved work is merged exclusively through the clean-room AI merge workflow.
- Replace the legacy merger entry point with runAiMerge in the architecture overview.
- Mark aiMergeTask as retained, soft-deprecated, and inert.
Files changed:
docs/architecture.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Fusion-Task-Id: FN-8899
Fusion-Task-Lineage: 03436366-3f48-46c7-908e-ff97843b81d9
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-09 07:22:31 -07:00
gsxdsm
d09e3e5554
FN-8861: preserve GitHub issue context in planning
...
Preserve imported GitHub issue provenance through Planning Mode and source tracking.
- Pass structured GitHub issue context from import through planning task creation.
- Append source-issue metadata to planned tasks and safely link each source issue once.
- Cover provenance persistence, duplicate suppression, and planning UI handoff.
Files changed:
.changeset/fn-8861-planning-source-issue.md | 7 ++
docs/dashboard-guide.md | 8 +-
docs/settings-reference.md | 2 +-
packages/dashboard/app/App.tsx | 4 +-
packages/dashboard/app/api/planning/planning.ts | 3 +-
packages/dashboard/app/components/AppModals.tsx | 2 +-
.../dashboard/app/components/GitHubImportModal.tsx | 13 +--
.../dashboard/app/components/PlanningModeModal.tsx | 5 +-
.../__tests__/GitHubImportModal.test.tsx | 34 ++++++
.../app/components/dashboard/PlanningKeepAlive.tsx | 1 +
.../dashboard/app/components/dashboard/types.ts | 2 +-
.../app/hooks/__tests__/useModalManager.test.ts | 26 ++++-
packages/dashboard/app/hooks/useModalManager.ts | 17 ++-
.../src/__tests__/github-tracking.test.ts | 125 ++++++++++++++++++++-
packages/dashboard/src/__tests__/github.test.ts | 78 ++++++++++++-
.../__tests__/planning-e2e-plan-creation.test.ts | 49 +++++++-
.../src/__tests__/planning-source-issue.test.ts | 61 ++++++++++
.../src/__tests__/routes-planning-tracking.test.ts | 118 ++++++++++++++++++-
packages/dashboard/src/github-tracking.ts | 112 ++++++++++++++++--
packages/dashboard/src/github.ts | 50 +++++++++
packages/dashboard/src/planning.ts | 48 +++++++-
.../dashboard/src/routes/register-git-github.ts | 31 +----
.../src/routes/register-planning-subtask-routes.ts | 69 +++++++++++-
23 files changed, 785 insertions(+), 80 deletions(-)
Fusion-Task-Id: FN-8861
Fusion-Task-Lineage: b2433f70-9c1b-47ef-bafa-0434861cd0a8
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-09 07:06:06 -07:00
gsxdsm
569d2eee91
FN-8885: add GitHub CI signal ingestion
...
Ingest signed GitHub CI webhook outcomes into Command Center incidents.
- Support check_suite, workflow_run, and status events with HMAC verification.
- Resolve the latest matching open incident for successful recovery events without creating tasks.
- Document GitHub signal configuration and add connector, route, and monitor-store coverage.
Files changed:
.changeset/fn-8885-github-signals-connector.md | 7 ++
docs/dashboard-guide.md | 2 +-
docs/settings-reference.md | 1 +
docs/signals-connectors.md | 31 ++++-
.../core/src/task-store/async/async-monitor.ts | 30 ++---
packages/dashboard/README.md | 5 +-
.../src/__tests__/github-signal-source.test.ts | 49 ++++++++
.../src/__tests__/monitor-store.pg.test.ts | 35 ++++++
.../src/__tests__/register-signal-routes.test.ts | 132 +++++++++++++++++++-
packages/dashboard/src/monitor-store.ts | 28 ++---
.../dashboard/src/routes/register-signal-routes.ts | 25 ++++
packages/dashboard/src/signal-source.ts | 17 ++-
packages/dashboard/src/signal-sources/github.ts | 135 +++++++++++++++++++++
13 files changed, 461 insertions(+), 36 deletions(-)
Fusion-Task-Id: FN-8885
Fusion-Task-Lineage: d2e9f6ed-95fe-4387-81bd-2ee67b2e1283
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-09 06:51:22 -07:00
gsxdsm
98ad663011
FN-8872: add structural mail reports from chat
...
Add a report-oriented mail workflow that turns completed chat responses into structured, reviewable messages.
- Render structural report items with dedicated visual treatment and tests across mail surfaces.
- Add report-mode composer fields and route Send as report handoffs from completed chat responses.
- Document the mail/chat workflow and publish a Fusion changeset.
Files changed:
.changeset/fn-8872-structural-mail-ui.md | 7 +
docs/dashboard-guide.md | 3 +
packages/dashboard/app/App.tsx | 9 +
packages/dashboard/app/components/ChatView.tsx | 36 ++--
packages/dashboard/app/components/MailboxModal.tsx | 28 ++-
.../app/components/MailboxStructuralItem.css | 73 +++++++
.../app/components/MailboxStructuralItem.tsx | 100 ++++++++++
packages/dashboard/app/components/MailboxView.tsx | 50 ++++-
.../dashboard/app/components/MessageComposer.css | 18 ++
.../dashboard/app/components/MessageComposer.tsx | 57 +++++-
.../__tests__/ChatMailReportRouting.test.tsx | 144 ++++++++++++++
.../__tests__/ChatView.send-as-report.test.tsx | 96 +++++++++
.../__tests__/MailboxStructuralItem.test.tsx | 90 +++++++++
.../MailboxStructuralMail.surfaces.test.tsx | 217 +++++++++++++++++++++
.../app/components/__tests__/MailboxView.test.tsx | 28 +++
.../__tests__/MessageComposer.report-mode.test.tsx | 106 ++++++++++
.../components/__tests__/chatReportHandoff.test.ts | 26 +++
.../dashboard/app/components/chatReportHandoff.ts | 65 ++++++
.../app/components/dashboard/MainContent.tsx | 4 +
.../dashboard/app/components/dashboard/types.ts | 3 +
20 files changed, 1135 insertions(+), 25 deletions(-)
Fusion-Task-Id: FN-8872
Fusion-Task-Lineage: 55e4bf5e-e7f3-48a5-8084-4090ab24710a
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-09 06:07:01 -07:00
gsxdsm
3d6a908b95
FN-8898: document inert prerebase settings
...
Clarify that legacy prerebase settings are inert on the production merge path.
- Mark retained prerebase configuration and audit events as legacy-only.
- Add a static validator and tests preventing new prerebase callers.
- Update merge architecture, testing, and settings documentation.
Files changed:
AGENTS.md | 2 +-
docs/architecture.md | 3 +-
docs/settings-reference.md | 6 +-
docs/testing.md | 2 +-
package.json | 6 +-
packages/core/src/types/settings/settings-scope.ts | 32 +++--
.../src/errors/transient-merge-error-classifier.ts | 12 +-
packages/engine/src/merge/merger-auto-prerebase.ts | 12 +-
packages/engine/src/util/run-audit.ts | 2 +
scripts/__tests__/check-prerebase-inert.test.mjs | 73 +++++++++++
scripts/__tests__/run-static-gate-checks.test.mjs | 1 +
scripts/__tests__/verify-fast.test.mjs | 1 +
scripts/check-prerebase-inert.mjs | 146 +++++++++++++++++++++
scripts/lib/source-projection.mjs | 87 ++++++++++++
14 files changed, 359 insertions(+), 26 deletions(-)
Fusion-Task-Id: FN-8898
Fusion-Task-Lineage: 9cfd836d-17c2-44a0-a076-56fef0917935
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-09 06:01:02 -07:00
gsxdsm
94470d27ca
FN-8876: harden graph-owned executor test mocks
...
Align executor test fixtures with graph-owned session routing.
- Route executor harnesses through durable and ephemeral graph agents.
- Select implementation sessions by their task-completion tool.
- Guard lifecycle tests against review-only and empty captures.
Files changed:
.../engine/src/__tests__/executor-prompt.test.ts | 389 ++++++++++-----------
.../src/__tests__/executor-step-session.test.ts | 185 ++++++----
.../engine/src/__tests__/executor-test-helpers.ts | 87 ++---
3 files changed, 344 insertions(+), 317 deletions(-)
Fusion-Task-Id: FN-8876
Fusion-Task-Lineage: d89eeb54-0910-4dfb-890d-5f570afa9186
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-09 05:54:57 -07:00
gsxdsm
74b4de3d19
FN-8883: migrate executor tests to StepSessionExecutor seam
...
Route executor lifecycle tests through graph-owned StepSessionExecutor fixtures.
- Add reusable workflow routing, worktree refresh, and implementation-session test helpers
- Update executor prompt, step-session, pause, and completion assertions for graph-owned sessions
- Document the graph executor fixture seams for focused verification
Files changed:
docs/testing.md | 3 +
.../__tests__/ephemeral-task-create-gate.test.ts | 29 +-
.../engine/src/__tests__/executor-prompt.test.ts | 417 ++++++++++++---------
.../src/__tests__/executor-review-verdicts.test.ts | 2 +-
.../executor-step-numbering-zero-based.test.ts | 23 +-
.../src/__tests__/executor-step-session.test.ts | 152 ++++++--
.../executor-task-done-summary.test.ts | 14 +-
.../engine/src/__tests__/executor-test-helpers.ts | 65 +++-
8 files changed, 468 insertions(+), 237 deletions(-)
Fusion-Task-Id: FN-8883
Fusion-Task-Lineage: 7ebbee52-fe43-4e18-b0e9-2253911a0acb
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-09 04:59:15 -07:00
gsxdsm
2643f4e567
FN-8884: enable GitHub-native PR auto-merge
...
Enable opt-in GitHub-managed auto-merge for pull requests.
- Add a project setting and dashboard control for GitHub native auto-merge.
- Arm individual, group, dashboard, and workflow PRs with `gh pr merge --auto` or GraphQL, including while checks are pending.
- Preserve deferred PR reconciliation, unavailable-feature errors, project-scoped runtime configuration, tests, documentation, and a release changeset.
Files changed:
.changeset/fn-8884-github-native-auto-merge.md | 7 +
docs/settings-reference.md | 5 +
packages/cli/src/commands/__tests__/daemon.test.ts | 16 +++
packages/cli/src/commands/__tests__/serve.test.ts | 14 ++
.../src/commands/__tests__/task-lifecycle.test.ts | 158 +++++++++++++++++++++
packages/cli/src/commands/daemon.ts | 11 +-
packages/cli/src/commands/dashboard.ts | 11 +-
packages/cli/src/commands/serve.ts | 11 +-
packages/cli/src/commands/task-lifecycle.ts | 45 ++++--
.../core/src/__tests__/settings-defaults.test.ts | 4 +
packages/core/src/config/settings-schema.ts | 1 +
packages/core/src/types/settings/settings-scope.ts | 8 ++
.../settings/__tests__/section-keys.test.ts | 1 +
.../app/components/settings/section-keys.ts | 1 +
.../components/settings/sections/MergeSection.tsx | 14 +-
.../settings-default-descriptions.test.tsx | 1 +
.../src/__tests__/github-native-auto-merge.test.ts | 114 +++++++++++++++
.../src/__tests__/routes-pr-merge.test.ts | 84 +++++++++++
packages/dashboard/src/github.ts | 88 +++++++++++--
packages/dashboard/src/index.ts | 2 +-
.../dashboard/src/routes/register-git-github.ts | 33 +++--
.../project-engine-deferred-startup.test.ts | 21 +++
packages/engine/src/project-engine-manager.ts | 2 +
packages/engine/src/project-engine.ts | 6 +
packages/engine/src/project/project-runtime.ts | 6 +
packages/engine/src/runtimes/in-process-runtime.ts | 9 +-
packages/i18n/locales/en/app.json | 4 +-
27 files changed, 634 insertions(+), 43 deletions(-)
Fusion-Task-Id: FN-8884
Fusion-Task-Lineage: cf1b1ea4-7ef7-4050-bd87-25933456a5b6
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-09 04:50:30 -07:00
gsxdsm
c60a11607f
FN-8856: bound scheduler hold-release sweep work
...
Keep hold-release scheduling and dashboard health checks responsive under PostgreSQL load.
- Batch and cache workflow-selection reads for each hold-release pass.
- Bound sweep execution, prevent overlapping project passes, and expose sweep instrumentation.
- Time-bound PostgreSQL health probes and add regression coverage.
Files changed:
.changeset/fn-8856-hold-release-sweep-bounded.md | 7 +
docs/architecture.md | 6 +
docs/diagnostics.md | 4 +
.../__tests__/workflow-ir-selection-cache.test.ts | 77 ++++
packages/core/src/index.ts | 2 +
packages/core/src/store.ts | 6 +-
.../core/src/task-store/workflow-definitions.ts | 25 ++
.../core/src/workflows/workflow-ir-resolver.ts | 27 +-
.../__tests__/dashboard-postgres-health.test.ts | 76 ++++
.../dashboard/src/dashboard-postgres-health.ts | 34 +-
.../__tests__/hold-release-instrumentation.test.ts | 34 ++
.../hold-release-sweep-bounded-db-work.test.ts | 467 +++++++++++++++++++++
packages/engine/src/execution/hold-release.ts | 391 +++++++++--------
packages/engine/src/scheduler.ts | 56 ++-
14 files changed, 1021 insertions(+), 191 deletions(-)
Fusion-Task-Id: FN-8856
Fusion-Task-Lineage: 5fa55d95-0760-4c4d-8c6c-6e1805109b3c
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-09 04:37:47 -07:00
gsxdsm
e945723903
FN-8897: strengthen executor graph-routing test harnesses
...
Ensure executor tests verify graph-routed implementation sessions instead of passing vacuously.
- Add helpers that select sessions exposing the implementation completion tool.
- Assert routed runs reach graph review and unrouted runs suspend before session creation.
- Cover graph routing in review-verdict and worktree-liveness fixtures.
Files changed:
.../src/__tests__/executor-review-verdicts.test.ts | 46 +++++++++++++++++++---
.../engine/src/__tests__/executor-test-helpers.ts | 18 +++++++++
.../__tests__/executor-worktree-liveness.test.ts | 45 ++++++++++++++++++---
3 files changed, 99 insertions(+), 10 deletions(-)
Fusion-Task-Id: FN-8897
Fusion-Task-Lineage: a8feb7fc-599a-4bdf-a423-f39ed620c5d8
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-09 04:24:47 -07:00
gsxdsm
cf171bc4b2
FN-8900: rescue deterministic Kimi K3 catalog test
...
Rescue Kimi K3 route coverage with a deterministic bundled-catalog registry seam.
- Use pi-ai's real Kimi catalog without live registry refresh.
- Restore route merge and deduplication coverage and remove the paired quarantine records.
- Document the measured refresh stall and preserve the existing timeout budget.
Files changed:
docs/testing.md | 3 +-
packages/dashboard/package.json | 1 +
.../src/__tests__/_kimi-model-catalog-fixture.ts | 40 +++++++++
...ister-model-routes-kimi-k3-supplemental.test.ts | 75 ++++++-----------
packages/dashboard/vitest.config.ts | 19 ++---
pnpm-lock.yaml | 98 +++++++++++++++++-----
scripts/lib/test-quarantine.json | 5 --
7 files changed, 153 insertions(+), 88 deletions(-)
Fusion-Task-Id: FN-8900
Fusion-Task-Lineage: 6d4986ed-bc93-479f-85fb-510d17ced4b5
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-09 03:47:56 -07:00
gsxdsm
7c034f4862
FN-8888: emit approval mail for triage pauses
...
Route triage approval pauses through the shared structural-mail helper.
- Pass the runtime message store into triage processing.
- Emit idempotent, fail-soft approval mail when triage pauses for approval.
- Cover triage approval-mail delivery and publish the feature changeset.
Files changed:
.changeset/fn-8888-triage-approval-mail.md | 7 ++
.../src/__tests__/approval-mail-emission.test.ts | 101 +++++++++++++++++++++
packages/engine/src/runtimes/in-process-runtime.ts | 1 +
packages/engine/src/triage.ts | 14 +++
4 files changed, 123 insertions(+)
Fusion-Task-Id: FN-8888
Fusion-Task-Lineage: f0970c59-abca-4081-b213-c9aec0833416
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-09 03:15:00 -07:00
gsxdsm
c9f8c3d7dd
FN-8896: route executor harnesses through graph agent store
...
Migrate executor test harnesses to exercise graph principal routing.
- Add routing-aware executor fixtures backed by the workflow agent store.
- Assert executor sessions route a principal before opening.
- Mock worktree acquisition phases so liveness tests reach containment gates.
Files changed:
.../src/__tests__/executor-review-verdicts.test.ts | 60 +++++++++++++++----
.../__tests__/executor-worktree-liveness.test.ts | 68 +++++++++++++++++++---
2 files changed, 108 insertions(+), 20 deletions(-)
Fusion-Task-Id: FN-8896
Fusion-Task-Lineage: 3b01ccb3-2900-4cc8-8439-09c0127d8476
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-09 02:50:06 -07:00
gsxdsm
7745c59e63
FN-8880: align shared-member recovery consent tests
...
Align recovery expectations with the shared-member consent policy.
- Hold non-opted-in shared members when project auto-merge is off.
- Cover explicit per-task auto-merge opt-in during startup and self-healing recovery.
- Document the project-off consent rule for branch-group members.
Files changed:
AGENTS.md | 2 +-
docs/architecture.md | 4 +-
packages/engine/src/__tests__/project-engine.test.ts | 41 +++++++++++------
packages/engine/src/__tests__/self-healing.test.ts | 51 +++++++++++++++++++---
4 files changed, 75 insertions(+), 23 deletions(-)
Fusion-Task-Id: FN-8880
Fusion-Task-Lineage: 3118064d-59ca-4c2e-89a8-442ee8876cf8
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-09 02:41:02 -07:00
gsxdsm
7c4b29f642
FN-8895: harden group merge coordinator store fakes
...
Ensure group-merge coordinator tests exercise the production store seams without warning suppression.
- Provide scoped settings and branch-group task fake methods used by promotion evaluation
- Await promotion evaluation and fail the fixture on missing-store-method warnings
- Assert branch-group task lookup is reached during the merge drain
Files changed:
packages/engine/src/__tests__/group-merge-coordinator.test.ts | 59 ++++++++++++++++++----
1 file changed, 49 insertions(+), 10 deletions(-)
Fusion-Task-Id: FN-8895
Fusion-Task-Lineage: 99748c07-2083-41f9-b776-da644bf1857a
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-09 02:28:33 -07:00
gsxdsm
ef99dcd1b0
FN-8894: model advancing clocks in oversight tests
...
Ensure TaskDetailModal mutation fixtures mirror server update timestamps.
- Add an advancing-clock task fixture helper for mutation responses
- Update desktop and mobile oversight control mocks to use newer task snapshots
- Cover equal-clock merge behavior and document the fixture contract
Files changed:
docs/testing.md | 6 ++
.../TaskDetailModal.oversight-controls.test.tsx | 74 +++++++++++++++++++++-
.../TaskDetailModal.oversight-mobile.test.tsx | 3 +-
.../__tests__/TaskDetailModal.test-helpers.ts | 15 +++++
4 files changed, 94 insertions(+), 4 deletions(-)
Fusion-Task-Id: FN-8894
Fusion-Task-Lineage: 614eb85a-0fbf-4f44-a08d-347f2511499b
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-09 02:23:54 -07:00
gsxdsm
ccf2ffe93d
FN-8854: document rebase settings and configuration audits
...
Document the worktree rebase controls and configuration audit surfaces.
- Describe worktree rebase defaults, remote resolution, and legacy pipeline reachability
- Explain configuration revisions and Activity Log query contracts
- Add source-aligned documentation contract coverage
Files changed:
docs/diagnostics.md | 22 ++++-
docs/settings-reference.md | 15 ++++
.../configuration-audit-documentation.test.ts | 94 ++++++++++++++++++++++
3 files changed, 130 insertions(+), 1 deletion(-)
Fusion-Task-Id: FN-8854
Fusion-Task-Lineage: 5807280f-e1da-4847-8337-1c27c8ed695f
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-09 02:06:44 -07:00
gsxdsm
555316c12f
FN-8892: test responsive status badge fallbacks
...
Cover lifecycle badge fallback behavior across AppModals status surfaces.
- Verify authoritative status refreshes replace stale Planning labels with In Progress lifecycle badges.
- Exercise board, desktop list, mobile list, and detail modal status renderers.
- Isolate task cache and viewport mocks for deterministic responsive assertions.
Files changed:
.../app/components/__tests__/AppModals.test.tsx | 145 ++++++++++++++++++++-
1 file changed, 140 insertions(+), 5 deletions(-)
Fusion-Task-Id: FN-8892
Fusion-Task-Lineage: 34ccda74-3f29-4bc3-8221-f44983a97a5e
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-09 02:01:05 -07:00
gsxdsm
56e330f66e
FN-8887: fix dependency link test hydration
...
Align TaskDetailModal dependency tests with the full-task hydration contract.
- Assert that full task details skip mount fetches before dependency navigation
- Cover unscoped dependency requests and slim-task hydration before link fetches
- Preserve click, keyboard, failure, and blocking-link assertions with scoped mocks
Files changed:
...etailModal.responsive-and-dependencies.test.tsx | 94 +++++++++++++++++-----
1 file changed, 73 insertions(+), 21 deletions(-)
Fusion-Task-Id: FN-8887
Fusion-Task-Lineage: db910342-4cde-418c-99fa-c0f19498d5e2
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-09 01:45:52 -07:00
gsxdsm
4cb7bea967
FN-8882: add merge-lane fixture drift test
...
Prevent unseeded ProjectEngine merge-lane fields from causing prototype fake TypeErrors.
- Inspect the auto-merge state block for declared fields
- Require fixture defaults or documented drain-path exclusions for each field
Files changed:
...project-engine-merge-lane-fixture-drift.test.ts | 55 ++++++++++++++++++++++
1 file changed, 55 insertions(+)
Fusion-Task-Id: FN-8882
Fusion-Task-Lineage: c5cb270d-d988-43e7-a554-7f9bc8770c5c
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-09 01:40:34 -07:00
gsxdsm
d59c1b162f
FN-8855: enforce configured PR checks before merging
...
Add configurable Fusion-side PR check gating across merge surfaces.
- Add project required-check settings, validation, UI controls, CLI support, and operator documentation.
- Evaluate configured checks before dashboard and CLI PR merges, accepting successful, skipped, and neutral checks.
- Bind merges to the evaluated PR head SHA to prevent push-and-merge races.
- Cover required-check policy and head-SHA merge behavior with tests.
Files changed:
.changeset/fn-8855-required-checks.md | 7 +
docs/dashboard-guide.md | 5 +
docs/settings-reference.md | 1 +
.../src/commands/__tests__/task-lifecycle.test.ts | 30 ++++-
packages/cli/src/commands/task-lifecycle.ts | 17 ++-
.../core/src/__tests__/required-checks.test.ts | 16 +++
packages/core/src/config/index.ts | 1 +
packages/core/src/config/required-checks.ts | 16 +++
packages/core/src/config/settings-schema.ts | 1 +
packages/core/src/index.ts | 1 +
packages/core/src/types.ts | 6 +
packages/core/src/types/settings/settings-scope.ts | 6 +
packages/core/src/types/task/task-tracking.ts | 5 +
.../settings/__tests__/section-keys.test.ts | 1 +
.../app/components/settings/section-keys.ts | 1 +
.../settings/sections/MergeSection.search.ts | 3 +
.../components/settings/sections/MergeSection.tsx | 30 ++++-
.../__tests__/MergeSection.requiredChecks.test.tsx | 50 +++++++
.../settings-default-descriptions.test.tsx | 1 +
packages/dashboard/src/__tests__/github.test.ts | 123 +++++++++++++++++
packages/dashboard/src/github.ts | 149 +++++++++++++--------
.../dashboard/src/routes/register-git-github.ts | 38 ++++--
.../src/routes/register-task-workflow-routes.ts | 8 +-
packages/i18n/locales/en/app.json | 4 +-
24 files changed, 441 insertions(+), 79 deletions(-)
Fusion-Task-Id: FN-8855
Fusion-Task-Lineage: 708e9c27-72be-4925-bf09-5db421bcaa67
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-09 01:33:06 -07:00
gsxdsm
2809fcb608
FN-8886: fix Git Manager mobile CSS contract tests
...
Aligns Git Manager mobile CSS assertions with the documented phone breakpoint.
- Target Git Manager assertions at the <768px media query.
- Require stable Git Manager selectors before checking phone layout rules.
Files changed:
.../__tests__/core-modals-mobile.test.tsx | 30 ++++++++++++++++------
1 file changed, 22 insertions(+), 8 deletions(-)
Fusion-Task-Id: FN-8886
Fusion-Task-Lineage: d0de1f25-49db-4674-8d2b-302feb2ebc2a
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-09 01:06:19 -07:00
gsxdsm
601a63709c
FN-8878: strengthen mobile FloatingWindow overflow coverage
...
Protect the shared mobile FloatingWindow sheet overflow contract with focused regression coverage.
- Assert common full-screen geometry for chat, GitHub Import, and Task Detail sheets.
- Verify Task Detail reasserts clipping on phones while other sheets inherit base clipping.
- Prevent visible-overflow overrides for chat and GitHub Import mobile sheets.
Files changed:
.../__tests__/GitHubImportModal.test.tsx | 65 ++++++++++++++++++++--
1 file changed, 59 insertions(+), 6 deletions(-)
Fusion-Task-Id: FN-8878
Fusion-Task-Lineage: b631876b-f6a1-4562-8edb-bb77a414f249
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-09 00:55:03 -07:00
gsxdsm
2d52908d52
FN-8879: preserve local task detail patches
...
Keep locally authored task-detail updates visible without weakening server snapshot freshness.
- Add a local patch helper that preserves lifecycle guards only for explicitly stale patches.
- Apply id-less local detail updates in modal, split-detail, and main-panel views while rejecting foreign task ids.
- Cover equal-clock, lifecycle, and split-detail patch behavior with dashboard tests.
- Add a patch changeset for visible PR and review updates.
Files changed:
.changeset/fn-8879-detail-task-patch.md | 7 ++
packages/dashboard/app/components/ListView.tsx | 15 +++--
.../app/components/__tests__/ListView.test.tsx | 21 ++++++
.../app/components/dashboard/MainContent.tsx | 6 +-
.../MainContent.detail-task-patch.test.tsx | 77 ++++++++++++++++++++++
.../app/hooks/__tests__/useModalManager.test.ts | 42 ++++++++++++
.../__tests__/useTasks-hydration-freshness.test.ts | 61 ++++++++++++++++-
packages/dashboard/app/hooks/useModalManager.ts | 15 +++--
packages/dashboard/app/hooks/useTasks.ts | 45 +++++++++++++
9 files changed, 275 insertions(+), 14 deletions(-)
Fusion-Task-Id: FN-8879
Fusion-Task-Lineage: 7166b597-c4c7-491a-a9d8-856fa820865e
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-09 00:47:50 -07:00
gsxdsm
9c43736794
FN-8870: add structural approval and report mail
...
Add typed report and approval metadata to the mailbox contract.
- Define and validate structural mail kinds, report sections, and approval references.
- Let agents send validated reports while reserving approval mail for engine emission.
- Emit idempotent, fail-soft approval notifications and document the contract.
Files changed:
.changeset/fn-8870-structural-mail-contract.md | 7 ++
docs/agents.md | 2 +
docs/architecture.md | 4 +
.../message-metadata-structural-mail.test.ts | 25 ++++
packages/core/src/index.gate.ts | 2 +-
packages/core/src/index.ts | 2 +-
packages/core/src/types.ts | 30 +++++
packages/core/src/types/messaging/messages.ts | 21 ++++
...gent-tools-send-message-structural-mail.test.ts | 34 +++++
.../src/__tests__/approval-mail-emission.test.ts | 137 +++++++++++++++++++++
packages/engine/src/agent-heartbeat.ts | 3 +
packages/engine/src/agent-tools.ts | 28 ++++-
packages/engine/src/agents/approval-mail.ts | 40 ++++++
packages/engine/src/executor.ts | 3 +
14 files changed, 334 insertions(+), 4 deletions(-)
Fusion-Task-Id: FN-8870
Fusion-Task-Lineage: 7d30b2f9-c004-4975-86b1-9600e2c8d76f
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-09 00:41:18 -07:00
gsxdsm
0e8d743064
FN-8867: prevent false task wedge notifications
...
Prevent stale terminal snapshots and pause markers from notifying for progressing tasks.
- Reclassify the live task immediately before claiming wedge episodes.
- Require actual pause state for pause-derived wedge reasons.
- Cover resumed-task races and stale pause markers with notification tests.
- Document the wedge notification behavior and add a patch changeset.
Files changed:
.changeset/fn-8867-wedge-false-terminal-alerts.md | 7 ++
docs/agents.md | 2 +-
docs/architecture.md | 2 +-
.../__tests__/notification-service.test.ts | 9 +-
.../__tests__/task-wedge-notification.test.ts | 102 +++++++++++++++++++--
.../src/notification/notification-service.ts | 22 +++--
.../src/notification/task-wedge-notification.ts | 22 ++++-
7 files changed, 137 insertions(+), 29 deletions(-)
Fusion-Task-Id: FN-8867
Fusion-Task-Lineage: c92c7735-e8b9-4979-8028-10a0555810f1
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-09 00:01:44 -07:00
gsxdsm
ec52a9131a
FN-8859: add native roadmap embeds to chat
...
Enable roadmap structures to open, preview, and embed directly from chat and dashboard views.
- Register roadmap views as native structures with chat-reference support.
- Add composer previews, in-place dashboard embedding, and drag-safe interactions.
- Document the native-structure plugin contract and add coverage across supported surfaces.
Files changed:
.changeset/fn-8859-roadmap-native-structure-embeds.md | 7 +
docs/PLUGIN_AUTHORING.md | 1 +
docs/dashboard-guide.md | 6 +-
packages/dashboard/app/components/MessageComposer.tsx | 16 +-
packages/dashboard/app/components/__tests__/MessageComposer.test.tsx | 102 ++++++++++-
packages/dashboard/app/components/__tests__/overflowViewRegistry.test.tsx | 68 +++++++-
packages/dashboard/app/components/dashboard/MainContent.tsx | 22 ++-
packages/dashboard/app/components/dashboard/__tests__/MainContent.native-structure-roadmap.test.tsx | 188 +++++++++++++++++++++
packages/dashboard/app/components/nativeStructureChatRef.ts | 4 +-
packages/dashboard/app/components/overflowViewRegistry.tsx | 34 ++--
packages/dashboard/app/plugins/types.ts | 10 +-
packages/dashboard/app/utils/__tests__/nativeStructureDrag.test.ts | 46 +++--
packages/dashboard/app/utils/nativeStructureDrag.ts | 18 +-
plugins/fusion-plugin-roadmap/src/dashboard-view.tsx | 7 +-
plugins/fusion-plugin-roadmap/src/dashboard/RoadmapsView.tsx | 22 ++-
plugins/fusion-plugin-roadmap/src/dashboard/__tests__/RoadmapsView.test.tsx | 51 ++++++
16 files changed, 560 insertions(+), 42 deletions(-)
Fusion-Task-Id: FN-8859
Fusion-Task-Lineage: 99a7292b-2a06-4325-8131-ca74431214e3
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-08 23:54:40 -07:00
gsxdsm
0a2fe913c6
FN-8863: fix standalone pre-merge remediation holds
...
Allow standalone tasks to recover from failed pre-merge steps when project auto-merge is disabled.
- Add a remediation-specific auto-merge hold for shared members and explicit user holds.
- Restore Plan Review replans and Code Review fix handoffs for standalone tasks.
- Cover hold behavior and document the operator-consent policy.
Files changed:
.changeset/fn-8863-remediation-auto-merge-hold.md | 7 ++
docs/dashboard-guide.md | 2 +-
packages/core/src/__tests__/task-merge.test.ts | 38 ++++++++
packages/core/src/index.gate.ts | 1 +
packages/core/src/index.ts | 1 +
packages/core/src/merge/task-merge.ts | 18 ++++
...cutor-live-branch-group-auto-merge-hold.test.ts | 27 ++++++
.../workflow-graph-optional-step-fix.test.ts | 106 +++++++++++++++++++++
packages/engine/src/executor.ts | 16 +++-
9 files changed, 212 insertions(+), 4 deletions(-)
Fusion-Task-Id: FN-8863
Fusion-Task-Lineage: 930bf37a-3173-4a3b-84ca-575f7f5d94b9
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-08 23:34:41 -07:00
gsxdsm
8ee6eff9cd
FN-8871: seed complete merge-lane state in coordinator tests
...
Ensure group-merge coordinator fakes initialize production merge-lane state.
- Add a reusable fixture for ProjectEngine merge-lane fields.
- Use the fixture in the group-merge routing integration test.
- Include capacity and PR-retry state required by the production drain.
Files changed:
.../_project-engine-merge-lane-fixture.ts | 62 ++++++++++++++++++++++
.../src/__tests__/group-merge-coordinator.test.ts | 15 +++---
2 files changed, 69 insertions(+), 8 deletions(-)
Fusion-Task-Id: FN-8871
Fusion-Task-Lineage: 9bde0439-fa88-481b-a7f3-9feb7e663883
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-08 23:24:23 -07:00
gsxdsm
fb125b6f5e
FN-8852: exclude heartbeat writes from revision history
...
Prevent liveness bookkeeping from evicting real settings changes while making revision history pageable.
- Exclude engineLastActiveAt from project revision snapshots and preserve its live value during rollback.
- Add validated limit/offset paging with hasMore to configuration revision stores and the API.
- Cover heartbeat filtering, rollback compatibility, and paging contracts; document the behavior and add a patch changeset.
Files changed:
.changeset/fn-8852-config-revision-heartbeat.md | 7 +
docs/settings-reference.md | 4 +
docs/storage.md | 6 +
.../__tests__/configuration-revision-store.test.ts | 178 ++++++++++++++++++++-
.../configuration-revision-heartbeat.pg.test.ts | 118 ++++++++++++++
.../async-configuration-revision-store.ts | 46 ++++--
.../src/config/configuration-revision-store.ts | 9 +-
packages/core/src/config/global-settings.ts | 2 +-
packages/core/src/config/settings-schema.ts | 20 +++
packages/core/src/index.gate.ts | 2 +-
packages/core/src/index.ts | 2 +-
packages/core/src/task-store/task-mutation-ops.ts | 24 ++-
packages/core/src/types.ts | 6 +
packages/core/src/types/settings/settings-scope.ts | 3 +
.../register-org-portability-routes.test.ts | 19 ++-
.../src/routes/register-org-portability-routes.ts | 18 ++-
16 files changed, 437 insertions(+), 27 deletions(-)
Fusion-Task-Id: FN-8852
Fusion-Task-Lineage: 46d5ac9d-d2c0-4294-a5f7-d228fcb341c9
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-08 23:16:01 -07:00
gsxdsm
65bf3097ff
FN-8857: invalidate stale task dispatch routes
...
Clear persisted effective routes whenever an eligible task node override changes.
- Add route invalidation logic that preserves checkout-bound and explicit replacement routes.
- Cover in-memory and PostgreSQL task-update scenarios, including partial snapshot replacements.
- Document the dispatch snapshot invalidation behavior and add a patch changeset.
Files changed:
.changeset/fn-8857-stale-effective-route.md | 7 +
docs/architecture.md | 6 +-
docs/task-management.md | 4 +-
.../__tests__/effective-route-invalidation.test.ts | 101 ++++++++++++++
.../postgres/task-node-override.pg.test.ts | 63 +++++++++
...ask-update-effective-route-invalidation.test.ts | 148 +++++++++++++++++++++
packages/core/src/index.ts | 5 +
.../core/src/mesh/effective-route-invalidation.ts | 58 ++++++++
packages/core/src/task-store/task-update.ts | 40 ++++++
9 files changed, 428 insertions(+), 4 deletions(-)
Fusion-Task-Id: FN-8857
Fusion-Task-Lineage: ab6c1a40-70b4-4501-ab34-771de288da10
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-08 23:05:29 -07:00
gsxdsm
53416f6535
FN-8851: attribute settings writes by request source
...
Record auditable provenance for every configuration mutation.
- Add system and verified/unverified API configuration actors.
- Propagate request provenance through settings, workflow, sync, and portability routes.
- Cover mutation attribution across core persistence and dashboard routes.
Files changed:
.changeset/fn-8851-settings-attribution.md | 7 +
.../postgres/settings-persistence.pg.test.ts | 17 +++
.../settings-revision-attribution.test.ts | 102 ++++++++++++++
packages/core/src/automation/automation-store.ts | 11 +-
packages/core/src/automation/routine-store.ts | 9 +-
packages/core/src/config/global-settings.ts | 5 +-
packages/core/src/index.gate.ts | 1 +
packages/core/src/index.ts | 1 +
packages/core/src/task-store/settings-ops.ts | 5 +-
packages/core/src/task-store/task-mutation-ops.ts | 5 +-
packages/core/src/types.ts | 2 +
packages/core/src/types/agents/agents.ts | 12 ++
.../src/__tests__/auth-middleware.test.ts | 29 +++-
.../dashboard/src/__tests__/request-actor.test.ts | 46 ++++++
packages/dashboard/src/auth-middleware.ts | 8 ++
packages/dashboard/src/request-actor.ts | 13 ++
.../register-org-portability-routes.test.ts | 17 ++-
.../register-settings-memory-worktrunk.test.ts | 45 +++++-
.../__tests__/settings-sync-attribution.test.ts | 156 +++++++++++++++++++++
.../src/routes/__tests__/workflow-setting-attribution.test.ts | 73 ++++++++++
.../src/routes/register-org-portability-routes.ts | 3 +-
.../src/routes/register-settings-memory-routes.ts | 3 +-
.../src/routes/register-settings-sync-inbound-routes.ts | 18 ++-
.../src/routes/register-settings-sync-routes.ts | 18 ++-
.../src/routes/register-workflow-routes.ts | 3 +
25 files changed, 576 insertions(+), 33 deletions(-)
Fusion-Task-Id: FN-8851
Fusion-Task-Lineage: 27a51666-f9ed-4395-99dc-d7ae47f119e1
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-08 22:55:38 -07:00
gsxdsm
75796ebe6f
FN-8850: capture task completion recommendations
...
Capture bounded, task-ready executor follow-ups at accepted completion.
- Guide executor prompts to submit recommendations or an explicit empty list at completion.
- Enforce default and disabled recommendation caps in completion handling.
- Document recommendation behavior and cover prompt and validation contracts.
Files changed:
.../fn-8850-populate-task-recommendations.md | 7 +++
docs/dashboard-guide.md | 2 +-
packages/core/src/agents/agent-prompts.ts | 16 ++++--
.../__tests__/ephemeral-task-create-gate.test.ts | 3 +-
.../engine/src/__tests__/executor-prompt.test.ts | 67 ++++++++++++++++++++++
.../executor-task-recommendations.test.ts | 39 ++++++++++++-
packages/engine/src/executor.ts | 44 ++++++++++++--
7 files changed, 162 insertions(+), 16 deletions(-)
Fusion-Task-Id: FN-8850
Fusion-Task-Lineage: 55a99d05-33fa-464c-869c-18a9cf7e495a
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-08 22:49:02 -07:00
gsxdsm
72623ec804
FN-8837: fix pull-request merge retry recovery
...
Make pull-request merge failures retry safely and report actionable terminal states.
- Persist exponential retry backoff and schedule durable retry wakeups.
- Classify policy, transient, and non-retryable GitHub merge failures correctly.
- Clear retry state on successful merges and cover notifications and recovery paths.
Files changed:
.changeset/fn-8837-pr-merge-retries.md | 7 +
docs/architecture.md | 1 +
.../task-update-awaiting-approval-reason.test.ts | 9 +
packages/core/src/store.ts | 2 +-
packages/core/src/task-store/task-update.ts | 6 +-
packages/core/src/types/task/task-core.ts | 7 +-
.../src/__tests__/merge-error-recovery.test.ts | 440 ++++++++++++++++++++-
.../engine/src/__tests__/ntfy-provider.test.ts | 14 +
.../engine/src/__tests__/webhook-provider.test.ts | 15 +
.../__tests__/notification-service.test.ts | 48 +++
.../src/notification/notification-service.ts | 15 +-
packages/engine/src/notification/ntfy-provider.ts | 15 +-
.../engine/src/notification/webhook-provider.ts | 9 +-
packages/engine/src/project-engine.ts | 240 +++++++++--
14 files changed, 781 insertions(+), 47 deletions(-)
Fusion-Task-Id: FN-8837
Fusion-Task-Lineage: a39b3491-d5cb-4509-b450-3e5671e0ba2d
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-08 22:43:45 -07:00
gsxdsm
b3504f01a4
FN-8838: refresh automated PR heads before GitHub mutations
...
Refresh isolated automated PR heads against their target immediately before PR creation or merge.
- Rebase and lease-publish task and group heads at every automated GitHub boundary.
- Fail closed on concurrent head updates and reconcile retained refresh worktrees.
- Add lifecycle coverage and document the configurable integration remote.
Files changed:
.changeset/fn-8838-refresh-pr-heads.md | 7 +
docs/settings-reference.md | 6 +
.../task-lifecycle-refresh.integration.test.ts | 438 ++++++++++++++++
.../src/commands/__tests__/task-lifecycle.test.ts | 309 ++++++++++-
packages/cli/src/commands/daemon.ts | 4 +-
packages/cli/src/commands/dashboard.ts | 4 +-
packages/cli/src/commands/serve.ts | 4 +-
packages/cli/src/commands/task-lifecycle.ts | 581 +++++++++++++++++++--
.../src/__tests__/group-merge-coordinator.test.ts | 43 ++
.../engine/src/merge/group-merge-coordinator.ts | 34 +-
packages/engine/src/merge/pr-nodes.ts | 35 +-
packages/engine/src/project-engine.ts | 16 +-
12 files changed, 1425 insertions(+), 56 deletions(-)
Fusion-Task-Id: FN-8838
Fusion-Task-Lineage: a9b9e800-7d73-441f-bc1b-2488d244e0b1
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-08 22:35:59 -07:00
gsxdsm
1e5d80dd4d
FN-8853: record all settings changes in Activity Log
...
Record all meaningful settings changes in the Activity Log.
- Replace the four-key listener allowlist with safe generic setting diffs.
- Exclude engine churn, redact sensitive values, and cap displayed summaries.
- Add regression coverage, diagnostics guidance, and a patch changeset.
Files changed: .changeset/fn-8853-settings-activity-coverage.md | 7 ++
docs/diagnostics.md | 4 +
.../src/__tests__/settings-activity-log.test.ts | 138 +++++++++++++++++++++
packages/core/src/task-store/lifecycle-ops.ts | 40 +++---
packages/core/src/task-store/settings-activity.ts | 95 ++++++++++++++
5 files changed, 260 insertions(+), 24 deletions(-)
Fusion-Task-Id: FN-8853
Fusion-Task-Lineage: ea072564-0bf1-4a97-8dd8-cde5844b1055
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-08 21:10:13 -07:00
gsxdsm
7611ce7baa
FN-8841: route Plan Review no-op verdicts to terminal close
...
Allow validated duplicate and no-op Plan Review verdicts to complete work without implementation dispatch.
- Add terminal no-op routes to built-in coding workflows and validate reviewer evidence.
- Persist close verdicts, safely hold failed terminalizations, and guard pause races.
- Document the verdict contract and cover route, validation, and completion behavior.
- Add a patch changeset for the published Fusion package.
Files changed:
.changeset/fn-8841-plan-review-no-op.md | 7 +
docs/workflow-steps.md | 14 +
.../core/src/__tests__/builtin-workflows.test.ts | 24 ++
packages/core/src/types/task/task-review.ts | 7 +-
packages/core/src/types/workflow/workflow-steps.ts | 2 +-
.../src/workflows/builtin-coding-workflow-ir.ts | 3 +
.../src/workflows/builtin-plan-review-group.ts | 3 +-
.../builtin-stepwise-coding-workflow-ir.ts | 3 +
packages/core/src/workflows/builtin-workflows.ts | 5 +
.../engine/src/__tests__/plan-review-no-op.test.ts | 289 +++++++++++++++++++
.../workflow-step-verdict-parsing.test.ts | 18 ++
packages/engine/src/executor.ts | 318 +++++++++++++++++----
.../src/workflows/workflow-graph-executor.ts | 103 ++++++-
.../src/workflows/workflow-graph-task-runner.ts | 6 +
14 files changed, 741 insertions(+), 61 deletions(-)
Fusion-Task-Id: FN-8841
Fusion-Task-Lineage: bde2e001-9cd0-496e-8367-36540c9ac31d
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-08 21:04:10 -07:00
gsxdsm
b2f8b0d3fe
test(quarantine): delete 27 permanently-broken quarantined tests per operator directive
...
Operator directed deletion of tests that test pre-refactor behavior no
longer in the codebase (removed APIs, mock shape drift, stale assertions
from the 2026-08-05 full-suite quarantine wave, run 30982276306).
All 27 entries were permanently red — not flaky — testing APIs removed
during the PG cutover and workflow peel refactors (getBuiltinWorkflow,
resolveWorkflowIrForTaskWithProvenance, layer.db.select mock shapes,
vi.mock hoist errors, stale serialization/count literals).
Kept 3 actionable entries that catch real issues:
- register-model-routes-kimi-k3-supplemental (real CI flake, rescue feature ready)
- project-engine.test.ts (catches real 60s→120s assertion drift)
- PlanningModeModal.planning-flow (second-sighting real race)
Vitest config exclusions and quarantine ledger updated in lockstep.
2026-08-08 20:51:19 -07:00
gsxdsm
f36e23848f
FN-8840: recognize duplicate redirects in task titles
...
Recognize exact duplicate redirects in either task title or PROMPT.md while preserving conflicting decisions for operator resolution.
- Resolve duplicate markers consistently across intake, scheduling, execution, dashboard, and replication paths.
- Accept task-ID prefixes beyond FN- and expose duplicate-marker state to the UI.
- Fail closed during stale-decision recovery when prompt, title, or persisted canonical redirects disagree.
- Add regression coverage and operator documentation for title-based redirects.
Files changed:
.changeset/fn-8840-duplicate-title-redirect.md | 7 ++
docs/settings-reference.md | 2 +-
docs/task-management.md | 11 +-
.../__tests__/explicit-duplicate-marker.test.ts | 30 ++++-
.../src/__tests__/mesh-task-replication.test.ts | 6 +
.../src/duplicates/explicit-duplicate-marker.ts | 66 ++++++++---
packages/core/src/index.gate.ts | 3 +
packages/core/src/index.ts | 3 +
packages/core/src/mesh/mesh-task-replication.ts | 2 +-
...-task-workflow-routes.awaiting-planning.test.ts | 78 +++++++++++--
.../src/routes/register-task-workflow-routes.ts | 26 ++++-
.../executor-explicit-duplicate-recovery.test.ts | 75 ++++++++++++
.../__tests__/merged-intake-hold-column.test.ts | 19 +++
.../scheduler-explicit-duplicate-marker.test.ts | 130 +++++++++++++++++++++
.../self-healing-stale-duplicate-decision.test.ts | 67 +++++++++++
.../triage-explicit-duplicate-marker.test.ts | 51 ++++++++
packages/engine/src/execution/hold-release.ts | 10 +-
packages/engine/src/executor.ts | 11 +-
packages/engine/src/scheduler.ts | 15 ++-
packages/engine/src/self-healing.ts | 55 ++++++---
packages/engine/src/triage.ts | 98 +++++++++++++---
21 files changed, 687 insertions(+), 78 deletions(-)
Fusion-Task-Id: FN-8840
Fusion-Task-Lineage: d08a3e84-1851-4fba-bfa9-507116ad6219
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-08 19:58:43 -07:00
gsxdsm
fe9fe88841
FN-8847: remove retired ephemeral-agent setting
...
Remove the obsolete ephemeral-agent compatibility setting across configuration, persistence, UI, and localization.
- Remove the setting from schemas, scoped settings, persistence helpers, and General settings UI.
- Update translations, settings documentation, and parity coverage for the retired option.
- Adjust scheduler, executor, dashboard, and PostgreSQL tests for the unconditional behavior.
- Add a patch changeset for @runfusion/fusion.
Files changed:
.changeset/fn-8847-remove-ephemeral-setting.md | 7 +++
docs/settings-reference.md | 3 +-
.../postgres/settings-persistence.pg.test.ts | 14 ++++++
.../core/src/__tests__/settings-parity.test.ts | 20 ++++++--
packages/core/src/config/settings-schema.ts | 7 ---
packages/core/src/task-store/settings-helpers.ts | 14 ++++--
packages/core/src/task-store/settings-ops.ts | 11 +++--
packages/core/src/types/settings/settings-scope.ts | 6 ---
.../__tests__/SettingsModal.general.test.tsx | 41 ++++-------------
.../settings/sections/GeneralSection.tsx | 17 -------
.../settings-default-descriptions.test.tsx | 6 ---
.../src/__tests__/mission-start-routing.test.ts | 34 ++++++--------
...executor-ephemeral-disabled-dispatch-gate.test.ts | 53 ++++++++--------------
.../__tests__/scheduler-ephemeral-toggle.test.ts | 30 +++++-------
packages/i18n/locales/en/app.json | 2 -
packages/i18n/locales/es/app.json | 2 -
packages/i18n/locales/fr/app.json | 2 -
packages/i18n/locales/ko/app.json | 2 -
packages/i18n/locales/zh-CN/app.json | 2 -
packages/i18n/locales/zh-TW/app.json | 2 -
packages/i18n/src/resources.d.ts | 2 -
21 files changed, 105 insertions(+), 172 deletions(-)
Fusion-Task-Id: FN-8847
Fusion-Task-Lineage: 8a067ec6-0ec7-4aef-a48e-604f821f35d2
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-08 19:13:14 -07:00
gsxdsm
b181f20859
FN-8848: show Recommendations for completed tasks
...
Keep the completed-task Recommendations destination available when no records exist.
- Render a localized empty state without task-creation controls.
- Preserve Recommendations selection until a task leaves the completed column.
- Cover empty states and shared detail entry points with dashboard tests.
- Document the behavior and add a patch changeset.
Files changed:
.changeset/fn-8848-recommendations-empty-state.md | 7 +++
docs/dashboard-guide.md | 2 +-
.../dashboard/app/components/TaskDetailModal.tsx | 15 ++---
.../app/components/TaskRecommendationsTab.css | 5 ++
.../app/components/TaskRecommendationsTab.tsx | 5 +-
.../TaskDetailModal.recommendations.test.tsx | 21 +++++++
.../__tests__/TaskDetailModal.summary-tab.test.tsx | 73 +++++++++++++++++++++-
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 +
packages/i18n/src/resources.d.ts | 1 +
14 files changed, 125 insertions(+), 10 deletions(-)
Fusion-Task-Id: FN-8848
Fusion-Task-Lineage: e200dfba-8113-4ede-a117-f94d221a8e7d
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-08 19:03:14 -07:00
gsxdsm
c0e2ba2ade
FN-8836: classify GitHub branch policy merge blocks
...
Classify ambiguous GitHub merge failures using refreshed pull request state.
- Distinguish branch-protection blocks from true merge conflicts.
- Surface review and required-check blockers in CLI and dashboard merge flows.
- Add regression coverage and a patch changeset.
Files changed:
.changeset/fn-8836-gh-merge-policy-errors.md | 7 ++
.../src/commands/__tests__/task-lifecycle.test.ts | 55 +++++++++
packages/cli/src/commands/task-lifecycle.ts | 14 ++-
packages/core/src/__tests__/gh-cli.test.ts | 39 +++++-
packages/core/src/cli/gh-cli.ts | 60 +++++++++-
packages/core/src/index.gate.ts | 1 +
packages/core/src/index.ts | 1 +
.../dashboard/src/__tests__/routes-github.test.ts | 131 +++++++++++++++++++++
.../dashboard/src/routes/register-git-github.ts | 58 +++++++--
9 files changed, 351 insertions(+), 15 deletions(-)
Fusion-Task-Id: FN-8836
Fusion-Task-Lineage: 7102f5ba-aca9-48cd-a27b-76deb952c4a5
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-08 18:56:43 -07:00
gsxdsm
a61ab834f8
FN-8846: show workflow agents' active tasks
...
Expose active workflow-linked tasks alongside explicit agent assignments.
- Return a deduplicated, project-scoped union of assigned and active agent tasks.
- Clarify agent task loading, failure, and empty-state copy.
- Cover task visibility across workflow, assignment, project, and viewport states.
Files changed:
packages/dashboard/app/api/agents/run-audit.ts | 9 +-
.../dashboard/app/components/AgentDetailView.tsx | 6 +-
.../AgentDetailView.logs-tasks-runs.test.tsx | 86 ++++++++----
.../register-agent-runtime-routes.tasks.test.ts | 154 +++++++++++++++++++++
.../src/routes/register-agent-runtime-routes.ts | 17 ++-
5 files changed, 239 insertions(+), 33 deletions(-)
Fusion-Task-Id: FN-8846
Fusion-Task-Lineage: 38c00c21-711a-4792-87fd-8aa2aff4f07a
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-08 18:35:19 -07:00
gsxdsm
d385d01208
FN-8844: correct delegation role error assertion
...
Align the delegation role test with the pluralized runtime error message.
- Update the reviewer delegation rejection expectation to use the roles label.
Files changed:
packages/engine/src/__tests__/agent-tools-delegation.test.ts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Fusion-Task-Id: FN-8844
Fusion-Task-Lineage: d9a34bda-71de-4b47-b93d-a27dfeb018d1
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-08 18:20:47 -07:00