Commit Graph

77 Commits

Author SHA1 Message Date
Bernd Steckmeister fb7669a65b docs: Uta-Random-Logout-Fund in PROGRESS/ROADMAP protokollieren
Dokumentiert Root-Cause-Analyse und Fix aus 63e4919/9dc83f7, markiert
UNGETESTET (Pi) mit Pflicht-Praxistest am PC vor endgültigem Haken.
2026-07-03 09:52:22 +02:00
Bernd Steckmeister 9dc83f7bcb fix: Refresh-Token beim Login anfordern (Uta-Random-Logout, M1)
Ursache gefunden: Ohne Refresh-Token eskaliert das matrix-SDK jeden
Soft-Logout (z. B. abgelaufenes Access-Token, M_UNKNOWN_TOKEN mit
soft_logout=true) automatisch zu einem echten, destruktiven Logout —
_handleSoftLogout() versucht refreshAccessToken(), das ohne
gespeicherten Refresh-Token sofort mit "No refresh token available"
scheitert, und ruft danach client.logout() auf (client.dart:2374-2384
im matrix-Paket, Version 6.2.0).

Mit refreshToken: true beim Login bekommt der Client vom Server einen
Refresh-Token und kann einen Soft-Logout künftig durch stillen
Token-Refresh überstehen, statt die Sitzung zu zerstören. Falls der
Server keine Refresh-Tokens unterstützt, bleibt das Verhalten
unverändert (response.refreshToken ist dann null).

Wichtig: gilt nur für neue Logins. Bereits eingeloggte Geräte (z. B.
Uta) profitieren erst nach einmaligem Neu-Login. Zur Diagnose siehe
den mit 63e4919 eingeführten AuthLog.

UNGETESTET (Pi, kein GUI/Login hier möglich) – nächster PC-Lauf muss
den vollen Kreislauf prüfen: Login → Nachrichten → Logout → erneuter
Login → alte verschlüsselte Nachrichten noch lesbar?
2026-07-03 09:51:40 +02:00
Bernd Steckmeister 63e491952d feat: persistentes Auth-Log für Logout-Diagnose (M1)
Neuer AuthLog schreibt Login-Status-Wechsel und SDK-Warnungen/-Fehler
in eine Datei im App-Support-Verzeichnis, die einen Neustart übersteht.
Zusätzlich werden alle drei bewusst ausgelösten Logout-Buttons geloggt,
damit sich künftig unterscheiden lässt: Nutzer-Logout vs. vom SDK
automatisch ausgelöster Logout (Soft-Logout/M_UNKNOWN_TOKEN).

Reiner Logging-Zusatz, keine Verhaltensänderung – erster Schritt laut
ROADMAP M1 ("Erst Logging an allen Logout-Pfaden einbauen").
2026-07-03 09:50:55 +02:00
Bernd Steckmeister 13512064a3 docs: M0 in PROGRESS/ROADMAP abschließen
Alle M0-Punkte abgehakt (Commits, flutter analyze, call/calls-Leiche,
README). Nächster Schritt laut ROADMAP: M1 Uta-Logout-Bug.
2026-07-03 09:46:27 +02:00
Bernd Steckmeister 74d38fd267 docs: README durch echte Projektbeschreibung ersetzen
Ersetzt das Flutter-Boilerplate-README durch Funktionsübersicht,
Build-Anleitung und Projektstruktur.
2026-07-03 09:45:49 +02:00
Bernd Steckmeister 401bd6a7f8 style: weitere flutter-analyze Hinweise beheben
- document_viewer: Matrix4.translate/scale durch translateByDouble/
  scaleByDouble ersetzt (PDF-Zoom-Transformation, gleiches Verhalten)
- rooms_panel: onReorder durch onReorderItem ersetzt (Index-Korrektur
  jetzt intern erledigt), implementation_imports-Hinweis kommentiert
  (SpaceChild wird vom matrix-Paket nicht öffentlich exportiert)
- voip_manager: getSources()-Override kommentiert (erzwungen durch
  abstrakte MediaDevices-Klasse, die die Methode selbst deprecated hat)
