Skip to content

v1.9.0

Choose a tag to compare

@github-actions github-actions released this 08 Sep 16:47
· 25 commits to main since this release
Immutable release. Only release title and notes can be modified.
234b7b0

kb v1.9.0

v1.9.0 is a design release for the web board with one small data change:
every task now records when it last changed. The schema gains an
updated_at column (migrated in place, backfilled from moved_at), and the
CLI, MCP and web API task shapes carry updatedAt next to movedAt. The
web API also gains PUT /api/comments/{id} for editing a comment in place.

Web UI

  • New theme. Stone (light) and charcoal (dark) neutrals with one acid lime
    accent on primary actions, selection, and the brand mark. Focus rings use
    ink so they stay visible on white. Links keep a blue of their own; every
    other colour on the board is a semantic status, priority, or label hue.
  • Rounder geometry: 18px columns and dialogs, 14px cards, pill-shaped primary
    buttons, and a little more air inside columns.
  • Search is a Spotlight-style dialog on every device: the header shows a
    magnifier, and the magnifier, /, or the palette's filter command open a
    centred field with the filter syntax under it. Typing filters the board
    behind the dialog live; Enter or Escape closes it and the query stays
    applied, marked by a dot on the magnifier. On phones the filter sheet
    keeps the quick filters and labels, and the column tab bar hides a hidden
    column's tab.
  • Column headers show a status dot, the column name, and a count badge instead
    of a coloured underline.
  • The markdown editor shows one pane at a time. A Preview toggle in the
    toolbar swaps the text for the rendered markdown and back; the formatting
    tools stay in place while previewing.
  • The AI draft in the card editor is a single composer: the prompt and the
    Draft action share one control, and the keyboard shortcut sits on the label
    line.
  • Settings are laid out on one grid, so labels, fields, and actions line up
    across the AI and integration sections. A saved API key or token is shown
    as a saved state with Replace and Remove instead of an empty password box.
    The AI section opens with the endpoint state (model and host) above the form.
  • Label suggestions and the label filter row are scoped to the active project.
    Only labels that project's cards carry are offered; all projects still show
    the whole list.
  • The card detail opens as a centred modal at every width instead of a
    resizable side panel; on phones it is still a full-height sheet. The
    #/t/<seq> route is unchanged.
  • Comments are a list again: the composer sits behind an "Add a comment"
    row instead of a permanently open editor, and each comment has Edit next to
    Delete. Editing opens the same inline markdown editor as the description.
  • Every control is drawn by the board rather than the browser, so the UI
    reads the same on every OS: selects open a listbox with keyboard navigation
    and type-ahead, due dates open a month grid with Today and Clear, checkboxes
    are a lime box with an ink tick, tooltips are the board's own, and "discard
    changes?" prompts use the board's dialog instead of the system confirm.
    Number fields lose the spinner and text areas lose the resize grip.
  • A geometry pass puts every control on whole pixels: bordered bars (header,
    filter row, dialog heads and feet, editor toolbar and footer) are sized so
    their centred children land on integer offsets, chips use a 4px gap, the
    label editor in the card dialog is the same 32px as its neighbours, the AI
    composer is 44px, and the bulk bar is centred on a whole pixel. On phones a
    blocker link ellipsizes instead of running past the modal, the editor's
    Preview toggle stays in view when the toolbar scrolls, and focusing a text
    field no longer zooms the page.
  • Cards carry a light wash of their priority hue: red for high, amber for
    medium, blue for low. The Cancelled column starts hidden (Display options
    turns it back on), and the "Add task" row at the foot of each column is
    gone; the New task button and the + in every column header add cards.
  • In the card's property grid the priority, due and project pickers are the
    same 28px as the status and effort segments beside them.
  • Columns can sort by recently updated or recently created, newest first,
    alongside position, priority and due date. Recently updated is the
    default; Display options or the palette switch it. Under a time sort a
    drag between columns still moves the card, while a drop inside its own
    column does nothing because the sort decides the order. The card's
    Created line shows the last update when it differs from the move.
  • The board has a logo: a lime kanban mark next to the wordmark in the
    header, as the tab icon, and as the home-screen icon on phones.
  • Toasts stack at the top centre of the screen, above any open dialog,
    and stay clickable while a dialog is up.
  • A refresh only rebuilds the cards that changed. Cards whose data,
    selection, focus and filters are unchanged keep their nodes, so a single
    update no longer repaints the whole board.
  • A dropped card no longer bounces back to its source column before the move
    lands. Refreshes that arrive while move requests are in flight are held, so
    a multi-card move never paints a half-applied order.

Dependencies

Go 1.26.5 remains the toolchain. google.golang.org/adk/v2 stays at 2.2.0
because 2.3.0 requires Go 1.26.6.

  • modernc.org/sqlite 1.56.0 to 1.58.0 (SQLite 3.53.4; recovery behaviour
    unchanged, no change to kb's WAL or busy-timeout setup).
  • charm.land/bubbletea/v2 2.0.8 to 2.0.9 and charm.land/bubbles/v2 2.1.1 to
    2.2.1.
  • google.golang.org/genai 1.66.0 to 1.71.0.
  • google.golang.org/grpc 1.83.0 to 1.83.1 (indirect), closing the HTTP/2 DATA
    frame memory-exhaustion advisory.
  • actions/upload-artifact 4.6.2 to 7.0.1 in the quality workflow.

Upgrade

Make a cold backup of the data directory first. Then, with Go 1.26.5 or newer:

GOTOOLCHAIN=local go install github.com/RandomCodeSpace/kb@v1.9.0
kb version

The release provides CGO-free binaries for Linux amd64 and arm64, macOS amd64
and arm64, and Windows amd64. Each binary records Go 1.26.5 in its embedded
build metadata.