docs: track post-0.93.0 share-AI cap change + deferred stream-coverage debt
Follow-ups from the multi-aspect review of the e5bc82c7..d4658d4c range. - CHANGELOG: document under [Unreleased] that the default per-workspace hourly public-share assistant cap was lowered 300 -> 100 after the v0.93.0 tag (#62). v0.93.0 shipped 300, so existing deployments that never set SHARE_AI_WORKSPACE_MAX_PER_HOUR drop to 100 on upgrade. - Recreate the still-open Section 3 (AiChatService.stream integration coverage) of the deleted feature-test-coverage-deferred.md as a focused backlog doc so the test debt stays tracked; Sections 1-2 are already closed by the integration harness (PR #115). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -10,6 +10,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
|
|
||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- **Public share AI: default per-workspace hourly assistant cap lowered
|
||||||
|
300 → 100.** The limiter falls back to this default whenever
|
||||||
|
`SHARE_AI_WORKSPACE_MAX_PER_HOUR` is unset, so a `0.93.0` deployment that
|
||||||
|
never set the env var has its anonymous public-share assistant hourly cap
|
||||||
|
cut from 300 to 100 on upgrade. Set `SHARE_AI_WORKSPACE_MAX_PER_HOUR` to
|
||||||
|
keep the previous limit. (#62)
|
||||||
|
|
||||||
## [0.93.0] - 2026-06-21
|
## [0.93.0] - 2026-06-21
|
||||||
|
|
||||||
This release builds on the 0.91.0 AI foundation: admin-defined AI agent roles,
|
This release builds on the 0.91.0 AI foundation: admin-defined AI agent roles,
|
||||||
|
|||||||
33
docs/backlog/ai-chat-stream-integration-coverage.md
Normal file
33
docs/backlog/ai-chat-stream-integration-coverage.md
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
# Отложенные интеграционные тесты `AiChatService.stream`
|
||||||
|
|
||||||
|
Статус: **открыто.** Это остаток от прежнего документа
|
||||||
|
`feature-test-coverage-deferred.md` (хвост тест-плана PR #49). Два из трёх
|
||||||
|
его разделов уже закрыты новой интеграционной обвязкой против реального
|
||||||
|
Postgres/Redis (`apps/server/test/integration/`, PR #115):
|
||||||
|
|
||||||
|
- ✅ **Раздел 1 — repo-тесты против БД.** Закрыт `ai-agent-roles-repo`,
|
||||||
|
`ai-chat-repo-find-by-creator`, `page-template-references-cascade`,
|
||||||
|
`workspace-repo-update-setting` (`*.int-spec.ts`).
|
||||||
|
- ✅ **Раздел 2 — достоверность Lua-окна cost-cap против реального Redis.**
|
||||||
|
Закрыт `public-share-workspace-limiter.int-spec.ts`.
|
||||||
|
- ⬜ **Раздел 3 (ниже) — полная интеграция `AiChatService.stream`.** Всё ещё
|
||||||
|
не реализован; держим запись открытой, чтобы тест-долг не потерялся при
|
||||||
|
удалении исходного документа.
|
||||||
|
|
||||||
|
## Полная интеграция `AiChatService.stream` (рефактор R1-stream)
|
||||||
|
|
||||||
|
`apps/server/src/core/ai-chat/ai-chat.service.ts`. В PR #49 извлечён и
|
||||||
|
покрыт только чистый `buildErrorAssistantRecord`. Полные интеграционные
|
||||||
|
сценарии всё ещё отложены:
|
||||||
|
|
||||||
|
- **Запись чата, упавшего на первом ходу** (`onError`) — ассистентская
|
||||||
|
запись об ошибке должна сохраняться, даже когда первый ход стрима падает.
|
||||||
|
- **Жизненный цикл external-MCP клиентов** — клиенты закрываются и при
|
||||||
|
`throw`, и при `onFinish` (нет утечки соединений).
|
||||||
|
- **Анти-tamper: история восстанавливается из БД, а не из `body.messages`** —
|
||||||
|
клиент не может подменить историю через тело запроса.
|
||||||
|
|
||||||
|
Эти сценарии требуют сидирования SDK `streamText` (инъекция/seam колбэков
|
||||||
|
`onError` / `onFinish` / `onAbort` + `res.hijack`). Отложено, чтобы не
|
||||||
|
дестабилизировать 287-строчный `stream()`; делать вместе с выносом testable
|
||||||
|
turn-pipeline.
|
||||||
Reference in New Issue
Block a user