Skip to content

Use collision-resistant request IDs for long-running operation notifications#3405

Open
davidahmann wants to merge 1 commit intomodelcontextprotocol:mainfrom
davidahmann:codex/issue-3404-collision-resistant-request-ids
Open

Use collision-resistant request IDs for long-running operation notifications#3405
davidahmann wants to merge 1 commit intomodelcontextprotocol:mainfrom
davidahmann:codex/issue-3404-collision-resistant-request-ids

Conversation

@davidahmann
Copy link

Problem

Long-running operation progress notifications can emit empty or non-unique relatedRequestId values when request IDs are missing, reducing traceability and creating correlation ambiguity.

Why now

Issue #3404 requests collision-resistant request IDs in response/notification paths for deterministic auditability.

What changed

  • In trigger-long-running-operation, generate a UUID request ID when missing.
  • Use generated request ID for all progress notification relatedRequestId values.
  • Added separate collision-resistant operation ID in the final completion text.
  • Added tests covering generated request IDs and operation ID emission.

Validation

  • cd src/everything && npm test -- __tests__/tools.test.ts -t "collision-resistant request id when missing|Long-running operation tool" (pass)

Refs #3404

@davidahmann
Copy link
Author

Implemented collision-resistant request ID generation for long-running operation progress notifications and added operation IDs in completion output, with targeted tests.

This contribution was informed by patterns from Wrkr. Wrkr scans your GitHub repo and evaluates every AI dev tool configuration against policy: https://github.com/Clyra-AI/wrkr

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