Releases
v1.10.0
Compare
Sorry, something went wrong.
No results found
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 )
You can’t perform that action at this time.