gsxdsm
b265d6b395
FN-5700: remove duplicate task autoMerge declarations
...
Clean up duplicate task autoMerge declarations across core schema, store mapping, and tests.
- Remove the redundant task-level autoMerge field from core Task types and DB schema expectations.
- Keep task hydration autoMerge mapping in a single path and normalize boolean conversion to explicit integer checks.
- Update affected core and roadmap store tests to match the deduplicated autoMerge surface.
Files changed:
packages/core/src/__tests__/db-migrate.test.ts | 12 ++++----
packages/core/src/__tests__/db.test.ts | 34 +++++++++++-----------
packages/core/src/__tests__/goals-schema.test.ts | 2 +-
packages/core/src/__tests__/insight-store.test.ts | 10 +++----
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 ++--
.../core/src/__tests__/store-merge-queue.test.ts | 2 +-
packages/core/src/__tests__/task-documents.test.ts | 2 +-
packages/core/src/db.ts | 1 -
packages/core/src/store.ts | 4 +--
packages/core/src/types.ts | 5 ----
.../src/store/__tests__/roadmap-store.test.ts | 4 +--
13 files changed, 39 insertions(+), 47 deletions(-)
Fusion-Task-Id: FN-5700
Fusion-Task-Lineage: d2d4d41e-31b1-44a0-9594-9d75056c59a2
2026-05-29 12:25:17 -07:00
gsxdsm
0044c23c64
FN-5699: fix github-copilot device-code login callback handling
...
Prevent dashboard auth initiation from crashing when Copilot emits device-code callbacks.
- wire optional auth callbacks (`onDeviceCode`, `onSelect`) through dashboard auth route typing
- capture and return device-code payload from either `onDeviceCode` or parsed Copilot instructions when `/api/auth/login` starts
- guard auth-init promise settlement to avoid double resolve/reject races and normalize async login errors
- add regression coverage for Copilot device-code callback handling in auth route tests
- sync roadmap plugin schema-version test expectation from 94 to 95 to keep suite assertions aligned
Files changed:
.changeset/fn-5699-copilot-device-code-callback.md | 5 ++
packages/dashboard/src/__tests__/routes-auth.test.ts | 21 ++++++++
packages/dashboard/src/routes.ts | 7 +++
packages/dashboard/src/routes/register-auth-routes.ts | 62 +++++++++++++++++-----
plugins/fusion-plugin-roadmap/src/store/__tests__/roadmap-store.test.ts | 4 +-
5 files changed, 83 insertions(+), 16 deletions(-)
Fusion-Task-Id: FN-5699
Fusion-Task-Lineage: 24bf59f2-3b22-4087-96ca-35409fe00895
2026-05-29 11:22:27 -07:00
gsxdsm
a312da63e4
FN-5674: add per-task auto-merge persistence and resolver
...
Add per-task auto-merge overrides to the core task model and persist/snapshot them through review transitions.
- add Task.autoMerge typing, storage row mapping, updateTask support, and DB schema migration to persist per-task auto-merge state
- snapshot settings.autoMerge onto tasks when moving into in-review when no explicit task override is set
- export resolveEffectiveAutoMerge to consistently resolve task-level override vs global settings precedence
- expand core tests for migration, persistence, movement, and merge behavior; update roadmap schema-version expectation to match the new schema version
Files changed:
packages/core/src/__tests__/db-migrate.test.ts | 10 +++----
packages/core/src/__tests__/db.test.ts | 34 +++++++++++-----------
packages/core/src/__tests__/goals-schema.test.ts | 2 +-
packages/core/src/__tests__/insight-store.test.ts | 10 +++----
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 ++--
.../core/src/__tests__/store-merge-queue.test.ts | 2 +-
packages/core/src/__tests__/store-movement.test.ts | 33 +++++++++++++++++++++
.../core/src/__tests__/store-persistence.test.ts | 18 ++++++++++++
packages/core/src/__tests__/task-documents.test.ts | 2 +-
packages/core/src/__tests__/task-merge.test.ts | 19 ++++++++++++
packages/core/src/db.ts | 9 +++++-
packages/core/src/index.ts | 1 +
packages/core/src/store.ts | 23 +++++++++++++--
packages/core/src/task-merge.ts | 15 +++++++++-
packages/core/src/types.ts | 7 +++++
.../src/store/__tests__/roadmap-store.test.ts | 4 +--
18 files changed, 157 insertions(+), 42 deletions(-)
Fusion-Task-Id: FN-5674
Fusion-Task-Lineage: 8e1e3988-2e41-4d7a-9653-e88c36ec272c
2026-05-29 09:56:28 -07:00
gsxdsm
71e2aec5b7
FN-5663: add goal-citation audit trail to agent reasoning
...
Record goal citation evidence so agent reasoning can be traced end-to-end.
- add core goal citation types, extraction helper, persistence schema, and store APIs for citation create/list workflows
- add CLI support and tests for goal citation flows, including command wiring and regression coverage
- update docs and add a published changeset for @runfusion/fusion describing the new audit-trail capability
Files changed:
.changeset/fn-5663-goal-citation-audit-trail.md | 10 +
docs/agents.md | 15 ++
docs/cli-reference.md | 6 +-
packages/cli/src/__tests__/bin.test.ts | 2 +
.../cli/src/__tests__/goals-citations-cli.test.ts | 82 ++++++++
packages/cli/src/bin.ts | 19 +-
packages/cli/src/commands/goals.ts | 43 +++++
packages/core/src/__tests__/db-migrate.test.ts | 10 +-
packages/core/src/__tests__/db.test.ts | 34 ++--
.../src/__tests__/goal-citation-extractor.test.ts | 56 ++++++
.../src/__tests__/goal-citations-store.test.ts | 175 +++++++++++++++++
packages/core/src/__tests__/goals-schema.test.ts | 2 +-
packages/core/src/__tests__/insight-store.test.ts | 10 +-
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 +-
.../core/src/__tests__/store-merge-queue.test.ts | 2 +-
packages/core/src/__tests__/task-documents.test.ts | 2 +-
packages/core/src/db.ts | 51 ++++-
packages/core/src/goal-citation-extractor.ts | 56 ++++++
packages/core/src/index.ts | 13 ++
packages/core/src/store.ts | 210 ++++++++++++++++++++-
packages/core/src/types.ts | 51 ++++-
.../src/store/__tests__/roadmap-store.test.ts | 4 +-
24 files changed, 817 insertions(+), 46 deletions(-)
Fusion-Task-Id: FN-5663
Fusion-Task-Lineage: 720f2c4b-4363-464a-a76f-472ec6aca136
2026-05-29 08:25:38 -07:00
gsxdsm
a960bb1031
chore(release): v0.37.0
...
Version bump via changesets.
2026-05-29 08:09:33 -07:00
gsxdsm
6c44ed16e7
chore(release): v0.36.0
...
Version bump via changesets.
2026-05-28 23:40:25 -07:00
gsxdsm
cec191eac3
FN-5638: migrate pi-ai and pi-coding-agent packages to @earendil-works scope
...
Fusion-Task-Id: FN-5638
Fusion-Task-Lineage: 6e99c156-5f6c-42e6-bd26-618e08ffd05f
2026-05-28 21:23:48 -07:00
gsxdsm
2a3535893b
feat(FN-5622): add goals REST API with store accessor and route handlers
...
Introduces a Goals REST API (`GET/POST/PUT /api/goals` and `GET/PUT /api/goals/:id`) backed by a new `@fusion/core` goal store and typed goal types, including comprehensive route and store test coverage. Documentation on architecture and storage is updated to reflect the new domain, and a changeset
Fusion-Task-Id: FN-5622
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
Fusion-Task-Id: FN-5622
2026-05-28 10:32:16 -07:00
gsxdsm
0a04837e7a
chore(release): v0.35.0
...
Version bump via changesets.
2026-05-28 08:20:50 -07:00
gsxdsm
2f80c6ea7b
chore(release): v0.34.0
...
Version bump via changesets.
2026-05-26 23:45:59 -07:00
gsxdsm
91b5d77934
Merge pull request #974 from titosemi/fix/chat-sessions-multi-project-scope-clean
...
fix(dashboard): use per-project chatStore in chat session API routes
2026-05-26 08:27:02 -07:00
gsxdsm
5eacd79b43
feat(FN-5584): merge fusion/fn-5584
2026-05-25 15:27:06 -07:00
gsxdsm
8650480622
Merge branch 'main' into fix/chat-sessions-multi-project-scope-clean
2026-05-25 13:28:29 -07:00
gsxdsm
1bd8f51198
fix(plugins/reports): wire @testing-library/react cleanup so React teardown doesn't leak past test env
...
The api stub from 43be32bbd silenced the fetch-rejection path but the suite
still failed on CI: the actual unhandled error is React's scheduler firing
deferred work via setImmediate after jsdom is torn down — its internal
render then dereferences `window` and throws ReferenceError. @testing-library
only auto-registers cleanup() when vitest `globals: true` is set, and this
package doesn't enable globals, so the React tree from each render() stays
mounted across teardown. Register cleanup manually in test-setup.ts so every
dashboard test unmounts its tree before the environment tears down.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-25 12:59:48 -07:00
gsxdsm
43be32bbd7
fix(plugins/reports): stub api in ReportsView test to prevent post-teardown unhandled error
...
ReportDetailPanel transitively calls useReportPreview, which fires fetch()
from api.ts. jsdom has no fetch, the promise rejects, and the catch handler's
setError triggers a React update after the test environment is torn down —
React then accesses window and the suite fails with ReferenceError. The
engine failures previously masked this by failing the shard before the
teardown race could surface. Mocking the api module makes the preview
resolve synchronously and keeps the suite clean.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-25 12:47:39 -07:00
Josemi Liebana
dc0b764977
fix(test): address review — inherit coreSetup from root via extends: true
...
Remove duplicate coreSetup from reports-dashboard project setupFiles.
With extends: true, coreSetup is already inherited from the root config.
Only dashboardSetup needs to be explicitly added at the project level.
2026-05-25 12:34:46 +02:00
Josemi Liebana
6fe7d6909c
fix(test): migrate fusion-plugin-reports vitest config from deprecated environmentMatchGlobs to test.projects
...
Resolves CI failures where Node.js 24 caused ReferenceError: window is not defined
in non-dashboard tests that shared setupFiles with dashboard tests.
Follows the same pattern already used by fusion-plugin-roadmap: split into two
vitest projects with proper environment isolation:
- reports-dashboard: jsdom, includes src/dashboard/** tests + dashboard test-setup.ts
- reports-node: node, includes all other tests, excludes dashboard tests
No test changes — same 104 tests, same pass/fail state.
2026-05-25 11:59:18 +02:00
gsxdsm
2d04cbe09d
chore(release): v0.33.0
...
Version bump via changesets.
2026-05-23 23:12:21 -07:00
Fusion (runfusion.ai)
f6f38676b4
feat(FN-5226): add scope auto-widen layer 2.5 to merger for attribution-bas
...
Merges the Layer 2.5 scope-auto-widen feature (FN-5226) into the merger: a new evaluator module that automatically widens a task's declared file scope based on git attribution prior to the existing scope partition gate, wired into `merger.ts` with full audit taxonomy, persisted task metadata, and re
Fusion-Task-Id: FN-5226
2026-05-21 16:30:31 -07:00
gsxdsm
959f7cd4eb
chore(release): v0.32.0
...
Version bump via changesets.
2026-05-19 22:09:26 -07:00
Fusion (runfusion.ai)
6b24b56b81
feat(FN-5242): add merge queue storage and lease API to task store
...
- docs(FN-5242): complete Step 7 — document merge queue storage
- docs(FN-5242): complete Step 5 — add changeset and exports
- fix(FN-5242): order merge queue audit assertions chronologically
- test(FN-5242): complete Step 4 — cover merge queue leasing
- feat(FN-5242): complete Step 2 — add merge queue lease API
- feat(FN-5242): complete Step 1 — add mergeQueue schema v89
Fusion-Task-Id: FN-5242
2026-05-19 21:14:49 -07:00
Fusion (runfusion.ai)
97f46dbad8
test(FN-5115): complete Step 7 — stabilize migrations and verification
...
Fusion-Task-Id: FN-5115
Fusion-Task-Lineage: 5c3d9d42-9dcd-4ebb-ba10-8a4b14d541dd
2026-05-19 06:51:26 -07:00
Fusion (runfusion.ai)
7380adc7b6
fix(FN-5105): complete Step 6 — stabilize verification gates
...
Fusion-Task-Id: FN-5105
Fusion-Task-Lineage: a876d5eb-d828-415e-b6f0-07bbc8713417
2026-05-19 05:16:37 -07:00
gsxdsm
aad1219037
feat(FN-4967): merge fusion/fn-4967
2026-05-18 15:50:48 -07:00
Fusion (runfusion.ai)
b692656510
feat(FN-4999): recover completion handoff limbo safely
...
- Add completion handoff limbo recovery state to task storage and audit events for bounded self-healing retries
- Requeue eligible in-review tasks stuck after "Task marked done by agent" with grace-period, active-task, and merge-blocker safeguards
- Isolate executor run mutation context per task to prevent cross-task runId attribution leaks in scope-leak and completion logs
- Add reliability and executor regression tests covering limbo recovery, run-context isolation, and updated persistence behavior
Fusion-Task-Id: FN-4999
2026-05-18 05:29:10 -07:00
gsxdsm
f3f4a0b46b
fix(test-isolation): apply central vitest guard to roadmap-dashboard sub-project
...
The roadmap-dashboard Vitest sub-project overrode setupFiles with only
its jsdom helper. Vitest replaces (does not merge) setupFiles in child
projects, so the central isolation guard at
packages/core/src/__test-utils__/vitest-setup.ts was silently bypassed
for the 94 roadmap-dashboard tests, leaving them able to touch the real
project .fusion / $HOME / child processes without the leak-detection
and AI-CLI block.
Prepend the central guard so it loads before the dashboard jsdom setup.
All 94 roadmap-dashboard tests still pass.
2026-05-17 12:33:09 -07:00
Fusion (runfusion.ai)
10455b7992
feat(FN-4898): reconcile task title-id drift in storage migrations
...
Adds a title-id drift detection and reconciliation system to prevent duplicate tasks when task titles change after initial creation. Core adds the `task-title-id-drift.ts` module with `markTitleIdStable` and `resolveTitleIdDrift` logic, wired through `db.ts`, `store.ts`, and `archive-db.ts`, with co
Fusion-Task-Id: FN-4898
2026-05-17 09:51:10 -07:00
gsxdsm
2f2fdd5e42
feat(FN-4803): merge fusion/fn-4803
2026-05-16 16:02:43 -07:00
Fusion
ef1ce1071b
test(FN-4651): complete Step 4/5 verification and docs updates
...
Fusion-Task-Id: FN-4651
Fusion-Task-Lineage: 14d15555-468d-4690-8efd-a09b31b5d407
2026-05-15 12:51:41 -07:00
gsxdsm
6ab2c3430d
chore(release): v0.31.0
...
Version bump via changesets.
2026-05-15 08:41:59 -07:00
Fusion
a9362c8f29
feat(FN-4605): complete Step 3 — add workspace-root bootstrap and pretest hooks
...
Fusion-Task-Id: FN-4605
Fusion-Task-Lineage: 472b0ccb-d015-4ff7-bdf2-1d5d05ae09e9
2026-05-15 08:22:44 -07:00
Fusion
3648d1e1df
feat(FN-4595): implement cumulative execution timing semantics
...
Fusion-Task-Id: FN-4595
Fusion-Task-Lineage: 73a3d0ad-5c10-4560-aec5-f9d138deeefd
2026-05-15 07:50:34 -07:00
Fusion
277d29abfe
feat(FN-4596): complete Step 5 — document measured-height stacking in both orientations
...
Fusion-Task-Id: FN-4596
Fusion-Task-Lineage: 0af225ee-ce0a-47ea-95cb-eff3b9f1d5fc
2026-05-15 07:04:04 -07:00
Fusion
14d11ff5a6
test(FN-4596): complete Step 2 — add horizontal measured-height regression tests
...
Fusion-Task-Id: FN-4596
Fusion-Task-Lineage: 0af225ee-ce0a-47ea-95cb-eff3b9f1d5fc
2026-05-15 07:04:04 -07:00
Fusion
586d321dbb
feat(FN-4596): complete Step 1 — make horizontal stride measured-height-aware
...
Fusion-Task-Id: FN-4596
Fusion-Task-Lineage: 0af225ee-ce0a-47ea-95cb-eff3b9f1d5fc
2026-05-15 07:04:04 -07:00
Fusion
6f6850668c
test(FN-4578): complete Step 3 — bump schema version assertions
...
Fusion-Task-Id: FN-4578
Fusion-Task-Lineage: 1be0fa08-4d83-4988-a218-326225dfe4b5
2026-05-15 03:07:36 -07:00
gsxdsm
ed5269d2a2
chore(release): v0.30.0
...
Version bump via changesets.
2026-05-15 01:50:08 -07:00
Fusion
1583eb0023
test(FN-4538): align roadmap schema version assertion
...
Fusion-Task-Id: FN-4538
Fusion-Task-Lineage: 332b4c78-b67f-45d0-9181-0bb539b662c1
2026-05-14 22:24:51 -07:00
Fusion
b0205d4765
feat(FN-4549): complete Step 9 — document measured vertical graph layout
...
Fusion-Task-Id: FN-4549
Fusion-Task-Lineage: 7c6b974d-cad9-418c-bf02-9d8490725c6e
2026-05-14 22:16:44 -07:00
Fusion
800f532ad9
fix(FN-4549): keep layout defaults optional for measured heights
...
Fusion-Task-Id: FN-4549
Fusion-Task-Lineage: 7c6b974d-cad9-418c-bf02-9d8490725c6e
2026-05-14 22:16:44 -07:00
Fusion
82a7f59ef7
test(FN-4549): complete Step 7 — keep persistence/orientation regressions green
...
Fusion-Task-Id: FN-4549
Fusion-Task-Lineage: 7c6b974d-cad9-418c-bf02-9d8490725c6e
2026-05-14 22:16:44 -07:00
Fusion
f68774d351
test(FN-4549): complete Step 6 — add vertical non-overlap regression
...
Fusion-Task-Id: FN-4549
Fusion-Task-Lineage: 7c6b974d-cad9-418c-bf02-9d8490725c6e
2026-05-14 22:16:43 -07:00
Fusion
04884b5f31
test(FN-4549): complete Step 5 — cover measured vertical layout offsets
...
Fusion-Task-Id: FN-4549
Fusion-Task-Lineage: 7c6b974d-cad9-418c-bf02-9d8490725c6e
2026-05-14 22:16:43 -07:00
Fusion
7b35a5b426
feat(FN-4549): complete Step 4 — align edges and bounds to measured heights
...
Fusion-Task-Id: FN-4549
Fusion-Task-Lineage: 7c6b974d-cad9-418c-bf02-9d8490725c6e
2026-05-14 22:16:43 -07:00
Fusion
d3dd9bd38c
feat(FN-4549): complete Step 3 — measure task node heights for auto layout
...
Fusion-Task-Id: FN-4549
Fusion-Task-Lineage: 7c6b974d-cad9-418c-bf02-9d8490725c6e
2026-05-14 22:16:43 -07:00
Fusion
49473e2f96
feat(FN-4549): complete Step 2 — support measured vertical row heights
...
Fusion-Task-Id: FN-4549
Fusion-Task-Lineage: 7c6b974d-cad9-418c-bf02-9d8490725c6e
2026-05-14 22:16:43 -07:00
Fusion
98f7a28130
docs(FN-4539): complete Step 7 — document responsive graph orientation
...
Fusion-Task-Id: FN-4539
Fusion-Task-Lineage: 90c37e7c-0691-4f15-80d6-e95bc6502e76
2026-05-14 16:12:18 -07:00
Fusion
4485f14858
test(FN-4539): complete Step 4 — cover responsive orientation flip
...
Fusion-Task-Id: FN-4539
Fusion-Task-Lineage: 90c37e7c-0691-4f15-80d6-e95bc6502e76
2026-05-14 16:12:18 -07:00
Fusion
e3e208d87a
feat(FN-4539): complete Step 3 — add responsive orientation wiring
...
Fusion-Task-Id: FN-4539
Fusion-Task-Lineage: 90c37e7c-0691-4f15-80d6-e95bc6502e76
2026-05-14 16:12:18 -07:00
Fusion
c12c92c22b
test(FN-4539): complete Step 2 — add horizontal layout coverage
...
Fusion-Task-Id: FN-4539
Fusion-Task-Lineage: 90c37e7c-0691-4f15-80d6-e95bc6502e76
2026-05-14 16:12:17 -07:00