Skip to content

Active development — do not use in production yet. Build-in-public project. First stable release: v1.0.0. Expect breaking changes, missing features and rough edges before then.

kandown
116 releases

Changelog

2026-08-13

v0.51.0· Categorized Files

Added

  • Bracket categories now live in the filename. A title that opens with a category tag ([UI] Fix the login button) produces tasks/t232_UI_fix_login_button.md: the bracket content, uppercased, joins the id and the prose slug as its own segment, so a git diff --stat and a PR file list read at three levels (id, taxonomy, description) without opening anything. Multi-word categories are preserved in full ([FABLE CLEANUP] X becomes FABLE_CLEANUP, not FABLECLEANUP). A bracket that yields nothing usable (punctuation-only, emoji-only) is treated as no bracket at all, so the file stays a clean <id>_<slug>.md instead of carrying a trailing underscore.

    The bracket stays in the title too: git log keeps reading as English and the TUI category chip continues to render the human form. Nothing about the id changes, so depends_on, [[t232]] links, deep links and branch names stay valid through every rename.

    The category segment is taxonomy, not description, which is why it behaves differently from the prose slug: editing a title's prose never renames the file (slug frozen, kandown reslug --force to refresh), but editing the bracket through the web drawer auto-renames the file on save. The rename uses git mv for tracked files and a plain fs.rename as a fallback, so a follow-up commit records a rename instead of a delete-plus-add. Direct file edits (vim, kandown work, anything outside the web drawer) stay stale on purpose: an unobserved content change cannot safely rename a file the user has open elsewhere. kandown reslug --force brings them in line.