Libra CodeHub

CedarCopilot/cedar-mail

Branch: staging

fix(crm): coerce select/list field values to their canonical option spelling

merged#2883CedarCopilot

CedarCopilot wants to merge 2 commits into staging from fix/coerce-select-list-option-casing

What Libra verified

  • Formatting-only select and list values use their canonical option spelling

    Libra ran this behavior against the change and confirmed the check detects when it breaks.

    Technical evidence
    • a select value matching one declared option after case and separator normalization is persisted with that option's declared spelling
    • each list item matching one declared option after case and separator normalization is persisted with that option's declared spelling while unmatched items remain unchanged
    • unmatched or ambiguously matching select values remain unchanged instead of being forced onto a declared option

    Changed code: conversation-field-definitions.ts.

  • List arrays are canonicalized item by item

    Libra ran this behavior against the change and confirmed the check detects when it breaks.

    Technical evidence
    • a JSON-encoded string array independently canonicalizes each item and remains a JSON-encoded array
    • a valid JSON value that is not a string array remains unchanged unless it matches an option as a whole string
    • a malformed value remains unchanged unless it matches one option as a string

    Changed code: conversation-field-definitions.ts.

run 3de60489-e198-4ae8-b18c-31b4cb9c3361, completed Sep 22, 2026, 4:10 PM