Spec for the per-client CRM workspace of gHashTag/999-multibots-telegraf (apps/vibee-editor): agent_messages.thread ('self' default, 'client:'), body.client / ?client= on the four /api/agent routes with gates before the first DB read, clientContextBlock in runAgent, table crm_duet_runs persisted at start/turn/finish with 'lost' derived on read after 30 min, read tools crm_clients / crm_client_plan / crm_duet_runs, player routes /crm/:clientId and /crm/:clientId/chat. Measured before: one thread per person, flat /crm, duet runs in a process Map lost on redeploy (duet-mtzsz1la 2026-09-13). Claim status: contract and gates unit-tested with doubles; dashboard seen live and run surviving a redeploy are NOT claimed.
Spec for the per-client CRM workspace of gHashTag/999-multibots-telegraf (apps/vibee-editor): agent_messages.thread ('self' default, 'client:'), body.client / ?client= on the four /api/agent routes with gates before the first DB read, clientContextBlock in runAgent, table crm_duet_runs persisted at start/turn/finish with 'lost' derived on read after 30 min, read tools crm_clients / crm_client_plan / crm_duet_runs, player routes /crm/:clientId and /crm/:clientId/chat. Measured before: one thread per person, flat /crm, duet runs in a process Map lost on redeploy (duet-mtzsz1la 2026-09-13). Claim status: contract and gates unit-tested with doubles; dashboard seen live and run surviving a redeploy are NOT claimed.