Preserve both endpoints when repairing devtools chart routes - #217
Merged
Merged
Conversation
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.
Summary
Fix valid devtools charts failing with
wrong-source-directionwhen a retry edge targets a compound state. CopyButton'sFailed → Workingedge initially leaves its source correctly, but moving the destination to the Working header previously rewrote the source segment too.Both endpoint repairs now share one implementation. It preserves an attached opposite endpoint, reserves clearance on straight routes before adding a detour, and checks both endpoint directions after route compaction. The existing chart geometry validator remains strict.
Add six CopyButton topology variants and eight rotated/reversed geometry cases. Five of these tests fail against the base implementation; all fourteen pass with the fix. The existing 30 chart tests also pass. Layout failures now identify chart routing rather than attributing postprocessing defects to ELK.
Full validation also exposed a fresh-install CLI failure: platform-node's dependency range selected platform-node-shared RC.115 alongside Effect RC.112. Pin platform-node-shared to the already-supported RC.112 and require the platform packages to stay aligned with the Effect peer version. This adds no version upgrade and restores the existing packed-consumer test without changing its checks.
Changeset
Patch changeset for the chart fix and compatible fresh-install dependency correction. Package versions continue to release together through the fixed group.
Validation
pnpm checkAutomated type-performance measurement passed or was not required
Automated runtime- and memory-performance measurement passed or was not required
pnpm perf:runtimecompleted as a local functional smoke test; no performance comparison is claimed from this run.Built and visually inspected CopyButton in the actual browser devtools. The chart renders with an outward retry edge and an attached destination at the Working header.
Fresh packed-consumer CLI, worker, browser, static build, live reload, shutdown, and failure-handling checks passed after pinning the shared platform dependency.
No public machine API, inference, planner, runtime execution, or memory-ownership changes. Both CI performance gates passed with
MEASUREMENT_REQUIRED=falseandMEASUREMENT_RESULT=skipped; no base-versus-PR measurement report is required for this scope.