Shipped· Included in a published release
Fix orphan guild unread indicators and API log export
- Type
- Bug
- Priority
- Medium
- Area
- 📞 Communication
- Votes
- 👍 0
What happened?
Fix the guild rail showing a persistent unread indicator when no presentable guild channel justifies it, especially after opening a guild and discovering thread/read-state metadata. Guild aggregate unread must be derived only from current top-level channel entries that can be represented and read; thread/unknown read-state records may retain their own unread and mention state without creating an orphan white rail pip. Also make Diagnostics > Export API Logs reliably present an attached save panel from the Settings window and write the sanitized JSONL export. Acceptance: (1) orphan/thread-only read state cannot create a guild or folder unread pip while real top-level unread still does; (2) live Swiftcord comparison matches the official client’s no-unread aggregate when no channel is unread; (3) Export API Logs presents a save sheet and the exporter remains cancellation-safe; (4) focused tests, app suite, package build, and strict signature verification pass.
Acceptance criteria
- [x] Guild and folder unread aggregates are derived only from current top-level guild channels; orphan or thread-only read-state entries cannot create a white rail pip, while genuine top-level unread channels still can.
- [x] The reproduced Swiftcord state matches the current official client: when no presentable channel is unread, Swiftcord has no aggregate unread indicator after opening the server.
- [x] Diagnostics > Export API Logs presents an attached save sheet from the Settings window, remains cancellation-safe, and writes the existing sanitized JSONL payload after confirmation.
- [x] Focused unread/export tests, the app suite, packaged build, and strict deep code-signature verification pass.
Activity
- Imported from the previous tracker