Libra CodeHub

CedarCopilot/cedar-mail

Branch: staging

fix(chat): let authorized humans edit agent-owned deal fields; make fetch and write verdicts truthful

merged#2918CedarCopilot

CedarCopilot wants to merge 4 commits into staging from worktree-send-it-chat-field-write-permissions

What Libra verified

  • CRM synchronization preserves definition-based field writes

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

    Technical evidence
    • external CRM synchronization is identified without granting a human ownership override
    • ordinary non-sync writes retain the distinct human actor needed for ownership checks

    Changed code: updateConversationFieldsTool.ts.

  • Fetch and write expose the same per-field write verdict

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

    Technical evidence
    • a genuine in-app chat context carries the human identity needed for its writable field verdict
    • automation and chat-descended subagents remain blocked by the same field restrictions instead of inheriting human write authority

    Changed code: fetchConversationTool.ts.

  • Human field-write authority is not inherited by delegated runs

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

    Technical evidence
    • the chat agent's own run carries actingHumanUserId while preserving the attributed userId
    • a run marked withoutHumanAuthority keeps user attribution but cannot carry the human field-write override
    • automation and external MCP runs retain user attribution but cannot carry human field-write authority

    Changed code: surface-context.ts.

run e8951650-63b5-4a18-8869-63d7f89d92e1, completed Sep 23, 2026, 1:34 PM