- settings_modal: BuildContext-Nutzung nach await mit context.mounted
  abgesichert (Geräte umbenennen, Passwort-Abfrage bei Massenlogout)

Verbleibend: chat_provider.dart onUpdate (Timeline-Redecrypt-Pfad,
bewusst nicht angefasst ohne dedizierten E2EE-Test, siehe PROGRESS.md).
2026-07-03 09:45:05 +02:00
Bernd Steckmeister 057ac1e4ea style: verbleibende flutter-analyze Deprecations beheben
withOpacity/activeColor/cacheExtent/PublicRoomsChunk durch die neuen
Flutter-3.44-Äquivalente ersetzt.
2026-07-03 09:40:10 +02:00
Bernd Steckmeister 90593d2f81 docs: Regression in ROADMAP: Push-Benachrichtigungen werden nicht mehr entschlüsselt
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CPrAGBxBT6GfPXzeWQ4AXb
2026-07-03 06:33:37 +02:00
Bernd Steckmeister d2fcc59f7a feat: Matrix-Statusberichte nach jeder Autopilot-Session
Nach jeder Session mit neuen Commits postet der Autopilot Commits + nächsten
Schritt in den Raum '🔺 Pyramid Autopilot' (Token vom Gatus-Bot, nur auf dem Pi).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CPrAGBxBT6GfPXzeWQ4AXb
2026-07-03 06:32:54 +02:00
Bernd Steckmeister 2395db50be style: weitere flutter-analyze Infos beheben
Ungenutzte Imports (dart:typed_data, flutter/services.dart), unnötige
String-Interpolations-Klammern, führender Unterstrich bei lokaler Funktion,
fehlende Blockklammern bei if-Statements und SCREAMING_CASE-Konstanten in
clipboard_image.dart auf lowerCamelCase umbenannt. Rein mechanisch, keine
Verhaltensänderung.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-03 06:32:50 +02:00
Bernd Steckmeister 99f10c5210 style: doppelte Unterstriche in Closure-Parametern bereinigen
Dart 3 erlaubt mehrere Wildcard-Parameter mit demselben Namen "_" in
einem Scope, daher sind __ / ___ für ungenutzte Callback-Parameter
(pageBuilder, errorBuilder etc.) unnötig. Rein mechanische Änderung,
keine Verhaltensänderung.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-03 06:30:40 +02:00
Bernd Steckmeister 133a8acbc8 refactor: print() durch debugPrint() ersetzen (avoid_print Lint)
65 flutter-analyze-Meldungen behoben, indem alle print()-Aufrufe in Core-
Dateien (Push, LiveKit, Matrix-Client, VoIP, Screen-Share) durch das
Flutter-eigene debugPrint() ersetzt wurden. Gleiche Funktion (Logging in
Debug-Sessions), aber zeilenlängen-sicher und ohne Lint-Warnung.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-03 06:29:49 +02:00
Bernd Steckmeister 9dc11757e2 fix: flutter analyze Warnings beheben (totes/unerreichbares Code)
Entfernt tatsächlich toten Code, den flutter analyze als Warning markiert
hatte: unbenutzte Felder/Parameter (_saved, _hovered wird jetzt für Hover-
Feedback genutzt, destructive-Flag ohne Aufrufer, size-Parameter ohne
Override), unerreichbaren dead_code (Room.topic/Space.topic sind laut SDK
nie null, client.database ist nie null) sowie Legacy-Funktionen aus der
alten Push-Architektur (_showNotif/_fetchTitle, ersetzt durch natives
PushService.kt) und einen leeren Noise-Suppression-Stub ohne Aufrufer.
Keine funktionale Verhaltensänderung an aktiven Code-Pfaden.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-03 06:26:31 +02:00
Bernd Steckmeister 594e6718be chore: autopilot.sh ausführbar machen
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-03 06:16:26 +02:00
Bernd Steckmeister f1fde9b45a feat: Pause-Funktion im Autopilot (PAUSE-Datei)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CPrAGBxBT6GfPXzeWQ4AXb
2026-07-03 06:15:29 +02:00
Bernd Steckmeister 336c82fb76 chore: eingebettetes worktree-Repo aus dem Index entfernen
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CPrAGBxBT6GfPXzeWQ4AXb
2026-07-03 05:47:44 +02:00
Bernd Steckmeister 25ed765a03 wip: Sicherungs-Commit aller Änderungen seit April + Arbeitsstruktur (CLAUDE.md, ROADMAP.md, PROGRESS.md, Autopilot)
6 Wochen uncommittete Arbeit (Voice-Channels, LiveKit-Manager, Settings-Modal u.v.m.)
als ein WIP-Commit gesichert, damit nichts verloren geht und der Pi den aktuellen
Stand klonen kann. Thematische Aufarbeitung: siehe ROADMAP M0.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CPrAGBxBT6GfPXzeWQ4AXb
2026-07-03 05:47:18 +02:00
Bernd Steckmeister d706ace35f chore: add automated release script for Windows + Android
scripts/release.ps1 reads version from pubspec.yaml, builds both platforms,
creates a Gitea release with auto-generated changelog, and uploads artifacts.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
v0.1.0 v0.1.1 v0.1.2 v0.1.3 v0.1.5 v0.1.6 v0.1.7 v0.1.8 v0.1.9 v0.1.11 v0.1.12 v0.1.13 v0.1.15 v0.1.16 v0.1.18 v0.1.19 v0.1.20 v0.1.21 v0.1.22 v0.1.23 v0.1.24 v0.1.25 v0.1.27 v0.1.28 v0.1.29 v0.1.30 v0.1.31 v0.1.32 v0.1.33 v0.1.34 v0.1.35
2026-04-28 21:54:27 +02:00
Bernd Steckmeister 238fc3f670 fix: replace open_file_plus with native Kotlin MethodChannel for APK install
open_file_plus 3.4.1 uses deprecated PluginRegistry.Registrar API incompatible
with current Flutter. Replaced with a MethodChannel in MainActivity.kt that calls
FileProvider.getUriForFile() and launches the system package installer directly.

