Skip to content

v1.95.0 ·

The autopilot watch shows who needs you

aidlc autopilot status --watch used to draw a plain table with seven columns. On a laptop screen or in a split pane, the right edge fell off. That edge was the last event, the one column that says why an item is stuck. Titles were cut at 40 characters. Nothing had colour, so an item in error looked exactly like one that was fine.

Cards first, and two other views

The watch now opens in cards. Each item gets a coloured step badge, its full title wrapped onto further lines instead of cut, a phase strip, its tasks as a small bar, its pull request and CI state, and its last event. An item that needs you says why first: the error, the review to approve, or the pull request to merge. At 60 columns every title and every error still shows. When the cards do not fit the screen's height, each one folds to a single line.

--view table keeps the old row shape, in colour. As the terminal narrows it drops the last event, then the phase, then the time in step, and a footer names what it hid. --view lanes groups items into building, in review, merging and needs you, side by side from 120 columns and stacked below that with needs you on top.

Press v to cycle views and q to leave. The run keeps going. The view draws on the alternate screen, so leaving gives the shell back as it was, and when the run ends the last frame is printed to the normal screen so it stays in the scroll-back. In the console, /watch now opens the same full-screen view. Ctrl-T still toggles the inline updates.

Why by hand

I wrote the colour codes by hand instead of adding a library. The watch already wrote its own escape codes, and a handful of colours did not justify a new dependency. Colour is never the only signal: every badge carries its step in words, NO_COLOR turns colour off, and piped output prints one plain frame with no escape codes at all.

The cost of that choice is that I had to measure visible width myself, so a line holding colour codes is cut by what you see, not by its byte length. Planting the old length check back made the narrow-width tests fail, which is how I know they test something.

What it does not do

Two things changed under scripts and users. /watch in the console used to do what Ctrl-T does, and now it does not. Piped status --watch prints cards, not the table row, so a script that parsed it needs --view table.

Wide characters such as emoji and CJK are counted as one column, so a title full of them can still overflow. Testing also found a pseudo-terminal that reports zero columns and zero rows, which laid the header out one character per line. Zero now means "no size" and gets 80 columns. The console's own path into the view was covered by scripted tests only, never driven in a real terminal.