Es gibt keinen tauri-Script-Eintrag in package.json, daher schlug
'npm run tauri build' mit 'Missing script' fehl. npx ruft das im
node_modules installierte CLI direkt auf.
Neuer Settings-Tab mit manueller Update-Suche (ignoriert die Skip-
Markierung), Zeitstempel der letzten Prüfung, Link zur Dokumentation
auf rapport.kgva.ch. Update-Helper sind in src/utils/updater.js
zentralisiert; UpdateNotifier schreibt jetzt auch beim Auto-Check
das Datum der letzten Prüfung mit.
Version 0.6.0 → 0.7.0 in package.json, tauri.conf.json, Cargo.toml
und allen UI-Referenzen. Changelog-Eintrag 0.7 mit den drei
Highlights dieses Releases ergänzt.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Tray-Icon in der macOS-Menüleiste mit Linksklick zum Fokussieren und
Rechtsklick-Menü: Rapport öffnen, Dashboard, Zeiterfassung, Projekte,
Buchhaltung, Einstellungen, Beenden. Menü-Klicks senden ein
rapport:navigate-Event ans Frontend.
Der rote Schliessen-Button versteckt nur — die App läuft im Hintergrund
weiter. Cmd+Q (RunEvent::ExitRequested) und der Tray-Quit-Eintrag
setzen ein is_quitting-Flag und beenden die App wirklich.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Beim App-Start wird automatisch geprüft, ob bei git.kgva.ch/karim/RAPPORT
eine neue Version verfügbar ist. Update-Modal mit Release-Notes und drei
Aktionen: Jetzt installieren (Download → Signaturprüfung → Neustart),
Später, oder Diese Version überspringen (in localStorage gemerkt).
Signing via minisign-Keypair unter ~/.tauri/rapport_updater.key,
Public Key im Tauri-Config. Release-Script scripts/release.sh baut,
signiert und erzeugt latest.json für Gitea.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Beseitigt die "App ist beschädigt"-Meldung beim ersten Start unsignierter
Downloads. Nutzer können die App nun via Rechtsklick → Öffnen oder über
Systemeinstellungen → Datenschutz freigeben, ohne xattr-Workaround.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- ViewFallback: dezenter, zentrierter Spinner statt kaum lesbarem
"LADEN…"-Text zwischen lazy-loaded Views
- Einstellungen: Pill-Navigation jetzt konsistent unter dem Header
(zuvor lagen die Pills bei allen Tabs ausser "Mein Profil" darüber)
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Ersetzt den Vite-Template-Default durch eine entwicklerorientierte Referenz:
Voraussetzungen, Dev-/Build-Befehle, Projektstruktur, Sicherheits-Notizen
und Release-Workflow.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Sicherheits-Hardening
- Passwort-Hashing mit PBKDF2 (SHA-256, 100k Iterationen) inkl. transparenter
Migration bestehender Klartext-Passwörter beim ersten Login
- Login Brute-Force-Schutz (5 Fehlversuche → 60s Lockout), Constant-Time-Compare,
Mindestpasswortlänge 8 Zeichen
- HTML-Sanitizer für Brieftexte (Allowlist, entfernt javascript:/data:/vbscript:-URLs,
Event-Handler, Script-Tags; rel=noopener für target=_blank)
- Datenexport entfernt Legacy-Klartextpasswörter (Hashes bleiben)
- Kryptografische IDs via crypto.randomUUID statt Math.random
- sessionStorage speichert keine Credentials mehr
GUI & Performance
- Code-Splitting pro View via React.lazy + Suspense (Initial-Bundle 86 KB gzipped)
- swissqrbill als lokale Dependency — QR-Rechnungen offline-fähig
- Spesenbelege (Bild/PDF) direkt in der Tageserfassung mit Bildkomprimierung
- Avatar-Upload: 256px-Skalierung + JPEG-Kompression, Typprüfung
- Über-Rapport-Modal, einheitliche Bearbeiten-Icons, Pinnwand-Kategorien als Pills
Bug-Fixes
- Auto-überfällig-Routine läuft nur noch einmal pro Tag (verhindert Re-Render-Loop)
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
TAR_GZ=$(ls "$BUNDLE_DIR"/*.app.tar.gz 2>/dev/null | head -n1 ||true)
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.