# Changelog

## Score

- CAI 69 → 72 (+3.8)
- Rubric changed (rubric-2026.09.9 → rubric-2026.09.18) — scores are not directly comparable.

## Lenses

- Code Health 95 → 95 (+0.0)
- Architecture 99 → 89 (-9.4)
- Maturity 68 → 68 (+0.0)
- Readiness 79 → 71 (-8.0)
- Security 57 → 71 (+14.0)
- Performance 89 (new)

## Resolved (2)

- Documentation: no installation or build instructions (README.md)
- Documentation: no usage examples (README.md)

## New (11)

- Ambiguous configuration loading semantics. `read` implies loading from a specific file path, while `load_profile` implies selecting a named profile from the current configuration context. It is unclear if `load_profile` modifies the current instance or returns a new one, and how it interacts with `read`. The naming suggests two different ways to achieve similar 'get config' goals.
- Dependency hygiene PARTLY measured — Cargo dependencies read, dependency currency not (crates.io unreachable)
- Inconsistent return types for accessor methods. Most path accessors return `PathBuf` directly, but `unix_socket_path` returns `Result`. This forces inconsistent error handling in client code when accessing configuration paths, despite all being derived from the same `Shared` settings struct.
- Inconsistent typing for the `label` field. It is `PathBuf` in requests and editable tasks, but `String` in the core `Task` domain model. Labels are typically human-readable strings, not file paths.
- Inconsistent typing for the same semantic field `priority`. `AddRequest` uses `PathBuf` while `Task`, `EditableTask`, and `TaskToRestart` use `i32`. This is a clear data type inconsistency that will cause serialization/deserialization errors or logical bugs.
- Inverted test pyramid
- Medium vulnerability: RUSTSEC-2026-0285 (Cargo.lock)
- Off the main sequence: pueue-lib
- Projects may be oversized for their cohesion
- Semantic type mismatch: `enqueue_at` is typed as `PathBuf` but semantically represents a timestamp or datetime for scheduling. Using `PathBuf` for time-based scheduling is confusing and likely incorrect, suggesting a copy-paste error from file path fields.
- While `path` is consistently `PathBuf`, the semantic meaning varies. In `AddRequest`, it likely means 'working directory', but in `Task`, it is stored as `path`. This is less of an inconsistency and more of a naming ambiguity, but combined with the other type errors, it highlights a lack of strict domain modeling. However, since the types match, this is not a strict API inconsistency in signature, but the previous points are critical.
