fix(ack-id): return reply nonce for response handshakes - #175
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (2)
Included review availability: Your plan provides up to 2 included reviews per hour; 1 remains after this review. WalkthroughThe A2A handshake message now returns the fresh reply nonce for response handshakes. A regression test verifies this behavior when a request nonce is provided. ChangesA2A handshake nonce handling
Estimated code review effort: 2 (Simple) | ~10 minutes Merge Risk: ⚪ Minimal · up to This localized fix returns the fresh reply nonce for response handshakes while preserving initiator behavior, with regression coverage and normal checks reported as passing; no actionable merge-blocking risk remains. Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Summary
Fixes #174
createA2AHandshakeMessage()returnedpayload.noncefor every handshake message.For response handshakes,
createA2AHandshakePayload({ requestNonce })keeps the peer's original request nonce inpayload.nonceand puts the newly generated nonce inpayload.replyNonce. Returningpayload.noncemeant callers received the old request nonce instead of the fresh reply nonce needed to correlate the next handshake leg.This PR returns
payload.replyNoncewhen present, while preserving the existing initiator behavior by falling back topayload.nonce.Changes
payload.replyNonce ?? payload.noncefromcreateA2AHandshakeMessage().requestNonce.How to Test
Note:
pnpm run checkwas also attempted. Build passed, but the full parallel test run hit Vitest fork worker timeout/EPIPE errors across unrelated packages in this WSL environment. The focused package tests and repo lint/format/package checks passed.Checklist
Risk & Impact
Low. The fallback (
payload.replyNonce ?? payload.nonce) preserves the existing initiator behavior byte-for-byte — only response handshakes with areplyNoncepresent see a behavior change, which is the exact case this fixes.Type: 🐛 Bug fix
Fixes: #174
Summary by CodeRabbit
Bug Fixes
Tests