What's changed
- Merge branch 'factory/main-ci-green-7251' (39811d9)
- Fix ObjectReadFailure mapping for object reads; add tests (4f99920)
- Add ObjectReadFailure for corrupt object reads without nesting Error (9b3e59d)
- Move semver baseline to the ratified 0.6 API surface (16dbea8)
- Isolate foreign-ownership discovery test from host git config (93db531)
- RevWalk context wiring and integration harness (164e3ee)
- Fix grep with ThroughSubject retention, drop RevListOptions extent field, speed parent-filter walk (18409bd)
- Speed up log commit filters with streaming walks and lighter retained commits (c0434b1)
- Merge branch 'factory/log-filter-perf-2555' (974e280)
- Rebase follow-up: refresh public API and revwalk docs (fd84bee)
- RevWalk context wiring and integration harness (34f7359)
- Fix grep ThroughSubject retention and speed parent-filter walk (bb13810)
- Speed up log commit filters with streaming walks and lighter retained commits (178a5ff)
- CI green: trim legacy Repository API, fix Windows and api-ratchet (a52d489)
- Refresh API ratchet after config-write merge (7e0c205)
- Count every CancelToken check path once (344472c)
- Drop obsolete cancellation-check countdown test (ad0325a)
- Refresh API ratchet after ref-store rebase (8f95646)
- Keep multiline repository error kind names stable (5ea3426)
- Fix typed path I/O assertions after final rebase (c74ecf2)
- Fix pathspec CLI rustdoc link (f5e9481)
- Align examples with consolidated CancelToken imports (253a876)
- Refresh typed errors on consolidated main (5cb28ca)
- Preserve one countdown step per cancellation check (28238d4)
- Fix CancelToken poll countdown and deadline race (e494c6a)
- Fix remote error full-test assertion (2cc1776)
- Complete CancelToken migration compile fixes (652e4aa)
- Fix CancelToken test and example integration (36c2e1a)
- Fix CancelToken migration clippy warnings (c865001)
- Integrate typed errors with CancelToken migration (c289e7d)
- Repair latest-main config merge during integration (4386793)
- Align coverage and error contracts with rebased behavior (a90f7bb)
- Restore RepositoryError imports in full-test modules (1b66378)
- Fix latest-main test and API ratchet integration (847bcbe)
- Refresh typed-error API ratchet and CLI contracts (54ca74a)
- Fix typed-error replay against current repository APIs (73b61f4)
- Fix invalid initial branch errors and error kind contract tests (43c42df)
- test: expect V1OnlyExtensionsInFormatZero for v0 reftable extension (ae85bca)
- Fix review round two: test imports, rustdoc links, HookError Arc clone (256ee2a)
- Address review: clippy, public-api, HookError, ConfigError source (70ba974)
- Introduce RepositoryError and typed config validation errors (679972e)
- Repair api ratchet after CancelToken consolidation (99c8e70)
- Merge branch 'factory/api-ratchet-config-write-7215' (84a0e71)
- Fix References::store doctest for RefNameRef (7dca99b)
- API ratchet: track config writes; fix CancelToken poll counting (9f0bfb9)
- Count test cancel checks on CancelToken::poll (f2ac0d5)
- Refresh grit-lib public API snapshot (db6cb70)
- Apply rustfmt after ref_store call wrapping (191313c)
- Align repository accessors with ref_store and revwalk (7bd3f67)
- lib: poll cancel before committing index writes (cd80288)
- Drop obsolete progress::Token import in commit_hook_cancel test (972317d)
- Restore build after cancel-token migration in tests (814bd78)
- Fix cancel polling, Token alias, and test builds after pathspec refactor (8339ca9)
- Keep API ratchet: move full-test pack/date helpers to test_support (10aba35)
- Address pathspec full-tests and embedder API follow-ups (6da99a7)
- Fix clippy dead code after pathspec API cleanup (8a932c3)
- Port pathspec APIs to Pathspec; ratchet pub_fn_pathspec_strings to 0 (c5d5b48)
- Use RefName and RefNameRef across ref store APIs (cc8d262)
- lib: restore deprecated config helpers and fix api ratchet metrics (6a0d08b)
- Merge branch 'factory/log-oneline-decorate-perf' (ad6cc72)
- Refresh public API snapshot and fix config roundtrip init binding (83cd0e0)
- Remove duplicated source that broke rustfmt and test parsing (86c1854)
- doc(cli): fix broken intra-doc links for rustdoc -D warnings (a2cb474)
- perf(cli): batch oid abbreviation for log oneline with decorations (0b00964)
- Address review: ref-set empty guard and oracle ordering (a79949c)
- Fix log and revs ref-set selection without implicit HEAD (e49f64c)
- fix(cli): load merged config snapshot in locate_repository_with_config (eb91517)
- test: fix config snapshot use in grit-lib unit tests (6246300)
- Align fetch config load with LoadConfigOptions and drop stale CancelToken imports (974d355)
- Fix stash and pull index error propagation after index refactor (1db226f)
- Restore public index API surface for semver and guide legacy index failures (560b835)
- Index: IndexResult write policy, Nested errors, exact truncation test (055d751)
- Return IndexResult from public index APIs and emit structured IndexError context (d0fceb3)
- Document IndexError in library errors guide and pin kind-name contract test. (4bfe0b3)
- Introduce typed IndexError and migrate index call sites (00943cb)
- fix: repair duplicated source from a bad merge (3c0c2e2)
- lib: finish CancelToken migration on current main (0d79c12)
- lib: migrate cancellation APIs to CancelToken (ce322dc)
- Speed up log --graph --oneline and cut memory on large histories. (efe795e)
- lib: scoped config writes with ConfigEditor and safe UTF-8 reads (8b4c350)
- docs: align config examples with Repository::config snapshot API (b61ff45)
- test: fix stash_error_variants for Repository::init tuple (1c26cfc)
- fix: regenerate grit-lib public API snapshot after RemoteError merge (9494451)
- Align tests and ratchet with config snapshot and Init tuple (2a6a89d)
- Fix config snapshot plumbing and RemoteError test mappings after rebase (d0f8323)
- Align api-ratchet semver baseline with main and refresh counts (3545906)
- Update grit-lib public API snapshot for RemoteError expansion (6823d58)
- Fix clippy on RemoteError transport display and list refs fetch (25fcffe)
- Apply rustfmt after remote error integration (b72e134)
- Fix CLI error contracts: lib error ratchet and RemoteError cancel exit (3026d67)
- Address review: HttpClient RemoteResult and typed remote errors (d2207ce)
- Add remote_error_variants interop tests without full-tests gate (560b86c)
- Document RemoteError in network guide and fix github_auth tests (b6b40fa)
- Format ureq auth test fix (d1ec60d)
- Restore remote auth CLI mapping and fix clippy (e3c6592)
- Complete CLI nested pull errors and remote interop tests (62b1b83)
- Expand RemoteError and nest remote failures under Error::Remote (20cfe53)
- lib: fix mailmap line parsing to match Git (Fixes #2551) (0ec9243)
- Merge branch 'cursor/config-handle-tests-7348' (2e2e835)
- test: align grit-lib tests with Repository::config handle API (69ab68c)
- Merge branch 'factory/stash-errors-7108' (7c402e7)
- Fix CI: LockHeld tests, semver baseline, and rustdoc links (f2fcb20)
- Fix clippy useless_conversion in stash_not_found_cli (fc77b85)
- Address stash error review: legacy serde, cancel, ratchet 169 (1557f73)
- Introduce typed StashError and migrate stash porcelain API (decf2aa)
- fix: load merged config via Repository::config snapshot (7dcbd77)
- Fix init tuple destructuring in http-server and protocol tests (6955a01)
- Fix grit-cli LockHeld tests after rebase onto main (de6826a)
- Fix api-ratchet baseline after rebase onto main (70c87a1)
- Port full-tests integration init callers to InitOutcome tuple (3351091)
- Address review: examples, public-api, git layout tests, discovery coverage (e504d62)
- Consolidate repository construction on open, discover, and init (79a4842)
- Consolidate repository construction on open, discover, and init (189b882)
- Consolidate repository construction on open, discover, and init (d8ac623)
- progress: add pack-build phases and unify progress plumbing (9fb1da7)
- fix: apply rustfmt after revision error integration (6de4dee)
- Finish RevResult for streams and log query; fix CLI RevisionError and JSON kind (ccd7c28)
- Address review: RevResult public revision APIs, typed userdiff and blame I/O (5682e7e)
- Refresh api-ratchet after public-api snapshot (813c7b1)
- Fix gate fallout for revision/diff error step: contract pins, rustdoc, public-api (8628a11)
- lib: add RevisionError and DiffError typed areas (factory 7106) (84554ed)
- Finish rebase onto main: merge upstream ref APIs with area errors (6242752)
- Fix fmt import order and remove unreachable branch error arm (7478a96)
- Fix CLI migration and integration tests after ref/notes error consolidation (e4f8701)
- Consolidate ref, branch, tag, and notes errors into area enums (d40d671)
- Fix pack.rs duplicate import and status Pathspec rustdoc link (0e3a951)
- Merge branch 'factory/config-repo-config-0793' (ec25f10)
- Fix review blockers on worktree error scaffold (499d5a9)
- Scaffold WorktreeError area: split linked registry errors (b49f79c)
- Route config reads through Repository::config and unify ConfigSet getters (5e2e812)
- cli: map global -c parse errors and pin ObjectNotFound contract (9561d1b)
- cli: pin error_map contracts and move config/history mapping (022d19c)
- cli: tighten error_map contract ratchet and centralize mapping (43c26ee)
- cli: fix broken rustdoc link for stage error mapper (c530cd6)
- Refresh api-ratchet and pin semver baseline after RefName policy API (da11824)
- Collapse nested if in RefName effective_format_options for clippy (da73c05)
- Fix storable RefName policy, port grit-utils, refresh public-api snapshot (28c3141)
- Add RefName::parse with RefNamePolicy and retire public ref validators (52ab067)
- Fix semver baseline and public-api snapshot after CancelToken land (2846710)
- Pin semver_baseline to integration tip (e4012b4)
- Pin semver_baseline to branch tip after baseline alignment commit (65abe09)
- Align semver_baseline pin with branch tip commit (afbae5d)
- Fix clippy on process_cancel_token and ratify semver baseline (4776b80)
- Address review: hide AtomicBool from public API and fix cancel tests (7599ba6)
- Ratchet public_api_lines after CancelToken API snapshot (89d5a0b)
- Refresh public-api snapshot and fix clippy after CancelToken (d44ac42)
- Add CancelToken and remove progress sink cancellation plumbing (7ffd135)
- Merge branch 'factory/pathspec-type-7117-v2' (659e58b)
- cli: map LockHeldError tuple in error_map after main centralization (3d63db0)
- Refresh api-ratchet baseline after main merge (pub_cancel_types 101) (d3fedd7)
- Rebase onto main: merge 0.6 ratchet counters with error contract metrics (143841d)
- Fix string-tuple ratchet: tuple payloads only, complete synthetic counter tests (a29fed9)
- Fix error-contract review: ratchet tuple detection, kind slug pin, PathIo OS identity (1cc949a)
- Error contract step 1: shared leaf types, area map, ratchet, and pinning tests (2c450b7)
- Deduplicate typed pathspec resolution in grit-cli (00e5fa9)
- Fix clippy after pathspec_typed parameter (c9e0cda)
- Honor global pathspec flags in status and pathspec matching (bff0329)
- Add Pathspec type and port status to typed pathspecs (c741b97)
- cli: centralize add/restore errors and expand lib contract rows (74f58a2)
- cli: fix error_map contract, ratchet, and tag classification (1ec73fe)
- cli: centralize library error mapping in error_map.rs (088a818)
- Fix api ratchet struct fields and trait method visibility (717fb6e)
- Add API ratchet counters for duplicate 0.6 concepts (b3ae350)
- Merge branch 'factory/ci-json-filter-timing-0d60' (262568f)
- Make json_filter large-payload test deterministic (04cedeb)
- Fix root-anchored /*.ext ignore patterns crossing directory boundaries (eec7b86)
- Merge branch 'factory/tag-not-found-json-kind' (1918ada)
- Fix log subjects after gc by reading commits through subject in packs (0833f3f)
- Fix tag -d missing tag_not_found JSON kind (f653f5f)
Full Changelog: v0.5.29...v0.5.30