Skip to content

Choose progressive or full click-hint keys - #1735

Merged
trissim merged 1 commit into
mainfrom
fix/hint-label-choice
Nov 11, 2026
Merged

trissim merged 1 commit into
mainfrom
fix/hint-label-choice

Conversation

@trissim

@trissim trissim commented Nov 11, 2026

Copy link
Copy Markdown

2 choices, 1 saved preference

P1449 adds UI → Hint labels:

  • Next letter (default): reveal the next untyped letter progressively.
  • Full key: show the whole stable assigned sequence at once.

The choice is the actual Textual caption policy, composed through inheritance. ProfileKeys reads the saved preference and the native hint session retains it; no string switch, mode flag, target inventory or copied activation is added. Changing the setting affects the next hint session. Keys, prefix matching, focus, Escape and original click effects are unchanged.

Dependency

Merge OpenHCSDev/textual#293 first. The ordinary installer resolves both tracked mains; no hand-kept package pin is needed.

Settings ownership

App-bound settings callbacks now live in ToadApp.open_settings and ensure_settings_file, with their old SavedSettings entry points deleted. The persistence/schema module no longer imports its application through TYPE_CHECKING. NRA also proved and promoted widget_actions' guarded TextArea import against the repository graph.

Evidence

  • 120 checks passed in the settings, keymap, sidebar and exit consumer batch. Its added UI test initially failed because the fixture used the conversation-block API for a generic widget; the fixture now mounts its targets through the native screen owner and enables notification rendering.
  • The corrected UI integration check passed in 7.81s, exit 0: choose both modes in the real settings picker, activate a native hint, preserve the local draft, save and reload each choice.
  • Native Textual checks passed separately; see Handle a lost transcript source in one place #293 for its exact final count and right-edge case.

Edits were simulated, reviewed and applied through NRA's revision-checked sequence. Installed physical two-sidebar qualification follows the paired merge. No user input was submitted or replayed.

@github-actions

Copy link
Copy Markdown

debt-src at 59f1ed9 blocks on 7 lines:

grew NoneAbsence:src/toad/app.py +1
grew TypeErrors:src/toad/hint_labels.py +1
grew TypeErrors:src/toad/widget_actions.py +1
found NoneAbsence:src/toad/app.py at src/toad/app.py:521 src/toad/app.py:344 src/toad/app.py:244 src/toad/app.py:140 src/toad/app.py:138
found TypeErrors:src/toad/hint_labels.py at src/toad/hint_labels.py:3 (Cannot find implementation or library stub for module named "textual.hint_labels"  [import-not-found])
found TypeErrors:src/toad/widget_actions.py at src/toad/widget_actions.py:26 (Cannot find implementation or library stub for module named "textual.hint_labels"  [import-not-found])
introduced NoneAbsence:src/toad/app.py at lines [344]
Warn-only, never blocks (6)
src/toad/app.py: LintFindings +1
src/toad/widget_actions.py: LintFindings +1
src/toad/hint_labels.py: Unformatted +1
found LintFindings:src/toad/app.py at src/toad/app.py:1 (I001 [*] Import block is un-sorted or un-formatted)
found LintFindings:src/toad/widget_actions.py at src/toad/widget_actions.py:2 (I001 [*] Import block is un-sorted or un-formatted)
found Unformatted:src/toad/hint_labels.py at src/toad/hint_labels.py:1 (Black would reformat this file)

@trissim
trissim marked this pull request as ready for review November 11, 2026 03:58
Copilot AI balanced review requested due to automatic review settings November 11, 2026 03:58
@trissim
trissim merged commit 3d12f00 into main Nov 11, 2026
1 of 2 checks passed

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota. Try requesting a review at a lower effort level.

An organization owner can choose the repository organization as the billing source for reviews requested by members with a paid Copilot license. Learn about Copilot code review billing.

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.

2 participants