Compare commits

..

1 commit

Author SHA1 Message Date
le king fu
3b3b6d9a32 feat: feedback hub widget in Settings Logs card (#67)
All checks were successful
PR Check / rust (push) Successful in 23m3s
PR Check / frontend (push) Successful in 2m19s
PR Check / rust (pull_request) Successful in 22m25s
PR Check / frontend (pull_request) Successful in 2m18s
Add an opt-in feedback submission flow that posts to the central
feedback-api service. Integrated into the existing LogViewerCard so
the same card now covers diagnostics capture (logs) and diagnostics
forwarding (feedback).

- Rust command `send_feedback` forwards the payload via reqwest, so
  the Tauri origin never needs a CORS whitelist entry server-side
- First submission shows a one-time consent dialog explaining that
  this is the only app feature that talks to a server besides updates
  and Maximus sign-in
- Three opt-in checkboxes (all unchecked by default): navigation
  context, recent error logs (appended as a suffix to the content),
  identify with the Maximus account
- Context keys are limited to the server whitelist (page, locale,
  theme, viewport, userAgent, timestamp); app_version + OS are packed
  into userAgent via `get_feedback_user_agent` so we don't pull in an
  extra Tauri plugin
- Error codes are stable strings (invalid, rate_limit, server_error,
  network_error) mapped to i18n messages on the frontend
- Wording follows the cross-app convention documented in
  `la-compagnie-maximus/docs/feedback-hub-ops.md`
- CSP `connect-src` extended with feedback.lacompagniemaximus.com
- Docs: CHANGELOG (EN + FR), guide utilisateur, docs.settings
  (features/steps/tips) updated in both locales

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-17 10:18:18 -04:00
6 changed files with 4 additions and 8 deletions

View file

@ -2,8 +2,6 @@
## [Non publié]
## [0.8.2] - 2026-04-17
### Ajouté
- **Widget Feedback Hub** (Paramètres → Journaux) : un bouton *Envoyer un feedback* dans la carte Journaux ouvre un dialogue pour soumettre suggestions, commentaires ou rapports de bogue vers le Feedback Hub central. Un dialogue de consentement (affiché une seule fois) explique que l'envoi atteint `feedback.lacompagniemaximus.com` — une exception explicite au fonctionnement 100 % local de l'app. Trois cases à cocher opt-in (toutes décochées par défaut) : inclure le contexte de navigation (page, thème, écran, version, OS), inclure les derniers logs d'erreur, m'identifier avec mon compte Maximus. L'envoi passe par une commande Rust côté backend, donc rien ne quitte la machine tant que l'utilisateur n'a pas cliqué *Envoyer* (#67)
- **Rapport Cartes** (`/reports/cartes`) : nouveau sous-rapport de type tableau de bord dans le hub Rapports. Combine quatre cartes KPI (Revenus, Dépenses, Solde net, Taux d'épargne) affichant les deltas MoM et YoY simultanément avec une sparkline 13 mois dont le mois de référence est mis en évidence, un graphique overlay revenus vs dépenses sur 12 mois (barres + ligne de solde net), le top 5 des catégories en hausse et en baisse par rapport au mois précédent, une carte d'adhérence au budget (N/M dans la cible plus les 3 pires dépassements avec barres de progression) et une carte de saisonnalité qui compare le mois de référence à la moyenne du même mois sur les deux années précédentes. Toutes les données proviennent d'un seul appel `getCartesSnapshot()` qui exécute ses requêtes en parallèle (#97)

View file

@ -2,8 +2,6 @@
## [Unreleased]
## [0.8.2] - 2026-04-17
### Added
- **Feedback Hub widget** (Settings → Logs): a *Send feedback* button in the Logs card opens a dialog to submit suggestions, comments, or bug reports to the central Feedback Hub. A one-time consent prompt explains that submission reaches `feedback.lacompagniemaximus.com` — an explicit exception to the app's 100% local operation. Three opt-in checkboxes (all unchecked by default): include navigation context (page, theme, viewport, app version, OS), include recent error logs, identify with your Maximus account. Routed through a Rust-side command so nothing is sent unless you press *Send* (#67)
- **Cartes report** (`/reports/cartes`): new dashboard-style sub-report in the Reports hub. Combines four KPI cards (income, expenses, net balance, savings rate) showing MoM and YoY deltas simultaneously with a 13-month sparkline highlighting the reference month, a 12-month income vs. expenses overlay chart (bars + net balance line), top 5 category increases and top 5 decreases vs. the previous month, a budget-adherence card (N/M on-target plus the three worst overruns with progress bars), and a seasonality card that compares the reference month against the same calendar month from the two previous years. All data comes from a single `getCartesSnapshot()` service call that runs its queries concurrently (#97)

View file

@ -1,7 +1,7 @@
{
"name": "simpl_result_scaffold",
"private": true,
"version": "0.8.2",
"version": "0.8.1",
"license": "GPL-3.0-only",
"type": "module",
"scripts": {

2
src-tauri/Cargo.lock generated
View file

@ -4423,7 +4423,7 @@ checksum = "e320a6c5ad31d271ad523dcf3ad13e2767ad8b1cb8f047f75a8aeaf8da139da2"
[[package]]
name = "simpl-result"
version = "0.8.2"
version = "0.8.1"
dependencies = [
"aes-gcm",
"argon2",

View file

@ -1,6 +1,6 @@
[package]
name = "simpl-result"
version = "0.8.2"
version = "0.8.1"
description = "Personal finance management app"
license = "GPL-3.0-only"
authors = ["you"]

View file

@ -1,7 +1,7 @@
{
"$schema": "https://schema.tauri.app/config/2",
"productName": "Simpl Resultat",
"version": "0.8.2",
"version": "0.8.1",
"identifier": "com.simpl.resultat",
"build": {
"beforeDevCommand": "npm run dev",