Patch release closing a freshness-integrity hole in change detection, plus the CI job that would have caught it and a documentation site with search.
Fixed: a modified file could stay indexed as fresh, forever
The change pre-filter skips hashing a file when its mtime, ctime and size all match the recorded entry. Filesystem timestamps are coarse — the Windows clock advances in ~15.6ms steps, HFS+ stores whole seconds, FAT32 two-second steps — so two writes inside one step share an mtime exactly. If a file was hashed between those two writes, the second one became invisible on every later scan.
On Windows nothing else caught it either: ctime is the creation time and does not move on modification, so a length-preserving edit cleared all three cheap signals at once. The result was a stale chunk reporting itself as fresh — precisely the failure the Trust Contract exists to prevent.
A file whose mtime is younger than the coarsest granularity we might be sitting on now records a "do not trust this timestamp" marker and is re-hashed on the next scan.
Added
- The full test suite now runs on Windows and macOS in CI, not only Ubuntu. Publish was previously the first place it ever executed on Windows, which is how a class of path-identity defects reached a release gate instead of a pull request.
- Documentation site: offline full-text search with no external requests, rendered Mermaid architecture diagrams including a request-flow diagram, a custom 404 with search, and a social preview card. https://proofofwork-agency.github.io/reporecall/
Evidence
Both registered claims were re-measured against a freshly cloned and re-indexed 1,306-file / 5,591-chunk repository using this release's own build, rather than carrying 0.9.0's numbers forward.
| 0.9.0 | 0.9.1 | |
|---|---|---|
| Context precision | 91.6% | 91.6% |
| Context recall | 95.6% | 95.6% |
| Pollution | 8.4% | 8.4% |
| Route accuracy | 100% | 100% |
| High-confidence-wrong | 0% | 0% |
| Freshness signalling | 100% | 100% |
| Median context-assembly cost reduction | 75.8% | 75.4% |
| Aggregate reduction | 86.5% | 86.4% |
The token figures moved inside measurement variance, so the published numbers now match the artifact shipping beside them instead of being 0.3pp optimistic. Cohort 30/30, zero model calls, reproducible with npm run benchmark:context-cost and npm run benchmark:project-context. The token figure is context-assembly cost, not end-to-end agent tokens.
Full changelog: https://github.com/proofofwork-agency/reporecall/blob/main/CHANGELOG.md