Skip to content

feat: conference call support + alternate login fallback (v2.2.0) - #103

Merged
ekkx merged 3 commits into
masterfrom
feat/conference-call-and-login-fallback
Jul 4, 2026
Merged

feat: conference call support + alternate login fallback (v2.2.0)#103
ekkx merged 3 commits into
masterfrom
feat/conference-call-and-login-fallback

Conversation

@ekkx

@ekkx ekkx commented Jul 4, 2026

Copy link
Copy Markdown
Owner

Summary

Two additive, non-breaking features across all four languages (Go / TypeScript / Python / Rust), released as v2.2.0.

1. Conference call support

  • New ConferenceCall / RealmConferenceCall models.
  • New call_type (vdo / voice) and joinable_by enums.
  • Related endpoints wired into the calls, chat_rooms and posts services.

2. Alternate login fallback (PORTING.md §6.2)

When an email login is rejected with a plain unauthorized (error code 401), the client retries once against the alternate login endpoint (POST /v2/users/login_with_email) using a separate web API key. Some accounts are only accepted there.

Contract (identical across languages):

  • Fires only on Unauthorized — never on Required2FA or other 401s.
  • Skipped when the caller pinned a specific apiKey, or set the web key to "" (off switch).
  • Issued through the unwrapped HTTP client (no Bearer, no auto-refresh).
  • A 2xx response that fails to decode is surfaced with its raw body, not the primary 401.
  • On success, tokens are activated and the session persisted as usual.

Tests

  • Fallback parity scenarios added to each language's auth suite (fires on 401 / no fire on 2FA / no fire when key pinned / disabled / 2xx-decode-fail surfaced).
  • Full suites green: Go, TypeScript, Python, Rust.

Version

  • TypeScript / Python / Rust manifests bumped to 2.2.0; CHANGELOG updated.

ekkx added 3 commits July 4, 2026 14:05
Add ConferenceCall and RealmConferenceCall models plus call_type and
joinable_by enums, and wire them into the calls, chat_rooms and posts
services across Go, TypeScript, Python and Rust.
When an email login is rejected with a plain unauthorized (error code
401), retry once against the alternate login endpoint (POST
/v2/users/login_with_email) using a separate web API key. Some accounts
are only accepted there.

The fallback fires only on Unauthorized (never on Required2FA or other
401s), is skipped when the caller pinned a specific api_key or set the
web key to empty, and is issued through the unwrapped HTTP client (no
Bearer, no auto-refresh). A 2xx response that fails to decode is
surfaced with its raw body rather than the primary 401. Implemented and
tested across Go, TypeScript, Python and Rust; contract in PORTING.md
section 6.2.
@ekkx
ekkx merged commit 7fee043 into master Jul 4, 2026
14 checks passed
@ekkx
ekkx deleted the feat/conference-call-and-login-fallback branch July 4, 2026 05:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant