Implement Phase 6.9.2: cache key construction from (PDF fingerprint, extraction options) pairs. The key is (fingerprint, opts_hash) where opts_hash is SHA-256 of canonical JSON serialization. Key features: - BTreeMap-based canonicalization for sorted keys - Float canonicalization (preserves integers, canonicalizes floats) - extraction_version included for cache invalidation on upgrades - Forward-compatible with future ExtractionOptions fields Acceptance criteria: - Same effective values → same hash - Toggle receipts off→lite → hash differs - Different version → hash differs - Sorted-key canonical JSON - Float canonical (0.5 == 0.500) - Documented invariant Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| pdftract-cer-diff | ||
| pdftract-cli | ||
| pdftract-core | ||
| pdftract-py | ||