Skip to content

fix: align Unicode diagrams and preserve relationship geometry - #53

Merged
leboiko merged 6 commits into
masterfrom
fix/open-issues-oct2026
Oct 13, 2026
Merged

leboiko merged 6 commits into
masterfrom
fix/open-issues-oct2026

Conversation

@leboiko

@leboiko leboiko commented Oct 12, 2026 •

Copy link
Copy Markdown
Owner

CJK/fullwidth labels keep contiguous text and aligned borders across shared grids, sequence, class/ER boxes and quadrant charts (#52). Left state notes retain a connected route, and nested activation lanes keep message labels clear (#41), including self calls and autonumber prefixes. Sequence notes preserve their anchors and text as opaque annotations; exposed activation spans remain continuous.

WezTerm sessions prefer iTerm2 after a successful terminal query, including WSL with only TERM_PROGRAM detection. Unicode fallback displays equation tags as (1) instead of tag1 (#48). The reported WezTerm/WSL GUI is unavailable: raster ink, cell geometry and protocol selection are verified locally, but that displayed-image symptom still needs external verification, so the existing issue remains open for that terminal verification. No follow-up issue was created.

Built on contributor PR #51, now merged into master with @worldnine’s original commit and authorship intact. This PR targets master. Synchronizing master into the branch produced the exact same file tree as the locally validated commit; no source or fixture changed.

Three independent GPT-6.1 review-pr passes and fix-review-findings resolved all nine findings in this PR. Exact failing-first regressions cover continuation ownership, canvas boundaries, note rectangles, activation indices, numbered labels and visible tag ink. Nine related note/activation/autonumber snapshots changed; zero unrelated reclassification. Findings and evidence are committed in PR-53-review.md and docs/scope-*.md.

Local macOS validation: format, workspace/all-target clippy with warnings denied, complete workspace suites on stable and Rust1.92 without binary-path overrides, deny, audit and default docs all pass. Existing rustdoc link warnings remain. All ten Rust CI jobs and both Linux/macOS Nix builds and binary smoke tests passed against master on the synchronized branch. Versions: app1.35.3 / mermaid-text0.57.4. No release or publish was triggered.

Closes #52
Closes #41
Related #48

@leboiko leboiko left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

GPT-6.1 independent runtime, security/performance and tests/reliability passes found seven renderer/test findings below plus one existing integration-harness reliability gap. All are being resolved in this PR; no follow-up issues.

Major — tests/check_links.rs:16, tests/export_html.rs:14 and tests/section_extract.rs:15 read CARGO_BIN_EXE_markdown-reader at runtime, though Cargo supplies it at compile time. Rust1.92 full tests with a custom target directory fail with OS NotFound because the fallback targets the worktree target/debug path. Use the compile-time Cargo binary path and rerun full suites without a binary-path override.

WezTerm/WSL GUI is unavailable; local raster/protocol tests cannot establish the original visual symptom is fixed. This limitation remains explicit.

Comment thread crates/mermaid-text/src/layout/grid.rs Outdated
Comment thread crates/mermaid-text/src/layout/grid.rs Outdated
Comment thread crates/mermaid-text/src/render/box_table.rs Outdated
Comment thread crates/mermaid-text/src/render/sequence.rs
Comment thread crates/mermaid-text/src/render/sequence.rs Outdated
Comment thread crates/mermaid-text/src/render/sequence.rs
Comment thread src/math_image.rs

@leboiko leboiko left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Additional Major correctness finding from final 6.1 runtime re-review (same PR, no follow-up): sequence render skips a message with an unknown participant, but message_arrow_rows uses push rather than the original message index. Prepending a malformed message and shifting valid activation indices deletes all eight existing bar cells. Store arrow rows by original message index (optional for invalid messages), and process note/event boundaries for skipped messages. A strong failing library-API regression pins the exact valid-message/activation geometry.

@leboiko

leboiko commented Oct 12, 2026

Copy link
Copy Markdown
Owner Author

All findings addressed in 8697672 with GPT-6.1 fix-review-findings.

# Finding Status
1 Final-column combining suffixes Fixed — shared clipped writers
2 Wide continuation ownership Fixed — central mutation cleanup
3 Public box-helper geometry/clipping Fixed — signatures preserved, exact column tests
4 Activation/note collision Fixed — original note anchors/order, opaque annotation, continuous exposed lanes
5 Per-message activation scan Fixed — sparse boundary index, measured 607ms→116ms
6 Autonumber clearance Fixed — rendered labels size layout and self loops
7 Tag test permits transparent padding Fixed — strictly greater visible tag ink
8 Custom-target binary test lookup Fixed — compile-time Cargo path, both toolchains without overrides
9 Skipped message shifts activation indices Fixed — original-index optional arrow rows and note events

Independent final runtime and tests re-reviews found no unresolved findings. All local gates exit 0: format; workspace/all-target clippy with warnings denied; full workspace suites on stable and Rust1.92; deny; audit; default docs (existing link warnings). Reports and failing-first evidence are committed in PR-53-review.md and scope notes. No new follow-up issue was created.

#48's reported WezTerm/WSL GUI remains unavailable, so the PR ships verified fallback/protocol/raster behavior and keeps that existing issue open for external visual verification. This stack depends on #51; retarget to master after its merge for the workflow's master-only PR trigger. No release/publish was triggered.

@leboiko leboiko left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Final GPT-6.1 re-review: all nine posted findings are resolved in 8697672. Independent runtime/correctness and tests/reliability passes found no unresolved actionable findings. All local integrated gates pass, including complete stable and Rust1.92 workspace suites without binary overrides, fmt/clippy/deny/audit/default docs. Exact repros and resolutions are committed in PR-53-review.md. Residual limit: actual WezTerm/WSL GUI rendering is unverified; #48 remains open and the protocol change is described as a mitigation. Stacked on #51; GitHub CI master-only trigger does not run for this base.

@leboiko
leboiko marked this pull request as ready for review October 12, 2026 19:10
@leboiko
leboiko changed the base branch from review/issue-50-class-utf8 to master October 13, 2026 17:19
@leboiko

leboiko commented Oct 13, 2026

Copy link
Copy Markdown
Owner Author

Pre-merge verification on 2026-10-13: both exact reviewed commits passed local stable/Rust1.92 complete workspace suites. The combined commit also passed fmt, workspace/all-target clippy with warnings denied, deny, audit and default docs. Original reviews/findings remain resolved; no code changes since final 6.1 review.

#51 is merged as 75616be after all ten Rust CI jobs and both Linux/macOS Nix builds/smoke tests passed. #53 is retargeted to master and synchronized at ef2102d; its tree is exactly a493ff56a6643cbfa5e0cd256d812b34a5ef7f16, identical to validated head8697672. This metadata-only merge preserves every authored commit and triggers the master-target CI checks.

#48 remains open for the unavailable WSL/WezTerm GUI verification. No release/publish is being triggered.

@leboiko

leboiko commented Oct 13, 2026

Copy link
Copy Markdown
Owner Author

Final pre-merge checks all passed on ef2102d, whose file tree exactly matches the reviewed/local-tested commit8697672.

  • Rust CI: all ten jobs pass, including stable/Rust1.92 full workspace tests and clippy on Linux/macOS, format, docs, deny and audit.
  • Nix builds: Linux and macOS builds pass, with the resulting binaries smoke-tested via --help.
  • Fresh local stable/MSRV full suites and all validation gates pass.

All prior 6.1 review findings remain resolved; source/fixtures have not changed. Merge preserves original authored commits. Issues #41/#52 will close with explanatory messages; #48 stays open for unavailable WSL/WezTerm GUI verification. No release/publish was triggered.

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.

[Bug] mermaid-text: wide (CJK) characters shift box borders mermaid-text: preserve left state-note links and nested sequence activation spans

1 participant