Skip to content

fix: align eligible lifecycle return ports as a group - #760

Open
outlier27-cell wants to merge 4 commits into
tt-a1i:devfrom
outlier27-cell:fix/739-lifecycle-ports
Open

outlier27-cell wants to merge 4 commits into
tt-a1i:devfrom
outlier27-cell:fix/739-lifecycle-ports

Conversation

@outlier27-cell

Copy link
Copy Markdown
Contributor

Problem and value

Fixes #739. The bundled Agent Run gives Reviewing/Blocked reciprocal transitions unnecessary 40 px jogs even though both upper ports fit Blocked. Align an entire lower-state top-port group only when all final positions fit its boundary, retain left-to-right order, and retain minimum port spacing. Evaluate final neighbor positions before moving any member.

Stability impact

Local lifecycle layout change. Brackets and groups which cannot all align retain the existing routing fallback. Upper ports, layout mode selection, label placement and collision gates remain authoritative. The Agent Run canvas stays 1152 x 500; Executing/Approval and Executing/Failed route coordinates remain unchanged.

Tests run

  • node --test test/lifecycle-layout.test.mjs: 16/16 passed, including both public v3 examples, straight Reviewing/Blocked reciprocal paths, unchanged four mixed-fit routes, shared exits, parallel transitions, label clearance and showcase artifact checks.
  • Golden examples and generated gallery checked against fresh renders.
  • Real Chrome captures before and after at 1440 x 1000 and 390 x 844, same light theme and framing. No change in canvas dimensions or containment metrics; desktop screenshot inspected. README image regenerated from the real SVG.
  • The exact ten inputs mentioned in feat(lifecycle)!: lay out state machines from a main path #738 are not public: six real-project inputs and the stress fixture are unavailable, while the checked-in job-search JSON uses the older schema. This PR reports public coverage only; it does not claim to have validated the private ten-input set.

Visual evidence

The committed README lifecycle image shows the resulting straight Blocked connections. Before: Reviewing/Blocked routes 801,92;801,144;841,144;841,202 and 867,202;867,126;827,126;827,92. After: 801,92;801,202 and 827,202;827,92.

Generated artifacts

Regenerated both checked-in lifecycle HTML copies, gallery artifact and receipts, README PNG, and archify.zip using official Node 22.

@coderabbitai

coderabbitai Bot commented Oct 7, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Repository: tt-a1i/archify/.coderabbit.yaml
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: c8584e3e-c47b-4cb9-bc18-fb9a9aaf0bf9
📥 Commits

Reviewing files that changed from the base of the PR and between 603bbb4 and 00315fd.

⛔ Files ignored due to path filters (2)
  • archify.zip is excluded by !**/*.zip
  • docs/assets/archify-lifecycle.png is excluded by !**/*.png
📒 Files selected for processing (7)
  • archify/examples/lifecycle-agent-run.html
  • archify/renderers/lifecycle/render-lifecycle.mjs
  • docs/gallery.html
  • docs/gallery/artifacts/agent-run.lifecycle.html
  • docs/gallery/manifest.json
  • examples/lifecycle-agent-run.html
  • test/lifecycle-layout.test.mjs

Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 5 remain after this review.


📝 Summary

At base 603bbb41 and head 00315fda, eligible lower-state port groups now align atomically when all targets fit the usable band and preserve order and spacing; otherwise existing routing remains. This straightens Reviewing ↔ Blocked without changing fallback routes. The author reports 16/16 lifecycle tests and regenerated artifacts; browser captures were checked, but the private showcase inputs were unavailable. These are author-reported claims, not CI-observed results. At checked head 00315fda, scope passed; other CI checks were queued or in progress. This snapshot does not establish final CI status or browser acceptance.

Walkthrough

snapPorts now aligns eligible off-spine top ports as a group and keeps the existing per-port behavior when the group does not meet the alignment conditions. A regression test checks rendering, validation, vertical reviewing–blocked routes, and mixed-fit routes. The agent-run examples and gallery receipts now reflect the updated routes and artifact metadata.

Priority: ⬇️ Low

Estimated code review effort: 3 (Moderate) | ~20 minutes

Severity of issue fixed: Low

Merge Risk: ⚪ Minimal · up to 00315

No actionable merge-blocking risk is established; the change is mergeable with normal follow-up for broader showcase validation.

🚥 Pre-merge checks | ✅ 1 | ❓ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Validation Evidence ❓ Inconclusive Public evidence is strong, but coverage is incomplete for the stated acceptance scope. The evaluated range is base 603bbb41ce69015797c2d4045a143c3fabc39230 to head `00315fda8757c91db14a40c8a61aee9ea… When the private inputs are available, run the showcase artifact check on all ten inputs and record the final-head revision and results. Run the canonical Node 22 ZIP freshness check and retain its receipt. Keep the public focused-test and …
✅ Passed checks (1 passed)
Check name Status Explanation
Contribution Scope ✅ Passed The PR meets the contribution-scope requirements. It explains the concrete Reviewing/Blocked routing problem, the intended all-or-nothing alignment behavior, preserved behavior, fallback behavior when…
Full details: Validation Evidence

Explanation

Public evidence is strong, but coverage is incomplete for the stated acceptance scope. The evaluated range is base 603bbb41ce69015797c2d4045a143c3fabc39230 to head 00315fda8757c91db14a40c8a61aee9ea5a1170f. The diff adds the lifecycle group-alignment logic and a 16-test lifecycle suite. The committed artifact copies are byte-identical, the manifest digest and size match the artifact, and its nine checks report pass with zero composition errors and warnings. The archive contains the candidate renderer and example with matching bytes. The 16/16 test result and Chrome capture review remain author reports. The private ten-input showcase set was unavailable, so the no-regression claim for those inputs is not verified. The official Node 22 ZIP reproducibility claim also has no supplied freshness receipt. The current review reports zero actionable findings.

Resolution

When the private inputs are available, run the showcase artifact check on all ten inputs and record the final-head revision and results. Run the canonical Node 22 ZIP freshness check and retain its receipt. Keep the public focused-test and generated-artifact evidence, but label it as public coverage only.

  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

This branch has not been deployed

No deployments
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