# Changelog

## Score

- CAI 65 → 65 (+0.1)
- Rubric changed (rubric-2026.09.9 → rubric-2026.09.18) — scores are not directly comparable.

## Lenses

- Code Health 77 → 77 (+0.0)
- Architecture 98 → 86 (-11.5)
- Maturity 54 → 54 (+0.2)
- Readiness 66 → 66 (+0.6)
- Security 80 → 85 (+5.0)
- Event Sourcing 100 → 100 (+0.0)
- Performance 100 (new)

## Resolved (5)

- Hotspot: src/gui/shortcuts.rs (src/gui/shortcuts.rs)
- Hotspot: src/lang.rs (src/lang.rs)
- Hotspot: src/path.rs (src/path.rs)
- Hotspot: src/resource/config.rs (src/resource/config.rs)
- Members sharing a duplicated core (5 members, 50+ identical tokens) (src/gui/modal.rs)

## New (8)

- Dependency hygiene PARTLY measured — Cargo dependencies read, dependency currency not (crates.io unreachable)
- Documentation: no architecture or design documentation (docs/help/troubleshooting.md)
- Documentation: no installation or build instructions (docs/help/installation.md)
- Inconsistent error handling pattern for read operations. Most other I/O operations on StrictPath (e.g., `open`, `write_with_content`, `metadata`, `sha1`) return a `Result` to handle potential I/O errors. However, `read()` returns a `String` directly, implying it panics or unwraps on error, while `try_read()` provides the safe `Result` variant. This breaks the uniform `Result`-returning convention established by the rest of the type.
- Members sharing a duplicated core (5 members, 50+ identical tokens) (src/gui/modal.rs)
- Projects may be oversized for their cohesion
- Same inconsistency as above. `same_content()` returns a `bool` directly, while `try_same_content()` returns a `Result`. Comparing file content involves I/O which can fail, so the direct return is unsafe and inconsistent with the `Result`-returning `try_same_content()`.
- Same inconsistency as above. `sha1()` returns a `String` directly, while `try_sha1()` returns a `Result`. Given that computing a hash can fail (e.g., file not found, permission denied), the direct return is unsafe and inconsistent with the `Result`-returning `try_sha1()` and other methods like `metadata()`.
