Repository navigation
Background task UI: task bar, keys, suggestion strip, manager, output views (#382) - #384
Closed
raiseCatError wants to merge 6 commits into
Closed
raiseCatError wants to merge 6 commits into
raiseCatError wants to merge 6 commits into
Conversation
…put views #382, stacked on the background tasks core. Pure presentation and input logic; the running app is unchanged until integration. - Task bar above the composer: no rows when empty, one summary row collapsed, at most four expanded with an overflow row; rows reserved always equal rows drawn; every state has a mark and a word. - Keys: Up enters the bar only from an idle composer (empty draft, not in history, no foreground command, no other owner), the rule the agent shelf already uses; Shift+Up and /background always work. In the bar: select, Enter view, x stop and then the next escalation by name, Delete removes finished tasks only, any other typing returns to the composer unlost. - Suggestion strip: Enter keeps the foreground path, b/a/n for background once, always, never; it says a background run has no aliases, functions or unexported variables. /background run keeps the command byte for byte and refuses programs that need the terminal. - Output: an NMSh-owned transcript block per task with folded and dropped counts, and a focused live view that follows until scrolled back. - Manager: tasks with details and stop/remove/clear; preferences including per-family decisions. - Commands, families and directory names are drawn through stripTerminalControls (found by a security review of this slice).
17 tasks
10 tasks
…ut, escalation is paced, narrow rows keep the task - The manager selected by row index; a task starting or finishing reordered the list, so x or Delete acted on a task the person never chose (with t1 selected, a new task made x stop t2). Selection is a task id now. - The output view anchored a scrolled-back position to a row index; at the retention limit every new line moved the text being read. It is anchored to the line's seq, and says when those lines were dropped. - A double press or held x went from SIGINT to SIGKILL at once; stronger signals wait 1.5 s after the previous request. - A finished task with processes left offers x to kill them and is not removed while they run. - At 40 columns a stopping task's label disappeared behind its state words; key hints drop whole entries and keep Esc; the manager list scrolls with the selection; the view shows the unfinished progress line; removing a task selects its neighbour; the hint names Shift+Up when Up is off. - /background parsing trimmed with a quadratic regular expression; it uses trimEnd.
raiseCatError
added a commit
that referenced
this pull request
Oct 11, 2026
…sk quality and security pass New heads for #375-#378, #383 and #384; a prioritized findings table with the fixes and their commits; the investigated locations that are not vulnerabilities (the demo renderer, configAssist.ts:164, the session socket, Git in untrusted repositories, dependencies); what cannot be validated before integration; and the contract changes Codex needs at integration, including one precedence for Up from an idle composer.
Owner
Author
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.
Second slice of #382, stacked on #383. Pure presentation and input logic (
bar.ts,suggestion.ts,view.ts,manager.ts); no shared files touched. Design:docs/design/background-task-ui.md.● 3 background tasks · 2 running · 1 failed); expanded up to four rows with overflow; reserved rows = drawn rows; marks + words per state (Safe/NO_COLOR complete)./backgroundalways work; in the bar ↑↓, Enter view,xstop then the next escalation by name, Delete removes finished tasks only, Esc back, other typing returns to the composer unlost.bonce,aalways,nnever, Esc edit; states that a background run has no aliases/functions/unexported variables./background runkeeps the command byte for byte and refuses terminal-bound programs./background,/bg): tasks + details + stop/remove/clear; preferences incl. per-family decisions.stripTerminalControls(from a review of this slice; tested with OSC/CSI/bidi payloads in command and cwd).Tests:
tests/backgroundTaskUi.test.ts(plus the core suites: 23/23 locally). Remaining: TerminalApp/service integration after #359's checkpoint; adopting #369's action controls; physical QA.Update (85ac421), quality and security pass: the
/backgroundmanager selected by row index, so a task starting or finishing madex/Delete act on a task the person never chose (reproduced: t1 selected, a new task,xstopped t2); selection is a task id now. The output view kept a scrolled-back position as a row index and drifted at the retention limit; it is anchored to the line's seq. A double press or heldxwent from SIGINT to SIGKILL at once; stronger signals wait 1.5 s (ESCALATION_PAUSE_MS). Finished tasks with processes left offerx kill what is leftand cannot be removed while they run. Narrow rows keep the task label, hints drop whole entries and keep Esc, the manager list scrolls, the view shows the progress line, removal selects the neighbour,/backgroundparsing is linear. Regressions intests/backgroundTaskUi.test.ts. CI green on85ac421.