Skip to content

fix(builtins): remove redundant check/check_diff from builtins#726

Merged
jdx merged 2 commits intojdx:mainfrom
nkakouros:nkakouros/fix/check-diff-builtins
Mar 6, 2026
Merged

fix(builtins): remove redundant check/check_diff from builtins#726
jdx merged 2 commits intojdx:mainfrom
nkakouros:nkakouros/fix/check-diff-builtins

Conversation

@nkakouros
Copy link
Copy Markdown
Contributor

  • Remove check_diff from ruff.pkl: ruff is a linter whose --diff only covers auto-fixable errors, not the full set of issues it detects, but still exits with a 0 code breaking hk assumptions about when to move to fix.
  • Remove redundant check from black.pkl, ruff_format.pkl, taplo_format.pkl: these are pure formatters where check_diff already covers all issues

@greptile-apps
Copy link
Copy Markdown

greptile-apps Bot commented Mar 6, 2026

No reviewable files after applying ignore patterns.

@gemini-code-assist
Copy link
Copy Markdown
Contributor

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request refines the hk built-in configurations for various linters and formatters by eliminating redundant or unreliable check mechanisms. The changes ensure that the hk system correctly interprets the output of these tools, specifically addressing issues where check or check_diff commands were either unnecessary or provided misleading exit codes, thus improving the reliability of the automated fix steps.

Highlights

  • Ruff Configuration Update: Removed the check_diff command from the ruff.pkl configuration. This was done because ruff --diff exits with a 0 code even when non-fixable issues are present, which breaks hk's assumptions about when to proceed to the fix step.
  • Redundant Check Removal: Removed the check command from black.pkl, ruff_format.pkl, and taplo_format.pkl. For these pure formatters, the check_diff command already provides comprehensive issue coverage, making the separate check command redundant.
Changelog
  • pkl/builtins/black.pkl
    • Removed the 'check' command definition, as 'check_diff' is sufficient for this formatter.
  • pkl/builtins/ruff.pkl
    • Removed the 'check_diff' command definition due to its unreliable exit code behavior for non-fixable issues.
    • Added a comment explaining the rationale behind removing 'check_diff'.
  • pkl/builtins/ruff_format.pkl
    • Removed the 'check' command definition, as 'check_diff' adequately covers all issues for this formatter.
  • pkl/builtins/taplo_format.pkl
    • Removed the 'check' command definition, as 'check_diff' is comprehensive for this formatter.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request refactors the built-in configurations for black, ruff, ruff_format, and taplo_format to improve their reliability and efficiency. The changes involve removing redundant check properties for formatters where check_diff is sufficient, and removing a problematic check_diff from the ruff linter configuration that could lead to missed errors. The changes are logical and well-explained. I have one minor suggestion to improve the clarity of a comment.

Comment thread pkl/builtins/ruff.pkl Outdated
- Remove check_diff from ruff.pkl: ruff is a linter whose --diff only
  covers auto-fixable errors, not the full set of issues it detects
- Remove redundant check from black.pkl, ruff_format.pkl, taplo_format.pkl:
  these are pure formatters where check_diff already covers all issues

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@nkakouros nkakouros force-pushed the nkakouros/fix/check-diff-builtins branch from 25e33a7 to 1551152 Compare March 6, 2026 14:14
@jdx jdx merged commit 593b87f into jdx:main Mar 6, 2026
15 checks passed
@jdx jdx mentioned this pull request Mar 6, 2026
jdx added a commit that referenced this pull request Mar 7, 2026
### 🚀 Features

- **(hook)** add `fail_on_fix` option by [@jdx](https://github.com/jdx)
in [#725](#725)

### 🐛 Bug Fixes

- **(builtins)** remove redundant check/check_diff from builtins by
[@nkakouros](https://github.com/nkakouros) in
[#726](#726)

### 📦️ Dependency Updates

- update anthropics/claude-code-action digest to 26ec041 by
[@renovate[bot]](https://github.com/renovate[bot]) in
[#720](#720)
- update jdx/mise-action digest to e79ddf6 by
[@renovate[bot]](https://github.com/renovate[bot]) in
[#721](#721)
- update actions-rust-lang/setup-rust-toolchain digest to a0b538f by
[@renovate[bot]](https://github.com/renovate[bot]) in
[#719](#719)
- update rust crate tokio to v1.50.0 by
[@renovate[bot]](https://github.com/renovate[bot]) in
[#722](#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>
tmeijn pushed a commit to tmeijn/dotfiles that referenced this pull request Mar 11, 2026
This MR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [hk](https://github.com/jdx/hk) | minor | `1.36.0` → `1.38.0` |

MR created with the help of [el-capitano/tools/renovate-bot](https://gitlab.com/el-capitano/tools/renovate-bot).

**Proposed changes to behavior should be submitted there as MRs.**

---

### Release Notes

<details>
<summary>jdx/hk (hk)</summary>

### [`v1.38.0`](https://github.com/jdx/hk/blob/HEAD/CHANGELOG.md#1380---2026-03-06)

[Compare Source](jdx/hk@v1.37.0...v1.38.0)

##### 🚀 Features

- **(hook)** add `fail_on_fix` option by [@&#8203;jdx](https://github.com/jdx) in [#&#8203;725](jdx/hk#725)

##### 🐛 Bug Fixes

- **(builtins)** remove redundant check/check\_diff from builtins by [@&#8203;nkakouros](https://github.com/nkakouros) in [#&#8203;726](jdx/hk#726)

##### 📦️ Dependency Updates

- update anthropics/claude-code-action digest to [`26ec041`](jdx/hk@26ec041) by [@&#8203;renovate\[bot\]](https://github.com/renovate\[bot]) in [#&#8203;720](jdx/hk#720)
- update jdx/mise-action digest to [`e79ddf6`](jdx/hk@e79ddf6) by [@&#8203;renovate\[bot\]](https://github.com/renovate\[bot]) in [#&#8203;721](jdx/hk#721)
- update actions-rust-lang/setup-rust-toolchain digest to [`a0b538f`](jdx/hk@a0b538f) by [@&#8203;renovate\[bot\]](https://github.com/renovate\[bot]) in [#&#8203;719](jdx/hk#719)
- update rust crate tokio to v1.50.0 by [@&#8203;renovate\[bot\]](https://github.com/renovate\[bot]) in [#&#8203;722](jdx/hk#722)

### [`v1.37.0`](https://github.com/jdx/hk/blob/HEAD/CHANGELOG.md#1370---2026-03-03)

[Compare Source](jdx/hk@v1.36.0...v1.37.0)

##### 🚀 Features

- **(hook)** add env support to hooks by [@&#8203;jdx](https://github.com/jdx) in [#&#8203;709](jdx/hk#709)
- parse Go-style diffs by [@&#8203;jdx](https://github.com/jdx) in [#&#8203;704](jdx/hk#704)

##### 🐛 Bug Fixes

- **(builtins)** strip extra trailing newlines in end-of-file-fixer by [@&#8203;jdx](https://github.com/jdx) in [#&#8203;708](jdx/hk#708)
- **(docs)** correctly document what --all is about by [@&#8203;nkakouros](https://github.com/nkakouros) in [#&#8203;715](jdx/hk#715)
- **(git)** exclude untracked files from unstaged\_files set by [@&#8203;nkakouros](https://github.com/nkakouros) in [#&#8203;716](jdx/hk#716)
- **(hkrc)** config format and load order by [@&#8203;ivy](https://github.com/ivy) in [#&#8203;710](jdx/hk#710)
- **(release)** write release notes to file instead of capturing stdout by [@&#8203;jdx](https://github.com/jdx) in [#&#8203;688](jdx/hk#688)
- **(release)** make release notes editorialization non-blocking by [@&#8203;jdx](https://github.com/jdx) in [#&#8203;690](jdx/hk#690)
- **(step)** gate check\_diff forced check\_first on Fix mode only by [@&#8203;nkakouros](https://github.com/nkakouros) in [#&#8203;717](jdx/hk#717)

##### 📚 Documentation

- **(shanty)** add audio player with sea shanty recording by [@&#8203;jdx](https://github.com/jdx) in [67a25ad](jdx/hk@67a25ad)
- document config file search paths by [@&#8203;ivy](https://github.com/ivy) in [#&#8203;701](jdx/hk#701)
- require AI disclosure on GitHub comments by [@&#8203;jdx](https://github.com/jdx) in [#&#8203;703](jdx/hk#703)

##### 🔍 Other Changes

- replace gen-release-notes script with communique by [@&#8203;jdx](https://github.com/jdx) in [#&#8203;700](jdx/hk#700)
- add autofix.ci workflow by [@&#8203;jdx](https://github.com/jdx) in [#&#8203;705](jdx/hk#705)

##### 📦️ Dependency Updates

- lock file maintenance by [@&#8203;renovate\[bot\]](https://github.com/renovate\[bot]) in [#&#8203;686](jdx/hk#686)
- update taiki-e/upload-rust-binary-action digest to [`f391289`](jdx/hk@f391289) by [@&#8203;renovate\[bot\]](https://github.com/renovate\[bot]) in [#&#8203;692](jdx/hk#692)
- update anthropics/claude-code-action digest to [`c22f7c3`](jdx/hk@c22f7c3) by [@&#8203;renovate\[bot\]](https://github.com/renovate\[bot]) in [#&#8203;691](jdx/hk#691)
- update rust crate libc to v0.2.181 by [@&#8203;renovate\[bot\]](https://github.com/renovate\[bot]) in [#&#8203;694](jdx/hk#694)
- update rust crate clap to v4.5.58 by [@&#8203;renovate\[bot\]](https://github.com/renovate\[bot]) in [#&#8203;693](jdx/hk#693)
- lock file maintenance by [@&#8203;renovate\[bot\]](https://github.com/renovate\[bot]) in [#&#8203;695](jdx/hk#695)
- update anthropics/claude-code-action digest to [`edd85d6`](jdx/hk@edd85d6) by [@&#8203;renovate\[bot\]](https://github.com/renovate\[bot]) in [#&#8203;698](jdx/hk#698)
- update rust crate clap to v4.5.60 by [@&#8203;renovate\[bot\]](https://github.com/renovate\[bot]) in [#&#8203;699](jdx/hk#699)
- lock file maintenance by [@&#8203;renovate\[bot\]](https://github.com/renovate\[bot]) in [#&#8203;702](jdx/hk#702)
- lock file maintenance by [@&#8203;renovate\[bot\]](https://github.com/renovate\[bot]) in [#&#8203;711](jdx/hk#711)

##### New Contributors

- [@&#8203;ivy](https://github.com/ivy) made their first contribution in [#&#8203;710](jdx/hk#710)
- [@&#8203;nkakouros](https://github.com/nkakouros) made their first contribution in [#&#8203;715](jdx/hk#715)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this MR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box

---

This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My40OS4wIiwidXBkYXRlZEluVmVyIjoiNDMuNTcuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiUmVub3ZhdGUgQm90IiwiYXV0b21hdGlvbjpib3QtYXV0aG9yZWQiLCJkZXBlbmRlbmN5LXR5cGU6Om1pbm9yIl19-->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants