Skip to content

FUSI-005: recupera o trabalho preso na main local (gate post-merge-verification) - #32

Open
timoteo7 wants to merge 1 commit into
mainfrom
fusion/fusi-005-landed-work
Open

timoteo7 wants to merge 1 commit into
mainfrom
fusion/fusi-005-landed-work

Conversation

@timoteo7

Copy link
Copy Markdown
Owner

Recupera o trabalho da FUSI-005 que ficou preso na main local.

O merge final da FUSI-005 nao virou PR porque o gate post-merge-verification
nunca reportou (Auto-merge finalization deferred for FUSI-005: required post-merge evidence gate 'post-merge-verification' has not reported), entao o
executor deixou o commit so na main local da maquina. Este PR traz esse commit
para o fork, onde ele pode ser revisado e merged normalmente.

Conteudo (test-only + docs, sem codigo de produto):

  • census de falhas da Full Suite em docs/solutions/test-failures/
  • correcoes de asserts do merger (provenance { workflowMoveSource })
  • correcoes de harness do project-engine (canMergeTask com Set de colunas,
    resolveMergeGateBlocker)

Aplica limpo sobre origin/main (verificado, sem conflito).

…ll Suite failure census

Land the ported FUSI-020 work: repair engine test harnesses and assertions that
encode pre-provenance call shapes, and record the main Full Suite failure census
with its dispositions. Test- and doc-only; no product code changes.

- Add docs/solutions/test-failures/main-full-suite-census-2026-09-25.md: the
  233-named-case / 117-file census extracted from the Runfusion#3158 run, split into 17
  verified fixes, 201 failures with unverified cause, and 15 unresolved, plus
  the two open links in the completion chain and two re-measurement traps.
- Update merger moveTask assertions across merger-merge-details, merger-skills,
  merger-verification, and merger-finalize-unproven.real-git tests to the
  third `{ workflowMoveSource: "merger-complete-task" }` provenance argument.
- Replace `undefined` appendAgentLog summary assertions with the real summarized
  tool command ("git status" / "vitest run") so a summarizer change cannot
  silently alter what the agent log records.
- Fix the project-engine merge-authority harnesses to the current product
  signatures: canMergeTask now takes a resolved review-column Set (not a
  boolean), and the in-review sweep now probes the merge gate per card, so the
  fake `this` must provide resolveMergeGateBlocker.

Files changed:
 docs/solutions/test-failures/main-full-suite-census-2026-09-25.md            | 564 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 packages/engine/src/__tests__/merger-finalize-unproven.real-git.test.ts      |   8 +-
 packages/engine/src/__tests__/merger-merge-details.test.ts                   |  24 ++++-
 packages/engine/src/__tests__/merger-skills.test.ts                          |   5 +-
 packages/engine/src/__tests__/merger-verification.test.ts                    |  39 ++++++--
 packages/engine/src/__tests__/project-engine-auto-heal-lane-resolved.test.ts |  46 ++++++++--
 packages/engine/src/__tests__/project-engine-merge-lane-resolved.test.ts     |   8 ++
 7 files changed, 675 insertions(+), 19 deletions(-)

Verified: the 6 changed test files (157 tests) pass, @fusion/engine typecheck is
clean, pnpm lint reports 0 errors, pnpm build succeeds, and pnpm test:gate
passes (exit 0, 16 static validators).

Fusion-Task-Id: FUSI-005
Fusion-Task-Lineage: 70156ad6-9e75-4190-b553-5fe26d10d759
Co-authored-by: Fusion <noreply@runfusion.ai>
| `Test shard 1/4` | `src/__tests__/merger-verification.test.ts` | aiMergeTask — in-merge verification fix > logs fix-agent startup metadata, streams callbacks, and logs rerun lifecycle | AssertionError: expected "vi.fn()" to be called with arguments: [ 'FN-050', 'Bash', 'tool', …(2) ] |
| `Test shard 1/4` | `src/__tests__/merger-verification.test.ts` | aiMergeTask — inferred test command execution > runs inferred test command when settings.testCommand is not configured | AssertionError: expected "vi.fn()" to be called with arguments: [ 'FN-050', 'done' ] |
| `Test shard 1/4` | `src/__tests__/merger-verification.test.ts` | aiMergeTask — inferred test command execution > skips verification when no lock files exist and no explicit testCommand is set | AssertionError: expected "vi.fn()" to be called with arguments: [ 'FN-050', 'done' ] |
| `Test shard 1/4` | `src/__tests__/node-worktree-isolation.test.ts` | every workflow node runs in the task worktree, never the shared checkout > acquires a task worktree for Plan Review when the task has none | AssertionError: expected '/tmp/test/.fusion/worktrees/fn-1403' to contain '/tmp/test/.worktrees/' |
| `Test shard 1/4` | `src/__tests__/merger-verification.test.ts` | aiMergeTask — inferred test command execution > runs inferred test command when settings.testCommand is not configured | AssertionError: expected "vi.fn()" to be called with arguments: [ 'FN-050', 'done' ] |
| `Test shard 1/4` | `src/__tests__/merger-verification.test.ts` | aiMergeTask — inferred test command execution > skips verification when no lock files exist and no explicit testCommand is set | AssertionError: expected "vi.fn()" to be called with arguments: [ 'FN-050', 'done' ] |
| `Test shard 1/4` | `src/__tests__/node-worktree-isolation.test.ts` | every workflow node runs in the task worktree, never the shared checkout > acquires a task worktree for Plan Review when the task has none | AssertionError: expected '/tmp/test/.fusion/worktrees/fn-1403' to contain '/tmp/test/.worktrees/' |
| `Test shard 1/4` | `src/__tests__/node-worktree-isolation.test.ts` | every workflow node runs in the task worktree, never the shared checkout > acquires a task worktree for a custom read-only gate when the task has none | AssertionError: expected '/tmp/test/.fusion/worktrees/fn-1403' to contain '/tmp/test/.worktrees/' |
| `Test shard 2/4` | `src/__tests__/workflow-graph-merge-region-collapse.test.ts` | WorkflowGraphExecutor merge-region collapse > treats 'retry-backoff' as a merge-region boundary when entered directly | (no error line in shard log) |
| `Test shard 2/4` | `src/__tests__/workflow-node-execution-needs.test.ts` | workflowNodeRequiresWorktree > requires a worktree for inline fixes from review name | AssertionError: expected false to be true // Object.is equality |
| `Test shard 2/4` | `src/__tests__/workflow-node-execution-needs.test.ts` | workflowNodeRequiresWorktree > requires a worktree for inline fixes from verification name | AssertionError: expected false to be true // Object.is equality |
| `Test shard 2/4` | `src/__tests__/workspace-acquire-lease-authority.test.ts` | workspace acquire durable lease authority > admits a new owner when an expired durable lease has a stale same-process cache | AssertionError: expected '/tmp/fusion-test-workers-xiv9Xv/redir…' to contain '.worktrees' |
@github-actions

Copy link
Copy Markdown

ThreatCrush Security Scan

4589 finding(s)

HIGH/CRITICAL: 43 | MEDIUM: 4035 | LOW: 511

Severity Rule Location
HIGH secret-database-url .github/workflows/full-suite.yml:55
HIGH secret-generic-credential .github/workflows/full-suite.yml:56
HIGH secret-database-url .github/workflows/full-suite.yml:284
HIGH secret-generic-credential .github/workflows/full-suite.yml:285
HIGH secret-database-url .github/workflows/full-suite.yml:324
HIGH secret-generic-credential .github/workflows/full-suite.yml:325
HIGH secret-database-url .github/workflows/pr-checks.yml:221
HIGH secret-generic-credential .github/workflows/pr-checks.yml:222
HIGH secret-generic-credential .github/workflows/release.yml:522
HIGH secret-generic-credential .github/workflows/release.yml:524
HIGH secret-generic-credential .github/workflows/test-release.yml:445
HIGH secret-generic-credential .github/workflows/test-release.yml:447
HIGH secret-generic-credential docs/cli-reference.md:80
HIGH secret-generic-credential docs/signals-connectors.md:34
HIGH secret-generic-credential docs/signals-connectors.md:77
HIGH secret-generic-credential docs/signals-connectors.md:94
HIGH secret-generic-credential docs/signals-connectors.md:117
HIGH secret-generic-credential docs/signals-connectors.md:159
HIGH secret-generic-credential packages/cli/STANDALONE.md:71
HIGH secret-database-url packages/core/src/postgres/credential-redact.ts:12
HIGH secret-database-url packages/core/src/postgres/credential-redact.ts:30
HIGH secret-database-url packages/core/src/postgres/credential-redact.ts:31
HIGH secret-database-url packages/core/src/postgres/credential-redact.ts:102
HIGH secret-database-url packages/core/src/postgres/credential-redact.ts:103
HIGH secret-generic-credential packages/core/src/postgres/embedded-lifecycle.ts:843
HIGH secret-database-url packages/core/src/postgres/embedded-lifecycle.ts:1574
HIGH secret-database-url packages/core/src/postgres/pg-backup.ts:756
HIGH js-ssrf-outbound-request packages/dashboard/app/public/sw.js:651
HIGH js-ssrf-outbound-request packages/dashboard/app/public/sw.js:727
HIGH js-host-header-trust packages/dashboard/src/cli-session-ws.ts:81
HIGH js-host-header-trust packages/dashboard/src/cli-session-ws.ts:115
HIGH js-ssrf-outbound-request packages/dashboard/src/routes.ts:1858
HIGH js-host-header-trust packages/dashboard/src/server.ts:2689
HIGH js-host-header-trust packages/dashboard/src/server.ts:2714
HIGH js-host-header-trust packages/dashboard/src/server.ts:3025
HIGH js-host-header-trust packages/dashboard/src/server.ts:3193
HIGH secret-slack-webhook plugins/examples/fusion-plugin-notification/README.md:46
HIGH secret-database-url scripts/pg-test-server.mjs:200
HIGH secret-database-url scripts/pg-test-server.mjs:231
HIGH secret-database-url scripts/pg-test-server.mjs:241
HIGH secret-generic-credential scripts/sync-fusion-skill-tools.mjs:550
HIGH secret-generic-credential scripts/verify-windows-elevated-restricted.mjs:81
HIGH secret-generic-credential scripts/verify-windows-encoding-recovery.mjs:41
MEDIUM redos-nested-quantifier docs/agents.md:1710
MEDIUM insecure-temp-file docs/solutions/test-failures/main-full-suite-census-2026-09-25.md:376
MEDIUM insecure-temp-file docs/solutions/test-failures/main-full-suite-census-2026-09-25.md:377
MEDIUM insecure-temp-file docs/solutions/test-failures/main-full-suite-census-2026-09-25.md:541
MEDIUM insecure-temp-file packages/cli/src/__tests__/bin.test.ts:136
MEDIUM insecure-temp-file packages/cli/src/__tests__/dev-with-memory-lib.test.ts:33
MEDIUM insecure-temp-file packages/cli/src/__tests__/dev-with-memory-lib.test.ts:34

…and 4539 more. Full results in the Security tab.

Snippets are redacted; ThreatCrush never prints matched credential material.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants