Repository navigation
fix(privacy): protect YAML keys and BOM-prefixed documents - #4527
Open
ScriptedAlchemy wants to merge 1 commit into
Open
ScriptedAlchemy wants to merge 1 commit into
ScriptedAlchemy wants to merge 1 commit into
Conversation
|
This was referenced Oct 25, 2026
ScriptedAlchemy
force-pushed
the
release-please--branches--master--components--tracedecay
branch
from
October 25, 2026 04:36
6e926d1 to
695cd74
Compare
This was referenced Oct 25, 2026
ScriptedAlchemy
force-pushed
the
release-please--branches--master--components--tracedecay
branch
from
October 25, 2026 10:04
ca09129 to
da64d3f
Compare
ScriptedAlchemy
force-pushed
the
fix/privacy-structured-key-coverage
branch
from
October 25, 2026 10:23
b7739ad to
96c2128
Compare
ScriptedAlchemy
force-pushed
the
release-please--branches--master--components--tracedecay
branch
from
October 25, 2026 10:34
381234b to
badf167
Compare
ScriptedAlchemy
force-pushed
the
fix/privacy-structured-key-coverage
branch
2 times, most recently
from
October 25, 2026 11:27
7cc565b to
5f813ea
Compare
ScriptedAlchemy
force-pushed
the
release-please--branches--master--components--tracedecay
branch
from
October 25, 2026 19:37
a146486 to
4c1e387
Compare
ScriptedAlchemy
force-pushed
the
fix/privacy-structured-key-coverage
branch
from
October 25, 2026 19:42
5f813ea to
f4bc0d4
Compare
ScriptedAlchemy
force-pushed
the
release-please--branches--master--components--tracedecay
branch
from
October 25, 2026 19:56
30c54d7 to
df38a2f
Compare
ScriptedAlchemy
force-pushed
the
fix/privacy-structured-key-coverage
branch
from
October 25, 2026 20:06
f4bc0d4 to
1b16bf1
Compare
ScriptedAlchemy
force-pushed
the
release-please--branches--master--components--tracedecay
branch
from
October 26, 2026 03:39
170dd0d to
a58d9fd
Compare
ScriptedAlchemy
force-pushed
the
fix/privacy-structured-key-coverage
branch
2 times, most recently
from
October 26, 2026 03:51
8df1317 to
55ff1db
Compare
ScriptedAlchemy
force-pushed
the
release-please--branches--master--components--tracedecay
branch
from
October 26, 2026 03:56
3d0e7e2 to
7988b98
Compare
ScriptedAlchemy
force-pushed
the
fix/privacy-structured-key-coverage
branch
from
October 26, 2026 03:59
55ff1db to
792d797
Compare
ScriptedAlchemy
force-pushed
the
release-please--branches--master--components--tracedecay
branch
from
October 26, 2026 05:09
97f1f5e to
bdc0a03
Compare
ScriptedAlchemy
force-pushed
the
fix/privacy-structured-key-coverage
branch
from
October 26, 2026 05:15
792d797 to
dcbb4b6
Compare
ScriptedAlchemy
force-pushed
the
release-please--branches--master--components--tracedecay
branch
from
October 26, 2026 05:30
23cd303 to
6b64b1e
Compare
ScriptedAlchemy
force-pushed
the
fix/privacy-structured-key-coverage
branch
from
October 26, 2026 05:34
dcbb4b6 to
ab22321
Compare
ScriptedAlchemy
force-pushed
the
release-please--branches--master--components--tracedecay
branch
from
October 26, 2026 08:34
9516647 to
d2473d2
Compare
ScriptedAlchemy
force-pushed
the
fix/privacy-structured-key-coverage
branch
from
October 26, 2026 08:58
ab22321 to
ef1958c
Compare
ScriptedAlchemy
force-pushed
the
release-please--branches--master--components--tracedecay
branch
from
October 26, 2026 19:01
7113441 to
ed3fcfe
Compare
ScriptedAlchemy
force-pushed
the
fix/privacy-structured-key-coverage
branch
from
October 26, 2026 19:11
ef1958c to
46a133a
Compare
ScriptedAlchemy
force-pushed
the
fix/privacy-structured-key-coverage
branch
from
October 26, 2026 19:12
46a133a to
43e96e1
Compare
ScriptedAlchemy
force-pushed
the
release-please--branches--master--components--tracedecay
branch
from
October 26, 2026 19:23
47e1d8a to
fad4302
Compare
ScriptedAlchemy
force-pushed
the
fix/privacy-structured-key-coverage
branch
from
October 26, 2026 19:25
43e96e1 to
3b35059
Compare
ScriptedAlchemy
force-pushed
the
fix/privacy-structured-key-coverage
branch
from
October 26, 2026 19:40
3b35059 to
6b5a992
Compare
This branch has not been deployed
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Merge #4478 first, followed by #4526, #4510, #4524, #4489, #4485, #4527, #4528, #4530, #4531, #4529, #4534, and #4541.
This PR is number 7 of 13, based on #4485. Merge #4528 next.
Use merge commits. After merging a parent PR, change its child's base to
masterbefore merging the child. Auto-merge is disabled.Flat YAML sometimes uses the HTTP-header parser. That parser checked field names for known sensitive meanings and inspected values, but it did not detect credentials in the keys themselves. A credential-shaped key could leave its value exposed. A leading UTF-8 BOM also prevented JSON and TOML from reaching structural checks.
The line-format sanitizer now detects credentials in keys, including keys with empty values. It uses the existing detectors and typed quarantine result.
JSON and TOML processing removes one leading BOM before parsing, finding spans, rewriting, and checking the result. Text output restores the BOM. Admission limits and receipt identity still use the original bytes. Shared JSON parsing and LCM JSON detection accept BOM-prefixed input while preserving duplicate-key refusal and LCM's larger JSON allowance.
The code-source implementation revision and LCM detector revision advance so retained generations and completed rescans cannot continue to certify content accepted by the old checks. The in-place JSON and TOML key redaction and reparse checks from #4515 remain.
Fixes #4519.
Validation
Canonical Bazel validation on the integrated parent tree is recorded below.
2af7f6d6f4a0f2badc6951a52749bd22f97ef1ef.29b6c73b-ec84-4468-8a95-3fdc458af26b.ada2671a-ed9b-42ef-b07b-8c3f00d94464.Structural identity admission correction
Fleet validation on descendant #4528 exposed Kimi and Vibe prefixed-session admission failures. The canonical structural-ID helper now digests quarantined native identifiers using its existing digest format, while sanitizer errors and scan limits still refuse admission. Public and previously protected identities remain stable.
Fix:
699c648217. Controlled Kimi BEFORE failed (0a07923d-9131-47ae-b88a-f63cf501fb8a); the new focused structural-ID regression also failed before the helper change (8c478185-6935-4c54-8f61-515826619192). AFTER: all 163 privacy tests and 633 session tests passed, including both original failing host journeys, plus formatting (84e89e56-2aaa-403c-a04c-3a27b2f41436). Scoped Clippy passed (8e707247-fbe2-415c-bda9-91478a20148f). No host assertions or admission limits changed.