SHA-256 content hashing with streaming #23

Closed
opened 2026-10-10 22:21:46 +00:00 by keith · 1 comment
Owner

Context

Implement this MVP work package under M3 - Import & Indexing Engine, following the managed-storage decision in #1.

Acceptance criteria

  • Stream SHA-256 with bounded memory for large files; persist indexed hashes.
  • Identical bytes yield identical hashes regardless of name; differing bytes do not.
  • Detect source changes during reading rather than committing inconsistent metadata; test large and changing sources.

Blocked by: #15

## Context Implement this MVP work package under M3 - Import & Indexing Engine, following the managed-storage decision in #1. ## Acceptance criteria - [ ] Stream SHA-256 with bounded memory for large files; persist indexed hashes. - [ ] Identical bytes yield identical hashes regardless of name; differing bytes do not. - [ ] Detect source changes during reading rather than committing inconsistent metadata; test large and changing sources. Blocked by: #15
keith added this to the M3 - Import & Indexing Engine milestone 2026-10-10 22:21:46 +00:00
keith added the area:indexertype:featurepriority:medium labels 2026-10-10 22:21:46 +00:00
Author
Owner

Acceptance reconciliation at c1ef2ee: StreamingHasher uses bounded streaming with identity/stat mutation checks; hash tests cover matching/different content and changing sources. Catalog/import persistence stores hashes and schema indexes file hashes. Fresh full suite: 291 tests, 1801 assertions, 22 skips; lint passes. Recorded isolated PG run: 291 tests, 1863 assertions, 7 skips (not rerun today). Closing hashing acceptance; this does not close copying/recovery #24/#25.

Acceptance reconciliation at c1ef2ee: StreamingHasher uses bounded streaming with identity/stat mutation checks; hash tests cover matching/different content and changing sources. Catalog/import persistence stores hashes and schema indexes file hashes. Fresh full suite: 291 tests, 1801 assertions, 22 skips; lint passes. Recorded isolated PG run: 291 tests, 1863 assertions, 7 skips (not rerun today). Closing hashing acceptance; this does not close copying/recovery #24/#25.
keith closed this issue 2026-10-12 18:54:42 +00:00
Sign in to join this conversation.