2026-09-03 03:43:47 -07:00
..
2026-07-22 17:05:24 +02:00
2026-07-22 17:05:24 +02:00
2026-07-13 18:15:58 +02:00
2026-07-30 17:15:09 +02:00
2026-07-21 17:34:59 +02:00
2026-07-22 17:05:37 +02:00
2026-07-22 17:05:37 +02:00
2026-07-22 17:05:37 +02:00
2026-09-03 03:43:47 -07:00
feat: add first-touch contact source attribution (migration 000106: contacts.source with a CHECK, source_detail, first_seen_at, existing rows stamped unknown) stamped at every creation site (dashboard manual/campaign, file import, Google Sheets sync, API key, AI assistant), write contact_created / campaign_added / campaign_removed / category_added / category_removed lifecycle events into contact_activities inside the same transactions as the links and merge them into the contact timeline, refactor FindNextRoutedPair's routing into a campaignRouter shared with a per-contact RouteContact and split CalculateNextCampaignTime into campaignSenders + placeCampaignSend so a read-only PreviewContactSend derives a contact's next step through the scheduler's own constraints, expose it as GET /contacts/:id/campaigns behind the contact service, render a per-campaign state panel, Campaigns/Lifecycle filter chips and expandable event rows in the Activity tab plus a Source section on Overview, cover it with TestLive* for the timeline events and the next-action preview (step wait, sending window, paused), and document it in the contacts, campaigns and API reference docs (issue #255)
2026-08-29 03:28:16 -07:00
2026-07-22 17:05:24 +02:00
2026-07-22 17:05:37 +02:00
2026-07-22 17:05:24 +02:00
2026-08-31 03:50:36 -07:00
2026-07-22 17:05:24 +02:00
2026-07-22 17:05:37 +02:00
feat: org AI skills (playbooks) that every AI feature loads and follows - ai_skills table (org-scoped, unique name per org, 32KB content cap) with a skills service exposing CRUD plus an enabled-skills preamble injected into the dashboard agent, contact research, and reply-draft prompts and a load_skill read-tool that returns a playbook's full content by name, /ai/skills CRUD gated on manage_settings (JWT) or the AI_AGENT scope (API) with an ai_skill audit entity and spine entry, an AI skills settings page (list rows opening a right-side drawer with name, one-line description, enable toggle, and a markdown body), and docs with two example playbooks
2026-07-13 19:46:25 +02:00
2026-07-22 17:05:37 +02:00
2026-09-01 03:53:19 -07:00
2026-07-13 18:15:58 +02:00
2026-07-22 17:05:37 +02:00
2026-07-30 17:15:09 +02:00