Commit Graph

1305 Commits

Author SHA1 Message Date
Fusion (runfusion.ai)
3d7e737fbe feat(FN-4761): finalize review auto-move docs and release note
Fusion-Task-Id: FN-4761
Fusion-Task-Lineage: b6b1ed73-c396-4dd2-b97f-366272d05c7f
2026-05-17 11:39:19 -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)
73c6f46b5b fix(FN-4911): correct reveal payload and reader identity
Fusion-Task-Id: FN-4911
Fusion-Task-Lineage: 021e3ee9-a776-4648-a17d-8ae1a7ebc5be
2026-05-17 11:10:59 -07:00
Fusion (runfusion.ai)
ea0c400dab feat(FN-4911): complete Step 1 — add secrets API routes
Fusion-Task-Id: FN-4911
Fusion-Task-Lineage: 021e3ee9-a776-4648-a17d-8ae1a7ebc5be
2026-05-17 11:10:59 -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
Fusion (runfusion.ai)
4416de159c fix(FN-4907): invalidate stale settings caches on sync and provider writes
Fusion-Task-Id: FN-4907
Fusion-Task-Lineage: e84d5357-0719-4cc7-ab3f-f665ac83b218
2026-05-17 10:31:34 -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)
ab31aaceb4 feat(FN-4847): add actionable denial reason to sync-status
Fusion-Task-Id: FN-4847
Fusion-Task-Lineage: af551b65-a484-496a-8bab-b46193e06104
2026-05-17 08:47:16 -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)
1ea7a93aa4 fix(FN-4871): reject empty bearer/apiKey on inbound sync
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
Fusion (runfusion.ai)
b8b97655b2 feat(FN-4853): complete Step 2 — aggregate pending approval counts
Fusion-Task-Id: FN-4853
Fusion-Task-Lineage: aaad0ff7-714c-4c82-a1e7-c9a725db90cb
2026-05-17 01:01:52 -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)
19b9ea4464 feat(FN-4850): complete Step 1 — deterministic rename detection
Fusion-Task-Id: FN-4850
Fusion-Task-Lineage: 903d8e4e-eba7-413e-86d8-94eae7318952
2026-05-17 00:06:25 -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
gsxdsm
df998cb54f feat(FN-4829): merge fusion/fn-4829 2026-05-16 22:26:42 -07:00
Fusion (runfusion.ai)
46a50c123f feat(FN-4824): forward task assignment events across remote runtime
Fusion-Task-Id: FN-4824
Fusion-Task-Lineage: 65f53a33-0939-4b6f-b62b-4a255ad14d9e
2026-05-16 21:53:18 -07:00
Fusion (runfusion.ai)
ec169bf347 test(FN-4786): complete Step 4 — add first-turn loading regressions
Fusion-Task-Id: FN-4786
Fusion-Task-Lineage: eb683ec8-8b9d-4e3d-852c-7076224afa6b
2026-05-16 18:40:04 -07:00
Fusion (runfusion.ai)
560e35708a fix(FN-4786): complete Step 3 — replay first-turn thinking catch-up
Fusion-Task-Id: FN-4786
Fusion-Task-Lineage: eb683ec8-8b9d-4e3d-852c-7076224afa6b
2026-05-16 18:40:03 -07:00
Fusion (runfusion.ai)
c3dd34f070 feat(FN-4816): add integration tests for node settings sync API routes
Adds integration tests for node settings sync API routes (`routes-nodes-sync.test.ts`), covering the settings push/pull and sync-status endpoints across the dashboard node management API.

Fusion-Task-Id: FN-4816

