Repository navigation
feat(agents): show the task board as kanban columns - #1548
Open
Gaurav-Gosain wants to merge 1 commit into
Open
Gaurav-Gosain wants to merge 1 commit into
Gaurav-Gosain wants to merge 1 commit into
Conversation
The board in the agents view now shows one column per stage, side by side, with a count in each head. Cards show the title, the holder's mark and name or why they are blocked, and the id and age. h and l move between columns, j and k between cards. H and L (or shift with the arrows) move the card a stage through set-task-stage, in the list too. enter goes to the holder's pane, or starts an agent on a free card. n adds a card to the column with add-task. A card dragged onto another column moves to that stage. Empty and folded columns take only the width of their head. Done starts folded and lists the newest first. When the columns do not fit, the board shows the columns round the cursor and counts the rest. Under 80 columns, and after B, the board is the list as before. The choice of list or columns is kept in the state file. TestTaskBoardGroupsCardsByStage covers the columns, the key moves and the drag, and saves frames at 160x45 and 100x30, dark, light and at 16 colours.
Contributor
Binary size
The ceiling is 47000000 bytes for each target. Main's size is from main at f75ac39 (https://github.com/Gaurav-Gosain/tuios/actions/runs/41796786838). State the size cost in the pull request body. CI fails only above the ceiling. |
Gaurav-Gosain
marked this pull request as ready for review
November 4, 2026 09:02
Gaurav-Gosain
added a commit
that referenced
this pull request
Nov 4, 2026
…kpit The cockpit's tabs beside the thread: - Changes: the agent's worktree diff (review-diff) by file, highlighted, with its review notes; Add a note writes one (review-note) and Send notes to the agent hands them over (send-review). - Checkpoints: the agent's turns (list-checkpoints), newest first, with the diff of the one chosen (checkpoint-diff); Restore takes a second click and runs restore-checkpoint. - Mail: the mail to and from the agent (read-agent-messages, peeked, so nothing is marked read), its text as Markdown, Reply as you, and mail to the agent as the person (send-agent-message). Held mail passes on from the row's menu or with p (release-agent-message). - Board: the session's task cards as kanban columns, one per stage, as tuios PR #1548 draws them in the TUI. Done starts folded. A card shows its title, its holder's state and name, Blocked, or free, and its id and age. h l j k move, H L or Shift with the arrows move the card a stage (set-task-stage), Enter goes to the holder, n adds a card (add-task), t gives the card to the selected agent (claim-task). A click selects a card and the selected card drags to another column. Each tab reads the daemon when it opens and on the daemon's mail and task events, never on a timer. m, b and v open Mail, Board and Changes. Menu builders no longer change state: MyGo runs them to collect shortcuts too, which moved the selection. A click or key that changes state on a plain element asks for another build, which showed the change a frame late before.
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.
The task board in the agents view (
b) now shows one column per stage, side by side, like a classic kanban board. The list it showed before is still there behindB.What it does
[tasks] stagesshows, in stage order, with the count in each head. A column with no card, and a folded column, take only the width of their head, so the columns with cards get the room.Blockedand why, orfree, and its id and age on the right.RowStateand 16-colour mark the list uses. All colours come from the cockpit look, so there are no literals.For a click on the head opens it, and open it lists the newest card first.3›). Each column scrolls on its own and keeps the cursor's card in view. Under 80 columns the board falls back to the list.Keys and mouse
hland the arrows go between columns.jkgo between cards.HL, orshift+leftshift+right, move the card to the stage before or after, throughset-task-stage. They work in the list too.entergoes to the holder's pane. On a free card it opens the New agent sheet on the card, which is whatnon a card did in the list.nadds a card to the column under the cursor, in the session you are attached to, throughadd-task.ttakes a card, as before.Bswitches between columns and list, and tuios keeps the choice in the state file.I made the columns the default, because they read well at 100 columns and wider. The list stays one key away.
Proof
I extended
TestTaskBoardGroupsCardsByStageand did not add a new test. It now checks the following:Bswitches to the list and back.LthenHmove t4 to review and back.hwithshift+rightandshift+leftmove t2. A drag moves t6 onto the empty Review column and back onto Todo.tuios task ls --json.[tasks] stagesset, only the stages it names have columns.The negative controls are in
NEGATIVE_CONTROLS.md. WithkanbanStepcut,Lleaves t4 in verify. With the drop not callingset-task-stage, the drag leaves t6 in todo. Both fail the test, and the fixed build passes.Idle cost: no timer. Every redraw comes from a key, a click, a pointer move during a drag, or a task event. The frame cache key is the same as before, and a drag or the new-card line marks the frame transient only while it is open.
Binary size, linux/amd64, release flags: 46,919,840 on main, 46,997,664 here, so +77,824 bytes. That leaves 2,336 bytes under the 47,000,000 ceiling. darwin/arm64 is 43,774,002. I replaced a generic stable sort with
slices.Reverseto get under, but the room left is small.just check --changedpasses.fixanddeadcodeonly report.Frames
Columns at 200x55, after a key move, and during a drag:
At 160x45 and 100x30, dark, light and 16 colours: