tmpclient: add temporal decorrelation between context and identity requests

Open
#72 1 comment 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
1-2 days
Newbie friendliness
48/100
Issue type
Feature
Clarity
Clearly specified
Activity status
Stale
Tech stack
go

Research direction

Start in the tmpclient package and inspect where ContextMatch and IdentityMatch requests are sent, along with the Option definitions and related tests. Use the closed PR #9 in the client/ package as historical context. Done means the optional delay uses crypto/rand, is off by default, is bounded as specified, and tests confirm the identity delay without changing context timing.

Written by the indexing model from the issue text.

Description

claude-triaged enhancement

The current tmpclient fires ContextMatch and IdentityMatch independently, but the two calls travel with nearly identical timing. A network observer correlating arrival times at the router and identity agent can re-link them even when they're sent in parallel.

Add an optional randomized delay (jitter) on the identity request to decorrelate the two calls. Suggested surface:

  • WithDecorrelationMax(max time.Duration) Option — upper bound on the delay (default: off, recommend 5ms when enabled)
  • Delay drawn from [0, max) via crypto/rand (not math/rand) before sending the identity request

Prior design lived in closed PR #9 (client/ package). That PR used math/rand/v2; we should use crypto/rand for this since it's privacy-adjacent.

Acceptance

  • Option is off by default (no behavior change)
  • When set, identity request is delayed by a random duration in [0, max)
  • Test asserts delay occurs and is bounded
  • No impact on context request timing
Dominant language
Go
Stars
4
Forks
2
Avg merge
1d 1h
Merged PRs (30d)
26

Getting set up

This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from adcontextprotocol/adcp-go

All issues in adcontextprotocol/adcp-go

Similar issues

More Go issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.