P3 stretch goal for Milestone 40 (v0.21.0). Not required for the milestone; promote only if capacity allows.
Draft replies in the user's own voice by learning tone/style from their Sent history, rather than producing a blank-bodied scaffold. Fits GAIA's local-first model — the style profile is built from private Sent mail that should never leave the device.
Cross-link: extends the already-closed #1269 (draft reply with tone + context matching), which matches tone per request; this issue adds a persisted voice/style profile derived from Sent history. Related: #704 (Personal CRM, per-person tone matching).
Gap reference: capability gap G4 in the email use-case doc.
Acceptance criteria
Test acceptance criteria
Draft replies in the user's own voice by learning tone/style from their Sent history, rather than producing a blank-bodied scaffold. Fits GAIA's local-first model — the style profile is built from private Sent mail that should never leave the device.
Cross-link: extends the already-closed #1269 (draft reply with tone + context matching), which matches tone per request; this issue adds a persisted voice/style profile derived from Sent history. Related: #704 (Personal CRM, per-person tone matching).
Gap reference: capability gap G4 in the email use-case doc.
Acceptance criteria
draft_replyproduces a body reflecting that profile (greeting/sign-off/length/formality), still returned for approval — nothing auto-sent (feat(email): send with confirmation (never auto-send) #1264).Test acceptance criteria