Skip to content

Keep the cockpit's place, and stop $EDITOR taking it down - #1

Merged
parrotassassin15 merged 1 commit into
mainfrom
fix/tui-binding-qa
Jul 28, 2026
Merged

Keep the cockpit's place, and stop $EDITOR taking it down#1
parrotassassin15 merged 1 commit into
mainfrom
fix/tui-binding-qa

Conversation

@parrotassassin15

Copy link
Copy Markdown
Member

QA of every footer binding, driven through Textual's test pilot and a real pty for the one key headless cannot reach.

Rebuilding the findings table dropped the cursor to row 0 and re-fired RowHighlighted, so marking or refreshing from any row but the first threw the user back to the top of the list, swapped the detail pane, and discarded the code leads they had just traced. The old test only ever marked the first row, where a reset to row 0 is indistinguishable from no reset at all. The selection is now captured before the rebuild and put back after it, with a guard so the transient row-0 highlight is not mistaken for a move the user made.

A filter matching nothing left selected_key pointing at a finding that was no longer on screen, so f/t/m/R acted on it — including filing a retest for a finding the user could not see. An empty result now selects nothing, and the action keys say so rather than going quiet.

$EDITOR is a command line, not a program name: EDITOR="code -w" looked for a program called "code -w" and the FileNotFoundError propagated out of the action and killed the session over a typo in an env var. It is split now, and an editor that will not start — or a terminal that cannot suspend — is reported in the status bar.

Retests bounce with "Finding not found" wherever the server's retest.request takes a bare finding_id: ids repeat across stores, so an engagement finding is looked up among manual pentest findings and misses. The finding is fine, the request could not name it. Say that, instead of a message that reads as though it had been deleted.

Also: the counts line tracks the filter, so "22 findings" no longer sits above three visible rows.

QA of every footer binding, driven through Textual's test pilot and a real
pty for the one key headless cannot reach.

Rebuilding the findings table dropped the cursor to row 0 and re-fired
RowHighlighted, so marking or refreshing from any row but the first threw
the user back to the top of the list, swapped the detail pane, and
discarded the code leads they had just traced. The old test only ever
marked the first row, where a reset to row 0 is indistinguishable from no
reset at all. The selection is now captured before the rebuild and put
back after it, with a guard so the transient row-0 highlight is not
mistaken for a move the user made.

A filter matching nothing left selected_key pointing at a finding that was
no longer on screen, so f/t/m/R acted on it — including filing a retest for
a finding the user could not see. An empty result now selects nothing, and
the action keys say so rather than going quiet.

$EDITOR is a command line, not a program name: EDITOR="code -w" looked for
a program called "code -w" and the FileNotFoundError propagated out of the
action and killed the session over a typo in an env var. It is split now,
and an editor that will not start — or a terminal that cannot suspend — is
reported in the status bar.

Retests bounce with "Finding not found" wherever the server's
retest.request takes a bare finding_id: ids repeat across stores, so an
engagement finding is looked up among manual pentest findings and misses.
The finding is fine, the request could not name it. Say that, instead of a
message that reads as though it had been deleted.

Also: the counts line tracks the filter, so "22 findings" no longer sits
above three visible rows.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@parrotassassin15
parrotassassin15 merged commit c37e37a into main Jul 28, 2026
0 of 4 checks passed
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.

1 participant