Skip to content

v1.51.0

Latest

Choose a tag to compare

@MrLesk MrLesk released this 02 Sep 21:32

v1.51.0

Highlights

  • Dependency graph in task details: every task detail now shows what it depends on and what depends on it, direct and transitive, in the CLI, --plain, --json, the TUI, the web modal, and MCP. The graph is computed once in core and each surface only renders it. Dependencies on completed and archived tasks resolve, and missing references, ambiguous IDs, and cycles are shown as such rather than resolved to a guess (#960, #969, #984)
  • Self-dependencies and cycles are rejected on create and edit, with the cycle path printed (#978, #982)
  • Archiving or demoting a task removes references to it from other tasks, in the working copy and in the completed corpus, and prints which tasks changed. Previously a stale reference could later resolve to an unrelated task once the ID was reused (#987)
  • Move several tasks at once: select tasks and move them between statuses in one action, by dragging a selection on the web board (#945, @janosmiko), or in the TUI with M to mark a task, Shift+arrows to add neighbours, and a single move for the set (#980)
  • Due dates on tasks and milestones, across CLI, TUI, web, and MCP. A due date is a calendar day (YYYY-MM-DD) with no time or timezone (#910, #994)
  • Parent and subtask hierarchy in the web task modal (#917, @yss19850810-crypto; #921)
  • Acceptance-criteria progress on TUI task summaries (#905, #976), browser task summaries (#906, #975), and in JSON, plain, and MCP list output (#902, #966). The TUI bar falls back to ASCII where Block Element glyphs are not available (#967)
  • Readiness is computed once in core: the CLI --ready filter, the MCP ready flag, the TUI filter, and the web badge now give the same answer for the same task, and task lists carry an isReady field in --json and MCP output (#986)
  • Drafts can be edited from the CLI and TUI (#940) and demoted to from the web (#911); ambiguous draft IDs fail closed (#943)
  • Milestone swimlanes in the interactive board (#901)
  • project attribute on tasks for monorepo backlogs (#924, @jafigueroam94)
  • task list --status accepts several statuses, repeated or comma-separated (#929, @yss19850810-crypto), and the web task list filters by several statuses too (#903)
  • Modified files are shown and editable in the web task modal (#913, @ivan812205) and included with references in task list --json (#973)

Behavior changes

  • The browser shows created and updated in local time, with the UTC value on hover. Before, it showed UTC without saying so. Stored values are unchanged, and the CLI, TUI, and plain output still show UTC and label it (#992)
  • Task lifecycle commands read the local working copy, extending the v1.50.1 local-first change from reads to archive, complete, promote, and demote (#912, @shixi-li)
  • backlog init reserves the draft, document, and decision prefixes, so a task prefix can no longer collide with them (#928, @jafigueroam94)

Fixes

  • Subtasks sort numerically in the board's task list; 1.10 was sorted before 1.2 because one code path compared IDs as strings while every other surface was already correct (#985)
  • Windows TUI no longer stops responding to the keyboard after switching views with Tab (#988)
  • task edit -d no longer nests section markers when the supplied text already contains them, which could hide the acceptance criteria and notes inside the description (#972)
  • Web views update in place instead of reloading, so filters, scroll position, and open modals survive data changes (#981)
  • Sidebar quick search no longer hides matches on larger projects (#955, @bjohas); TUI and milestone-page search use the same core search as the CLI (#958, #959)
  • The web dependency picker only offers tasks that resolve locally (#927, @jafigueroam94)
  • Sidebar dependency chips open the task in place instead of navigating to the task list first (#968), and the board task popup follows live task state (#957)
  • Emoji are counted as double-width in the TUI, so lines containing emoji align (#956)
  • TUI task composer: mouse clicks work (#909), text insertion is Unicode-safe (#907), it stays usable at extreme terminal sizes (#908), and the help popup survives resizes and wrapped lines (#904)
  • Task-ID allocation no longer joins an in-flight stale fetch, and a rename fallback no longer marks the corpus fresh without installing it (#925, #926, @jafigueroam94)
  • Consecutive blank lines inside fenced code blocks are preserved in notes (#933)
  • Punctuation-only titles get a placeholder filename instead of failing (#897, @pxmpsdev); README board export no longer goes through a temp file (#895, @pxmpsdev)
  • Web draft editing works again (#916); grandchild subtasks are included in board export grouping (#970)
  • The web loading state is smaller and consistent in both themes, and cross-branch indexing shows a proper indicator (#977, #971)

Documentation

  • The task-creation guidance for agents now asks for the reason a task exists, not only what to build, and the examples show it. The previous example was an outcome-only description, which is what agents were copying (#989)
  • Agents are told to read the Backlog overview once per conversation instead of before every request (#974)

New Contributors

Full Changelog: v1.50.1...v1.51.0