CALENDAR_SYNC
fix(crm-updater): never approval-gate inbound CRM-sync mirrors
CHANGELOG July 31, 2026
feat(taxonomy): graduate D1–D19 redesign + heuristics into shipped extraction surfaces
perf(crm-updater): skip LLM field-updater on inbound external_crm syncs
feat(slack): native rich_text formatting for all Slack messages (bullets, numbered lists, headers)
feat(imessage): strip Markdown to clean plain text
feat(meetings): Caretta back-sync via MCP (historical call pull)
feat(crm-updater): default Slack DM notify on opp creation + approval-gated fields
refactor(crm-updater): drop redundant inbound-CRM-sync exception prose from default
fix(slack): blank line between bullets + coaching notes as bullets
fix(crm-sync): chat-applied field updates never pushed to external CRM
docs(skills): harden data audit against concurrent CRM backsync
feat(scripts): on-demand subagent CLI (list / replay / run)
fix(slack): preserve blank lines between paragraph sections
feat(taxonomy): prompt/rubric improvements from the Pirros first-meeting analysis
fix(slack): thread approval-button completions + stop mangling the message
refactor(context): fold CRM-sync into ExecutionSurface + typed headless-chat factory
Make Phase-2 taxonomy extraction opt-in (off by default)
fix(sync): exclude background (taxonomy) fields from the live field extractor
fix(mail): hide background (sub-event taxonomy) fields from conversation field UI
Taxonomy + analysis-skill improvements from the Pirros first-meeting analysis
fix(mail): stop binding a raw Date into the mirror's ordering-key guard
[DEPLOY]
fix(slack): restore links + strikethrough in native rich_text rendering
CHANGELOG August 3, 2026
fix(mcp): single-flight OAuth refresh to stop rotating-token self-destruct
Libra has not attributed this incident to a change yet.
Libra has no fix in flight for this incident.