# Changelog
## [0.18.0](https://github.com/narnaud/git-loom/compare/v0.17.0...v0.18.0) (2026-04-12)
### Features ✨
* add commit-based hunk picker for split/fold -p workflows ([bf2f061](https://github.com/narnaud/git-loom/commit/bf2f061e40ad44513b59e9170f7f8fd26216745c))
* add mouse support to hunk selector TUI ([aabb358](https://github.com/narnaud/git-loom/commit/aabb3584d467611f570e976743cb8a157a1edb17))
* add scrollbar to file list and diff pane in hunk selector ([500c094](https://github.com/narnaud/git-loom/commit/500c0945c5e61de192551b03056b45dca10196ac))
* implement fold -p <c1> <c2> and fold -p <c> zz ([3bc9286](https://github.com/narnaud/git-loom/commit/3bc9286b33cea80a7919fe9a9ac89c0d7e76f046))
* implement split -p for hunk-level commit splitting ([eb0e0c3](https://github.com/narnaud/git-loom/commit/eb0e0c34c52df3f3d41c3f71aa6823cfaee69bc2))
### Bug Fixes 🐞
* fold -p <commit> was folding whole file instead of selected hunks ([fa557e5](https://github.com/narnaud/git-loom/commit/fa557e5ceaf2633fa600b072355e9253f1ef48de))
* remove trace hint in error ([29106ad](https://github.com/narnaud/git-loom/commit/29106ad6c355723f27a0aa76dead6dc100207588))
### Documentation
* add hunk selection guide and update add command docs ([d364255](https://github.com/narnaud/git-loom/commit/d3642552ecd06ebc4b11148ec174c88acc746d5d))
* update fold and split specs to document hunk-level -p mode ([81b2473](https://github.com/narnaud/git-loom/commit/81b24737c91dfb91c20a2abda69bf4b07a7274f6))
### Changes
* simplify absorb.rs ([ae49eae](https://github.com/narnaud/git-loom/commit/ae49eae751e35a524f1c69498307028fb9b44171))
* simplify commit.rs, consolidate shared helpers ([e984957](https://github.com/narnaud/git-loom/commit/e98495778796d3ecf1cd2006d835945983779fdf))
* simplify drop.rs, use confirm_or_bail helper and commit_subject ([bbd67c4](https://github.com/narnaud/git-loom/commit/bbd67c40398c5875fec720f2b819bc0dc0911342))
* simplify fold/split/staging code ([db70a1d](https://github.com/narnaud/git-loom/commit/db70a1d422d2c6b1e591aea5c72c669a01621171))
* simplify push.rs, merge find_remote calls, consolidate push message ([adac68a](https://github.com/narnaud/git-loom/commit/adac68aa7eb950eae7885fa6e0779b2cb76c3190))
* simplify split.rs ([26870f7](https://github.com/narnaud/git-loom/commit/26870f7bd08bcf46d87ac289ca9a883910a111eb))
* small cleanup on fold ([da21973](https://github.com/narnaud/git-loom/commit/da219738b3a12df736b2c07285430a38f8c91404))
### Other
* add consistency in the cancellation and error messages ([c055984](https://github.com/narnaud/git-loom/commit/c055984514a0b2862fb08b36c7b93063ce6325dd))
## [0.17.0](https://github.com/narnaud/git-loom/compare/v0.16.1...v0.17.0) (2026-03-29)
### Features ✨
* add -p flag to commit and fold for interactive hunk picking ([a3123ee](https://github.com/narnaud/git-loom/commit/a3123eef4700b839268662919790e57423b87d36))
* add files argument to split command ([ae2a832](https://github.com/narnaud/git-loom/commit/ae2a832f17c51799b0ab51e24760c49ea6c638bc)), closes [#102](https://github.com/narnaud/git-loom/issues/102)
* Added `loom add` subcommand that stages files like git ([b652920](https://github.com/narnaud/git-loom/commit/b652920ca78383b9a5bee5c6cf673767594bfc78))
* hint users to run loom trace on error; document stderr convention ([dbf9a31](https://github.com/narnaud/git-loom/commit/dbf9a314b32e609c69527bbd771a0c81b70976e1))
* implement TUI for hunks selection ([f4a5f46](https://github.com/narnaud/git-loom/commit/f4a5f46ecd7120ad97a7a9e2171526a7760bff9d))
* **switch:** add loom switch command for testing branches without weaving ([fc4c4a3](https://github.com/narnaud/git-loom/commit/fc4c4a3130ae95df30c02bbe1d305867c4275967))
### Bug Fixes 🐞
* **absorb:** use locale-independent binary file detection ([d0d8e0e](https://github.com/narnaud/git-loom/commit/d0d8e0e6bfe5aeb02acb024ec75ca566a462059d))
* **absorb:** use standard autosquash fixup message format ([bd09cd0](https://github.com/narnaud/git-loom/commit/bd09cd06600bc412ac26bf3c474737a1eb4f0b40))
* add cycle guards to all unbounded commit graph walks ([5d39b4d](https://github.com/narnaud/git-loom/commit/5d39b4dd7b92e92fbd13099d3027bb1d58231c1d))
* **git:** replace deprecated DateTime::<Utc>::from_timestamp with DateTime::from_timestamp ([50d469e](https://github.com/narnaud/git-loom/commit/50d469e6ac3f388e6cea6e2d33090578eedbc87e))
* **update:** use short_hash() helper instead of hardcoded [..7] slice ([ef65e94](https://github.com/narnaud/git-loom/commit/ef65e94ddba8b8771d33582fa5887d7b0b1d800d))
### Documentation
* add documentation for add command ([71001ce](https://github.com/narnaud/git-loom/commit/71001ceb8d4c938772992aa78aa2ccab634fdc7a))
* use git loom for commands, git-loom for product name ([7a8ca7a](https://github.com/narnaud/git-loom/commit/7a8ca7a4f1178253ae42bacc0d645e22a00bed36))
### Changes
* add a commit_subject method and use it when needed ([14d3370](https://github.com/narnaud/git-loom/commit/14d3370ac9a918d284acdd1f794b9a279cb1f81c))
* Extract hunk handling into diff.rs for reusability ([3d48c7c](https://github.com/narnaud/git-loom/commit/3d48c7c4238312c6508fe1feeb5e6c6dec21501a))
* extract hunk picker pipeline into core/staging.rs ([d062b18](https://github.com/narnaud/git-loom/commit/d062b18e07f55f2dc10d405379e06693a1584060))
* **git_commands:** extract git_diff and git_apply modules, flatten submodule API ([d6410b1](https://github.com/narnaud/git-loom/commit/d6410b17b6b231beb6fb3ea73892336355ae16ac))
* move core modules into core/ and rename git_commands to git ([911ff76](https://github.com/narnaud/git-loom/commit/911ff76742836a7fdfeaaae08e525e84bd4ce898))
* trace and transaction continue/abort follow the same patterns as other commands in main ([a15f346](https://github.com/narnaud/git-loom/commit/a15f34610238e61258a88b0fadd55c482c5a9e72))
### Other
* add ratatui/crossterm ([f04cc67](https://github.com/narnaud/git-loom/commit/f04cc671747e0b615c1e524fc7f79078a82e5446))
* **deps:** bump actions/deploy-pages from 4 to 5 ([10a80af](https://github.com/narnaud/git-loom/commit/10a80afefd8805e2d18dcb8b402c8d283e201aff))
* **deps:** bump terminal_size from 0.4.3 to 0.4.4 ([526ef1a](https://github.com/narnaud/git-loom/commit/526ef1aa71b28397e5b096516edeb314921040ea))
## [0.16.1](https://github.com/narnaud/git-loom/compare/v0.16.0...v0.16.1) (2026-03-26)
### Bug Fixes 🐞
* Clippy needless borrows and correct run_git comment ([7889dbd](https://github.com/narnaud/git-loom/commit/7889dbdb4d261851e81cc6a82ad5c72b43deb03f))
* distinguish conflicts from generic failures in run_rebase ([4fb9670](https://github.com/narnaud/git-loom/commit/4fb9670ed4c04c7fd967b702fc98eba4dc5fffea))
* handle RebaseOutcome::Conflicted in branch new and unmerge ([3a1680f](https://github.com/narnaud/git-loom/commit/3a1680fc36d0c872aa2ac53132abb80f8b994c19))
* improve robustness in fold, transaction, and weave ([b81f38e](https://github.com/narnaud/git-loom/commit/b81f38e35cddf5bc52f2baf83c056b47198f5461))
* **merge:** handle conflicts in loom branch merge with continue/abort support ([1cc14b6](https://github.com/narnaud/git-loom/commit/1cc14b6c72317e24f0e6826e9e91bd8787bc7ef3))
* prevent data loss in split, commit, reword, and fold commands ([a4ce587](https://github.com/narnaud/git-loom/commit/a4ce587ebeee91e30e0c166ac699fae113de37be))
* **push:** fix Azure DevOps PR creation on Windows ([c9fb030](https://github.com/narnaud/git-loom/commit/c9fb030c13af5ba13ca6913109937c4b81b0c0d2))
* **shortid:** only avoid exact ID collisions, not shared first letters ([0b5d8d5](https://github.com/narnaud/git-loom/commit/0b5d8d5a32bb8d831bc32842702c57c75b47feae))
* **trace:** append abort/continue to the originating command trace ([22561a4](https://github.com/narnaud/git-loom/commit/22561a4cf4ee3367ed5bae465d3842338aef5203))
* **update:** handle inverted merge parent ordering in weave topology ([cce12a9](https://github.com/narnaud/git-loom/commit/cce12a97cdaff97d0be3a1e55d338003ec3d9b3d))
* **update:** use consistent diff engine for patch-ID matching ([e98d4f2](https://github.com/narnaud/git-loom/commit/e98d4f22443fe7f454342bed6f3e32549ed78902))
* **update:** use weave-based rebase to prevent upstream commits leaking into feature branches ([7069d5c](https://github.com/narnaud/git-loom/commit/7069d5cf3d34d1656aa30011bd9e0f5ed83459ce))
### Performance Improvements ⚡
* **update:** replace patch-ID pipeline with git cherry for cherry-pick detection ([daa6eae](https://github.com/narnaud/git-loom/commit/daa6eaeb55faaf521d81aab7512583ace00b5a01))
### Documentation
* update branch and update specs and command docs ([83291b9](https://github.com/narnaud/git-loom/commit/83291b958c08355c0f4f805bda4f535f245b8e36))
### Changes
* replace raw git calls with run_git_stdout ([c626733](https://github.com/narnaud/git-loom/commit/c626733ef8dcb839e1e17f70a6dde9a5193a0d17))
## [0.16.0](https://github.com/narnaud/git-loom/compare/v0.15.1...v0.16.0) (2026-03-21)
### Features ✨
* **continue-abort:** add completion ([abd4be4](https://github.com/narnaud/git-loom/commit/abd4be412215a4a3761b908f5f9abcfa0289c7de))
* **continue-abort:** infrastructure for conflict pause/resume (phases 1-2) ([fbed373](https://github.com/narnaud/git-loom/commit/fbed373defe28559b14f2508acd253eaa84b49e5))
* **continue-abort:** wire pause/resume into all resumable commands (phases 3-4) ([7318793](https://github.com/narnaud/git-loom/commit/7318793516b21a1b04061bfcf5106e4f7005691b))
* **diff:** add loom diff command with short ID support ([53c3e3c](https://github.com/narnaud/git-loom/commit/53c3e3cfb2130c6a73e68d0d790e7ab757245be7))
* **swap:** add completion for swap ([7436636](https://github.com/narnaud/git-loom/commit/74366363c264ee6f796fb5b52c838582290c2a81))
* **swap:** add swap command to reorder commits or branches ([1b697d0](https://github.com/narnaud/git-loom/commit/1b697d0b4d5011b5dfc25ae9f458afa0ecdd18d2))
* **swap:** remove branch swapping ([18b5c48](https://github.com/narnaud/git-loom/commit/18b5c485ff1707d050e446d5208cfae192454cb1))
### Bug Fixes 🐞
* **absorb:** restore pre-absorb HEAD on abort via reset_hard_to ([db8889a](https://github.com/narnaud/git-loom/commit/db8889a24831ead8676b3aa71f190fc0273ccd3b))
* **docs:** preserve existing docs when deploying stable or latest ([8d4193b](https://github.com/narnaud/git-loom/commit/8d4193bb96ae72661e16af304156d4f9e130d3af))
* **status:** compute short IDs before hiding branches for stability ([534d22c](https://github.com/narnaud/git-loom/commit/534d22c4e1c0ad9df9988eeaae46c77cc18c9238))
* suppress editor on git rebase --continue ([a2f85be](https://github.com/narnaud/git-loom/commit/a2f85beec2442274c7d0aa86788e709d0c8dc6f3))
* **weave:** place merge commits before loose picks, not at HEAD ([b2f3e9f](https://github.com/narnaud/git-loom/commit/b2f3e9ff6683d3cb81f25a6f3fd8f34245fbcaf5))
### Documentation
* **continue-abort:** document loom continue and loom abort ([22c4eaf](https://github.com/narnaud/git-loom/commit/22c4eaf849e4b77d399b5943caa8a3153350a8e4))
* **continue-abort:** inform the user he can remove the state file ([31c9d9b](https://github.com/narnaud/git-loom/commit/31c9d9b5ffc4fbeccf06551a1338db497b795137))
* **diff:** add spec and user docs for loom diff command ([f1c933c](https://github.com/narnaud/git-loom/commit/f1c933cd89bc1b069086f7ca6674c420e01f5816))
* **guides:** add conflict resolution guide ([a33c015](https://github.com/narnaud/git-loom/commit/a33c015e4ac3af35d77dc7b92c024d66e7fae343))
* only update docs on release, have the main doc on /latest ([f8b43a6](https://github.com/narnaud/git-loom/commit/f8b43a6a78995d7e765b80cf3f5243e0abdaee30))
* rework documentation deployment ([a5fe772](https://github.com/narnaud/git-loom/commit/a5fe772145f62587c89851f369d36598e7f05768))
* **swap:** add spec 015 for swap command ([21a96e2](https://github.com/narnaud/git-loom/commit/21a96e23f0379659182b2ec70a583f641a9d3516))
* **swap:** add swap command documentation ([01bd3e8](https://github.com/narnaud/git-loom/commit/01bd3e83ee84e706e38043378e4c689e91c35903))
* update command list ([8daa5d6](https://github.com/narnaud/git-loom/commit/8daa5d68c69057559c5ec3d79669b7dcc55f3396))
### Changes
* **absorb:** split run() and extract rollback_pre_rebase() ([8658fe5](https://github.com/narnaud/git-loom/commit/8658fe5e77adf788c0e2eb51659f6e59eb518c2f))
* **continue-abort:** add aliases `c` and `a` for continue and abort ([09e5c43](https://github.com/narnaud/git-loom/commit/09e5c437bbc354690c3b5d773cb1e56f19d8439c))
* deduplicate conflict warning and restore_staged helpers ([c05636e](https://github.com/narnaud/git-loom/commit/c05636e2410f25c2633a8f6380de1dc58432d02e))
* **tests:** extract commit_sid_from_status and branch_sid_from_status helpers ([f2e2a4e](https://github.com/narnaud/git-loom/commit/f2e2a4edf81012c3ce4772b43dc3a0bb2d881d56))
* **transaction:** simplify Rollback — trust git rebase --abort for refs ([993db36](https://github.com/narnaud/git-loom/commit/993db365f622a855cfdd1c309cf950c84187d1d1))
* **update:** consistency with other commands, remove unused argument ([779f587](https://github.com/narnaud/git-loom/commit/779f5871a92e396d9496bdbb4ae2a63a5f08b3e4))
* **update:** force delete branches with gone upstream ([7027142](https://github.com/narnaud/git-loom/commit/7027142bf3b858372cc38efbf7f332fc58ee2881))
### Tests
* **abort:** add working-state preservation tests for all transaction commands ([4168a43](https://github.com/narnaud/git-loom/commit/4168a4313bd8c4ed29592c435f309394685b9072))
* **absorb:** add integration tests ([8545b6c](https://github.com/narnaud/git-loom/commit/8545b6c8878e5ac96afd5b70b60a08bee9a5da6d))
* add bash integration test suite for the final binary ([021012c](https://github.com/narnaud/git-loom/commit/021012cda71d834586eb7509c2a4c53f0b88d004))
* add describe calls to all integration test files ([01c553f](https://github.com/narnaud/git-loom/commit/01c553fb7924a81b90dadb6857527187e5a8de4a))
* add integration tests for gl init ([9774f2c](https://github.com/narnaud/git-loom/commit/9774f2c02b02170a246abfba5d4666135505aa30))
* **branch:** expand integration tests with comprehensive coverage ([3a378e5](https://github.com/narnaud/git-loom/commit/3a378e541080e93218846f6bce7b37302475f2e3))
* **commit:** add integration tests ([a4f5e59](https://github.com/narnaud/git-loom/commit/a4f5e5925470729f1ce78d38dd1c75be1fa1e1f5))
* **continue-abort:** add integration tests for continue/abort flow ([a0ca291](https://github.com/narnaud/git-loom/commit/a0ca2911b59ab50c6592692f8becb684f936ab59))
* **drop:** add comprehensive integration tests; fix spec error message ([277e471](https://github.com/narnaud/git-loom/commit/277e471d878dfb46aa0092c0f56f1103607f7c13))
* **fold:** add integration tests ([5c644fa](https://github.com/narnaud/git-loom/commit/5c644fad48257530335e7ce7e813bbac534c3844))
* **integration:** add real conflict continue/abort tests for commit, fold, drop, absorb ([3b6e983](https://github.com/narnaud/git-loom/commit/3b6e98394c85c3222758de53494105b463cf4403))
* **integration:** add swap integration tests and fix CRLF warning ([c737988](https://github.com/narnaud/git-loom/commit/c737988077020dbe8c442e4934308e8a04271265))
* **reword:** expand integration tests with comprehensive coverage ([c9e41ce](https://github.com/narnaud/git-loom/commit/c9e41ceb3d9770bc12011f404de7c4c859f97b58))
* **show:** add integration tests ([e40927b](https://github.com/narnaud/git-loom/commit/e40927b4b698b952d1f542e51a1d58fcf1f5c53e))
* **split:** add integration tests ([53706da](https://github.com/narnaud/git-loom/commit/53706da7d4087e38dac36cced938f6c3937a691d))
* **status:** comprehensive integration tests for gl status ([f77dae1](https://github.com/narnaud/git-loom/commit/f77dae1e4c9bbbc7a93ecf6cd98d0cc958798697))
* **update:** add integration tests ([74440ca](https://github.com/narnaud/git-loom/commit/74440caafe20d490998ecdfefb40479c3ea05395))
### Other
* **claude:** add more permissions ([788d81d](https://github.com/narnaud/git-loom/commit/788d81d0f4088afee458d82b4d84bf0ea0ced8f5))
* **claude:** add update-docs skill for creating and updating command docs ([6c79ab6](https://github.com/narnaud/git-loom/commit/6c79ab6d7eba5fafd4070cdd4752cf0ad4dc81b8))
* **claude:** add write-integration-tests skill ([2ebe2a2](https://github.com/narnaud/git-loom/commit/2ebe2a2bf51b77b26826ebdd643c6a40799dba2c))
* **claude:** add write-spec skill for creating and updating specs ([9eca3a4](https://github.com/narnaud/git-loom/commit/9eca3a443dbc42fd682327985faa235b92f8bd8e))
* **claude:** update update-docs skill to always update command list ([b22ca66](https://github.com/narnaud/git-loom/commit/b22ca66430c3d4569779c3f5a895b5f0b858e9a5))
* **deps:** bump clap from 4.5.60 to 4.6.0 ([3bac005](https://github.com/narnaud/git-loom/commit/3bac005dd9bd733e4f24fd0119fbd32a4ee361d5))
## [0.15.1](https://github.com/narnaud/git-loom/compare/v0.15.0...v0.15.1) (2026-03-15)
### Bug Fixes 🐞
* **fold:** fix folding on branch, add an integration test ([7f6c514](https://github.com/narnaud/git-loom/commit/7f6c5145dd963487368e54428dba9135902adb42))
## [0.15.0](https://github.com/narnaud/git-loom/compare/v0.14.0...v0.15.0) (2026-03-14)
### Features ✨
* **absorb:** absorb chunks instead of full files ([bdb27e3](https://github.com/narnaud/git-loom/commit/bdb27e3648370fa5a5ce6412e8b7b58c3c2a4707)), closes [#48](https://github.com/narnaud/git-loom/issues/48)
* add centralized resolve_arg() and migrate all callers ([df8b365](https://github.com/narnaud/git-loom/commit/df8b3654960f13fcd86226eaf3aced08b62de017))
* **branch:** add subcommands (new, merge, unmerge) ([1b1f8f6](https://github.com/narnaud/git-loom/commit/1b1f8f6a186719bc15686b3970f6c54342a43b43))
* **fold:** allow folding staged files with single-arg `loom fold <target>` ([16997ef](https://github.com/narnaud/git-loom/commit/16997ef187cabbbe988e7a2a75ba76640ab567b7))
### Bug Fixes 🐞
* **commit,fold,absorb:** isolate staged files when explicit paths are given ([043a2f8](https://github.com/narnaud/git-loom/commit/043a2f8a677deecc635cd7b7e1e70e12d610cb6e))
* **commit:** accept staged renames and typechanges as valid changes ([02d9fad](https://github.com/narnaud/git-loom/commit/02d9fad1380375558a3d31c99d15886eb06cc9d6))
* **commit:** only delete newly-created branches on rollback ([056d220](https://github.com/narnaud/git-loom/commit/056d2200f9427e20bd0ee54ab66c37a325faefdc))
* **drop:** skip unnecessary rebase for non-woven co-located branch drop ([ddec730](https://github.com/narnaud/git-loom/commit/ddec7308c57826b2059e1caad02001730d563386))
* **drop:** support filenames, paths, and directories as targets ([d7aff5f](https://github.com/narnaud/git-loom/commit/d7aff5f402d5f34d53de006d2249f2567a2e3a5c))
* **fold:** reject moving commits to out-of-scope branches ([a96a90b](https://github.com/narnaud/git-loom/commit/a96a90b081799e64c5e4964443680f6102f7b860))
* **fold:** restore branch refs in non-HEAD uncommit rollback paths ([54f3b9d](https://github.com/narnaud/git-loom/commit/54f3b9d370a62505611b385e7c23ba9f73d13c1f))
* **git:** fix index status precedence in get_working_changes ([07b476e](https://github.com/narnaud/git-loom/commit/07b476ed4b5c4e0cacfbd4ff6aaf35c0bc0c5391))
* **git:** warn on partial failures in restore_branch_refs ([5da62cb](https://github.com/narnaud/git-loom/commit/5da62cb2896fc064173c5173c10b6a741e58e2df))
* **main:** correct stale comment about logging exclusions ([757ff80](https://github.com/narnaud/git-loom/commit/757ff809afc4e02f47be7c30625dcea679ec07af))
* **push:** show 'Pushed' success message before PR operations ([4d10e8a](https://github.com/narnaud/git-loom/commit/4d10e8adc8b1a170d4b71076022fbaf156f6ca19))
* **push:** skip PR creation when pushing upstream target branch ([d388c6e](https://github.com/narnaud/git-loom/commit/d388c6eb5c09209c13f4d9f97462f8702a3216c9))
* **push:** use bare branch name for existing PR detection ([810c18b](https://github.com/narnaud/git-loom/commit/810c18b92183ddf25584557b7a5dcd112292dc3d))
* **push:** use commondir for Gerrit hook detection in worktrees ([82fb865](https://github.com/narnaud/git-loom/commit/82fb8652f2525fd8fb68eb3637d7acc48ffa3c01))
* **push:** use msg::warn for CLI install advisory messages ([72db4c1](https://github.com/narnaud/git-loom/commit/72db4c1956296a8fc2a11802afe292e51f7067df))
* **push:** warn on unrecognized loom.remote-type config value ([112b36f](https://github.com/narnaud/git-loom/commit/112b36f1674bf4314a0e8f4e014f811c4f5f2d8b))
* **push:** warn when gh pr create fails instead of silent success ([00e50b3](https://github.com/narnaud/git-loom/commit/00e50b3b98080221b90fef3a15a701e899bbd434))
* **trace:** use repo.path() for log directory, fixing linked worktrees ([acf0171](https://github.com/narnaud/git-loom/commit/acf017180e3bcf2aeddab481b55fc086e0f4dd61))
* **unmerge:** replace dead .with_context() with .expect() ([ebdcc9e](https://github.com/narnaud/git-loom/commit/ebdcc9e84d84655176728f3a43a94e0f3ceda6a2))
* **update:** use safe delete for gone-upstream branch cleanup ([54e1c2f](https://github.com/narnaud/git-loom/commit/54e1c2f942cf762354f3dc8e369157546ecf66c9))
* **weave:** make move_commit and fixup_commit return Result, validate before removing ([650a69c](https://github.com/narnaud/git-loom/commit/650a69cfbe0eb55c578528c20570d5970ab5ff1f))
* **weave:** preserve co-located update_refs when dropping stacked branch ([882a901](https://github.com/narnaud/git-loom/commit/882a901c369e844a3670388baf6ae54a451245d6))
* **weave:** transfer update_refs when dropping commits ([ba115d6](https://github.com/narnaud/git-loom/commit/ba115d6a2ed5825fc835d1b1c72051f025fd3c36))
### Documentation
* add a favicon to the documentation ([9112225](https://github.com/narnaud/git-loom/commit/911222531496bc0ad5eac0d10ed380de0f33a41b))
* add git-loom banner ([e585a00](https://github.com/narnaud/git-loom/commit/e585a00698e992da00333bdc82174802dd3284a7))
* **branch:** clarify hideBranchPattern uses prefix matching, not glob ([03770fb](https://github.com/narnaud/git-loom/commit/03770fbd3720fc62bf8239a41a1f6866cd6bf714))
* change tagline for a more specific one ([e50c2f6](https://github.com/narnaud/git-loom/commit/e50c2f62af060178e5ab306dd9068d98ee7793ac))
* restructure and add colors for the help ([c05acc6](https://github.com/narnaud/git-loom/commit/c05acc649d46ad82cbdf8f1c68873912d69b8543))
* rewrote branch documentation to handle branch subcommands ([606b431](https://github.com/narnaud/git-loom/commit/606b431513f3ad6292b1231f74927c0d143484c8))
* **update:** document intentional auto-abort on rebase conflict ([022002d](https://github.com/narnaud/git-loom/commit/022002d575bf1fd6b67c22166e2faecd580d90f1))
* use a screenshot instead of a screencast (annoying) ([e66b626](https://github.com/narnaud/git-loom/commit/e66b626b00bad12e06fb77b89fda3f2f59940a1a))
### Tests
* **branch:** add merge + unmerge round-trip test ([71ef336](https://github.com/narnaud/git-loom/commit/71ef336ab6388d3b91073a4e0c8afabb87706849))
* **push:** add unit tests for extract_gh_repo URL parsing ([d64ca79](https://github.com/narnaud/git-loom/commit/d64ca796c0374661d4e4de145cf8003cf5325252))
* **weave:** add unit tests for weave_branch ([bf9f549](https://github.com/narnaud/git-loom/commit/bf9f54998ba45ee21026ab5dea80d0c52d256b3d))
### Other
* adapt image for github and mdbook ([482ed48](https://github.com/narnaud/git-loom/commit/482ed482c46ae1442d94ce4b4f6cd0d28615c045))
* **deps:** bump tempfile from 3.26.0 to 3.27.0 ([282036f](https://github.com/narnaud/git-loom/commit/282036f40ac9c02fb4e4bbdef83c4e1ffc76206e))
* simplify README, link to documentation ([f74fd32](https://github.com/narnaud/git-loom/commit/f74fd32d06bab6ce99b6d120b8e25207d8ffd520))
* update completions scripts ([17f2fc4](https://github.com/narnaud/git-loom/commit/17f2fc4c18689ee22db8ad53ebf42048933e4ea4))
## [0.14.0](https://github.com/narnaud/git-loom/compare/v0.13.0...v0.14.0) (2026-03-10)
### Features ✨
* add common aliases to some commands ([1c06ca8](https://github.com/narnaud/git-loom/commit/1c06ca800995380ccb304083ab2500c3660f45e4))
* **push:** Allow ssh host aliases and non-standard remote names ([cc620e7](https://github.com/narnaud/git-loom/commit/cc620e7c2861576ef386d7f9d34c3a9596706eca))
* **push:** auto-generate PR title and description from branch commits ([b5d5030](https://github.com/narnaud/git-loom/commit/b5d5030448684ce15a7c54e35f3be5eaa9a7d628))
* **push:** display Gerrit review URLs after push ([347e337](https://github.com/narnaud/git-loom/commit/347e33736c7ecb285b63cf67c825da3c4ffb4a34)), closes [#69](https://github.com/narnaud/git-loom/issues/69)
* **status:** show conflicted files with !! marker in bold red ([3a9a31d](https://github.com/narnaud/git-loom/commit/3a9a31d3adb36739dfabf8502124cae97d5a3baa)), closes [#67](https://github.com/narnaud/git-loom/issues/67)
### Bug Fixes 🐞
* **push:** fix Azure PR description and JSON output ([291b6d6](https://github.com/narnaud/git-loom/commit/291b6d69107ef6dd4ad712a66d95a3cf959601de))
* **push:** fix calling `az` on Windows ([b9cc2c7](https://github.com/narnaud/git-loom/commit/b9cc2c735a28f61e042f555049866a5e2ba38a9d))
* **push:** use serde_json to parse Azure and GitHub CLI output ([1a71d4c](https://github.com/narnaud/git-loom/commit/1a71d4cb4cc953f8350db77e35a274c38c74827d))
### Documentation
* **push:** document auto-generated PR title and description ([42dc767](https://github.com/narnaud/git-loom/commit/42dc76765832d3955dd6a71d91d7f83a4c03b155))
* **push:** document Gerrit review URL display after push ([269c54e](https://github.com/narnaud/git-loom/commit/269c54e92cab6e3249417fcc4f346beff6ecf964))
* **status:** document conflict display with !! marker ([8280ddd](https://github.com/narnaud/git-loom/commit/8280ddda7f470c0618f1c9ba33962ab12a6df40b))
* update help to be more complete ([00e61c3](https://github.com/narnaud/git-loom/commit/00e61c33302bb8287461cf751aabfa5c50e73187))
### Changes
* update warn message and use it for branch deletion ([9ea9ffc](https://github.com/narnaud/git-loom/commit/9ea9ffcc2f67ada5946231d740c3c23df25b1e78))
## [0.13.0](https://github.com/narnaud/git-loom/compare/v0.12.0...v0.13.0) (2026-03-08)
### Features ✨
* add `show` command for viewing commits by short ID ([#36](https://github.com/narnaud/git-loom/issues/36)) ([fdf954a](https://github.com/narnaud/git-loom/commit/fdf954a7883050a208d57284b8adcba009f62085))
* **branch,reword:** warn when branch name matches hidden pattern ([54e0b2c](https://github.com/narnaud/git-loom/commit/54e0b2c1ae8dfa28b7b4b05912f6449d1334ddab))
* **drop:** support dropping files and all local changes ([5c2727d](https://github.com/narnaud/git-loom/commit/5c2727d45efa523bbe58a86a9becfd25d516b576)), closes [#50](https://github.com/narnaud/git-loom/issues/50)
* **fold:** add --create flag to create and move commits into new branches ([ba6ef5a](https://github.com/narnaud/git-loom/commit/ba6ef5ab1a328c2550ffa4f81209a83533a60a7a)), closes [#37](https://github.com/narnaud/git-loom/issues/37)
* **push:** Add a --no-pr flag to push directly ([d53e726](https://github.com/narnaud/git-loom/commit/d53e726f0fac86f37ba8fea7f1b990ee0b1fedca))
* **push:** add AzureDevOps remote type with az CLI integration ([71dc11d](https://github.com/narnaud/git-loom/commit/71dc11d79f8f989abde1ffa9d81e2e5947017731))
* show new commit hash after rewrite operations ([23904c5](https://github.com/narnaud/git-loom/commit/23904c5d738c9c43965b8cd66c7b852bac71aa63)), closes [#19](https://github.com/narnaud/git-loom/issues/19) [#40](https://github.com/narnaud/git-loom/issues/40)
* **status:** add remote info on the branch name ([1ab7d26](https://github.com/narnaud/git-loom/commit/1ab7d26529c4dd6983f200a17cba4521456df63d))
* **status:** Allow -f to filter files to specific commits ([84e715c](https://github.com/narnaud/git-loom/commit/84e715c7d70dae9bc43e1bfbd0a3ed3eb68de681)), closes [#45](https://github.com/narnaud/git-loom/issues/45)
* **status:** group tracked changes before untracked files ([b95e117](https://github.com/narnaud/git-loom/commit/b95e117dc090d889ee111cf0601c17d7d45574cf))
* **status:** hide local-* branches by default with --all flag ([8664598](https://github.com/narnaud/git-loom/commit/866459890cf856f08832b39fd2b1080f30a18700)), closes [#38](https://github.com/narnaud/git-loom/issues/38)
* **status:** multi-column layout for untracked files ([0ebc6fa](https://github.com/narnaud/git-loom/commit/0ebc6faafd4a4829b78fcf29e4e685936add9d07)), closes [#41](https://github.com/narnaud/git-loom/issues/41)
* **theme:** add --theme flag with light/dark/auto support ([edb251c](https://github.com/narnaud/git-loom/commit/edb251c041188c3205635d8c426540cd19e54ac0))
* **update:** Remove local branches with gone upstream after update ([2634724](https://github.com/narnaud/git-loom/commit/263472401af983b5a2e8b0c9bbdb0c33b5d9a9ea)), closes [#56](https://github.com/narnaud/git-loom/issues/56)
### Bug Fixes 🐞
* eliminate TOCTOU race in stage_path ([a9fc62e](https://github.com/narnaud/git-loom/commit/a9fc62e108b385c10d8979331567c400e4500e90))
* **push:** detect existing PR and display URL instead of opening browser ([554e7df](https://github.com/narnaud/git-loom/commit/554e7dfb869f9b92b24b0ed677fd8b1dfb379226))
* **reword:** show reworded commit hash instead of merge commit hash ([c435705](https://github.com/narnaud/git-loom/commit/c4357058fd3ac55236549cf9f0764300c7ca66dd)), closes [#35](https://github.com/narnaud/git-loom/issues/35)
* **shortid:** enforce 2-char minimum and commit-first allocation ([5fb0062](https://github.com/narnaud/git-loom/commit/5fb0062e5e8d22f75944381091086411e2305ea6))
* **status:** New file should appear with red ?? ([0fbbdc5](https://github.com/narnaud/git-loom/commit/0fbbdc5ec99f20c5784e0ef18da808f1ca3be50b))
### Documentation
* add show command to README, CLAUDE.md, and docs site ([af6c417](https://github.com/narnaud/git-loom/commit/af6c417b91f16aa2ef900a5afd8bbf4025d8d3bd))
* Add tutorial and recipe guides ([9c9ded2](https://github.com/narnaud/git-loom/commit/9c9ded2c6372b37d6ade9486944aa3d6edebce62))
* **drop:** document file drop and zz drop-all behavior ([0ede693](https://github.com/narnaud/git-loom/commit/0ede69358d5ce9ff6fe601b6b947b9dda4ff5410))
* fix code to avoid scrollbar ([2d4f5cd](https://github.com/narnaud/git-loom/commit/2d4f5cde6f3446d201d75826c018070fc5d05141))
* **fold:** document --create flag ([b582ffe](https://github.com/narnaud/git-loom/commit/b582ffe91887178f37a927b923dc33e8489e20fa))
* **push:** document Azure DevOps support in README and user docs ([d0573ef](https://github.com/narnaud/git-loom/commit/d0573ef05f4ec7d32f231dc9f630729b169e003c))
* **push:** update push documentation for PR detection behavior ([43a850e](https://github.com/narnaud/git-loom/commit/43a850e922b15f98b379658bf99874fc34e933b6))
* **push:** Update with the --no-pr flag ([e8fa812](https://github.com/narnaud/git-loom/commit/e8fa81296b43d68b4ab39a5fb74b5f71bf9f9ab2))
* reorder configuration settings ([377bff1](https://github.com/narnaud/git-loom/commit/377bff11cf08610db49db184e9ab65ab5b118193))
* **status,branch,reword:** document hidden branches feature ([240548f](https://github.com/narnaud/git-loom/commit/240548f7effadeeb751b0ebffd3f0ff5daebf03f))
* **status:** Document -f commit filter option ([44b52aa](https://github.com/narnaud/git-loom/commit/44b52aa2bababdb62d356e7aada94849cad2f4ba))
* **status:** Update the documentation with latest changes ([0c04d6c](https://github.com/narnaud/git-loom/commit/0c04d6c966b75046738b56ccfa370ff6c8fcd295))
* **theme:** document --theme flag in README and docs ([b98a90a](https://github.com/narnaud/git-loom/commit/b98a90a31cdcc6ac99d56b5a8d869e5ad27d940d))
* update status to add remote indicators ([2e1fe6a](https://github.com/narnaud/git-loom/commit/2e1fe6acd6c986c5a0586426109182d47688f4e9))
* update usage instructions for the no command case ([5e9a3e9](https://github.com/narnaud/git-loom/commit/5e9a3e963bf2bcd21d7a69388368b2486b2f889e))
* **update:** Document --yes flag and gone upstream cleanup ([4ad9e73](https://github.com/narnaud/git-loom/commit/4ad9e73fc7dd878bd2e1be6de31c437a1e8f9ddc))
### Changes
* extract shared run_git_captured helper ([69dd5c4](https://github.com/narnaud/git-loom/commit/69dd5c4d6577d15f4d7b55c9b594f803a56ae408))
* reuse run_git_interactive in git_commit ([9f9532b](https://github.com/narnaud/git-loom/commit/9f9532bbdde78c56fc9d9e8d457c1e91e289fc23))
* **show:** pass branch name directly to git show ([5dbdbfb](https://github.com/narnaud/git-loom/commit/5dbdbfbc5f38339d1d881f6ac6e1fa1f81aea531))
* **status:** use dedicated theme colors for remote indicators ([3367af4](https://github.com/narnaud/git-loom/commit/3367af4ded14ec18fef52ac0f793532b373dd17c))
* **tests:** extract common git ops into TestRepo helpers ([65af6cd](https://github.com/narnaud/git-loom/commit/65af6cd56d050d38748d1ad3e1f817166db53064))
### Other
* add show command to completion scripts ([cd7f32a](https://github.com/narnaud/git-loom/commit/cd7f32a88e821240759e88cda40836de6dd309d3))
* **claude:** Update permissions ([1c84efe](https://github.com/narnaud/git-loom/commit/1c84efea3314e048948fd65fa35bbc2f6f479bd5))
## [0.12.0](https://github.com/narnaud/git-loom/compare/v0.11.0...v0.12.0) (2026-03-06)
### Features ✨
* **commit:** allow loose commits even when local commits exist ([c5ee426](https://github.com/narnaud/git-loom/commit/c5ee426f99da22016169c6b8d74aa411283477ae))
* support `fold zz <commit>` to fold all working tree changes ([f0b76ba](https://github.com/narnaud/git-loom/commit/f0b76ba25a1a004139a82f81f55e265184bfa4dd))
* **trace:** add per-invocation command audit trail ([667b13e](https://github.com/narnaud/git-loom/commit/667b13eb5bace89905592e5971b638f788f84f3f))
### Bug Fixes 🐞
* **branch:** Fix creation of branch on a commit which resolves to HEAD ([6c7e8d9](https://github.com/narnaud/git-loom/commit/6c7e8d933a3cdcc59ccfae00456dabd3d55bb506))
* detect upstream remote for GitHub PR target repo ([6a0f19e](https://github.com/narnaud/git-loom/commit/6a0f19eb76ce10cde5d373440e42cb9b5bc8b704))
* don't recurse into untracked dirs (too noisy) ([bdb3cf5](https://github.com/narnaud/git-loom/commit/bdb3cf5ced97a17d3cd51bae2d88af71d376ec87))
* fold commit to branch without section in Weave graph ([b043cb2](https://github.com/narnaud/git-loom/commit/b043cb2c08e1483c64f4b69dd275cdad6fa30e7e))
* hide upstream's local counterpart from status when at merge-base ([0715f7d](https://github.com/narnaud/git-loom/commit/0715f7ddd2b5813d4ccf440933a9877dfb13785b))
* not giving a new name for a branch in git reword is a noop ([be3ae12](https://github.com/narnaud/git-loom/commit/be3ae120aa2ab199c61f8dfdb179b6127cae0d20))
* only create loose commits when branch name matches upstream ([942cf85](https://github.com/narnaud/git-loom/commit/942cf8599c996ec671a365b2b2696b6039ab29e7))
* **push:** Fix re-pushing a branch to github ([408e4c2](https://github.com/narnaud/git-loom/commit/408e4c20eecc4f86bd86ddc3188c3b7073d4f1ef))
* **trace:** Don't show '\' on Linux. Show '/' on Windows instead ;) ([2bb0a26](https://github.com/narnaud/git-loom/commit/2bb0a2697edba90676989cdba912a87b77d3126e))
* **weave:** add # comment marker before commit messages in todo ([7f9c8e1](https://github.com/narnaud/git-loom/commit/7f9c8e1160668c9a23e0c37b58466c5df2317012))
### Performance Improvements ⚡
* skip file gathering in resolve_shortid when not needed ([028c1f5](https://github.com/narnaud/git-loom/commit/028c1f5e90a1815b4d689cde625c5d5057fc61f3))
### Documentation
* add trace command documentation ([48cb8f3](https://github.com/narnaud/git-loom/commit/48cb8f310b384a1bd5ac08d9919a33b490640dfe))
* Fix pre-commit command in README ([c874c5f](https://github.com/narnaud/git-loom/commit/c874c5f4d401a986d331ec76b2a811adedec118a))
* reorder commands in documentation ([0bfaa7b](https://github.com/narnaud/git-loom/commit/0bfaa7bb138db1ad64d180021f361081af3bc3cc))
* update all specifications and documentation based on last changes ([74b154e](https://github.com/narnaud/git-loom/commit/74b154e5f5c3af2d416451d68ea931a7a65855ae))
### Changes
* add Target::expect_branch() and use it in push and commit ([4b7fdc8](https://github.com/narnaud/git-loom/commit/4b7fdc8b53dcd54d2a5b28b96873ae3e05c47674))
* avoid double path construction in detect_remote_type ([41518ee](https://github.com/narnaud/git-loom/commit/41518ee3f60bd105e89081ef699e39f4cfce75d9))
* compute find_owned_commits once in drop_branch_with_info ([403e4a8](https://github.com/narnaud/git-loom/commit/403e4a8cb1575b0a7196f2df17c1229cc918c8f7))
* extract pending_refs helpers in weave::to_todo ([090533f](https://github.com/narnaud/git-loom/commit/090533fae6c4a47a2529bb0e46eed491c367c061))
* remove duplicate do_split_at_pause in split.rs ([d675669](https://github.com/narnaud/git-loom/commit/d6756699ce493135ca081c4c2f79ce0138434be0))
* reuse git::upstream_local_branch in extract_target_branch ([112a21b](https://github.com/narnaud/git-loom/commit/112a21bc4022d7e96c87665cdb0becb1e2d8c91f))
* Update the help to organize commands ([66147ec](https://github.com/narnaud/git-loom/commit/66147ecdddb27f219000904f19e85f706005339c))
* use e.to_string() instead of format!("{}", e) ([777ce87](https://github.com/narnaud/git-loom/commit/777ce871ef2cfa90ea4fcbd630e5d7dc0dbd6a6c))
### Tests
* Fix tests on Linux ([08ae7f7](https://github.com/narnaud/git-loom/commit/08ae7f79621f4bf653f414ff713a877c17887b35))
### Other
* Add split command to shell completions ([a0bcbcf](https://github.com/narnaud/git-loom/commit/a0bcbcf46435e5a5035c0bd45ab9c3255d24a357))
* **deps:** bump actions/checkout from 4 to 6 ([0990c22](https://github.com/narnaud/git-loom/commit/0990c22d2d1979abe37ff6816d7326e8234ee597))
* **deps:** bump actions/upload-pages-artifact from 3 to 4 ([c5db278](https://github.com/narnaud/git-loom/commit/c5db278f9b6e630e00fc138299db6e7e2045f940))
* **deps:** bump chrono from 0.4.43 to 0.4.44 ([124b448](https://github.com/narnaud/git-loom/commit/124b448d14b377f84e84a86a681b23626e58806d))
* **deps:** bump clap from 4.5.57 to 4.5.60 ([3a7ced9](https://github.com/narnaud/git-loom/commit/3a7ced9061a74504083264ca10bd1594819d6bca))
* **deps:** bump tempfile from 3.24.0 to 3.26.0 ([dbfc4a4](https://github.com/narnaud/git-loom/commit/dbfc4a48e3eff6c9336d2f681e203300d1f071fe))
* **deps:** Update all dependencies ([0156d99](https://github.com/narnaud/git-loom/commit/0156d99f9ae20d48f40e1d5ed7f01b564c07282e))
* fix clippy error (if-let chain) ([f7f0baa](https://github.com/narnaud/git-loom/commit/f7f0baa408e81537cc2e594baebc71ae11a9a3e3))
## [0.11.0](https://github.com/narnaud/git-loom/compare/v0.10.0...v0.11.0) (2026-03-01)
### Features ✨
* Add context commits before base in `loom status` ([aa9bb99](https://github.com/narnaud/git-loom/commit/aa9bb997d275f5099233ff681321cb59365f91da))
* Add split command to split a commit into two ([98b8ce6](https://github.com/narnaud/git-loom/commit/98b8ce6a99bea752ff291ea3bcea7105392e67e3))
* Auto-create loose commit when integration branch matches remote ([8274135](https://github.com/narnaud/git-loom/commit/82741353ae0a75e284c98d35d5837ca37378de27))
* Drop on a file restores it with confirmation ([a07697d](https://github.com/narnaud/git-loom/commit/a07697d4b6bdcbaaef7d8247ff08898ef6164bd7))
### Bug Fixes 🐞
* Preserve woven merge topology during update rebase ([5af65cf](https://github.com/narnaud/git-loom/commit/5af65cfadec7894d805e84b8e13beda9eeb49b18))
* Skip PR creation when pushing the upstream branch on GitHub ([0a11b3c](https://github.com/narnaud/git-loom/commit/0a11b3cb8c94090c24559b12dac63ed6947b23bb))
* Use git editor instead of inquire prompt for split commit message ([3d0dc19](https://github.com/narnaud/git-loom/commit/3d0dc198f4f5e437611cf9cd3eee2be0300be8d1))
### Documentation
* Add absorb command and missing drop --yes flag ([4b5f0e7](https://github.com/narnaud/git-loom/commit/4b5f0e7af4fa329837e715439972b40fdcf44e54))
* Add context commits to status spec and documentation ([d76301d](https://github.com/narnaud/git-loom/commit/d76301d36043234ec8d1f6ec8bca2114a3a315cb))
* Add split command and loose commit documentation ([484ff6b](https://github.com/narnaud/git-loom/commit/484ff6b1e525b33c622f0c5b94d0a6c9e0a3a2a6))
* Update drop specs and docs ([5546494](https://github.com/narnaud/git-loom/commit/55464940aaf97d383defe3d88e4501877fe3916c))
### Other
* Add CODEOWNERS ([148978f](https://github.com/narnaud/git-loom/commit/148978f88ff8730288be5f2f3e0bf94c833b453e))
* Add release profile for optimized binary size ([d6c10af](https://github.com/narnaud/git-loom/commit/d6c10af7f85cc2accd1b29d93b765edb92b17422))
* Fix pre-commit codespell skip file ([7fbf725](https://github.com/narnaud/git-loom/commit/7fbf725be4a166ae00395cb6d4dd2cd3d94bc662))
* Fix spelling ([e25a2d7](https://github.com/narnaud/git-loom/commit/e25a2d745aee7e4fce4854a1bdc5bfccbd8abe10))
* Update pre-commit hooos ([0afe346](https://github.com/narnaud/git-loom/commit/0afe3467d42145d139879f87d763cde6add9da0e))
## [0.10.0](https://github.com/narnaud/git-loom/compare/v0.9.1...v0.10.0) (2026-02-28)
### Features ✨
* Add absorb command to auto-distribute changes into originating commits ([ec44642](https://github.com/narnaud/git-loom/commit/ec44642f5638f8bd695f757b3b959d7f88c2bb06))
### Bug Fixes 🐞
* **ci:** Vendor OpenSSL for aarch64-linux cross-compilation ([39624d4](https://github.com/narnaud/git-loom/commit/39624d41aa78b561bb0fd07fc22ed4d0a4015aae))
### Performance Improvements ⚡
* Avoid multiple calls to gather_repo_info ([4a86dfb](https://github.com/narnaud/git-loom/commit/4a86dfbe31c5cd5c6881a8c64135590d434ff468))
### Documentation
* Add screencast to README and documentation introduction ([a2c9806](https://github.com/narnaud/git-loom/commit/a2c9806cd2884ae1e8e4abe82a7074bcf977715c))
### Other
* **ci:** Remove x86_64 macOS target and suppress brew warning ([d9c85e8](https://github.com/narnaud/git-loom/commit/d9c85e89901cd91daf88fd29c5273942c5f8fea3))
* Update shell completions for absorb, drop --yes, and status --files ([2165feb](https://github.com/narnaud/git-loom/commit/2165feb0aac21aca740df4b6569cdfd0d491bf85))
## [0.9.1](https://github.com/narnaud/git-loom/compare/v0.9.0...v0.9.1) (2026-02-27)
### Bug Fixes 🐞
* Add missing version flag ([2bc087c](https://github.com/narnaud/git-loom/commit/2bc087c48d9846ffbd576edb8b8967c8c7f52d8b))
* **ci:** Fix build on Linux and Mac ([7483944](https://github.com/narnaud/git-loom/commit/7483944d20b57e67e8e61c8ec1ad5138401ce77b))
* **cli:** Add --files bare option, to match status ([5eba86a](https://github.com/narnaud/git-loom/commit/5eba86a6f6167b34e6dfa98e3cdbc851cdf213a3))
* **commit:** Preserve working-tree changes on rebase conflict rollback ([db02745](https://github.com/narnaud/git-loom/commit/db027456a5c1ec301e1c94b36a155d31fd7ee49c))
* **drop:** Add confirmation prompt and preserve inner branches when dropping stacked branches ([1a08451](https://github.com/narnaud/git-loom/commit/1a0845102cca567cb6793b875c58f59a7399cd7f))
* Fail early in bare repository ([b110efd](https://github.com/narnaud/git-loom/commit/b110efdec3f46c0759a5bfc03492a5acd248a1ab))
* **fold:** Prevent autostash conflicts when folding files into woven branch commits ([818ac4a](https://github.com/narnaud/git-loom/commit/818ac4af0e3d8e30acd655ead8c2ac1a24ebc618))
* Strip misleading hint lines from aborted rebase errors ([0e44089](https://github.com/narnaud/git-loom/commit/0e4408906d54610b5b4831fed08960a830a5ada0))
* **update:** Show clean error on rebase conflict instead of raw git hints ([c0e0fb4](https://github.com/narnaud/git-loom/commit/c0e0fb4aa53f2679bb294a06e7dedb4d8005b091))
* **weave:** Update merge commit message when commit moves between branches ([56042c8](https://github.com/narnaud/git-loom/commit/56042c8422e92c7bab15bb8346b7af7b7f80168c))
### Other
* **ci:** Add dependabot ([2a49ec1](https://github.com/narnaud/git-loom/commit/2a49ec192c1d6eef5d2a8ba7f8f4a4ccee28991d))
* Update inquire ([7fcb9cc](https://github.com/narnaud/git-loom/commit/7fcb9ccf278a668bed703dc65ac0660f46c5c1bd))
## [0.9.0](https://github.com/narnaud/git-loom/compare/v0.8.0...v0.9.0) (2026-02-26)
### Features ✨
* **ci:** Publish to crates.io and package on Linux and Mac ([8cbe96e](https://github.com/narnaud/git-loom/commit/8cbe96ece2db6b07135535a6c9f99eb7bdc02586))
* **update:** Show latest upstream commit after successful update ([a607fd1](https://github.com/narnaud/git-loom/commit/a607fd1de23ad9098ecd17bab1158809a49ef592))
### Documentation
* Update installation steps ([f4a1fe9](https://github.com/narnaud/git-loom/commit/f4a1fe94f537a204ef6f5df27ed5fb13a0bd3d3b))
### Other
* Add crates.io package metadata ([938a2bc](https://github.com/narnaud/git-loom/commit/938a2bcd1625c1e3b7c5531e2998af0b70f9f81a))
## [0.8.0](https://github.com/narnaud/git-loom/compare/v0.7.0...v0.8.0) (2026-02-26)
### Features ✨
* Add colored success/error messages ([ab37051](https://github.com/narnaud/git-loom/commit/ab37051f467c2cb0cdba00b70124159317b276bc))
* Highlight command-line values in msg output ([73dbe8d](https://github.com/narnaud/git-loom/commit/73dbe8d2fb62a89c8a946fb2bb404e8331720cab))
* Show hint lines with blue arrow on multi-line errors ([8233634](https://github.com/narnaud/git-loom/commit/82336348ca2e93e8cb8d5c5eb29921b5832f160b))
* Support GitHub fork workflow in init and push ([ae9c702](https://github.com/narnaud/git-loom/commit/ae9c702a784ad2ce714a5465fa41590bd41c0251))
### Documentation
* Add mdBook documentation site with GitHub Pages deployment ([c813357](https://github.com/narnaud/git-loom/commit/c813357840db8008613316548ddef4a796d3e564))
### Changes
* Replace cliclack spinner with custom spinner in msg module ([e2aefea](https://github.com/narnaud/git-loom/commit/e2aefeadf57a56b16dee75be5d21664ec40d12d5))
* Replace cliclack with inquire, add prompt helpers in msg module ([3889b21](https://github.com/narnaud/git-loom/commit/3889b211765682a78b5062c2062f45f49e24c833))
### Other
* **claude:** Update permissions ([b95bdd1](https://github.com/narnaud/git-loom/commit/b95bdd190ce58997faad8e2fa9edeec0f1cf4343))
## [0.7.0](https://github.com/narnaud/git-loom/compare/v0.6.0...v0.7.0) (2026-02-23)
### Features ✨
* Add `-f` flag to `git loom status` to show per-commit files ([e4d8a85](https://github.com/narnaud/git-loom/commit/e4d8a8532c4fe393f35d3e1a44b787c68dd1f6df))
* Add CommitFile fold operations to move/uncommit individual files ([8905bf3](https://github.com/narnaud/git-loom/commit/8905bf3dbdd2ff81e81bb1ccc726dd9fce225879))
### Bug Fixes 🐞
* Add rollback and error recovery to rebase-based operations ([bdbf530](https://github.com/narnaud/git-loom/commit/bdbf53049aeb2580e63c1070e9fa25091f1f46a3))
### Changes
* Change default init branch name from "loom" to "integration" ([deba54d](https://github.com/narnaud/git-loom/commit/deba54d5cd4b8c1c8cbea8998bed372826b6d93a))
### Other
* **claude:** Allow cd ([6717b66](https://github.com/narnaud/git-loom/commit/6717b666ac7b888c9d3b492fe99ee8a0dd17c7c7))
## [0.6.0](https://github.com/narnaud/git-loom/compare/v0.5.1...v0.6.0) (2026-02-22)
### Features ✨
* Add `git loom push` to push feature branches to remote ([5a3af25](https://github.com/narnaud/git-loom/commit/5a3af25ab5fe9aec058a542bb3b86523ba77b60e))
* Add uncommit via `git loom fold <commit> zz` ([31fe70a](https://github.com/narnaud/git-loom/commit/31fe70a3c7393ee9e53670e8718bca072052e971))
### Documentation
* Add Configuration section to README ([6e323dc](https://github.com/narnaud/git-loom/commit/6e323dc0c0f4b04b7a9ec2d3b02f75663a425545))
### Changes
* Migrate error handling from Box<dyn Error> to anyhow ([7ccf6c6](https://github.com/narnaud/git-loom/commit/7ccf6c63f0bf40360d68905801fbe14ccfcb2b99))
## [0.5.1](https://github.com/narnaud/git-loom/compare/v0.5.0...v0.5.1) (2026-02-21)
### Bug Fixes 🐞
* Remove completions from completions matcher ([c11909b](https://github.com/narnaud/git-loom/commit/c11909b9693ecc4ef52268395e64c139e931c3f2))
## [0.5.0](https://github.com/narnaud/git-loom/compare/v0.4.1...v0.5.0) (2026-02-21)
### Features ✨
* Add completions for clink and powershell ([8c96ed1](https://github.com/narnaud/git-loom/commit/8c96ed17a95b2b8a6ff00e50e00cf2b96d33088a))
### Documentation
* Remove architecture details from the specifications ([75ba39f](https://github.com/narnaud/git-loom/commit/75ba39f33ccc9f3123d6ece4fde2397efbc9192d))
* Update README.md file ([bc4664c](https://github.com/narnaud/git-loom/commit/bc4664c385e5f3ce3f0eef81e9d47d05eeea5898))
### Other
* Add lua script for clink completions ([27f4ca3](https://github.com/narnaud/git-loom/commit/27f4ca33f333cfb9ad85d7d16895131ef6c6a59e))
## [0.4.1](https://github.com/narnaud/git-loom/compare/v0.4.0...v0.4.1) (2026-02-20)
### Documentation
* Update specs following Weave graph model refactor ([35f47c9](https://github.com/narnaud/git-loom/commit/35f47c9132c0ac9d5286348c469c2d001b4da7ed))
### Changes
* Unified interactive rebase via Weave graph model ([9f2ba3d](https://github.com/narnaud/git-loom/commit/9f2ba3d38342cb9ddc124cb8e602d27b40f1021e))
### Other
* **claude:** Update following weave refactoring ([ead99d7](https://github.com/narnaud/git-loom/commit/ead99d7856cfbca74fe22a9c8fa966ae42dfda3e))
## [0.4.0](https://github.com/narnaud/git-loom/compare/v0.3.0...v0.4.0) (2026-02-19)
### Features ✨
* Add minimum git version check ([f00e75c](https://github.com/narnaud/git-loom/commit/f00e75c85f51c6a8699946f8eae31b79c32f9cc7))
* Allow dirty working tree for some commands ([6b01029](https://github.com/narnaud/git-loom/commit/6b01029ae28dee8aef4e018140b12b603cd9b856))
* **branch:** "Weave" branch if needed ([f215b12](https://github.com/narnaud/git-loom/commit/f215b12a1c7efb94289b8ac5876780142005e889))
* **branch:** Create a new branch with the `branch` command ([11be764](https://github.com/narnaud/git-loom/commit/11be7645afa23b686949ec897f1ae09f62674c35))
* **commit:** Add the commit command ([79b1358](https://github.com/narnaud/git-loom/commit/79b135852dae77a555ff8f6d7b358f079716a88d))
* **drop:** Add the drop command ([ae3d8e9](https://github.com/narnaud/git-loom/commit/ae3d8e9d938b0d8b8f8a6f08c6685ed0fcc2a86e))
* **fold:** Add fold command ([bed1219](https://github.com/narnaud/git-loom/commit/bed1219ea6b0d72b4428eef33b58b786fc54cc91))
* **init:** Add init command ([b37466a](https://github.com/narnaud/git-loom/commit/b37466a85a8aab12a0387e1199b5da8cce4701a9))
* **status:** Use different characters for staged/unstaged status ([c5107e6](https://github.com/narnaud/git-loom/commit/c5107e6c337df4ab241d77614ee0417c8fc4f4dc))
* **update:** Add update command ([892322e](https://github.com/narnaud/git-loom/commit/892322e28c90e91d0c99af9a37805ba55d7cb07c))
### Bug Fixes 🐞
* **commit:** Create parallel branches if the branch has no commits ([fcd8e8f](https://github.com/narnaud/git-loom/commit/fcd8e8ff2ab05e5e1948de9939385b2bb13f4c0e))
* Fix clippy warning, remove unused method ([e3f3aae](https://github.com/narnaud/git-loom/commit/e3f3aae46fecc1b30c2af81644083e38693b7ce3))
* Fix dropping co-located branches ([d424ef9](https://github.com/narnaud/git-loom/commit/d424ef921a13a585c9867ac0f73472b3ea7babd8))
* Moving a commit during the interactive rebase ([e7eff18](https://github.com/narnaud/git-loom/commit/e7eff186e0928d7f59d31678804488a6d2e7802d))
### Documentation
* Add commit command ([2a1c649](https://github.com/narnaud/git-loom/commit/2a1c64981f8e4a92c3a3f398e62cdcc7d2a0750a))
* Add fold command ([ba1226f](https://github.com/narnaud/git-loom/commit/ba1226fbc27c3350b0d77a528a0cf34bb195055b))
* Add init command ([c1814e3](https://github.com/narnaud/git-loom/commit/c1814e33fd933886645dea3affc8cb69c293a95e))
* Add the drop command ([c13bca2](https://github.com/narnaud/git-loom/commit/c13bca27541243cb83a96e084e67492040631aa6))
* Add update command ([f751439](https://github.com/narnaud/git-loom/commit/f7514390242f19b0c285470ec6625409c0f9b363))
* **branch:** Add branch command specification ([cf93149](https://github.com/narnaud/git-loom/commit/cf931491d74ea662e4d11811a213c58e0b444e6b))
* Update documentation to match code ([8a89878](https://github.com/narnaud/git-loom/commit/8a898785ade47bbb1bba0b8b77692036ba5bfe3d))
* Update specs following latest changes ([6356138](https://github.com/narnaud/git-loom/commit/6356138cefac2fd2aa46e0ca996e30d2ad6a31d9))
* Update the rebase editor spec ([ff68624](https://github.com/narnaud/git-loom/commit/ff68624f49d2b2775eefa45c48da320819a5d668))
### Changes
* Add utility methods for pre-condition, add consistent error messages ([b56af32](https://github.com/narnaud/git-loom/commit/b56af323e6ce17f61d468ddcfdf0e5dd999beb80))
* Improve code quality and error handling ([bde5218](https://github.com/narnaud/git-loom/commit/bde5218099a41a75f8463b8f66359fad663555fe))
* **reword:** Update with new shared API ([3a52d0a](https://github.com/narnaud/git-loom/commit/3a52d0a94e0bbd0729f8a295009d0fcab1412254))
* **update:** Do a fetch before a rebase ([dd8adbc](https://github.com/narnaud/git-loom/commit/dd8adbc02dc55c8b9acf42d103931cfa52b42cd8))
### Tests
* Refactor tests for better readability ([c140647](https://github.com/narnaud/git-loom/commit/c140647a6eddb5040bd5ccea293f19965a78b510))
### Other
* **claude:** Update CLAUDE.md ([b9bf8fc](https://github.com/narnaud/git-loom/commit/b9bf8fc570f22467b9a55c4e7c90ad3c3254577d))
* Reformat ([218f434](https://github.com/narnaud/git-loom/commit/218f4340390788975c4458b3f59d2e37b45c2ff7))
## [0.3.0](https://github.com/narnaud/git-loom/compare/v0.2.0...v0.3.0) (2026-02-13)
### Features ✨
* Add resolve method to resolve hash or shortid ([9b4c62e](https://github.com/narnaud/git-loom/commit/9b4c62e3ac2f00fcc32d7cc005416d4212ce421f))
* **rebase:** Add an internal sequence editor ([7cf44e3](https://github.com/narnaud/git-loom/commit/7cf44e39edc34df0f19626959f5ae5862e331fe4))
* **reword:** Add the reword command ([7fd4495](https://github.com/narnaud/git-loom/commit/7fd449565b7e2cce9508a6a8d4a2f56824ad1831))
* **reword:** Ask new branch name if not provided ([64b5165](https://github.com/narnaud/git-loom/commit/64b5165d1ae81e7aebba2ccec4749d4487b2b535))
* **reword:** Hide git output, except in case of error ([2ebe007](https://github.com/narnaud/git-loom/commit/2ebe007dcbbcf46528ab4fee66319fb35bc8aa9e))
* **shortid:** Branch name can be used instead of shortid ([091ea79](https://github.com/narnaud/git-loom/commit/091ea795abc29cde3661c990e48309548baea5db))
### Bug Fixes 🐞
* **status:** Fix display of loose commits with feature branch ([3f92239](https://github.com/narnaud/git-loom/commit/3f92239623453eb0d8104abcfca16ed48cbb3621))
* **status:** Handle co-located branch ([07cb8f1](https://github.com/narnaud/git-loom/commit/07cb8f1fa1c14e19cc7586d90e85a6d18496de07))
* Use shell-escape crate to escape path ([4771b60](https://github.com/narnaud/git-loom/commit/4771b609a35900500f3bb1d97fc6cd45aa4cdb74))
* Validate hash in rebase ([d4dea94](https://github.com/narnaud/git-loom/commit/d4dea940c12bbd27cde158e91f97ffa805dfff80))
### Documentation
* **reword:** Add specification for reword ([d536544](https://github.com/narnaud/git-loom/commit/d53654454c142c3b0d151087c4b3b08b1ca2767f))
* Update following new development ([d815376](https://github.com/narnaud/git-loom/commit/d815376c8e6f6a8b31a272a2997d2b01f3fb3348))
* Update specifications ([ebfc98b](https://github.com/narnaud/git-loom/commit/ebfc98ba085428fb6ed6ab132e0082af08d95100))
### Changes
* Add git_branch command ([d99b1dd](https://github.com/narnaud/git-loom/commit/d99b1ddf558a0861158ac9cddc77cc793c045e99))
* Extract `collect_entities` for reusability ([668a8d0](https://github.com/narnaud/git-loom/commit/668a8d05aa809be5a66358c3a91e278c68c1a61e))
* Extract git commands into their own module ([5e1cf9a](https://github.com/narnaud/git-loom/commit/5e1cf9a916f154662a45299af7765520749f94fd))
* Improve git rebase algorithm for Edit action ([2b02584](https://github.com/narnaud/git-loom/commit/2b025845e012e690aa8cc0fce22d462f1bf60ee1))
* **rebase:** Use json to pass actions for the rebase todo ([36e2a1a](https://github.com/narnaud/git-loom/commit/36e2a1a304c7a5382f31d75220536e9d461373be))
### Tests
* Add more helpers to simplify tests ([0c1d6eb](https://github.com/narnaud/git-loom/commit/0c1d6eb83a0dd8890a35009bf4c50f9b9ec733d4))
### Other
* **claude:** Update CLAUDE.md based on last development ([a40dfae](https://github.com/narnaud/git-loom/commit/a40dfae9553a28c964ab167b5d5ff3e330027de4))
* Reformat code ([42119a7](https://github.com/narnaud/git-loom/commit/42119a7525e8f1c0910db1fdf83b3cf0c16f5564))
## [0.2.0](https://github.com/narnaud/git-loom/compare/v0.1.0...v0.2.0) (2026-02-09)
### Features ✨
* **log:** Handle upstream ahead ([738ed62](https://github.com/narnaud/git-loom/commit/738ed626d15d0d909dab5697dee8b98ff78c6f2f))
* **log:** Implement log command ([3570e3e](https://github.com/narnaud/git-loom/commit/3570e3ee4354d106759787de2f26cc7a48b472ff))
* **shortid:** Compute and display shortids ([fb31236](https://github.com/narnaud/git-loom/commit/fb312369f115b25a23a19fa11baf8e18b71cf62e))
* **shortid:** Update computation again to keep them visually distinct ([2229275](https://github.com/narnaud/git-loom/commit/2229275890aafc9079c6e8bad3ba6cad6444c7f7))
* **status:** Add colors for better reading ([a0f5799](https://github.com/narnaud/git-loom/commit/a0f5799c5d429936841cd1fac72323cfdbf11cf5))
* **status:** Rename log command into status ([498d063](https://github.com/narnaud/git-loom/commit/498d06338f3004599cbeab83856060f4446a800f))
### Bug Fixes 🐞
* **log:** Fix how loose commits are displayed ([37df668](https://github.com/narnaud/git-loom/commit/37df668f5bbf100b41e15bde85ed7db39c792133))
* **status:** Better handling of errors ([7020a06](https://github.com/narnaud/git-loom/commit/7020a06e257458ae98667d9623c9f9a95d90eca8))
* **status:** Don't recompute hash ([359f70a](https://github.com/narnaud/git-loom/commit/359f70a9e8bfa92da4b099aaa2aae45f04d3a28f))
* **status:** Use chrono to extract date, add MSRV ([a66b669](https://github.com/narnaud/git-loom/commit/a66b6692f7a2da3fca7bd77ad5e8603a53d51e88))
### Performance Improvements ⚡
* **status:** Some performance improvements, better idiomatic rust ([25a9f05](https://github.com/narnaud/git-loom/commit/25a9f0567f2513c611fe7167e4b08e3edcc77987))
### Documentation
* Add README and LICENSE files ([fa21580](https://github.com/narnaud/git-loom/commit/fa21580509b830b7780d719ae5b68e734464a57f))
* Add specification for the log command ([55269f8](https://github.com/narnaud/git-loom/commit/55269f86cd6ba1f0f42e9006339006d2653a841d))
* **shortid:** Add specification for the shortid ([51ecd0f](https://github.com/narnaud/git-loom/commit/51ecd0fe0c37d44263b0acd62254f8c9f035fca7))
* update README file ([cd0253b](https://github.com/narnaud/git-loom/commit/cd0253bcb783a2685a9f20acb452c664718ca9cf))
### Changes
* **shortid:** Improve collision algorithm, to keep 2 letters ([ec45aa1](https://github.com/narnaud/git-loom/commit/ec45aa118cca8fd32218b134581cafd42fffb3a0))
### Tests
* **log:** Add unit tests for the git extraction ([5a6da20](https://github.com/narnaud/git-loom/commit/5a6da20fddd28a9793557354a3c9e2ef0dc2959d))
* **log:** Add unit tests for the graph ([b19156e](https://github.com/narnaud/git-loom/commit/b19156e1c51f0ffe7f745bed78d3b40d199bbd6f))
### Other
* Add pre-commit ([a7d6844](https://github.com/narnaud/git-loom/commit/a7d684461a7e9702f0e9a45a4c9fef8c3136a315))
* Add release-please actions ([48c7996](https://github.com/narnaud/git-loom/commit/48c79966e5d849781c885d1ea085cac3801e94fb))
* **claude:** Add Claude settings ([94e93bc](https://github.com/narnaud/git-loom/commit/94e93bcd978e36f3c9e9ca757e1199bb0bde0e26))
* **claude:** Add CLAUDE.md file ([3e1e427](https://github.com/narnaud/git-loom/commit/3e1e427080ab3521eca4c0344873e9d8ede24465))
* **claude:** Add code-reviewer agent ([1a6ffdc](https://github.com/narnaud/git-loom/commit/1a6ffdc415ff8db4019ce3ca83992e31a656e752))