What's Changed
- Fix security audit findings: 3 critical, 7 high by @jackjackbits in #1345
- CI: use Xcode-bundled Swift instead of a standalone toolchain by @jackjackbits in #1353
- Add SwiftLint as an advisory CI-only lint job (no Xcode plugin dependency) by @ecgang in #1361
- Burn down SwiftLint advisory violations from 109 to 4 by @jackjackbits in #1362
- Fix slash-command suggestions that insert commands the processor rejects by @hotpixelgroup in #1354
- Route command output to the conversation where the command was typed by @jackjackbits in #1363
- Make private-message delivery status legible and accessible by @hotpixelgroup in #1356
- Give private DMs an unmistakable visual signature by @hotpixelgroup in #1357
- Require confirmation before deleting a received image; label media controls by @hotpixelgroup in #1358
- Improve message-list interactions: empty-state guidance, jump-to-latest, per-message actions by @hotpixelgroup in #1359
- Make peer lists accessible and actionable; block mesh peers by stable identity by @hotpixelgroup in #1360
- Deflake app test suite: hermetic caches, robust async waits, perf-gate retry by @jackjackbits in #1365
- ux-fixes: lock alignment, caption band, wrapping, tap targets, VoiceOver, theme sweep by @jackjackbits in #1366
- Fix favorites end-to-end: peer-list duplicates, Nostr sync, /fav key corruption (v1.5.4) by @jackjackbits in #1367
- Courier: deposit in parallel when the only route is a send queue by @jackjackbits in #1368
New Contributors
- @ecgang made their first contribution in #1361
- @hotpixelgroup made their first contribution in #1354
Full Changelog: v1.5.3...v1.5.4