mirror of
https://github.com/cheat/cheat.git
synced 2026-03-07 03:03:32 +01:00
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>
38 lines
1.4 KiB
Markdown
38 lines
1.4 KiB
Markdown
# Architecture Decision Records
|
|
|
|
This directory contains Architecture Decision Records (ADRs) for the cheat project.
|
|
|
|
## What is an ADR?
|
|
|
|
An Architecture Decision Record captures an important architectural decision made along with its context and consequences. ADRs help us:
|
|
|
|
- Document why decisions were made
|
|
- Understand the context and trade-offs
|
|
- Review decisions when requirements change
|
|
- Onboard new contributors
|
|
|
|
## ADR Format
|
|
|
|
Each ADR follows this template:
|
|
|
|
1. **Title**: ADR-NNN: Brief description
|
|
2. **Date**: When the decision was made
|
|
3. **Status**: Proposed, Accepted, Deprecated, Superseded
|
|
4. **Context**: What prompted this decision?
|
|
5. **Decision**: What did we decide to do?
|
|
6. **Consequences**: What are the positive, negative, and neutral outcomes?
|
|
|
|
## Index of ADRs
|
|
|
|
| ADR | Title | Status | Date |
|
|
|-----|-------|--------|------|
|
|
| [001](001-path-traversal-protection.md) | Path Traversal Protection for Cheatsheet Names | Accepted | 2025-01-21 |
|
|
| [002](002-environment-variable-parsing.md) | No Defensive Checks for Environment Variable Parsing | Accepted | 2025-01-21 |
|
|
| [003](003-search-parallelization.md) | No Parallelization for Search Operations | Accepted | 2025-01-22 |
|
|
|
|
## Creating a New ADR
|
|
|
|
1. Copy the template from an existing ADR
|
|
2. Use the next sequential number
|
|
3. Fill in all sections
|
|
4. Include the ADR alongside the commit implementing the decision |