Skip to content

Harden Unicode search and terminal graphics edge cases - #44

Merged
Marc-André Moreau (mamoreau-devolutions) merged 1 commit into
masterfrom
copilot/feature-porting-review
Sep 25, 2026
Merged

Marc-André Moreau (mamoreau-devolutions) merged 1 commit into
masterfrom
copilot/feature-porting-review

Conversation

@mamoreau-devolutions

Copy link
Copy Markdown
Contributor

Summary

  • Preserve search selection by logical-line ID and cell offset through reflow, duplicates, scrollback eviction, and viewport changes; retain text-based fallback for Ghostty's reconstructed row IDs.
  • Add the Unicode 16.0.0 GraphemeBreakTest fixture with license and LF checkout policy. Assert exact cells and chunk invariance for all 369 terminal-representable cases; classify the remaining 724 cases explicitly instead of claiming full pure-segmenter conformance.
  • Add Sixel, OSC 1337, ConEmu, and Kitty boundary, malformed-input, placement, crop, scrollback, eviction, reset, and rendering regressions, with narrow production fixes for uncovered defects.
  • Document measured parity and intentional unsupported behaviors.

Validation

  • dotnet test Devolutions.Terminal.slnx --no-restore --verbosity quiet (exit 0; Core 1112, Control 142, Render 62 passed; existing Connection 9 and Browser E2E 2 skips)
  • dotnet build Devolutions.Terminal.slnx --no-incremental --no-restore --verbosity quiet (0 warnings, 0 errors)
  • dotnet format Devolutions.Terminal.slnx --no-restore --verify-no-changes --include ... for changed C# files (passed)
  • git diff --check (passed)

The Core terminal-cell suite does not constitute full UAX #29 conformance for the excluded Unicode rows; see docs/parity-status.md for the categorized limits.

Pin Unicode 16 grapheme fixtures, preserve search selection by logical-line identity, and cover bounded image protocol behavior across parser, engine, and renderer.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

This branch was successfully deployed

1 active deployment
publish-dry-run — a4a98969 Deployed Sep 25, 2026 by mamoreau-devolutions via MSI packages #263
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant