- Shipped
- July 19, 2026 at 1:37 AM UTC
- Author
- kamo
- Commit
- 8e85565
The agent editor was a ~800px MUI Dialog whose entire surface was a 10-row textarea, on the one AI tab that used a dialog at all. It is now a dedicated route, and the editing model behind it is structured rather than one blob. - /settings/ai/sales-agents/new — a 720px column, not the studio. Template cards (the card IS the industry, so no industry dropdown), then two fields: name and one sentence about the business. A working agent in under a minute. - /settings/ai/sales-agents/[id] — full width, ONE scrolling document with sticky section headers, content capped at 880px so single-line inputs are not stretched across a 4K display. No 240px nav rail: nine sections is a scroll-spy job, not a nav job. - Try-it-out is a header toggle rather than a permanently reserved column. An empty chat pane beside a brand-new agent is wasted space that reads as the user's failure to fill it. - Readiness is an ordered, dismissible list of what would help — never a fraction. A fraction tells someone they are failing; a list tells them what to do next. - Locked rules render locked and unremovable, and taking a section over by hand warns when it contains one (the compiler now re-appends them regardless). - Header states plainly that edits only affect NEW conversations, because the prompt is snapshotted at session creation and users would otherwise conclude their change did not work. - outboundEnabled is only sent when actually changed: the server 403s the whole PUT if that field is present without MANAGE_SALES_AGENT_OUTREACH, so including it in every autosave would break the studio for anyone lacking that right. Also removes the duplicate raw "AI system prompt" box from the chat channel editor. It was a second, weaker place to author the same thing, with no versioning, no locked rules and no history — whichever editor you happened to open decided what customers heard. Existing prompts still resolve; channels using one now get a notice pointing at agents. Copy carries no AI jargon by design, and the hardcoded English industry array is replaced with translated labels.