Repository navigation
Conversation
…ryptThumbnail refactor Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add automatic detection of Letter Sealing (E2EE) availability per peer
and per group. When E2EE is unavailable (peer has LS off, group has no
shared key, or E2EE manager not initialized), messages are sent as plain
text with media uploaded via the r/talk/m/{msgId} endpoint after sending.
Key changes:
- Send: detect plainText mode via peer key probe (1:1) or group E2EE
cache; branch each media type into plain vs E2EE upload paths; gate
encryption phase; post-send upload for plain media via UploadOBSPlain
- Receive: detect plain media (OID empty), download from SID "m" with
token refresh retry; add 202 retry loop in DownloadOBSWithSID for
video transcoding delays
- Add pkg/line/errors.go with IsNoUsableE2EEPublicKey/GroupKey helpers
- Add peer key noE2EE caching with TTL, group noE2EE cache with
invalidation on receiving encrypted messages
- Reject media captions and add video/quicktime MIME support
- Use obsTypeFromSID helper for correct OBS type parameter
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Removes talkExceptionData, isNoUsableE2EEGroupKeyTalkException, parseTalkExceptionData, and parseE2EEGroupKeyError — none are called. Fixes staticcheck U1000 lint errors. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
clins1994
force-pushed
the
pr/lsoff-login
branch
from
March 29, 2026 18:02
4b35fab to
952c65a
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Enables LSOFF accounts to log into the bridge. The login flow detects code 89 "not supported" and falls back to a non-E2EE login path.
How it works
loginV2with type 2 + E2EE secret fails with code 89loginV2with type 0, no secret, new RSA key → returns verifier + PINloginV2WithVerifierfinalizes login (no E2EE key chain)Changes
Login()— LSOFF retry with fresh RSA keyWaitForLogin()— routes towaitForLoginJQ(LSOFF) orwaitForLoginLF1(LSON)NoE2EEflag plumbed throughLoginResult→LineEmailLogin→WaitForLoginLoginV2WithVerifierdirectly if no E2EE data and no direct tokenPR 3 of 4
Based on PR #68 (plain text messaging). Part of the series split from #65:
🤖 Generated with Claude Code