Repository navigation
fix: #206 follow-ups: redact-then-cut attempt log, Codex quota codes, MiniMax salvage, slash passwords, linear core scrub; v2.28.1 #207
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
36 commits
Select commit
Hold shift + click to select a range
25d4ef2
fix(dataplane): redact the attempt-failure quote before cutting it (#…
ivndev001 2abb4db
fix(logging): scrub a userinfo password that holds an unencoded slash…
ivndev001 29d6cc6
fix(core): make the boot-path credential scrub linear; scrub slash pa…
ivndev001 a5d08af
fix(providers): a Codex spent balance is credits-exhausted, in-stream…
ivndev001 3d657b1
fix(usage): keep MiniMax base_resp through the oversized-frame salvag…
ivndev001 194aa5a
docs: spec, CHANGELOG and version 2.25.9 for #206
ivndev001 abf2f1f
fix: #207 adversarial review: query-string leak, window-shrink fragme…
ivndev001 2040b09
fix: #207 correctness review: keep only base_resp.status_code, pin th…
ivndev001 af382b7
fix: #207 round-2 review: the slash branch can never cover a query-st…
ivndev001 ab7a7ea
fix(providers): an in-stream quota verdict needs a code, as the Codex…
ivndev001 27e6c4b
fix: #207 round-2 adversarial review: base64 padding, readable log pr…
ivndev001 96ecd5c
fix: #207 round-3 review: core padding guard, scheme lookbehind, bare…
ivndev001 d2ee4a7
fix: #207 round-3 correctness review: log quote window and fit, statu…
ivndev001 44a7760
fix: #207 round-4 adversarial review: whole-message quote scrub, stri…
ivndev001 052bd1b
fix: #207 round-4 correctness review: staged salvage eviction, honest…
ivndev001 742b2eb
fix: #207 round-5 correctness review: whitespace-bounded scan past 64…
ivndev001 725c1c3
fix: #207 round-5 adversarial review: boundary tests, no margin fallback
ivndev001 f7afa65
fix: #207 round-6 adversarial review: lend base_resp room, response.e…
ivndev001 6c5334f
test: #207 round-6 correctness review: pin the 64 KiB boundary, the m…
ivndev001 820dbfd
test: #207 round-7 correctness review: pin lend accounting and quota …
ivndev001 a11a5f1
fix: #207 round-7 adversarial review: a repeated base_resp keeps the …
ivndev001 2165a25
fix: #207 round-8 correctness review: a repeated base_resp parent rep…
ivndev001 71223d5
refactor(usage): derive the ceiling-slot parent map; pin a repeat aft…
ivndev001 a0deb89
test: #207 round-9 correctness review: pin the inner status_code repe…
ivndev001 6362127
fix: #207 round-9 adversarial review: a malformed base_resp code neve…
ivndev001 079ab37
test: #207 round-10 correctness review: a malformed non-ceiling membe…
ivndev001 008f224
test: #207 round-10 adversarial review: the skip is ceiling-only and …
ivndev001 32b2776
fix: #207 round-11 adversarial review: a ceiling slot takes only the …
ivndev001 2e31c38
fix: #207 round-12 correctness review: no ceiling code from a structu…
ivndev001 da68809
refactor(usage): split the salvage slot tables and rebuild step; keep…
ivndev001 478f596
test: #207 round-12 adversarial review: stream line redacts before th…
ivndev001 7d389fc
fix: #207 round-13 reviews: block drops a running code; pin release, …
ivndev001 8a915bc
test: #207 round-14 correctness review: a running non-ceiling capture…
ivndev001 7cf0db4
chore: #207 round-14 adversarial review nits: budget wording, test co…
ivndev001 1cb2f0b
chore: re-trigger the developerz.ai platform review check (stuck queu…
ivndev001 6daea78
Merge origin/main into fix/206-redaction-salvage-followups; re-versio…
ivndev001 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
major · security Branch 1's
={0,2}padding lacks the key-name guard the core copy got in this same PR (scrub-credentials.ts:31), sojdbc:postgresql://host:5432/db;password=@Hunter2Secretredacts to://[REDACTED]@Hunter2Secret— the secret survives and thepassword=marker is swallowed, on log lines and client-facing errors (errors/render.ts).There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Re-checked at
63621279aa26: still open atapps/api/src/logging/redact.ts:112. Branch 1 still ends in a bare={0,2}with no key-name lookbehind, and no DSN key=value pattern was added to SECRET_VALUE_PATTERNS;jdbc:postgresql://host:5432/db;password=@Hunter2Secretstill matches://host:5432/db;password=@, leavingHunter2Secretin the line. The changes since only moved redaction before the cut (attempt-log) and applied the key-name guard to the boot-path scrub (scrub-credentials.ts), not this server redactor.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Re-checked at
008f22459155: still open atapps/api/src/logging/redact.ts:112. At head the userinfo branch still ends in a bare={0,2}with no key-name guard, and SECRET_VALUE_PATTERNS (lines 77–138) still has no DSN key=value pattern;jdbc:postgresql://host:5432/db;password=@Hunter2Secretmatches://host:5432/db;password=@, leavingHunter2Secretin the line.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Re-checked at
32b277667aa6: still open atapps/api/src/logging/redact.ts:112. Branch 1 still ends in a bare={0,2}with no key-name lookbehind, and SECRET_VALUE_PATTERNS (lines 77–138) still has no DSN key=value pattern.jdbc:postgresql://host:5432/db;password=@Hunter2Secretmatches://host:5432/db;password=@, leavingHunter2Secretin the line; the key-name guard landed only in the boot-path scrub.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Re-checked at
2e31c38a0747: still open atapps/api/src/logging/redact.ts:112. Branch 1 still ends in a bare={0,2}with no key-name lookbehind, and SECRET_VALUE_PATTERNS (lines 77–138) still has no DSN key=value pattern (the query-string pattern stays anchored on[?&]).jdbc:postgresql://host:5432/db;password=@Hunter2Secretstill matches://host:5432/db;password=@, leavingHunter2Secretin the line; the key-name guard landed only in the boot-path scrub (scrub-credentials.ts), not this server redactor.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Re-checked at
478f5964817c: still open atapps/api/src/logging/redact.ts:112. Line 112's userinfo branch still ends in a bare={0,2}with no key-name lookbehind, and SECRET_VALUE_PATTERNS (lines 77–138) still has no DSN key=value pattern (line 121 anchors on[?&]).jdbc:postgresql://host:5432/db;password=@Hunter2Secretstill matches://host:5432/db;password=@, leavingHunter2Secret; the key-name guard landed only in the boot-path scrub.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Re-checked at
7cf0db4dbd90: still open atapps/api/src/logging/redact.ts:112. Line 112's userinfo branch 1 still ends in a bare={0,2}with no key-name lookbehind, and SECRET_VALUE_PATTERNS (lines 77–138) still has no DSN key=value pattern (line 121 anchors on[?&]), sojdbc:postgresql://host:5432/db;password=@Hunter2Secretmatches://host:5432/db;password=@andHunter2Secretsurvives on log lines and client-facing errors.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Re-checked at
1cb2f0b18a30: still open atapps/api/src/logging/redact.ts:112. Line 112's userinfo branch 1 still ends in a bare={0,2}with no key-name lookbehind, and SECRET_VALUE_PATTERNS (77–138) still has no DSN key=value pattern — the query-string pattern at 121 anchors on[?&], so;password=misses.jdbc:postgresql://host:5432/db;password=@Hunter2Secretstill matches://host:5432/db;password=@, leavingHunter2Secret; the guard landed only in the boot-path scrub.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Re-checked at
7d389fc5046b: still open atapps/api/src/logging/redact.ts:112. Line 112 still has the bare={0,2}in branch 1 with no key-name lookbehind guard, and SECRET_VALUE_PATTERNS (lines 77–138) still has no DSN key=value pattern — the query-string pattern at line 121 anchors on[?&].jdbc:postgresql://host:5432/db;password=@Hunter2Secretstill matches://host:5432/db;password=@, leavingHunter2Secretexposed on log lines and client-facing errors. The diff shows no changes to this file.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Re-checked at
6daea7858a58: still open atapps/api/src/logging/redact.ts:112. Still true at head. Line 112's userinfo branch 1 ends in a bare{1,256}={0,2}with no key-name lookbehind, and the char class allows;, sojdbc:postgresql://host:5432/db;password=@Hunter2Secretmatches://host:5432/db;password=@and leavesHunter2Secret; the query-string pattern at line 121 still anchors on[?&]so;password=has no DSN key=value fallback. The diff touches no file in this module; CHANGELOG line 17 confirms the guard landed only in the boot-path scrub.