v0.8.0
AI Craftery Bord v0.8.0
This release is about chats: create as many as you need, where you need them — and stop fighting tabs.
Multiple chats on tasks, projects and releases
Every task, project and release card now has + Add chat. The form gives you the agent, model, effort, permission mode — and the surface type: a regular chat, an embedded terminal, or a split view. Defaults come from your per-agent settings, not from whatever happened to be first in the list.
Chat names are assigned by the server — CRAFT-81, CRAFT-81 [2], [3] — and the same name shows up everywhere at once: on the card row, in the Chats dock, on the tab. Rename, move, unlink and delete work from any of those places; deleting a chat from the dock also removes its links from every card, server-side.
The task launcher creates its chat through the same path, so a freshly launched task lands with a properly named, properly linked chat from the first second.
One chat id, stable forever
A chat's id is now minted by the daemon at creation time and never changes. No more placeholder tabs that rename themselves mid-flight, no phantom duplicates, no "new-17496…" tabs resurrecting after a restart. The id-to-agent mapping is stored in the database and survives daemon restarts. Clicking the same chat twice — from the dock, from a card, from anywhere — focuses the one existing tab instead of opening a copy.
Surface switching that never kills your work
Chat / Terminal / Split switching is now a pure visual toggle. A process running in the embedded terminal — npm install, a long build, an interactive CLI — survives any amount of switching. Once you have typed anything into the terminal, Bord will never auto-restart it behind your back. Returning to Chat scrolls you to the newest messages, which kept arriving while you were away in the terminal.
"Open terminal here" in the file tree now attaches to the live terminal for that folder if one exists, instead of spawning another one.
Keyboard fixes for non-QWERTY layouts
Cmd+C / Cmd+V (and Ctrl-letter control codes) in the terminal now work by physical key position: Russian and other non-Latin layouts copy and paste correctly, and Latin layouts like Dvorak keep their own letter mapping.
Self-healing service
If the background service ever dies, the app now notices within seconds and restarts it automatically — no manual relaunch.
Reliability under the hood
The tab subsystem was rebuilt around a single TabManager with identity-based deduplication, a one-owner layout engine, and CI-enforced layer gates. The whole branch went through a seven-reviewer code council; all 27 major findings were fixed before this release, including a data race in the chat registry and a layout-restore failure mode.