qbit-crm 0.2.0 renames its tables to the crm_ snake_case standard (crm_contact, crm_consent_record, crm_email_list_member, crm_form_submission, crm_activity, crm_activity_type) with no compatibility shims. QbitCrmGateway now uses those names. Field names are unchanged (confirmed with the qbit-crm agent against QRun-IO/qbit-crm#7).
Follow-up: once qbit-crm 0.2.0-RC publishes com.kingsrook.qbits.crm.api.CrmMarketingApi (recipients, eligibility, form submissions, activities by kind, unsubscribe, recipient-scope options), the gateway becomes a thin delegate over it.
Tests
New QbitCrmGatewayTest on fixture crm_* tables: eligibility (consent, suppression, no address), crm-contact and crm-list scopes, form submissions, activity logging, and isAvailable without a CRM. ./mvnw verify green locally (all gates).
Implementation by a Sonnet subagent, reviewed and trimmed by Claude Opus.
## Summary
qbit-crm 0.2.0 renames its tables to the `crm_` snake_case standard (crm_contact, crm_consent_record, crm_email_list_member, crm_form_submission, crm_activity, crm_activity_type) with no compatibility shims. `QbitCrmGateway` now uses those names. Field names are unchanged (confirmed with the qbit-crm agent against QRun-IO/qbit-crm#7).
Follow-up: once qbit-crm 0.2.0-RC publishes `com.kingsrook.qbits.crm.api.CrmMarketingApi` (recipients, eligibility, form submissions, activities by kind, unsubscribe, recipient-scope options), the gateway becomes a thin delegate over it.
## Tests
New `QbitCrmGatewayTest` on fixture `crm_*` tables: eligibility (consent, suppression, no address), crm-contact and crm-list scopes, form submissions, activity logging, and isAvailable without a CRM. `./mvnw verify` green locally (all gates).
Implementation by a Sonnet subagent, reviewed and trimmed by Claude Opus.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
qbit-crm 0.2.0 renames its tables to the
crm_snake_case standard (crm_contact, crm_consent_record, crm_email_list_member, crm_form_submission, crm_activity, crm_activity_type) with no compatibility shims.QbitCrmGatewaynow uses those names. Field names are unchanged (confirmed with the qbit-crm agent against QRun-IO/qbit-crm#7).Follow-up: once qbit-crm 0.2.0-RC publishes
com.kingsrook.qbits.crm.api.CrmMarketingApi(recipients, eligibility, form submissions, activities by kind, unsubscribe, recipient-scope options), the gateway becomes a thin delegate over it.Tests
New
QbitCrmGatewayTeston fixturecrm_*tables: eligibility (consent, suppression, no address), crm-contact and crm-list scopes, form submissions, activity logging, and isAvailable without a CRM../mvnw verifygreen locally (all gates).Implementation by a Sonnet subagent, reviewed and trimmed by Claude Opus.
🤖 Generated with Claude Code