Skip to content

Releases

v0.3.0

Choose a tag to compare

@dennisrongo dennisrongo released this 28 Aug 04:25
377c8ef

Highlights

dsh-todo is now a sprint/roadmap list, with a CLI

A task carries status (backlog / todo / in-progress / blocked / done), priority (p0-p3), optional release and sprint labels, a description and a calendar-day due date. Status is the source of truth, replacing the old boolean done, so completedAt can never contradict it. Group by status for a kanban board without drag-and-drop.

Existing databases migrate in place on first open: new columns are added with ALTER TABLE, title is backfilled from the old text, and done = 1 becomes status = 'done'. Nothing is dropped, and the v1 columns keep being written so a downgrade still reads a sane list.

A new dsh-todo binary puts the same list in a terminal, so an agent can shell out and manage your tasks:

npx @dennisrongo/dsh-todo list --open --json
npx @dennisrongo/dsh-todo add "Fix token refresh" --priority p0 --due 2026-03-14

It targets a workspace directory and needs no profile, session or running server. --json prints structured output on the error path too, and exit codes are distinct (0 ok, 2 usage, 3 not found) so a script can branch on why a command failed. Safe alongside the running app: SQLite's file lock refuses an interleaved writer and busy_timeout makes a CLI write wait for the harness commit.

dsh-git diff pane

The diff sits beside the file list when there is room and below it when there isn't, switched by a container query — the tab is resized by the shell's own panels, not the viewport. Opening a diff no longer moves a row: the list column is reserved in both states, and the stacked diff stays in normal flow so it cannot cover the row you just clicked. A patch-shaped loading skeleton replaces the blank pane, and stale replies are discarded so a slow request can't paint the wrong file's patch.

dsh-mission-control

Control metrics are CSS custom properties, so the 400px rail and the full-screen Stage derive from one set of tokens instead of drifting. Stage's bar now clears DSH Desktop's window-drag strip, which was swallowing clicks on its own controls.

Docs

README and AGENTS.md updated across the repo for the task model, full CLI usage (flags, JSON shapes, exit codes) and the UI work. New TROUBLESHOOTING.md covers harness-level failures, which are mostly silent.


All six packages are published at 0.3.0. No breaking API changes.

v0.2.0

Choose a tag to compare

@dennisrongo dennisrongo released this 28 Aug 01:34
e8ade9e

Mission Control: docked, reflowing right rail

Panel

  • Flush right rail — full height, squared corners, inner hairline, slide-from-edge entrance.
  • The shell now reflows around it: the conversation and its composer resize instead of running underneath the panel.

Header

  • Icon rail on the left; the title and the cost/token burn strip are gone (those counts already appear in the stat boxes below).
  • Close became a panel-collapse icon at the shell sidebar's own metric (28px button, 16px glyph).

Fixed

  • Desktop clicks on the header icons did nothing. On Windows the app overlays a window-drag region across the top 36px; -webkit-app-region: drag is resolved before hit-testing, so it swallowed the clicks — no z-index could win. The controls now clear that strip and opt out via data-dsh-no-drag.

Consistency

  • One shared glyph frame for every icon, so size and stroke are defined once. The pomodoro transport row moves to the same 28px/16px metric (the gear previously rendered at two different sizes).

Internal

  • Removed code orphaned with the burn strip: useFleetBurn, sparklinePoints, the .dshmc-spark rules, and a 60-point history retained on a 1s tick.

The other five packages are unchanged in this release; they share a version line because the publish workflow requires every package to match the release tag.