Skip to content

feat(relay): timestamp receiver diagnostics and correlate attempts - #196

Merged
abruption merged 1 commit into
mainfrom
feat/172-receiver-attempt-correlation
Sep 24, 2026
Merged

abruption merged 1 commit into
mainfrom
feat/172-receiver-attempt-correlation

Conversation

@abruption

@abruption abruption commented Sep 24, 2026 •

Copy link
Copy Markdown
Owner

Closes #172

What changed

  • Timestamp opt-in receiver and Relay lifecycle events with UTC epoch milliseconds.
  • Generate a fresh UUIDv4 for each client Relay setup attempt; carry it in a bounded WebSocket header, Relay room metadata, and the attach notice only for capable peers. Record it in client success/failure metadata and receiver attach/peer-TLS events.
  • Keep legacy bare attach frames valid during rolling upgrades. Missing or ambiguous evidence remains unattributed.
  • Document the privacy and attribution boundary in four locales.

No service or production configuration changes.

Verification

  • Full local suite: 515 run, 504 passed, 11 skipped (Python 3.14.7, websockets 17.1).
  • Real loopback Relay test joins client, Relay, and receiver by one ID and checks timestamp/privacy; legacy and mixed-version attach tests pass.
  • Documentation i18n checks pass.

Known existing full-suite sqlite ResourceWarning occurs in test_control_backup_snapshot.py and is unrelated to this change.

@abruption
abruption force-pushed the feat/172-receiver-attempt-correlation branch from eda30be to 68eb689 Compare September 24, 2026 12:22
@abruption
abruption merged commit 076779a into main Sep 24, 2026
24 checks passed
@abruption
abruption deleted the feat/172-receiver-attempt-correlation branch September 27, 2026 01:33
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.

feat(relay): timestamp receiver diagnostic events and support safe attempt correlation

1 participant