refactor(agents): rename starter_prompts to conversation_starters (MUL-6709) (#7592)
* refactor(agents): rename starter_prompts to conversation_starters The UI, docs and all four locales call this feature "Conversation starters" (#7573), but every identifier behind it still said `starter_prompts` — the DB column, the wire field, the `/api/config` capability flag, the TS types, the i18n keys, and the `?focus=` token that a user can read in their own address bar. The old name is also the one #7573 rejected on the way in: it promises a prompt, while selecting a starter only prefills the composer. Rename it everywhere so the identifier matches the product. This is a breaking rename with no compatibility shim, and it is free exactly once: the column arrived in migration 404 (#7261) after the last release tag, so nothing has shipped. No deployed client reads the old name, no stored data uses it, and `agent_conversation_starters_supported` has no version skew to straddle. After this release, the same change would cost a wire alias, a dual-written capability flag, and older Desktop/Mobile builds silently hiding the editor. Migration 404 stays as-shipped; 432 renames the column and its CHECK constraint, so an already-migrated dev or staging database converges with a fresh one. Co-authored-by: multica-agent <github@multica.ai> * docs(skills): name the conversation-starters surface for agents `multica-creating-agents` mentioned `conversation_starters` only as a wire field in two tables. It never said what the feature is called in the product, where a human configures it, or what selecting one does — so an agent reading this skill would tell a user about "conversation starters" as a JSON field and leave them with nowhere to go. Add the product name (both languages), the Instructions-tab deep link, and the behaviour that makes the name accurate: selecting one only fills the composer. Also record that an agent with none configured still shows three built-in defaults, so "the Chat shows suggestions" is not evidence this agent has any. Document one gap the field table implied away: the accepted-body list is not a CLI surface. `conversation_starters` has no `agent create` / `agent update` flag — only `agent copy` carries an existing value forward — so an agent following the old text would build a create command that silently drops it. Co-authored-by: multica-agent <github@multica.ai> * fix(onboarding): keep the released starter_prompt field on the pre-v3 shim The rename in ec44cc0ef swept up `starter_prompt` (singular) on `bootstrapOnboardingRuntimeRequest`. That is a different contract from the per-agent `starter_prompts` this PR renames: it is a field on the endpoint marked "DEPRECATED, kept for desktop < v3", and unlike the per-agent one it HAS shipped — it is in v0.4.34, released since fbd965e5bf. Renaming it breaks the clients it exists for, and breaks them silently: the handler decodes with a plain json.Decoder, so an old Desktop build's `starter_prompt` would be dropped as an unknown field, the request would still return 200, and the onboarding issue would quietly fall back to the default description instead of the text the user typed. The test change hid it by moving the fixture to the new name, removing the only coverage of the old one. Revert both files. The two features share a word root and nothing else — the free-rename argument for the per-agent field does not extend to a contract that is already in the wild. Co-authored-by: multica-agent <github@multica.ai> --------- Co-authored-by: J <bohan@devv.ai> Co-authored-by: multica-agent <github@multica.ai>
B
Bohan Jiang committed
09a2410e882be8435bd6c4a26e03f7e288038203
Parent: f74a710
Committed by GitHub <noreply@github.com>
on 8/26/2026, 11:01:01 AM