Spaces:
Sleeping
Sleeping
Commit History
-
fix(prospection): close the three blocking defects and seven Important ones from the whole-branch review
Un brouillon ne doit rien affirmer que sa preuve ne porte pas. Onze correctifs, tous reproduits par exécution en revue finale. Bloquants : - C1 la mention légale n'a plus d'échappatoire : une paraphrase du modèle passait le validateur, et le remplacement final ne rendait alors rien — l'email partait sans identité du responsable, sans base légale, sans adresse d'opposition. - C2 un seul destinataire par maison, choisi par ordre d'interlocuteur (fondateur/CIO > recherche > COO > jamais le RCCI en premier). Trois dirigeants renvoyés par l'API entreprises produisaient trois emails le même jour dans la même SGP régulée. - C3 le veto de démo survit au rescore (colonne demo_blocked_at, hors upsert_account pour qu'un universe refresh ne l'efface pas), et campaign draft écarte un compte sans PDF produit — le gabarit affirme que le brief est joint. Importants : - I1 aucune position à citer = refus avant le modèle ; la CLI fournit la meilleure position NON confirmée en unive…6516ac8 -
fix(prospection): close five CLI/eml gaps found in review
- render_eml refuses an empty recipient (ValueError) instead of serialising a literal "To: None" for LinkedIn-sourced contacts that have no address and aren't is_generic. - campaign export wraps render_eml in try/except (ValueError, OSError) so a missing attachment or addressless contact skips that touch instead of aborting the whole export run. - campaign draft checks the sender identity once before the loop (render_rgpd_block / IncompleteSenderIdentity) instead of failing per-contact with the same error N times. - demo build --tier and campaign draft --tier now read args.tier instead of silently hardcoding tier=1. - universe refresh counts and reports SIREN enrichment failures instead of letting a fetch_company error propagate uncaught. Adds four tests covering the last-barrier suppression gate on campaign export (opted-out contact, clean contact, addressless contact) and render_eml's empty-recipient guard.c8ba8d8 -
feat(prospection): .eml export and single CLI entry point, no send path
9d0739a