Audit/p0 correctifs - #2
Open
UlysseCarpentier wants to merge 2 commits into
Open
UlysseCarpentier wants to merge 2 commits into
UlysseCarpentier wants to merge 2 commits into
Conversation
…l'audio système n'existe pas
Trois mensonges fonctionnels relevés par l'audit (ROADMAP Phase H).
1. Outlook / Microsoft 365 retiré du sélecteur de fournisseur e-mail
(Onboarding.tsx + catalogues FR/EN). spec/24 §1.1 l'exclut explicitement :
Microsoft a retiré les mots de passe d'application IMAP le 30/04/2026, donc
impasse garantie. OAuth2 reste hors scope. Grille passée à 2 colonnes (4
fournisseurs). Un utilisateur Outlook passe par « IMAP générique ».
2. Alfred.entitlements / Info.plist réellement nettoyés (spec/12, qui les
donnait pour faits) : `apple-events` était encore à true et les usage
descriptions AppleEvents/Calendars encore présentes — alors que spec/02 §0
justifie l'exclusion d'Apple Calendar par ce retrait qui n'avait jamais eu
lieu. NSScreenCaptureUsageDescription reste volontairement non ajoutée : rien
ne déclenche cette permission tant que le helper ScreenCaptureKit n'existe
pas ; à poser en même temps que lui.
3. Audio système macOS : le repli sur mic_only reste gracieux mais n'est plus
silencieux. Le défaut produit est `mixed`, donc un Mac en visio ne captait
jamais l'interlocuteur et sortait un compte-rendu à moitié faux sans aucun
signal.
- nouvelles commandes `get_platform` / `supports_system_audio` (le backend
est la seule autorité sur l'OS, spec/00 — pas un sniff d'user-agent) ;
- Réglages : sources système désactivées + explication, et la config est
réalignée sur mic_only si elle disait `mixed` sur une plateforme sans
audio système (sinon une option grisée apparaissait sélectionnée) ;
- `audio::start_recording` émet `recording-source-fallback` -> toast
(App.tsx, via `translate`/`getState` pour lire la langue au moment du
toast et non au montage).
Le repli utilise `cfg!` et non `#[cfg]` : les deux branches sont ainsi
type-checkées par un `cargo check` lancé sous Windows.
tsc --noEmit : OK. cargo check --no-default-features : OK.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
L'audit a trouvé 6 divergences spec <-> code sur 30 modules, dans les deux sens. C'est le mécanisme qui a produit le bug Outlook : du code livré sans lire la révision de sa propre spec. Statut — une seule source de vérité (spec/README.md §Source de vérité du statut) : le tableau « Modules » tranche, les en-têtes `> **Statut :**` décrivent le périmètre et non l'avancement. À corriger dans le même commit que le code. Faux « c'est fait » corrigés : - spec/README : audio système macOS donné pour ✅ alors qu'aucun helper Swift n'existe (le module passe 🚧) ; « modèle small embarqué / offline dès le 1er lancement » alors que bundle.resources est vide -> aussi corrigé dans README.md, TESTS.md et le commentaire de Cargo.toml ; - spec/12 : entitlements/Info.plist donnés pour nettoyés (ils ne l'étaient pas — cf. commit précédent), NSScreenCaptureUsageDescription explicitement reportée avec le helper. Faux « rien de codé » corrigés : spec/02 (calendrier), spec/27 (auto-update), spec/28 (projets unifiés), spec/24 (§5 écran de validation + §6 Q&A mails). Dérives de fond : - spec/00 : domaines IPC et arborescence d'avant la Phase D, calendrier décrit comme « entièrement retiré », suggestions/appels comme « présents ». Et surtout l'inventaire des secrets, resté à 2 clés d'API alors que secrets.json contient désormais 8 entrées dont un mot de passe IMAP et un refresh token Google — le compromis « quasi-clair, OK pour un petit groupe » est à re-trancher (0600 n'est posé que sous Unix) ; - spec/01 : « migrations 001->005 » alors qu'on est à 017 ; table todos décrite comme vivante (droppée en 007), suggestions/phone_calls « présentes » (droppées en 008), calendar_events « plus alimentée » (recréée en 016). Table des migrations complétée, clés de config réelles listées, clés mortes signalées ; - spec/13 : l'étape « Connexion e-mails » n'était pas décrite (ajoutée, avec la question produit qu'elle pose : le pire moment du parcours pour demander un mot de passe d'application) ; section « Prioritaire » citée alors que spec/06 l'a retirée ; - spec/03 et spec/11 : documentent le repli audio désormais annoncé et le gating des sources dans Réglages ; - spec/24 §1.1 : dit que l'UI guidée n'existe que dans l'onboarding. ROADMAP : Phase H P0 -> [x], helper macOS sorti au clair comme tâche à part, ligne auto-update corrigée (les clés sont bien en place, seul l'amorçage manuel des testeurs 0.2.x reste). tsc --noEmit : OK. cargo test --no-default-features : 82 passed. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.