Commit Graph

69 Commits

Author SHA1 Message Date
b930ca1155 Fix #10: list_tasks API now accepts project_slug query param (used by Picogent)
Some checks failed
Deploy Tracker / deploy (push) Failing after 4s
2026-02-26 15:14:17 +01:00
5dfd83c28f Fix #9: Validate sender exists and is active in WS chat.send
Some checks failed
Deploy Tracker / deploy (push) Failing after 4s
2026-02-26 15:13:59 +01:00
607f822b4e Fix #8: Remove author_type/author_id from MessageCreate — always resolve from auth
Some checks failed
Deploy Tracker / deploy (push) Failing after 5s
2026-02-26 15:13:50 +01:00
7233d3f507 Fix #7: Implement update_my_status endpoint (was TODO stub)
Some checks failed
Deploy Tracker / deploy (push) Failing after 4s
2026-02-26 15:13:31 +01:00
3228b4c290 Fix #6: Remove useless _record_action in delete_task (CASCADE deletes it)
Some checks failed
Deploy Tracker / deploy (push) Failing after 4s
2026-02-26 15:13:10 +01:00
901f54f790 Fix #5: reject_task now uses _system_message for proper WS broadcast
Some checks failed
Deploy Tracker / deploy (push) Failing after 4s
2026-02-26 15:13:00 +01:00
05b56dbdae Fix #4: Remove duplicate step_out and import in steps.py
Some checks failed
Deploy Tracker / deploy (push) Failing after 4s
2026-02-26 15:12:46 +01:00
b67587b647 Fix #3: Avoid detached SQLAlchemy objects in middleware — store member_id, re-fetch in endpoints
Some checks failed
Deploy Tracker / deploy (push) Failing after 5s
2026-02-26 15:12:36 +01:00
dc6556074e Fix #2: Use broadcast_all for task system messages instead of broadcast_task_event
Some checks failed
Deploy Tracker / deploy (push) Failing after 4s
2026-02-26 15:11:59 +01:00
5e3ec5e7c5 Fix #1: SELECT FOR UPDATE on task_counter to prevent race condition
Some checks failed
Deploy Tracker / deploy (push) Failing after 5s
2026-02-26 15:11:47 +01:00
c7b073b36c Switch all imports to relative paths
Some checks failed
Deploy Tracker / deploy (push) Failing after 3s
2026-02-26 10:46:09 +01:00
659454c2e6 fix: _to_message_out → message_out, _to_step_out → step_out, убраны сломанные алиасы
Some checks failed
Deploy Tracker / deploy (push) Failing after 3s
2026-02-25 16:15:08 +01:00
d0c0c87120 типизация: единые схемы везде, убраны ручные dict-ы из broadcasts, удалён дублирующий schemas.py
Some checks failed
Deploy Tracker / deploy (push) Failing after 3s
2026-02-25 14:14:29 +01:00
be5fc6e99e Унифицированная типизация данных через Pydantic схемы
Some checks failed
Deploy Tracker / deploy (push) Failing after 3s
- Добавлен schemas.py с едиными моделями для API и WS
- Заменены ручные dict-ы на helper функции во всех endpoints
- Обновлены WS broadcasts для использования тех же схем
- Все передаваемые данные теперь строго типизированы
2026-02-25 14:08:33 +01:00
67eecc079f Строгая типизация: единые Pydantic-схемы и конвертеры для REST/WS
Some checks failed
Deploy Tracker / deploy (push) Failing after 4s
- Добавлен api/schemas.py с MemberBrief, MemberOut, TaskOut, MessageOut, StepOut, ProjectFileOut, AttachmentOut
- Добавлен api/converters.py — единые ORM→Pydantic конвертеры
- Все REST endpoints используют response_model из schemas
- Все WS broadcasts используют .model_dump() вместо ручных dict-ов
- Удалены дублирующие локальные схемы из каждого модуля
2026-02-25 14:03:31 +01:00
a4fcfe91b3 fix: unified message format (author object), CASCADE delete tasks, author_id nullable
Some checks failed
Deploy Tracker / deploy (push) Failing after 3s
2026-02-25 13:56:15 +01:00
2e36b26b05 security: path traversal fix, bcrypt passwords, OPTIONS preflight skip
Some checks failed
Deploy Tracker / deploy (push) Failing after 4s
2026-02-25 12:21:29 +01:00
9bf66a88b2 fix: system messages author=None (actor tracked in task_actions, not message author)
Some checks failed
Deploy Tracker / deploy (push) Failing after 3s
2026-02-25 12:04:19 +01:00
0840e38849 enforce: auth required on ALL API endpoints except login
Some checks failed
Deploy Tracker / deploy (push) Failing after 4s
2026-02-25 11:24:01 +01:00
8b993abc37 fix: support ?token= query param for auth (downloads from browser)
Some checks failed
Deploy Tracker / deploy (push) Failing after 4s
2026-02-25 11:16:10 +01:00
d2402dc213 fix: ProjectMember unique constraint, task flush before action, clean models
Some checks failed
Deploy Tracker / deploy (push) Failing after 4s
2026-02-25 11:10:48 +01:00
aedbe583c8 fix: flush task before recording action (task_id was None)
Some checks failed
Deploy Tracker / deploy (push) Failing after 4s
2026-02-25 11:05:40 +01:00
39dde0e2d8 fix: consistent delete response format
Some checks failed
Deploy Tracker / deploy (push) Failing after 4s
2026-02-25 10:37:47 +01:00
cd2ffd78ac Fix duplicate volume mount in docker-compose.yml
Some checks failed
Deploy Tracker / deploy (push) Failing after 9s
2026-02-25 09:20:32 +01:00
56aac3490d feat: project files API — upload, list, search, download, update description, delete
Some checks failed
Deploy Tracker / deploy (push) Failing after 4s
2026-02-25 09:18:52 +01:00
ce98d45712 feat: auto-seed in dev mode on startup if DB empty
Some checks failed
Deploy Tracker / deploy (push) Failing after 4s
2026-02-25 08:41:44 +01:00
7a58cf97c8 fix: remove BFF from seed data
Some checks failed
Deploy Tracker / deploy (push) Failing after 4s
2026-02-25 08:39:45 +01:00
befa3c71bc fix: bind mount volumes (data/), remove redis, restart policy
Some checks failed
Deploy Tracker / deploy (push) Failing after 3s
2026-02-25 07:02:43 +01:00
625e75a005 feat: file attachments — upload endpoint, attachment creation on messages, download
Some checks failed
Deploy Tracker / deploy (push) Failing after 2s
2026-02-25 06:17:20 +01:00
e8f7d04821 refactor: полный UUID рефакторинг tasks.py + audit log + WS member_id
Some checks failed
Deploy Tracker / deploy (push) Failing after 3s
- Все slug ссылки заменены на UUID (assignee_id, reviewer_id, watcher_ids, author_id)
- TaskAction записывается при каждом изменении задачи
- _system_message принимает actor: Member вместо actor_slug
- ConnectedClient хранит member_id для task event фильтрации
- broadcast_task_event фильтрует по member_id вместо slug
2026-02-25 04:59:57 +01:00
41f4bc5ebc refactor: UUID-based member identification + task audit log + soft delete
Some checks failed
Deploy Tracker / deploy (push) Failing after 2s
- Member: добавлен is_active для soft delete
- Message: author_id (UUID FK) вместо author_slug
- Task: assignee_id, reviewer_id (UUID FK), watcher_ids (UUID[])
- Новая модель TaskAction для аудита действий с задачами
- Новый enum TaskActionType
- API обновлен под новые поля с relationships
- WS handler использует author_id вместо author_slug
- Soft delete для members через is_active=False
- Автоматическое создание TaskAction записей при изменениях
2026-02-25 00:13:30 +01:00
daf3f06dcb refactor: заменены хардкод строки на enums
Some checks failed
Deploy Tracker / deploy (push) Failing after 3s
2026-02-24 23:53:43 +01:00
41d98cad88 refactor: вся фильтрация сообщений на стороне Tracker
Some checks failed
Deploy Tracker / deploy (push) Failing after 2s
- System messages: агенты получают только если @slug в content
- Убрана дублирующая фильтрация из Picogent Router
2026-02-24 23:40:17 +01:00
a985708f70 feat: auto-subscribe на проекты при auth (по membership)
Some checks failed
Deploy Tracker / deploy (push) Failing after 3s
2026-02-24 23:24:51 +01:00
cab0baca11 Add ProjectMember model and API endpoints for project membership management
Some checks failed
Deploy Tracker / deploy (push) Failing after 2s
2026-02-24 23:18:44 +01:00
904c105174 refactor: all task mutations require auth — actor from JWT/token, no ?actor= or ?slug= params
Some checks failed
Deploy Tracker / deploy (push) Failing after 1s
2026-02-24 13:32:29 +01:00
2f0c4d1636 feat: dual system messages — detailed in task, brief in chat
Some checks failed
Deploy Tracker / deploy (push) Failing after 1s
- Task comments: who, what, when (detailed history)
- Chat messages: brief notifications
- PATCH /tasks accepts ?actor= for attribution
2026-02-24 12:27:29 +01:00
b527e19db1 fix: system messages go to project chat (visible in ChatPanel)
Some checks failed
Deploy Tracker / deploy (push) Failing after 1s
2026-02-24 12:22:51 +01:00
f7ee6d1a7c feat: system messages for task lifecycle (create, assign, status change)
Some checks failed
Deploy Tracker / deploy (push) Failing after 1s
Tracker now auto-generates system messages visible to all members/agents.
No more side effects in router — agents see system messages and act via tools.
2026-02-24 12:11:43 +01:00
050d672836 fix: list_messages returns newest N (was returning oldest N)
Some checks failed
Deploy Tracker / deploy (push) Failing after 23s
2026-02-24 10:18:15 +01:00
ffca92d08a fix: JWT auth fallback by slug in WS handler
Some checks failed
Deploy Tracker / deploy (push) Failing after 2s
2026-02-24 09:38:31 +01:00
e39c26d321 feat: JWT auth in WebSocket handler
Some checks failed
Deploy Tracker / deploy (push) Failing after 2s
2026-02-23 23:22:09 +01:00
dbd20ff550 Epic 2: take validates status, reject adds comment, assign validates member
Some checks failed
Deploy Tracker / deploy (push) Failing after 1s
2026-02-23 20:37:59 +01:00
6bbddad7c2 Epic 1: WS multi-session, task events broadcast, REST auth middleware, heartbeat fix
Some checks failed
Deploy Tracker / deploy (push) Failing after 1s
2026-02-23 20:25:21 +01:00
a1be497cfe simplify: humans get all WS events, no subscription needed
Some checks failed
Deploy Tracker / deploy (push) Failing after 2s
2026-02-23 19:15:28 +01:00
f50182bc52 fix: on_behalf_of in WS auth for BFF proxy, debug logging in broadcast
Some checks failed
Deploy Tracker / deploy (push) Failing after 2s
2026-02-23 19:00:21 +01:00
6a6eaada3e fix: align tracker with TRACKER-PROTOCOL.md
Some checks failed
Deploy Tracker / deploy (push) Failing after 1s
- auth.ok: add chat_id to project list (JOIN with Chat where kind=project)
- message.new broadcast: include author_name field
- chat_listen: add support for 'none' mode in manager.py
- task events: add broadcast for task.created, task.updated, task.assigned via REST
- heartbeat: implement 90s timeout → status=offline + agent.status broadcast
- tokens: use tb-{hex} format instead of urlsafe encoding
- models: support 'none' mode for chat_listen and task_listen
- fix Dockerfile: remove missing alembic files
2026-02-23 17:12:33 +01:00
a50fd946eb fix: broadcast message.new from REST API via WebSocket
Some checks failed
Deploy Tracker / deploy (push) Failing after 0s
2026-02-23 13:26:57 +01:00
74d9e826bc fix: include token in MemberOut schema
Some checks failed
Deploy Tracker / deploy (push) Failing after 1s
2026-02-23 12:55:59 +01:00
544745de61 feat: show token in member response, revoke endpoint
Some checks failed
Deploy Tracker / deploy (push) Failing after 0s
2026-02-23 12:11:12 +01:00