# feat\(server\): t3_thread_launch takes clientRequestId · pingdotgg/t3code

[View on GitCafe](https://git.cafe/pingdotgg/t3code/commit/071e6616495613844a1ff062446e41b4fc586d22)

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

Visibility: public

Requested revision: 071e6616495613844a1ff062446e41b4fc586d22

Requested commit: 071e6616495613844a1ff062446e41b4fc586d22

Commit: 071e6616495613844a1ff062446e41b4fc586d22

Tree: 9bb671d72eee30ed36bbbd1e5e77b86d5032bfc9

Author: Julius Marminge

Committer: Julius Marminge

## Message

```
feat(server): t3_thread_launch takes clientRequestId

A launch had no retry key, so an agent (or another environment calling on
its behalf) that lost the response could only guess whether the thread
was created, and a retry started a second one.

t3_thread_launch now takes an optional clientRequestId. The command,
thread and message ids derive from the caller and the key, and the launch
service already replays a command it accepted, so a retry returns the
first thread. Without a key every launch is new, as before.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

```

## Parents

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

[Source at this commit](https://git.cafe/pingdotgg/t3code/tree/071e6616495613844a1ff062446e41b4fc586d22?format=markdown)
