# fix\(server\): reject replaying a command receipt across threads in v2 · stienswout/t3code

[View on GitCafe](https://git.cafe/stienswout/t3code/commit/9686cd56f135c94fd6ad5f6afe3b99bb6545e8c5)

Repository: [stienswout/t3code](https://git.cafe/stienswout/t3code)

Visibility: public

Requested revision: 9686cd56f135c94fd6ad5f6afe3b99bb6545e8c5

Requested commit: 9686cd56f135c94fd6ad5f6afe3b99bb6545e8c5

Commit: 9686cd56f135c94fd6ad5f6afe3b99bb6545e8c5

Tree: 669192287be46178ebb2c29a534185f593a44934

Author: Julius Marminge

Committer: Julius Marminge

## Message

```
fix(server): reject replaying a command receipt across threads in v2

Ports v1's #5246 guard into the v2 dispatcher: a stored receipt only
proves that this exact command already ran for the thread it was recorded
against, so returning it for a command aimed at a different thread reports
success for work that never happened there. The check is extracted as
canReplayCommandReceipt so the rule is unit-testable, and reuse now fails
with OrchestratorCommandIdConflictError like the v1 path.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

```

## Parents

- [a186d9e21a0e4ba46ecdf3371b3ef44ee2d99056](https://git.cafe/stienswout/t3code/commit/a186d9e21a0e4ba46ecdf3371b3ef44ee2d99056?format=markdown)

[Source at this commit](https://git.cafe/stienswout/t3code/tree/9686cd56f135c94fd6ad5f6afe3b99bb6545e8c5?format=markdown)
