Spec v0.3 and mock receiver: remove HTTP Basic and 429, require ts on escalation events - #1
Merged
Merged
Conversation
… escalation events HTTP Basic was cut from the endpoint scope on 28 Aug 2026 and never implemented; the forwarder has only ever sent X-API-Key. No ciopulse endpoint returns 429 either. Both are removed from the documented contract, keeping the advice to retry any 429 with backoff. Voice is documented as requiring 0.2 or later, since the forwarder sends it on 0.3. The mock receiver no longer accepts HTTP Basic, so it can no longer certify a request the real endpoint would reject, and escalation_to_human events now need an ISO ts, which the actor fallback depends on. Documentation corrections: the wire contract and its version are unchanged. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Documentation corrections to spec v0.3 and the reference mock receiver. The wire contract and its version are unchanged; the forwarder's sending behaviour is untouched.
Spec (
docs/send-a-copy-spec-v0.3.md)X-API-Keyonly. HTTP Basic was cut from the endpoint scope on 28 Aug 2026 and never implemented; the forwarder has only ever sentX-API-Key.429is no longer a documented response, because no ciopulse endpoint returns it. Senders are still told to treat any429as retryable with backoff.contract_version"0.2" or later. The forwarder sends voice on 0.3, which the old wording made look non-conformant.Mock receiver (
tools/mock-receiver/mock_ingest.py)_authed(), the docstring and the 401 hint, so the reference can no longer certify a request the real endpoint rejects.escalation_to_humannow requires an ISOts, with a field-level error naming the actor fallback that depends on it. Any other event'stsmust be ISO when present; other event types still need onlytype.STATE: the real endpoint keys idempotency on (tenant, session_id); this single-key mock cannot model that.Also
429response, matching the spec.[Unreleased]→ Fixed.ts, or with a non-ISOts, gets a field-level 400; other event types still pass with onlytype. 54 tests pass locally.Note: the mock is stricter by design. An
escalation_to_humanevent withoutts, accepted before, now gets a 400. The forwarder has always sentts.🤖 Generated with Claude Code