Improve image collection chaining#9168
Conversation
e2021e9 to
0c29921
Compare
81f9695 to
1de55b7
Compare
41007f4 to
9de21b9
Compare
e0f65ec to
ee18966
Compare
0d998c3 to
58ed149
Compare
58ed149 to
7ee2ca0
Compare
Code review findingsAutomated multi-agent review of this branch (8 finder angles, each candidate independently verified against the code). The chainable-collection design and the node-update migration are sound overall, but the migration has two paths where it destroys or hides user data, and the workflow-form / linear-view surface isn't migrated. Findings ranked by severity. Data loss / hidden data1. Migration trusts unvalidated edges — permanent data loss on load ( 2. 3. Workflow-form fields aren't remapped from Behavioral regressions and in-scope bugs4. Required→optional removes the loud failure ( 5. Shadowed direct value erased when 6. Catch swallows non- 7. Copy-paste bug in the touched function ( Design hardening (latent, cheap to fix now)8. Migration is version-blind ( 9. Missing 10. Duplicated edge-scan, rebuilt per node ( Minor (cut by the finding cap)
🤖 Generated with Claude Code |
|
See above for Claude's code review. I performed functional testing and the image collection chaining works as advertised however I didn't have suitable preexisting workflows to functionally test the migration issues identified in the review. |
|
@lstein First, a note about the loud failure comment: yes, this intentionally turns the former missing-input failure into a current valid case. An empty image collection is now supported and outputs an empty collection. Next, A summary of the latest changes:
|
Follow-up: version gate in the migration misses 1.0.0 nodesThanks for the fixes — re-reviewed
if (options.sourceVersion && options.sourceVersion !== '1.0.1') {
return;
}But Suggested fix — gate on "source predates 1.0.2" instead of an exact match, e.g. using if (options.sourceVersion && compare(options.sourceVersion, '1.0.2', '>=')) {
return;
}This keeps the intended protection (future 1.0.3+ bumps won't re-run the migration on already-migrated nodes) while covering pre-1.0.1 workflows. 🤖 Generated with Claude Code |
|
@lstein Fixed, good catch. Ready for approval. |
Summary
Give the
Image Collection Primitivenode the ability to chain that a normalCollectionnode has.Related Issues / Discussions
QA Instructions
Try upgrading an old workflow that uses this node.
Also try dropping it into a new workflow and make sure you can chain as well as add new images to the collection. It should work with no inputs, one, and both.
Merge Plan
Checklist
What's Newcopy (if doing a release after this PR)