Skip to content

Release v2.4.1#5398

Merged
tig merged 16 commits into
mainfrom
release/v2.4.1
May 24, 2026
Merged

Release v2.4.1#5398
tig merged 16 commits into
mainfrom
release/v2.4.1

Conversation

@tig
Copy link
Copy Markdown
Member

@tig tig commented May 24, 2026

Release v2.4.1

Version: 2.4.1
NuGet Package: Terminal.Gui 2.4.1

What happens when this PR is merged

  1. ✅ The Finalize Release workflow will automatically create tag v2.4.1
  2. ✅ The Publish workflow will build and push to NuGet.org
  3. ✅ A GitHub Release will be created with auto-generated notes
  4. ✅ A back-merge PR from maindevelop will be opened

Checklist

  • CI passes on this PR
  • Version looks correct: 2.4.1
  • Release notes reviewed (will be auto-generated on merge)

tig and others added 16 commits May 23, 2026 13:33
Back-merge v2.4.0 from main into develop
- Update Directory.Packages.props: Terminal.Gui.Editor version 2.2.6-local -> 2.4.1
- Restore Terminal.Gui.Editor package pattern in nuget.config for nuget source
- Delete local_packages/*.nupkg hack files
- Delete LocalPackagesTests.cs (tested the hack, no longer applicable)

Terminal.Gui.Editor 2.4.1 is now on nuget.org targeting Terminal.Gui 2.4.0.

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

Fixes #5380. Remove local Terminal.Gui.Editor package hack
Two issues introduced by PR #5368:

1. Two separate metadata entries in docfx.json with the same dest (api)
   caused DocFX to overwrite Terminal.Gui's TOC with Editor-only namespaces.
   Fix: combine both DLLs into a single metadata entry.

2. EditorRef could not restore Terminal.Gui (transitive dep of TG.Editor)
   because the repo-root nuget.config routes Terminal.Gui* exclusively to
   LocalPackages. Fix: add a local nuget.config for EditorRef that resolves
   all packages from nuget.org.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add a public instance method on the Markdown view that renders markdown
content to ANSI escape sequences without requiring Application.Init() or
an interactive TUI session. The method encapsulates the headless driver
workaround into a single call:

  string ansi = markdownView.RenderToAnsi(text, width: 80);

The method:
- Creates a temporary headless ANSI driver internally
- Copies SyntaxHighlighter, MarkdownPipeline, UseThemeBackground, and
  ShowHeadingPrefix configuration from the instance
- Calculates full content height and renders the entire document
- Returns the ANSI string without mutating the calling instance

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Fix API docs TOC showing only Editor namespaces
Wrap the temporary IApplication and Markdown view in using declarations
so they are disposed on all paths, including when Layout(), Draw(), or
a custom ISyntaxHighlighter throws an exception.

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

The repo-root nuget.config has packageSourceMapping that restricts
Terminal.Gui* packages to LocalPackages source. Adding <clear /> to the
packageSourceMapping section in EditorRef's config ensures all packages
resolve from nuget.org regardless of parent config inheritance.

Fixes API docs build failure after #5387 merge.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Add MAX_RENDER_WIDTH (4096) upper bound to prevent OOM from absurd widths
- Wrap env var set/restore in a static lock for thread safety
- Use initial height of 1 instead of width for first layout pass
- Fix XML docs to clarify ShowCopyButtons is always disabled for ANSI output

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Fix EditorRef packageSourceMapping to resolve API docs build
Fixes #5385. Add Markdown.RenderToAnsi() API for headless ANSI rendering
Minimal standalone .NET console app that demonstrates incorrect wide/fullwidth
Unicode character rendering in terminal emulators. Outputs grids of emoji, CJK,
and mixed-width characters with box-drawing separators that should align
vertically. If they don't, the terminal has a wcwidth bug.

Intended for use in bug reports against terminals that mishandle wide chars.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add Ghostty to the terminal compatibility matrix in BUG_REPORT_TEMPLATE.md
as passing all tests.

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

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add wide character rendering repro app for terminal bug reports
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 7f38164dca

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread Terminal.Gui/Views/Markdown/MarkdownView.Ansi.cs
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