Repository navigation
Tiny sends name the sender at once and settle faster - #243
Conversation
The pending row read "You" with no photo because a Tiny account's own id was stored as the email; it is now the user id, and the session's display name seeds our person until the people list names us. The row no longer waits for a full /v1/members request to settle, plain sends leave the shared commands thread for the account's send thread, HTTP requests share one pooled agent (a retry on a dropped kept connection for reads and for client_id-idempotent message posts), and an encrypted send skips the second sync when the first ended settled on the same device lock. Sends log each stage with elapsed_ms, and a warn over a second with the breakdown. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
Reviewed the diff and the head sources (41a1761). No protocol or wire change, no new 1.
Smallest fix: 2. The proof server in Smallest fix: one unit test with a listener that answers once on keep-alive and then closes. The second request on the shared agent must succeed for a GET and for a POST with a Not verified from the diff: whether a real tinyserver (including older deployed builds) answers a repeated |
What changed and why
Sending in a Tiny conversation took 1 to 10 seconds, and the pending row showed "You" with a plain "Y" avatar until it settled. A Tiny account's own id was stored as the email, so the pending row could not find the person's cached rows; it is now the user id (the session's display name seeds our person until the people list names us). The row also no longer waits for a full
/v1/membersrequest after the post, plain sends no longer queue on the shared commands thread, requests reuse pooled connections instead of a new TCP and TLS handshake each, and an encrypted send skips a second sync when the first ended settled on the same lock. Sends now log every stage withelapsed_ms, and awarnwith the breakdown when one passes a second.Type
Platforms
Proof
Scenario: e2e/scenarios/tiny-send-speed
It is a daemon proof (real chatd and IPC against an invented loopback server whose member list takes 3 s), not a native window run or a measurement against a real server. It fails on
main(no such prove) and, with either half of the fix removed, fails on the branch too (own id is the email; the row waits on the member list).Lab run:
Compatibility
No protocol change. The server already answers a repeated
client_idwith the same message, which is what makes retrying a message post after a dropped kept connection safe. Accounts stored with the email as their own id are corrected on the next connect.Risk and rollback
Connection reuse is the main risk (a kept connection the server closed). Reads retry once; only message posts with a
client_idretry, nothing else is sent twice. The encrypted path still syncs before the first encrypt unless the sync just ended settled on the same device lock, and still persists the ratchet before the post. Revert the PR to undo.Release note
Sending a message in a Tiny server shows your name and photo straight away and finishes sooner.
🤖 Generated with Claude Code