gsxdsm
c9191b733c
test: close dashboard curated-gate and engine-slow coverage holes; add inventory harness
...
- 427 orphaned dashboard test files ran in NO gate; 395 now gated via self-maintaining backfill lanes (glob minus curated minus skip-list), 31 pre-existing failures + build-output skip-listed with reasons
- settings -t name-filter lanes replaced by one unfiltered lane (describe blocks can no longer fall through filters)
- scripts/check-test-inventory.mjs: --capture/--diff superset harness + --dashboard-curated completeness guard
- pr-checks.yml: engine-slow CI gate (non-empty assertion) + inventory guard job
- docs/testing.md: guard, skip-list policy, harness usage
2026-06-03 17:36:35 -07:00
gsxdsm
c69d384e67
perf(test): add timing telemetry, cold-start probe, and baseline snapshot
...
- ci-test-shard.mjs: --write-timings aggregation into scripts/test-timings.json (bucketed, newer-snapshot-protected, corrupt-shard tolerant) and --cold-start-probe; CI shard invocations emit vitest json timings
- test-changed.mjs: structured mode/reason telemetry line (+ --print-mode)
- pr-checks.yml: upload per-shard timing artifacts
- baseline: docs/test-speed-baseline-2026-06-03.md (core 41s, engine 179s, cli 49s; cold-start ~1.3-1.8s/process => U8 gate: worthwhile-not-urgent)
2026-06-03 16:48:50 -07:00
gsxdsm
84bd78c07b
docs: add test-suite speedup plan (perf, 8 units)
2026-06-03 16:33:15 -07:00
gsxdsm
866d01f532
FN-5959: bridge task goal provenance from mission links
...
Bridge mission-linked task provenance into goal diagnostics.
- derive task goal ids and goal records from the linked mission hierarchy with a task mission fallback
- record provenanceGoalIds in goal-injection diagnostics, run-audit metadata, and executor task logs
- add regression coverage and mission/diagnostics docs for derived task-to-goal provenance
Files changed:
docs/diagnostics.md | 5 +-
docs/missions.md | 19 ++++
packages/core/src/__tests__/mission-store.test.ts | 123 +++++++++++++++++++++
packages/core/src/mission-store.ts | 55 ++++++++-
packages/engine/src/__tests__/goal-injection-diagnostics-wiring.test.ts | 35 +++++-
packages/engine/src/goal-injection-diagnostics.ts | 21 +++-
6 files changed, 247 insertions(+), 11 deletions(-)
Fusion-Task-Id: FN-5959
Fusion-Task-Lineage: 7c76ae98-37b1-421c-b477-a0147d034a4c
2026-06-03 15:32:29 -07:00
gsxdsm
1853459def
FN-5961: document goals refinement evidence gate
...
Add the governance doc and regression coverage for the conditional post-v1 goals refinement gate.
- add docs/goals-refinement-gate.md defining accepted trigger evidence, activation requirements, and the no-automatic-refinement rule for Slice 4
- link the new goals refinement gate doc from docs/README.md
- add a vitest doc guard that asserts the required trigger categories and activation constraints remain documented
Files changed:
docs/README.md | 1 +
docs/goals-refinement-gate.md | 104 +++++++++++++++++++++
packages/dashboard/app/__tests__/goals-refinement-gate-docs.test.ts | 51 ++++++++++
3 files changed, 156 insertions(+)
Fusion-Task-Id: FN-5961
Fusion-Task-Lineage: 8e641782-93bb-470e-8bc3-14379dbd6cf6
2026-06-03 15:32:29 -07:00
gsxdsm
8aed4da764
FN-5949: add AI PR conflict resolution to Create PR flow
...
Add dashboard support for resolving task-branch PR conflicts with AI before PR creation.
- add a dashboard PR conflict resolver that merges the selected base into the task branch, invokes an AI merge session on conflicted files, verifies markers are removed, then commits and pushes the updated branch
- expose a POST /tasks/:id/pr/resolve-conflicts route plus client API/export wiring, docs updates, and a changeset for the published CLI package
- update the Create PR modal UI, styling, and tests to surface preflight conflicts, trigger AI resolution, and refresh preflight state after success
- add API coverage for successful and unresolved conflict-resolution paths and include the new route test in the dashboard API quality shard
Files changed:
.changeset/fn-5949-pr-conflict-resolution.md | 5 +
docs/dashboard-guide.md | 1 +
docs/task-management.md | 1 +
packages/dashboard/README.md | 1 +
packages/dashboard/app/api/legacy.ts | 20 ++
.../dashboard/app/components/PrCreateModal.css | 32 ++-
.../dashboard/app/components/PrCreateModal.tsx | 46 ++++
.../components/__tests__/PrCreateModal.test.tsx | 33 +++
...egister-git-github.pr-resolve-conflicts.test.ts | 186 +++++++++++++++
packages/dashboard/src/index.ts | 5 +
packages/dashboard/src/pr-conflict-resolver.ts | 258 +++++++++++++++++++++
.../dashboard/src/routes/register-git-github.ts | 225 ++++++++++++------
packages/dashboard/vitest.config.ts | 2 +-
13 files changed, 739 insertions(+), 76 deletions(-)
Fusion-Task-Id: FN-5949
Fusion-Task-Lineage: fea35fbf-6254-415c-83cc-0bc24abc911e
2026-06-03 15:32:29 -07:00
gsxdsm
de3273eba3
FN-5937: clear deadlock auto-pause on retry
...
Clear deadlock auto-pauses when users retry failed in-review tasks.
- add a shared core helper to clear only the in-review stall deadlock auto-pause without overriding manual or unrelated pauses
- apply the auto-pause clear patch across dashboard, CLI, and extension retry flows while preserving existing merge retry reset behavior
- add regression coverage for core, CLI, extension, and dashboard retry paths plus a patch changeset and architecture note
Files changed:
.changeset/fn-5937-clear-auto-pause-retry.md | 5 +
docs/architecture.md | 2 +-
packages/cli/src/__tests__/extension.test.ts | 126 ++++++++++++++++++
packages/cli/src/__tests__/task-retry.test.ts | 59 +++++++++
packages/cli/src/commands/task.ts | 12 +-
packages/cli/src/extension.ts | 12 +-
.../core/src/__tests__/manual-retry-reset.test.ts | 44 ++++++-
packages/core/src/index.ts | 7 +-
packages/core/src/manual-retry-reset.ts | 19 +++
packages/core/src/store.ts | 8 +-
.../src/__tests__/routes-tasks-ops.test.ts | 141 +++++++++++++++++++++
.../src/routes/register-task-workflow-routes.ts | 12 +-
12 files changed, 436 insertions(+), 11 deletions(-)
Fusion-Task-Id: FN-5937
Fusion-Task-Lineage: 8a15e01b-7b05-4126-ac6b-895467801f02
2026-06-03 15:32:29 -07:00
gsxdsm
f1572a3b62
FN-5946: render PR create modal through a portal
...
Ensure the PR creation dialog escapes transformed ancestor layout traps.
- render `PrCreateModal` with `createPortal(..., document.body)` so the overlay stays fixed to the viewport
- add regression coverage for container-type and nested-overlay portal behavior plus close interactions
- document the modal overlay portal requirement in the dashboard guide
Files changed:
docs/dashboard-guide.md | 2 +-
.../dashboard/app/components/PrCreateModal.tsx | 6 ++-
.../components/__tests__/PrCreateModal.test.tsx | 63 +++++++++++++++++++++-
3 files changed, 66 insertions(+), 5 deletions(-)
Fusion-Task-Id: FN-5946
Fusion-Task-Lineage: eb22590e-1776-49f3-82d7-ac87c5138f0b
2026-06-03 15:32:28 -07:00
gsxdsm
acc7456a5e
Merge pull request #1343 from Runfusion/gsxdsm/compound
...
feat: Compound Engineering plugin with interactive sessions, work bridge, and bidirectional sync
2026-06-03 15:31:40 -07:00
gsxdsm
7348e35a11
docs: capture observable-agent-turns architecture pattern and seed CE session vocabulary
...
ce-compound learning from the live-output/steering work: push-channel-
alongside-pull-contract, void-safe detached turns, inactivity watchdog,
transient liveActivity + persisted trace, replay suppression. Also adds a
"Compound Engineering sessions" cluster to CONCEPTS.md and refreshes the
plugin reference doc's Sessions section with the new transport behaviors.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-03 15:20:34 -07:00
gsxdsm
4aa9048909
Merge pull request #1345 from Runfusion/gsxdsm/missonsdebug
...
fix(engine): recover missions wedged by stranded done features
2026-06-03 15:00:08 -07:00
gsxdsm
a9e16cedf8
Merge pull request #1348 from Runfusion/gsxdsm/fix-branch-group-collision
...
fix(core): reuse same-name branch group instead of colliding on mission triage
2026-06-03 13:49:38 -07:00
gsxdsm
60c307320d
Merge main: adopt FN-5902 lazy assertion linkage in shared runFeatureValidation
...
- runFeatureValidation now lazy-ensures a linked assertion (FN-5902) instead
of the removed zero-assertion auto-pass, for both task-completion and the
stranded-feature recovery path
- CONCEPTS.md: union of main's Merge-lifecycle cluster and this branch's
Missions clusters; Contract Assertion entry updated for FN-5902 semantics
- AGENTS.md: take main's docs/solutions + CONCEPTS.md pointer wording
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-03 13:45:11 -07:00
gsxdsm
fa7da2bdfd
Merge branch 'main' into gsxdsm/compound
2026-06-03 13:29:20 -07:00
gsxdsm
1761a7ffd2
FN-5940: stop logging no-op task:moved activity rows
...
Prevent same-column task move noise from bloating the activity log.
- skip task:moved activity logging and event emission when a task stays in the same column
- add a one-time TaskStore cleanup migration that deletes existing same-column task:moved rows
- cover listener, moveTask, polling replication, and migration behavior with focused core tests
- document the no-op cleanup invariant and manual VACUUM guidance for reclaimed SQLite space
Files changed:
docs/storage.md | 8 ++
packages/core/src/__tests__/activity-log-no-op-moved.test.ts | 122 +++++++++++++++++++++
packages/core/src/__tests__/no-op-moved-cleanup-migration.test.ts | 108 ++++++++++++++++++
packages/core/src/store.ts | 51 ++++++++-
4 files changed, 286 insertions(+), 3 deletions(-)
Fusion-Task-Id: FN-5940
Fusion-Task-Lineage: f34cf8d0-3639-44d5-8a90-8ba461636eaa
2026-06-03 13:20:17 -07:00
gsxdsm
76c18efa92
FN-5939: expose operational log retention setting
...
Expose operational log retention as a project setting in the dashboard.
- add an Operational log retention selector to the Project General settings section with supported retention options
- validate operationalLogRetentionDays in the settings API and cover accepted and rejected values in tests
- document the constrained retention values and assert project-scope/default parity for the setting
Files changed:
docs/settings-reference.md | 2 +-
packages/core/src/__tests__/settings-parity.test.ts | 7 ++++
packages/dashboard/app/components/SettingsModal.tsx | 47 ++++++++++------------
packages/dashboard/app/components/__tests__/SettingsModal.test.tsx | 8 ++++
packages/dashboard/src/__tests__/routes-settings.test.ts | 21 ++++++++++
packages/dashboard/src/routes/register-settings-memory-routes.ts | 10 +++++
6 files changed, 69 insertions(+), 26 deletions(-)
Fusion-Task-Id: FN-5939
Fusion-Task-Lineage: 2148dd88-1cef-4c6d-9696-31148fce97d3
2026-06-03 13:20:17 -07:00
gsxdsm
e00bc0235b
Address PR review feedback ( #1356 )
...
- Add behavior-level tests for the shared merge-enqueue funnel
(enqueueEligibleInReviewTasks) with a Surface Enumeration of all
in-review entry surfaces, per review
- Seed real stale in-review fixtures in the FN-5147 no-mutation
regression block so sweeps enumerate candidates and the assertions
are non-vacuous
- Keep per-task auto-merge gating uniform across reclaim/contamination
candidate columns: the suggested in-review-only scoping broke the
FN-5704 regression contract (reclaim short-circuits when autoMerge
is off); documented the tension in code comments and the learning doc
- Drop hardcoded commit hash from the learning doc
2026-06-03 13:08:06 -07:00
gsxdsm
ff1bb20b8f
docs: capture per-task auto-merge override learning and seed CONCEPTS.md
...
Document the trigger-layer gating bug fixed in this PR under
docs/solutions/logic-errors/, seed CONCEPTS.md with the merge-lifecycle
vocabulary, and surface both knowledge stores in AGENTS.md's reference
docs index.
2026-06-03 10:55:26 -07:00
gsxdsm
56a0001c45
docs: capture learning for branch-group-collision triage stall
...
Document the UNIQUE(branch_groups.branchName) collision that silently
stranded mission triage, in docs/solutions/logic-errors/, cross-linked to
the sibling PR #1345 mission-stall learning.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-03 08:51:57 -07:00
gsxdsm
c431c0e55d
docs: capture learning for the mission auto-progress wedge
...
Document the stranded done+implementing feature stall in
docs/solutions/logic-errors/, seed CONCEPTS.md with the mission domain
vocabulary, and surface both from AGENTS.md's reference-docs list.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-03 07:51:48 -07:00
gsxdsm
db0cf7d415
docs(solutions): capture plugin bundled-skill loading learning
...
Document why PluginSkillContribution.skillFiles silently fails to load bundled
skills in live sessions (resolver only filters disk-discovered skills) and the
physical-install + additionalSkillPaths-forwarding fix, as a searchable
docs/solutions/ learning. Surface docs/solutions/ in AGENTS.md so agents
discover it.
2026-06-03 07:26:15 -07:00
gsxdsm
d72cb2ab2b
FN-5911: move agent logs to per-task JSONL storage
...
Store agent logs in per-task JSONL files instead of the legacy SQLite table.
- add a file-backed agent log store with JSONL append/read/prune helpers and task-scoped source refs
- migrate legacy SQLite agentLogEntries data into task files, rewrite goal citation references, and preserve soft-deleted logs for forensics
- update task store, settings, docs, dashboard route coverage, and add regression tests for migration, retention, and log access
Files changed:
.changeset/fn-5911-agent-log-jsonl.md | 5 +
AGENTS.md | 2 +-
docs/diagnostics.md | 2 +-
docs/settings-reference.md | 2 +
docs/soft-delete-verification-matrix.md | 7 +-
docs/storage.md | 8 +-
.../src/__tests__/agent-log-file-store.test.ts | 123 ++++++
.../core/src/__tests__/agent-log-migration.test.ts | 186 +++++++++
.../core/src/__tests__/agent-log-retention.test.ts | 208 ++++++++++
packages/core/src/__tests__/db-migrate.test.ts | 14 +-
packages/core/src/__tests__/db.test.ts | 39 +-
.../src/__tests__/goal-citations-store.test.ts | 38 +-
packages/core/src/__tests__/goals-schema.test.ts | 2 +-
packages/core/src/__tests__/insight-store.test.ts | 10 +-
.../src/__tests__/merge-request-record.test.ts | 2 +-
packages/core/src/__tests__/mission-store.test.ts | 2 +-
packages/core/src/__tests__/run-audit.test.ts | 2 +-
packages/core/src/__tests__/secrets-schema.test.ts | 6 +-
.../src/__tests__/soft-delete-agent-logs.test.ts | 71 ++--
.../src/__tests__/store-agent-log-file.test.ts | 91 +++++
.../core/src/__tests__/store-merge-queue.test.ts | 2 +-
packages/core/src/__tests__/store-test-helpers.ts | 43 +-
packages/core/src/__tests__/store-upsert.test.ts | 37 +-
packages/core/src/__tests__/task-documents.test.ts | 2 +-
packages/core/src/agent-log-constants.ts | 25 ++
packages/core/src/agent-log-file-store.ts | 267 ++++++++++++
packages/core/src/db.ts | 51 ++-
packages/core/src/settings-schema.ts | 1 +
packages/core/src/store.ts | 453 ++++++++++++---------
packages/core/src/types.ts | 10 +-
.../__tests__/agent-log-routes.integration.test.ts | 48 +++
.../src/__tests__/evaluator-evidence.test.ts | 47 ++-
packages/engine/src/self-healing.ts | 12 +
.../src/store/__tests__/roadmap-store.test.ts | 4 +-
34 files changed, 1477 insertions(+), 345 deletions(-)
Fusion-Task-Id: FN-5911
Fusion-Task-Lineage: 07c42f3a-87cf-4558-8f01-ac8460b5558b
2026-06-03 01:10:18 -07:00
gsxdsm
de7847c44d
FN-5927: categorize pnpm build scripts for install
...
Document and enforce pnpm build-script review decisions to prevent ignored-script install warnings.
- add reviewed ignoredBuiltDependencies entries to the root pnpm config and mirror the effective policy in pnpm-workspace.yaml
- add a regression test that verifies reviewed dependencies are categorized exactly once and stay aligned across both config files
- document the pnpm build-script approval policy in contributing docs and link plugin authoring guidance from AGENTS.md and PLUGIN_AUTHORING.md
Files changed:
AGENTS.md | 5 ++
docs/PLUGIN_AUTHORING.md | 3 +-
docs/contributing.md | 14 ++++
package.json | 9 +++
pnpm-workspace.yaml | 14 ++++
scripts/__tests__/pnpm-build-scripts-config.test.mjs | 74 ++++++++++++++++++++++
6 files changed, 118 insertions(+), 1 deletion(-)
Fusion-Task-Id: FN-5927
Fusion-Task-Lineage: 192bbed9-c5ed-45cb-b4bd-fb18514e2783
2026-06-03 00:28:41 -07:00
gsxdsm
0971eced30
FN-5920: prefer mission detail event count for activity tab
...
Use mission detail event counts as the authoritative pre-load source for mission activity.
- add mission hierarchy eventCount support in core and dashboard mission types
- return mission eventCount from mission detail APIs and document the field
- prefer the detail eventCount over stale list summaries before activity events load
- add coverage for store, API, and MissionManager pre-load count behavior
Files changed:
docs/missions.md | 2 +-
packages/core/src/__tests__/mission-store.test.ts | 18 +++++++++
packages/core/src/mission-store.ts | 6 +++
packages/core/src/mission-types.ts | 2 +
packages/dashboard/app/api/legacy.ts | 2 +
packages/dashboard/app/components/MissionManager.tsx | 12 +++++-
packages/dashboard/app/components/__tests__/MissionManager.test.tsx | 46 +++++++++++++++++++++-
packages/dashboard/app/components/mission-types.ts | 1 +
packages/dashboard/src/__tests__/mission-e2e.test.ts | 2 +
9 files changed, 86 insertions(+), 5 deletions(-)
Fusion-Task-Id: FN-5920
Fusion-Task-Lineage: a0269499-d34a-495d-89fc-0534bb62a94e
2026-06-02 23:47:32 -07:00
gsxdsm
6d3b1c9810
FN-5931: fix board viewport fill on narrow widths
...
Keep the board stretched between the header and footer across narrow layouts.
- make .project-content and .board flex-aware with min-size guards so board columns fill the remaining viewport space
- keep the board resize stabilization cleanup defensive when visualViewport lacks removeEventListener
- extend board mobile regression coverage and document footer-safe fill layout guidance
Files changed:
docs/dashboard-guide.md | 2 +
packages/dashboard/app/components/Board.tsx | 8 ++-
packages/dashboard/app/components/ProjectSelector.css | 2 +
packages/dashboard/app/components/__tests__/board-mobile-initial-render.test.tsx | 81 ++++++++++++++++++++--
packages/dashboard/app/styles.css | 7 +-
5 files changed, 89 insertions(+), 11 deletions(-)
Fusion-Task-Id: FN-5931
Fusion-Task-Lineage: 0031ad20-82e5-465d-9326-2b6c2d45de69
2026-06-02 23:33:11 -07:00
gsxdsm
a1b7556c7b
FN-5924: throttle OAuth expiry alerts across restarts
...
Persist OAuth expiry alert state so repeated provider expiry warnings are suppressed for 12 hours across engine restarts.
- add a persisted OAuth alert state store under ~/.fusion/agent and share it between the expiry monitor and startup validity logger
- throttle repeated oauth-token-expired notifications and startup expiry warnings per provider for 12 hours, while clearing stale state when providers disappear or change
- cover persisted throttling, restart behavior, failure handling, and wiring updates in engine notification tests
- document the persisted 12-hour OAuth alert throttle and add a patch changeset for @runfusion/fusion
Files changed:
.changeset/fn-5924-oauth-alert-throttle.md | 5 +
docs/settings-reference.md | 4 +-
packages/engine/src/__tests__/project-engine-soft-delete-merge-abort.test.ts | 3 +
packages/engine/src/__tests__/project-engine.test.ts | 17 ++-
packages/engine/src/__tests__/reliability-interactions/soft-delete-in-flight-abort.test.ts | 3 +
packages/engine/src/auth-storage.ts | 6 +-
packages/engine/src/notification/__tests__/oauth-alert-state.test.ts | 72 ++++++++++
packages/engine/src/notification/__tests__/oauth-expiry-monitor.test.ts | 148 ++++++++++++++++---
packages/engine/src/notification/__tests__/oauth-validity-logger.test.ts | 159 ++++++++++++++++++---
packages/engine/src/notification/index.ts | 3 +
packages/engine/src/notification/oauth-alert-state.ts | 144 +++++++++++++++++++
packages/engine/src/notification/oauth-expiry-monitor.ts | 12 +-
packages/engine/src/notification/oauth-validity-logger.ts | 16 ++-
packages/engine/src/project-engine.ts | 13 +-
14 files changed, 554 insertions(+), 51 deletions(-)
Fusion-Task-Id: FN-5924
Fusion-Task-Lineage: 83255a25-40c7-44d4-8302-b068ae51250e
2026-06-02 23:13:16 -07:00
gsxdsm
ee00d9f1b7
FN-5928: enforce surface enumeration for bug-fix invariants
...
Require bug-fix specs and reviews to enumerate affected surfaces and reject repro-only regression coverage.
- add a required `## Surface Enumeration` section to triage prompt templates and bug-fix planning guidance
- tighten reviewer guidance to block missing surface enumeration and repro-only regression tests
- document the canonical surface checklist in `docs/testing.md` and cover the new wording with prompt/reviewer tests
Files changed:
AGENTS.md | 6 ++--
docs/testing.md | 9 +++++
packages/core/src/__tests__/agent-prompts.test.ts | 22 ++++++++++++
packages/core/src/agent-prompts.ts | 16 +++++++++
packages/engine/src/__tests__/reviewer.test.ts | 17 ++++++++++
packages/engine/src/__tests__/triage.test.ts | 41 ++++++++++++++++++++---
packages/engine/src/reviewer.ts | 3 ++
packages/engine/src/triage.ts | 24 +++++++++++++
8 files changed, 131 insertions(+), 7 deletions(-)
Fusion-Task-Id: FN-5928
Fusion-Task-Lineage: 717ddcbe-f3a6-4589-ad90-4e640f7a9ff2
2026-06-02 21:57:21 -07:00
gsxdsm
504308422d
docs: update CE transport docs for SSE push + projectId session identity
2026-06-02 21:29:59 -07:00
gsxdsm
234a2a7ec5
docs: mark compound-engineering plugin plan completed
2026-06-02 20:57:06 -07:00
gsxdsm
f6c8aeeb04
feat(compound-engineering): settings schema, getters, docs (U9)
...
Add settingsSchema (default session provider/model, enabled stages, sync
reconcile-on-hooks toggle, reconcile cadence hint) aligned across manifest.json
and the runtime manifest, with typed getters. Wire the consumed getters:
orchestrator passes defaultProvider/defaultModelId into sessions and rejects
disabled stages; hooks gate their reconcile drain on reconcileOnHooks. Add the
plugin README and docs/plugins/compound-engineering.md documenting the hub,
interactive sessions, work bridge, and the sync ownership model.
reconcileIntervalMinutes is exposed as an operator cadence hint but not yet
consumed (no host scheduler; reconcile is on-demand by design).
2026-06-02 19:58:35 -07:00
gsxdsm
0041962309
FN-5915: show unread badge on header mailbox
...
Add unread mailbox status to the desktop header toggle while keeping pending approvals prioritized.
- show an unread status dot on the desktop header mailbox toggle when unread mail exists without pending approvals
- keep pending-approval indicators taking precedence and hide mailbox indicators while the mailbox view is active
- extend Header coverage for unread-only, pending-only, combined, zero-count, and active-mailbox states
- update restart integration coverage to reuse an existing worktree during orphaned resume concurrency
Files changed:
docs/dashboard-guide.md | 2 +-
packages/dashboard/app/components/Header.tsx | 9 +++++--
.../app/components/__tests__/Header.test.tsx | 26 ++++++++++++++++---
.../src/__tests__/restart.integration.test.ts | 29 ++++++++++++++++++++--
4 files changed, 58 insertions(+), 8 deletions(-)
Fusion-Task-Id: FN-5915
Fusion-Task-Lineage: 3a207e2c-ca58-402f-94cf-3a9e514fe263
2026-06-02 19:19:33 -07:00
gsxdsm
cf23c6f571
FN-5909: run configured merge bootstrap before verification
...
Ensure AI merge verification reuses the configured worktree bootstrap command.
- run merge dependency sync unconditionally when a non-blank worktreeInitCommand is configured
- reuse the configured init command instead of inferred package-manager install commands during merge verification
- add merger verification coverage for warm/cold worktrees, inferred-install fallback, and whitespace-only init commands
- document the expanded worktreeInitCommand behavior and add a published changeset
Files changed:
.changeset/fn-5909-merge-install-script.md | 5 +
docs/settings-reference.md | 2 +-
packages/engine/src/__tests__/merger-verification.test.ts | 159 +++++++++++++++------
packages/engine/src/merger.ts | 30 +++-
4 files changed, 143 insertions(+), 53 deletions(-)
Fusion-Task-Id: FN-5909
Fusion-Task-Lineage: 8530c641-9574-45e2-b9ac-82e42c9c00a7
2026-06-02 18:43:29 -07:00
gsxdsm
5c4c765134
FN-5904: feat(FN-5904): add browse-and-install flow for skills.sh catalog in Skills view
...
Add end-to-end browse-and-install flow for skills.sh catalog entries in the dashboard Skills view, enabling users to install skills directly from the catalog UI.
- Add POST /api/skills/install route with source validation and scoped project cwd
- Add installSkill method to SkillsAdapter using supervised npx skills add spawn
- Add installSkill client API function and Install button on catalog cards
- Refresh discovered skills list automatically after successful install
- Handle install errors with structured error codes (invalid_source, install_failed, install_timeout, spawn_error)
- Add card header layout with install button, disabled state, and loading spinner
- Add comprehensive tests: adapter unit tests, route integration tests, component tests
- Add changeset for @runfusion/fusion minor bump
- Update dashboard-guide.md with install endpoint documentation
Files changed:
.changeset/four-oranges-film.md | 5 +
docs/dashboard-guide.md | 45 +++++++
packages/dashboard/app/__tests__/api-skills.test.ts | 46 +++++++
packages/dashboard/app/api/legacy.ts | 12 ++
packages/dashboard/app/components/SkillsView.css | 16 +++
packages/dashboard/app/components/SkillsView.tsx | 83 +++++++++---
packages/dashboard/app/components/__tests__/SkillsView.test.tsx | 72 +++++++++++
packages/dashboard/src/__tests__/routes-skills.test.ts | 67 ++++++++++
packages/dashboard/src/__tests__/skills-adapter.test.ts | 113 ++++++++++++++++
packages/dashboard/src/routes/__tests__/register-agent-skills-routes.test.ts | 144 +++++++++++++++++++++
packages/dashboard/src/routes/register-agent-skills-routes.ts | 51 ++++++++
packages/dashboard/src/skills-adapter.ts | 103 +++++++++++++++
12 files changed, 736 insertions(+), 21 deletions(-)
Fusion-Task-Id: FN-5904
Fusion-Task-Lineage: 338d53e3-baba-4c6c-9173-8e214242403c
2026-06-02 18:29:53 -07:00
gsxdsm
577ce12a18
FN-5898: add unlinked mission goal indicator
...
Document the manual no-backfill mission-goal policy and flag active missions that still need explicit goal links.
- document the mission→goal linkage model, explicit no-backfill decision, and manual linkage workflow in missions docs
- include linkedGoalCount in mission summaries and cover single-summary/batched-summary behavior in MissionStore tests
- show an Unlinked badge for active non-interview missions with zero linked goals and add MissionManager coverage
Files changed:
.changeset/fn-5898-mission-goal-unlinked-indicator.md | 5 ++
docs/missions.md | 18 ++++--
packages/core/src/__tests__/mission-store.test.ts | 32 +++++++++-
packages/core/src/mission-store.ts | 25 +++++++-
packages/dashboard/app/components/MissionManager.css | 6 ++
packages/dashboard/app/components/MissionManager.tsx | 14 ++++
packages/dashboard/app/components/__tests__/MissionManager.test.tsx | 74 ++++++++++++++++++++++
packages/dashboard/app/components/mission-types.ts | 1 +
8 files changed, 166 insertions(+), 9 deletions(-)
Fusion-Task-Id: FN-5898
Fusion-Task-Lineage: e31e9544-4e03-4b52-afbb-e372314b997e
2026-06-02 18:15:14 -07:00
gsxdsm
cc18206bc5
FN-5902: make mission validation AI-run all criteria
...
Route every mission feature through validator-backed completion checks.
- lazily restore a managed feature assertion before validation instead of auto-passing zero-assertion features
- thread milestone acceptance criteria into validator prompts and system instructions as enforced requirements
- update MissionManager copy/tests to present criteria as AI-validated runtime gates and remove informational-only/zero-assertion warnings
- document the all-criteria AI-run contract and add a changeset for @runfusion/fusion
Files changed:
.changeset/fn-5902-mission-validation-ai-run.md | 5 +
AGENTS.md | 2 +-
docs/architecture.md | 2 +-
docs/missions-completion-contract.md | 198 ++++++---------------
docs/missions.md | 5 +-
packages/core/src/__tests__/mission-store.test.ts | 23 ++-
packages/core/src/mission-store.ts | 10 ++
packages/dashboard/app/components/MissionManager.css | 31 ----
packages/dashboard/app/components/MissionManager.tsx | 86 +++------
packages/dashboard/app/components/__tests__/MissionManager.test.tsx | 60 +++++--
packages/engine/src/__tests__/mission-execution-loop.test.ts | 111 +++++++++---
packages/engine/src/__tests__/reliability-interactions/mission-validation-trigger-gap.test.ts | 57 +++---
packages/engine/src/mission-execution-loop.ts | 78 ++++----
13 files changed, 318 insertions(+), 350 deletions(-)
Fusion-Task-Id: FN-5902
Fusion-Task-Lineage: 5f25caad-33c9-42ff-822b-1ea092afc29f
2026-06-02 18:11:26 -07:00
gsxdsm
abbeaec0a8
FN-5897: surface linked goals in mission read paths
...
Expose mission-linked goals across mission detail surfaces.
- load linked goal records into mission hierarchy reads in core and return them from the mission detail API
- show linked goals in mission detail views, add goal-chip navigation, and anchor highlighted goal cards in GoalsView
- extend CLI mission output, docs, tests, and add a published changeset for the new read-path support
Files changed:
.changeset/fn-5897-linked-goals-read-paths.md | 5 +++
docs/missions.md | 6 ++-
packages/cli/src/__tests__/extension.test.ts | 48 +++++++++++++++++++++-
packages/cli/src/extension.ts | 10 +++++
packages/core/src/__tests__/mission-store.test.ts | 14 +++++++
packages/core/src/mission-store.ts | 29 +++++++++++++
packages/core/src/mission-types.ts | 4 ++
packages/dashboard/app/App.tsx | 16 +++++++-
packages/dashboard/app/components/GoalsView.css | 6 +++
packages/dashboard/app/components/GoalsView.tsx | 42 +++++++++++++++++--
packages/dashboard/app/components/MissionManager.css | 44 ++++++++++++++++++++
packages/dashboard/app/components/MissionManager.tsx | 31 +++++++++++++-
packages/dashboard/app/components/__tests__/GoalsView.test.tsx | 31 ++++++++++++++
packages/dashboard/app/components/__tests__/MissionManager.test.tsx | 45 ++++++++++++++++++++
packages/dashboard/app/components/mission-types.ts | 2 +
packages/dashboard/src/__tests__/mission-e2e.test.ts | 4 ++
packages/dashboard/src/mission-routes.ts | 5 ++-
17 files changed, 332 insertions(+), 10 deletions(-)
Fusion-Task-Id: FN-5897
Fusion-Task-Lineage: 5176270d-9885-447a-845b-4e0d69d531a0
2026-06-02 17:58:41 -07:00
gsxdsm
6c7ed1e1fc
docs: add compound-engineering plugin implementation plan
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-02 17:41:26 -07:00
gsxdsm
d9941c3886
docs: add compound-engineering plugin requirements (brainstorm + review)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-02 17:24:17 -07:00
gsxdsm
a75e3c18da
docs: add open ideation pass for Fusion
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-02 16:19:23 -07:00
gsxdsm
3b9ff42073
FN-5901: reap stale mission validator runs
...
Add self-healing recovery for stale mission validator runs left behind after execution ownership disappears.
- add mission-store support to find and reap stale running validator runs, preserving terminal error status and resetting eligible features to needs_fix
- teach the mission execution loop and self-healing maintenance sweep to skip live validations, reap abandoned runs, record audit events, and avoid double-completing runs
- extend regression coverage, mission docs, architecture notes, and add a published-package changeset for the new recovery behavior
Files changed:
.changeset/fn-5901-validator-run-reaper.md | 7 +
AGENTS.md | 1 +
docs/architecture.md | 2 +
docs/missions.md | 26 ++-
packages/core/src/__tests__/mission-store.test.ts | 99 +++++++++
packages/core/src/mission-store.ts | 91 ++++++++
packages/engine/src/__tests__/mission-execution-loop.test.ts | 232 +++++++++++++++++++++
packages/engine/src/__tests__/reliability-interactions/mission-validator-run-reaper.test.ts | 181 ++++++++++++++++
packages/engine/src/mission-execution-loop.ts | 102 +++++++--
packages/engine/src/runtimes/in-process-runtime.ts | 8 +-
packages/engine/src/self-healing.ts | 22 ++
11 files changed, 746 insertions(+), 25 deletions(-)
Fusion-Task-Id: FN-5901
Fusion-Task-Lineage: 87eb2f3f-fc31-4e0a-b0fc-b771f6dc48a3
2026-06-02 15:33:31 -07:00
gsxdsm
93e8bd9940
FN-5899: add mission-goal linking commands and tools
...
Add mission↔goal linkage support across the API, CLI, and pi-extension surfaces.
- add mission goal list/link/unlink REST endpoints and dashboard route coverage
- add `fn mission goals`, `fn mission link-goal`, and `fn mission unlink-goal` CLI commands with tests
- add `fn_mission_list_goals`, `fn_mission_link_goal`, and `fn_mission_unlink_goal` extension tools plus skill/docs updates
- add a changeset for the published CLI package release
Files changed:
.changeset/FN-5899-mission-goal-tooling.md | 5 +
docs/cli-reference.md | 11 +-
docs/missions.md | 27 ++++
packages/cli/skill/fusion/SKILL.md | 2 +-
packages/cli/skill/fusion/references/extension-tools.md | 26 ++++
packages/cli/skill/fusion/references/fusion-capabilities.md | 3 +
packages/cli/src/__tests__/bin.test.ts | 21 +++
packages/cli/src/__tests__/extension-mission-goal-tools.test.ts | 140 +++++++++++++++++
packages/cli/src/bin.ts | 32 +++-
packages/cli/src/commands/__tests__/mission.test.ts | 99 +++++++++++-
packages/cli/src/commands/mission.ts | 102 +++++++++++++-
packages/cli/src/extension.ts | 170 +++++++++++++++++++++
packages/dashboard/src/__tests__/mission-goal-links-routes.test.ts | 151 ++++++++++++++++++
packages/dashboard/src/mission-routes.ts | 153 ++++++++++++++++++-
14 files changed, 930 insertions(+), 12 deletions(-)
Fusion-Task-Id: FN-5899
Fusion-Task-Lineage: c63b0f4b-c77e-4229-ade4-537a4dda0f5f
2026-06-02 14:47:51 -07:00
gsxdsm
30a09e3422
FN-5896: persist mission-goal linkage in schema
...
Persist mission↔goal relationships through the core mission schema and store APIs.
- add the mission_goals join table, schema migration coverage, and schema version bump to 101
- add MissionStore goal link/unlink/list helpers plus a MissionGoalLink type and emitted linkage events
- add regression tests for persistence, idempotency, ordering, and cascade behavior, and document the new linkage model with a published changeset
Files changed:
.changeset/fn-5896-mission-goal-linkage.md | 5 +
docs/missions.md | 19 +++
docs/storage.md | 1 +
packages/core/src/__tests__/db-migrate.test.ts | 49 ++++++-
packages/core/src/__tests__/db.test.ts | 34 ++---
packages/core/src/__tests__/goals-schema.test.ts | 4 +-
packages/core/src/__tests__/insight-store.test.ts | 10 +-
.../src/__tests__/merge-request-record.test.ts | 2 +-
.../core/src/__tests__/mission-goals-link.test.ts | 142 +++++++++++++++++++++
packages/core/src/__tests__/mission-store.test.ts | 4 +-
packages/core/src/__tests__/run-audit.test.ts | 2 +-
packages/core/src/__tests__/secrets-schema.test.ts | 6 +-
.../core/src/__tests__/store-merge-queue.test.ts | 2 +-
packages/core/src/__tests__/task-documents.test.ts | 2 +-
packages/core/src/db.ts | 31 ++++-
packages/core/src/mission-store.ts | 111 ++++++++++++++++
packages/core/src/mission-types.ts | 6 +
.../src/store/__tests__/roadmap-store.test.ts | 2 +-
18 files changed, 391 insertions(+), 41 deletions(-)
Fusion-Task-Id: FN-5896
Fusion-Task-Lineage: a4c7c495-b20a-454b-9605-782671cdd8c8
2026-06-02 14:41:41 -07:00
gsxdsm
8d9bbc1906
FN-5895: fix MissionManager interview resume behavior
...
Keep MissionManager mission interview state and detail rendering in sync while stabilizing the failing test coverage.
- reload assertion-linked feature data when mission details or milestone panels load
- keep selected mission detail state synchronized after mission update events instead of forcing a full mission reload
- hide the sidebar edit form while the selected mission is already being edited in the detail pane
- add a non-destructive Send to background action for resume-launched mission interview modals
- tighten MissionManager tests to target the detail pane and slice-scoped controls that now render alongside sidebar content
Files changed:
docs/missions.md | 2 +-
.../app/components/MissionInterviewModal.tsx | 30 ++++++++
.../dashboard/app/components/MissionManager.tsx | 77 +++++++++++--------
.../components/__tests__/MissionManager.test.tsx | 88 +++++++++++++++-------
4 files changed, 137 insertions(+), 60 deletions(-)
Fusion-Task-Id: FN-5895
Fusion-Task-Lineage: d018a945-33a7-4471-9636-35bc36dc88a9
2026-06-02 14:30:35 -07:00
gsxdsm
65ddb4d4f5
FN-5893: require invariant-level bug regression coverage
...
Add invariant-first regression guidance to triage prompts and testing docs.
- add an AGENTS standing rule to cover bug-fix invariants across all known surfaces
- update standard, fast, and core triage prompt templates to require invariant-level regression tests
- add triage regression tests that lock the new wording into standard, fast, and core prompts
- link docs/testing guidance back to the new invariant-over-repro rule
Files changed:
AGENTS.md | 7 ++++++
docs/testing.md | 1 +
packages/core/src/agent-prompts.ts | 3 ++-
packages/engine/src/__tests__/triage.test.ts | 32 ++++++++++++++++++++++++++++
packages/engine/src/triage.ts | 6 ++++--
5 files changed, 46 insertions(+), 3 deletions(-)
Fusion-Task-Id: FN-5893
Fusion-Task-Lineage: 31c082c6-2a0a-4619-a13b-94dad97eef62
2026-06-02 14:02:36 -07:00
gsxdsm
bd3190ba19
FN-5769: clarify workflow IR v1 agent-call semantics
...
Document that workflow IR v1 keeps agent-call and typed-edge semantics as conventions rather than a 1.1 schema bump.
- replace the deferred-v1.1 note with the FN-5769 evaluation outcome
- record that prompt config and edge.condition remain the canonical v1 representation for parity rollout
Files changed:
docs/workflow-steps.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Fusion-Task-Id: FN-5769
Fusion-Task-Lineage: 341ce4fe-d87d-4c25-a1fc-652ccfbc2e94
2026-06-02 13:37:33 -07:00
gsxdsm
dab1569ac3
FN-5892: dedupe planning sessions and persist history deletion
...
Prevent duplicate planning-history rows and keep deletions visible only after the backend confirms persistence.
- dedupe Planning Mode history by session id across initial loads, live updates, archive toggles, and draft creation
- make deleteAiSession surface backend/content-type errors instead of silently succeeding on failed deletes
- keep failed history deletions visible, refresh the list, and show an error toast when persistence fails
- add dashboard tests covering session deduplication, delete API failures, and persistence-aware Planning Mode deletion behavior
- document the history dedupe/delete semantics and add a patch changeset for @runfusion/fusion
Files changed:
.changeset/fn-5892-planning-history-fix.md | 5 +
docs/dashboard-guide.md | 2 +-
packages/dashboard/app/api/__tests__/deleteAiSession.test.ts | 54 +++++
packages/dashboard/app/api/legacy.ts | 41 +++-
packages/dashboard/app/components/PlanningModeModal.tsx | 70 ++++---
packages/dashboard/app/components/__tests__/PlanningModeModal.autosize.test.tsx | 11 +
packages/dashboard/app/components/__tests__/PlanningModeModal.dedupeSessionsById.test.ts | 44 ++++
packages/dashboard/app/components/__tests__/PlanningModeModal.initial.test.tsx | 11 +
packages/dashboard/app/components/__tests__/PlanningModeModal.planning-flow.test.tsx | 226 ++++++++++++++++++++-
packages/dashboard/app/components/__tests__/PlanningModeModal.test-helpers.ts | 1 +
10 files changed, 439 insertions(+), 26 deletions(-)
Fusion-Task-Id: FN-5892
Fusion-Task-Lineage: 7453bc34-6d57-4d67-ac92-8fb50084fbee
2026-06-02 12:42:04 -07:00
gsxdsm
a6989ed7f4
FN-5891: respect validator model settings in mission validation
...
Use the configured validator lane when creating mission validation sessions.
- resolve mission validation session models from test mode, assigned agent runtime, and validator/default task settings in precedence order
- surface validation session creation failures as mission validation errors instead of triggering fix-feature retries
- add regression coverage and documentation for mission validation model resolution and error handling
Files changed:
AGENTS.md | 1 +
docs/missions.md | 4 +-
docs/settings-reference.md | 6 +-
.../src/__tests__/mission-execution-loop.test.ts | 252 ++++++++++++++++++++-
packages/engine/src/mission-execution-loop.ts | 63 +++++-
5 files changed, 316 insertions(+), 10 deletions(-)
Fusion-Task-Id: FN-5891
Fusion-Task-Lineage: 6254daee-fb6b-4ebb-9fb4-3636237404b1
2026-06-02 12:38:09 -07:00
gsxdsm
8156382d76
FN-5889: suppress post-done continuation wedges
...
Keep completed post-done continuation errors from wedging review tasks in a failed state.
- route step-session non-continuable continuation errors through the executor recovery path before marking tasks failed
- add self-healing recovery and run-audit events for in-review tasks already wedged by post-done non-continuable errors
- extend reliability coverage and architecture/backstop docs for the new post-done wedge handling
Files changed:
AGENTS.md | 1 +
docs/architecture.md | 3 +-
packages/engine/src/__tests__/reliability-interactions/post-done-continuation-no-wedge.test.ts | 131 ++++++++++++++++++++-
packages/engine/src/executor.ts | 11 +-
packages/engine/src/run-audit.ts | 2 +
packages/engine/src/self-healing.ts | 97 ++++++++++++++-
6 files changed, 236 insertions(+), 9 deletions(-)
Fusion-Task-Id: FN-5889
Fusion-Task-Lineage: c22716f2-cddb-4c98-ac87-0282017e7c82
2026-06-02 11:03:18 -07:00
gsxdsm
a66b128089
FN-5883: restore planning-mode single-task history
...
Keep completed planning sessions restorable after single-task creation.
- preserve completed planning-session rows after create-task by releasing only in-memory runtime state
- keep completed sessions in the Planning Mode history UI and add coverage for history restoration flows
- document the restored Planning Mode history behavior and add a patch changeset for @runfusion/fusion
Files changed:
.changeset/fn-5883-planning-restore.md | 5 +
docs/dashboard-guide.md | 2 +
.../dashboard/app/components/PlanningModeModal.tsx | 17 +--
.../PlanningModeModal.planning-flow.test.tsx | 118 ++++++++++++++++++++-
.../src/__tests__/routes-planning.test.ts | 86 +++++++++++----
packages/dashboard/src/planning.ts | 7 +-
.../src/routes/register-planning-subtask-routes.ts | 14 +--
7 files changed, 207 insertions(+), 42 deletions(-)
Fusion-Task-Id: FN-5883
Fusion-Task-Lineage: 47824bac-3083-45a4-a0d5-b8c7540966c1
2026-06-02 10:07:08 -07:00
gsxdsm
cc5e61dbc4
FN-5882: fix mission interview draft resume handling
...
Keep mission interview drafts recoverable when closing and refreshing Missions.
- make MissionInterviewModal use a single non-destructive close path for header, Escape, and backdrop actions
- refresh mission interview draft/session rows on mission and ai-session SSE updates and reconnects
- open Plan New Mission as a fresh interview instead of always resuming the last session, with regression coverage and docs updates
Files changed:
docs/missions.md | 2 +-
.../app/components/MissionInterviewModal.tsx | 89 +++-----
.../dashboard/app/components/MissionManager.tsx | 156 ++++++++++----
.../__tests__/MissionInterviewModal.test.tsx | 100 ++++++++-
.../components/__tests__/MissionManager.test.tsx | 224 +++++++++++++++++++++
5 files changed, 455 insertions(+), 116 deletions(-)
Fusion-Task-Id: FN-5882
Fusion-Task-Lineage: 75de9e94-edef-4564-a266-91782e60c2ac
2026-06-02 10:04:38 -07:00