CedarCopilot wants to merge 0 commits into staging from fix/hide-background-fields-frontend
Live on prod, no production signal yet
OTEL fallback found no prod spans matching useConversationFieldRenderers since deploy.
Verification reached its 130s outer budget before the verifier returned. Libra is keeping this intent verifying until the next check.
OTEL fallback found no prod spans matching StrategicOverviewTab since deploy.
OTEL fallback found no prod spans matching WorkingMemoryCard since deploy.
OTEL fallback found no prod spans matching WorkingMemoryCard since deploy.
OTEL fallback found no prod spans matching useSidebarAllColumns since deploy.
Libra has verdicts on 0 of 12 tracked behaviors on prod; 12 are still being checked. Libra checks hourly for 3 days after each deploy.
Org custom fields flagged background === true are internal sub-event taxonomy "moments" (discovery questions, objections, MEDDPICC signals) extracted purely for analysis. They are supposed to be hidden from users, but no frontend path filtered them out, so they leaked into every user-facing field surface.
An audit of apps/mail found the flag is background (not isBackground , that's an unrelated aop_agents concept), and that zero normal display paths excluded it. The only place touching the flag was IntelligenceFieldsEditor, which does the inverse (keeps only background fields , it's the taxonomy editor).
Leak sites fixed:
use-crm-configuration)use-canvas-configuration)use-sidebar-all-columns)VirtualizedTableRow)SidebarGroupByPicker)extractCustomFieldsFromAOPs)showAllFields + configured lookups (ConversationOverviewCard, conversationFieldRenderers)StrategicOverviewTab)workingMemoryCard)Centralized in a single shared helper , getVisibleFieldDefinitions (in apps/mail/modules/crm/utils/background-fields.ts), mirroring the server's pickBackgroundFields. Every display consumer of aop.customFieldDefinitions now routes through it.
aopSlice/useAOPs origin, because the taxonomy editor (IntelligenceFieldsEditor) and admin/field editors legitimately need to see background fields.background?: boolean on the frontend CustomFieldDefinition type, which previously omitted the flag even though it exists at runtime (via RouterOutputs).Intentionally not touched: IntelligenceFieldsEditor (the dedicated taxonomy editor) and admin/field-config editors , power-user surfaces that should still see background fields.
apps/mail typecheck: zero net-new errors vs. staging baseline (compared full sorted error sets; the only diffs in touched files are pre-existing errors whose line numbers shifted by the lines added).getVisibleFieldDefinitions call in two memoized column hooks; consistency of the single helper preferred over an inline guard).š¤ Generated with Claude Code
This PR centralizes filtering of background taxonomy fields and applies it across conversation, CRM, canvas, sidebar, mapping, and strategic-overview surfaces.
getVisibleFieldDefinitions and the frontend background field typeThe working-memory visibility gap should be fixed before merging because internal background values remain reachable whenever AOP metadata is unavailable.
Most display consumers consistently filter field definitions, but WorkingMemoryCard deliberately falls back to the complete custom-field array during AOP loading or lookup failure and renders those entries as editable inputs.
Files Needing Attention: apps/mail/modules/conversations/components/workingMemoryCard.tsx
| Filename | Overview |
|---|---|
| apps/mail/modules/crm/utils/background-fields.ts | Introduces a straightforward strict-boolean filter that preserves visible field definitions. |
| apps/mail/modules/conversations/components/workingMemoryCard.tsx | Filters background fields only after AOP metadata resolves, leaving loading and failed-lookup states exposed. |
| apps/mail/modules/conversations/components/ |
Libra has not measured any production surfaces for this change yet.