Repository navigation
fix(review): #2718 review findings, round 1 - #2729
WilcoLouwerse wants to merge 5 commits into
Conversation
…ster.end node The generator no longer appends openregister.end after contract-sweep, so the flow-native sync E2E spec drops it from the documented chain, both node-type lists, the canvas node counts and the run-log transition list (the trailing 'end' transition came from the same node). Thread: #2718 (comment) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Under onError continue a failed fetch emitted an error item but counted nothing, so a run whose every fetch failed reported objects 0 / pages 0, the same summary as an empty source. The source-paginate report now carries an errors bucket, incremented in the catch branch, and a unit test drives two failing fetches under continue and asserts the count. The existing report assertion now expects errors => ['count' => 0]. Thread: #2718 (comment) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…port is not The FlowStepReport stub carries only CONTEXT_KEY, put() and take(); the real openregister class also has line() and its limits, so its header now calls it a subset. Both stub headers named openconnector as the repository that does not ship the spec path; that is integriq. The IFlowEndNode stub was checked against openregister development and matches apart from the omitted @SPEC tag, so it stays described as verbatim. Thread: #2718 (comment) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Without the trailing openregister.end node the generated sync pipeline has ten nodes, so the canvas comment's "count of eleven" now reads ten. Thread: #2718 (comment) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Code Review — Integriq PR #2729 The implementation looks correct overall. The previous findings concerning outdated E2E expectations, missing pagination error counts, and inaccurate test-stub documentation have been addressed. I found no confirmed blocking issues in the changed code. Two points are worth checking before merging.
File: tests/e2e/spec-coverage/flow-native-sync.spec.ts The original purpose of PR #2718 was to make generated synchronization flows finish as completed rather than stopped. This PR correctly removes the trailing openregister.end node from the expected pipeline. However, the E2E test still accepts stopped as a successful terminal status. Please investigate whether the generated synchronization flow should now always finish with status completed. If so, update the relevant assertion to require completed rather than accepting stopped. This would ensure the test actually protects the original behavioral fix. Do not change unrelated tests that intentionally support stopped executions.
File: lib/Flow/SourcePaginateNode.php The new errors counter correctly records failed fetches when onError is continue. Please verify that the same reporting behavior applies when onError is dead_letter. Specifically:
If both policies already share the same implementation, no production changes are required. Add regression coverage only if there is a realistic untested difference. Verified improvements The following changes look correct:
Please preserve these changes. Requested actions
Avoid unnecessary refactoring. Overall recommendation: Approve once these minor points are clarified. No confirmed blocking defects identified. |
SUCCESSFUL_STATUSES accepts `stopped`, so dropping the trailing `openregister.end` node (which threw FlowStop and turned every successful sync into a `stopped` run) was not pinned by the spec. The first run of the generated flow now asserts `completed` at its own call site; the shared driveRunToTerminal helper keeps accepting `stopped` for flows that end in a deliberate stop. Raised in #2729 (comment) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Thanks, both checked. (1) Changed in |
Fixes for the round-1 review of #2718 (#2718 (review)). Merge into
fix/flow-step-report-and-contractsweep-end-node, then re-request the review; nothing here is merged by the reviewer.Findings → commits
openregister.endnoded977248openregister.end/openregister-endexpectations and the trailingendtransition in the run-log list fromflow-native-sync.spec.ts.57592377c02124completed; the shareddriveRunToTerminalhelper still acceptsstopped.f98297dSourcePaginateNodereports anerrorscount, incremented once per failed fetch underonError: continue; new unit test, existing report assertions updated.FlowStepReportis notcb23c87FlowStepReportstub header says it is a subset (CONTEXT_KEY,put(),take()); both stub headers nameintegriqinstead ofopenconnector.IFlowEndNodestays "verbatim" (identical apart from the omitted@spectag).Left to the author (threads stay open)
pagesis the node's own chunking, not source pages fetched — which count the Logboek should show is a product choice; the PR's own test shows the two differ (pagesFetched2,pages3).Checks run on this branch
php -lon the four changed PHP files → no syntax errorsvendor/bin/phpunit -c phpunit-unit.xmlon SourcePaginateNodeTest (27), ContractMatchNodeTest (16), ContractSweepNodeTest (13), SynchronizationFlowGeneratorTest (45) → OK; with the f3 change reverted the new and the updated report test failvendor/bin/phpcs --standard=phpcs.xml→ clean onSourcePaginateNode.phpand both stubs;SourcePaginateNodeTest.phpcarries the same 110 pre-existing errors before and after, none addednpx eslint tests/e2e/spec-coverage/flow-native-sync.spec.ts(Node 22) → clean (also after7c02124)run-hydra-gates.sh --scope-to-diff --base 820e389→ exit 0, 36 of 36 applicable gates ran5759237round🤖 Generated with Claude Code