feat: add bounded live room verification read #156

Merged
jlxq0 merged 2 commits from feat/verification-read-20261029 into main 2026-10-28 23:11:48 +00:00
Owner

Recipient checks currently available through room_members/get_room_state can return SDK-cached state. Add read_room_verification_state: exact small-room ID, current same-principal homeserver joined-members/encryption/joined-members reads, stable membership, bounded metadata only. The caller must check exact recipients and encryption; this is an observation, not a lock against later room changes.

The new read uses existing authentication, read rate limit, audit and auth-expiry handling. It disables redirects, limits streamed bodies before buffering, enforces request/operation deadlines and refuses incomplete/changed/oversized membership. No OAuth scope or write capability is added, and the channel tool surface stays unchanged.

Validation: locked Rust1.96 full suite383unit+6integration tests; Rust1.98 strict Clippy/fmt; seven new transport tests include a never-terminated oversized chunked response and redirect/token refusal. Independent exact-head review and CI required before merge. Source prerequisite only: no release/tag/deploy or proposal delivery. Depends on reviewed dependency PR155, now merged.

Recipient checks currently available through room_members/get_room_state can return SDK-cached state. Add read_room_verification_state: exact small-room ID, current same-principal homeserver joined-members/encryption/joined-members reads, stable membership, bounded metadata only. The caller must check exact recipients and encryption; this is an observation, not a lock against later room changes. The new read uses existing authentication, read rate limit, audit and auth-expiry handling. It disables redirects, limits streamed bodies before buffering, enforces request/operation deadlines and refuses incomplete/changed/oversized membership. No OAuth scope or write capability is added, and the channel tool surface stays unchanged. Validation: locked Rust1.96 full suite383unit+6integration tests; Rust1.98 strict Clippy/fmt; seven new transport tests include a never-terminated oversized chunked response and redirect/token refusal. Independent exact-head review and CI required before merge. Source prerequisite only: no release/tag/deploy or proposal delivery. Depends on reviewed dependency PR155, now merged.
feat: read bounded current room verification state
Some checks failed
CI / cargo (pull_request) Failing after 2m55s
CI / docker (pull_request) Has been skipped
d0b287ff23
fix: bound verification before SDK acquisition with request identity
All checks were successful
CI / cargo (pull_request) Successful in 2m45s
CI / docker (pull_request) Has been skipped
0f7199d072
jlxq0 merged commit 4fe0fb9ed4 into main 2026-10-28 23:11:48 +00:00
Sign in to join this conversation.
No description provided.