2026-07-19 18:45:50 +02:00
..
2026-06-02 15:54:29 +02:00
2026-05-28 08:47:57 +02:00
2026-06-02 15:54:29 +02:00
2026-07-16 17:55:34 +02:00
2026-07-19 13:22:56 +02:00
2026-06-12 09:38:11 +02:00
2026-05-25 10:23:32 +00:00
feat: AI contact research agent that gathers cited web findings per contact with sync and background-batch runs - contact_research_runs table plus a strict save_research schema (every signal and public_artifact must carry a url, confidence high/medium/low, signals<=5 hooks<=3, reject-and-reprompt once then fail), a text/template runtime prompt injecting org voice, contact record, objective, and 5-search/6-fetch budgets, a research service that drives search_web/fetch_url through the provider loop and charges 2 credits on save (billable even for nothing_found, refund-free since charged only on save, balance and abuse-cap pre-checked so a capped org never does free work), POST/GET /contacts/:id/research plus a 500-cap /contacts/research/batch draining through a bounded pool of 4 workers over FOR-UPDATE-SKIP-LOCKED claims (no new Kafka), an org-scoped AI_RESEARCH_PROGRESS realtime event gated to view_contacts, APIPermAIResearch bit 23, a ContactEdit Research tab and a ContactsTable bulk Research action, and docs; also org-scopes every credit and research idempotency key so a client-supplied Idempotency-Key can never replay across tenants
2026-07-13 19:34:11 +02:00
2026-06-12 09:38:11 +02:00
2026-07-13 20:05:24 +02:00
2026-07-07 05:56:35 +02:00
2026-07-17 16:26:30 +00:00
2026-01-29 05:59:04 +01:00
2026-07-07 09:40:27 +02:00
2026-05-24 16:04:48 +00:00
2026-05-24 16:04:48 +00:00
2026-07-15 17:54:03 +02:00
2026-05-18 13:09:11 +00:00
2026-07-19 13:22:56 +02:00
2026-06-13 10:47:17 +02:00
2026-05-24 04:42:43 +00:00
2026-06-28 05:58:25 +00:00
2026-07-19 16:13:43 +02:00
2026-01-17 14:11:14 +00:00
2026-07-04 11:36:47 +02:00
2026-01-17 14:11:14 +00:00
2026-01-17 14:11:14 +00:00
2026-07-04 08:07:49 +02:00
2026-05-27 15:56:01 +00:00
2026-01-17 14:11:14 +00:00
2026-05-23 16:54:12 +00:00
2026-06-10 17:16:56 +02:00
2026-01-17 14:11:14 +00:00
2026-07-04 11:36:47 +02:00
2026-01-17 14:11:14 +00:00
2026-06-28 19:09:37 +02:00
2026-07-14 07:32:16 +02:00
2026-06-08 06:25:40 +02:00
2026-06-08 06:25:40 +02:00
2026-07-17 16:26:30 +00:00
2026-06-04 11:49:55 +02:00
2026-01-17 14:11:14 +00:00
2026-01-17 14:11:14 +00:00
2026-07-13 20:05:24 +02:00
2026-07-13 16:11:15 +02:00
2026-07-16 08:57:19 +02:00
2026-01-17 14:11:14 +00:00
2026-07-19 11:04:58 +02:00
2026-07-19 13:22:56 +02:00
2026-06-13 07:18:23 +02:00
2026-05-27 16:40:23 +00:00
2026-05-27 12:06:18 +00:00
2026-06-08 06:25:40 +02:00
2026-06-28 05:09:50 +00:00
feat: AI contact research agent that gathers cited web findings per contact with sync and background-batch runs - contact_research_runs table plus a strict save_research schema (every signal and public_artifact must carry a url, confidence high/medium/low, signals<=5 hooks<=3, reject-and-reprompt once then fail), a text/template runtime prompt injecting org voice, contact record, objective, and 5-search/6-fetch budgets, a research service that drives search_web/fetch_url through the provider loop and charges 2 credits on save (billable even for nothing_found, refund-free since charged only on save, balance and abuse-cap pre-checked so a capped org never does free work), POST/GET /contacts/:id/research plus a 500-cap /contacts/research/batch draining through a bounded pool of 4 workers over FOR-UPDATE-SKIP-LOCKED claims (no new Kafka), an org-scoped AI_RESEARCH_PROGRESS realtime event gated to view_contacts, APIPermAIResearch bit 23, a ContactEdit Research tab and a ContactsTable bulk Research action, and docs; also org-scopes every credit and research idempotency key so a client-supplied Idempotency-Key can never replay across tenants
2026-07-13 19:34:11 +02:00
2026-05-23 16:54:12 +00:00
2026-07-18 08:42:08 +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-06-28 05:09:50 +00:00
2026-06-07 07:03:49 +02:00
2026-05-24 12:01:37 +00:00
2026-06-28 05:09:50 +00:00
2026-06-08 15:04:36 +02:00
2026-07-19 07:28:38 +02:00
2026-07-19 18:45:50 +02:00
2026-07-12 08:59:59 +02:00
2026-05-25 15:42:50 +00:00
2026-05-27 16:17:53 +00:00
2026-07-04 08:07:50 +02:00
2026-06-01 03:09:17 +02:00
2026-06-15 08:11:20 +02:00
2026-06-15 08:11:20 +02:00
2026-07-11 17:31:23 +02:00