Merge RB-18 — key IdempotencyStore on caller plus idem key
BIO-018: the store was a process-global dictionary keyed on the client-supplied Idempotency-Key alone, so one caller could replay another caller's key and receive their cached response. The key is now scoped with the caller SubjectId. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> # Conflicts: # docs/project/refactor-backlog-setup/refactor-backlog/99-backlog.md # libs/shared/docs/behaviour-spec.mdx
This commit is contained in:
@@ -21,7 +21,7 @@ tested where._
|
||||
Every bullet below is a real test name from the suite — an `it()` title (frontend) or a test
|
||||
method name (backend), read as a sentence. Nothing here is hand-written prose: this page
|
||||
**is** the suite, reshaped for a business reader. 460 frontend behaviours across
|
||||
9 contexts; 236 backend behaviours across 41 test
|
||||
9 contexts; 237 backend behaviours across 41 test
|
||||
classes.
|
||||
|
||||
## Frontend (by context)
|
||||
@@ -1064,6 +1064,7 @@ classes.
|
||||
|
||||
- Replaying the same idempotency key returns the same reference not a new one
|
||||
- Different idempotency keys are independent submissions
|
||||
- A caller replaying another callers idempotency key does not get their cached result
|
||||
- A rejected submission replays the same rejection not a retry
|
||||
|
||||
### IntakeRuleTests
|
||||
|
||||
Reference in New Issue
Block a user