gsxdsm
8317684aff
feat(changelog): U2 — changeset format linter + CI wiring
...
Add scripts/check-changeset-format.mjs:
- Validates structured changeset schema across .changeset/*.md
- Legacy changesets warn (exit 0) in transition mode
- Structured changesets with missing/invalid fields error (exit 1)
- --strict flag fails on legacy changesets
Wire into package.json (check:changesets, pretest, test:gate) and
pr-checks.yml lint job. Fix parser to not default category on
structured changesets missing the field.
10 linter tests + 18 schema tests all passing.
2026-06-23 23:30:32 -07:00
gsxdsm
5676d95fd0
feat(changelog): U1 — structured changeset parser + schema
...
Add scripts/lib/changeset-schema.mjs with:
- Labeled-field body format (summary, category, dev)
- Legacy freeform detection with graceful fallback
- Validation for required fields, category enum, summary length
- Full file parser (frontmatter + body)
18 tests covering structured parsing, legacy fallback, validation,
edge cases (empty body, boundary length, multi-line dev).
2026-06-23 23:25:48 -07:00
gsxdsm
8dc9973997
FN-6937: remove stale session cross-tab quarantine
...
Remove the orphaned session-cross-tab quarantine ledger entry after confirming the test remains active and rescued.
- Document FN-6937's rescue proof and ledger/config lockstep expectation in testing guidance.
- Keep the dashboard Vitest quarantine list empty with a note explaining the stale ledger-only cleanup.
- Remove the session-cross-tab row from the flaky-test quarantine ledger.
Files changed:
docs/testing.md | 8 ++++++--
packages/dashboard/vitest.config.ts | 3 +++
scripts/lib/test-quarantine.json | 8 +-------
3 files changed, 10 insertions(+), 9 deletions(-)
Fusion-Task-Id: FN-6937
Fusion-Task-Lineage: 34a67bf3-2a7f-49ea-93ab-68fadc81f893
2026-06-23 00:26:16 -07:00
gsxdsm
af06170a51
FN-6778: add agent artifact registry tools
...
Adds engine and chat tools for registering, discovering, and viewing artifacts with inbox notifications.
- Add fn_artifact_register, fn_artifact_list, and fn_artifact_view tools for heartbeat, executor, and chat sessions.
- Send best-effort dashboard system inbox notifications when artifacts are registered.
- Classify artifact tools for action gating and coordination exemptions, with coverage for executor, heartbeat, permanent agent, and chat flows.
- Document the artifact registry behavior and update package metadata, quarantine ledger, and line-count baseline.
Files changed:
.changeset/fn-6778-artifact-agent-tools.md | 5 +
CONCEPTS.md | 3 +
docs/agents.md | 1 +
packages/core/src/db.ts | 1 +
.../src/__tests__/session-error-recovery.test.ts | 1 +
.../session-persistence-roundtrip.test.ts | 1 +
.../src/__tests__/session-reconnect.test.ts | 1 +
.../src/__tests__/session-resume-history.test.ts | 1 +
packages/dashboard/src/chat.ts | 6 +-
packages/dashboard/src/planning.ts | 4 +
packages/dashboard/src/test/mockCoreEngine.ts | 1 +
.../engine/src/__tests__/agent-action-gate.test.ts | 3 +
.../src/__tests__/agent-artifact-tools.test.ts | 458 +++++++++++++++++++++
.../src/__tests__/executor-step-session.test.ts | 48 +++
.../src/__tests__/gating-classifications.test.ts | 3 +
.../src/__tests__/heartbeat-executor.test.ts | 40 +-
.../src/__tests__/heartbeat-session-prompt.test.ts | 25 +-
.../src/__tests__/permanent-agent-gating.test.ts | 6 +
packages/engine/src/agent-heartbeat.ts | 6 +-
packages/engine/src/agent-tools.ts | 288 ++++++++++++-
packages/engine/src/executor.ts | 25 ++
packages/engine/src/gating-classifications.ts | 7 +
packages/engine/src/index.ts | 9 +
scripts/lib/test-quarantine.json | 8 +-
scripts/line-count-baseline.json | 54 +--
25 files changed, 945 insertions(+), 60 deletions(-)
Fusion-Task-Id: FN-6778
Fusion-Task-Lineage: 7eb4afcb-8140-4f86-9540-eb3b83e64148
2026-06-22 03:34:14 -07:00
gsxdsm
2ecf78af28
FN-6860: rescue dashboard quarantine coverage
...
Rescue dashboard process lifecycle coverage and clear stale quarantine state.
- Track dev server lifecycle work so stale probes and output parsing cannot race cleanup.
- Assert duplicate URL detection suppression and fallback probe cleanup across failure, restart, stop, and cleanup paths.
- Remove rescued dashboard tests from quarantine config and ledger, and document the loaded-shard proof.
Files changed:
docs/testing.md | 4 ++
.../src/__tests__/dev-server-process.test.ts | 28 +++++++-
packages/dashboard/src/dev-server-process.ts | 74 +++++++++++++++++-----
packages/dashboard/vitest.config.ts | 5 +-
scripts/lib/test-quarantine.json | 13 +---
5 files changed, 95 insertions(+), 29 deletions(-)
Fusion-Task-Id: FN-6860
Fusion-Task-Lineage: abd22a00-e08e-4f65-bebc-c663c715b40e
2026-06-21 13:25:41 -07:00
gsxdsm
f13aaa1a99
FN-6722: expose resolved GitHub issues
...
Expose resolved GitHub issue details in Command Center analytics and exports.
- Add resolved issue rows to local GitHub issue analytics with exact-vs-approximate timestamp metadata.
- Render a resolved issues table in the Command Center GitHub area without empty links when issue URLs are missing.
- Include resolved issue details in CSV export, route coverage, dashboard tests, docs, and the release changeset.
- Quarantine the unrelated dashboard dev-server process timer flake observed during workspace verification under the deletion ratchet.
Files changed:
...fn-6722-command-center-resolved-issue-detail.md | 5 +
docs/dashboard-guide.md | 3 +-
.../src/__tests__/github-issue-analytics.test.ts | 109 +++++++++++++++++++--
packages/core/src/github-issue-analytics.ts | 45 ++++++++-
packages/core/src/index.ts | 1 +
.../__tests__/CommandCenter.mobile-scroll.test.tsx | 4 +-
.../__tests__/CommandCenter.test.tsx | 1 +
.../components/command-center/areas/GithubArea.tsx | 67 +++++++++++++
.../command-center/areas/__tests__/areas.test.tsx | 55 +++++++++++
.../register-command-center-routes.test.ts | 61 +++++++++++-
packages/dashboard/src/command-center-csv.ts | 39 +++++++-
packages/dashboard/vitest.config.ts | 7 +-
scripts/lib/test-quarantine.json | 5 +
13 files changed, 382 insertions(+), 20 deletions(-)
Fusion-Task-Id: FN-6722
Fusion-Task-Lineage: 9fcbd8c2-f1bc-4b86-b5f5-593e5fd0e675
2026-06-21 09:00:40 -07:00
gsxdsm
c18e827b90
FN-6839: await CLI cached store shutdown
...
Rescue the retained CLI quarantine by making TaskStore shutdown deterministic before fixture cleanup.
- Await cached extension TaskStore closes and clear the cache before asynchronous shutdown drains.
- Update CLI fixtures to await direct and cached store closure, with a regression proving cached close is awaited.
- Remove rescued CLI quarantine entries/excludes and document the loaded-suite rescue with a patch changeset.
Files changed:
.changeset/fn-6839-close-cached-stores.md | 5 ++
CLAUDE.md | 1 +
docs/testing.md | 4 ++
.../extension-agent-set-instructions.test.ts | 2 +-
.../__tests__/extension-goal-tools-audit.test.ts | 2 +-
.../cli/src/__tests__/extension-goal-tools.test.ts | 2 +-
.../cli/src/__tests__/extension-insights.test.ts | 6 +--
.../__tests__/extension-mission-goal-tools.test.ts | 2 +-
.../cli/src/__tests__/extension-task-tools.test.ts | 16 ++++---
packages/cli/src/__tests__/extension.test.ts | 56 +++++++++++-----------
.../src/__tests__/research-extension-tools.test.ts | 4 +-
packages/cli/src/extension.ts | 16 +++----
packages/cli/vitest.config.ts | 6 +--
scripts/lib/test-quarantine.json | 15 ------
14 files changed, 68 insertions(+), 69 deletions(-)
Fusion-Task-Id: FN-6839
Fusion-Task-Lineage: ea0c7c77-bb59-4db4-931d-5e052a1043e5
2026-06-21 09:00:40 -07:00
gsxdsm
40cea655b8
Merge main into validator behavioral verification
...
Resolve conflicts from main's analytics schema additions (plugin
activations, per-model token buckets) against the PR's contract-assertion
type column:
- db.ts: renumber behavioral-verification migration 124 -> 126, bump
SCHEMA_VERSION to 126 so it follows main's migrations 124/125
- core/roadmap tests: adopt main's SCHEMA_VERSION-constant assertions
instead of stale literal 124
- test-quarantine.json: keep all four quarantine entries from both sides
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-21 00:22:19 -07:00
gsxdsm
fdccca9d27
fix(review): apply autofix feedback
...
- Reformat shard-floor justification as an FNXC:TestInfrastructure comment
(project-standards: AGENTS.md FNXC_LOG convention).
- Clarify that the shard and dashboard-lane 15min floors are not coupled and
may diverge (maintainability: avoid implying an unenforced contract).
- Add a regression-guard test pinning shard.floor=15min and asserting a 525s
derived budget clamps up to the floor, so an accidental revert to the old
5min floor fails loudly (correctness + testing + project-standards).
2026-06-20 21:53:31 -07:00
gsxdsm
74e056ed99
fix(ci): raise shard watchdog floor to 15min to stop false-kills
...
The Full Suite (non-blocking) workflow has been red for 30+ runs on main.
Diagnosis: the @fusion/engine [1/2], [2/2] and @fusion/core [2/2] shard
slices were SIGKILLed at their watchdog budgets (405s/405s/338s), not because
they hang but because those budgets are too tight for current wall-clock.
Local baselines (this machine, all pass, exit 0):
- engine [2/2]: 145s wall / 309 files
- core [2/2]: 283s wall / 172 files (old budget was only 338s!)
deriveBudgetMs tightens the budget to expected*3.5 whenever the committed
scripts/test-timings.json is <30d old. The snapshot (2026-06-03) undercounts
the import- and real-git-subprocess overhead of these heavy slices, so the
'fresh' snapshot produced a too-tight, false-kill budget on slower CI runners
-- the exact failure mode the floor/ceiling band exists to prevent.
Fix (plan KTD-2): raise the shard band floor 5min -> 15min so the heaviest
slices can't be tightened into a false-kill, while a true hang is still bounded
far under the job's 60min ceiling. Mirrors the dashboard-lane heavy-lane floor.
Follow-up: refresh scripts/test-timings.json from a default-branch CI run.
2026-06-20 21:48:14 -07:00
gsxdsm
c0d78f19c5
FN-6795: update quarantine ledger after rescue triage
...
Refresh the test quarantine records after loaded-lane rescue verification.
- document the FN-6795 CLI and core quarantine triage outcomes
- rescue passing core and CLI test files by removing their ledger/config excludes
- retain CLI package-lane-only timeout quarantines and add the newly observed bin test flake
Files changed:
docs/testing.md | 4 ++++
packages/cli/vitest.config.ts | 10 +++++++---
packages/core/vitest.config.ts | 4 +++-
scripts/lib/test-quarantine.json | 25 +++++--------------------
4 files changed, 19 insertions(+), 24 deletions(-)
Fusion-Task-Id: FN-6795
Fusion-Task-Lineage: b4460fc7-848f-4d54-89b4-cfd4d4533d57
2026-06-20 10:28:25 -07:00
gsxdsm
1a565a368b
FN-6744: rescue WorkflowNodeEditor merge seam guard
...
Rescue the WorkflowNodeEditor quarantine by making duplicate merge seam detection reliable during initial canvas load.
- Derive fragment seam conflicts from the loaded workflow IR until React Flow nodes materialize.
- Treat IR merge nodes as merge seams so duplicate merge fragments are rejected consistently.
- Cover desktop and mobile duplicate merge fragment insertion paths and remove the test from quarantine.
- Document the FN-6744 rescue evidence and deletion-ratchet update.
Files changed:
docs/testing.md | 6 +++-
.../app/components/WorkflowNodeEditor.tsx | 11 +++++--
.../__tests__/WorkflowNodeEditor.test.tsx | 34 ++++++++++++++++------
.../app/components/workflow-flow-mapping.ts | 10 +++++++
packages/dashboard/vitest.config.ts | 8 +++--
scripts/lib/test-quarantine.json | 5 ----
6 files changed, 54 insertions(+), 20 deletions(-)
Fusion-Task-Id: FN-6744
Fusion-Task-Lineage: 0f5b167a-8efc-4458-ac9d-e719320b751f
2026-06-19 18:38:17 -07:00
gsxdsm
d06d1052db
FN-6743: rescue QuickEntryBox focus restoration
...
Restore reliable QuickEntryBox post-submit focus and return its test to the dashboard suite.
- Replace the ref-gated focus effect with a state-driven post-submit focus request.
- Cover desktop Enter, Save, duplicate-confirmed submit, mobile non-focus, and failed-submit draft preservation.
- Remove QuickEntryBox from dashboard quarantine while keeping the remaining workflow editor quarantine.
Files changed:
.../dashboard/app/components/QuickEntryBox.tsx | 46 +++++++++++++++++-----
.../components/__tests__/QuickEntryBox.test.tsx | 29 +++++++++++++-
packages/dashboard/vitest.config.ts | 5 ++-
scripts/lib/test-quarantine.json | 5 ---
4 files changed, 69 insertions(+), 16 deletions(-)
Fusion-Task-Id: FN-6743
Fusion-Task-Lineage: 2d458631-3ff3-4d96-8d91-bc2a17538be2
2026-06-19 17:49:06 -07:00
gsxdsm
f01ede2523
FN-6742: rescue session cross-tab tests
...
Rescue the dashboard session cross-tab test before its deletion-ratchet deadline.
- Dispose the API router and session cleanup scheduler before closing test stores.
- Hide unused TaskStore EventEmitter hooks in the route-only harness to avoid background route subscribers reopening temp fixtures.
- Remove the session-cross-tab quarantine ledger entry and dashboard Vitest exclude in lockstep.
- Document the rescue evidence and teardown pattern for future dashboard session tests.
Files changed:
docs/testing.md | 6 ++++-
.../src/__tests__/session-cross-tab.test.ts | 30 +++++++++++++++++++---
packages/dashboard/vitest.config.ts | 5 +++-
scripts/lib/test-quarantine.json | 5 ----
4 files changed, 36 insertions(+), 10 deletions(-)
Fusion-Task-Id: FN-6742
Fusion-Task-Lineage: e26d70eb-f139-45f7-8ddd-bde2d172c291
2026-06-19 16:47:34 -07:00
gsxdsm
8d2b396e85
FN-6741: rescue core quarantine entries
...
Rescue the loaded @fusion/core quarantine batch while keeping the remaining lock flake quarantined.
- Remove rescued core test files from the quarantine ledger and Vitest exclude list.
- Close the settings-export TaskStore before fixture cleanup to release resources deterministically.
- Re-quarantine the store-concurrent-writes broad-lane SQLite lock flake observed during merge verification.
- Document the rescue evidence and remaining deletion-ratchet follow-up.
Files changed:
docs/testing.md | 8 ++++++-
.../core/src/__tests__/settings-export.test.ts | 5 ++++
packages/core/vitest.config.ts | 11 +++++----
scripts/lib/test-quarantine.json | 27 +---------------------
4 files changed, 19 insertions(+), 32 deletions(-)
Fusion-Task-Id: FN-6741
Fusion-Task-Lineage: 064367a6-f1c4-4685-a766-37bf2204a42c
2026-06-19 16:47:34 -07:00
gsxdsm
87f18f87ed
FN-6705: add plugin activation analytics
...
Record plugin activation events and expose them to Command Center analytics.
- Add plugin activation persistence, aggregation helpers, and exports.
- Record load/reload activation events through the plugin loader and store APIs.
- Surface plugin activation counts in the Command Center Ecosystem area and API route.
- Cover migrations, aggregation behavior, plugin loader recording, route auth, UI rendering, and quarantined flaky suites.
Files changed:
.changeset/fn-6705-plugin-activation-analytics.md | 5 +
docs/architecture.md | 2 +-
docs/dashboard-guide.md | 2 +-
packages/cli/vitest.config.ts | 8 +
packages/core/src/__tests__/db-migrate.test.ts | 34 ++---
packages/core/src/__tests__/db.test.ts | 59 ++++----
packages/core/src/__tests__/goals-schema.test.ts | 6 +-
packages/core/src/__tests__/insight-store.test.ts | 12 +-
.../src/__tests__/merge-request-record.test.ts | 3 +-
packages/core/src/__tests__/mission-store.test.ts | 6 +-
.../__tests__/plugin-activation-analytics.test.ts | 67 ++++++++
packages/core/src/__tests__/plugin-loader.test.ts | 168 ++++++++++++++++++++-
packages/core/src/__tests__/run-audit.test.ts | 6 +-
.../core/src/__tests__/store-merge-queue.test.ts | 3 +-
.../src/__tests__/store-plugin-activations.test.ts | 52 +++++++
packages/core/src/__tests__/task-documents.test.ts | 3 +-
packages/core/src/db.ts | 35 ++++-
packages/core/src/index.ts | 8 +
packages/core/src/plugin-activation-analytics.ts | 104 +++++++++++++
packages/core/src/plugin-loader.ts | 27 ++++
packages/core/src/store.ts | 24 ++-
packages/core/src/types.ts | 22 +++
packages/core/vitest.config.ts | 12 ++
.../command-center/areas/EcosystemArea.tsx | 40 +++--
.../command-center/areas/__tests__/areas.test.tsx | 52 ++++++-
.../register-command-center-routes.auth.test.ts | 1 +
.../register-command-center-routes.test.ts | 29 ++++
.../src/routes/register-command-center-routes.ts | 20 +++
.../src/store/__tests__/roadmap-store.test.ts | 9 +-
scripts/boot-smoke.mjs | 24 ++-
scripts/lib/test-quarantine.json | 55 +++++++
31 files changed, 799 insertions(+), 99 deletions(-)
Fusion-Task-Id: FN-6705
Fusion-Task-Lineage: 12ed6227-f935-4038-bbe9-a605a054850e
2026-06-19 16:47:33 -07:00
gsxdsm
8927173ae0
FN-6726: prevent Command Center token totals from overflowing
...
Contain Command Center token totals so large formatted values stay inside their stat surfaces.
- Add shrink and wrap containment to stat and live metric value styles.
- Cover large comma-grouped token totals across Overview, Tokens, and Team surfaces.
- Guard the emitted CSS declarations and quarantine an unrelated WorkflowNodeEditor flake observed during verification.
Files changed:
.../components/command-center/CommandCenter.css | 10 +++++
.../__tests__/CommandCenter.test.tsx | 9 ++++
.../CommandCenter.token-validity.css.test.ts | 21 ++++++++++
.../command-center/areas/__tests__/areas.test.tsx | 48 ++++++++++++++++++----
packages/dashboard/vitest.config.ts | 5 +++
scripts/lib/test-quarantine.json | 5 +++
6 files changed, 89 insertions(+), 9 deletions(-)
Fusion-Task-Id: FN-6726
Fusion-Task-Lineage: 8a26ca5c-fdbe-4e68-a9d2-ae93340fe685
2026-06-19 16:47:33 -07:00
copilot-swe-agent[bot]
78bd016743
fix(merge): resolve merge conflicts with origin/main
...
- Renumber behavioral verification schema migration from 118→124
(main added migrations 118-123 for usage_events, knowledge_pages,
deployments/incidents, token usage, source-issue closure, LOC stats)
- Combine backend + timeoutMsOverride params in verification-utils.ts
- Accept main's quarantine rescue for AI-merge suites (FN-6433)
- Update schema version assertions to 124 across test files
2026-06-19 23:47:20 +00:00
gsxdsm
c16c9fd234
FN-6697: preserve terminal shortcut keyboard focus
...
Preserve xterm focus while terminal shortcut buttons send control and literal input.
- Prevent shortcut button mousedown from stealing focus away from the xterm helper textarea.
- Refocus the terminal after modifier, literal, arrow, and Ctrl/Alt shortcut actions.
- Add desktop and touch-primary regression coverage for shortcut byte delivery with hardware-keyboard focus.
- Quarantine an unrelated QuickEntryBox focus-timing flake observed during workspace verification.
Files changed:
.../dashboard/app/components/TerminalModal.tsx | 79 ++++++++---
.../components/__tests__/TerminalModal.test.tsx | 151 +++++++++++++++++++++
packages/dashboard/vitest.config.ts | 9 +-
scripts/lib/test-quarantine.json | 5 +
4 files changed, 225 insertions(+), 19 deletions(-)
Fusion-Task-Id: FN-6697
Fusion-Task-Lineage: 558cfb44-ca48-4223-97d1-c3b6bc39b2fd
2026-06-19 05:25:02 -07:00
gsxdsm
3383a095b7
FN-6694: add workflow reliability release-check harness
...
Add an on-demand executable release-check lane for custom workflow reliability signoff.
- Add a manifest-backed release-check runner with dry-run, JSON output, validation, and targeted Vitest command planning.
- Define the custom workflow reliability checklist seams and cover runner validation, planning, reporting, and failure behavior with node tests.
- Document the QA signoff command and manifest mapping while keeping the lane out of the merge gate.
Files changed:
docs/custom-workflow-reliability-acceptance-map.md | 29 +-
docs/testing.md | 3 +
package.json | 1 +
.../workflow-reliability-release-check.test.mjs | 138 +++++++++
.../lib/workflow-reliability-release-check.json | 102 +++++++
scripts/workflow-reliability-release-check.mjs | 312 +++++++++++++++++++++
6 files changed, 579 insertions(+), 6 deletions(-)
Fusion-Task-Id: FN-6694
Fusion-Task-Lineage: 21d45bb5-6c45-4cb7-8b29-9eaea8b29ad4
2026-06-19 05:13:39 -07:00
gsxdsm
9d07e85232
FN-6690: preload lazy-view CSS chunks
...
Ensure persisted lazy dashboard views request their extracted CSS before first paint.
- Carry CSS asset paths through the Vite view chunk manifest.
- Inject stylesheet links alongside modulepreload links for persisted lazy views.
- Cover Command Center CSS preloading and served CSS availability in dashboard tests.
- Quarantine the unrelated session cross-tab cleanup flake observed during verification.
Files changed:
.changeset/fn-6690-lazy-view-css.md | 5 +
.../__tests__/board-mobile-initial-render.test.tsx | 16 ++-
.../src/__tests__/server-view-preload.test.ts | 152 ++++++++++++++++++++-
.../src/__tests__/view-chunk-manifest.test.ts | 57 ++++++--
packages/dashboard/src/server.ts | 16 ++-
packages/dashboard/src/view-chunk-manifest.ts | 26 +++-
packages/dashboard/vitest.config.ts | 6 +-
scripts/lib/test-quarantine.json | 5 +
8 files changed, 253 insertions(+), 30 deletions(-)
Fusion-Task-Id: FN-6690
Fusion-Task-Lineage: 6ac0d06f-14db-4302-98f8-0e742172ed7f
2026-06-19 03:49:56 -07:00
gsxdsm
deb1717812
FN-6667: add real iOS Safari acceptance harness
...
Add a real iOS Safari acceptance harness and documentation for terminal verification gates.
- Add an `ios:acceptance` script with check, dry-run, and real WebDriver session modes.
- Support BrowserStack, Sauce Labs, and LambdaTest credential discovery with redacted capability planning.
- Document the real-iOS provisioning workflow and link it from testing docs.
- Cover credential selection, URL validation, capability shaping, and CLI behavior with node tests.
Files changed:
docs/README.md | 1 +
docs/ios-acceptance.md | 144 ++++++++++++++++
docs/testing.md | 3 +
package.json | 1 +
scripts/__tests__/ios-acceptance.test.mjs | 131 +++++++++++++++
scripts/ios-acceptance.mjs | 264 ++++++++++++++++++++++++++++++
scripts/lib/ios-acceptance.mjs | 243 +++++++++++++++++++++++++++
7 files changed, 787 insertions(+)
Fusion-Task-Id: FN-6667
Fusion-Task-Lineage: 9eee6dbe-646e-4fff-a1da-fd59cdd2cb59
2026-06-18 16:47:09 -07:00
gsxdsm
538bf42e32
fix(dev): rebuild core+engine+dashboard on dev/local startup + stale-dist check
...
pnpm dev/local dashboard prebuild now rebuilds @fusion/core and @fusion/engine alongside the dashboard UI (was client-only), and startup warns loudly when built dist/ is older than src/. Prevents the FN-6638 class where landed engine fixes silently never run because the process loads stale dist.
2026-06-18 13:41:37 -07:00
gsxdsm
b480699e06
FN-6642: rescue dashboard flaky test coverage
...
Rescue the dashboard quarantine candidates by restoring stable shared mocks and refreshing quarantine evidence.
- Remove QuickEntryBox and chat-routes from the dashboard quarantine config and ledger.
- Add iterable chat task document tool mocks across dashboard session test helpers.
- Refresh the test velocity baseline and history with zero quarantined tests.
Files changed:
docs/test-velocity-baseline.md | 20 ++--
.../src/__tests__/session-error-recovery.test.ts | 2 +
.../session-persistence-roundtrip.test.ts | 2 +
.../src/__tests__/session-reconnect.test.ts | 2 +
.../src/__tests__/session-resume-history.test.ts | 2 +
packages/dashboard/src/test/mockCoreEngine.ts | 6 ++
packages/dashboard/vitest.config.ts | 13 ++-
scripts/lib/test-quarantine.json | 10 --
scripts/test-velocity-history.json | 111 +++++++++++++++++++++
9 files changed, 144 insertions(+), 24 deletions(-)
Fusion-Task-Id: FN-6642
Fusion-Task-Lineage: 76e51d76-ce9a-4e68-9aa0-ad83cdf351a9
2026-06-18 09:16:32 -07:00
gsxdsm
301ae7f0d3
FN-6636: rescue Paperclip spawn tests
...
Rescue the Paperclip CLI spawn coverage by making fake child events deterministic and re-enabling the suite.
- Route mintAgentApiKeyViaCli cases through the shared fake spawn helper so close and error events are emitted after listener registration.
- Document the async import/listener-order requirement that caused the quarantine.
- Remove paperclip-client.test.ts from the quarantine ledger and Vitest exclude list so the rescued tests run.
Files changed:
.../src/__tests__/paperclip-client.test.ts | 134 +++++++--------------
.../vitest.config.ts | 2 -
scripts/lib/test-quarantine.json | 5 -
3 files changed, 44 insertions(+), 97 deletions(-)
Fusion-Task-Id: FN-6636
Fusion-Task-Lineage: 79038ab3-0aa6-465e-9c6e-f6bc83fcd407
2026-06-18 06:56:36 -07:00
gsxdsm
dae0bde6f1
FN-6633: guide chat agents to ask questions for options
...
Encourage dashboard chat agents to turn option sets into selectable ask-question cards.
- Expand chat-lane prompt guidance so options, choices, and alternatives use `fn_ask_question` instead of prose-only lists.
- Cover the guidance in chat manager tests and assert the prompt is passed to resolved sessions.
- Record the patch changeset and quarantine unrelated flaky dashboard tests observed during verification.
Files changed:
.changeset/fn-6633-chat-question-guidance.md | 5 +++++
packages/dashboard/src/__tests__/chat-manager.test.ts | 14 +++++++++++++-
packages/dashboard/src/chat.ts | 5 ++++-
packages/dashboard/vitest.config.ts | 9 ++++++++-
scripts/lib/test-quarantine.json | 10 ++++++++++
5 files changed, 40 insertions(+), 3 deletions(-)
Fusion-Task-Id: FN-6633
Fusion-Task-Lineage: e59371d3-b198-4fe8-a70c-b94994060c59
2026-06-18 06:31:26 -07:00
gsxdsm
58a34e9cf0
FN-6631: fix Command Center completion gauges
...
Fix Command Center completion analytics and add futuristic activity visualizations.
- Compute SDLC completion rate as a triage cohort conversion capped between zero and one.
- Add a radial completion gauge plus a live activity strip with compact throughput sparkline styling.
- Cover the analytics and chart behavior with targeted tests, docs, and a patch changeset.
Files changed:
.changeset/fn-6631-command-center-rate-gauge.md | 5 +
docs/dashboard-guide.md | 4 +-
.../core/src/__tests__/activity-analytics.test.ts | 32 +++++-
packages/core/src/activity-analytics.ts | 23 +++-
.../components/command-center/CommandCenter.css | 128 ++++++++++++++++++++-
.../components/command-center/CommandCenter.tsx | 45 +++++++-
.../app/components/command-center/SdlcFunnel.tsx | 17 ++-
.../__tests__/CommandCenter.test.tsx | 12 +-
.../command-center/__tests__/SdlcFunnel.test.tsx | 2 +
.../command-center/__tests__/charts.test.tsx | 26 ++++-
.../command-center/charts/RadialGauge.tsx | 50 ++++++++
.../components/command-center/charts/charts.css | 83 +++++++++++++
.../vitest.config.ts | 2 +
scripts/lib/test-quarantine.json | 8 +-
14 files changed, 402 insertions(+), 35 deletions(-)
Fusion-Task-Id: FN-6631
Fusion-Task-Lineage: 0d09f18a-5f93-4dc8-8786-889f32eb63e8
2026-06-18 06:25:08 -07:00
gsxdsm
1020b3f83f
FN-6606: restore CE sync lane coverage
...
Restore the compound-engineering broad lane tests after the timeout could not be reproduced on the stabilized shared test infrastructure.
- Re-enable the compound-engineering sync and work-bridge tests by clearing their Vitest quarantine excludes.
- Remove the stale quarantine ledger entries now that the broad package lane stayed stable under verification.
Files changed:
plugins/fusion-plugin-compound-engineering/vitest.config.ts | 10 ++++------
scripts/lib/test-quarantine.json | 13 +------------
2 files changed, 5 insertions(+), 18 deletions(-)
Fusion-Task-Id: FN-6606
Fusion-Task-Lineage: f357c626-c181-44a7-a463-c53644566ca1
2026-06-17 20:19:55 -07:00
gsxdsm
c4878514f9
FN-6600: harden core worker-root teardown retries
...
Harden the core Vitest worker-root cleanup path and rescue the related broad-suite quarantines.
- Increase bounded retries for transient ENOTEMPTY/EBUSY worker-root cleanup races.
- Add teardown coverage proving transient ENOTEMPTY retries remove the worker root.
- Remove rescued core quarantine entries from the ledger and Vitest exclude list.
- Document the FN-6600 core cleanup rescue pattern in testing guidance.
Files changed:
docs/testing.md | 2 ++
.../core/src/__test-utils__/vitest-teardown.ts | 7 +++++-
.../vitest-teardown-worker-root-cleanup.test.ts | 27 ++++++++++++++++++++++
packages/core/vitest.config.ts | 6 +++--
scripts/lib/test-quarantine.json | 15 ------------
5 files changed, 39 insertions(+), 18 deletions(-)
Fusion-Task-Id: FN-6600
Fusion-Task-Lineage: 107fb5cf-82c8-4e65-915d-0ef69725369b
2026-06-17 19:19:05 -07:00
gsxdsm
5b9ff047d3
FN-6599: preserve chat thread during streaming attach
...
Keep existing chat history visible when attaching to an in-flight streaming response.
- Commit attach-triggered message loads for the streaming session before active session refs settle.
- Avoid clearing cached main chat messages on attach cache misses while fetching prior thread history.
- Add regression coverage for main chat and QuickChat streaming thread visibility, plus quarantine ledger updates.
Files changed:
.changeset/fn-6599-chat-streaming-thread.md | 5 +
docs/architecture.md | 1 +
docs/dashboard-guide.md | 2 +-
packages/core/vitest.config.ts | 1 +
.../__tests__/ChatView.streaming-thread.test.tsx | 168 +++++++++++++++++++++
.../dashboard/app/hooks/__tests__/useChat.test.ts | 51 +++++++
.../app/hooks/__tests__/useQuickChat.test.ts | 39 +++++
packages/dashboard/app/hooks/useChat.ts | 37 +++--
packages/dashboard/app/hooks/useQuickChat.ts | 27 ++--
scripts/lib/test-quarantine.json | 5 +
10 files changed, 307 insertions(+), 29 deletions(-)
Fusion-Task-Id: FN-6599
Fusion-Task-Lineage: b2c94391-6a5b-4048-836d-e4bc56e16786
2026-06-17 17:49:20 -07:00
gsxdsm
48da420414
FN-6593: delete unresolved flaky test quarantines
...
Delete unresolved quarantined flaky tests under the deletion ratchet while preserving newer active quarantines.
- Remove four flaky test files that were not rescued before the ratchet follow-up.
- Drop their matching Vitest excludes and quarantine ledger entries.
- Preserve later sync, work-bridge, and core quarantine records from main.
Files changed:
.../src/__tests__/github-tracking-hook.test.ts | 592 ---------------------
packages/dashboard/vitest.config.ts | 8 +-
.../src/__tests__/cli-agent-executor.test.ts | 404 --------------
packages/engine/vitest.config.ts | 5 +-
.../src/__tests__/orchestrator-flow.test.ts | 156 ------
.../src/__tests__/skill-wiring.test.ts | 101 ----
.../vitest.config.ts | 6 +-
scripts/lib/test-quarantine.json | 20 -
8 files changed, 13 insertions(+), 1279 deletions(-)
Fusion-Task-Id: FN-6593
Fusion-Task-Lineage: 1165ba24-894a-4cc9-b678-50ae1625ba6b
2026-06-17 17:37:08 -07:00
gsxdsm
cc793987b2
FN-6596: guard compound engineering debug launches
...
Guard Compound Engineering debug stage launches against stale stage settings and artifacts.
- Add source-level coverage proving stale enabledStages snapshots do not block registered CE stages, including debug.
- Add dist freshness checks for the disabledStages opt-out launch model so stale compiled plugin artifacts fail fast.
- Mirror newly observed core suite-load flakes in the quarantine ledger and Vitest excludes.
Files changed:
packages/core/vitest.config.ts | 5 ++
.../src/__tests__/dist-freshness.test.ts | 38 +++++++++++++++
.../src/__tests__/stage-launch-guard.test.ts | 57 ++++++++++++++++++++++
scripts/lib/test-quarantine.json | 10 ++++
4 files changed, 110 insertions(+)
Fusion-Task-Id: FN-6596
Fusion-Task-Lineage: 3cd75e5f-c6f8-4bde-8202-54eeac82b894
2026-06-17 17:21:22 -07:00
gsxdsm
822d5d1872
fix(FN-6587): stabilize test lanes under production env
...
Normalize spawned Vitest processes to NODE_ENV=test so React/jsdom lanes do not inherit release-shell production mode. Split the compound-engineering plugin Vitest projects so Node-only setup and teardown only run in Node lanes, and quarantine the remaining broad-lane CE timeout flakes under the deletion ratchet.
2026-06-17 17:13:13 -07:00
gsxdsm
d8b80d0bfe
FN-6587: quarantine compound-engineering timeout flakes
...
Quarantine compound-engineering timeout flakes from the broad test workflow.
- Add the compound-engineering orchestrator and skill-wiring tests to the quarantine ledger.
- Exclude the quarantined tests from the compound-engineering node Vitest project without changing timeouts or retries.
- Document the quarantine requirement next to the Vitest excludes.
Files changed:
.../fusion-plugin-compound-engineering/vitest.config.ts | 15 ++++++++++++++-
scripts/lib/test-quarantine.json | 10 ++++++++++
2 files changed, 24 insertions(+), 1 deletion(-)
Fusion-Task-Id: FN-6587
Fusion-Task-Lineage: 5aeb0202-8330-4a93-bdab-675c81b9cb54
2026-06-17 14:52:56 -07:00
gsxdsm
669b106548
FN-6514: restore QuickEntryBox test isolation
...
Rescues the QuickEntryBox suite by restoring jsdom globals instead of keeping it quarantined.
- Snapshot and restore QuickEntryBox viewport, visibility, matchMedia, and object URL descriptors after each test.
- Add a guard test that proves mutated jsdom globals return to their original descriptors.
- Remove the QuickEntryBox quarantine entries while documenting the rescue pattern.
Files changed:
docs/testing.md | 2 +
.../components/__tests__/QuickEntryBox.test.tsx | 50 ++++++++++++++++++++++
packages/dashboard/vitest.config.ts | 7 ++-
scripts/lib/test-quarantine.json | 5 ---
4 files changed, 55 insertions(+), 9 deletions(-)
Fusion-Task-Id: FN-6514
Fusion-Task-Lineage: 12f20ad8-19ee-4168-91a9-33193b1ab5f7
2026-06-16 22:13:46 -07:00
gsxdsm
0db81349bb
FN-6492: clamp task list text output
...
Bound fn_task_list responses now stay as plain text across board-tool surfaces.\n\n- Add a shared task-list text clamp with an explicit truncation marker.\n- Route CLI, dashboard planning-board, and engine triage task-list output through the shared formatter.\n- Cover bounded and column-filtered output with core and CLI regression tests.\n- Record the patch changeset and quarantine the observed engine CLI executor flake.\n\nFiles changed:\n .changeset/fn-6492-task-list-text-bound.md | 5 ++\n packages/cli/src/__tests__/extension.test.ts | 79 +++++++++++++++++++++-\n packages/cli/src/extension.ts | 7 +-\n .../core/src/__tests__/task-list-format.test.ts | 75 ++++++++++++++++++++\n packages/core/src/index.ts | 1 +\n packages/core/src/task-list-format.ts | 45 ++++++++++++\n packages/dashboard/src/planning-board-tools.ts | 8 ++-\n packages/engine/src/triage.ts | 7 +-\n packages/engine/vitest.config.ts | 5 ++\n scripts/lib/test-quarantine.json | 5 ++\n 10 files changed, 232 insertions(+), 5 deletions(-)
Fusion-Task-Id: FN-6492
Fusion-Task-Lineage: 8b347efb-bc17-4bbe-937c-4f07c63df318
2026-06-16 19:31:33 -07:00
gsxdsm
198fb17277
FN-6496: preserve chat history during streaming attach
...
Keep existing chat thread messages visible while reconnecting to streamed assistant responses.
- Hydrate or reload prior session messages before attaching an in-flight stream in full chat.
- Add QuickChat session-specific message loading so resumed streams do not hide earlier turns.
- Cover full chat and QuickChat streaming attach behavior with regression tests.
- Add the required patch changeset and quarantine unrelated flaky dashboard tests observed during verification.
Files changed:
.changeset/fn-6496-chat-stream-prior-thread.md | 5 +
.../dashboard/app/hooks/__tests__/useChat.test.ts | 286 ++++++++++++++++++++-
.../app/hooks/__tests__/useQuickChat.test.ts | 147 ++++++++++-
packages/dashboard/app/hooks/useChat.ts | 17 +-
packages/dashboard/app/hooks/useQuickChat.ts | 62 ++---
packages/dashboard/vitest.config.ts | 13 +-
scripts/lib/test-quarantine.json | 13 +-
7 files changed, 502 insertions(+), 41 deletions(-)
Fusion-Task-Id: FN-6496
Fusion-Task-Lineage: eb371b39-9810-48b7-a395-30066c9bc3be
2026-06-16 19:25:32 -07:00
gsxdsm
a38752c6bb
FN-6486: rescue quarantined flaky tests
...
Rescue the same-day core and CLI flaky quarantines by fixing their fixture seams instead of appeasing timeouts.
- Make the core concurrent-write lock helper release synchronously inside its child process so package load cannot delay the transient lock release.
- Close real CLI TaskStore fixtures before removing temp roots and switch mock cleanup to non-hoisted unmocking.
- Remove both test files from package quarantine excludes and clear the quarantine ledger while documenting the rescue pattern.
Files changed:
docs/testing.md | 2 ++
packages/cli/src/__tests__/extension-task-tools.test.ts | 17 +++++++++++++----
packages/cli/vitest.config.ts | 4 +++-
.../core/src/__tests__/store-concurrent-writes.test.ts | 8 +++++++-
packages/core/vitest.config.ts | 4 +++-
scripts/lib/test-quarantine.json | 13 +------------
6 files changed, 29 insertions(+), 19 deletions(-)
Fusion-Task-Id: FN-6486
Fusion-Task-Lineage: c90358c4-0549-4c68-8d17-2e2a336433b5
2026-06-16 15:08:24 -07:00
gsxdsm
589c8e8045
FN-6483: quarantine flaky CLI extension task tests
...
Quarantine the load-sensitive CLI extension task tools suite instead of widening Vitest timeouts.
- Add the extension task tools test file to the CLI Vitest quarantine exclude list.\n- Record the FN-6483 quarantine evidence in the deletion-ratchet ledger while preserving the existing core quarantine entry.\n\nFiles changed:\n packages/cli/vitest.config.ts | 5 +++++\n scripts/lib/test-quarantine.json | 5 +++++\n 2 files changed, 10 insertions(+)
Fusion-Task-Id: FN-6483
Fusion-Task-Lineage: 4a3be3b4-b2b4-4e05-afd0-564aa0d28c68
2026-06-16 15:08:24 -07:00
gsxdsm
0093678ee6
FN-6481: require release triage authorization
...
Block release-class tasks from automatic triage dispatch unless they come from a user-authored source with explicit authorization.
- Add release intent classification and authorization-marker enforcement before final triage transitions.
- Record activity/log details when release tasks are parked awaiting manual approval.
- Surface the new release-authorization activity in dashboard activity views.
- Cover release gating behavior with engine tests and document the architecture pattern.
- Add a changeset for the published CLI package.
Files changed:
.changeset/fn-6481-release-triage-authorization.md | 5 +
.../release-triage-requires-user-authorization.md | 33 +++++
packages/core/src/types.ts | 2 +
packages/core/vitest.config.ts | 4 +
packages/dashboard/app/components/ActivityFeed.tsx | 5 +
.../dashboard/app/components/ActivityLogModal.tsx | 6 +
.../__tests__/triage-release-authorization.test.ts | 158 +++++++++++++++++++++
.../engine/src/triage-release-authorization.ts | 100 +++++++++++++
packages/engine/src/triage.ts | 51 +++++++
scripts/lib/test-quarantine.json | 8 +-
10 files changed, 371 insertions(+), 1 deletion(-)
Fusion-Task-Id: FN-6481
Fusion-Task-Lineage: 0bddb77a-87e5-4fa5-b31a-e773bdae7a29
2026-06-16 15:08:24 -07:00
gsxdsm
81188f1996
FN-6480: require operator authorization for releases
...
Require an out-of-repository operator signal before the release script can mutate version, publish, push, or tag.
- Add a reusable release authorization gate that allows dry-runs and blocks real releases without FUSION_RELEASE_AUTHORIZED.
- Invoke the gate in scripts/release.mjs before the first release mutation while preserving dry-run behavior.
- Cover blocked, authorized, dry-run, whitespace, TTY, and call-order behavior with script tests.
Files changed:
.../__tests__/release-authorization-gate.test.mjs | 70 ++++++++++++++++++++++
scripts/lib/release-authorization-gate.mjs | 30 ++++++++++
scripts/release.mjs | 26 +++++++-
3 files changed, 123 insertions(+), 3 deletions(-)
Fusion-Task-Id: FN-6480
Fusion-Task-Lineage: 5347552c-e395-4852-b389-6bbdba0e044e
2026-06-16 15:08:24 -07:00
gsxdsm
2bffad1784
Merge remote-tracking branch 'origin/main' into fix/test-timeout-failures
...
# Conflicts:
# scripts/test-changed.mjs
2026-06-15 12:13:40 -07:00
gsxdsm
d8fe994ca7
FN-6472: make release dry-runs non-interactive by default
...
Make dry-run release previews skip stdin prompts unless explicitly requested.
- Add a release prompt gate that suppresses version prompts for default dry-runs and honors --interactive as an opt-in.
- Update release CLI usage text and argument parsing for dry-run interactivity.
- Cover dry-run, --yes, real-release, and release.mjs ordering behavior with script tests.
Files changed:
scripts/__tests__/release-prompt-gate.test.mjs | 72 ++++++++++++++++++++++++++
scripts/lib/release-prompt-gate.mjs | 13 +++++
scripts/release.mjs | 16 ++++--
3 files changed, 97 insertions(+), 4 deletions(-)
Fusion-Task-Id: FN-6472
Fusion-Task-Lineage: 07bfd944-f4a0-454a-883f-dadf1aa0b7d4
2026-06-15 02:30:41 -07:00
gsxdsm
a26d79cbb6
FN-6454: delete expired quarantined dashboard tests
...
Apply the dashboard quarantine deletion ratchet by removing stale quarantined suites and clearing the active skip ledger.
- Delete dashboard component and API test files that remained quarantined under the ratchet.
- Empty the dashboard Vitest quarantine exclude list so future quarantines must be newly mirrored.
- Clear the quarantine ledger entries after deleting their associated files.
Files changed:
...hatView.regular-composer-no-right-line.test.tsx | 108 -
.../components/__tests__/MissionManager.test.tsx | 5654 ------------------
.../app/components/__tests__/ModalReentry.test.tsx | 439 --
.../components/__tests__/ModelSelectorTab.test.tsx | 1325 -----
.../components/__tests__/NewAgentDialog.test.tsx | 2043 -------
.../__tests__/OAuthReloginBanner.test.tsx | 237 -
.../__tests__/PlanningModeModal.favorites.test.tsx | 540 --
.../__tests__/PlanningModeModal.questions.test.tsx | 1230 ----
.../PlanningModeModal.swipe-back.test.tsx | 239 -
.../components/__tests__/SkillsView.css.test.ts | 89 -
.../app/components/__tests__/mobile-css.test.tsx | 143 -
.../dashboard/src/__tests__/mission-e2e.test.ts | 6176 --------------------
packages/dashboard/src/__tests__/planning.test.ts | 3633 ------------
packages/dashboard/vitest.config.ts | 40 +-
scripts/lib/test-quarantine.json | 70 +-
15 files changed, 8 insertions(+), 21958 deletions(-)
Fusion-Task-Id: FN-6454
Fusion-Task-Lineage: f18e940d-f8ee-4ade-aedb-714b8e39e2a4
2026-06-15 02:29:08 -07:00
gsxdsm
e526ad2b2c
FN-6447: rescue session reconnect teardown
...
Rescue the session reconnect SSE test by shutting down route-owned background work before temp cleanup.
- Isolate the focused API harness from TaskStore EventEmitter startup workers.
- Dispose API routes and scheduled AI session cleanup before deleting the test temp root.
- Remove session-reconnect from the dashboard quarantine ledger and vitest skip list.
Files changed:
.../src/__tests__/session-reconnect.test.ts | 22 ++++++++++++++++++----
packages/dashboard/vitest.config.ts | 6 ++++--
scripts/lib/test-quarantine.json | 5 -----
3 files changed, 22 insertions(+), 11 deletions(-)
Fusion-Task-Id: FN-6447
Fusion-Task-Lineage: a3fef28c-b92b-4f47-9181-a63bb31e4f48
2026-06-14 15:29:35 -07:00
gsxdsm
c12e7e39fb
FN-6444: rescue dashboard route API tests
...
Rescue deterministic dashboard route/API tests from the curated skip-list and quarantine the remaining stale suites.
- Remove dashboard src route/API tests from the curated skip-list once they either run in backfill or move to quarantine.
- Add dated quarantine coverage for stale mission, planning, and session reconnect suites.
- Update rescued route/API test expectations and FNXC comments to match current deterministic behavior.
Files changed:
.../dashboard/src/__tests__/chat-manager.test.ts | 4 ++
.../dashboard/src/__tests__/evals-routes.test.ts | 8 +++-
.../src/__tests__/github-tracking-delete.test.ts | 4 ++
...ithub-tracking-periodic-reconcile-sweep.test.ts | 8 +++-
.../src/__tests__/insights-routes.test.ts | 12 ++++--
.../__tests__/routes-run-audit-goal-events.test.ts | 6 ++-
.../src/__tests__/routes-run-cited-goals.test.ts | 6 ++-
.../shared-branch-group-entry-points.test.ts | 6 +--
packages/dashboard/src/__tests__/usage.test.ts | 4 ++
packages/dashboard/vitest.config.ts | 6 +++
scripts/lib/dashboard-curated-skiplist.json | 44 ----------------------
scripts/lib/test-quarantine.json | 15 ++++++++
12 files changed, 66 insertions(+), 57 deletions(-)
Fusion-Task-Id: FN-6444
Fusion-Task-Lineage: f314da67-d05e-48c5-9c9c-890c28cf0e5b
2026-06-14 15:29:35 -07:00
gsxdsm
1f540b29d7
FN-6443: rescue dashboard session tests
...
Rescue skipped dashboard session tests by making planning responses durable before continuation.
- Persist planning-session response history before agent continuation so retry and replay state survives generation errors.
- Isolate dashboard session tests on dedicated SQLite handles and close them before temp cleanup.
- Restore engine mocks for workflow authoring tools and remove the rescued session tests from the curated dashboard skiplist.
- Add a patch changeset for the published CLI bundle.
Files changed:
.changeset/fn-6443.md | 5 +++
.../src/__tests__/session-cross-tab.test.ts | 38 ++++++++++++++--------
.../src/__tests__/session-error-recovery.test.ts | 2 ++
.../session-persistence-roundtrip.test.ts | 2 ++
.../src/__tests__/session-reconnect.test.ts | 21 ++++++++++--
packages/dashboard/src/planning.ts | 11 ++++---
scripts/lib/dashboard-curated-skiplist.json | 16 ---------
7 files changed, 58 insertions(+), 37 deletions(-)
Fusion-Task-Id: FN-6443
Fusion-Task-Lineage: 953534e7-6857-4cd5-9a5a-5772354cac5a
2026-06-14 15:29:35 -07:00
gsxdsm
a6d5efce27
FN-6442: rescue dashboard hook tests from skiplist
...
Rescues three dashboard hook test files by replacing brittle coverage with stable assertions and removing their skiplist entries.
- Stub global localStorage failures directly for quick chat persistence coverage.
- Remove the placeholder skipped useChatRooms pagination test.
- Rework useTaskDiffStats stepVersion tests around active worktree cache behavior.
- Drop the rescued dashboard hook tests from the curated skiplist.
Files changed:
.../__tests__/quickChatLastSessionStorage.test.ts | 23 ++++--
.../app/hooks/__tests__/useChatRooms.test.ts | 6 --
.../app/hooks/__tests__/useTaskDiffStats.test.ts | 94 ++++++++++++----------
scripts/lib/dashboard-curated-skiplist.json | 12 ---
4 files changed, 67 insertions(+), 68 deletions(-)
Fusion-Task-Id: FN-6442
Fusion-Task-Lineage: f2fe4791-1216-420d-9734-3938287779da
2026-06-14 15:29:35 -07:00
gsxdsm
175aab15ac
FN-6441: rescue and quarantine dashboard component tests
...
Rescue passing dashboard component tests and move still-failing orphaned tests under the quarantine ratchet.
- Remove the FN-6441 dashboard component batch from the curated skip-list.
- Keep passing PlanningModeModal, TaskReviewTab, and TerminalModal coverage documented in app backfill.
- Register remaining failing dashboard component/CSS tests in the dated quarantine ledger and Vitest excludes.
- Teach the dashboard curated inventory guard to accept dated quarantine entries without returning them to the skip-list.
Files changed:
.../PlanningModeModal.ui-interactions.test.tsx | 9 ++-
.../components/__tests__/TaskReviewTab.test.tsx | 4 ++
.../components/__tests__/TerminalModal.test.tsx | 4 ++
packages/dashboard/vitest.config.ts | 14 +++++
scripts/__tests__/check-test-inventory.test.mjs | 32 +++++++++++
scripts/check-test-inventory.mjs | 67 +++++++++++++++++-----
scripts/lib/dashboard-curated-skiplist.json | 56 ------------------
scripts/lib/test-quarantine.json | 58 ++++++++++++++++++-
8 files changed, 172 insertions(+), 72 deletions(-)
Fusion-Task-Id: FN-6441
Fusion-Task-Lineage: 19065d1f-31eb-45fc-a6ce-083773b094e4
2026-06-14 15:29:35 -07:00
gsxdsm
0b047d4fc8
FN-6440: replace dashboard skip-list placeholders
...
Dashboard curated-gate skip-list entries now point to actionable tracking work.
- Replace placeholder FN-TBD references with concrete Fusion task IDs grouped by affected dashboard area.
- Document the requirement that skip-list reasons cite real tracking tasks unless entries are removed after rescue.
- Preserve the standalone build-output exception while making the remaining skip-list ownership actionable.
Files changed:
docs/testing.md | 1 +
scripts/lib/dashboard-curated-skiplist.json | 66 ++++++++++++++---------------
2 files changed, 34 insertions(+), 33 deletions(-)
Fusion-Task-Id: FN-6440
Fusion-Task-Lineage: abf1cef2-8199-4746-b8ec-8b5487eb1ecc
2026-06-14 15:29:35 -07:00