S02: добавить in-memory репозитории метаданных #13

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

Контекст

Спринт 01 переводит storage в first-class concepts. S01 уже добавила ADR, доменные сущности и storage-порты. Следующий шаг — сделать первые metadata implementations без durable persistence.

Цель

Реализовать in-memory репозитории метаданных для:

  • WorkspaceRepository
  • ChatRepository
  • ChatFileRepository

В scope

  • только outer-layer repository implementations
  • CRUD/query поведение, требуемое текущими портами
  • минимальное и детерминированное поведение для тестов и локального запуска
  • focused repository-level tests

Вне scope

  • HTTP API
  • filesystem storage
  • quota logic
  • sandbox integration
  • durable DB

Ограничения

  • сохранять dependency direction inward
  • реализации живут в repository/
  • без FastAPI, Docker и OpenTelemetry
  • не добавлять поведение, которого нет в контрактах

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

  • репозитории чисто реализуют текущие storage ports
  • работает lookup workspace по user_id
  • chat create/get/list/delete работает в workspace scope
  • chat file metadata save/get/list/delete/clear работает в chat scope
  • добавлены focused unit tests
  • проходит make typecheck

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

  • repository/workspace.py
  • repository/chat.py
  • repository/chat_file.py
  • focused tests в test/*

Зависимости

  • можно приступать
  • блокирует S04, S05 и S07

Ветки

  • Ветка-основание: feat/storage
  • Новая ветка: feat/storage-s02-in-memory-metadata-repositories
## Контекст Спринт 01 переводит storage в first-class concepts. S01 уже добавила ADR, доменные сущности и storage-порты. Следующий шаг — сделать первые metadata implementations без durable persistence. ## Цель Реализовать in-memory репозитории метаданных для: - `WorkspaceRepository` - `ChatRepository` - `ChatFileRepository` ## В scope - только outer-layer repository implementations - CRUD/query поведение, требуемое текущими портами - минимальное и детерминированное поведение для тестов и локального запуска - focused repository-level tests ## Вне scope - HTTP API - filesystem storage - quota logic - sandbox integration - durable DB ## Ограничения - сохранять dependency direction inward - реализации живут в `repository/` - без FastAPI, Docker и OpenTelemetry - не добавлять поведение, которого нет в контрактах ## Критерии приемки - репозитории чисто реализуют текущие storage ports - работает lookup workspace по `user_id` - chat create/get/list/delete работает в workspace scope - chat file metadata save/get/list/delete/clear работает в chat scope - добавлены focused unit tests - проходит `make typecheck` ## Предполагаемые файлы - `repository/workspace.py` - `repository/chat.py` - `repository/chat_file.py` - focused tests в `test/*` ## Зависимости - можно приступать - блокирует S04, S05 и S07 ## Ветки - Ветка-основание: `feat/storage` - Новая ветка: `feat/storage-s02-in-memory-metadata-repositories`
gglamer changed title from S02: add in-memory metadata repositories to S02: добавить in-memory репозитории метаданных 2026-04-07 16:43:18 +00:00
David-shvarts28 was assigned by gglamer 2026-04-07 16:44:41 +00:00
gglamer added this to the Tasks project 2026-04-07 16:44:45 +00:00
David-shvarts28 added reference feat/storage-s02-in-memory-metadata-repositories 2026-04-07 18:03:47 +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#13
No description provided.