Repository navigation
fix(forge): proposal overlay and abort node under the fallow limits - #1012
Merged
Merged
Conversation
…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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
main's CI
testjob fails atnpm run fallowafter #1003 (C21 proposal overlay) and #1004 (C16 abort listener node):mergeProposal(apps/agent-forge/src/graph/v2/proposal.ts): cyclomatic 28, cognitive 43, 102 linesAppStateProvider(apps/agent-forge/src/state/AppState.tsx): cognitive 17clipincanvas/kinds/abort.tsxandcanvas/kinds/trigger.tsxThe other studio PRs merged since (#1002, #998, #996, #990) add no further fallow findings.
Changes
No behaviour change, no threshold, ignore or config edits.
mergeProposaldelegates tospecLayoutOf,mergedNode,placeProposedNodes,carryNotes,collectRemovals,previousSiblingandinsertRemoval.AppStateProviderusesuseProposalOverlay(state, merged display graph, dev window trigger),useSaveVersionandagentActionsClearing(switch/create/rename/delete clear the proposal).clipFirstLineincanvas/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/latestVersionproposal.test.ts: first-child and all-children removal order, collapsed flag for unchanged/edited nodesLocal: forge
vitest run193 files / 3601 tests pass;typecheck,typecheck:serverpass;lint0 errors;fallow health --complexity(empty coverage) has no agent-forge findings;fallow dupesclean;fallow dead-codeclean.🤖 Generated with Claude Code