What's Changed
- Update Examples link in README.md by @tig in #5104
- Back-merge v2.0.0-rc.7 from main into develop by @tig in #5107
- Reframe layout docs around responsive UI and instructional style by @Copilot in #5110
- Back-merge v2.0.0 from main into develop by @tig in #5113
- Fix XML comment has cref attribute 'Buttons' that could not be resolved CS1574 by @BDisp in #5118
- docs: tweak hero gif stats per #5108 by @livlign in #5121
- Fixes #5088 - Margin Shadow sizing wrong by @tig in #5101
- Back-merge v2.0.1 from main into develop by @tig in #5117
- Fixes #5072. TableView reserves space for later columns when laying out by @harder in #5083
- Fixes #5119. Popover isn't recalculating it's position when terminal is resizing by @BDisp in #5120
- Fixes #5122. Visible popovers are always layout and redrawn in every iteration unnecessarily. by @BDisp in #5123
- Fixes #5075. TableView ShowVerticalCellLines renders incorrectly with custom ColorGetter by @harder in #5128
- Fixes #5132. TableView Home/End navigation with FullRowSelect by @Copilot in #5133
- Fixes #5068. TableView appends ellipsis indicator when cell content is truncated by @harder in #5129
- Reverts #5133. Revert TableView Home/End FullRowSelect change by @tig in #5136
- Fixes #5130. Fix OutputBufferImpl race condition on Contents reference by @tig in #5131
- Fixes #5137 - BREAKING CHANGE - Rename
TableSelection.CursortoTableSelection.SelectedCellby @Copilot in #5142 - Fixes #5145. ReadOnly TextView mouse selection still cannot include final character by @BDisp in #5146
- Fixes #5137. Add custom header styling for TableView by @Copilot in #5138
- Fixes #5112. AOT config warning cleanup by @harder in #5134
- Fixes #5149. Improve DropDownList keyboard use when closed by @Copilot in #5151
- Fixes #5157. Add
RunAsync(IRunnable, CancellationToken)by @Copilot in #5159 - Fixes #5158. Refactor
FileDialogbase type from Dialog to Dialog<IReadOnlyList?> by @Copilot in #5160 - Fixes #5103. Disable NerdFonts default in FileDialogExamples scenario by @Copilot in #5150
- fix: Key.Equals honors GetHashCode contract; drops Handled from identity (#5170) by @tig in #5179
- docs: AI test guidance — markers and raw-string asserts by @tig in #5189
- fix: UnixRawModeHelper safe restore on crash + valid-state guard (#5164) by @tig in #5186
- docs: clarify SessionBegun/SessionEnded as token lifecycle hooks (#5162) by @tig in #5188
- fix: ApplicationImpl.Invoke throws NotInitializedException after Dispose (#5163) by @tig in #5185
- fix: ConcurrentDictionaryJsonConverter rejects duplicate keys (#5173) by @tig in #5181
- refactor: remove Region.DrawOuterBoundary debug API (#5168) by @tig in #5183
- fix: KeyBindings preserves Key on bindings created via Add (#5171) by @tig in #5177
- fix: Region.XOR computes correct symmetric difference (#5167) by @tig in #5178
- Fixes #issue. Correct AI guidance API entries for typed views and wrappers by @Copilot in #5191
- Fixes #5148. Add selection and copy-to-clipboard to Markdown view by @Copilot in #5152
- Fixes #3995. Add notify-clet.yml: dispatch to gui-cs/clet on develop publish + release tag by @Copilot in #5197
- Fixes #5192. Fix MarkdownView GetContentHeight overestimating height with tables by @Copilot in #5194
- Fixes #5193. Emit OSC 8 hyperlink sequences in Driver.ToAnsi() by @Copilot in #5195
- notify-clet: deterministic version handoff + flat-container poll by @tig in #5198
- Fixes #3961. Replace ColorPicker TextField+autocomplete with DropDownList by @Copilot in #5199
- Fixes #5203 - Add TrySetValueFromString to IValue for IParsable-based string assignment by @Copilot in #5205
- Fixes #4859. Render to /dev/tty when stdout is redirected by @Copilot in #5208
- Fixes #5209. TableView header separator lines draw with focus attribute by @Copilot in #5210
- Fixes #5211. FlagSelector ENTER should not toggle, just accept. by @Copilot in #5212
- Fixes #5202 - BREAKING CHANGE- Refactor LinearRange to implement IValue by @tig in #5204
- Fixes #5213. Security: fix PowerShell command injection in WSLClipboard.SetClipboardDataImpl by @Copilot in #5218
- Fixes #5216. FileDialog: reject path-traversal in Rename/New and skip symlinks in search by @Copilot in #5222
- Fixes #5215. Sanitize control characters to prevent terminal escape injection by @Copilot in #5223
- Fixes #5214. Security: restrict Link.OpenUrl to safe URI schemes; replace cmd /c start with ShellExecute on Windows by @Copilot in #5220
- Fixes #5215. Bound ANSI parser held content to prevent memory DoS by @Copilot in #5221
- Fixes #5227. Make links inside markdown table cells fully interactive by @Copilot in #5228
- Revise security policy for supported versions by @tig in #5235
- Fixes #5206. Add IValue support to ScrollSlider by @Copilot in #5229
- Fixes #5153. Make Markdown work like Label by @harder in #5231
- Fixes #5140. TableView: support CollectionNavigator = null to disable type-to-search by @harder in #5232
- Fixes #5126. TableView: don't raise Activating when click is outside any cell by @harder in #5233
- Fixes #5076. Allow hiding TableView outer vertical lines by @harder in #5234
- Fixes #5230 - Markdown checklist glyph rendering by @Copilot in #5236
- Fixes #5237. Fix Markdown table row height calculation by @Copilot in #5238
- Fixes #5239. AOT configuration initialization crash by @Copilot in #5240
- Back-merge v2.1.0-beta.1 from main into develop by @tig in #5244
- Fixes #5259. AOT: use source-generated JSON serializer for dictionary construction in DeepCloner by @Copilot in #5243
- Release v2.1.0-rc.1 by @tig in #5246
Full Changelog: v2.1.0-beta.1...v2.1.0-rc.1