Commit Graph

717 Commits

Author SHA1 Message Date
gsxdsm
fabcb5387a feat(FN-5074): merge fusion/fn-5074 2026-05-18 15:36:23 -07:00
gsxdsm
6c1732d234 feat(FN-5076): merge fusion/fn-5076 2026-05-18 14:46:20 -07:00
gsxdsm
9aa7518bad feat(FN-5057): merge fusion/fn-5057 2026-05-18 11:46:43 -07:00
gsxdsm
40cdf23cfd feat(FN-4966): complete Step 4 — wire diagnostics into PR refresh routes
Fusion-Task-Id: FN-4966
Fusion-Task-Lineage: 8f5ea300-feaa-469c-aeed-f7304a5a1b6d
2026-05-18 08:45:17 -07:00
gsxdsm
d3297a8612 feat(FN-4966): complete Step 3 — add PR conflict diagnostics collection
Fusion-Task-Id: FN-4966
Fusion-Task-Lineage: 8f5ea300-feaa-469c-aeed-f7304a5a1b6d
2026-05-18 08:45:17 -07:00
Fusion (runfusion.ai)
60d3da7394 feat(FN-4993): wire pr create flags router and AI metadata parity
Fusion-Task-Id: FN-4993
Fusion-Task-Lineage: 20ce6d5f-ef33-49e6-8519-648d769cc473
2026-05-18 05:57:43 -07:00
Fusion (runfusion.ai)
09491671ea feat(FN-4993): complete Step 1 — add draft and reviewer support in GitHubClient
Fusion-Task-Id: FN-4993
Fusion-Task-Lineage: 20ce6d5f-ef33-49e6-8519-648d769cc473
2026-05-18 05:57:43 -07:00
Fusion (runfusion.ai)
29cd4aab9b feat(FN-4984): complete Step 1 — add sync passphrase routes
Fusion-Task-Id: FN-4984
Fusion-Task-Lineage: 8fdf7a19-b101-4b33-8e60-44fcbf402256
2026-05-18 04:46:56 -07:00
Fusion (runfusion.ai)
c97ebde1d3 test(FN-4981): complete Step 4 — enforce apiKey guard ordering
Fusion-Task-Id: FN-4981
Fusion-Task-Lineage: 0b3fae6a-a86b-44d5-94e8-4c94429d4767
2026-05-18 04:31:25 -07:00
Fusion (runfusion.ai)
765a6fed0a test(FN-4981): complete Step 3 — add pull missing-apiKey coverage
Fusion-Task-Id: FN-4981
Fusion-Task-Lineage: 0b3fae6a-a86b-44d5-94e8-4c94429d4767
2026-05-18 04:31:25 -07:00
Fusion (runfusion.ai)
47775e9428 test(FN-4981): complete Step 2 — add push missing-apiKey coverage
Fusion-Task-Id: FN-4981
Fusion-Task-Lineage: 0b3fae6a-a86b-44d5-94e8-4c94429d4767
2026-05-18 04:31:25 -07:00
gsxdsm
e33159e91b feat(FN-4919): merge fusion/fn-4919 2026-05-18 04:01:51 -07:00
Fusion (runfusion.ai)
b5e674059b test(FN-4980): cover sync-export auth rejection paths
- Add GET /api/secrets/sync-export coverage for missing, malformed, and invalid Authorization headers
- Assert 401 responses never echo bearer token material back in the response body
- Verify requests are rejected when the local node has no configured API key

Fusion-Task-Id: FN-4980
2026-05-18 03:47:30 -07:00
Fusion (runfusion.ai)
09a18f81be feat(FN-4991): add PR metadata generator helper
Added a PR metadata generator helper to the dashboard package (FN-4991), including test coverage for the new module.

Fusion-Task-Id: FN-4991

Fusion-Task-Lineage: 11bdb797-558e-4ae6-a265-4bcd91da2be6
2026-05-18 00:19:05 -07:00
Fusion (runfusion.ai)
507da28fba feat(FN-4908): complete Step 3 — switch reliability route to SQL aggregations
Fusion-Task-Id: FN-4908
Fusion-Task-Lineage: 97d96ea4-8618-43cc-8448-0132cd57974e
2026-05-17 23:21:34 -07:00
Fusion (runfusion.ai)
24076970b1 feat(FN-4926): add fn_task_list regression tests
Adds regression tests for `fn_task_list` in the pi-extensions test suite and updates an existing planning-board-tools test, both scoped to FN-4926 coverage.

Fusion-Task-Id: FN-4926

Fusion-Task-Lineage: 9a6a82cb-4b17-4471-a386-7c4b7d275c40
2026-05-17 20:09:36 -07:00
gsxdsm
bf0e9a3e37 feat(FN-4766): merge fusion/fn-4766 2026-05-17 19:11:40 -07:00
Fusion (runfusion.ai)
9475639a48 test(FN-4942): align route task tests with hook-based tracking
Fusion-Task-Id: FN-4942
Fusion-Task-Lineage: 20865705-e5ec-4261-932c-4d47c2d8dc12
2026-05-17 19:04:18 -07:00
Fusion (runfusion.ai)
8ef7fe2b18 feat(FN-4942): complete Step 2 — route tracking creation via hook
Fusion-Task-Id: FN-4942
Fusion-Task-Lineage: 20865705-e5ec-4261-932c-4d47c2d8dc12
2026-05-17 19:04:18 -07:00
Fusion (runfusion.ai)
d13ee7f526 feat(FN-4962): complete Step 4 — dashboard fallback and reliability coverage
Fusion-Task-Id: FN-4962
Fusion-Task-Lineage: de4ce54b-c5e4-40f9-a048-677adac3e1a0
2026-05-17 15:55:18 -07:00
Fusion (runfusion.ai)
26c3d330d3 feat(FN-4764): complete Step 2-4 — surface structured gh errors in API UI CLI
Fusion-Task-Id: FN-4764
Fusion-Task-Lineage: 14809ad5-8463-4e16-a934-1414225f17ae
2026-05-17 14:48:31 -07:00
Fusion (runfusion.ai)
abb0f63aae feat(FN-4915): complete Step 2-3 — add secret audit emitters and approval audits
Fusion-Task-Id: FN-4915
Fusion-Task-Lineage: d5c49dae-6069-4998-b632-aca52cc312dc
2026-05-17 13:54:32 -07:00
Fusion (runfusion.ai)
76b1ba8178 feat(FN-4763): complete Step 4 — add conflict reclaim route test coverage
Fusion-Task-Id: FN-4763
Fusion-Task-Lineage: b3628e63-682b-4a39-9a7d-2c96278c5366
2026-05-17 13:46:23 -07:00
Fusion (runfusion.ai)
b0a34d70c1 fix(FN-4763): export PrConflictState and expand mapping tests
Fusion-Task-Id: FN-4763
Fusion-Task-Lineage: b3628e63-682b-4a39-9a7d-2c96278c5366
2026-05-17 13:46:23 -07:00
Fusion (runfusion.ai)
9d5d310fdc feat(FN-4763): complete Step 1 — capture PR mergeable state
Fusion-Task-Id: FN-4763
Fusion-Task-Lineage: b3628e63-682b-4a39-9a7d-2c96278c5366
2026-05-17 13:46:21 -07:00
Fusion (runfusion.ai)
cca96a7604 test(FN-4913): complete Step 7 — add secrets sync contract coverage
Fusion-Task-Id: FN-4913
Fusion-Task-Lineage: 2fa1fe49-a2a9-405d-833b-cb34d41ef19a
2026-05-17 12:58:01 -07:00
Fusion (runfusion.ai)
9dfefc551b feat(FN-4941): close or delete GitHub issues when tasks are deleted
Fixed GitHub issue close and delete behavior when tasks are deleted in the dashboard's GitHub tracking state module, with test coverage added for both delete and state tracking scenarios.

Fusion-Task-Id: FN-4941
2026-05-17 12:56:38 -07:00
Fusion (runfusion.ai)
01caeb6d88 feat(FN-4762): merge fusion/fn-4762
Commits merged:
- merge fusion/fn-4762

Files changed:
AGENTS.md                                       | 25 ++++++++++++++++++++++---
 docs/README.md                                  |  6 ++++++
 packages/core/src/store.ts                      |  4 ++--
 packages/dashboard/app/App.tsx                  | 10 ++++++++--
 packages/dashboard/src/__tests__/github.test.ts |  3 ++-
 5 files changed, 40 insertions(+), 8 deletions(-)

Fusion-Task-Id: FN-4762

Fusion-Task-Lineage: 5c7ef3b8-fefc-4cc2-a703-634124d77cde
2026-05-17 12:24:45 -07:00
Fusion (runfusion.ai)
73454fae5c feat(FN-4762): complete Step 3 — PR merge routes and dashboard controls
Fusion-Task-Id: FN-4762
Fusion-Task-Lineage: 5c7ef3b8-fefc-4cc2-a703-634124d77cde
2026-05-17 12:11:51 -07:00
Fusion (runfusion.ai)
9a462388b5 feat(FN-4928): complete Step 2 — fix prompt-sizes SQL and add real DB regression test
Fusion-Task-Id: FN-4939
Fusion-Task-Lineage: b2a00edb-5245-4223-97e4-0a16dd2c3289
2026-05-17 11:49:08 -07:00
Fusion (runfusion.ai)
9cee0ef083 fix(FN-4761): correct review-feedback document persistence
Fusion-Task-Id: FN-4761
Fusion-Task-Lineage: b6b1ed73-c396-4dd2-b97f-366272d05c7f
2026-05-17 11:39:19 -07:00
Fusion (runfusion.ai)
5bde911bdb feat(FN-4761): sync PR reviews and surface review threads
Fusion-Task-Id: FN-4761
Fusion-Task-Lineage: b6b1ed73-c396-4dd2-b97f-366272d05c7f
2026-05-17 11:39:19 -07:00
Fusion (runfusion.ai)
a2bd876eb4 test(FN-4907): cover stale settings invalidation and sync refresh paths
Fusion-Task-Id: FN-4907
Fusion-Task-Lineage: e84d5357-0719-4cc7-ab3f-f665ac83b218
2026-05-17 10:31:35 -07:00
gsxdsm
67aff5de80 fix(dashboard): auto-invalidate index.html and view-chunk caches on mtime change
The dashboard server cached index.html and the Vite view-chunk manifest
forever with no invalidation. When the on-disk files changed (release
upgrade, rebuild) the server kept serving stale HTML referencing chunk
hashes that no longer existed, leaving the browser stuck on a blank
white page until the server was restarted.

Both caches now key on file mtime and refresh automatically. The
serveIndexHtml catch path also logs the failure and clears the
templated cache so the next request can recover instead of silently
404ing until restart.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-17 09:24:28 -07:00
Fusion (runfusion.ai)
49daa3046d feat(FN-4760): complete Step 2 — add PR checks endpoint and client
Fusion-Task-Id: FN-4760
Fusion-Task-Lineage: 71db4a53-ee59-49f0-a1f7-232954b86660
2026-05-17 08:49:51 -07:00
Fusion (runfusion.ai)
ef43957d72 feat(FN-4760): complete Step 1 — add PR check details and all-checks API
Fusion-Task-Id: FN-4760
Fusion-Task-Lineage: 71db4a53-ee59-49f0-a1f7-232954b86660
2026-05-17 08:49:50 -07:00
Fusion (runfusion.ai)
af8999f6c6 test(FN-4847): complete Step 2 — add edge-case auth/ownership tests
Fusion-Task-Id: FN-4847
Fusion-Task-Lineage: af551b65-a484-496a-8bab-b46193e06104
2026-05-17 08:47:16 -07:00
Fusion (runfusion.ai)
ae76e6285e test(FN-4871): unskip and expand inbound auth regression matrix
Fusion-Task-Id: FN-4871
Fusion-Task-Lineage: afa2af88-9c7d-4809-bf8f-2aa6cf79ce40
2026-05-17 04:19:59 -07:00
Fusion (runfusion.ai)
6aee8923db feat(FN-4869): add regression tests for inbound sync empty apiKey handling
Adds regression test coverage for the inbound node-sync empty apiKey validation path in `routes-nodes-sync.test.ts`.

