v0.31.0: Mark cards and move them in bulk, The board got noticeably faster, and Every shortcut is visible again

If you spend your day on the board, this one is for you. v0.31.0 makes the kanban board feel like a real tool for handling many tasks at once — and quietly fixes a whole class of “it said it worked but it didn’t” failures underneath.

If you spend your day on the board, this one is for you. v0.31.0 makes the kanban board feel like a real tool for handling many tasks at once — and quietly fixes a whole class of “it said it worked but it didn’t” failures underneath.

Mark cards and move them in bulk

Hit Space on any card to mark it. The checkbox glyph is always visible, so you can see at a glance what’s selected, and the selection sticks as you navigate around. Then press m, pick a destination column, and every marked task moves at once — with a review dialog first so you can back out.

The board got noticeably faster

Three things landed together here. Moving a card now rewrites a single file instead of renumbering the whole column, moving a card between columns transplants the widget instead of rebuilding the board, and filtering only touches the columns that actually changed. On a big board, typing in the search box stays smooth and a two-column hop dirties nothing but the card you moved.

Every shortcut is visible again

Board footers used to hide keys once they ran out of room, which meant half the operations were undiscoverable. The footer now wraps onto multiple rows, and you can cap how many with footer_max_rows.

No more silent successes

A pile of fixes in this release share one theme: things that failed while reporting success. Task-data syncs, stale-lock cleanup, ait lock list on an empty branch, and the installer’s upgrade step all now tell you what went wrong and what to do about it. Task and plan files are also written atomically, so a concurrent reader never catches a half-written file.

Risk mitigations can stay in the plan

When planning surfaces a risk mitigation, you no longer have to spin it out as a follow-up task. You can inline it as a pre- or post-phase of the plan you’re about to execute, decided one mitigation at a time — and the workflow will stop you from implementing if a blocking mitigation is still unfinished.



Full changelog: v0.31.0 on GitHub

Last modified August 5, 2026: ait: Bump version to 0.31.0 (ddb6026c8)