starknet_transaction_prover,tower_ohttp: OHTTP-unlinkable request-id for decapsulated content - #14222
Conversation
b74ee13 to
49a7855
Compare
4055121 to
bfa94e0
Compare
49a7855 to
112d26d
Compare
PR SummaryMedium Risk Overview
For plaintext, the span reuses the id from Integration tests run the real Reviewed by Cursor Bugbot for commit d2ec166. Bugbot is set up for automated code reviews on this repo. Configure here. |
112d26d to
fef476a
Compare
bfa94e0 to
54145f3
Compare
fef476a to
fd81285
Compare
54145f3 to
adf3407
Compare
fd81285 to
7689f2f
Compare
adf3407 to
a6853d8
Compare
a6853d8 to
ad1b9cc
Compare
7689f2f to
034a491
Compare
ad1b9cc to
589df8a
Compare
034a491 to
0ef481c
Compare
589df8a to
79191bf
Compare
Yoni-Starkware
left a comment
There was a problem hiding this comment.
@Yoni-Starkware reviewed 8 files and all commit messages, and made 1 comment.
Reviewable status:complete! all files reviewed, all discussions resolved (waiting on einat-starkware).
58b61a0 to
92df5fe
Compare
1acd1f3 to
9480b1d
Compare
92df5fe to
3f40886
Compare
…for decapsulated content Tags downstream content logs with a request-id via a new `RequestSpanLayer` placed below the OHTTP layer. For plaintext it reuses the envelope id from `RequestLogLayer`; for an OHTTP-decapsulated request (marked with a new `tower_ohttp::Decapsulated` extension) it mints a FRESH UUID and discards any client-supplied inner id. The fresh inner id is never echoed back, so the relay-visible envelope id and the gateway's content-log id cannot be joined — preserving OHTTP unlinkability while still giving every request's downstream logs a correlatable id. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…decapsulation Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
9480b1d to
d2ec166
Compare
3f40886 to
59b1e1f
Compare
|
Security scan complete — no issues detected. Generated by Claude Code |
Resolve the 20 conflicts from merging main-v0.14.3 into main, plus two skews the conflict markers did not surface: - proof.bin is binary, so the merge picked main's version with no marker while its companion proof_facts.json stayed conflicted. Both are now regenerated together. - tower_ohttp moved its inline tests to a sibling layer_test.rs on main (#14559) while main-v0.14.3 added a test to the inline block (#14222); taking either side alone drops one of the two changes. The merged genesis state differs from both sides, so the proof-flow fixtures were regenerated rather than taken from either branch. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

Tags downstream content logs with a request-id via a new
RequestSpanLayerplaced below the OHTTP layer. For plaintext it reuses the envelope id from
RequestLogLayer; for an OHTTP-decapsulated request (marked with a newtower_ohttp::Decapsulatedextension) it mints a FRESH UUID. Anyclient-supplied inner
x-request-idis stripped bytower_ohttpatdecapsulation time, so the property holds even if the marker is ever lost
(fail-closed).
The fresh inner id is never echoed back, so the relay-visible envelope id and
the gateway's content-log id share no join key — preserving OHTTP
unlinkability while still giving every request's downstream logs a
correlatable id. Both integration tests exercise the production
prover_http_middleware!chain, so a layer reorder that reverts eitherproperty fails CI.
Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com