Fusion-Task-Lineage: 01f1bec6-f1c3-43bc-8854-5c4739f0e736
2026-05-16 17:44:25 -07:00
Fusion (runfusion.ai)
b81bfacf07 fix(FN-4813): avoid isolation transition double-write in project route
Fusion-Task-Id: FN-4813
Fusion-Task-Lineage: 846893a5-2afa-4817-8f64-8c444d2fd713
2026-05-16 17:31:09 -07:00
Fusion (runfusion.ai)
63adddadf9 feat(FN-4813): complete Step 5 — add isolation transition runtime restart path
Fusion-Task-Id: FN-4813
Fusion-Task-Lineage: 846893a5-2afa-4817-8f64-8c444d2fd713
2026-05-16 17:31:09 -07:00
Fusion (runfusion.ai)
8b6b4cfeb1 test(FN-4784): complete Step 2 — codex precedence coverage
Fusion-Task-Id: FN-4784
Fusion-Task-Lineage: e11a4758-93ab-451e-8721-ae8995aaa70d
2026-05-16 13:35:31 -07:00
Fusion (runfusion.ai)
fd01843d40 feat(FN-4784): complete Step 1 — prefer Fusion Codex OAuth
Fusion-Task-Id: FN-4784
Fusion-Task-Lineage: e11a4758-93ab-451e-8721-ae8995aaa70d
2026-05-16 13:35:28 -07:00
Fusion (runfusion.ai)
3668927042 feat(FN-4785): complete Step 2-3 — batch agent task and run lookups
Fusion-Task-Id: FN-4785
Fusion-Task-Lineage: be241ee7-9df0-433c-a00b-997bcd558862
2026-05-16 13:04:28 -07:00
Fusion (runfusion.ai)
be54c75533 feat(FN-4785): complete Step 3 — batch agent run status aggregation
Fusion-Task-Id: FN-4785
Fusion-Task-Lineage: be241ee7-9df0-433c-a00b-997bcd558862
2026-05-16 13:04:28 -07:00
Fusion (runfusion.ai)
7aeb7583f4 feat(FN-4785): complete Step 2 — batch sanitize agent task link lookups
Fusion-Task-Id: FN-4785
Fusion-Task-Lineage: be241ee7-9df0-433c-a00b-997bcd558862
2026-05-16 13:04:28 -07:00
Fusion (runfusion.ai)
d89a4569f1 fix(FN-4777): add dedup default setting and lint-safe regex
Fusion-Task-Id: FN-4777
Fusion-Task-Lineage: ed00f639-c928-4c14-be1f-2b43db6022c7
2026-05-16 12:56:31 -07:00
Fusion (runfusion.ai)
1ca873f64e test(FN-4777): complete Step 4 — add dedup tracking coverage
Fusion-Task-Id: FN-4777
Fusion-Task-Lineage: ed00f639-c928-4c14-be1f-2b43db6022c7
2026-05-16 12:56:31 -07:00
Fusion (runfusion.ai)
f60dde01fe feat(FN-4777): complete Step 3 — wire GitHub tracking dedup pre-check
Fusion-Task-Id: FN-4777
Fusion-Task-Lineage: ed00f639-c928-4c14-be1f-2b43db6022c7
2026-05-16 12:56:31 -07:00
Fusion (runfusion.ai)
de5a5c91d4 feat(FN-4777): complete Step 2 — add tracking dedup helper module
Fusion-Task-Id: FN-4777
Fusion-Task-Lineage: ed00f639-c928-4c14-be1f-2b43db6022c7
2026-05-16 12:56:31 -07:00
Fusion (runfusion.ai)
a6b1d59a0c fix(FN-4777): handle gh search all-state without invalid flag
Fusion-Task-Id: FN-4777
Fusion-Task-Lineage: ed00f639-c928-4c14-be1f-2b43db6022c7
2026-05-16 12:56:31 -07:00
Fusion (runfusion.ai)
cfb44af446 feat(FN-4777): complete Step 1 — add GitHub issue search API
Fusion-Task-Id: FN-4777
Fusion-Task-Lineage: ed00f639-c928-4c14-be1f-2b43db6022c7
2026-05-16 12:56:30 -07:00
Fusion (runfusion.ai)
db7b196462 test(FN-4770): complete Steps 3-4 — add tracking async coverage
Fusion-Task-Id: FN-4770
Fusion-Task-Lineage: 8c8d1786-f81b-4544-9275-595b90ea5689
2026-05-16 11:39:37 -07:00
Fusion (runfusion.ai)
0653d94f1c feat(FN-4770): complete Step 2 — detach planning tracking hook
Fusion-Task-Id: FN-4770
Fusion-Task-Lineage: 8c8d1786-f81b-4544-9275-595b90ea5689
2026-05-16 11:39:37 -07:00
Fusion (runfusion.ai)
55575dbf8c test(FN-4772): add hybrid wiring integration and lifecycle coverage
Fusion-Task-Id: FN-4772
Fusion-Task-Lineage: d296e96a-fe44-4896-928a-fa44da62b41a
2026-05-16 11:32:55 -07:00
Fusion (runfusion.ai)
e316026083 test(FN-4751): complete Step 2 — pin manual pull non-recording contract
Fusion-Task-Id: FN-4751
Fusion-Task-Lineage: 2f6d2360-fcd6-4186-bb58-a35fa40a78fb
2026-05-16 11:26:56 -07:00