S04: добавить usecase для workspace и chat #14

Open
opened 2026-04-07 16:39:05 +00:00 by gglamer · 0 comments
Owner

Контекст

После storage contracts и первых adapters спринту 01 нужны workspace/chat usecases, чтобы storage стал first-class application behavior, а не только implicit chat_id handling.

Цель

Реализовать usecases для:

  • get-or-create workspace on first touch
  • create chat
  • get chat
  • list chats in workspace
  • delete chat

В scope

  • auto-create workspace из trusted user_id
  • один workspace на одного user в v1
  • chat lifecycle поверх metadata repo и storage adapter
  • conflict на delete chat при активном sandbox
  • создание history.md и chat layout через storage adapter
  • DI wiring для новых usecases
  • focused usecase tests

Вне scope

  • file upload/delete logic
  • HTTP router layer
  • quota enforcement для файлов
  • durable DB

Ограничения

  • usecases живут в usecase/
  • без FastAPI и filesystem imports во внутренних слоях
  • storage доступен только через порты
  • логика должна оставаться явной и тестируемой

Критерии приемки

  • workspace создается автоматически on first touch
  • chat create/get/list/delete работает через usecases
  • delete chat возвращает/бросает conflict при active sandbox
  • chat create инициализирует storage layout и history.md
  • DI wiring обновлен чисто
  • focused tests проходят
  • проходит make typecheck

Предполагаемые файлы

  • usecase/workspace.py
  • usecase/chat.py
  • adapter/di/container.py
  • focused tests в test/*

Зависимости

  • зависит от S02 и S03
  • блокирует S05, S06 и S07

Ветки

  • Ветка-основание: feat/storage-s03-chat-filesystem-storage
  • Новая ветка: feat/storage-s04-workspace-chat-usecases
## Контекст После storage contracts и первых adapters спринту 01 нужны workspace/chat usecases, чтобы storage стал first-class application behavior, а не только implicit `chat_id` handling. ## Цель Реализовать usecases для: - get-or-create workspace on first touch - create chat - get chat - list chats in workspace - delete chat ## В scope - auto-create workspace из trusted `user_id` - один workspace на одного user в v1 - chat lifecycle поверх metadata repo и storage adapter - conflict на delete chat при активном sandbox - создание `history.md` и chat layout через storage adapter - DI wiring для новых usecases - focused usecase tests ## Вне scope - file upload/delete logic - HTTP router layer - quota enforcement для файлов - durable DB ## Ограничения - usecases живут в `usecase/` - без FastAPI и filesystem imports во внутренних слоях - storage доступен только через порты - логика должна оставаться явной и тестируемой ## Критерии приемки - workspace создается автоматически on first touch - chat create/get/list/delete работает через usecases - delete chat возвращает/бросает conflict при active sandbox - chat create инициализирует storage layout и `history.md` - DI wiring обновлен чисто - focused tests проходят - проходит `make typecheck` ## Предполагаемые файлы - `usecase/workspace.py` - `usecase/chat.py` - `adapter/di/container.py` - focused tests в `test/*` ## Зависимости - зависит от S02 и S03 - блокирует S05, S06 и S07 ## Ветки - Ветка-основание: `feat/storage-s03-chat-filesystem-storage` - Новая ветка: `feat/storage-s04-workspace-chat-usecases`
gglamer changed title from S04: add workspace and chat usecases to S04: добавить usecase для workspace и chat 2026-04-07 16:43:18 +00:00
gglamer added this to the Tasks project 2026-04-07 16:46:54 +00:00
blaze was assigned by gglamer 2026-04-07 16:46:58 +00:00
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: platform/master#14
No description provided.