fix(ci): make release-plz jobs independent#22
Merged
Conversation
… fails The release job depended on release-pr (needs: release-pr), so when release-pr failed with 403 the release job was skipped entirely. This prevented tagging and crates.io publishing. Remove the dependency. Both jobs now run independently on every push to master: - release-pr: opens a version-bump PR (best-effort, may fail on repos with restricted GITHUB_TOKEN permissions) - release: creates git tags and publishes to crates.io for any packages whose version changed since the last tag
fs4 1.0 dropped the fs_std submodule (FileExt now lives at the crate root, gated by the default-on `sync` feature) and renamed lock_exclusive to lock to mirror the now-stable std::fs::File::lock. Use a fully-qualified FileExt::lock call to disambiguate from std's inherent method.
Tighten the version comments next to pinned action SHAs (the SHAs were already at the latest releases, only the labels were stale): setup-node v6 -> v6.4.0, action-gh-release v3 -> v3.0.0, release-plz/action v0.5 -> v0.5.128. Bump Node.js used by the npm publish job and required by the published package from v24.15.0 to v25.9.0.
Lead with a centered title, tagline, badge row (CI, crates.io, npm, license, MSRV, cold-start), and link row. Replace the prose-heavy "What betterhook does" section with a single capability table. Move configuration deep-dives (template variables, isolation modes, inheritance, builtins) into <details> sections so the page stays short by default. Replace the numbered "How it works" walkthrough with an ASCII flow diagram. Add a troubleshooting table. Tabs for cargo / npm / Homebrew / source install. No content dropped.
README: add the .github/header.jpg banner above the title; insert a Benchmarks section with reproducible numbers from `cargo xtask bench-monorepo` (binary startup <10 ms, 10k-file pre-commit ~107 ms warm vs lefthook 162 ms, 4.5 MB binary); add a Recipes section linking the new drop-in configs; promote Migration into a top-level section with per-tool importer commands and a callout block right after the value-prop ribbon. CONTRIBUTING: same header banner; lead with a "first PR in 5 minutes" checklist; add a benchmarks block; collapse fuzzing and mutation testing into <details>; add a do/don't table. Recipes: new top-level recipes/ directory with five drop-in configs (typescript, rust, python, go, polyglot) plus a recipes/README.md. All five validated with `betterhook explain` against the current schema. AGENTS.md and CLAUDE.md: add the recipes/ entry to the repo-layout section to keep them in sync.
Trim AI-isms in introduction/quickstart/why-betterhook, fold the duplicated lefthook bug list out of introduction (it lives canonically in why-betterhook), and update the example status output from 0.0.2 to the current 0.1.0.
Update min_betterhook example and verify-version output to 0.1.0, soften AI phrasing in installation/isolation/templates.
Bump status.mdx example from 0.0.2 to 0.1.0 and trim AI-isms in explain, fix, builtins, and migrate.
The flock fallback uses fs4::FileExt::lock (renamed from lock_exclusive in fs4 1.x). Trim AI tells in overview.mdx and cache.mdx.
The migrate subcommand is deprecated; betterhook import is its replacement and supports lefthook, husky, hk, and pre-commit.
Single entrypoint for LLM agents that need to load the docs at runtime. Mirrors the docs.json navigation grouping and lists every published page with a one-sentence summary. Served at https://betterhook.dev/llms.txt once the Mintlify site is live.
The agents folder collected docs that already lived elsewhere: - agents/ndjson moves to reference/ndjson — it's a wire format, not an agent-specific concept - agents/self-correction was a longer version of commands/fix; commands/fix already documents the run-fix-run loop with example - agents/conductor was a single env-var (BETTERHOOK_DAEMON_SOCK) wrapped in a page; the env-var doc covers it directly now - agents/overview was a portal page; the cards repointed to where the underlying topics actually live All cross-references updated; docs.json adds reference/ndjson and drops the Agent integration group; llms.txt reflects the new layout.
Round of language polish across the docs: - drop em-dashes in favor of periods or commas where they were stylistic, not technical - remove every "actually" filler word - replace Conductor-specific examples with generic ones in performance, daemon, and protocol pages - update quickstart to use the published crates.io install - drop dated phrasing like "the era of parallel AI coding agents" and "current state" - enumerate the failures behind "things break" in the isolation lead - simplify "first-class design constraint" and "structural rather than incremental" in why-betterhook - flatten the bold-lead pattern in the daemon Design principles checklist and the capability-dag benefits list - replace "Just Work" with plain prose in exit-codes
- swap em-dash parentheticals for periods, colons, or parentheses where they were stylistic rather than semantic - promote crates.io to the recommended install path now that v0.1.0 is published; demote the source-build tab - split the long "The problem" paragraph in introduction.mdx into two - tighten the lead in architecture/cache.mdx - drop more bold lead-ins in extends.mdx, install.mdx, and ndjson.mdx - include KDL alongside TOML/YAML/JSON in the configuration lead so the schema reference matches the format support
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The
releasejob hadneeds: release-pr, so whenrelease-prfailed with a 403 (GitHub token can't create PRs on this repo), the release job was skipped entirely. No tag, no crates.io publish, no npm.Fix: remove the dependency. Both jobs run independently. The
releasecommand will see that0.1.0is not yet tagged, create the tag, and publish to crates.io.