Repository navigation
OMNIS-36: Polish the TUI after the first reviews - #45
Merged
Merged
Conversation
The filter and the option value editor kept the cursor at the end of the text, drew it as a fake underscore and ignored paste. Both now keep a cursor position, handle left/right/home/end/delete, accept bracketed paste (cleaned of control characters) and show the real terminal cursor, also while a long value is scrolled.
Move the control-character cleaning into modedit.Clean so that omnishell list uses it too, and clean ModuleView.Unavailable and the filter header in the TUI.
A rejection such as the managed-shells message was cut at 80 columns. The footer now wraps it over up to three lines, and the body shrinks by the same amount. The "Terminal too small" line is cut to the terminal width.
Also say in the Host line that a module that only lacks OS support can still be enabled, but apply skips it.
Long plan lines and errors wrap instead of being cut, and the error scrolls like the plan. y/enter only hand over to apply while the plan is on screen, a second plan is not requested while one is still being computed, and the footer says apply asks again.
A toggle whose write succeeded but whose status re-read failed now shows the written state, and the options screen locks its value keys (r reads again) instead of computing the next change from stale rows. An external SIGINT ends the UI quietly.
Rewrap the tui --help text to 80 columns, mention the OS-only case in the README and Host line, name Enter next to y in CLAUDE.md, rewrap the changelog entry and keep editors from stripping the golden files.
…nored plan key Review findings: an option whose write succeeded but whose re-read failed was missing from the header's change count, and pressing a while an earlier plan was still being computed looked like a dead key.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
OMNIS-36
Polishes the TUI with the points deferred from the reviews of OMNIS-31 to OMNIS-34, plus a finding from manual testing of the options editor: the text cursor could not be seen or moved.
Changes
sanitizeis nowmodedit.Clean;omnishell listuses it for table and JSON, andModuleView.Unavailableand the filter header are cleaned too.applyskips it.y/Enter only hand over while the plan is on screen,ais ignored (with a note) while an earlier plan is computed, and the footer says apply asks again.rreads again) and still counts the change.tui --helphas no line over 80 characters,.gitattributesprotects the golden files from whitespace stripping.Commits
Test plan
Run locally:
go vet ./...,go test ./... -race,golangci-lintv2.13.2 (0 issues), all six release targets build,go.modandgo.sumunchanged. Driven in a pseudo-terminal with a throwawayHOME: the cursor is shown and moves with the left key.For a reviewer, in a real terminal with a scratch
HOME:omnishell tui,oonfzf, Enter ondefault_opts: the cursor is visible, left/right/home/end move it, typing and pasting insert at the cursor./in the browser: move the cursor and paste into the filter.zshonlyon a bash-only host: the full message is readable.aon a long plan: lines wrap and scroll; do not confirmyunless you wantapplyto run.