Tags: mustafa0x/hk
Tags
chore: release v1.44.1 (jdx#856) ### 🐛 Bug Fixes - **(git)** skip untracked scan when HK_STASH_UNTRACKED=false by [@jdx](https://github.com/jdx) in [jdx#861](jdx#861) - **(run)** add post-commit and pre-rebase subcommands by [@jdx](https://github.com/jdx) in [jdx#858](jdx#858) ### 📚 Documentation - **(install)** recommend global hooks as primary setup path by [@jdx](https://github.com/jdx) in [jdx#855](jdx#855) - add cross-site announcement banner by [@jdx](https://github.com/jdx) in [jdx#857](jdx#857) - respect banner expires field by [@jdx](https://github.com/jdx) in [jdx#862](jdx#862) ### 🔍 Other Changes - vendor bats test helpers instead of git submodules by [@jdx](https://github.com/jdx) in [jdx#859](jdx#859) ### 📦️ Dependency Updates - bump communique to 1.0.3 by [@jdx](https://github.com/jdx) in [jdx#863](jdx#863) - update anthropics/claude-code-action digest to e58dfa5 by [@renovate[bot]](https://github.com/renovate[bot]) in [jdx#864](jdx#864) <!-- CURSOR_SUMMARY --> --- > [!NOTE] > **Low Risk** > Low risk release bookkeeping only: version numbers, generated CLI/docs, and lockfile dependency bumps with no runtime logic changes. > > **Overview** > **Release prep for `v1.44.1`.** Updates `Cargo.toml`/`Cargo.lock` (including `libc`) and all version references in generated CLI docs (`docs/cli/*`, `hk.usage.kdl`). > > Refreshes documentation examples to reference the new `v1.44.1` Pkl package URLs and adds the `1.44.1` entry to `CHANGELOG.md`. > > <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit d7637d4. Bugbot is set up for automated code reviews on this repo. Configure [here](https://www.cursor.com/dashboard/bugbot).</sup> <!-- /CURSOR_SUMMARY --> Co-authored-by: mise-en-dev <123107610+mise-en-dev@users.noreply.github.com>
chore: release v1.44.0 (jdx#837) ### 🚀 Features - **(check)** implement --plan, --why, and --json by [@jdx](https://github.com/jdx) in [jdx#848](jdx#848) - **(cocogitto)** add cocogitto conventional commits config to hk builtin config by [@hituzi-no-sippo](https://github.com/hituzi-no-sippo) in [jdx#838](jdx#838) - **(git)** support GIT_DIR/GIT_WORK_TREE for bare-repo dotfile managers by [@jdx](https://github.com/jdx) in [jdx#847](jdx#847) - **(install)** use Git 2.54 config-based hooks with --global support by [@jdx](https://github.com/jdx) in [jdx#853](jdx#853) ### 🐛 Bug Fixes - use text progress in CI by [@jdx](https://github.com/jdx) in [jdx#845](jdx#845) ### 📚 Documentation - generalize agent guidelines by [@jdx](https://github.com/jdx) in [jdx#846](jdx#846) - add releases nav and aube lock by [@jdx](https://github.com/jdx) in [jdx#849](jdx#849) ### 🔍 Other Changes - bump communique to 1.0.1 by [@jdx](https://github.com/jdx) in [jdx#850](jdx#850) ### 📦️ Dependency Updates - update actions-rust-lang/setup-rust-toolchain digest to 2b1f5e9 by [@renovate[bot]](https://github.com/renovate[bot]) in [jdx#832](jdx#832) - update anthropics/claude-code-action digest to c3d45e8 by [@renovate[bot]](https://github.com/renovate[bot]) in [jdx#833](jdx#833) - update rust crate tokio to v1.52.1 by [@renovate[bot]](https://github.com/renovate[bot]) in [jdx#834](jdx#834) - update actions/upload-pages-artifact action to v5 by [@renovate[bot]](https://github.com/renovate[bot]) in [jdx#835](jdx#835) - update taiki-e/upload-rust-binary-action digest to f0d45ae by [@renovate[bot]](https://github.com/renovate[bot]) in [jdx#839](jdx#839) - update rust crate clx to v2 by [@renovate[bot]](https://github.com/renovate[bot]) in [jdx#836](jdx#836) - update anthropics/claude-code-action digest to 0d2971c by [@renovate[bot]](https://github.com/renovate[bot]) in [jdx#841](jdx#841) - update anthropics/claude-code-action digest to 38ec876 by [@renovate[bot]](https://github.com/renovate[bot]) in [jdx#842](jdx#842) - lock file maintenance by [@renovate[bot]](https://github.com/renovate[bot]) in [jdx#851](jdx#851) <!-- CURSOR_SUMMARY --> --- > [!NOTE] > **Low Risk** > Low risk release bookkeeping: version bumps and doc/CLI artifact updates, plus minor dependency patch updates in `Cargo.lock`. No functional Rust source changes are included in this diff. > > **Overview** > Bumps `hk` to **v1.44.0** and publishes the corresponding release notes in `CHANGELOG.md`. > > Updates generated/packaged artifacts to match the new version (CLI docs/specs and Pkl package URLs in docs/examples), and refreshes `Cargo.lock` for the release (including patch-level updates like `rustls` and `winnow`). > > <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit a36c7a6. Bugbot is set up for automated code reviews on this repo. Configure [here](https://www.cursor.com/dashboard/bugbot).</sup> <!-- /CURSOR_SUMMARY --> Co-authored-by: mise-en-dev <123107610+mise-en-dev@users.noreply.github.com>
chore: release v1.43.0 (jdx#827) ### 🚀 Features - **(harper)** add harper-cli config to hk builtin config by [@hituzi-no-sippo](https://github.com/hituzi-no-sippo) in [jdx#714](jdx#714) ### 🐛 Bug Fixes - **(release)** add linux musl targets by [@jdx](https://github.com/jdx) in [jdx#829](jdx#829) ### 🔍 Other Changes - drop sub-crate submodules and publish hk to crates.io by [@jdx](https://github.com/jdx) in [jdx#830](jdx#830) ### 📦️ Dependency Updates - lock file maintenance by [@renovate[bot]](https://github.com/renovate[bot]) in [jdx#826](jdx#826) <!-- CURSOR_SUMMARY --> --- > [!NOTE] > **Low Risk** > Primarily a version/release bookkeeping change (docs, generated CLI metadata, and lockfiles) with no runtime logic modifications in this diff. > > **Overview** > Cuts release `v1.43.0` by bumping the crate version in `Cargo.toml`/`Cargo.lock` and updating `CHANGELOG.md` with the 1.43.0 notes. > > Regenerates versioned references across docs and CLI artifacts (e.g., `docs/*`, `docs/cli/*`, example `.pkl` files, and `hk.usage.kdl`) to point at `v1.43.0` Pkl package URLs. Updates `mise.lock` to include provenance metadata for the `communique` linux x64 artifact. > > <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit f4e6c35. Bugbot is set up for automated code reviews on this repo. Configure [here](https://www.cursor.com/dashboard/bugbot).</sup> <!-- /CURSOR_SUMMARY --> Co-authored-by: mise-en-dev <123107610+mise-en-dev@users.noreply.github.com>
chore: release v1.42.0 (jdx#811) ### 🚀 Features - add {{ hook_args }} template to pass to downstream commands by [@JohanLorenzo](https://github.com/JohanLorenzo) in [jdx#807](jdx#807) ### 🐛 Bug Fixes - **(step)** preserve cmd.exe quoting for {{files}} on Windows by [@jdx](https://github.com/jdx) in [jdx#824](jdx#824) ### 🛡️ Security - **(deps)** update dependency eslint to v10 by [@renovate[bot]](https://github.com/renovate[bot]) in [jdx#813](jdx#813) ### 📦️ Dependency Updates - update taiki-e/upload-rust-binary-action digest to 10c1cf6 by [@renovate[bot]](https://github.com/renovate[bot]) in [jdx#810](jdx#810) - update nick-fields/retry action to v4 by [@renovate[bot]](https://github.com/renovate[bot]) in [jdx#812](jdx#812) - update anthropics/claude-code-action digest to 657fb7c by [@renovate[bot]](https://github.com/renovate[bot]) in [jdx#809](jdx#809) - update dependency typescript to v6 by [@renovate[bot]](https://github.com/renovate[bot]) in [jdx#814](jdx#814) - update rust crate demand to v2 by [@renovate[bot]](https://github.com/renovate[bot]) in [jdx#815](jdx#815) - update rust crate expr-lang to v1 by [@renovate[bot]](https://github.com/renovate[bot]) in [jdx#816](jdx#816) - update rust crate similar to v3 by [@renovate[bot]](https://github.com/renovate[bot]) in [jdx#817](jdx#817) - update rust crate toml to v1 by [@renovate[bot]](https://github.com/renovate[bot]) in [jdx#820](jdx#820) - update actions/upload-artifact digest to 043fb46 by [@renovate[bot]](https://github.com/renovate[bot]) in [jdx#821](jdx#821) - update anthropics/claude-code-action digest to b47fd72 by [@renovate[bot]](https://github.com/renovate[bot]) in [jdx#822](jdx#822) ### New Contributors - @JohanLorenzo made their first contribution in [jdx#807](jdx#807) <!-- CURSOR_SUMMARY --> --- > [!NOTE] > **Low Risk** > Low risk release bookkeeping: version bumps, regenerated CLI/docs, and routine dependency lockfile updates with no functional code changes in this PR. > > **Overview** > Bumps `hk` to **v1.42.0** and adds the corresponding `CHANGELOG.md` release notes. > > Regenerates versioned docs/CLI artifacts (`docs/cli/*`, `hk.usage.kdl`) and updates all documentation/examples to reference the `v1.42.0` Pkl package URLs. Updates `Cargo.lock` for minor dependency revisions. > > <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit 4b9834f. Bugbot is set up for automated code reviews on this repo. Configure [here](https://www.cursor.com/dashboard/bugbot).</sup> <!-- /CURSOR_SUMMARY --> Co-authored-by: mise-en-dev <123107610+mise-en-dev@users.noreply.github.com>
chore: release v1.41.1 (jdx#806) ### 🐛 Bug Fixes - **(hook)** remove dup output and preserve check_first diagnostics by [@nkakouros](https://github.com/nkakouros) in [jdx#784](jdx#784) - **(hook)** show combined output for failed steps by [@nkakouros](https://github.com/nkakouros) in [jdx#772](jdx#772) - **(hook)** preserve configured output_summary label on failure by [@jdx](https://github.com/jdx) in [jdx#808](jdx#808) ### 📦️ Dependency Updates - update rust crate pklr to 0.4.1 by [@jhult](https://github.com/jhult) in [jdx#805](jdx#805) ### New Contributors - @jhult made their first contribution in [jdx#805](jdx#805) <!-- CURSOR_SUMMARY --> --- > [!NOTE] > **Low Risk** > Primarily a version bump and doc/metadata regeneration, plus routine dependency lockfile updates; minimal behavioral risk beyond potential upstream crate changes. > > **Overview** > Bumps `hk` to **v1.41.1** and adds the corresponding `CHANGELOG.md` release entry. > > Regenerates/version-aligns published artifacts and docs (CLI docs JSON/markdown, `hk.usage.kdl`, and all docs/examples that reference the release `package://.../v1.41.1` URLs). > > Updates `Cargo.lock` for dependency bumps (notably `pklr 0.4.1`, `indexmap 2.14.0`/`hashbrown 0.17.0`, and `tokio 1.51.1`). > > <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit 0a2a092. Bugbot is set up for automated code reviews on this repo. Configure [here](https://www.cursor.com/dashboard/bugbot).</sup> <!-- /CURSOR_SUMMARY --> Co-authored-by: mise-en-dev <123107610+mise-en-dev@users.noreply.github.com>
chore: release v1.41.0 (jdx#793) ### 🚀 Features - **(hook)** support per-worktree hooks via extensions.worktreeConfig by [@nkakouros](https://github.com/nkakouros) in [jdx#789](jdx#789) ### 🐛 Bug Fixes - **(config)** use XDG_CONFIG_HOME for config path instead of dirs::config_dir() by [@fukuchancat](https://github.com/fukuchancat) in [jdx#801](jdx#801) ### 📦️ Dependency Updates - update anthropics/claude-code-action digest to 0432df8 by [@renovate[bot]](https://github.com/renovate[bot]) in [jdx#791](jdx#791) - update rust crate indexmap to v2.13.1 by [@renovate[bot]](https://github.com/renovate[bot]) in [jdx#792](jdx#792) - update actions/configure-pages action to v6 by [@renovate[bot]](https://github.com/renovate[bot]) in [jdx#795](jdx#795) - update rust crate strum to 0.28 by [@renovate[bot]](https://github.com/renovate[bot]) in [jdx#794](jdx#794) - update actions/deploy-pages action to v5 by [@renovate[bot]](https://github.com/renovate[bot]) in [jdx#796](jdx#796) - update dependency globals to v17 by [@renovate[bot]](https://github.com/renovate[bot]) in [jdx#797](jdx#797) - update github artifact actions (major) by [@renovate[bot]](https://github.com/renovate[bot]) in [jdx#798](jdx#798) - update jdx/mise-action action to v4 by [@renovate[bot]](https://github.com/renovate[bot]) in [jdx#799](jdx#799) ### New Contributors - @fukuchancat made their first contribution in [jdx#801](jdx#801) <!-- CURSOR_SUMMARY --> --- > [!NOTE] > **Low Risk** > Primarily a version bump and documentation/lockfile updates; no functional Rust source changes are included in this diff. > > **Overview** > Publishes the `v1.41.0` release by bumping the crate/CLI version (`Cargo.toml`, `Cargo.lock`, `hk.usage.kdl`, generated CLI docs) and adding the `1.41.0` entry to `CHANGELOG.md`. > > Updates documentation and example Pkl snippets to reference the `v1.41.0` release artifacts, and refreshes `Cargo.lock` with dependency patch/minor updates (e.g., `tokio`, ICU crates, `signal-hook`, `semver`). > > <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit 0c8dea7. Bugbot is set up for automated code reviews on this repo. Configure [here](https://www.cursor.com/dashboard/bugbot).</sup> <!-- /CURSOR_SUMMARY --> Co-authored-by: mise-en-dev <123107610+mise-en-dev@users.noreply.github.com>
chore: release v1.40.0 (jdx#763) ### 🚀 Features - **(betterleaks)** add betterleaks config to hk builtin config by [@hituzi-no-sippo](https://github.com/hituzi-no-sippo) in [jdx#750](jdx#750) - **(builtins)** add google-java-format to builtins by [@timothysparg](https://github.com/timothysparg) in [jdx#777](jdx#777) - **(builtins)** add dclint to builtins by [@timothysparg](https://github.com/timothysparg) in [jdx#779](jdx#779) - **(config)** set default value for exclude to List() by [@timothysparg](https://github.com/timothysparg) in [jdx#781](jdx#781) - **(core)** add required field to prevent unconfigured steps from running by [@timothysparg](https://github.com/timothysparg) in [jdx#785](jdx#785) - **(gitleaks)** add gitleaks config to hk builtin config by [@hituzi-no-sippo](https://github.com/hituzi-no-sippo) in [jdx#749](jdx#749) - **(mdschema)** add mdschema config to hk builtin config by [@hituzi-no-sippo](https://github.com/hituzi-no-sippo) in [jdx#748](jdx#748) - **(pkl)** add pklr as opt-in pkl backend by [@jdx](https://github.com/jdx) in [jdx#769](jdx#769) - add pklr as opt-in pkl backend by [@jdx](https://github.com/jdx) in [jdx#768](jdx#768) ### 🐛 Bug Fixes - **(docs)** replace invalid /latest/ pkl package URIs with versioned format by [@jdx](https://github.com/jdx) in [jdx#770](jdx#770) - **(stage)** do not stage pre-existing untracked files by [@jdx](https://github.com/jdx) in [jdx#788](jdx#788) ### 📚 Documentation - add benchmarks page and reproducible benchmark suite by [@jdx](https://github.com/jdx) in [jdx#766](jdx#766) - add recommended setup section to mise integration by [@timothysparg](https://github.com/timothysparg) in [jdx#780](jdx#780) ### 📦️ Dependency Updates - lock file maintenance by [@renovate[bot]](https://github.com/renovate[bot]) in [jdx#762](jdx#762) - update rust crate pklr to 0.4 by [@renovate[bot]](https://github.com/renovate[bot]) in [jdx#776](jdx#776) - update apple-actions/import-codesign-certs digest to fe74d46 by [@renovate[bot]](https://github.com/renovate[bot]) in [jdx#774](jdx#774) - update anthropics/claude-code-action digest to 094bd24 by [@renovate[bot]](https://github.com/renovate[bot]) in [jdx#773](jdx#773) - update taiki-e/upload-rust-binary-action digest to 0e34102 by [@renovate[bot]](https://github.com/renovate[bot]) in [jdx#775](jdx#775) - bump usage to 3.2.0 and pkl to 0.31.1, add windows platforms by [@jdx](https://github.com/jdx) in [jdx#787](jdx#787) - lock file maintenance by [@renovate[bot]](https://github.com/renovate[bot]) in [jdx#786](jdx#786) ### New Contributors - @timothysparg made their first contribution in [jdx#781](jdx#781) <!-- CURSOR_SUMMARY --> --- > [!NOTE] > **Medium Risk** > Primarily a version/documentation bump, but it also updates the Rust dependency lockfile (e.g., `hyper` and `windows-sys`), which could introduce build/runtime regressions. > > **Overview** > Bumps hk to **v1.40.0** and publishes the corresponding release notes in `CHANGELOG.md`. > > Updates generated CLI/docs and all Pkl package URL references in docs/examples to point at `v1.40.0`, and refreshes `Cargo.lock` with dependency updates/removals consistent with the new release. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit da00ab8. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY --> Co-authored-by: mise-en-dev <123107610+mise-en-dev@users.noreply.github.com>
chore: release v1.39.0 (jdx#728) ### 🚀 Features - **(config)** support HK_PKL_CA_CERTIFICATES env var for corporate proxies by [@jdx](https://github.com/jdx) in [jdx#760](jdx#760) - **(contextlint)** add contextlint config to hk builtin config by [@hituzi-no-sippo](https://github.com/hituzi-no-sippo) in [jdx#747](jdx#747) - **(javascript)** add knip config to hk builtin config by [@hituzi-no-sippo](https://github.com/hituzi-no-sippo) in [jdx#713](jdx#713) ### 🐛 Bug Fixes - **(builtins)** make nixfmt no-op on Windows by [@azais-corentin](https://github.com/azais-corentin) in [jdx#741](jdx#741) - **(config)** preserve regex _type field in cached config JSON by [@jdx](https://github.com/jdx) in [jdx#740](jdx#740) - **(hook)** resolve commit message file path in git worktrees by [@jdx](https://github.com/jdx) in [jdx#761](jdx#761) - **(stash)** preserve binary files during stash/unstash cycle by [@jdx](https://github.com/jdx) in [jdx#759](jdx#759) - **(step)** apply batch splitting within workspace jobs by [@jdx](https://github.com/jdx) in [jdx#757](jdx#757) - **(util)** strip carriage returns in trailing-whitespace --fix by [@jdx](https://github.com/jdx) in [jdx#758](jdx#758) ### 🔍 Other Changes - updated mise lockfile by [@jdx](https://github.com/jdx) in [627fb85](jdx@627fb85) ### 📦️ Dependency Updates - lock file maintenance by [@renovate[bot]](https://github.com/renovate[bot]) in [jdx#727](jdx#727) - update anthropics/claude-code-action digest to 5d0cc74 by [@renovate[bot]](https://github.com/renovate[bot]) in [jdx#732](jdx#732) - update taiki-e/upload-rust-binary-action digest to 381995c by [@renovate[bot]](https://github.com/renovate[bot]) in [jdx#735](jdx#735) - update jdx/mise-action digest to 5228313 by [@renovate[bot]](https://github.com/renovate[bot]) in [jdx#733](jdx#733) - update rust crate once_cell to v1.21.4 by [@renovate[bot]](https://github.com/renovate[bot]) in [jdx#736](jdx#736) - update rust crate clap to v4.6.0 by [@renovate[bot]](https://github.com/renovate[bot]) in [jdx#737](jdx#737) - update swatinem/rust-cache digest to e18b497 by [@renovate[bot]](https://github.com/renovate[bot]) in [jdx#734](jdx#734) - update rust crate tempfile to v3.27.0 by [@renovate[bot]](https://github.com/renovate[bot]) in [jdx#738](jdx#738) - update rust crate expr-lang to 0.4.0 by [@renovate[bot]](https://github.com/renovate[bot]) in [jdx#739](jdx#739) - update anthropics/claude-code-action digest to df37d2f by [@renovate[bot]](https://github.com/renovate[bot]) in [jdx#753](jdx#753) - update actions-rust-lang/setup-rust-toolchain digest to 150fca8 by [@renovate[bot]](https://github.com/renovate[bot]) in [jdx#752](jdx#752) ### New Contributors - @azais-corentin made their first contribution in [jdx#741](jdx#741) <!-- CURSOR_SUMMARY --> --- > [!NOTE] > **Medium Risk** > Mostly a release/version bump plus large `Cargo.lock` dependency updates; risk is limited to potential runtime/build regressions from updated transitive crates. > > **Overview** > Cuts release `v1.39.0` by bumping versions across the crate (`Cargo.toml`/CLI docs/usage spec) and updating all docs/examples to reference the `v1.39.0` Pkl package URLs. > > Refreshes `Cargo.lock` with numerous dependency upgrades/additions and updates `CHANGELOG.md` with the 1.39.0 release notes. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit de1a62c. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY --> Co-authored-by: mise-en-dev <123107610+mise-en-dev@users.noreply.github.com>
chore: release v1.38.0 (jdx#687) ### 🚀 Features - **(hook)** add `fail_on_fix` option by [@jdx](https://github.com/jdx) in [jdx#725](jdx#725) ### 🐛 Bug Fixes - **(builtins)** remove redundant check/check_diff from builtins by [@nkakouros](https://github.com/nkakouros) in [jdx#726](jdx#726) ### 📦️ Dependency Updates - update anthropics/claude-code-action digest to 26ec041 by [@renovate[bot]](https://github.com/renovate[bot]) in [jdx#720](jdx#720) - update jdx/mise-action digest to e79ddf6 by [@renovate[bot]](https://github.com/renovate[bot]) in [jdx#721](jdx#721) - update actions-rust-lang/setup-rust-toolchain digest to a0b538f by [@renovate[bot]](https://github.com/renovate[bot]) in [jdx#719](jdx#719) - update rust crate tokio to v1.50.0 by [@renovate[bot]](https://github.com/renovate[bot]) in [jdx#722](jdx#722) <!-- CURSOR_SUMMARY --> --- > [!NOTE] > **Medium Risk** > Primarily a release/version bump, but it also updates `Cargo.lock` (including TLS/crypto-related crates like `aws-lc-*`), which could introduce build or runtime regressions. > > **Overview** > Prepares the `v1.38.0` release by adding the `1.38.0` section to `CHANGELOG.md` and bumping the project version to `1.38.0` across `Cargo.toml`, CLI usage/docs (`hk.usage.kdl`, `docs/cli/*`), and various docs/examples. > > Updates documentation Pkl `amends`/`import` example URLs to reference the `v1.38.0` release artifacts, and refreshes `Cargo.lock` with updated dependency versions (notably `aws-lc-*`, `windows-sys`, `getrandom`, `socket2`, `tokio-macros`, `uuid`). > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 40b9c73. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY --> Co-authored-by: mise-en-dev <123107610+mise-en-dev@users.noreply.github.com>
fix(hkrc): config format and load order (jdx#710) I ran into two bugs (or… features? 😉). Gory details [here](https://github.com/ivy/tmp-2026-02-28-hkrc-bug#readme) with a script to reproduce. Human summary: I tried following the [docs to add a global hk config](https://hk.jdx.dev/configuration#hkrc) and found that the documented example didn't actually work: 1. hk panics when `.hkrc.pkl` amends from Config.pkl (as shown in the docs). hk deserializes them as `UserConfig`, where check is `Option<bool>`, not a string command. 2. Default path is CWD-relative: The default hkrc path is `PathBuf::from(".hkrc.pkl")` (relative to CWD), not `~/.hkrc.pkl` as the docs state. I went down a rabbit hole and added some tests to cover the bug as well as some tests to cover a clarified hierarchy: > Precedence | Source | Scope | > |---|---|---| > | 1 (lowest) | Built-in defaults | All projects | > | 2 | [hkrc](#hkrc) (`~/.config/hk/config.pkl`, `~/.hkrc.pkl`, or `--hkrc`) | All projects (user-level) | > | 3 | [Project config](#hk-pkl) (`hk.pkl` or `hk.local.pkl`) | Single project | > | 4 | [Git config](#git-configuration) (global, then local) | Per-repo | > | 5 | [Environment variables](#settings-reference) (`HK_*`) | Per-invocation | > | 6 (highest) | [CLI flags](#settings-reference) | Per-invocation | > > Higher layers override lower. For hooks and steps, layers are **additive** — hkrc can define hooks the project doesn't have, but the project's definition wins on collision. See [hkrc merge semantics](#hkrc) for details. Let me know if you hate it! 😅 ## Why I ~~wasted~~ invested 3 hours hacking on this I'm trying out solutions to auto-commit and bake my LLM prompts into Git commit messages for better transparency. Whoops! I committed *everything*: - searlsco/turbocommit#6 So I wanted to add a global pre-commit hook (with hk) that runs gitleaks from now on. --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
PreviousNext