You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A small remainder of exact/near-exact helpers is duplicated inside subsystems that already have an obvious canonical owner. None warrants a standalone issue, but leaving them untracked preserves the same one-fix-misses-one-copy failure mode at smaller scale.
This umbrella is intentionally narrow: it does not target merely similar algorithms with different semantic identities, and it does not duplicate the renderer, Paroche, or test-fixture classes tracked separately.
Verified against main65644113e47814c87eaba14a6f322820974b8780.
Evidence
Exousia digest formatting:crates/exousia/src/api_key.rs:25-33 and service.rs:76-84 define byte-equivalent sha256_hex functions. Both own the same SHA-256-to-lowercase-hex mechanism inside the auth subsystem.
Cardigann whitespace normalization:crates/eksetasis/src/client/cardigann/extract.rs:147 and json_extract.rs:248 implement the same whitespace-collapse behavior under normalize_whitespace / normalize_space. json_extract.rs explicitly says it mirrors the HTML extractor so JSON and HTML fields normalize identically.
Cardigann current-time helper:extract.rs:288 and json_extract.rs:330 separately implement the same utc_now conversion. Again the two extractors need one timestamp policy, not independent clocks.
These helpers are cheap to centralize and their consumers explicitly require identical behavior. A digest-format change, whitespace-normalization correction, or time-source policy should be transitive inside its subsystem rather than depending on a search for sibling private functions.
Capturing the remainder also prevents the larger audit issues from being closed while leaving obvious local copies immediately beside the new canonical seams.
Desired correction
Move each helper to the narrowest existing subsystem module that naturally owns it: one Exousia digest/encoding helper and one shared Cardigann extraction-support surface consumed by HTML and JSON extraction. Do not create a fleet-wide generic-utilities crate.
Done when:
Exousia has one SHA-256 hex implementation;
Cardigann HTML and JSON extraction share whitespace normalization and current-time acquisition;
behavior-specific tests target the shared helper once plus extractor integration where useful; and
a local duplicate scan finds no second same-owner implementation of these exact mechanics.
Finding
A small remainder of exact/near-exact helpers is duplicated inside subsystems that already have an obvious canonical owner. None warrants a standalone issue, but leaving them untracked preserves the same one-fix-misses-one-copy failure mode at smaller scale.
This umbrella is intentionally narrow: it does not target merely similar algorithms with different semantic identities, and it does not duplicate the renderer, Paroche, or test-fixture classes tracked separately.
Verified against
main65644113e47814c87eaba14a6f322820974b8780.Evidence
crates/exousia/src/api_key.rs:25-33andservice.rs:76-84define byte-equivalentsha256_hexfunctions. Both own the same SHA-256-to-lowercase-hex mechanism inside the auth subsystem.crates/eksetasis/src/client/cardigann/extract.rs:147andjson_extract.rs:248implement the same whitespace-collapse behavior undernormalize_whitespace/normalize_space.json_extract.rsexplicitly says it mirrors the HTML extractor so JSON and HTML fields normalize identically.extract.rs:288andjson_extract.rs:330separately implement the sameutc_nowconversion. Again the two extractors need one timestamp policy, not independent clocks.Why this matters
These helpers are cheap to centralize and their consumers explicitly require identical behavior. A digest-format change, whitespace-normalization correction, or time-source policy should be transitive inside its subsystem rather than depending on a search for sibling private functions.
Capturing the remainder also prevents the larger audit issues from being closed while leaving obvious local copies immediately beside the new canonical seams.
Desired correction
Move each helper to the narrowest existing subsystem module that naturally owns it: one Exousia digest/encoding helper and one shared Cardigann extraction-support surface consumed by HTML and JSON extraction. Do not create a fleet-wide generic-utilities crate.
Done when: