feat(ai-chat): per-role autoStart toggle + custom launchMessage (#149) #156
Reference in New Issue
Block a user
Delete Branch "feat/ai-role-autostart"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Закрывает #149.
Что
Карточки агентных ролей всегда авто-отправляли захардкоженное
"Take a look at the current document". Сделал настраиваемым на уровне роли:autoStart(bool, default true) — отправлять ли сообщение при выборе роли.launchMessage(nullable text) — текст авто-старта; пусто → дефолт. ПриautoStart=false— только привязать роль, ничего не слать (первое ручное сообщение всё равно несётroleId).Существующие роли:
autoStart=true/launchMessage=null→ поведение в точности как раньше.Full-stack
20260624T120000(аддитивная):auto_start boolean NOT NULL DEFAULT true+launch_message text;downдропает обе.db.d.tsпоправлен руками.autoStart(@IsBoolean),launchMessage(trim@Transform,@MaxLength 2000).undefined=не менять,""→null,autoStart ?? true). Оба поля — в picker-view для рядовых участников (им нужно решить, слать ли авто-сообщение);instructions/modelConfigостаются admin-only.IAiRole, форма роли (Switch+Textarea, ре-гидрация на edit),handleRolePickветвится поautoStart; i18n en-US + ru-RU.По ревью (мой review-агент, NEEDS CHANGES — закрыто)
rolePickedNoSendпри «New chat» после пика роли сautoStart=false(тред не ремоунтится, карточки не возвращались) → render-phase one-shot reset при пустом role-less состоянии.launchMessagecreate/update.instructions/modelConfig— только админам (есть тест-контракт).Проверка
Сервер: 68 role-тестов (dto/service/repo) зелёные,
tsc --noEmitчисто. Клиент:tsc --noEmitчисто, role-тесты зелёные.🤖 Generated with Claude Code