Skip to content

fix(forge): proposal overlay and abort node under the fallow limits - #1012

Merged
LinuxDevil merged 2 commits into
mainfrom
fix/forge-fallow-overlay-abort
Nov 9, 2026
Merged

LinuxDevil merged 2 commits into
mainfrom
fix/forge-fallow-overlay-abort

Conversation

@LinuxDevil

Copy link
Copy Markdown
Owner

Why

main's CI test job fails at npm run fallow after #1003 (C21 proposal overlay) and #1004 (C16 abort listener node):

  • mergeProposal (apps/agent-forge/src/graph/v2/proposal.ts): cyclomatic 28, cognitive 43, 102 lines
  • AppStateProvider (apps/agent-forge/src/state/AppState.tsx): cognitive 17
  • a 7-line clone of clip in canvas/kinds/abort.tsx and canvas/kinds/trigger.tsx

The other studio PRs merged since (#1002, #998, #996, #990) add no further fallow findings.

Changes

No behaviour change, no threshold, ignore or config edits.

  • mergeProposal delegates to specLayoutOf, mergedNode, placeProposedNodes, carryNotes, collectRemovals, previousSibling and insertRemoval.
  • AppStateProvider uses useProposalOverlay (state, merged display graph, dev window trigger), useSaveVersion and agentActionsClearing (switch/create/rename/delete clear the proposal).
  • clipFirstLine in canvas/kinds/clipFirstLine.ts, shared by the abort and trigger cards.

Testing

Tests added first and passing on the old code:

  • state/__tests__/AppStateProvider.test.tsx: overlay show/hide, each agent action clears it and delegates, dev window trigger, saveVersion/latestVersion
  • proposal.test.ts: first-child and all-children removal order, collapsed flag for unchanged/edited nodes
  • abort/trigger kind tests: row clipping (first line, 40 chars, empty rows dropped)

Local: forge vitest run 193 files / 3601 tests pass; typecheck, typecheck:server pass; lint 0 errors; fallow health --complexity (empty coverage) has no agent-forge findings; fallow dupes clean; fallow dead-code clean.

🤖 Generated with Claude Code

LinuxDevil and others added 2 commits November 9, 2026 10:20
…ping

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Split mergeProposal into per-step helpers, move the proposal overlay and
saveVersion state out of AppStateProvider into hooks, and share the card
row clip between the abort and trigger kinds. No behaviour change.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@LinuxDevil
LinuxDevil merged commit 23b9706 into main Nov 9, 2026
6 checks passed
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.

1 participant