Skip to content

Fixes #5638. Scope ANSI key deduplication - #5643

Draft
YourRobotOverlord wants to merge 2 commits into
tui-cs:developfrom
YourRobotOverlord:fix/5638-revert-5618-reimpl-dedup
Draft

Fixes #5638. Scope ANSI key deduplication#5643
YourRobotOverlord wants to merge 2 commits into
tui-cs:developfrom
YourRobotOverlord:fix/5638-revert-5618-reimpl-dedup

Conversation

@YourRobotOverlord

Copy link
Copy Markdown
Collaborator

Summary

Revert the timing-based printable suppression from #5618 and replace it with protocol-aware, batch-scoped deduplication.

Changes

The ANSI character stream has no physical-key identity. Consequently, duplicate halves split across separate processing batches are delivered separately; this is the deterministic tradeoff for avoiding a timing heuristic.

Testing

  • dotnet build --no-restore
  • dotnet test --project Tests/UnitTestsParallelizable --no-build --filter-class "*KittyKeyboardPipelineTests" — 108 passed
  • AnsiResponseParserTests — 59 passed
  • InputProcessorImplTests — 31 passed, 1 pre-existing skip
  • dotnet test --project Tests/UnitTests.NonParallelizable --no-build — 72 passed, 2 pre-existing skips
  • dotnet test --project Tests/IntegrationTests --no-build — 437 passed
  • full parallelizable suite — 17,579 passed, 17 skipped; four unrelated terminal-color expectation failures reproduced on the comparison branch, plus one global-state test that passed in isolation

To pull down this PR locally:

git remote add yourrobotoverlord https://github.com/YourRobotOverlord/Terminal.Gui.git
git fetch yourrobotoverlord fix/5638-revert-5618-reimpl-dedup
git checkout yourrobotoverlord/fix/5638-revert-5618-reimpl-dedup

Revert b2525d1 to evaluate a replacement for the timing-based suppression window.

Refs tui-cs#5638
Use parser provenance and input-batch boundaries so legacy keys cannot match stale suppression state without relying on timeouts.

Fixes tui-cs#5638
Refs tui-cs#4918, tui-cs#5616
@YourRobotOverlord
YourRobotOverlord requested a review from tig as a code owner August 23, 2026 05:19
@YourRobotOverlord
YourRobotOverlord marked this pull request as draft August 23, 2026 05:29
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.

ANSI printable-suppression window swallows real Tab within 50ms of Shift+Tab

1 participant