SIGN IN SIGN UP

feat(signature): add Grok as a target-only provider family

xAI had no SignatureProvider value, so a Grok target could not be named
in a compatibility decision and fell through to the unknown-target
branch, which reports no compatible replacement rather than the correct
policy.

SignatureProviderGrok is deliberately target-only and
DetectSignatureProvider never returns it. xAI ciphertext carries no
envelope, no version byte and no fixed length, and is statistically
indistinguishable from uniform random bytes, so any positive detection
rule would also claim every other opaque high-entropy payload. Callers
establish an xAI target from the model or route, then use
InspectGrokEncryptedContent as a replay-safety shape check. A test
replays the native corpus to pin that detection keeps returning
unknown.

A Grok target drops the whole block when the signature does not match,
in contrast to Kimi: xAI decrypts encrypted_content on replay and
rejects foreign or mutated blobs with 400, so the block cannot survive
by shedding just its signature.

Also correct the recorded floor for MinGrokEncryptedContentDecodedLen.
The comment claimed the shortest observed native payload was exactly 50
bytes, which read like a protocol minimum; a later capture from
grok-4.5 and grok-composer-2.5-fast reached 43 and 48 bytes. The
observed minimum keeps sliding, which is the argument for keeping the
constant well below it and letting the entropy check filter. The value
is unchanged.
S
sususu committed
4abb0e66026ce905025465bf0e5d32ea266abb0d
Parent: 8558f44
Committed by sususu98 <33882693+sususu98@users.noreply.github.com> on 8/8/2026, 1:31:07 AM