Fusion-Task-Id: FN-4869
2026-05-17 04:00:02 -07:00
Fusion (runfusion.ai)
9339473732 feat(FN-4870): add missing-URL denial regression test for node settings syn
Adds regression test coverage for missing-URL denial scenarios in the node settings sync contract, ensuring the API correctly rejects requests without a target URL.

Fusion-Task-Id: FN-4870
2026-05-17 03:50:40 -07:00
Fusion (runfusion.ai)
d1183ea741 test(FN-4862): add node settings sync auth backstops
- Add route coverage for push and pull requests when a remote node apiKey is empty
- Reject malformed and non-exact bearer headers for settings and auth receive endpoints
- Verify sourceNodeId never bypasses bearer validation while valid tokens still reach apply paths
- Assert 401 responses do not echo attempted bearer tokens

Fusion-Task-Id: FN-4862
2026-05-17 02:19:49 -07:00
Fusion (runfusion.ai)
41a8aca91c fix(FN-4782): add explicit index preload marker
Fusion-Task-Id: FN-4782
Fusion-Task-Lineage: 5d6b5632-a135-4d25-9382-57fa23e22484
2026-05-17 01:56:39 -07:00
Fusion (runfusion.ai)
aa105c9b80 feat(FN-4782): complete Step 3 — inject view chunk preload
Fusion-Task-Id: FN-4782
Fusion-Task-Lineage: 5d6b5632-a135-4d25-9382-57fa23e22484
2026-05-17 01:56:39 -07:00
Fusion (runfusion.ai)
6bb70dc805 feat(FN-4782): complete Step 2 — add view chunk manifest helper
Fusion-Task-Id: FN-4782
Fusion-Task-Lineage: 5d6b5632-a135-4d25-9382-57fa23e22484
2026-05-17 01:56:39 -07:00
Fusion (runfusion.ai)
98aee61df8 feat(FN-4857): complete Step 2 — add room attachment upload routes
Fusion-Task-Id: FN-4857
Fusion-Task-Lineage: 52e7b1cd-ec8f-4b6c-abfc-08c91e321b9e
2026-05-17 01:37:38 -07:00
Fusion (runfusion.ai)
3221e57b09 feat(FN-4855): complete Step 2-3 — harden disable route and modal state
Fusion-Task-Id: FN-4855
Fusion-Task-Lineage: 47f093b7-dffc-4c1a-8dee-2fe01d0c9ed6
2026-05-17 01:08:50 -07:00
Fusion (runfusion.ai)
08bca99e55 test(FN-4853): add /api/agents pending-approval performance regression
Fusion-Task-Id: FN-4853
Fusion-Task-Lineage: aaad0ff7-714c-4c82-a1e7-c9a725db90cb
2026-05-17 01:01:53 -07:00
gsxdsm
2adc9fa0da feat(FN-4841): merge fusion/fn-4841 2026-05-17 00:22:57 -07:00
Fusion (runfusion.ai)
c491dac28f test(FN-4850): add active worktree rename and copy diff coverage
Fusion-Task-Id: FN-4850
Fusion-Task-Lineage: 903d8e4e-eba7-413e-86d8-94eae7318952
2026-05-17 00:06:26 -07:00
Fusion (runfusion.ai)
a3e47645b6 test(FN-4833): add node sync auth ownership backstops
- Add node settings sync round-trip tests covering outbound push and pull flows
- Assert outbound node sync and auth routes send the target node Bearer apiKey
- Reject inbound requests authenticated with a remote node key and outbound requests targeting the local or missing node
- Verify auth-sync diagnostics stay redacted and do not leak credentials

Fusion-Task-Id: FN-4833
2026-05-16 22:59:37 -07:00