Follow Discord
Sweep 12 Nov 2026 · 23:00Z Build v2.1.323 540 read Stable v2.1.311 Latest v2.1.323 Next v2.1.323 Feeds RSS JSON llms.txt llms-full.txt Unofficial

Claude Code v2.1.323 ·

Teammate plan approvals are now tied to the exact plan sent

A lead's plan approval must now match a digest of the plan the teammate sent, and lead messages are checked against a verify key

Group of 3 You'll notice Improvements
JSON All of v2.1.323
You'll noticeTier: how much it should matter to you
2Useful: my rating, 1 to 5
2Signal: worth watching, 1 to 5
Agent TeamsArea: what it touches
ImprovementsKind: in v2.1.323,
ImprovementsSection of the release

What

In a team of Claude Code agents, a lead agent directs teammate agents, also called workers, and a worker can ask the lead to approve its plan before acting. That approval is now tied to the exact plan the worker sent, and messages from the lead are checked more strictly.

  • planDigest: a worker's plan-approval request now stores a digest, a short fingerprint of the plan it mailed to the lead.
  • plan_digest_mismatch: a lead's verdict that does not carry the digest of that plan gets this result. It is handled the same way as the existing "mismatch" result, so the worker's wait ends as a rejection.
  • No waiting request: when a lead verify key is present, a verdict that arrives while no plan request is waiting is refused with "No plan request is waiting for this verdict".
  • leadVerifyKey: the teammate mailbox now accepts a message from the lead as verified when it checks out against this key. Message IDs (msg_ids) can be used only once, and forged messages are flagged.

Before, only the request ID was compared, with the results mismatch, already_answered and unbound, and a mailbox message counted as verified only through a check against the record of what had been written.

Why

A worker now goes ahead only on an approval for the plan it actually sent. A verdict meant for a different plan, an out-of-date one, or a message that only pretends to come from the lead now ends as a rejection instead of being accepted.

See this entry in the whole of v2.1.323 →

Feedback