Behavioral Impact

Moved the app-level ESC cancellation cascade into a dedicated ui/esc module and delegated actioncancelrequest() to an explicit handler. This isolates ESC logic from app internals and makes the dependency inputs explicit.

tools-only Updated 7 repo stars

File contents

Summary

Moved the app-level ESC cancellation cascade into a dedicated ui/esc module and delegated action_cancel_request() to an explicit handler. This isolates ESC logic from app internals and makes the dependency inputs explicit.

Context

  • New module: src/tunacode/ui/esc/
  • Caller: src/tunacode/ui/app.py now delegates ESC handling

Changes

  • Added EscHandler with explicit dependency inputs for request task, shell runner, and editor state.
  • Added dependency protocols in ui/esc/types.py to avoid coupling with concrete UI classes.
  • Updated TextualReplApp.action_cancel_request() to delegate to the handler.

Behavioral Impact

  • No user-facing behavior changes.
  • ESC handling order and early-return cascade remain identical.
  • Modal ESC behavior unchanged (still handled in modal screens).

Related Cards

  • [[ui-esc-handling]]
  • [[textual-app]]

tools-only/X-Skills/tree/main/development/472-2026-02-02-esc-handler-extraction_fe702a4e commit c5081e9853

Frequently asked questions

npx skillmds@latest add tools-only/behavioral-impact-7