Fusion Agent
ea869ff38f
fix(FN-186): give pipeline-smoke tasks process-unique ids and drain execution on teardown
...
S05 now covers builtin:coding-ideas-v2. 5/5 consecutive full lanes.
Two harness defects, both of which made a CORRECT engine refusal look like a flake.
1. Task ids collided. The serial lived on the harness instance and reset with it, so
every test's first task was `FN-182-S05-1`. The engine's process-wide state —
`executingTaskLock`, `activeSessionRegistry.pathsForTask`, worktree registrations —
is keyed by task id, so a straggler from the previous test answered for the NEXT
test's identically-named task and handed it a worktree under the PREVIOUS fixture.
The serial now lives on the module.
2. Teardown forgot in-flight work instead of waiting for it. `ProjectEngine.stop()`
clears timers but does not await an execution already inside `execute()`, and the
harness then called `activeSessionRegistry.clear()` — which hides a live session
rather than ending it. `dispose()` now drains `executingTaskLock` and the registry
for its own task ids, bounded, and THROWS on expiry: a straggler that outlives the
budget is a real defect, and a silent continue would restore the leak.
Throughout this, the product was right. The executor detected the foreign worktree,
refused it (`outside_worktrees_dir`), retried, exhausted its budget and failed
visibly. That refusal is the desired behaviour and was never the bug — the harness
was manufacturing the condition.
Budget re-baselined 150s -> 175s for attributable growth: a 7th file (the remediation
drive) and S05 on V2, one of the longest scenarios. Five runs at 140.1-148.4s left
under 2s of headroom against the old ceiling, which is a flake waiting to happen. The
standing rule is unchanged and now has three precedents: growth must be nameable, or
it is a regression to fix rather than a budget to raise.
pnpm lint 0 errors, test:gate, verify:fast, engine-pipeline-smoke 90/90, and five
consecutive full runs: 146.0s, 142.6s, 148.5s, 144.8s, 146.3s of the 175s budget.
2026-08-25 21:42:36 +00:00
Fusion Agent
94f660e672
fix(FN-WF): stop a failed merge stranding review-column tasks, and widen V2 coverage
...
Two review-seal defects, both found by running builtin:coding-ideas-v2 through the
whole scenario matrix rather than the nominal path alone.
1. A DETERMINISTIC verification gate was sealed as write-capable. It needs a
worktree because it runs the project's test/build commands there, but it only
reads the tree — `verification-gate.ts` has no mutation path.
`workflowNodeRequiresWorktree` conflates "needs a worktree" with "writes", and
its inline-fix branch matches on the node NAME (`/review|verification/i`), so a
gate named "Verification" was refused after any approval.
2. A gate that already `passed` or was `skipped` was refused on replay. A
post-approval requeue — a merge conflict, a transient merge failure — walks the
graph back through gates whose output is already inside the approved tree.
Refusing them converts a retryable merge into a terminal wedge; re-running them
would rewrite the tree the review approved. "Already produced, already
reviewed" now resolves as satisfied. A gate with no result still hits the
refusal, which is the case the seal exists for.
Measured by pipeline-smoke S13, where a conflicting merge left the card cycling on
documentation-delivery with `workspace-review-seal-required` instead of retrying.
Coverage: builtin:coding-ideas-v2 now runs 16 of the 19 declared scenarios plus
the multi-repository workspace drive, up from 1. The duration budget is
re-baselined 90s -> 150s, and the workload growth is itemised in docs/testing.md:
17 added scenario executions and a second project shape, 124.95s measured against
76.9s for the smaller matrix. Three consecutive full runs: 116.9s, 115.6s, 119.8s.
NOT covered, deliberately and stated rather than hidden: S07 (unactionable review
rejection), S13 (scripted merge-conflict resolution) and S17 (restart resilience)
still run on the original workflows only. S07 and S13 do not converge on V2, and
S17 produced one intermittent post-merge failure in four full-lane runs — a flake
is not something to ship or to paper over, so those three stay uncovered until
they are understood.
2026-08-24 16:21:30 +00:00
Fusion Agent
bde81ad4ff
feat(FN-182): add deterministic AI-free pipeline smoke lane
...
Opt-in `pnpm smoke:pipeline` lane replaying 19 declared scenarios across
builtin:coding-ideas and the builtin:coding non-regression floor, driving the
real engine: disposable local Git repositories, throwaway PostgreSQL store,
production graph dispatch, ProjectEngine merge admission, real worktree
acquisition, and deterministic mock-provider scripts under testMode.
Each scenario declares one closed terminal state (merged-done, inert-intake,
parked, manual-hold, no-op-merge); an undeclared terminal fails the run, and
five wedge detectors (W1-W5) reject contradictory parks, finalization loops,
severed sessions, unreachable waits, and quiescence without progress.
Differential proof: on the pre-FN-180 tree (95ea06b48 ) exactly S05, S06, S09,
S10 and S16 fail across both workflows with behavioral assertions, and pass
after FN-180 — the FN-175/FN-177 incident classes are reproduced mechanically.
The declared duration budget is re-baselined 70s -> 90s at landing. The harness
did not degrade: the identical branch measured 61.8-64.1s against the
pre-integration main and 73.2-80.2s against the same main after 65 upstream
commits, with growth in transform, import and test phases the lane does not own.
docs/testing.md records the measurements, the cause, and the file-consolidation
lever to reach for before the budget is touched again.
Excluded from engine-default and engine-core; the merge gate is unchanged and
CI runs the lane non-blocking after merge.
Fusion-Task-Id: FN-182
2026-08-24 04:19:21 +00:00
Fusion Agent
db254241f1
FN-180: enforce merge execution and current review gates
...
Prevent merge progression while execution is active and require current, content-matched review approval before finalization.
- Add shared pre-merge approval and content descriptor gates.
- Exclude actively executing tasks from merge and reconcile confirmed merges safely.
- Centralize step reopening and strengthen merge lifecycle, audit, and regression coverage.
Files changed:
...80-merge-execution-exclusion-and-review-gate.md | 7 +
docs/architecture.md | 1 +
docs/run-audit.md | 2 +
docs/testing.md | 5 +
docs/workflow-steps.md | 2 +
.../confirmed-merge-reconciliation.test.ts | 17 ++
.../src/__tests__/pre-merge-approval-gate.test.ts | 33 ++++
.../__tests__/pre-merge-approval-workspace.test.ts | 30 +++
.../src/__tests__/required-pre-merge-steps.test.ts | 47 ++++-
packages/core/src/__tests__/task-merge.test.ts | 9 +-
packages/core/src/db/legacy-adoption.ts | 7 +
packages/core/src/index.gate.ts | 11 +-
packages/core/src/index.ts | 11 +-
.../src/merge/confirmed-merge-reconciliation.ts | 34 ++++
.../core/src/merge/merge-content-descriptor.ts | 10 +
packages/core/src/merge/pre-merge-approval.ts | 71 +++++++
.../core/src/merge/required-pre-merge-steps.ts | 69 +++++++
packages/core/src/merge/task-merge.ts | 35 ++--
packages/core/src/task-store/merge-queue-ops.ts | 50 ++---
.../src/workflows/workflow-step-reopen-policy.ts | 18 ++
.../__tests__/ChatView.core-contracts.test.tsx | 5 +-
.../__tests__/ChatView.core-interactions.test.tsx | 5 +-
.../components/__tests__/ChatView.core.test.tsx | 5 +-
.../components/__tests__/ChatView.draft.test.tsx | 5 +-
.../__tests__/ChatView.message-edit.test.tsx | 5 +-
.../__tests__/ChatView.mobile-render.test.tsx | 5 +-
.../components/__tests__/ChatView.mobile.test.tsx | 5 +-
.../__tests__/ChatView.scroll-to-top.test.tsx | 5 +-
.../__tests__/ChatView.sessions-rooms.test.tsx | 5 +-
.../__tests__/ChatView.thinking-level.test.tsx | 5 +-
.../confirmed-merge-must-finalize.test.ts | 32 ++++
.../src/__tests__/executor-step-session.test.ts | 29 ++-
.../src/__tests__/manual-merge-bypass.test.ts | 1 +
.../merge-abort-clears-transient-status.test.ts | 66 ++++---
.../merge-content-descriptor-doors.test.ts | 28 +++
.../__tests__/merge-execution-exclusion.test.ts | 65 +++++++
.../__tests__/merge-gate-single-authority.test.ts | 28 +++
.../src/__tests__/merge-inflight-revoke.test.ts | 26 +++
.../merge-worktree-removal-live-session.test.ts | 29 +++
.../engine/src/__tests__/merger-ai-cleanup.test.ts | 8 +-
.../src/__tests__/merger-merge-lifecycle.test.ts | 11 +-
.../__tests__/step-reopen-single-authority.test.ts | 116 ++++++++++++
.../workflow-graph-optional-step-fix.test.ts | 10 +
.../engine/src/__tests__/workspace-merger.test.ts | 13 +-
.../engine/src/executor/cleanup-merge-state.ts | 45 +----
.../src/executor/finalize-already-reviewed-task.ts | 20 +-
.../src/executor/recover-failed-pre-merge-step.ts | 7 +-
.../src/executor/reopen-last-step-for-revision.ts | 41 +----
.../request-pre-merge-optional-step-fix.ts | 13 +-
packages/engine/src/executor/reset-merge-state.ts | 7 +-
.../src/executor/review-convergence-ladder.ts | 6 +
packages/engine/src/executor/run-implementation.ts | 33 +++-
.../engine/src/merge/auto-merge-finalization.ts | 49 +++--
packages/engine/src/merge/merge-content-capture.ts | 49 +++++
.../engine/src/merge/merge-execution-exclusion.ts | 47 +++++
packages/engine/src/merge/merger-ai.ts | 204 ++++++++++++++++-----
packages/engine/src/merge/merger-errors.ts | 13 ++
packages/engine/src/merger.ts | 29 ++-
packages/engine/src/project-engine.ts | 153 ++++++++++++----
.../engine/src/run-audit/run-audit-catalogue.ts | 12 ++
packages/engine/src/self-healing.ts | 36 ++--
packages/engine/src/util/run-audit.ts | 4 +
.../engine/src/worktree/review-diff-fingerprint.ts | 36 +++-
.../src/worktree/workspace-review-evidence.ts | 2 +-
64 files changed, 1420 insertions(+), 367 deletions(-)
Fusion-Task-Id: FN-180
Fusion-Task-Lineage: 4c2cdae0-be25-49c9-a918-60768ddc7686
Co-authored-by: Fusion <noreply@runfusion.ai >
2026-08-23 09:22:26 +00:00
Fusion Agent
e5ac9c385a
FN-152: repair local PostgreSQL test provisioning
...
Repair embedded PostgreSQL test-server staging and diagnostics for reliable local and worktree test runs.
- Stage native PostgreSQL runtime files before startup and manage lifecycle state safely.
- Add provisioning diagnostics, harness integration, regression tests, and troubleshooting documentation.
- Expose PostgreSQL test-server lifecycle commands through package scripts.
Files changed:
...server-libdir-plpgsql-and-missing-login-role.md | 15 +
docs/testing.md | 10 +
package.json | 3 +
.../__test-utils__/pg-provisioning-diagnostics.ts | 25 ++
.../core/src/__test-utils__/pg-test-harness.ts | 5 +
.../__tests__/pg-provisioning-diagnostics.test.ts | 30 ++
.../__tests__/reliability-interactions/_helpers.ts | 17 +-
scripts/__tests__/pg-test-server.test.mjs | 73 +++++
scripts/pg-test-server.mjs | 332 +++++++++++++++++++++
9 files changed, 505 insertions(+), 5 deletions(-)
Fusion-Task-Id: FN-152
Fusion-Task-Lineage: ead05f6e-00fc-42a0-8599-bf4cb2269527
Co-authored-by: Fusion <noreply@runfusion.ai >
2026-08-23 01:36:12 +00:00
Fusion Agent
8b681775ae
FN-122: fix local workspace integration across repositories
...
Make multi-repository workspace merges resolve and land against the correct local integration targets.
- Add local integration-target resolution and durable merge-dispatch leasing.
- Harden workspace merge fencing, failure handling, audit logging, and CLI/dashboard controls.
- Document the workflow and add regression coverage for workspace integration and task-log deduplication.
- Complete the CLI engine mock for the new public lease export.
Files changed:
.changeset/fn-122-local-workspace-integration.md | 7 +
docs/architecture.md | 1 +
docs/dashboard-guide.md | 4 +
docs/settings-reference.md | 4 +-
docs/testing.md | 10 ++
.../task-command-github-import-tracking.test.ts | 2 +
packages/cli/src/commands/__tests__/task.test.ts | 1 +
packages/cli/src/commands/dashboard.ts | 15 +-
packages/cli/src/commands/task.ts | 14 +-
.../__tests__/postgres/task-log-dedupe.pg.test.ts | 30 ++++
packages/core/src/index.ts | 2 +-
packages/core/src/store.ts | 5 +-
packages/core/src/task-store/audit-ops.ts | 38 ++++
packages/core/src/types.ts | 2 +
packages/core/src/types/task/task-core.ts | 16 +-
packages/core/src/types/task/task-log.ts | 2 +
.../app/components/WorkspaceWorktreesSummary.tsx | 15 +-
.../settings/sections/WorktreesSection.tsx | 3 +-
.../engine/src/__tests__/workspace-e2e.test.ts | 198 ++++++++++++++++-----
.../__tests__/workspace-integration-target.test.ts | 75 ++++++++
.../src/__tests__/workspace-merger-lease.test.ts | 42 ++++-
packages/engine/src/index.ts | 6 +
packages/engine/src/merge/merger-ai.ts | 152 +++++++++++-----
packages/engine/src/merge/workspace-fence-ref.ts | 17 +-
.../src/merge/workspace-integration-target.ts | 87 +++++++++
.../engine/src/merge/workspace-land-failure.ts | 6 +-
.../src/merge/workspace-merge-dispatch-lease.ts | 54 ++++++
packages/engine/src/project-engine.ts | 25 +++
28 files changed, 715 insertions(+), 118 deletions(-)
Fusion-Task-Id: FN-122
Fusion-Task-Lineage: 9364bba4-cebc-44e7-b2ae-60967fbc025c
Co-authored-by: Fusion <noreply@runfusion.ai >
2026-08-23 01:36:12 +00:00
Fusion Agent
10c399d01e
FN-120: fix workspace review evidence and landing recovery
...
Harden workspace review evidence and automatic landing recovery across workflow execution and merge paths.
- Preserve per-repository review evidence and reroute recoverable workspace review failures.
- Improve workflow lifecycle validation, continuation handling, and automatic recovery for workspace landing.
- Add regression coverage and document the updated workspace behavior.
Files changed:
.changeset/fn-120-workspace-review-landing.md | 7 ++
docs/architecture.md | 4 +
...e-empty-merge-boundary-finalization-livelock.md | 4 +
docs/testing.md | 4 +
docs/workflow-steps.md | 4 +
docs/workspaces.md | 6 +
.../__tests__/builtin-coding-workflow-ir.test.ts | 11 +-
...workspace-worktrees-concurrent-merge.pg.test.ts | 20 +++
packages/core/src/db/legacy-adoption.ts | 4 +
packages/core/src/store.ts | 5 +-
.../task-store/async/async-workflow-workitems.ts | 21 ++++
packages/core/src/task-store/task-mutation-ops.ts | 20 ++-
.../src/task-store/workflow-workitems-ops-2.ts | 6 +-
.../workflows/builtin-coding-ideas-workflow-ir.ts | 9 +-
.../src/workflows/builtin-coding-workflow-ir.ts | 20 ++-
.../builtin-stepwise-coding-workflow-ir.ts | 21 +++-
...tin-stepwise-final-review-coding-workflow-ir.ts | 13 +-
.../src/workflows/workflow-lifecycle-validation.ts | 28 ++++-
.../__tests__/builtin-workflows-lifecycle.test.ts | 4 +
.../engine/src/__tests__/project-engine.test.ts | 79 ++++++++++++
.../graph-node-missing-worktree-recovery.test.ts | 32 ++++-
.../src/__tests__/reviewer-workspace.test.ts | 2 +
.../src/__tests__/task-pipeline-smoke.test.ts | 10 +-
.../src/__tests__/workflow-task-runtime.test.ts | 10 +-
.../engine/src/__tests__/workspace-e2e.test.ts | 29 +++++
.../engine/src/__tests__/workspace-merger.test.ts | 4 +-
.../__tests__/workspace-review-evidence.test.ts | 58 +++++++++
packages/engine/src/execution/reviewer.ts | 2 +
.../create-authoritative-workflow-seams.ts | 59 +++++----
.../engine/src/executor/execute-workflow-graph.ts | 29 ++++-
packages/engine/src/executor/graph-failure-pure.ts | 6 +
.../engine/src/executor/handle-graph-failure.ts | 26 ++++
...-unusable-worktree-graph-failure-to-recovery.ts | 22 +++-
.../engine/src/executor/run-graph-custom-node.ts | 4 +-
.../src/executor/workspace-review-per-repo.ts | 55 +++++----
packages/engine/src/merge/merger-ai.ts | 137 ++++++++++-----------
.../engine/src/merge/workspace-review-reroute.ts | 52 ++++++++
packages/engine/src/project-engine.ts | 47 +++++++
.../self-healing/auto-recover-worktree-session.ts | 2 +-
.../src/workflows/workflow-graph-executor.ts | 28 ++++-
.../engine/src/workflows/workflow-merge-nodes.ts | 6 +-
.../src/worktree/workspace-review-evidence.ts | 110 +++++++++++++++++
.../engine/src/worktree/worktree-acquisition.ts | 24 +++-
43 files changed, 874 insertions(+), 170 deletions(-)
Fusion-Task-Id: FN-120
Fusion-Task-Lineage: 61c36613-89bd-44ca-8676-de77662bf53e
Co-authored-by: Fusion <noreply@runfusion.ai >
2026-08-23 01:36:12 +00:00
Fusion Agent
3717fc5af1
FN-107: block single-repository worktree acquisition
...
Prevent single-repository worktree acquisition from proceeding without explicit multi-repository workspace context.
- Require workspace-aware acquisition for single-repository tasks.
- Propagate acquisition origin and workspace configuration through executor, merger, and recovery paths.
- Add regression coverage, documentation, and a release changeset for the blocked behavior.
Files changed:
.changeset/fn-107-single-repo-worktree.md | 7 ++
docs/architecture.md | 4 +
docs/testing.md | 4 +
packages/core/src/branch/branch-assignment.ts | 12 +++
packages/core/src/index.gate.ts | 1 +
packages/core/src/index.ts | 1 +
packages/core/src/task-store/task-creation.ts | 4 +-
packages/core/src/task-store/task-update.ts | 4 +-
.../src/routes/register-planning-subtask-routes.ts | 1 +
.../engine/src/__tests__/executor-test-helpers.ts | 12 +++
.../engine/src/__tests__/executor-worktree.test.ts | 44 ++++++---
.../src/__tests__/node-worktree-isolation.test.ts | 7 +-
.../task-branch-write-origin-census.test.ts | 49 ++++++++++
.../worktree-acquisition-workspace.test.ts | 6 +-
.../src/__tests__/worktree-acquisition.test.ts | 103 ++++++++++++++++++---
.../engine/src/executor/handle-graph-failure.ts | 16 +++
.../src/executor/workspace-config-resolver.ts | 1 +
.../executor/worktree-branch-conflict-handle.ts | 1 +
packages/engine/src/merger.ts | 3 +-
packages/engine/src/self-healing.ts | 6 +
.../self-healing/auto-recover-worktree-session.ts | 10 +-
.../src/workflows/workflow-graph-executor.ts | 7 +-
.../engine/src/worktree/worktree-acquisition.ts | 73 +++++++++++++-
23 files changed, 334 insertions(+), 42 deletions(-)
Fusion-Task-Id: FN-107
Fusion-Task-Lineage: 80df9dae-59a0-416e-8a02-6ab2dba9bb00
Co-authored-by: Fusion <noreply@runfusion.ai >
2026-08-21 14:41:37 +00:00
Fusion Agent
bbca7a1ffc
FN-094: add mono- and multi-repository lifecycle parity
...
Extend workspace lifecycle behavior so mono-repository and multi-repository tasks share the same durable scope, workflow, review, and merge semantics.
- Add repository-scope persistence, migrations, serialization, and task mutation support.
- Align dashboard task creation, detail, and workspace worktree views with repository-aware lifecycle state.
- Extend executor, reviewer, merger, triage, and self-healing paths with parity coverage and tests.
- Document the lifecycle contract and publish the operator-facing changeset.
Files changed:
.changeset/fn-094-multi-repository-lifecycle.md | 7 +
docs/agents.md | 8 +
docs/architecture.md | 6 +
docs/dashboard-guide.md | 4 +
docs/multi-project.md | 6 +
docs/settings-reference.md | 2 +-
docs/testing.md | 12 ++
docs/workspaces.md | 6 +
...workspace-worktrees-concurrent-merge.pg.test.ts | 19 +++
packages/core/src/index.ts | 2 +-
.../core/src/postgres/migrations/0000_initial.sql | 1 +
.../0064_fn_094_task_repository_scope.sql | 2 +
packages/core/src/postgres/schema-applier.ts | 13 +-
packages/core/src/postgres/schema/project.ts | 2 +
packages/core/src/store.ts | 21 ++-
.../core/src/task-store/branch-and-pr-entities.ts | 2 +-
packages/core/src/task-store/persistence.ts | 4 +-
packages/core/src/task-store/serialization.ts | 2 +
packages/core/src/task-store/task-creation.ts | 31 ++++
packages/core/src/task-store/task-mutation-ops.ts | 131 +++++++++++++++-
packages/core/src/task-store/task-row-mappers.ts | 2 +-
packages/core/src/task-store/task-update.ts | 55 +++++--
packages/core/src/tasks/repository-scope.ts | 29 ++++
packages/core/src/types.ts | 4 +
packages/core/src/types/task/task-core.ts | 35 ++++-
packages/core/src/types/workflow/workflow-steps.ts | 21 +++
packages/dashboard/app/api/tasks/tasks.ts | 14 ++
packages/dashboard/app/components/NewTaskModal.tsx | 16 +-
.../dashboard/app/components/TaskDetailModal.css | 27 ++++
.../dashboard/app/components/TaskDetailModal.tsx | 15 +-
.../app/components/WorkspaceWorktreesSummary.tsx | 68 ++++++++-
.../app/components/__tests__/NewTaskModal.test.tsx | 1 +
.../__tests__/WorkspaceWorktreesSummary.test.tsx | 27 +++-
.../src/routes/register-task-workflow-routes.ts | 48 ++++++
.../__tests__/executor-workspace-taskdone.test.ts | 20 +++
.../src/__tests__/reviewer-workspace.test.ts | 170 ++++++++++++++++++++-
.../src/__tests__/self-healing-workspace.test.ts | 4 +
.../workflow-graph-optional-group.test.ts | 32 ++++
.../workflow-graph-optional-step-fix.test.ts | 58 +++++++
.../engine/src/__tests__/workspace-e2e.test.ts | 91 ++++++++++-
.../__tests__/workspace-lifecycle-parity.test.ts | 61 ++++++++
.../src/__tests__/workspace-merger-lease.test.ts | 25 +++
.../__tests__/workspace-merger-scope-gates.test.ts | 58 +++++++
.../engine/src/__tests__/workspace-merger.test.ts | 59 ++++++-
packages/engine/src/agent-tools.ts | 92 ++++++++++-
packages/engine/src/execution/reviewer.ts | 10 +-
.../create-authoritative-workflow-seams.ts | 95 ++++++++++--
.../engine/src/executor/execute-workflow-graph.ts | 37 ++++-
.../request-pre-merge-optional-step-fix.ts | 70 +++++++++
.../engine/src/executor/run-graph-custom-node.ts | 124 ++++++++++-----
.../engine/src/executor/workflow-step-verdict.ts | 6 +-
.../src/executor/workspace-review-per-repo.ts | 118 +++++++++++++-
.../src/executor/worktree-task-done-scope-leak.ts | 109 ++++++++++++-
packages/engine/src/merge/merger-ai.ts | 88 ++++++++++-
packages/engine/src/self-healing.ts | 19 ++-
packages/engine/src/triage.ts | 9 ++
.../src/workflows/workflow-graph-executor.ts | 73 +++++++--
.../engine/src/workflows/workflow-node-handlers.ts | 12 +-
58 files changed, 1962 insertions(+), 121 deletions(-)
Fusion-Task-Id: FN-094
Fusion-Task-Lineage: 483f958f-cc67-474e-9383-26856c329543
Co-authored-by: Fusion <noreply@runfusion.ai >
2026-08-21 04:35:58 +00:00
gsxdsm
944ca642ee
FN-9154: add fail-closed PostgreSQL hygiene reporting
...
Add an offline PostgreSQL cluster-hygiene report that records trustworthy campaign admission evidence.
- Parse provenance envelopes and fail closed on missing, malformed, cross-cluster, or stale-marker evidence.
- Classify campaign databases and owner liveness without authorizing destructive cleanup.
- Document the capture workflow and cover measured, malformed, liveness, marker, and unrelated-name cases.
Files changed:
docs/testing.md | 27 +++
.../pg-cluster-hygiene-report/count-mismatch.txt | 9 +
.../fixtures/pg-cluster-hygiene-report/empty.txt | 0
.../pg-cluster-hygiene-report/liveness-absent.txt | 7 +
.../pg-cluster-hygiene-report/liveness-alive.txt | 8 +
.../pg-cluster-hygiene-report/liveness-dead.txt | 8 +
.../pg-cluster-hygiene-report/malformed.txt | 11 ++
.../pg-cluster-hygiene-report/markers-stale.txt | 8 +
.../fixtures/pg-cluster-hygiene-report/mixed.txt | 17 ++
.../pg-cluster-hygiene-report/no-banner.txt | 1 +
.../pg-cluster-hygiene-report/post-state.txt | 7 +
.../pg-cluster-hygiene-report/pre-state.txt | 8 +
.../pg-cluster-hygiene-report/truncated.txt | 7 +
.../__tests__/pg-cluster-hygiene-report.test.mjs | 171 +++++++++++++++++
scripts/pg-cluster-hygiene-report.mjs | 212 +++++++++++++++++++++
15 files changed, 501 insertions(+)
Fusion-Task-Id: FN-9154
Fusion-Task-Lineage: fca5a025-9460-4850-8ac9-891d563b3d04
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-19 18:44:29 -07:00
gsxdsm
fb77eef7a9
FN-9150: Capture abandoned PostgreSQL timeout boundaries
...
Capture elapsed and join evidence for PostgreSQL test boundaries that Vitest abandons before settlement.
- emit unique boundary join keys, progress ladders, terminal records, and payload-free watchdog breaches
- classify ladder-only, breach, and unobservable lifecycle evidence in the loaded-failure census
- cover abandoned and superseded body windows and document the corrective campaign findings
Files changed:
...res-loaded-lane-unrelated-failure-population.md | 33 ++++++-
docs/testing.md | 14 ++-
.../__test-utils__/pg-timeout-boundary-observer.ts | 108 ++++++++++++++++++---
.../__tests__/pg-timeout-boundary-observer.test.ts | 98 ++++++++++++++++++-
.../__tests__/pg-loaded-failure-census.test.mjs | 30 ++++++
scripts/pg-loaded-failure-census.mjs | 71 ++++++++++++--
6 files changed, 327 insertions(+), 27 deletions(-)
Fusion-Task-Id: FN-9150
Fusion-Task-Lineage: fc2e9f99-7739-4d86-99f4-713a78f53e57
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-19 10:10:39 -07:00
gsxdsm
a1977e052b
FN-9149: Add PostgreSQL timeout-boundary diagnostics
...
Instrument the opt-in PostgreSQL test harness to attribute loaded-lane timeout failures without changing default behavior.
- Add bounded setup, body, and teardown watchdog probes with host, cluster, and template evidence.
- Wire observer records into the harness and loaded-failure census with explicit suppression and attribution handling.
- Cover observer inertness, boundary behavior, and census joins while documenting the 27-worker campaign findings.
Files changed:
...res-loaded-lane-unrelated-failure-population.md | 31 +-
docs/testing.md | 27 ++
.../core/src/__test-utils__/pg-test-harness.ts | 113 +++++-
.../__test-utils__/pg-timeout-boundary-observer.ts | 451 +++++++++++++++++++++
.../pg-test-harness-observer-inertness.test.ts | 31 ++
.../__tests__/pg-timeout-boundary-observer.test.ts | 177 ++++++++
.../__tests__/pg-loaded-failure-census.test.mjs | 31 ++
scripts/pg-loaded-failure-census.mjs | 101 ++++-
8 files changed, 934 insertions(+), 28 deletions(-)
Fusion-Task-Id: FN-9149
Fusion-Task-Lineage: 4df4ee28-5369-41ae-bb0c-e7e9ae78d873
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-19 08:41:14 -07:00
gsxdsm
161edaa694
FN-9148: add PostgreSQL loaded-failure census
...
Add retained-log census tooling and evidence for PostgreSQL loaded-lane timeout investigations.
- Parse complete Vitest logs and optional diagnostics without opening PostgreSQL or running tests.
- Classify failing files, lifecycle positions, failure shapes, backend headroom, waits, and watchdog data.
- Cover high-failure, healthy, malformed-diagnostics, and truncated-log cases with fixtures.
- Document the reproduced population, unsupported remedies, and successor measurement requirements.
Files changed:
...res-loaded-lane-unrelated-failure-population.md | 80 ++++++++++
docs/testing.md | 8 +
.../fixtures/pg-loaded-failure-census/high-run.txt | 77 +++++++++
.../fixtures/pg-loaded-failure-census/high.jsonl | 4 +
.../fixtures/pg-loaded-failure-census/low-run.txt | 4 +
.../pg-loaded-failure-census/truncated-run.txt | 2 +
.../__tests__/pg-loaded-failure-census.test.mjs | 65 ++++++++
scripts/pg-loaded-failure-census.mjs | 172 +++++++++++++++++++++
8 files changed, 412 insertions(+)
Fusion-Task-Id: FN-9148
Fusion-Task-Lineage: c632a9d0-b823-4416-ab46-0d834e850007
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-19 06:24:01 -07:00
gsxdsm
687990c0a6
FN-9146: document PostgreSQL flake campaign evidence
...
Document the bounded investigation results for active core PostgreSQL suite-only flakes.
- Record per-lane outcomes and sampled cluster-capacity evidence for entries 1, 2, and 7.
- Clarify reproduced, unreproduced, and unattributed statuses without changing quarantine policy.
- Ratchet campaign completeness, ownership, and documentation-link coverage in the register tests.
Files changed:
.../suite-only-flakes-observed-register.md | 71 +++++++++++++++++-
docs/testing.md | 4 +
scripts/__tests__/observed-flake-register.test.mjs | 85 ++++++++++++++++++++--
3 files changed, 148 insertions(+), 12 deletions(-)
Fusion-Task-Id: FN-9146
Fusion-Task-Lineage: d5de3fac-48d6-4ee7-ae09-173007d234e5
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-19 05:38:54 -07:00
gsxdsm
91daa37162
FN-9147: synchronize script test baselines
...
Align script-test expectations and documentation with the current validator and dashboard test inventory.
- Add the pre-JSON anchor validator to the verify-fast baseline.
- Ratchet documented pretest validators against canonical order and membership.
- Remove deleted dashboard tests from timing data.
Files changed:
docs/testing.md | 22 +++++++++-
scripts/__tests__/verify-fast.test.mjs | 76 +++++++++++++++++++++++++++++++++-
scripts/test-timings.json | 2 -
3 files changed, 95 insertions(+), 5 deletions(-)
Fusion-Task-Id: FN-9147
Fusion-Task-Lineage: fdb33c60-e019-402b-b91b-ba0f0f971350
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-19 05:23:41 -07:00
gsxdsm
b18c9d7594
FN-9144: Preserve test velocity measurement verdicts
...
Make test-velocity investigation notes durable across report regeneration and concurrent history updates.
- add idempotent note targeting for historical measurement entries
- serialize history mutations with bounded stale-lock recovery
- render all annotated cycles and record the W33 gate variance verdict
- document the generated-report workflow and cover retention/concurrency behavior
Files changed:
.../merge-gate-w33-walltime-regression.md | 15 ++
docs/test-velocity-baseline.md | 12 ++
docs/testing.md | 2 +
scripts/__tests__/test-velocity-baseline.test.mjs | 153 +++++++++++++-
scripts/test-velocity-baseline.mjs | 221 +++++++++++++++------
scripts/test-velocity-history.json | 6 +
6 files changed, 349 insertions(+), 60 deletions(-)
Fusion-Task-Id: FN-9144
Fusion-Task-Lineage: e3869e40-2cbc-4e5b-844e-9091da96b652
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-18 08:08:24 -07:00
gsxdsm
2b99b365de
FN-9141: rescue plugin-runner tests and enforce quarantine lockstep
...
Rescue the plugin-runner suite before deletion while making quarantine records mechanically consistent.
- preserve logger assertions across worker-reused mock cleanup with a stable hoisted logger
- remove the rescued suite from the quarantine ledger and Vitest exclusion
- enforce ledger-to-exclude lockstep and cover missing or dangling quarantine entries
- document the reproduction evidence, rescue disposition, and strict checker behavior
Files changed:
.../suite-only-flakes-observed-register.md | 14 +-
docs/testing.md | 17 +-
.../engine/src/__tests__/plugin-runner.test.ts | 37 ++--
packages/engine/vitest.config.ts | 14 +-
scripts/__tests__/check-quarantine-ledger.test.mjs | 217 +++++++++---------
scripts/__tests__/ci-test-shard-timings.test.mjs | 5 +-
scripts/check-quarantine-ledger.mjs | 245 +++++++++++++--------
scripts/lib/test-quarantine.json | 10 +-
8 files changed, 314 insertions(+), 245 deletions(-)
Fusion-Task-Id: FN-9141
Fusion-Task-Lineage: 5b0549bf-3cc6-495e-bf99-a30a2dffb029
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-17 05:25:17 -07:00
gsxdsm
6d7b4a3ac3
FN-9140: make Vitest timeout ownership surveys deterministic
...
Replace ambiguous setup-boundary observations with calibrated, repeatable timeout ownership evidence.
- record fixture lifecycle events in an append-only JSONL ledger with process-safe ordering
- classify four timeout-budget arms across repeated isolate-mode cells and fail closed on incomplete evidence
- expand connectionless unit coverage and document the terminal insufficient-data survey result
Files changed:
.../test-failures/postgres-ddl-admission-bound.md | 2 +
.../vitest-setup-boundary-timeout-ownership.md | 37 +++
docs/testing.md | 2 +-
scripts/__tests__/pg-setup-boundary-probe.test.mjs | 195 ++++++++----
scripts/pg-setup-boundary-probe.mjs | 341 ++++++++++++---------
5 files changed, 371 insertions(+), 206 deletions(-)
Fusion-Task-Id: FN-9140
Fusion-Task-Lineage: 9c6970b8-af80-400a-b2b2-49718d4fe87f
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-16 22:47:53 -07:00
gsxdsm
2c3a47368f
FN-9136: Characterize PostgreSQL fork database reuse
...
Characterize safe per-fork PostgreSQL database reuse while documenting why the production experiment remains reverted.
- add a bounded pool primitive with reset, verification, discard, and ownership fencing
- cover recycling, poison handling, capacity, and reclaim namespace behavior
- align PostgreSQL campaign documentation with the dead-fork leak rejection
Files changed:
.../test-failures/postgres-ddl-admission-bound.md | 4 +-
.../suite-only-flakes-observed-register.md | 4 +-
docs/testing.md | 4 +-
.../core/src/__test-utils__/pg-fork-db-pool.ts | 184 +++++++++++++++++++++
.../__tests__/pg-fork-db-pool-ownership.test.ts | 36 ++++
.../core/src/__tests__/pg-fork-db-pool.test.ts | 60 +++++++
6 files changed, 287 insertions(+), 5 deletions(-)
Fusion-Task-Id: FN-9136
Fusion-Task-Lineage: 9e14e0eb-d957-4207-977e-2d913e78750f
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-16 22:06:38 -07:00
gsxdsm
1a3e68de5d
FN-9139: add bounded PostgreSQL pre-admission measurement
...
Establish an inert PostgreSQL setup signal and repeatable evidence tooling without changing harness behavior.
- add explicit setup participation semantics and inertness coverage
- survey Vitest setup boundaries with isolated report-only fixtures
- bound interleaved campaigns by process group and campaign deadline
- reject missing backend samples and enable candidate diagnostics
- document the rejected boundary result and successor protocol
Files changed:
.../test-failures/postgres-ddl-admission-bound.md | 15 ++
docs/testing.md | 10 ++
packages/core/package.json | 2 +-
.../src/__test-utils__/pg-setup-participation.ts | 22 +++
.../src/__tests__/pg-setup-participation.test.ts | 21 +++
.../__tests__/vitest-setup-pg-inertness.test.ts | 10 ++
packages/core/vitest.pg.config.ts | 10 ++
.../__tests__/pg-preadmission-campaign.test.mjs | 63 +++++++
scripts/__tests__/pg-setup-boundary-probe.test.mjs | 92 ++++++++++
scripts/pg-preadmission-campaign.mjs | 194 +++++++++++++++++++++
scripts/pg-setup-boundary-probe.mjs | 182 +++++++++++++++++++
11 files changed, 620 insertions(+), 1 deletion(-)
Fusion-Task-Id: FN-9139
Fusion-Task-Lineage: 2cf8ccbf-37f9-4fdc-8e8f-326df823e1cd
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-16 21:09:58 -07:00
gsxdsm
8bb56a2185
FN-9134: add drift-resistant PostgreSQL DDL lane metric
...
Add a report-only acceptance metric and terminal evidence for PostgreSQL DDL structural experiments.
- require seven ordered control/candidate pairs with green Vitest summaries and zero leaked databases
- reject missing tests, failed summaries, nonzero exits, and unhandled runner errors
- document the no-improvement campaign result and retain the next candidate direction
- cover timing statistics, ordering, leak rejection, and runner-log validation
Files changed:
.../test-failures/postgres-ddl-admission-bound.md | 8 ++
.../suite-only-flakes-observed-register.md | 2 +-
docs/testing.md | 24 ++++
scripts/__tests__/pg-ddl-lane-metric.test.mjs | 62 +++++++++
scripts/pg-ddl-lane-metric.mjs | 139 +++++++++++++++++++++
5 files changed, 234 insertions(+), 1 deletion(-)
Fusion-Task-Id: FN-9134
Fusion-Task-Lineage: 3466ebf8-7125-475b-9574-6c4c92198bb3
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-16 20:17:12 -07:00
gsxdsm
ae507afc37
FN-9131: Add PostgreSQL harness budget characterization
...
Characterize cluster-shared PostgreSQL connection admission while keeping regressive harness wiring disabled.
- add advisory-lock slot budgeting, bootstrap gating, and local allocation accounting
- cover budget arithmetic, queueing, degradation, and PostgreSQL lock behavior
- document loaded-lane failures and the terminal-negative lifecycle boundary
- clarify that the active harness neither admits nor clamps against the experimental budget
Files changed:
.../test-failures/pg-harness-connection-budget.md | 21 +
.../suite-only-flakes-observed-register.md | 2 +
docs/testing.md | 6 +
.../__tests__/pg-connection-budget.test.ts | 146 ++++++
.../src/__test-utils__/pg-connection-budget.ts | 492 +++++++++++++++++++++
.../core/src/__test-utils__/pg-test-harness.ts | 8 +
.../postgres/pg-connection-budget.pg.test.ts | 36 ++
7 files changed, 711 insertions(+)
Fusion-Task-Id: FN-9131
Fusion-Task-Lineage: c83611ad-95f9-44ef-a0fd-1f182a26725d
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-16 19:29:05 -07:00
gsxdsm
c709ed06d9
FN-9135: retain plugin runner quarantine through deadline
...
Preserve the quarantined plugin-runner coverage while recording the inconclusive reproduction campaign.
- Record two loaded-suite runs at each of 2, 6, and 8 workers.
- Keep all 82 plugin-runner tests, the ledger entry, and the default-lane exclusion through 2026-08-30.
- Clarify that opt-in strict checks do not block normal PR lanes.
Files changed:
.../test-failures/suite-only-flakes-observed-register.md | 13 ++++++++++++-
docs/testing.md | 3 +++
2 files changed, 15 insertions(+), 1 deletion(-)
Fusion-Task-Id: FN-9135
Fusion-Task-Lineage: 239425e5-7393-4b8a-a114-0a14f0065847
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-16 17:38:53 -07:00
gsxdsm
1d7dd3e7b8
FN-9133: Use bounded PostgreSQL DDL for reliability fixtures
...
Reliability fixtures now manage PostgreSQL databases through owned, deadline-bounded maintenance connections.
- Replace psql child-process DDL with postgres.js maintenance clients and forced cleanup.
- Remove redundant pre-create drops and preserve idempotent teardown behavior.
- Add a live-connection cleanup contract test and document audit measurements and policy.
Files changed:
.../postgres-reliability-helper-ddl-audit.md | 48 +++++++++++
docs/testing.md | 2 +-
packages/engine/package.json | 5 +-
.../_helpers-pg-ddl-contract.pg.test.ts | 66 +++++++++++++++
.../__tests__/reliability-interactions/_helpers.ts | 93 +++++++++++++---------
pnpm-lock.yaml | 3 +
6 files changed, 176 insertions(+), 41 deletions(-)
Fusion-Task-Id: FN-9133
Fusion-Task-Lineage: 5a7f511d-abb4-4468-a97a-04331f60d245
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-16 16:11:21 -07:00
gsxdsm
a453245715
FN-9130: Add guarded PostgreSQL DDL admission infrastructure
...
Document and test PostgreSQL DDL admission experiments while preserving the direct harness after measured regressions.
- add advisory-slot admission with local slot accounting, degradation telemetry, and fail-closed reentrancy
- cover cross-fork bounds, session loss, timeouts, spawned nested work, and cleanup invariants
- make concurrent lifecycle coverage settle all creates and clean up every successful database in finally
- record loaded-core measurements and retain the existing PostgreSQL worker cap
Files changed:
.../test-failures/postgres-ddl-admission-bound.md | 34 ++
.../suite-only-flakes-observed-register.md | 2 +-
docs/testing.md | 8 +
.../core/src/__test-utils__/pg-ddl-admission.ts | 351 +++++++++++++++++++++
.../core/src/__test-utils__/pg-test-harness.ts | 44 ++-
.../core/src/__tests__/pg-ddl-admission.test.ts | 294 +++++++++++++++++
.../postgres/pg-harness-ddl-concurrency.pg.test.ts | 56 ++++
packages/core/vitest.pg.config.ts | 5 +
8 files changed, 778 insertions(+), 16 deletions(-)
Fusion-Task-Id: FN-9130
Fusion-Task-Lineage: e28777cd-cd7c-4598-9db6-c4622cb9fa33
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-16 15:57:36 -07:00
gsxdsm
1c9e4dfccd
FN-9127: instrument PostgreSQL teardown diagnostics
...
Add opt-in evidence capture for loaded PostgreSQL teardown stalls without changing teardown behavior.
- Add bounded phase and hook watchdogs with capped pg_stat_activity snapshots.
- Instrument the shared PostgreSQL test harness and cover diagnostic behavior with focused tests.
- Document the diagnostic workflow, measured flake campaign, and corrected mission-store gate scope.
Files changed:
.../suite-only-flakes-observed-register.md | 12 ++
docs/testing.md | 19 ++
.../src/__test-utils__/pg-teardown-diagnostics.ts | 237 +++++++++++++++++++++
.../core/src/__test-utils__/pg-test-harness.ts | 120 ++++++++---
.../src/__tests__/pg-teardown-diagnostics.test.ts | 162 ++++++++++++++
.../__tests__/postgres/mission-store.pg.test.ts | 8 +-
6 files changed, 526 insertions(+), 32 deletions(-)
Fusion-Task-Id: FN-9127
Fusion-Task-Lineage: 2488b7c0-f12f-4560-9a99-41aaca9d1526
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-16 12:59:23 -07:00
gsxdsm
5e5422de6e
FN-9128: isolate schema-applier PostgreSQL fixtures
...
Use shared PostgreSQL harness fixtures to reduce repeated schema DDL while preserving migration coverage.
- replace private database lifecycle helpers with shared empty and baselined fixtures
- add regression coverage for fixture-state selection and idempotent schema application
- document PostgreSQL bootstrap guidance and the resolved flake investigation
Files changed:
.../suite-only-flakes-observed-register.md | 13 +-
docs/testing.md | 3 +
.../postgres/schema-applier-isolation.test.ts | 54 +++++++
.../src/__tests__/postgres/schema-applier.test.ts | 160 +++++++--------------
4 files changed, 119 insertions(+), 111 deletions(-)
Fusion-Task-Id: FN-9128
Fusion-Task-Lineage: 036c9011-8973-4211-a77a-42bf0eb9fa5e
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-16 12:27:35 -07:00
gsxdsm
beb8ae67db
FN-9125: document flake findings and quarantine plugin runner
...
Classify the suite-only failures by actual PostgreSQL dependency and preserve unresolved evidence for follow-up.
- Record non-reproduction results and assign PostgreSQL investigations to focused follow-up tasks.
- Quarantine the independent in-memory plugin runner test under the deletion ratchet.
- Document evidence requirements for future PostgreSQL flake diagnosis.
Files changed:
.../suite-only-flakes-observed-register.md | 32 ++++++++++++++++++++--
docs/testing.md | 4 +++
packages/engine/vitest.config.ts | 10 +++++++
scripts/lib/test-quarantine.json | 8 +++++-
4 files changed, 51 insertions(+), 3 deletions(-)
Fusion-Task-Id: FN-9125
Fusion-Task-Lineage: 1dc80163-a0dc-4241-bab1-75a2cafb9abe
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-16 11:46:39 -07:00
gsxdsm
fe910fcce7
FN-9122: align merge gate timing and policy baselines
...
Re-establish a trustworthy W33 merge-gate timing baseline without weakening blocking coverage.
- Document the controlled W33 re-measurement and future regression protocol.
- Align static-validator test ledgers with all 15 canonical gate checks.
- Correct gate composition, engine-core inventory, and bundle metrics in testing guidance.
Files changed:
.../merge-gate-w33-walltime-regression.md | 82 ++++++++++++++++++++++
docs/testing.md | 12 ++--
.../__tests__/engine-vitest-gate-policy.test.mjs | 12 ++++
scripts/__tests__/run-static-gate-checks.test.mjs | 2 +
scripts/__tests__/verify-fast.test.mjs | 8 +++
5 files changed, 111 insertions(+), 5 deletions(-)
Fusion-Task-Id: FN-9122
Fusion-Task-Lineage: 47ace0d7-902d-4ea5-848d-3d2386867c42
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-16 03:49:28 -07:00
gsxdsm
920bf8b022
FN-9105: document boot-smoke anomaly remeasurement
...
Confirm the W33 spike as cold-start variance and preserve a repeatable diagnosis protocol.
- Record five sequential phase-timed samples and the 20.5-second median threshold.
- Link the controlled remeasurement protocol from the testing guide.
- Explain the timing snapshot handoff and why incomplete CI artifacts were not published.
- Preserve the no-appeasement requirement beside boot-smoke phase timing.
Files changed:
.../boot-smoke-w33-walltime-anomaly.md | 100 +++++++++++++++++++++
docs/testing.md | 2 +-
scripts/boot-smoke.mjs | 7 ++
3 files changed, 108 insertions(+), 1 deletion(-)
Fusion-Task-Id: FN-9105
Fusion-Task-Lineage: 6956b037-db0f-4560-bb04-136080a975b5
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-15 16:59:37 -07:00
gsxdsm
c0e568bf78
FN-9100: fix staged Cursor core imports in CLI builds
...
Ensure staged plugin core runtime imports resolve reliably in packaged CLI builds.
- Export Cursor runtime core helpers from the CLI runtime shim.
- Guard staged plugin imports against undeclared or unavailable core exports.
- Add Cursor bundle coverage and document the focused packaging test.
- Add a patch changeset for the published CLI package.
Files changed:
.changeset/fn-9100-staged-plugin-core-shim.md | 7 +
docs/testing.md | 1 +
.../__tests__/plugin-sdk-core-runtime-shim.test.ts | 40 +++-
.../__tests__/staged-plugin-core-imports.test.ts | 221 +++++++++++++++++++++
packages/cli/src/plugin-sdk-core-runtime-shim.mjs | 10 +-
5 files changed, 272 insertions(+), 7 deletions(-)
Fusion-Task-Id: FN-9100
Fusion-Task-Lineage: 4c25ef74-065d-4e5a-86f2-e6f9a22500b3
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-15 12:04:30 -07:00
gsxdsm
1d3f6c198c
FN-9096: route CLI models through installed runtimes
...
Route every CLI-provider selection through an explicit installed-runtime policy.
- Centralize CLI provider classifications, runtime hints, fallback behavior, and actionable missing-runtime errors.
- Validate routing coverage statically and add conformance and integration tests for CLI runtime paths.
- Document runtime routing behavior and add a published CLI changeset.
Files changed: .changeset/fn-9096-cli-runtime-routing.md | 7 +
docs/settings-reference.md | 29 +++
docs/testing.md | 6 +-
package.json | 6 +-
.../src/__tests__/cli-provider-routing.test.ts | 74 ++++++++
.../__tests__/cli-runtime-routing-check.test.ts | 25 +++
.../cli-runtime-routing-conformance.test.ts | 210 +++++++++++++++++++++
.../__tests__/hermes-runtime-integration.test.ts | 28 +++
.../engine/src/agents/agent-session-helpers.ts | 166 ++++------------
packages/engine/src/agents/cli-provider-routing.ts | 174 +++++++++++++++++
scripts/check-cli-runtime-routing.mjs | 26 +++
scripts/lib/cli-runtime-routing-check.mjs | 84 +++++++++
12 files changed, 701 insertions(+), 134 deletions(-)
Fusion-Task-Id: FN-9096
Fusion-Task-Lineage: f9f6a434-b28d-4ebb-816a-53ca75efc2c4
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-15 07:19:29 -07:00
gsxdsm
d39c0ae9eb
FN-9034: use package-local Vitest for scoped runs
...
Resolve Quality file-scoped tests against the execution worktree's package metadata.
- Run scoped tests through each package's local Vitest binary
- Omit the removed basic reporter and preserve safe path handling
- Cover worktree resolution, package grouping, and reporter behavior
Files changed:
.changeset/fn-9034-file-scoped-vitest.md | 7 +
docs/testing.md | 4 +
.../src/__tests__/command-presets.test.ts | 222 +++++++++++++++++++--
.../src/routes/create-routes.ts | 5 +
.../src/runner/command-presets.ts | 115 ++++++++++-
5 files changed, 336 insertions(+), 17 deletions(-)
Fusion-Task-Id: FN-9034
Fusion-Task-Lineage: f78159b6-2f1e-47bb-a367-e8e4324143e5
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-13 15:55:37 -07:00
gsxdsm
6d2c1bf0c9
FN-9020: parallelize boot smoke preflights
...
Reduce durable boot-smoke latency while preserving its CLI, initialization, health, and shutdown assertions.
- Run independent help and init preflights concurrently with bounded async child processes.
- Add phase timing diagnostics and deterministic init failure classification.
- Cover phase scheduling and isolated environment behavior, and document the diagnostics flag.
Files changed:
docs/testing.md | 4 +-
scripts/__tests__/boot-smoke.test.mjs | 65 ++++++++++-
scripts/boot-smoke.mjs | 201 +++++++++++++++++++++++++---------
3 files changed, 214 insertions(+), 56 deletions(-)
Fusion-Task-Id: FN-9020
Fusion-Task-Lineage: 1f5d3d7f-dc0c-4d16-a4ab-fd5e3952dbdf
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-12 19:45:40 -07:00
gsxdsm
7b4b2b547b
FN-8996: guard engine test module specifiers
...
Ensure engine test dependencies remain valid after module moves.
- Expand the engine test specifier guard to validate Vitest APIs and imports.
- Repair moved worktree, branch-conflict, and lifecycle module references in tests.
- Preserve worktree recovery coverage and document the harness contract.
Files changed:
docs/testing.md | 21 ++-
.../worktrunk-self-healing.test.ts | 14 +-
.../__tests__/vi-mock-specifiers-resolve.test.ts | 149 ++++++++++++++++-----
.../__tests__/workflow-graph-step-rerun.test.ts | 14 +-
...-sync-role-conversion-inert-live-e2e.pg.test.ts | 2 +-
.../__tests__/worktree-acquisition-pinned.test.ts | 52 ++++++-
.../__tests__/worktree-admin-entry-prune.test.ts | 12 +-
7 files changed, 212 insertions(+), 52 deletions(-)
Fusion-Task-Id: FN-8996
Fusion-Task-Lineage: dd93b4a8-cf45-42e2-9823-e5c2e6f84f82
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-11 18:46:48 -07:00
gsxdsm
f2c729bf77
FN-8994: add workspace package graph validation
...
Prevent cold workspace installs from failing on missing or unglobbed local packages.
- Validate workspace-protocol dependencies and overrides against glob-covered packages.
- Add static-gate coverage and regression tests for missing plugin packages.
- Document the workspace package graph check.
Files changed:
docs/testing.md | 4 +-
package.json | 9 +-
scripts/__tests__/check-workspace-package-graph.test.mjs | 103 +++++++++++++++
scripts/check-workspace-package-graph.mjs | 138 +++++++++++++++++++++
4 files changed, 249 insertions(+), 5 deletions(-)
Fusion-Task-Id: FN-8994
Fusion-Task-Lineage: 17dbe062-79aa-4417-ae38-43df881e9fa4
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-11 14:56:14 -07:00
gsxdsm
f1fe399184
FN-8991: add runtime skill-loader drift gate
...
Enforce the intentional Claude-to-Grok runtime skill-loader clone relationship across verification lanes.
- Add an exact rename-diff validator with fixture and live-loader coverage.
- Run the validator in pretest, fast verification, and static merge-gate checks.
- Document the loader duplication contract and expanded static-validator inventory.
Files changed:
AGENTS.md | 2 +
docs/testing.md | 4 +-
package.json | 7 +-
.../check-runtime-skill-loader-drift.test.mjs | 113 +++++++++++++++++++++
scripts/__tests__/run-static-gate-checks.test.mjs | 1 +
scripts/__tests__/verify-fast.test.mjs | 1 +
scripts/check-runtime-skill-loader-drift.mjs | 113 +++++++++++++++++++++
7 files changed, 236 insertions(+), 5 deletions(-)
Fusion-Task-Id: FN-8991
Fusion-Task-Lineage: a3b67752-0043-4336-9a2a-ff391672b31f
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-11 05:23:02 -07:00
gsxdsm
25e292d0e6
FN-8954: preserve CLI liveness during startup
...
Ensure CLI startup operations settle before process exit on supported Node runtimes.
- Keep awaited QMD probes and ephemeral port selection ref'd until completion.
- Add CLI process regressions for init persistence and exit code 13.
- Declare the Node 22.4 runtime floor and extend boot smoke coverage.
Files changed:
.changeset/fn-8954-cli-exit-13.md | 7 ++
docs/testing.md | 4 +-
package.json | 3 +
packages/cli/agent-browser.mjs | 6 ++
packages/cli/bin.mjs | 7 ++
packages/cli/package.json | 3 +
packages/cli/src/__tests__/ci-workflow.test.ts | 9 +++
packages/cli/src/__tests__/cli-exit-code.test.ts | 82 ++++++++++++++++++++++
packages/cli/src/__tests__/package-config.test.ts | 12 ++++
packages/cli/src/bin.ts | 6 ++
.../__tests__/postgres/embedded-free-port.test.ts | 37 ++++++++++
packages/core/src/memory/memory-backend.ts | 17 +++--
packages/core/src/postgres/embedded-lifecycle.ts | 16 +++--
scripts/boot-smoke.mjs | 62 +++++++++++-----
14 files changed, 244 insertions(+), 27 deletions(-)
Fusion-Task-Id: FN-8954
Fusion-Task-Lineage: 05303d07-2662-48d5-a442-6d43fa0a4493
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-11 04:20:33 -07:00
gsxdsm
79206c3f31
FN-8977: unify CLI Vitest mock resolution
...
Route CLI test mocks through dashboard and engine runtime imports.
- Anchor pi-coding-agent resolution to the CLI package instance
- Preserve real session exports while overriding runtime dependencies
- Add a regression test and document cross-package mock scoping
Files changed:
docs/testing.md | 6 ++
.../__tests__/extension-permission-gates.test.ts | 10 ++-
.../vitest-cross-package-mock-scope.test.ts | 75 ++++++++++++++++++++++
packages/cli/vitest.config.ts | 12 ++++
4 files changed, 101 insertions(+), 2 deletions(-)
Fusion-Task-Id: FN-8977
Fusion-Task-Lineage: a652cdf4-463e-4603-8d71-87db91d0b846
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-10 22:12:15 -07:00
gsxdsm
e0af6ddd93
FN-8952: derive Quick Add Save smoke fixtures from locales
...
Keep 300px Quick Add Save browser smoke coverage synchronized with shipped translations.
- Derive board and list Save fixtures from supported locale catalogs.
- Escape fixture labels and reject missing Save translations.
- Add fast fixture parity, derivation, and escaping coverage.
Files changed:
docs/testing.md | 3 +
.../__tests__/browser-layout-smoke-fixture.test.ts | 75 +++++++++++++-
.../dashboard/scripts/browser-layout-smoke.mjs | 110 ++++++++++++++-------
3 files changed, 147 insertions(+), 41 deletions(-)
Fusion-Task-Id: FN-8952
Fusion-Task-Lineage: 31daec25-5d9a-43bb-9ccf-667702006e76
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-10 12:38:00 -07:00
gsxdsm
878db6dca7
FN-8951: repair script-test governance drift
...
Keep test-shard timing governance aligned with the current workspace and workflow seams.
- Add a safe timing-snapshot pruning mode with coverage.
- Align Todo plugin Vitest isolation and Docker dependency manifests.
- Refresh workflow reliability evidence and remove deleted test timings.
Files changed:
Dockerfile | 7 ++-
docs/testing.md | 9 ++-
plugins/fusion-plugin-todos/vitest.config.ts | 26 ++++++--
scripts/__tests__/ci-test-shard-timings.test.mjs | 71 ++++++++++++++++++++++
scripts/ci-test-shard.mjs | 65 ++++++++++++++++++--
.../lib/workflow-reliability-release-check.json | 22 +++----
scripts/test-timings.json | 21 -------
7 files changed, 175 insertions(+), 46 deletions(-)
Fusion-Task-Id: FN-8951
Fusion-Task-Lineage: fbf7e79f-4cb2-43e2-9982-09f3f94de70d
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-10 12:09:20 -07:00
gsxdsm
00e369711c
FN-8949: add dead mock specifier guard
...
Prevent silent dead engine test mocks and restore renamed-lane coverage.
- Add a ratcheting test that detects unresolved relative vi.mock specifiers.
- Update self-healing test seams for moved modules and queue transitions.
- Document mock-specifier and store-fake failure patterns.
Files changed:
.../dead-vi-mock-specifiers-fail-silently.md | 57 ++++++
...e-defects-that-masquerade-as-production-bugs.md | 12 ++
docs/testing.md | 5 +
.../self-healing-query-filter-blindness.test.ts | 42 ++++-
.../__tests__/vi-mock-specifiers-resolve.test.ts | 199 +++++++++++++++++++++
5 files changed, 306 insertions(+), 9 deletions(-)
Fusion-Task-Id: FN-8949
Fusion-Task-Lineage: a1079d1c-a2a9-4ac2-8245-1db434468405
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-10 04:54:55 -07:00
gsxdsm
0fbeba50d1
FN-8937: rescue project engine test quarantine
...
Rescue the project engine suite by making subprocess watchdog behavior deterministic.
- Capture real timer APIs for subprocess watchdogs and isolate failure ownership.
- Mock integration-branch resolution to prevent host git during lifecycle tests.
- Add watchdog regression coverage and remove the expired quarantine exclusion.
Files changed:
docs/testing.md | 3 +
packages/core/src/__test-utils__/vitest-setup.ts | 74 ++++++++++-
.../__tests__/subprocess-guard-fake-timers.test.ts | 140 +++++++++++++++++++++
.../engine/src/__tests__/project-engine.test.ts | 63 +++++++---
packages/engine/vitest.config.ts | 12 +-
scripts/lib/test-quarantine.json | 8 +-
6 files changed, 265 insertions(+), 35 deletions(-)
Fusion-Task-Id: FN-8937
Fusion-Task-Lineage: 9fe166b5-b101-4683-bb2b-4855ee73df10
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-10 03:50:58 -07:00
gsxdsm
313eea1461
FN-8935: make Agents Overview scrollable on mobile
...
Make long Active Agents lists reachable within constrained mobile and short desktop layouts.
- Establish a bounded, touch-friendly Active Agents scroll owner.
- Add unit and Chromium layout coverage for populated and empty overview states.
- Document the required browser smoke coverage and add a patch changeset.
Files changed:
.../fn-8935-agents-overview-mobile-scroll.md | 7 ++
docs/testing.md | 2 +
.../__tests__/browser-layout-smoke-fixture.test.ts | 26 +++++-
.../dashboard/app/components/AgentsOverviewBar.css | 14 ++++
.../AgentsOverviewBar.mobile-scroll.test.tsx | 96 ++++++++++++++++++++++
.../dashboard/scripts/browser-layout-smoke.mjs | 86 +++++++++++++++++++
6 files changed, 230 insertions(+), 1 deletion(-)
Fusion-Task-Id: FN-8935
Fusion-Task-Lineage: 43b793b9-3629-45a8-b6c1-d8100467e960
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-10 03:24:37 -07:00
gsxdsm
6cf95433bf
FN-8928: evict flaky workflow IR PG gate canary
...
Remove the flaky sync-workflow-IR PostgreSQL canary from the blocking merge gate while preserving non-blocking coverage.
- Remove the default workflow-IR PostgreSQL test from the gate canary script.
- Update gate-policy coverage expectations and flake-eviction documentation.
- Record the observed setup-hook timeout and retained regression coverage.
Files changed:
.../suite-only-flakes-observed-register.md | 25 +++++++++++++--
docs/testing.md | 6 ++--
packages/core/package.json | 2 +-
.../sync-workflow-ir-is-always-default.pg.test.ts | 6 ++++
.../__tests__/engine-vitest-gate-policy.test.mjs | 37 +++++++++++-----------
5 files changed, 51 insertions(+), 25 deletions(-)
Fusion-Task-Id: FN-8928
Fusion-Task-Lineage: b725ba1a-fb33-4d49-89b4-277a64246cdd
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-10 02:32:24 -07:00
gsxdsm
e7a873c505
FN-8936: stabilize Planning Mode handoff tests
...
Stabilize live Proceed-action handoffs and re-admit the Planning Mode flow suite.
- Settle hydration and re-query the Proceed action before direct-create test clicks.
- Remove the Planning Mode test quarantine and record its rescue in the testing ledger.
Files changed:
.../suite-only-flakes-observed-register.md | 4 ++++
docs/testing.md | 3 +++
.../PlanningModeModal.planning-flow.test.tsx | 20 ++++++++++++++++----
packages/dashboard/vitest.config.ts | 5 -----
scripts/lib/test-quarantine.json | 5 -----
5 files changed, 23 insertions(+), 14 deletions(-)
Fusion-Task-Id: FN-8936
Fusion-Task-Lineage: ed869b67-9394-458b-879c-54da0d7d327e
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-09 23:08:11 -07:00
gsxdsm
3d6a908b95
FN-8898: document inert prerebase settings
...
Clarify that legacy prerebase settings are inert on the production merge path.
- Mark retained prerebase configuration and audit events as legacy-only.
- Add a static validator and tests preventing new prerebase callers.
- Update merge architecture, testing, and settings documentation.
Files changed:
AGENTS.md | 2 +-
docs/architecture.md | 3 +-
docs/settings-reference.md | 6 +-
docs/testing.md | 2 +-
package.json | 6 +-
packages/core/src/types/settings/settings-scope.ts | 32 +++--
.../src/errors/transient-merge-error-classifier.ts | 12 +-
packages/engine/src/merge/merger-auto-prerebase.ts | 12 +-
packages/engine/src/util/run-audit.ts | 2 +
scripts/__tests__/check-prerebase-inert.test.mjs | 73 +++++++++++
scripts/__tests__/run-static-gate-checks.test.mjs | 1 +
scripts/__tests__/verify-fast.test.mjs | 1 +
scripts/check-prerebase-inert.mjs | 146 +++++++++++++++++++++
scripts/lib/source-projection.mjs | 87 ++++++++++++
14 files changed, 359 insertions(+), 26 deletions(-)
Fusion-Task-Id: FN-8898
Fusion-Task-Lineage: 9cfd836d-17c2-44a0-a076-56fef0917935
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-09 06:01:02 -07:00
gsxdsm
74b4de3d19
FN-8883: migrate executor tests to StepSessionExecutor seam
...
Route executor lifecycle tests through graph-owned StepSessionExecutor fixtures.
- Add reusable workflow routing, worktree refresh, and implementation-session test helpers
- Update executor prompt, step-session, pause, and completion assertions for graph-owned sessions
- Document the graph executor fixture seams for focused verification
Files changed:
docs/testing.md | 3 +
.../__tests__/ephemeral-task-create-gate.test.ts | 29 +-
.../engine/src/__tests__/executor-prompt.test.ts | 417 ++++++++++++---------
.../src/__tests__/executor-review-verdicts.test.ts | 2 +-
.../executor-step-numbering-zero-based.test.ts | 23 +-
.../src/__tests__/executor-step-session.test.ts | 152 ++++++--
.../executor-task-done-summary.test.ts | 14 +-
.../engine/src/__tests__/executor-test-helpers.ts | 65 +++-
8 files changed, 468 insertions(+), 237 deletions(-)
Fusion-Task-Id: FN-8883
Fusion-Task-Lineage: 7ebbee52-fe43-4e18-b0e9-2253911a0acb
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-09 04:59:15 -07:00
gsxdsm
cf171bc4b2
FN-8900: rescue deterministic Kimi K3 catalog test
...
Rescue Kimi K3 route coverage with a deterministic bundled-catalog registry seam.
- Use pi-ai's real Kimi catalog without live registry refresh.
- Restore route merge and deduplication coverage and remove the paired quarantine records.
- Document the measured refresh stall and preserve the existing timeout budget.
Files changed:
docs/testing.md | 3 +-
packages/dashboard/package.json | 1 +
.../src/__tests__/_kimi-model-catalog-fixture.ts | 40 +++++++++
...ister-model-routes-kimi-k3-supplemental.test.ts | 75 ++++++-----------
packages/dashboard/vitest.config.ts | 19 ++---
pnpm-lock.yaml | 98 +++++++++++++++++-----
scripts/lib/test-quarantine.json | 5 --
7 files changed, 153 insertions(+), 88 deletions(-)
Fusion-Task-Id: FN-8900
Fusion-Task-Lineage: 6d4986ed-bc93-479f-85fb-510d17ced4b5
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-09 03:47:56 -07:00
gsxdsm
ef99dcd1b0
FN-8894: model advancing clocks in oversight tests
...
Ensure TaskDetailModal mutation fixtures mirror server update timestamps.
- Add an advancing-clock task fixture helper for mutation responses
- Update desktop and mobile oversight control mocks to use newer task snapshots
- Cover equal-clock merge behavior and document the fixture contract
Files changed:
docs/testing.md | 6 ++
.../TaskDetailModal.oversight-controls.test.tsx | 74 +++++++++++++++++++++-
.../TaskDetailModal.oversight-mobile.test.tsx | 3 +-
.../__tests__/TaskDetailModal.test-helpers.ts | 15 +++++
4 files changed, 94 insertions(+), 4 deletions(-)
Fusion-Task-Id: FN-8894
Fusion-Task-Lineage: 614eb85a-0fbf-4f44-a08d-347f2511499b
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-09 02:23:54 -07:00