Skip to content

fix(privacy): trois affirmations publiques inexactes (export « complet », base légale)#274

Merged
thierryvm merged 1 commit into
mainfrom
fix/privacy-texts-accuracy
Jul 26, 2026
Merged

fix(privacy): trois affirmations publiques inexactes (export « complet », base légale)#274
thierryvm merged 1 commit into
mainfrom
fix/privacy-texts-accuracy

Conversation

@thierryvm

Copy link
Copy Markdown
Owner

Trois affirmations publiques devenues fausses

Relevées par l'audit RGPD de la PR #273, corrigées ici dans les cinq locales.

1. L'export RGPD n'est pas complet. Le texte annonce « un JSON complet de tout ce qu'Ankora détient sur toi ». Il interroge 7 tables sur 14. Manquent commitments et commitment_payments (les dettes) et accounts (les soldes) — pas un arrondi, les deux catégories les plus sensibles de l'app. Remplacé par ce que le fichier contient réellement.

L'affirmation devient plus problématique aujourd'hui qu'hier : le journal d'activité qu'elle embarque était vide jusqu'au correctif #273, donc le fichier a maintenant l'air assez fourni pour qu'on le croie exhaustif.

2. La base légale du journal d'audit était fausse. Déclarée « obligation légale ». Aucune loi belge n'impose un journal d'audit à un outil budgétaire — c'est de l'intérêt légitime (art. 6(1)(f)), qui suppose une mise en balance et non un devoir statutaire. Se tromper de base n'est pas une approximation de traduction, c'est une déclaration de conformité indéfendable.

3. Même correction sur la description du bouton d'export dans les Paramètres.

Ce que l'audit i18n a rattrapé

Deux formulations que je ne pouvais pas relire moi-même :

  • nl-BE mélangeait veiligheid et beveiligingslogs dans la même liste → behoud van de beveiliging
  • es-ES écrivait « derecho de portabilidad » là où le règlement dit « derecho a la portabilidad de los datos »

Les termes statutaires des bases légales sont désormais verrouillés au glossaire (§2bis, v1.4) pour les quatre bases de l'art. 6 — un relecteur natif serait tenté de les « améliorer » en synonymes que le règlement n'emploie pas (legitiem belang, interés justificado).

Vérifications

Parité des clés intacte (aucune clé ajoutée ni supprimée), balises <b> cohérentes sur les 5 locales, 1702 tests verts, typecheck et lint propres. JSON validé fichier par fichier.

Hors périmètre, signalé

L'audit a confirmé une dette connue : les sections landing.pricing de nl/de/es sont encore intégralement en français. Sans rapport avec ce correctif, mais c'est la section voisine.

Ne rend PAS l'export complet — c'est une PR à part. Celle-ci arrête seulement de promettre ce qui n'est pas livré.

… the data

Three public statements had become inaccurate, in all five locales.

The GDPR export is announced as "a complete JSON of everything Ankora holds
about you". It queries 7 of 14 tables. Missing: commitments and
commitment_payments (the user's debts) and accounts (their balances) — not a
rounding error, the two most sensitive categories in the app. Replaced with what
the bundle actually contains. The claim mattered more from today: the audit log
it carries was empty until the service_role fix, so the file now looks
exhaustive enough to be believed.

The audit log's legal basis was declared a "legal obligation". No Belgian law
imposes an audit trail on a budgeting tool; the basis is legitimate interest
(art. 6(1)(f)), which carries a balancing test rather than a statutory duty.
Naming the wrong one is a compliance statement that cannot be defended.

i18n-auditor caught two wordings I could not have reviewed myself: nl-BE mixed
veiligheid with beveiligingslogs in the same list, and es-ES used "derecho de
portabilidad" where the regulation says "derecho a la portabilidad de los
datos". Both corrected, and the statutory basis terms are now locked in the
glossary (v1.4) so a native reviewer does not "improve" them into synonyms the
regulation does not use.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry @thierryvm, you have reached your weekly rate limit of 500000 diff characters.

Please try again later or upgrade to continue using Sourcery

@vercel

vercel Bot commented Jul 26, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
ankora Ready Ready Preview, Comment Jul 26, 2026 11:10pm

@github-actions github-actions Bot added status:review-needed Ready for review type:fix Bug fix labels Jul 26, 2026
@thierryvm
thierryvm merged commit a37473a into main Jul 26, 2026
10 checks passed
@thierryvm
thierryvm deleted the fix/privacy-texts-accuracy branch July 26, 2026 23:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

status:review-needed Ready for review type:fix Bug fix

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant