Phase 1: v1 prototype #1

Merged
eblume merged 91 commits from feature/v1-prototype into main 2026-06-03 20:48:23 -07:00
2 changed files with 15 additions and 0 deletions
Showing only changes of commit ec522f49ec - Show all commits

infra(prek): add cargo fmt as a pre-commit hook
Some checks failed
Build / validate (pull_request) Failing after 18s

Run `cargo fmt --all` in place over the workspace on any staged .rs change,
matching the repo's other in-place formatters (ruff-format, stylua, shfmt).
Unformatted Rust now fails the commit locally (it reformats + reports
"files were modified"), so the fmt-dirty commits that slipped through this
session can't recur. CI still enforces `cargo fmt --check` via Dagger as the
backstop. Verified: passes clean, catches + fixes a deviation.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Erich Blume 2026-06-03 20:46:55 -07:00

View file

@ -0,0 +1 @@
- **`cargo fmt` is now a prek hook** — `cargo fmt --all` runs in place over the workspace on any staged `.rs` change (grouped with the other in-place formatters), so unformatted Rust can't be committed locally. CI already enforced `cargo fmt --check` via `dagger call check`; this catches it at commit time instead.

View file

@ -83,6 +83,20 @@ repo = "https://github.com/JohnnyMorganz/StyLua"
rev = "v2.4.1"
hooks = [{ id = "stylua-system" }]
# Rust formatting - cargo fmt over the whole workspace, in place (like the other
# formatters above). Uses the system toolchain; CI also enforces it via
# `dagger call check` (cargo fmt --check). Runs whenever a .rs file is staged.
[[repos]]
repo = "local"
[[repos.hooks]]
id = "cargo-fmt"
name = "cargo-fmt"
entry = "cargo fmt --all"
language = "system"
files = '\.rs$'
pass_filenames = false
# GitHub/Forgejo Actions workflow linting
[[repos]]
repo = "https://github.com/rhysd/actionlint"