claylo-rs v1.1.0
What’s New
Maintenance release. Three PRs, zero new features, everything important.
Progressive tests actually work now. The UP/DOWN tests from v1.0.0 — the ones that add and remove features one at a time to catch combinatorial bugs — were using copier recopy instead of the real claylo-rs update workflow. That’s 80+ lines of manual file cleanup papering over the fact that the tests weren’t exercising the actual code path. All five progressive tests were failing. Switched to bin/claylo-rs update --local and now they pass. The test suite that catches real bugs should probably not have fake bugs of its own.
Compact help restored. Both -h and --help now render the same single-line format. The v1.0.0 attempt added HelpShort as a struct field, which made clap’s derive macro insist on populating it before parsing — a pure exit action with no value to store. Moved it to the Command-level builder API where it belongs.
npm publish auth fixed. The CD workflow was missing NODE_AUTH_TOKEN for npm publishing. Also added a provenance fallback — OIDC attestation only works after a package already exists on the registry, so the first publish needs token-only auth.
Dependency updates
- rmcp 1.2 → 1.3
- astro 6.0.8 → 6.1.0
- actions/configure-pages v5 → v6, actions/deploy-pages v4 → v5
- cargo-bins/cargo-binstall v1.17.7 → v1.17.8
- mislav/bump-homebrew-formula-action v3.6 → v4.1
- Added oven-sh/setup-bun v2.2.0, pnpm/action-setup v5.0.0
Toolchain bumped to 1.94.1. npm added to dependabot monitoring.
Upgrading
brew upgrade claylo/tap/claylo-rs
For existing projects:
claylo-rs update .
How We Built This
The progressive test fix was the one that mattered. These tests are the safety net — start with minimal, add features one at a time (UP), then start with full and remove them one at a time (DOWN), running clippy at each step. In v1.0.0, that discipline caught real combinatorial bugs. But the tests themselves were cheating: copier recopy skips the update workflow entirely, and the 80 lines of manual cleanup after each step were hiding the fact that the real update path was never tested.
The fix was one line: call bin/claylo-rs update --local instead of copier recopy. The cleanup scripts disappeared. The tests went from 0/5 to 5/5. The irony isn’t lost — the test suite designed to catch “works in one configuration but breaks in another” had exactly that bug in its own implementation.
The clap HelpShort thing was a classic derive-vs-builder papercut. Clap’s derive macro wants every struct field to have a value after parsing. HelpShort is an action that prints help and exits — there’s no value to store. Adding it as a struct field made --help a required argument, which is a sentence that shouldn’t exist. The fix was using the builder API at the Command level, where actions live.