monal-rebuild/test
pijukka 3e3540be5f fix(chat): quote an attachment by name, not by its URL
The operator swiped a voice note to quote it and got the raw
aesgcm://…#<key> URL in the quote. db.ts has labelled attachments for the
chat-list preview since package 9, with the comment that the preview never
shows that URL because it carries the file key — the quote path never did
the same.

quotedText now names the attachment, and displayQuote names an aesgcm://
line at render time too, for history written before this and for whatever
a remote client sends. Only aesgcm:// lines are replaced: a plain https
link in a quote may simply be a link somebody quoted.

This was never a leak over the wire. In an encrypted chat the quote rides
in the same envelope as the original, and send() refuses an encrypted
quote into a chat that is not capable. What it was: the file key copied
into a second message's body for nothing, and a wall of hex where a human
expects "Voice message".

Checks: 95 tests, two of them new and specific to this; zero svelte-check
errors; build; SWIPE-QUOTES-ATTACHMENT-BY-NAME uploads a real encrypted
image, swipes it and asserts the preview, the sent quote and the outgoing
stanza; ux-swipe-runner.cjs 12/12 and ux-reactions-runner.cjs 14/14 under
both engines, zero page errors.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-10-09 02:46:22 +02:00
..
aesgcm.test.ts feat(chat): send and read encrypted attachments (XEP-0454) 2026-10-08 13:30:44 +02:00
chat-state.test.ts fix(chat): persist drafts and visible reading anchors 2026-10-07 19:33:48 +02:00
device-lists.test.ts fix(omemo): refresh current peer and own device lists 2026-10-07 18:23:08 +02:00
displayed.test.ts fix(chat): separate attention from cumulative displayed reports 2026-10-07 18:29:30 +02:00
jingle.test.ts Calls: video — video-call button, camera on/off and switch, self-view 2026-09-29 14:13:38 +02:00
media.test.ts feat(chat): send and read encrypted attachments (XEP-0454) 2026-10-08 13:30:44 +02:00
muc.test.ts fix(session): handle connections closing during presence and joins 2026-10-07 21:14:34 +02:00
omemo-wire.test.ts crypto: OMEMO Phase 3 send-path encryption 2026-10-04 19:36:55 +02:00
omemo.test.ts feat(chat): add quoted replies with legacy OMEMO text fallback 2026-10-08 00:22:53 +02:00
parse.test.ts Milestone 4: rooms 2026-09-28 17:59:18 +02:00
push.test.ts Web push: subscribe via Push 2.0, notifications and badge in sw.js 2026-09-28 23:47:03 +02:00
reactions.test.ts feat(chat): emoji reactions (XEP-0444) 2026-10-08 19:58:03 +02:00
replies.test.ts fix(chat): quote an attachment by name, not by its URL 2026-10-09 02:46:22 +02:00
shell.test.ts fix(pwa): return page responses before offline-cache maintenance 2026-10-07 23:17:33 +02:00
upload.test.ts feat(chat): send and read encrypted attachments (XEP-0454) 2026-10-08 13:30:44 +02:00