# feat\(server\): agents use linked environments · pingdotgg/t3code

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

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

Visibility: public

Requested revision: 07488aa0a7ee02890275bb4e0c012e7c2c30e243

Requested commit: 07488aa0a7ee02890275bb4e0c012e7c2c30e243

Commit: 07488aa0a7ee02890275bb4e0c012e7c2c30e243

Tree: 30206d35dba87a3bdeaddaeec204f388c5549556

Author: Julius Marminge

Committer: Julius Marminge

## Message

```
feat(server): agents use linked environments

An agent can now work on a linked environment's threads through the same T3
MCP tools. t3_project_list, orchestrator_capabilities, t3_thread_launch,
t3_thread_list, t3_thread_read, t3_thread_send, t3_thread_wait and
t3_thread_interrupt take an optional environmentId; t3_environment_links
lists the links.

Each tool's own access declaration still runs here first, so a read-only or
ended caller is refused before anything leaves. The forwarded call carries
the caller's modes in T3-Mode-Limit, and the linked environment holds it to
those and the link's access. Retry keys are hashed with the caller's
namespace, since every caller here shares the link's one session there. A
forwarded wait goes out in pieces of at most 50 s so no route drops it idle.
A remote launch cannot carry attachments yet.

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

```

## Parents

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

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