fix(tui): add on_input_changed handler for live overlay updates #10918
No reviewers
Labels
No labels
auto/needs-reevaluation
controller-managed
overdue
auto/blocked-by-deps
auto/ci-timeout
auto/claimed-implementer
auto/claimed-merge
auto/claimed-reviewer
auto/driver-down
auto/invariant-violation
auto/last-attempt-tier-0
auto/last-attempt-tier-1
auto/last-attempt-tier-2
auto/last-attempt-tier-min
Automation Tracking
auto/needs-conflict-resolution
auto/needs-implementer
auto/postmortem
auto/ready-to-merge
auto/restart-throttled
auto/revert
auto/sentinel
auto/stale-inactivity
auto/unstable
Blocked
Bounty
$100
Bounty
$1000
Bounty
$10000
Bounty
$20
Bounty
$2000
Bounty
$250
Bounty
$50
Bounty
$500
Bounty
$5000
Bounty
$750
MoSCoW
Could have
MoSCoW
Must have
MoSCoW
Should have
Needs Feedback
Points
1
Points
13
Points
2
Points
21
Points
3
Points
34
Points
5
Points
55
Points
8
Points
88
Priority
Backlog
Priority
CI Blocker
Priority
Critical
Priority
High
Priority
Low
Priority
Medium
Signed-off: Owner
Signed-off: Scrum Master
Signed-off: Tech Lead
Spike
State
Completed
State
Duplicate
State
In Progress
State
In Review
State
Paused
State
Unverified
State
Verified
State
Wont Do
Type
Automation
Type
Bug
Type
Discussion
Type
Documentation
Type
Epic
Type
Feature
Type
Legendary
Type
Refactor
Type
Support
Type
Task
Type
Testing
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
cleveragents/cleveragents-core!10918
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "bugfix/m8-tui-on-input-changed"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Fixes issue #4738 — the TUI app was missing an
on_input_changedevent handler, causing both the slash command overlay and the reference picker overlay to never update while the user was typing.Changes
src/cleveragents/tui/app.py: Addedon_input_changedhandler that:/, filters slash commands by the query after the slash in real time@, extracts the token after the last@and updates the reference picker with matching suggestionsfeatures/tui_app_coverage.feature: Added 5 BDD scenarios covering all branches of the new handlerfeatures/steps/tui_app_coverage_steps.py: Added step definitions for the new scenariosBefore
The slash command overlay was set once on mount with all 70 commands and never updated again. The reference picker was only updated in
on_input_submitted— after the user had already submitted the message.After
Both overlays update live as the user types, providing the interactive autocomplete UX described in the spec.
Closes #4738
This PR blocks issue #4738
Automated by CleverAgents Bot
Supervisor: Implementation | Agent: task-implementor
on_input_changedhandler in TUI app #4738PR Review: fix(tui): add on_input_changed handler for live overlay updates
Linked Issue
Summary of Changes
This PR adds the missing
on_input_changedevent handler tosrc/cleveragents/tui/app.pythat enables live overlay filtering as the user types. Two new test files are added:features/tui_app_coverage.feature(5 new BDD scenarios) andfeatures/steps/tui_app_coverage_steps.py(step definitions). The handler correctly branches into 3 cases:/prefix filters slash commands,@in text updates the reference picker, and plain text resets both overlays.Blocking Issues
1. CI is failing — unit_tests job failed
The
unit_testsCI job is failing, andstatus-check(which aggregates results) also fails. Coverage job is skipped. Per company policy, all 5 required CI gates (lint, typecheck, security, unit_tests, coverage) must pass before merge. Additionally, the contributing guide states: "PRs with failing CI will NOT be reviewed." Thelintandtypecheckjobs passed, which means the new code has no formatting or type errors — the failure is in the test logic itself.2. PR has zero labels
The PR was submitted with no labels at all ("labels":[]). Per PR requirements: "Exactly one Type/ label" is mandatory. Since this PR fixes a confirmed bug (#4738, which has Type/Bug label), the PR should have at minimum:
Type/BugPriority/Critical(bug issues always get Priority/Critical per project policy)3. Milestone mismatch
The PR is assigned to milestone v3.8.0 (M9), but the linked issue #4738 is in milestone v3.7.0 (M8). The branch name
bugfix/m8-tui-on-input-changedconfirms the work belongs to M8. The PR milestone should be corrected to v3.7.0 to match the linked issue.Non-Blocking Observations
Performance:
slash_command_specs()called on every keystrokeIn the
/prefix branch,slash_command_specs()is called on every character typed:This is inherited from
on_mountbut is inefficient for a handler that fires on every keystroke. Suggestion: cache the command specs once and filter them in memory instead of regenerating all 70 specs on each keystroke.Positive Findings
/prefix,@in text, plain text) are logically correct and handle edge cases (empty queries, trailing@).# type: ignoreanywhere.if/elif/elseflow, descriptive variable names, comprehensive docstring.Automated by CleverAgents Bot
Supervisor: PR Review | Agent: pr-review-worker
Automated by CleverAgents Bot
Supervisor: PR Review | Agent: pr-review-worker
🌱 Grooming: proceed — PR cleared for processing.
(check
no_duplicates, categoryno_duplicates)PR #10918 adds a new on_input_changed event handler to the TUI app for live overlay updates to slash commands and reference picker — functionality that was previously missing. No other open PR duplicates this handler or closes issue #4738. While #10911 addresses related TUI suggestion/reference logic, it fixes extraction in the existing on_input_submitted handler rather than adding the new live-update capability, making these complementary rather than duplicate efforts.
📋 Estimate: tier 1.
3-file additive change (+122/-0): TUI handler in app.py, 5 new BDD scenarios in a feature file, and matching step definitions. CI fails with 1 errored Behave scenario ("on_input_changed with empty text resets both overlays") — errored (not just failed) indicates a step definition exception that needs diagnosis and fix. Work requires cross-file context across handler logic, feature spec, and step definitions, plus understanding of the Textual TUI framework's event model. Scope is focused and isolated to TUI overlay handling, but the broken test adds non-trivial debugging burden. Standard tier-1 multi-file fix-the-CI work.
(attempt #4, tier 1)
🔧 Implementer attempt —
rebase-failed.Blockers:
cd02e5a97d5b4b1bbb92(attempt #6, tier 1)
🔧 Implementer attempt —
ci-not-ready.5b4b1bbb92bf54d133f2✅ Approved
Reviewed at commit
bf54d13.Confidence: high.
Claimed by
merge_drive.py(pid 405719) until2026-06-10T15:46:28.112067+00:00.This claim is advisory and will be released when the cycle ends, or after the TTL by a sibling driver's expired-claim sweep.
bf54d133f2eedd0b7a4dApproved by the controller reviewer stage (workflow 370).