Fusion (runfusion.ai)
2a9ef2ba36
fix(FN-4905): unblock workspace verification type errors
...
Fusion-Task-Id: FN-4905
Fusion-Task-Lineage: 677b6f08-90d7-4785-a0b8-195acc42f79e
2026-05-17 09:51:49 -07:00
Fusion (runfusion.ai)
3d0cce72f2
feat(FN-4885): complete Step 7 — finalize docs and changeset
...
Fusion-Task-Id: FN-4885
Fusion-Task-Lineage: 31110eed-5ca3-4d67-8f11-581185056dc6
2026-05-17 09:31:07 -07:00
Fusion (runfusion.ai)
5793c4bcd7
feat(FN-4885): complete Step 6 — add deadlock disposition dashboard copy
...
Fusion-Task-Id: FN-4885
Fusion-Task-Lineage: 31110eed-5ca3-4d67-8f11-581185056dc6
2026-05-17 09:31:07 -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)
9be005cd46
feat(FN-4760): complete Step 5 — wire live checks into PR panel
...
Fusion-Task-Id: FN-4760
Fusion-Task-Lineage: 71db4a53-ee59-49f0-a1f7-232954b86660
2026-05-17 08:49:51 -07:00
Fusion (runfusion.ai)
a58c5df697
feat(FN-4760): complete Step 4 — add PR checks list UI
...
Fusion-Task-Id: FN-4760
Fusion-Task-Lineage: 71db4a53-ee59-49f0-a1f7-232954b86660
2026-05-17 08:49:51 -07:00
Fusion (runfusion.ai)
76c5142f4f
feat(FN-4760): complete Step 3 — add PR checks polling hook
...
Fusion-Task-Id: FN-4760
Fusion-Task-Lineage: 71db4a53-ee59-49f0-a1f7-232954b86660
2026-05-17 08:49:51 -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)
d0573d8fe6
feat(FN-4759): complete Step 2-4 — render draft/check rollup badge
...
Fusion-Task-Id: FN-4759
Fusion-Task-Lineage: af79d2a6-fd7b-40e0-b3c9-6c74569d9aa0
2026-05-17 08:22:26 -07:00
Fusion (runfusion.ai)
7bd7ad4eac
fix(FN-4873): align PrPanel check-state typing with API payloads
...
Fusion-Task-Id: FN-4873
Fusion-Task-Lineage: 8aec8200-a12e-4b89-9b62-e61d19696723
2026-05-17 04:26:14 -07:00
Fusion (runfusion.ai)
a747479cc6
test(FN-4873): complete Step 5 — add PR checks and core export coverage
...
Fusion-Task-Id: FN-4873
Fusion-Task-Lineage: 8aec8200-a12e-4b89-9b62-e61d19696723
2026-05-17 04:26:14 -07:00
Fusion (runfusion.ai)
c84d9b8b05
fix(FN-4871): restore workspace typecheck compatibility
...
Fusion-Task-Id: FN-4871
Fusion-Task-Lineage: afa2af88-9c7d-4809-bf8f-2aa6cf79ce40
2026-05-17 04:20:00 -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)
cec86d23ab
test(FN-4859): expand cache hydration coverage across views
...
Fusion-Task-Id: FN-4859
Fusion-Task-Lineage: 9254ee9f-5600-4895-8ac4-41c9d89fce4d
2026-05-17 03:34:56 -07:00
Fusion (runfusion.ai)
49de604f3a
test(FN-4859): complete Steps 6-7 — cache coverage and loader invalidation
...
Fusion-Task-Id: FN-4859
Fusion-Task-Lineage: 9254ee9f-5600-4895-8ac4-41c9d89fce4d
2026-05-17 03:34:56 -07:00
Fusion (runfusion.ai)
6b16985841
feat(FN-4859): complete Step 5 — hydrate mission and mailbox state
...
Fusion-Task-Id: FN-4859
Fusion-Task-Lineage: 9254ee9f-5600-4895-8ac4-41c9d89fce4d
2026-05-17 03:34:56 -07:00
Fusion (runfusion.ai)
7f695c4c4f
feat(FN-4859): complete Step 4 — hydrate useResearch and useEvals
...
Fusion-Task-Id: FN-4859
Fusion-Task-Lineage: 9254ee9f-5600-4895-8ac4-41c9d89fce4d
2026-05-17 03:34:56 -07:00
Fusion (runfusion.ai)
99b5eaa8b1
feat(FN-4859): complete Step 2 — hydrate useInsights
...
Fusion-Task-Id: FN-4859
Fusion-Task-Lineage: 9254ee9f-5600-4895-8ac4-41c9d89fce4d
2026-05-17 03:34:55 -07:00
Fusion (runfusion.ai)
672339619a
feat(FN-4859): complete Step 1 — extend swr cache keys
...
Fusion-Task-Id: FN-4859
Fusion-Task-Lineage: 9254ee9f-5600-4895-8ac4-41c9d89fce4d
2026-05-17 03:34:55 -07:00
Fusion (runfusion.ai)
0f625eac3a
test(FN-4757): complete Step 4 — add PrPanel coverage
...
Fusion-Task-Id: FN-4757
Fusion-Task-Lineage: 32236172-0b3b-4c19-b3a1-8ee0b91ea3ac
2026-05-17 03:28:21 -07:00
Fusion (runfusion.ai)
0c8cc02ca3
feat(FN-4757): complete Step 3 — wire PrPanel and remove PrSection
...
Fusion-Task-Id: FN-4757
Fusion-Task-Lineage: 32236172-0b3b-4c19-b3a1-8ee0b91ea3ac
2026-05-17 03:28:21 -07:00
Fusion (runfusion.ai)
3c6be85b96
feat(FN-4757): complete Step 2 — build PrPanel component
...
Fusion-Task-Id: FN-4757
Fusion-Task-Lineage: 32236172-0b3b-4c19-b3a1-8ee0b91ea3ac
2026-05-17 03:28:21 -07:00
Fusion (runfusion.ai)
d643f4c5cf
test(FN-4756): complete Step 4 — add PrCreateModal tests
...
Fusion-Task-Id: FN-4756
Fusion-Task-Lineage: 9a559f69-3ca1-4d94-9b35-9c7a0849d82c
2026-05-17 03:13:57 -07:00
Fusion (runfusion.ai)
d0fb08c037
feat(FN-4756): complete Step 2 — add PrCreateModal component
...
Fusion-Task-Id: FN-4756
Fusion-Task-Lineage: 9a559f69-3ca1-4d94-9b35-9c7a0849d82c
2026-05-17 03:13:57 -07:00
Fusion (runfusion.ai)
c2b9533a41
feat(FN-4756): complete Step 1 — add PR client API wrappers
...
Fusion-Task-Id: FN-4756
Fusion-Task-Lineage: 9a559f69-3ca1-4d94-9b35-9c7a0849d82c
2026-05-17 03:13:57 -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)
24ad23bf6f
feat(FN-4782): complete Step 1 — emit Vite manifest
...
Fusion-Task-Id: FN-4782
Fusion-Task-Lineage: 5d6b5632-a135-4d25-9382-57fa23e22484
2026-05-17 01:56:39 -07:00
Fusion (runfusion.ai)
7c14e16b80
test(FN-4857): update room send expectations for attachment opts
...
Fusion-Task-Id: FN-4857
Fusion-Task-Lineage: 52e7b1cd-ec8f-4b6c-abfc-08c91e321b9e
2026-05-17 01:37:41 -07:00
Fusion (runfusion.ai)
74f0bd9e8d
feat(FN-4857): complete Step 6 — wire room send dispatch in ChatView
...
Fusion-Task-Id: FN-4857
Fusion-Task-Lineage: 52e7b1cd-ec8f-4b6c-abfc-08c91e321b9e
2026-05-17 01:37:40 -07:00
Fusion (runfusion.ai)
c7f98f8381
feat(FN-4857): complete Step 5 — enable room sends with attachments in QuickChat
...
Fusion-Task-Id: FN-4857
Fusion-Task-Lineage: 52e7b1cd-ec8f-4b6c-abfc-08c91e321b9e
2026-05-17 01:37:39 -07:00
Fusion (runfusion.ai)
a9e76bff81
feat(FN-4857): complete Step 4 — upload room attachments in useChatRooms
...
Fusion-Task-Id: FN-4857
Fusion-Task-Lineage: 52e7b1cd-ec8f-4b6c-abfc-08c91e321b9e
2026-05-17 01:37:38 -07:00
Fusion (runfusion.ai)
354dae2d54
feat(FN-4857): complete Step 3 — add room attachment API helpers
...
Fusion-Task-Id: FN-4857
Fusion-Task-Lineage: 52e7b1cd-ec8f-4b6c-abfc-08c91e321b9e
2026-05-17 01:37:38 -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
gsxdsm
7a6a3d0d22
feat(FN-4856): merge fusion/fn-4856
2026-05-17 01:08:01 -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
Fusion (runfusion.ai)
4caee9be30
test(FN-4854): cover chat-room cache hydration and invalidation
...
Fusion-Task-Id: FN-4854
Fusion-Task-Lineage: 969ec04a-efe3-4dee-b183-2d4f2de6b388
2026-05-17 00:43:48 -07:00
Fusion (runfusion.ai)
4307d71c3a
feat(FN-4854): complete Step 4 — hydrate chat rooms cache
...
Fusion-Task-Id: FN-4854
Fusion-Task-Lineage: 969ec04a-efe3-4dee-b183-2d4f2de6b388
2026-05-17 00:43:48 -07:00
Fusion (runfusion.ai)
8ca0cddfe7
feat(FN-4854): complete Step 3 — hydrate documents and todo list caches
...
Fusion-Task-Id: FN-4854
Fusion-Task-Lineage: 969ec04a-efe3-4dee-b183-2d4f2de6b388
2026-05-17 00:43:48 -07:00
Fusion (runfusion.ai)
9feb4ec870
test(FN-4854): add useAgents cache hydration coverage
...
Fusion-Task-Id: FN-4854
Fusion-Task-Lineage: 969ec04a-efe3-4dee-b183-2d4f2de6b388
2026-05-17 00:43:47 -07:00