Also rework chat_input: 4px border radius on desktop, vPad 18px, 56px send button.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-28 15:44:10 +02:00
Bernd Steckmeister cdf48c4d45 feat: in-app update downloader with progress, Gitea auto-push hook
- update_checker: Gitea at git.steggi-matrix.work, Windows + Android support, asset URL detection
- update_download_dialog: animated Pyramid logo, progress bar, platform install (exe/apk)
- update_banner: Herunterladen button triggers dialog, dismiss option
- Android: REQUEST_INSTALL_PACKAGES permission + FileProvider for APK install
- post-commit hook: auto-push to Gitea on every commit
- chat_input: larger send button (60px desktop), more padding, bigger icon
- rooms_panel: space menu visible on mobile (leave space fix)
- docs: feature-checklist.md added

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-28 15:35:59 +02:00
Bernd Steckmeister c9af913468 fix: StreamProvider for login state, rename LoginState to avoid matrix SDK conflict 2026-04-19 20:26:28 +02:00
Bernd Steckmeister 85cf7cdf13 fix: server page empty by default, https prefix non-editable, StateProvider for instant redirect 2026-04-19 20:22:30 +02:00
Bernd Steckmeister 0f6dda7bb9 fix: separate server setup page, fix already-logged-in precondition error 2026-04-19 20:18:55 +02:00
Bernd Steckmeister c108e5b8e2 feat: chat view with timeline, message bubbles, reply and send 2026-04-19 20:09:43 +02:00
Bernd Steckmeister 5a909f0e0d feat: rooms list with real Matrix data, MXC avatars and unread badges 2026-04-19 20:07:20 +02:00
Bernd Steckmeister 883d24479b feat: Matrix login flow with auth guard and client provider 2026-04-19 19:56:12 +02:00
Bernd Steckmeister 062b8b6a94 feat: initial Pyramid project scaffold 2026-04-19 19:18:12 +02:00