Releases
v0.12.0
Compare
Sorry, something went wrong.
No results found
0.12.0 (2026-11-03)
Features
add handoffs, exclusive issue claims and the handoff actor (task 137.4) (6e024a6 )
agent: add the unregistered copilot adapter (138.5) (d42acd6 )
agent: carry the vincent MCP server into copilot runs (138.8) (2edd185 )
agent: probe copilot's effort catalog and classify a logged-out stop (138.6) (d23b407 )
agent: register copilot in the daemon, config, TUI and CLI (0bc31a0 )
api: accept merge_back on chat handoff (134.15) (9da3251 )
api: add issue ready/unready routes and a delivery's ready (08d239d )
apiclient: add MarkIssueReady/MarkIssueUnready and delivery readiness (49d829b )
apiclient: decode issue_has_live_chat and pin issue-chat wire fields (task 140.10) (ef5c419 )
api: expose the handoff marker on issues and ?handoff= (d0058bd )
api: POST /v1/handoffs, the read routes and their MCP tools (8a86ad3 )
api: refuse work on a moved main task and end its ranges at end_sha (134.12) (45d1378 )
api: serve handoff_id, issue handoffs and the marker's paused fact (a8ac1a0 )
api: serve the issue occupant state, side and merge-back counts, and merge_source_task_id (afba1a5 )
chat: open a chat on an issue in its main worktree (task 140) (28526b1 )
chatrun: record a copilot chat turn's own token share (05d7a08 )
ci: shard testci by test name (03528ce )
cli: add issue ready/unready and task deliver --ready (64d52c0 )
cli: expose side worktrees and merge-back on task add, show and chat handoff (da7233e )
cli: show and filter by the issue lane in vincent issue ls and show (c241738 )
cli: show the handoff marker in the LANE cell and add --handoff (158cbea )
cli: vincent handoff start, ls and show (5c67697 )
config: add tui.tabs, the ordered list of the TUI's main tabs (0058e5c )
copilot: implement FileMentioner and pin copilot as no SkillInvoker (5ee50a1 )
copilot: map restricted onto --available-tools without a shell (edab556 )
copilot: normalize the rich stream events and pin the absent ones (898e993 )
copilot: resume with --resume=<id> and classify a lost session (97fa66d )
deliver resolve workflows through vincent task deliver (task 137.3) (00aa054 )
examples: ship four example handoff workflows with unarmed triggers (3a13d88 )
gate automated forge writes behind a handoff grant (2bf594c )
give handoff workflows their items (6e76fa9 )
issues: bind an issue's main branch to its main-role tasks at creation (14db920 )
issues: derive an issue's lane and attention and serve them on the API (e76a457 )
mcp: accept an array for a repeated query parameter and describe the issue lane (fa20562 )
record each handoff item's outcome with deliver, return, wait and release (c715677 )
record what a task delivered (task 137.2) (8ce4fe8 )
scheduler: admit at most one in-progress main task per issue (e909add )
skill: report copilot reading the published-skill store (d6b6aaa )
store: derive an issue's handoff marker and filter by it (1c94bb3 )
store: hand an issue's main worktree to its next main task (134.12) (ea99b3e )
store: issue_id on task events and a durable issue.lane_changed (d7e55ea )
store: name the issue on every event of a chat opened on one (task 140.9) (22e9e31 )
store: record the state a task was archived from (ba42822 ), closes #750
store: select and list handoffs, and validate a grant (5d65ef4 )
store: store readiness on deliveries and derive hand_off from it (20552c5 )
taskrun: cut side tasks from the issue's main branch without fetching (86e2a41 )
taskrun: hand an issue's main worktree to its next main task (134.12) (846bca9 )
taskrun: merge a finished side task back into its issue's main worktree (7abb234 )
taskrun: stamp readiness at done from the snapshot's hand_off (314af45 )
trigger: fire a type: issues trigger on an issue's lane change (b5013e0 )
trigger: let a create_task action ask for merge_back (task 134.15) (32d51b3 )
trigger: start handoffs from triggers with select and grant, and handoff_changed (0f13b13 )
tui: add shared wrapText and scrollPane, help sheet first (0ff510e )
tui: draw the main-tab strip in the app header, with click-to-switch (8621d4d )
tui: give issue titles room on the issues list and add paging keys (a8ed3a7 ), closes #796
tui: land on the first configured tab and send takeovers back to it (d3a1793 ), closes #789
tui: open a chat on an issue with T from the issue screens (task 140.9) (4af5e7b )
tui: page the Steps timeline and hold its window still (#799 W11) (e76b998 )
tui: render the issues list as a board of the four derived lanes (0419dff )
tui: show handoffs on the issue screens and the Overview (418f98b )
tui: show the main worktree occupant, roles and merge-backs on issues (8369353 )
tui: size popups to the terminal, page their lists, lead the footer with its status (90f95c5 )
tui: switch between main tabs with tab and shift+tab (0f2226b )
tui: sync a project's issues from the issues list with S (9da5b8e )
workflow: add the hand_off key and its editor row (bfdef75 )
Bug Fixes
agent: let copilot's exit code decide, not a session.error (review F1) (978001e )
api: answer user-fixable issue-chat placement failures with 409 and their reason (review F7) (9432315 )
api: ask the forge-write grant for a handoff verb's close and comment (review F1) (15c8ecc )
api: fail the task detail when its handoff cannot be read (review F6) (c9ae5ec )
api: name a chat occupant in the creation hint and on the client (review F3) (cbc31bc )
api: refuse role: handoff on a follow-up and a return's side task (review F2) (47d19dc )
api: report permission on a start_handoff trigger's list row (review F3) (2a0fdf3 )
api: stamp an issue chat's end_sha only once archive lets go, and announce lane moves on its delete (review F8) (3dae5e8 )
ci: clear every stale testci report before a run (review F2) (f0140b7 )
ci: run testci's plain and race passes concurrently (review F1) (3de155f )
ci: scale the rerun failure limit to a split package's share (review F1) (8ccbe38 )
cli: describe closing a chat opened on an issue in chat close (review F6) (03fca68 )
cli: give chat handoff --issue so --merge can work (review F2) (6ad14af )
cli: refuse handoff start --max below 1 (review F4) (1b3c076 )
copilot: re-capture restricted writes outside the worktree (review F1) (8fc98b9 )
copilot: strip an inherited COPILOT_ALLOW_ALL from the child (review F2) (693de64 )
deps: bump the Go toolchain to go1.26.10 (0c3651e )
docs: repaint the palette's ghost border before three screenshots (1fe0cc0 ), closes #743
examples: read merge-train's merge from .pull (review F2) (882fcc5 )
examples: release merge-train items that are not a change (review F3) (30ccf3b )
fakeagent: read every --available-tools value in the widening guard (review F3) (2339be3 )
gate: assert copilot's tokens reach the step row now that 138.7 reports them (review F1) (ff276c4 )
issues: delete an issue GitHub deleted, and sweep on sync now (9fd5e2c )
keymap: keep tab and shift+tab global fixed keys (review F1) (7b0c599 )
procx: quote batch-file command lines for cmd /c (review F1) (d2ea79f )
report codex as reading published skills from the store (#891 ) (e83fa1a )
scheduler: count this walk's own admissions in the working-directory claim (47a3f6f ), closes #749
scheduler: re-check for a live issue chat inside the admission transaction (review F2) (2cb58a0 )
screenshots: press s once in the tui-issues tape to show the done lane (review F3) (f78fc25 )
scripts: match owns' needle on the fields each / filter matches (review F3) (b6438a6 )
skill: do not report a stale store copy as served to copilot (review F2) (af1f120 )
skill: follow the store symlink before calling copilot served (review F3) (b0ae902 )
store: bind a later main task as an adopted branch so it queues (review F1) (c057c77 )
store: clear end_sha when a main task receives a worktree again (review F4) (929093c )
store: drop an imported task's issue role with its issue link (review F4) (2c0a8a2 )
store: keep a merge-back's insert from vetoing its side task's done (review F4) (c38c043 )
store: keep merge-backs outside the branch claim (review F1) (a3b3e06 )
store: never refuse a merge-back on a claimed issue (review F1) (f8cb46e )
store: refuse deleting an issue chat that holds the issue's worktree or main branch (review F1) (e39448f )
store: refuse renaming a main branch another main task shares (review F2) (0509839 )
store: refuse the issue worktree transfer while the predecessor has an open chat (review F5) (0f90d29 )
store: stop offering archive as the way past issue_has_live_main_task (review F6) (45b57a9 )
taskrun: abort a merge-back's merge whenever it ends without merging (review F1, F2, F3) (bc036b7 )
taskrun: block when an agent resolver leaves conflict markers (fc37e92 ), closes #756
taskrun: create no merge-back for a side branch already on the main branch (review F5) (c5018ba )
taskrun: decide an issue main branch's owner from the issue's line (review F1) (067d046 )
taskrun: keep branch_exists for a first main task's foreign branch (review F3) (6b6f50f )
taskrun: remove a handed-on main task's container (review F2) (4075d41 )
tui: adopt the neighbour as the selection when the task is gone (review F16) (0e53c61 )
tui: align pull request rows, name the listed state, wrap notes (7c2c927 )
tui: align the chats board's columns and keep its prompt's answers (cbd1b17 )
tui: append the aborted Overview's outcome separator only with a card (review F14) (548c4c4 )
tui: cap the chat footer to the pane (review F22) (633a89a )
tui: clear the archived board's selection on esc before leaving (review F11) (0b7071e )
tui: count entries, not headers, in grouped popups' cues (review F2) (1afd25d )
tui: count the composer's word-wrapped rows (review F6) (fa7f8da )
tui: count the more cues before pinning the answer popup's question (review F2) (5e12c7b )
tui: cut a wrapText prefix or indent that leaves the text no room (review F10) (d6b1da1 )
tui: draw an issue's handoff rows under Handoff only (review F5) (0d5ff21 )
tui: draw no scroll cue in a one-row pane (review F11) (8d55b00 )
tui: drop a chat send result for a chat the view has left (review F4) (4e354ed )
tui: drop the handoff form's x toggle and count 137.11 in the status (ff93185 )
tui: drop the separator after a footer status with nothing behind it (review F3) (a62e759 )
tui: fit issue prompts by their key line, on the list too (review F10, F11) (f3e058d )
tui: fit the collapsed failure card's headline to the width (review F8) (b2acc3a )
tui: fit the projects and daemon views to 80x24 and route their sub-mode footers (7743cfa )
tui: fit the root chrome to the terminal (2ada3f6 ), closes #793
tui: give the archived boards their own header, columns and keys (4040651 )
tui: give the connection screen its own help and palette context (review F4) (e9c43bf )
tui: give the project form's field editing its own keys (review F7) (7a6b63d )
tui: give the workflow inspector one field per row (20338b0 )
tui: keep a middle-elided path within its width on wide runes (review F9) (3086f6b )
tui: keep a pull request's branch beside its glyph on the detail line (review F18) (7260d99 )
tui: keep ctrl+p from opening the palette over a destructive prompt (review F3) (1493cc4 )
tui: keep identity suffixes, align fact labels, polish workspace tabs (#800 ) (00756c0 )
tui: keep paste, ctrl+v and clicks from the view behind a connection screen (review F3) (f225ff3 )
tui: keep text typed while a chat send is in flight (review F8) (d713543 )
tui: keep the board's cursor on screen when the table shrinks (review F21) (c62403a )
tui: keep the diff's sideways pan across moves and folds (review F19) (7154066 )
tui: keep the in-progress issue card within the 80-column floor (review F2) (20fc693 )
tui: keep the issue shown after returning it (review F5) (c892536 )
tui: keep the task board's cursor visible and on its task (88c5861 )
tui: keep what the pending-switch key does when the key moves first (review F5) (ec3b055 )
tui: land a failed answer on the put-away chat form (review F5) (09baf14 )
tui: land a project switch on the workspace on the human's tab (review F2) (c475334 )
tui: let issue detail enter act only on an on-screen row (review F6) (c295383 )
tui: let popup editors take newlines, wrap popup prose, pin the answer hint (0366d54 )
tui: let prompts hold the keyboard and keep refused chat drafts (02d9c63 ), closes #790
tui: let the pull requests unlink question hold the keyboard (review F2) (b74ff51 )
tui: make the issue detail scroll-first and give both issue screens the mouse (#792 ) (296780a )
tui: make the prompt footer's answers clickable hints (review F13) (c34a9ea )
tui: match issue operations before the detail's fixed scroll keys (review F5) (f2e25a1 )
tui: name workflow-level restricted in the first-run notice again (review F15) (4b63e6f )
tui: never cut a pull request row's claim below its task id and source (review F10) (3cb6368 )
tui: page grouped popups by the entries a window shows (review F1) (af73790 )
tui: pan long diff lines, show the diff's age, name the right empty-state action (fa8170f )
tui: pan the diff through the viewport's own keymap (a15485b )
tui: pin the pull-request popups' footers and wrap their subjects (77ed669 )
tui: re-resolve when ctrl+s closes the Fields editor (review F17) (bed7245 )
tui: read hand_off into the workflow editor's row (review F2) (cc60dca )
tui: record the issues list's g and end as fixed keys (review F13) (07dcb49 )
tui: refresh a handoff marker when its task pauses or resumes (review F4) (fc85645 )
tui: register the workspace panes' new paging and pan keys (bd19db4 )
tui: reload the archived tasks board on R and on opening (review F12) (09244f2 )
tui: reopen the answer popup when a send is refused for a pending question (review F9) (91bf21d )
tui: reset the Steps timeline's scroll per task (review F20) (b65126f )
tui: reveal the whole selected workflow entry in the compact list (review F1) (2cb51c1 )
tui: scroll the Overview and budget its cards by priority (#799 ) (487fb95 )
tui: send a task opened off the board back to the human's tab (review F1) (32c272e )
tui: size the Fields editor's input to its row (review F13) (66852e4 )
tui: start the daemon view's pinned pane at a block heading (review F24) (fdc6678 )
tui: stop the workflow tab writing its body width into the view (review F7) (513a9e2 )
tui: swallow typing over a hidden draft on the connection screen (review F1) (94965a9 )
tui: window and wrap the workflow and trigger forms (#802 ) (8adafd9 )
tui: window schema forms on the caret and keep the key line (review F8, F9) (01568c7 )
tui: window the issue form on the description's cursor row (review F12) (fbe0ce3 )
tui: window the issue form on the picker's input, not its heading (review F2) (410772f )
tui: window the new-chat form on its focused element and pin the hint (52f06e0 )
tui: window the Pull Request tab's checks around the cursor (a0ff3a5 )
tui: window the Pull Request tab's lanes block (review F15) (97faf4d )
tui: wrap chat notes and failures, rank the header, grow the composer (#801 ) (46bc114 )
tui: wrap the issue detail and keep the issue form's focus on screen (25d4e31 ), closes #795
tui: wrap the new-task form to its pane and submit on ctrl+s anywhere (9ea4391 )
tui: wrap workflow descriptions and validation text (#791 ) (43e5643 )
tui: wrap workflow findings with wrapText after #786 removed wrapPlain (edc721d )
workflows: name a followed-up task in collect's left-out list (review F2) (2de4464 )
workflows: read the train's pull request URL from .pull.url (review F1) (b959098 )
workflows: refuse a vincent without task deliver up front (review F3) (dbdbf55 )
worktree: list conflicted paths NUL-separated so markers are found (review F1) (e542fe6 )
worktree: stop counting a lone ======= as a conflict marker (review F3) (232d130 )
You can’t perform that action at this time.