Without an initial flush(), the JVM HttpServer buffers all
output until the first flush() in the 15-second keep-alive loop.
Clients with shorter timeouts (e.g. 10 s) abort before receiving
any data.
Add a flush() call directly after creating ServerSentEventSender,
before the wait loop, so the HTTP 200 response and headers reach the
client immediately upon connection.
Adds regression test SseInitialFlushTest that verifies at least one
byte arrives within 2 seconds of connecting to GET /api/v1/events.
When filling or updating a V2 group, profile keys were copied from
DecryptedGroup.members into the local profile store but not from
requestingMembers. Admins who never had a prior session with a user in
the join queue then lacked profile keys and could not decrypt profiles
(e.g. for listContacts).
Also process DecryptedRequestingMember entries the same way as full
members, using DecryptedMember / DecryptedRequestingMember types so the
lib module does not require a direct protobuf dependency.
Made-with: Cursor
* Add distinct JSON-RPC error code for captcha rejection
Previously submitRateLimitChallenge mapped CaptchaRejectedException to
the generic USER_ERROR code (-1), making it indistinguishable from any
other user error (bad params, unknown command, etc.).
Introduce CaptchaRejectedErrorException and wire it to a new error code
(-6 / CAPTCHA_REJECTED_ERROR) throughout the JSON-RPC layer. Callers can
now reliably distinguish a rejected captcha token (user must obtain a
fresh token) from a network failure (transient, worth retrying) or a
generic argument error.
The CLI exit code for this path becomes 6, consistent with the existing
per-error-type exit code convention.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* Add exit code 6 to man page
---------
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
* Add OpenAPIDocs
* Remove the json prefix from the names
* Format file
* Rename models to schemas
* Add required = true to all the required attributes
* Add missing required = true schemas
* Deprecated fields are not required
* switch to micronout json generation
* Fix generator for JsonUnwrapped files
* Fix layout of manual schemas
* Pretty print the json files
* Remove @JsonProperty(required = true)
* Make references local
* Updated the readme
* Removed uneeded import
* Remove extra empty lines
* Clean readme
* Add docs depedency only when needed
* Revert uneeded changes
* Revert more changes
* Better formatting
* Simplified name
* fix: remove jsonunwrapped workaround by upgrading to micronaut-json-schema version 2.0.0-M6
* Simplified jsonSchemas task definition
* Updated readme with the new schemas path
* typo fixing
* Remove empty space from merge