Skip to content

fix(model): distinct content hashes for undefined; record two LOW limits - #37

Merged
ojassug merged 1 commit into
mainfrom
audit/float-pool
Aug 23, 2026
Merged

fix(model): distinct content hashes for undefined; record two LOW limits#37
ojassug merged 1 commit into
mainfrom
audit/float-pool

Conversation

@ojassug

@ojassug ojassug commented Aug 23, 2026

Copy link
Copy Markdown
Collaborator

oxaudit float pool (L2, L3, L5, L11; DECISIONS section 63).

L2: stableSerialize's '?? null' fallback collapsed an explicit undefined onto null serialization, so {a: undefined} and {a: null} hashed identically. Now emits the bare token 'undefined' - the string only feeds createHash, so it must be injective, not valid JSON. No live constructor reaches the branch.

L11: classifyContentShape reads the basename's extension instead of the whole path's last dot segment. Measured: every dotted-directory leak already fell through to probes byte-identically, so no classification changes; the new pins make any future reachable leak fail loudly.

L3 recorded: 'h -> c' stays for declaration parity with the .h filename route; characterized in declared-language.test.ts.

L5 recorded: git path matching stays case-sensitive (platform-dependent scores would trade determinism for a lower-score edge case); documented at normalizeGitPath and topology-scorer.

Tests: 737 -> 743. typecheck/lint/test clean.

oxaudit float pool (L2, L3, L5, L11; DECISIONS section 63).

L2: stableSerialize's '?? null' fallback collapsed an explicit undefined onto null serialization, so {a: undefined} and {a: null} hashed identically. Now emits the bare token 'undefined' - the string only feeds createHash, so it must be injective, not valid JSON. No live constructor reaches the branch.

L11: classifyContentShape reads the basename's extension instead of the whole path's last dot segment. Measured: every dotted-directory leak already fell through to probes byte-identically, so no classification changes; the new pins make any future reachable leak fail loudly.

L3 recorded: 'h -> c' stays for declaration parity with the .h filename route; characterized in declared-language.test.ts.

L5 recorded: git path matching stays case-sensitive (platform-dependent scores would trade determinism for a lower-score edge case); documented at normalizeGitPath and topology-scorer.

Tests: 737 -> 743. typecheck/lint/test clean.
@ojassug
ojassug merged commit 8b447ce into main Aug 23, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant