Christopher Allen Lane
c1551683a3
feat: walk up directory tree to find .cheat directory ( #602 )
...
Previously cheat only checked the current working directory for a .cheat
subdirectory. Now it walks upward through ancestor directories, stopping
at the first .cheat directory found. This mirrors how git discovers .git
directories, so users can place .cheat at their project root and have it
work from any subdirectory.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-15 09:30:29 -05:00
Christopher Allen Lane
cc85a4bdb1
chore: bump version to 4.5.0
...
Bug fixes:
- Fix inverted pager detection logic (returned error instead of path)
- Fix repo.Clone ignoring destination directory parameter
- Fix sheet loading using append on pre-sized slices
- Clean up partial files on copy failure
- Trim whitespace from editor config
Security:
- Add path traversal protection for cheatsheet names
Performance:
- Move regex compilation outside search loop
- Replace string concatenation with strings.Join in search
Build:
- Remove go:generate; embed config and usage as string literals
- Parallelize release builds
- Add fuzz testing infrastructure
Testing:
- Improve test coverage from 38.9% to 50.2%
- Add fuzz tests for search, filter, tags, and validation
Documentation:
- Fix inaccurate code examples in HACKING.md
- Add missing --conf and --all options to man page
- Add ADRs for path traversal, env parsing, and search parallelization
- Update CONTRIBUTING.md to reflect project policy
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-14 19:56:19 -05:00