Skip to content

v1.10.0

Choose a tag to compare

@github-actions github-actions released this 26 May 00:10
· 1 commit to main since this release
aa78839

1.10.0 (2026-05-26)

Bug Fixes

  • add optimistic state lock (#102) (e3ba2cb)
  • enforce frozen branch skips (#93) (0330c3a)
  • guard mutating commands across worktrees (#101) (f61202a)
  • security: close all open dependabot + codeql alerts (#111) (aa78839)
  • skip branches checked out in other worktrees (#42) (ed71c88)
  • sync: guard hasUniquePatchCommits against empty-cherry false equivalence [DUB-19] (#51) (8e04fcf)

Features

  • absorb: dub absorb — autosquash, --ai, and --stack modes [DUB-31] (#82) (590cb2e)
  • add AI conflict adjudication (#91) (48bcad2)
  • add AI prompt decisions (#88) (3a074dc)
  • add AI readiness gate (#87) (094a864)
  • add direct Anthropic AI provider (#85) (22f6e07)
  • add direct OpenAI AI provider (#86) (77f5c39)
  • add dub back command (#84) (7688f68)
  • add merge queue support to merge-next (#96) (9a62d71)
  • add multi-trunk stack support (#103) (9cec9a1)
  • add ollama ai provider (#94) (a06f73d)
  • add optional sqlite state backend (#104) (20c97b9)
  • add read-only MCP server [DUB-9] (#43) (4589922)
  • add submit PR lifecycle controls (#95) (6ce12c7)
  • add submit reviewers config (#98) (52e17ae)
  • add submit web create flow (#97) (2a3e293)
  • checkout-history: ring-buffer infrastructure for dub back [DUB-83] (#75) (e77b099)
  • checkout: interactive picker w/ PR metadata + p/d/c shortcuts [DUB-27] (#73) (25b7f86)
  • cleanup: unify post-merge + merge-next under cleanup journal [DUB-76] (#60) (c78014f)
  • cli: --dry-run on every mutating command (#108) (9011c25)
  • cli: add --json schema to every read command (#105) (ff70c3e)
  • cli: add dub completion <shell> and dub man (#107) (5abe326)
  • cli: namespaced fetch refs + --no-tags + remote prune in sync (#38) (e237c7c)
  • cli: retry git fetch and push [DUB-11] (#41) (0d81843)
  • cli: retry helper with exponential backoff (DUB-2) (#35) (5f14fb9)
  • cli: retry+idempotency for gh calls in lib/github.ts [DUB-10] (#44) (a272e73), closes #binary
  • cli: theming + per-command help expansion + migration guides + lazy AI imports (#109) (d3bb370)
  • cli: tty-aware progress wrapper + --verbose global flag (DUB-3) (#36) (f9a28c7)
  • cli: universal recovery hints in DubError (#34) (52b89ab)
  • cli: wire progress bars into sync/submit/restack [DUB-12] (#50) (67aa102)
  • expand MCP command surface (#89) (7df5046)
  • fold: combine a branch into its parent [DUB-33] (#68) (5150a20)
  • freeze: dub freeze / unfreeze — pin a branch against restack/sync [DUB-37] (#77) (0b699f9)
  • git: force-with-lease scoped to dubstack-tracked SHA (DUB-5) (#37) (f5ff58a)
  • guardrails: tier 3 implementation cheat-sheet + biome lint rules [DUB-81] (#74) (9751b22)
  • log: region-aware tree highlight + dub info tree position [DUB-77] (#59) (443511b)
  • log: rich PR/CI/commit annotations on dub log tree [DUB-26] (#71) (2647b7f)
  • mcp: mutating tools + dub config mcp-mode security model [DUB-17] (#49) (5f88106)
  • merge-check,ready: tree-aware --scope flag [DUB-78] (#57) (5f7d167)
  • merge-next: tree-aware target selection with mergeability check [DUB-22] (#58) (22e60bb)
  • mirror state into git refs (#100) (f7b1997)
  • move: insert a tracked branch between two existing branches [DUB-36] (#67) (c56664f)
  • pop: pop last commit(s) into staged changes [DUB-34] (#66) (51c65d0)
  • pr-body: tree-shaped stack table + v1 metadata schema [DUB-21] (#55) (2dd70fc)
  • queue auto-merge from submit (#92) (aec3447)
  • rename: add dub rename command [DUB-35] (#65) (20c685c)
  • reorder: dub reorder — interactive picker for commit reorder/drop [DUB-39] (#81) (a2a5951)
  • retarget-action: github action + dub install for stack retargeting on merge [DUB-72] (#83) (9be1288)
  • revert: dub revert — create branch on trunk reverting a merged commit [DUB-41] (#80) (115af38)
  • split: add dub split with by-commit/by-file/by-hunk/--ai modes [DUB-30] (#69) (3b09fa1)
  • squash: collapse a branch into a single commit [DUB-32] (#76) (7c6463c)
  • stack-overview: batched PR/CI data layer with 30s on-disk cache [DUB-25] (#64) (289d315)
  • stash: dub stash + dub stash pop — branch-aware stashing [DUB-42] (#78) (3aaee7f)
  • status: dub status JSON widget for shells and IDE integrations [DUB-28] (#70) (ef64c4b)
  • submit: annotate progress bar with sub-tree context [DUB-79] (#61) (c556b82)
  • submit: scope flags --upstack/--downstack/--branch/--stack [DUB-24] (#56) (52ae5ac)
  • submit: support review rerequests (#99) (80d71f6)
  • submit: walk tree-shaped stacks without rejection [DUB-20] (#53) (86303e2)
  • sync,restack: three-way reconcile prompt verbatim wording + cancel-mid-conflict [DUB-15] (#47) (6915157)
  • sync: batched gh pr list (one call instead of N) [DUB-7] (#39) (3827066)
  • sync: dfs-greedy cleanup with eager reparenting + journal replay [DUB-18] (#52) (3e18254)
  • sync: expand status taxonomy + reconciliation source tags [DUB-14] (#46) (3e15a44)
  • sync: incremental fetch caching via last_synced_at + --fresh [DUB-16] (#48) (0c15b29)
  • sync: patch-id squash/rebase merge detection fallback (#40) (4a8c854)
  • sync: per-branch failure isolation [DUB-13] (#45) (3bbf7f4)
  • undo: multi-level undo + redo with 20-entry ring buffer (#106) (efe509c)
  • unlink: detach branch from parent into its own stack [DUB-40] (#79) (d4c1ba2)
  • watch: dub watch — long-lived stack monitor [DUB-29] (#72) (23df1fa)