gsxdsm
92be8225e4
fix(FN-5090): subject-prefix fallback in trailer attribution
...
The contamination detector relied solely on the Fusion-Task-Id commit
trailer to attribute commits to a task. Agent-driven commits do not
currently get the trailer written (no commit-msg hook installs it), so
filterFilesToOwnTaskCommits saw 0 of N commits attributed even when
every commit subject was clearly feat(FN-XXXX): / fix(FN-XXXX): work
for that task. This drove attributedFileCount=0 reports, false-positive
task:worktree-contamination-detected events, and indefinite
foreign-only-contamination-skipped + completion-handoff-limbo loops
that stranded FN-5053, FN-5060, FN-5083 (manually merged) for hours.
Hotfix:
- extractAttributedTaskId now accepts both Fusion-Task-Id and a
generic Task-Id trailer.
- New extractTaskIdFromSubject recognizes conventional-commit
(feat(<id>):), bracketed ([<id>]) and legacy colon (<id>:) styles
for any uppercase task prefix (FN, KB, RF, PROJ, JIRA, ...).
- filterFilesToOwnTaskCommits falls back to subject-derived
attribution when the trailer is missing, with case-insensitive
match against opts.taskId.
Project-agnostic by design: the subject regex matches any
[A-Z]+-\d+ pattern, so projects with non-FN taskPrefix are
covered automatically.
Two new tests cover the FN-5083 production repro and the
KB-/lowercase/legacy variants.
Fusion-Task-Id: FN-5090
2026-05-18 21:05:51 -07:00
Fusion (runfusion.ai)
68b5694cba
feat(FN-5060): complete Step 8 — update docs and changeset
2026-05-18 19:45:58 -07:00
Fusion (runfusion.ai)
2b96475fdd
fix(FN-5060): stabilize dedup typing and engine expectations
2026-05-18 19:44:33 -07:00
Fusion (runfusion.ai)
4c3869403d
test(FN-5060): add cancel and no-match duplicate warning cases
2026-05-18 19:44:33 -07:00
Fusion (runfusion.ai)
f73ffd6386
feat(FN-5060): add InlineCreateCard duplicate warning flow
2026-05-18 19:44:33 -07:00
Fusion (runfusion.ai)
73202b7eb0
test(FN-5060): cover linked-existing messaging in engine task tools
2026-05-18 19:44:33 -07:00
Fusion (runfusion.ai)
0ae068dbe0
fix(FN-5060): surface duplicate-link result in delegate task response
2026-05-18 19:44:33 -07:00
Fusion (runfusion.ai)
a54496f45d
feat(FN-5060): complete Step 5 — wire engine and mission dedup guard
2026-05-18 19:44:33 -07:00
Fusion (runfusion.ai)
6365fceee4
feat(FN-5060): complete Step 4 — integrate CLI deterministic dedup
2026-05-18 19:44:33 -07:00
gsxdsm
daa1edf1dc
feat(FN-5060): complete Step 4 — refactor dashboard dedup route to shared helper
2026-05-18 19:44:33 -07:00
gsxdsm
cae5f9f298
fix(FN-5060): correct TaskStore type imports for duplicate guard
2026-05-18 19:43:55 -07:00
gsxdsm
9b88f1a3ed
feat(FN-5060): complete Step 3 — extract core duplicate guard helper
2026-05-18 19:43:55 -07:00
gsxdsm
f11695311a
feat(FN-5088): merge fusion/fn-5088
2026-05-18 18:38:00 -07:00
Fusion (runfusion.ai)
b3ac0beaa0
test(FN-5083): tighten rebind reliability and quality-gate coverage
2026-05-18 18:27:08 -07:00
Fusion (runfusion.ai)
5c3096c7d1
feat(FN-5083): complete Steps 5-7 rebind UI and reliability docs
2026-05-18 18:26:52 -07:00
Fusion (runfusion.ai)
fe671a5efc
fix(FN-5083): export rebind result type for dashboard route
2026-05-18 18:26:52 -07:00
Fusion (runfusion.ai)
211c361cd7
feat(FN-5083): complete Step 4 — add recover branch binding route
2026-05-18 18:26:52 -07:00
Fusion (runfusion.ai)
a2f4b99ecc
test(FN-5083): add case-insensitive task-done branch canonicalization
2026-05-18 18:26:52 -07:00
Fusion (runfusion.ai)
c56e0cf814
feat(FN-5083): complete Step 3 — canonicalize fusion branch naming
2026-05-18 18:26:52 -07:00
Fusion (runfusion.ai)
13d7195642
fix(FN-5083): address rebind review feedback
2026-05-18 18:26:52 -07:00
Fusion (runfusion.ai)
77342c03fb
feat(FN-5083): complete Step 2 — add in-review branch rebind stage
2026-05-18 18:26:52 -07:00
gsxdsm
af7367ab99
feat(FN-5035): merge fusion/fn-5035
2026-05-18 18:07:53 -07:00
gsxdsm
f46629ef10
feat(FN-5084): merge fusion/fn-5084
2026-05-18 17:53:00 -07:00
gsxdsm
ceafb0ee9f
feat(FN-5080): merge fusion/fn-5080
2026-05-18 16:23:24 -07:00
gsxdsm
0046fc92e2
feat(FN-4918): merge fusion/fn-4918
2026-05-18 16:23:06 -07:00
gsxdsm
2a2d7b1d43
feat(FN-5070): merge fusion/fn-5070
2026-05-18 16:08:10 -07:00
gsxdsm
6fc0f5cebc
feat(FN-5063): merge fusion/fn-5063
2026-05-18 15:51:01 -07:00
gsxdsm
aad1219037
feat(FN-4967): merge fusion/fn-4967
2026-05-18 15:50:48 -07:00
gsxdsm
fabcb5387a
feat(FN-5074): merge fusion/fn-5074
2026-05-18 15:36:23 -07:00
gsxdsm
896ae7a931
feat(FN-5077): merge fusion/fn-5077
2026-05-18 15:01:20 -07:00
gsxdsm
6c1732d234
feat(FN-5076): merge fusion/fn-5076
2026-05-18 14:46:20 -07:00
gsxdsm
bed14fda7b
feat(FN-5065): merge fusion/fn-5065
2026-05-18 14:16:22 -07:00
gsxdsm
57eaac42bf
feat(FN-5061): merge fusion/fn-5061
2026-05-18 13:16:35 -07:00
gsxdsm
ef6c18942d
feat(FN-5048): merge fusion/fn-5048
2026-05-18 13:01:31 -07:00
gsxdsm
cae9c6c4fc
feat(FN-5064): merge fusion/fn-5064
2026-05-18 12:46:23 -07:00
gsxdsm
a8a413cc91
feat(FN-5009): merge fusion/fn-5009
2026-05-18 12:31:21 -07:00
gsxdsm
9aa7518bad
feat(FN-5057): merge fusion/fn-5057
2026-05-18 11:46:43 -07:00
gsxdsm
46d09285d5
feat(FN-5058): merge fusion/fn-5058
2026-05-18 11:01:32 -07:00
gsxdsm
bb48665dc7
feat(FN-5059): merge fusion/fn-5059
2026-05-18 09:46:46 -07:00
gsxdsm
453c550760
feat(FN-5050): merge fusion/fn-5050
2026-05-18 09:31:59 -07:00
gsxdsm
ead2ed89aa
feat(FN-5055): merge fusion/fn-5055
2026-05-18 09:02:00 -07:00
Fusion (runfusion.ai)
5a9536dbcd
fix(FN-4966): repair core exports and updateTask patch typing
...
Fusion-Task-Id: FN-4966
Fusion-Task-Lineage: 8f5ea300-feaa-469c-aeed-f7304a5a1b6d
2026-05-18 08:45:18 -07:00
gsxdsm
35ba6cb7b2
feat(FN-4966): complete Step 5 — add PR conflict diagnostics panel UI
...
Fusion-Task-Id: FN-4966
Fusion-Task-Lineage: 8f5ea300-feaa-469c-aeed-f7304a5a1b6d
2026-05-18 08:45:17 -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
gsxdsm
b000b8dd66
feat(FN-4966): complete Step 2 — add PrInfo conflict diagnostics shape
...
Fusion-Task-Id: FN-4966
Fusion-Task-Lineage: 8f5ea300-feaa-469c-aeed-f7304a5a1b6d
2026-05-18 08:45:16 -07:00
Fusion (runfusion.ai)
e5af1f11e3
feat(FN-5052): complete Step 8 — document autoMerge stall suppression
...
Fusion-Task-Id: FN-5052
Fusion-Task-Lineage: 607cd9e6-e4d0-4572-b183-8253d127209f
2026-05-18 08:44:20 -07:00
Fusion (runfusion.ai)
04e68ce489
fix(FN-5052): complete Step 7 — restore workspace-green verification
...
Fusion-Task-Id: FN-5052
Fusion-Task-Lineage: 607cd9e6-e4d0-4572-b183-8253d127209f
2026-05-18 08:44:20 -07:00
Fusion (runfusion.ai)
22c3acf2e0
test(FN-5052): complete Step 6 — cover self-healing autoMerge gating
...
Fusion-Task-Id: FN-5052
Fusion-Task-Lineage: 607cd9e6-e4d0-4572-b183-8253d127209f
2026-05-18 08:44:20 -07:00
Fusion (runfusion.ai)
32f2948906
test(FN-5052): complete Step 5 — cover autoMerge stall suppression in core
...
Fusion-Task-Id: FN-5052
Fusion-Task-Lineage: 607cd9e6-e4d0-4572-b183-8253d127209f
2026-05-18 08:44:20 -07:00