Skip to content

fix: prevent receipt-authorized relay deletion#17

Draft
vessenes wants to merge 1 commit into
agent/secure-gateway-conversation-bindingfrom
agent/authenticate-relay-receipts
Draft

fix: prevent receipt-authorized relay deletion#17
vessenes wants to merge 1 commit into
agent/secure-gateway-conversation-bindingfrom
agent/authenticate-relay-receipts

Conversation

@vessenes

@vessenes vessenes commented Jul 20, 2026

Copy link
Copy Markdown
Contributor

What changed

  • make signed read receipts telemetry-only and keep message retention under server TTL control
  • remove the internal receipt-triggered clear route and all receipt-driven KV deletion
  • stop the public stats response from exposing conversation IDs and per-conversation timestamps
  • add relay security-policy tests, typechecking, and a CI job
  • document the retained required_acks field as a legacy wire-compatibility hint

Why

The relay cannot infer conversation membership from opaque envelopes. Any arbitrary key could sign a receipt, choose required_acks=1, and delete a known message. Public stats also made conversation discovery easier.

Validation

  • relay security tests: 3 passed
  • relay TypeScript typecheck passed
  • Wrangler deploy dry-run passed
  • client Dropbox transport tests: 14 passed
  • client build passed
  • downstream PR Add cross-surface UI acceptance gate #22 posts a real message, submits a valid one-ack receipt from an arbitrary key, and proves the message is still replayable

Stack

This PR targets PR #18. PR #22 is stacked above it and runs the combined browser/CLI/TUI/gateway/relay acceptance gate.

@vessenes
vessenes force-pushed the agent/authenticate-relay-receipts branch from c8b4756 to 4b76ca5 Compare July 21, 2026 02:33
@vessenes
vessenes changed the base branch from main to agent/secure-gateway-conversation-binding July 21, 2026 02:33
@vessenes
vessenes force-pushed the agent/secure-gateway-conversation-binding branch from a379182 to fd177c2 Compare July 21, 2026 02:34
@vessenes
vessenes force-pushed the agent/authenticate-relay-receipts branch from 4b76ca5 to aad80c8 Compare July 21, 2026 02:35
@vessenes
vessenes force-pushed the agent/secure-gateway-conversation-binding branch from fd177c2 to 068ef2e Compare July 21, 2026 02:39
@vessenes
vessenes force-pushed the agent/authenticate-relay-receipts branch from aad80c8 to d1e25ff Compare July 21, 2026 02:40
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