Release notes — v0.0.3
Milestone: v0.0.3 — 11 issues closed.
The list stays put while you edit
Pressing e on a highlighted meeting, note, or task used to push a full-screen editor over
everything else. Now the editor takes over the preview pane instead: the list, the links pane,
and the top bar all stay on screen, the highlighted row never moves, and every other list action
is blocked while the pane is open so nothing can happen underneath it. Creating a record —
/meeting.standup, /note.research, a daily note, following a task link — selects it in the
list first and opens the editor around it, so the pane and the list agree about what's being
edited from the first frame. The one exception: opening a record full-screen with enter and
then pressing e still opens a full-screen editor, matching how full-screen reading has always
worked.
Slimmer confirmations, delete, and a clearer list
TUI and CLI, user-visible. #32,
#38 (duplicate, folded in) /
#59
A batch of UI refinements shipped together:
- Delete.
ctrl+don a highlighted meeting, note, or task raises a one-line confirmation
naming it; confirm and it's gone, decline and nothing changes.choom meeting delete <id> --force(note/taskthe same way) does it from the command line — the flag is required, so
the command never prompts. There's no trash and no undo. Deleting a task leaves its checklist
mirrors elsewhere untouched, in whatever words they were written, rather than rewriting or
stripping the line. - One confirmation shape, everywhere. Discarding an unsaved edit and deleting a record now
use the same slim, centred bar — one question,(Esc)to stop and(Enter)to proceed,
nothing to click — instead of two different dialogs. - Four labelled columns. Each collection's list now shows date, type, title, and tags as
separate columns that hold their position whether or not a record has a type or tags; on a
narrow terminal, lower-priority columns drop before the date or title get squeezed. - The workspace path in the top bar, flush right, so it's always visible which workspace is
open. - Cursor placement. Entering the editor now starts the cursor on an empty line one blank
line below whatever's already there, so appending a thought costs no cursor-movement
keystrokes.
#38 ("Delete docs and tasks") was closed as a duplicate of this issue's item 4 and has no
separate PR.
ctrl+q no longer discards an edit silently
Pressing ctrl+q while an editor had unsaved changes used to exit the app immediately,
discarding the edit with no warning. It now raises the same confirmation dialog esc already
uses on a dirty editor — confirming discards and quits, declining returns to the editor.
ctrl+q with nothing to lose still exits immediately, no extra keystroke required.
/link offers a picker when several records match
/link <terms> used to insert a link only when the search matched exactly one record — anything
else reported the candidates and stopped, handing the writer a list of names to guess a
narrower query from. Now, more than one match raises a short, inline selection list in the same
status-bar region the preview's Links section already uses: ↑/↓ move and wrap, enter
inserts a link to the highlighted record, and esc leaves the typed line exactly as written.
Each row shows the record's title, collection, and date, newest first, so two records with the
same title are distinguishable without leaving the editor. A single match still inserts directly
and zero matches still reports as before — neither fast path grew a keystroke. A terminal too
short to show a usable list falls back to the original report-and-stop message.
Every view reads from disk, not a session cache
The TUI used to snapshot the workspace once at launch and keep working from that snapshot for
the rest of the session, so a change made by an assistant (or by hand) in another process stayed
invisible until restart. Every list load and every document open now reads its files from disk
at that moment. An open list also re-reads on its own every 2 seconds, re-rendering only when
something actually changed and holding the current selection steady by identity. Typing into the
command bar's filter never stalls waiting on any of this — the pool it searches against starts
hydrating in the background the moment the bar opens.
AI assistant replies can create real tasks
TUI and CLI, user-visible. #44 /
#67
An assistant asked "what did I commit to in this meeting?" could previously only answer in
prose — nothing in the reply was a real task. /ai replies are now scanned for the same
/task[.type] <description> [#tags] line grammar the editor already understands, and any
qualifying line is captured through the existing task-capture path, coming back as a real,
linked task in place of that line. The grammar itself is unchanged — nothing new to learn, and
nothing captured by surprise: only a line whose entire content is the command counts, so a reply
that merely explains or shows the syntax creates nothing.
An assistant knows choom exists, even outside the workspace
TUI and CLI, user-visible. #37 /
#68
AGENTS.md only teaches an assistant about choom when it happens to be started with the
workspace as its working directory — the exception for a notes folder. Naming an assistant
(choom config assistant <claude|copilot>, /config assistant <value>, or choom init --assistant <value>) now also installs a short, choom-owned pointer into that assistant's own
user-scope location — ~/.claude/skills/choom/SKILL.md for Claude Code, ~/.copilot/skills/ choom/SKILL.md for Copilot CLI — naming what choom is, where the workspace is, and that
AGENTS.md holds the rest. It's rewritten in full every time the assistant is (re)configured
and removed when set to none. Since choom already picks an assistant automatically when
exactly one is installed and none is configured, those users would never run the command and
never get the pointer — so at launch, choom offers to install it once through the same
confirmation bar used everywhere else in the TUI, and never asks again regardless of the answer.
Cleaner /ai replies from Copilot CLI
TUI, user-visible bug fix. #69 /
#70
GitHub Copilot CLI's non-interactive mode mixes tool-call narration and a stats footer into
stdout alongside its actual reply, unlike Claude Code CLI. choom was capturing that stdout
verbatim, so the chatter leaked into /ai replies written back into a document. Copilot is now
invoked with its structured JSON output format, and choom extracts only the reply's final turn,
structurally dropping every earlier turn's tool-call narration.
Internal
- Parallelize the test suite (#65 /
#66) —scripts/dev-tests.shis now the standard
way to run tests, oversubscribingpytest-xdistworkers to roughly twice the logical CPU
count in both local runs and CI, which consistently beat-n auto's default of one worker per
core on the machines measured. - Deterministic
/aitests (#71 /
#75) — the test stub for assistant CLIs now
replacesPATHoutright instead of prepending to it, so tests resolve to the stub
deterministically on a machine that also has a realclaudeorcopilotinstalled, rather
than only in CI where neither is present.