campaigns.ts asserted node:sqlite rows (Record<string, SQLOutputValue>) directly to CampaignRow/CampaignListItem (TS2352 — non-overlapping types). Added mapCampaignRow/mapCampaignListItem in db.ts that coerce each column (handling bigint-for-int and nullable text) and use them at all 6 sites, preserving the null/undefined handling. Real coercion instead of structural casts. Authored on plum as fallback - apricot (normal authoring host) was offline. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| admin | ||
| adult-therapy-tours | ||
| age-verification | ||
| api | ||
| client-intel | ||
| clients/frontend-public | ||
| cocotte-tech | ||
| cocotte-web | ||
| comm-newsletter | ||
| db-monitor | ||
| demimonde | ||
| edge-purge | ||
| event-scrapers | ||
| futa-waifu-tour | ||
| image-protection | ||
| landing | ||
| merchant/backend-api | ||
| messages | ||
| my | ||
| platform-seed | ||
| provider-website | ||
| quinn-ai | ||
| quinn-messenger/mcp | ||
| sansonnet-web | ||
| score-refresh | ||
| sso | ||
| user-data | ||
| vip | ||
| waitlist | ||