Skip to content

sender: compute shared hash over the transmitted (deflated) header form - #30

Merged
markmnl merged 1 commit into
mainfrom
fix-shared-hash-deflated-form
Aug 4, 2026
Merged

sender: compute shared hash over the transmitted (deflated) header form#30
markmnl merged 1 commit into
mainfrom
fix-shared-hash-deflated-form

Conversation

@markmnl

@markmnl markmnl commented Aug 4, 2026

Copy link
Copy Markdown
Owner

The shared hash was computed before computeDeflate/applyTo mutated the wire header (deflate flag, compressed size, expanded size), so the recorded sha256 was of a form the receiving host never sees — receivers hash the header exactly as transmitted (SPEC "Message hash"). Replies to a locally-originated message then carried a psha256 no remote host could match, bouncing with code 6 (parent not found) even though the parent was delivered. Found live: only the root of a pid chain ever reached the remote host. Deflate now runs first and the hash is taken from the transmitted form; sharedHash()'s undeflated fallback remains only for local-only messages nothing external can reference.

The shared hash was computed before computeDeflate/applyTo mutated the
wire header (deflate flag, compressed size, expanded size), so the
recorded sha256 was of a form the receiving host never sees — receivers
hash the header exactly as transmitted (SPEC "Message hash"). Replies to
a locally-originated message then carried a psha256 no remote host could
match, bouncing with code 6 (parent not found) even though the parent
was delivered. Found live: only the root of a pid chain ever reached the
remote host. Deflate now runs first and the hash is taken from the
transmitted form; sharedHash()'s undeflated fallback remains only for
local-only messages nothing external can reference.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@markmnl
markmnl merged commit 3fabf19 into main Aug 4, 2026
2 checks passed
@markmnl
markmnl deleted the fix-shared-hash-deflated-form branch August 4, 2026 23:32
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