Skip to content

feat: MailPin 2.2.0 native zero-Experiment candidate - #84

Draft
ussmarines wants to merge 2 commits into
mainfrom
codex/native-2.2.0-zero-experiment
Draft

ussmarines wants to merge 2 commits into
mainfrom
codex/native-2.2.0-zero-experiment

Conversation

@ussmarines

@ussmarines ussmarines commented Oct 4, 2026 •

Copy link
Copy Markdown
Owner

MailPin 1.7.10 dépend d'un Experiment privé pour son panneau, SQLite et Agenda. Cette candidate 2.2.0 native remplace cette frontière par les API MV3 officielles : tags possédés, actions/raccourcis/menus et un Space MailPin, avec les pages Organic Workspace et les modèles métier actuels.

Le XPI exclut totalement api/ et le style du panneau privilégié. L'ID reste ussmarines.mailpin@addons.thunderbird.net. Aucune publication, tag, merge ou soumission ATN n'est inclus dans cette PR draft. Base observée : origin/main 4d38862c55ea4c7fc3e4c440fbfed80e3aa197e3 ; donneurs #71/#72 consultés sélectivement sans merge/cherry-pick.

Comportement et migration

  • Notes/checklists, workflows, snooze/rappels locaux, recherche/vues/Kanban, groupes/affaires/modèles, statistiques/historique/undo : modèles 1.7.10 conservés et backend natif testé.
  • storage.local atomique et sérialisé, checksum/corruption fail-closed. Export 1.7.10 puis preview et fusion/remplacement explicites dans Workbench ; snapshot de sécurité avant écriture, plafonds cumulés refusés sans troncature. Aucun accès, écrasement ou purge de SQLite historique. Automatisation importée désactivée.
  • Tags : clé réservée + définition exacte + registre créé localement ; collisions refusées, relecture des tags personnels et union des pins message/conversation.
  • Limites assumées : Agenda et panneau inline indisponibles ; export manuel remplace sauvegarde automatique vers dossier ; conversation/règles bornées à 500 messages locaux ; triggers automatiques archive/réponse/suppression/calendrier et automatismes fournisseurs reportés. Désactiver le sync avant uninstall pour retirer les tags possédés (pas de hook privé d'uninstall).

Contrat détaillé : handoff natif, matrice de parité, validation.

Validation locale exécutée

  • npm run ci : PASS ; contrats natifs core/client, modèles métier actuels, thèmes/defaults, garde zéro-Experiment/no-network/identité/locales/provenance et build reproductible/reviewer sans Git.
  • Linter officiel Thunderbird 2.2.0, commit c56f6bdf3d3d0d1f3ec1091182570503f473ebaf : PASS, 0 erreur/hold ; un warning documenté sur le cap intentionnel 157.*.
  • Thunderbird 157.0.1 réel Windows, geckodriver 0.37.1, profil temporaire synthétique : PASS. Alt+P pin/unpin, tags, compteurs et état lu inchangés, Dashboard/Options/Workbench, ouverture Space depuis Options, fichier JSON → preview → merge → note conservée après redémarrage, uninstall/reinstall, aucune erreur de script de l'extension.
  • Revue ciblée séparée : six défauts reproduits/corrigés avec régressions comportementales ; pas de Codex Security.

XPI local dist/MailPin_v2.2.0.xpi, SHA-256 25b6869e5c2bcdf112e531611477f6d23ea911436ae57a64730c771dc6f553c3. Les workflows existants vérifient le candidat et déposent XPI/source/checksums/linter et smoke ; aucune preuve CI anticipée.

Permissions requises : menus, accountsRead, messagesRead, messagesUpdate, messagesTagsList, messagesTags, storage, alarms, notifications. Optionnelles au clic : messagesMove, messagesDelete, compose. Aucune permission hôte/réseau/fichier/Experiment.

Gate propriétaire : MANUAL_OWNER_TEST_REQUIRED sur copie du profil : migration/export réel 1.7.10, fournisseurs IMAP/Gmail/Microsoft et copies/conversations, table/cards/thèmes/FR-EN/clavier/a11y, notifications après veille, permissions/actions facultatives et rollback. Cette PR reste draft jusqu'à cette validation ; dernière release publique 1.7.10.

Gates GitHub vérifiés sur le HEAD exact

HEAD cfb14b8e24b557dec351432120f4ae9bea0b26ba :

Le XPI Windows local indiqué plus haut et celui du Linux CI ont exactement les mêmes chemins et bytes extraits, vérifiés après téléchargement ; leurs bytes ZIP compressés diffèrent selon zlib (limitation historique MP-2026-018). Chaque build est reproductible dans son environnement et chaque archive reviewer reconstruit son XPI identique. Le XPI local a été smoke-testé sous Windows ; celui CI sous Linux. Aucun comportement inline/Agenda/fournisseur n'est déduit de cette comparaison.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant