feat: explain "Failed to send" when the homeserver wants its terms accepted
CI / Build & Quality Checks (push) Successful in 1m45s
CI / Docker image build & smoke test (push) Skipped
CI / Secret scan (gitleaks) (push) Successful in 14s
CI / Trigger Desktop Build (push) Successful in 14s
CI / Playwright smoke (e2e) (push) Successful in 6m58s
CI / Build & Quality Checks (push) Successful in 1m45s
CI / Docker image build & smoke test (push) Skipped
CI / Secret scan (gitleaks) (push) Successful in 14s
CI / Trigger Desktop Build (push) Successful in 14s
CI / Playwright smoke (e2e) (push) Successful in 6m58s
A homeserver with a consent requirement (Synapse user_consent) rejects sends with 403 M_CONSENT_NOT_GIVEN until the user accepts its current terms. The message just showed "Failed to send" with no reason. Listen for the SDK's HttpApiEvent.NoConsent and show a dialog naming the user's own homeserver (the client works with any server, so no Lotus-specific wording), with "Review and accept" opening the server's consent_uri (http(s) only; anything else is dropped) and "I've accepted — retry sending" resending every event that failed for this reason. "Later" snoozes it for 10 s so background retries don't re-open it immediately. Verified in Chromium against a local Synapse with the send endpoint answering M_CONSENT_NOT_GIVEN: dialog shows, link opens, retry delivers the message. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PPmy3tPq869XDW4njjVaKA
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
103c6f4624
commit
c96c47dd0d
@@ -71,6 +71,7 @@ import { useTauriUpdateProgress, useTauriUpdater } from '../../hooks/useTauriUpd
|
||||
import { isNetworkUpdateError } from '../../utils/updateErrors';
|
||||
import { invokeTauri, isTauri as isTauriApp, useTauriEvent } from '../../hooks/useTauri';
|
||||
import { CloseBehaviorPrompt } from '../../components/CloseBehaviorPrompt';
|
||||
import { ConsentRequiredPrompt } from '../../components/ConsentRequiredPrompt';
|
||||
import { TauriDesktopFeatures } from '../../components/TauriDesktopFeatures';
|
||||
import { KeyboardShortcutsDialog, useKeyboardShortcutsTrigger } from '../../features/shortcuts';
|
||||
import { useRoomsListener } from '../../hooks/useRoomsListener';
|
||||
@@ -1090,6 +1091,7 @@ export function ClientNonUIFeatures({ children }: ClientNonUIFeaturesProps) {
|
||||
<TauriUpdateFeature />
|
||||
<TauriDesktopFeatures />
|
||||
<CloseBehaviorPrompt />
|
||||
<ConsentRequiredPrompt />
|
||||
<LotusDenoiseFeature />
|
||||
<DeepLinkNavigator />
|
||||
<KeyboardShortcutsFeature />
|
||||
|
||||
Reference in New Issue
Block a user