feat(share-ai): cap per-request output with maxOutputTokens (RT-6.1) #60
Reference in New Issue
Block a user
Delete Branch "%!s()"
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?
Источник: red-team-аудит, RT-6.1 (
docs/red-team-report.md).Модель угроз: анонимный share-ассистент выставлен наружу; цель — не дать сжечь токены владельца.
Что происходит
В
apps/server/src/core/ai-chat/public-share-chat.service.ts:200вызовstreamTextимеетstopWhen: stepCountIs(5), но не заданmaxOutputTokens. Значит один принятый анонимный запрос может выжать максимум платного вывода модели — стоимость одного запроса ничем не ограничена.Фикс
Опционально вынести в env
SHARE_AI_MAX_OUTPUT_TOKENS(дефолт 512–1024) по образцуresolveShareAiWorkspaceMax().Цена / приоритет
1 строка, нулевой риск. Главный фикс от слива токенов — делает стоимость запроса предсказуемой независимо от обхода throttle.