Source Intelligence

DisclaimerUnofficial, and not affiliated with Anthropic. Nearly all of this is read straight out of what ships: npm bundles, captured prompts, published docs. Anthropic's own notes go in verbatim, marked as theirs. The rest is my reading, and every entry carries the strings behind it. If one looks wrong, vote it down and say why.

All of v2.1.221 Home All releases olderv2.1.220 v2.1.222newer

Whiteboard hardening: permission verdicts, state sanitising, merge-state validation

Not switched on
Useful1 Signal2
Whiteboard

Whiteboard permission checks and board data validation got stricter, but none of it runs here.

Whiteboard permission verdicts and state sanitising are hardened, behind the disabled whiteboard skill.

What

Permission checks, board state loading and merge-state application all got stricter validation. Not reachable in this build.

Details
  • sendAccess() returns 'unknown' for an absent module, a rejection, or a transient code; only granted, prompt, or a member of PERMANENT counts as a verdict
  • capability_disabled and capability_removed moved out of PERMANENT and are treated as transient, which leaves Send live
  • sanitize() drops duplicate ids, normalises negative width/height to a top-left corner, clamps text size to 8..64, and nulls arrow bindings that do not point at a connectable element
  • ping counts are bounded to 0..1e9 and ping.at is sliced to 64 chars
  • the merge-state helper rejects addition ids over 40 characters, rejects fromId/toId that do not name a box, sticky or text node, clamps size, and refines the rename guard so a board with an unreadable send marker gets its own message
  • gate: whiteboard skill isEnabled g5v = Wms() && Ige(), and Wms returns !1
Evidence

const PERMANENT = ['denied', 'unavailable', 'consent_required', 'not_writer', 'not_granted', 'not_declared'];

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Related

Other releases about the same thing. Found by shared names or similar wording; neither means one caused the other.

See this entry in the whole of v2.1.221 →