fix(checker): preserve explicitly authored straight route intent - #397
Draft
tt-a1i wants to merge 1 commit into
Draft
fix(checker): preserve explicitly authored straight route intent#397tt-a1i wants to merge 1 commit into
tt-a1i wants to merge 1 commit into
Conversation
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: trueThanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
sunsunsun-java
approved these changes
Sep 12, 2026
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.
Problem and value
Schema-valid
route: "straight"relationships in architecture, data-flow, and lifecycle diagrams can render successfully but failcheck,validate, and atomicdeliversolely because the final artifact checker treats every diagonal as unintended. On base6db72a9, the lifecycle reproduction rendersM 307 157 L 493 307, then failsorthogonal_arrows.Preserve explicit straight intent in a small renderer-generated SVG attribute. The checker accepts that attribute only on a semantic relationship with one actual direct segment. This recovers the supported authoring behavior without altering paths or broadly accepting unmarked diagonals. This is a recovered fuzz finding; the minimal redacted reproductions are in
archify/test/authored-straight-routes.test.mjs.Stability impact
viaoverridesstraightand cannot acquire the direct-route exception. Emptyviaremains compatible for architecture/lifecycle. Data-flow retains its existing orthogonal-via validation.Tests run
Base
6db72a9aea3d0f67a6a034e41f8a5491476a11c1; candidate4f8e59416a4488b9dd7e95d642ad1486fd938619. Node 22.23.2 on macOS:render-output-checks,layout-rules,v1-compatibility, andgallerysuites: 138 passed.orthogonal_arrows; the candidate retains the same endpoint coordinates and SVGd.node_modulesor installation: the same 14 end-to-end checks passed.npm test: 1359 total; 1311 passed, 1 failed, 47 skipped. The sole failure is the pre-existing checked-in MCO byte-reproducibility drift (its old HTML still uses network fonts). The same test fails on clean base6db72a9; base and candidate regenerate the pinned MCO artifact to identical bytes (SHA-2563c53dea72ae62c91cb367a0e835f0ebd4aa1e4aa8719747278593aea60177180, 823676 bytes). The unrelated MCO artifacts are unchanged. Chrome-gated/optional tests remain explicitly skipped; this is not a claim of a green complete local suite.Visual evidence
Not applicable: the SVG geometry, styling, and Viewer code are unchanged. Fixed inputs preserve the exact paths/points, and existing example/Gallery output remains byte-identical. The visible difference is successful delivery of explicitly authored straight routes. Browser/perceptual acceptance is not claimed.
Generated artifacts
archify.zipregenerated with official Node 22.23.2 and reproduced byte-for-byte by a second build. Its 79-entry inventory is unchanged; only the seven affected renderer/checker/documentation entries differ from base. Examples, Gallery, guide/start pages, README showcase, and Viewer outputs need no regeneration because their authoritative generated output remains unchanged.Final-head hosted CI passed on
4f8e594across Node 18/20/22/24, browser/WebM, ZIP freshness, published-manifest and all three package-smoke platforms: CI run. This does not reclassify the documented pre-existing local MCO failure.