Skip to content

Fix Windows console UTF-8 and mouse ownership for 1.29.2 - #89

Merged
uniblab merged 5 commits into
mainfrom
fix/1.29.2-windows-console-interop
Oct 16, 2026
Merged

uniblab merged 5 commits into
mainfrom
fix/1.29.2-windows-console-interop

Conversation

@uniblab

@uniblab uniblab commented Oct 16, 2026 •

Copy link
Copy Markdown
Owner

Summary

  • make system-backed Windows console output temporarily own UTF-8 decoding and restore the exact prior output code page
  • make Raw and CBreak input own mouse delivery while suppressing Quick Edit, with exact console-mode restoration
  • retain Raw Ctrl+C/Ctrl+Z, Alt+F, Unicode input, cancellation, and lifecycle behavior
  • publish the 1.29.2 version identity, concise README guidance, changelog history, and curated release notes
  • move all 46 root development roadmaps under docs/ and repair their repository-relative references

Motivation

Live Icod.Dedit qualification exposed UTF-8 box-drawing bytes decoded under an OEM code page (─ rendered as ΓöÇ). The resulting multi-cell expansion broke popup borders and About-dialog geometry. Menu clicks were also unreliable because noncanonical Windows input did not explicitly own mouse and Quick Edit console flags.

The accumulated versioned roadmaps also obscured the repository root; documentation now has one consistent home.

Implementation

System-backed interactive Windows output now acquires UTF-8 console-output decoding alongside virtual-terminal output processing. The lease changes the code page only when needed, rolls back partial setup, and restores the captured value on lifecycle release, re-entry, and final disposal.

Windows Raw and CBreak mode policy now sets ENABLE_MOUSE_INPUT, ENABLE_EXTENDED_FLAGS, and virtual-terminal input while clearing Quick Edit. Raw continues to clear processed input so Ctrl+C and Ctrl+Z remain application keys; CBreak retains processed-input semantics. Canonical mode is unchanged.

All 46 current and historical development-roadmap Markdown files formerly at the repository root now live under docs/. Their links—and references from README, changelog, release notes, historical records, plans, and specifications—were rebased for the new location. The audit also repaired two older broken relative documentation links.

Validation

  • Final PR run: 38939614526 — all 10 jobs passed on exact head 2cb41379b74b455d6a367ce329bbcff62523a90b
  • Native Windows smoke passed actual one-cell box drawing, mouse/Quick Edit ownership, Ctrl+C, Ctrl+Z, following input, Alt+F, Unicode, cancellation, and exact input-mode/output-code-page restoration
  • Runtime suites passed on Windows, Linux, and macOS
  • Package build, all four contract shards, compatibility fixtures, public-API freeze, and validated artifact passed
  • Documentation audit found no roadmap files remaining at the repository root and no missing repository-relative Markdown targets
  • Red/green evidence:
    • 38846453404 demonstrated the missing UTF-8/output and mouse-mode behavior
    • 38846761191 passed after the implementation
    • 38847298056 demonstrated the 1.29.2 release-identity requirements before metadata was updated

Compatibility

No public API or production dependency changes. Targets remain .NET 8, .NET 9, and .NET 10.

@uniblab
uniblab marked this pull request as ready for review October 16, 2026 04:02
@uniblab uniblab self-assigned this Oct 16, 2026
@uniblab
uniblab merged commit db5fcff into main Oct 16, 2026
10 checks passed
@uniblab
uniblab deleted the fix/1.29.2-windows-console-interop branch October 16, 2026 17:32
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