0.4.1 (2026-05-17)
- Pin next release (f523db8)
- Add code of conduct (62cdabd)
- Add contribution guide (cb240be)
- Add note for testers in README (f219c20)
- Add reference to code of conduct in README (f71c62d)
- Add reference to contribution guide in README (34502d5)
0.4.0 (2026-05-17)
- Add -a/--all flag to list subcommand (8fed577)
- Add
EditandMergeCLI subcommands (eb21231) - Add
Executor::mergefor 3-way merge of metadata refs (eb21231) - Add
Executor::read_blob_atfor reading blob entries (eb21231) - Add edit and merge subcommands (eb21231)
- Make object a keyword argument in add, remove, and edit subcommands (2b88890)
0.3.0-rc.2 (2026-05-16)
metadatavalidates input and ref-target shape (dbeb94c)- Accept optional author signature in Ledger::create (cb4d735), closes #10
- Add --author-name and --author-email to create subcommand (cb4d735)
- Add --link <rev> to add (resolved permalink, peels tags) (8499883)
- Add --link-ref <name> to add (unresolved ref name as blob) (8499883)
- Add
AlreadyExists,InvalidRootType,FanoutPathConflicterrors (dbeb94c) - Add
ContentAddressableandPointertraits (677936a) - Add
DEFAULT_FANOUTconstant (82f6a4f) - Add
Error::UnexpectedKindvariant (d57c2ba) - Add
Executor::repo()accessor (8ac3697) - Add
Executor::stale()read-only counterpart toprune(8ac3697) - Add
InvalidFanoutDepthandFanoutFinderror variants (82f6a4f) - Add
list <object>subcommand (replaces oldshowflat output) (ce0fc2a) - Add
message: Option<&str>toMetadataRepository::metadata_delete(8ac3697) - Add
message: Option<&str>toMetadataRepository::metadata(8ac3697) - Add
message/authorparams toExecutor::upsert,import,remove(8ac3697) - Add
Metadata::idandMetadata::dataaccessors (0c8fb44) - Add
Metadata::idandMetadata::dataaccessors (9757be5) - Add
tree::remove_leafhelper that prunes empty intermediates (8764905) - Add
TreeIdnewtype withFrom<gix::Tree>andFrom<TreeId> for gix::ObjectId(f5d5c88) - Add
Tx::with_message()builder; default commit message is"store: commit transaction"(d57c2ba) - Add CLI (ff68888)
- Add Error::FanoutDepthConflict variant (a77bc5d)
- Add FileMode enum (Blob, Executable, Tree, Commit) (c72b96c)
- Add git-db crate to workspace (e2ed0fc)
- Add global --force flag used by add, copy, and man-page generation (676d45a)
- Add IdStrategy::CommitOid for commit-OID-keyed entity refs (31c8dc3), closes #6
- Add Mutation::Pin for inserting entries that reference existing objects (c72b96c)
- Add optional author override to Ledger::create (cb4d735)
- Add print_tree_entry helper in main.rs (4f09287)
- Add store abstractions (260820f)
- Add validate_metadata_tree to MetadataRepository trait (a77bc5d)
- Enable gix tree-editor feature for structural sharing (bf946a9)
- Implement
ContentAddressable,Ref, andTransactionover gix (7949943) - Implement
Executor::upsert(0c8fb44) - Implement
Executor::upsert(333a29f) - Implement
find_metadata(0c8fb44) - Implement
find_metadata(119791d) - Implement
metadata_default_refreturningrefs/metadata/commits(82f6a4f) - Implement
metadata_deleteand addtree::remove_leaf(0c8fb44) - Implement
metadata_deleteand addtree::remove_leaf(8764905) - Implement
metadata, mirror libgit2 notes shape (0c8fb44) - Implement
metadata, mirror libgit2 notes shape (dbeb94c) - Implement compile_patterns and tree_is_empty helpers (7269b52)
- Implement Executor::copy (7269b52)
- Implement Executor::remove with glob-pattern matching (7269b52)
- Implement Executor::remove, stale, copy, prune (7269b52)
- Implement Executor::stale and Executor::prune (7269b52)
- Implement Executor::upsert using tree::insert_leaf directly (7302605)
- Implement Executor::upsert; parameterize insert_leaf over leaf_kind (0c8fb44)
- Implement Executor::upsert; parameterize insert_leaf over leaf_kind (7302605)
- Implement Store and Tx for phase 1 transaction (bf946a9)
- Install nextest via taiki-e/install-action@nextest (8b9181f)
- Make
listshow flat tree entries andshowrender a tree (ce0fc2a) - Open editor for
addwhen no content is provided interactively (2a7cd53) - Print man page path on write and require --force to overwrite (676d45a)
- Read
.fanoutdepth blob inmetadatas(82f6a4f) - Read committer identity from git config via
repo.committer(), falling back to generic defaults (d57c2ba) - Render
showoutput as a tree viatermtree(ce0fc2a) - Require
.fanoutdepth in metadata trees and documentMetadataRepository(0c8fb44) - Require
.fanoutdepth in metadata trees and documentMetadataRepository(82f6a4f) - Rework
addto support --link/--link-ref; make --path optional (8499883) - Run doctests with cargo test --doc (8b9181f)
- Run tests with cargo nextest run (8b9181f)
- Scaffolding for
git-store(4480796) - Split --generate-man-page into bool flag plus --man-dir (676d45a)
- Split
PointerintoRefandTransactiontraits (7ff0b5f) - Store::open/init bind to refs/db/<n> (bf946a9)
- Tx::commit with configurable CAS retry loop (bf946a9)
- Tx::get/put/delete/list over nested tree paths (bf946a9)
- --force is no longer global; add and copy each declare their own --force flag (c06cd88)
- Add initial_depth: Option<u8> to MetadataRepository::metadata(); wire --shard-level through upsert (c06cd88)
- Bind
metadata_default_ref()result so the borrow outlives the match (6afe663) - Change
removereturn type toResult<Option<gix::ObjectId>>(707709d) - Correct fanout traversal and error propagation in
metadatas(0c8fb44) - Correct fanout traversal and error propagation in
metadatas(6afe663) - Correct generate-man arguments (5e879a1)
- Correct stale
[Repo]link in module doc to[Executor](707709d) - Create man dir if necessary (21d2a15)
- Default man page output dir to XDG_DATA_HOME (f713512)
- Document
forcebehavior inupsert,copy, andimport(707709d) - Document copy --force as a destructive wholesale replace (c06cd88)
- Ensure_fanout_blob now errors on type/depth conflict, no-ops on match (a77bc5d)
- Fail fast on non-hex fanout leaves (6afe663)
- Fix editor template line-continuation formatting (c06cd88)
- List and show return empty output instead of erroring when no metadata ref exists (c06cd88)
- Make object positional in remove (was -o/--object, inconsistent with add/show) (c06cd88)
- Metadata::new no longer requires id to be a blob; any object type is valid (c06cd88)
- Peel metadata ref to a tree before traversal (6afe663)
- Propagate ref-find, peel, and traverse errors via new variants (6afe663)
- Publish only the crate matching the release tag (912b8ce)
- Publish pre-release crates to crates.io (6f1d588)
- Reject empty paths in
Txoperations (f541852) - Reject non-blob
.fanoutentries (symlink, gitlink) withInvalidFanoutDepth(6e20304) - Remove --shard-level from copy (concept does not apply) (c06cd88)
- Remove manual version pins (ed13199)
- Remove redundant
get_refmethod (707709d) - Replace panicking
into_commit()/into_tree()withtry_into_commit()/try_into_tree(), returningError::UnexpectedKindon mismatch (d57c2ba) - Require positional argument to be last (4827a71)
- Resolve clippy -D warnings diagnostics in stub impls (2793dde)
- Resolve diagnostics in
metadatasimpl (0818601) - Resolve nine CLI issues and rename default metadata ref (c06cd88)
- Revert
upserttotodo!()pending rewrite (707709d) - Update --path help to mention --link and --link-ref as alternatives (c06cd88)
- Hoist hex buffer allocation out of the entry loop (6afe663)
0.3.0-rc.1 (2026-03-26)
- Add git-chain (2a2cfea)
- Add git-ledger (2a2cfea)
- Implement relation operations in git-metadata (7725be8)
- Apply clippy suggestions (search_is_some in tests, fmt in main.rs) (6f83928)
- Handle slash in link keys and batch prune commits in git-metadata (a37fb3e)
0.2.1 (2026-03-20)
- metadata_remove no longer takes MetadataOptions
- Add executor (exe) and CLI implementation (10d9c07)
- Add initial trait method and accompanying implementation (c4ed9f8)
- Add man generation to CLI (275207f)
- Add metadata trait method definitions (30ef2eb)
- Add metadata trait method implementations (30ef2eb)
- Auto-detect fanout depth on read and remove (bd86065)
- Glob matching for remove patterns (*, **, prefix match) (4cf0d90)
- Path-based metadata API following git-notes semantics (4cf0d90)
- Resolve revisions (HEAD, refs, short OIDs) in all object arguments (4cf0d90)