Skip to content

Expose complete XChat failure codes - #6

Merged
santiagomed merged 6 commits into
mainfrom
expose-complete-failure-codes
Jul 23, 2026
Merged

santiagomed merged 6 commits into
mainfrom
expose-complete-failure-codes

Conversation

@m-rosinsky

Copy link
Copy Markdown
Contributor

Summary

  • sync the public XChat Thrift schema with failure codes 10–18
  • decode all known failure codes, including the previously unmapped code 9
  • expose rate-limit tier metadata for RATE_LIMIT_UPSELL failures
  • document the expanded Rust/JS event surface

Testing

  • make ci

Notes

  • committed Go static libraries were not regenerated; the prebuilt workflow should rebuild them from this core change.

Co-authored-by: Cursor <cursoragent@cursor.com>
@github-actions

github-actions Bot commented Jul 23, 2026 •

Copy link
Copy Markdown
Contributor


Thank you for your submission, we really appreciate it. Like many open-source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution. You can sign the CLA by just posting a Pull Request Comment same as the below format.


I have read the CLA Document and I hereby sign the CLA


1 out of 2 committers have signed the CLA.
✅ (santiagomed)[https://github.com/santiagomed]
❌ @m-rosinsky
You can retrigger this bot by commenting recheck in this Pull Request. Posted by the CLA Assistant Lite bot.

@CLAassistant

CLAassistant commented Jul 23, 2026 •

Copy link
Copy Markdown

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.
2 out of 3 committers have signed the CLA.

✅ m-rosinsky
✅ santiagomed
❌ github-actions[bot]
You have signed the CLA already but the status is still pending? Let us recheck it.

@m-rosinsky
m-rosinsky requested a review from santiagomed July 23, 2026 16:12
github-actions Bot and others added 4 commits July 23, 2026 16:12
Add an event_failure_b64 vector to tests/fixtures/sdk_vectors.json (an
unsigned RATE_LIMIT_UPSELL failure carrying the PREMIUM tier, fully
deterministic since failure events carry no crypto) and pin the decoded
failure type, rate-limit tier, and JSON casing in every binding suite:
Rust core, JS/WASM, Python, Go, JVM, and .NET. The generator gains a
frame_failure_event helper in the feature-gated internals module, which
does not affect the shipped bindings or the committed Go static libs.

Also reword the FailureEvent.rate_limit_tier doc comment to describe the
tier as backend-populated rather than an SDK-enforced invariant, and give
the rateLimitUpsell discriminator value in both JS and PascalCase forms
in docs/API.md, matching the section's dual-casing convention.
@santiagomed
santiagomed merged commit 5894e4c into main Jul 23, 2026
16 of 18 checks passed
@santiagomed
santiagomed deleted the expose-complete-failure-codes branch July 23, 2026 19:36
@github-actions github-actions Bot locked and limited conversation to collaborators Jul 23, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants