Changelog
[v1.0.0-rc.2] — 2026-07-16
This release merges the dev branch into main (36 commits) and adds the largest feature drop since rc.1: a full CRM Deals/Pipeline module, a data-cache control surface, Phase B email UX parity, calendar drivers, campaign scheduling + Microsoft Graph send, and a large documentation/IA reconciliation pass.
CRM — Deals & Pipeline (new module)
- Schema + migrations
032_deals_pipeline.sql(plus030_sender_credentials.sql,031_thread_importance_score.sql) - Rust DAL + commands:
db/tables/crm/deals.rs,scoring.rs(lead-scoring engine),commands/deals.rs - Frontend Kanban:
DealCard,DealColumn,PipelineBoard,DealsPage,dealStore.ts,deals.tswrappers - Default CRM pipeline seeded; contacts score column, segment filter, Kanban nav fix
Data cache control surface
- Settings → Cache tab: live status, hit-rate, benchmark, clear-cache
- Rust
data-cachecontrol commands +Cache::benchmarkover IPC
Email — Phase B UX parity
- Hover rail + bulk toolbar, Focused inbox, NL snooze parsing, expanded command palette
- Microsoft Graph provider + Graph send client; importance score + auto-categorize backend
- Expanded Rust demo seeds (Gmail/Outlook-grade category tabs)
Calendar drivers
- CalDAV driver (734 LOC) + driver registry; calendar operations refactored onto driver layer
Campaigns
- Scheduling + analytics (
029_campaign_scheduling.sql), template search wired into CampaignTemplatePicker
Settings & a11y
- Reset/data-wipe routed through
db_reset_and_reseed; empty task table + dev-server termination fixes FocusOrderManager,SkipLink, translation-ready feature flags/settings/help center; rules-of-hooks ESLint fixed- 12 failing vitest files fixed; missing validation i18n keys added (en/fr/ar/ja/it)
Docs & IA reconciliation
- New specs: navigation-ia, settings-redesign, release-pipeline, navigation-redesign proposals, MVP launch plan
- STATUS.md + PRODUCTION-READINESS.md reconciled with source truth
CI
daily-pr.yml: daily dev→main PR workflow with auto-release chain
Quality
- Full vitest suite green with real fixes; tsc --noEmit zero errors; 2,470+ TS + 735 Rust tests passing; dead-code warnings 13 → 0