Commit Graph

2 Commits

Author SHA1 Message Date
filip
4d15799b5e GUI/CLI fixes: crash paths, privacy-lock bypass, threading, logout leaks
- _on_image_download_failed called self.statusBar() which does not
  exist on a QWidget -> AttributeError crash; use status_bar label.
- Ctrl+Shift+P no longer disables the privacy overlay while the session
  is password-locked (lock bypass).
- Registration code confirmation no longer touches Qt widgets from the
  asyncio thread; new AsyncBridge.confirm_result signal carries the
  result back to the Qt thread.
- MainWindow.closeEvent now disconnects all bridge signal connections
  (tracked in _bridge_connections), removes the theme listener and
  stops the periodic refresh timer — every logout/login cycle leaked a
  window that kept handling notifications (duplicate mark_read, tray
  toasts).
- AsyncBridge logout rewires _key_change_cb onto the fresh ChatClient
  (key-change MITM warning was dead after logout) and clears
  _pending_send_queue so queued messages cannot be sent under a
  different identity.
- CLI: fix await precedence crash in the react-to-message prompt.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-12 16:08:31 +02:00
Filip
2e7b72307d Initial commit — encrypted chat server + Python clients (v0.8.5)
E2E encrypted chat (X3DH + Double Ratchet, Signal Protocol).
Server: asyncio TCP + TLS, MySQL. Clients: PyQt6 GUI + CLI.
Secrets (.env, TLS keys, Cloudflare token), runtime data and
mobile clients (separate repos) are gitignored.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-11 18:22:39 -04:00