[ { "id": "F001", "description": "Domain extraction: normalize sender email and extract the domain substring after '@' (case-insensitive)", "implemented": true }, { "id": "F002", "description": "Data model: add `client_inbound_email_domains` table with uniqueness per tenant on lower(domain)", "implemented": true }, { "id": "F003", "description": "Server API: add CRUD for client inbound email domains (list/add/remove) with tenant scoping and client update permission checks", "implemented": true }, { "id": "F004", "description": "Client UI: add an 'Inbound email domains' section on the client screen with add/remove controls and inline validation", "implemented": true }, { "id": "F005", "description": "Client UI: when adding a domain, verify uniqueness and show a clear error if the domain is already assigned to another client", "implemented": true }, { "id": "F006", "description": "Inbound email resolution: only perform domain-to-client matching using the explicit mapping table (no inference from contacts)", "implemented": true }, { "id": "F007", "description": "Inbound email resolution: keep precedence (exact contact match overrides domain match; domain match overrides defaults client)", "implemented": true }, { "id": "F008", "description": "Inbound email resolution: when domain match selects a different client than inbound defaults, do not apply defaults.location_id (avoid cross-client location mismatch)", "implemented": true }, { "id": "F009", "description": "Default contact: allow configuring per-client default contact (stored as `clients.properties.primary_contact_id` + optional `primary_contact_name`)", "implemented": true }, { "id": "F010", "description": "Domain fallback contact: when a configured domain match occurs, apply the client's validated default contact as ticket contact when available", "implemented": true }, { "id": "F011", "description": "Remove/disable contact-derived domain matching codepaths (e.g. stop scanning `contacts.email` domains to infer a client)", "implemented": true }, { "id": "F012", "description": "Tests: add/update automated coverage for explicit inbound email domains + uniqueness + inbound email behavior", "implemented": false } ]