Repository navigation
/track: one live result of a finite command, refreshed in place (#393) - #416
Merged
Merged
Conversation
/track <command> (or --every 5s -- <command>) writes the command and a note once, then draws a status row and the latest completed result under them, replaced on every refresh with a stable height. Live rows are derived: never stored, found, selected or copied, so nothing accumulates per refresh. /track copy, refresh, pause, resume and stop; stopping leaves the last result in the transcript once. /watch keeps its manager and behavior. The shared scheduler takes draft PR #394's hardening as written (strict cadence parsing; refusing substitutions, background jobs and heredocs; UTF-8-safe bounded capture with a truncation flag; visible timeouts and spawn errors; completion on stdio close; a stop grace period; at most 8 trackers), and its tests. Samples now use the live shell's PATH. The derived-row flag from Semantic Output is generalized for both.
This was referenced Oct 18, 2026
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.
Stacked on #415 (Semantic Output) → #414 → #413 → #412 → #411. Merge in order. This supersedes draft #394: its scheduler and panel code and its tests are carried here (see below).
What
/track df -hor/track --every 5s -- docker system df:sh -cand your shell's PATH, not its aliases or functions.live · every 5s · updated 13:49:25 · exit 0 · 12 runs, a failing exit, timed out, could not run, paused,no new result for …(stale),refreshing…, stopped;/copynever include them, and nothing accumulates per refresh./track copy [N]copies the latest completed result as plain text;refresh(refused while a sample runs, never overlapped),pause,resume,stop [N|all]./watchkeeps its manager and behavior (Ask, palette and Actions paths unchanged). Both names share one scheduler, and the manager shows both.Reconciling draft #394
src/tasks/WatchTasks.tsandsrc/tasks/WatchPanel.tsare taken from Track live commands with /track (initial slice of #393) #394 as written. Neither file changed ondevsince Track live commands with /track (initial slice of #393) #394's base.&and heredocs; an exactdocker system dfallowance; at most 8 active trackers.close; TERM then KILL with a grace period; copy-latest in the manager.tests/track.test.tsfrom Track live commands with /track (initial slice of #393) #394 is kept. Its alias expectations now include thetrackflag.docs/development/track-live-command-refresh.md, revised to match what ships.sampling(id); the transcript block (OutputBuffer.addTrackBlock,setLiveRows, presenterliveRows);trackBlock.ts; the final result on stop;/track copy.Ownership
Window-owned, as
/watchalways has been. Detach or exit stops trackers and their processes, and they are not restarted on reattach. Service-owned scheduling on the #382 supervisor is deferred and documented.Tests
track.test.ts:trackApp.test.ts(real scheduler andsh):/watchstill opens its manager.trackLive.test.ts(real PTY through the binary):/track copyputs the latest result on a stand-in clipboard;/track stopleaves it, and the saved journal holds the final result once and no earlier refresh.dist; they pass after a rebuild when run alone.Not verified
Physical terminal checks:
docs/testing/v021-physical-qa.md, section 5, not run. Docker examples need a host with Docker.Refs #393, #394, #410