b8e836fd07
UUID as primary identifier everywhere (replace slug-based routing)
...
Deploy Tracker / deploy (push) Failing after 3s
WS Manager:
- member_sessions keyed by member_id (UUID), not slug
- broadcast_message: author_id instead of author_slug
- broadcast_all: exclude_member_id instead of exclude_slug
- mention filtering by member_id from MemberBrief objects
WS Handler:
- All DB lookups by Member.id (UUID), not slug
- auth.ok includes member_id + online as [{id, slug}]
- agent.status events include id + slug
- Bridge on_behalf_of by UUID
API callers (messages, members, tasks):
- All broadcast calls use author_id/exclude_member_id
2026-02-27 09:20:19 +01:00
5642f53e11
Structured system messages: actor + mentions as objects
...
Deploy Tracker / deploy (push) Failing after 5s
- Message model: added actor_id FK (who initiated the action)
- MessageOut: mentions as MemberBrief[], actor as MemberBrief
- _system_message: accepts mentioned_members list, stores actor_id
- WS filtering: checks mentions array (not just text content)
- broadcast_message: handles both string and dict mentions
2026-02-27 08:33:39 +01:00
f20da3685d
Fix: task system messages use broadcast_message (not broadcast_all)
...
Deploy Tracker / deploy (push) Failing after 4s
broadcast_all bypasses agent filtering (system message @mention check),
so agents received ALL task lifecycle messages and processed them as
new requests, causing duplicate task creation.
2026-02-27 07:59:53 +01:00
c2c595224c
Phase 1: agent streaming WS events + thinking field in messages
...
Deploy Tracker / deploy (push) Failing after 4s
- New WS events: agent.stream.start/delta/tool/end
- Tracker relays agent stream events to project subscribers
- Message model: added 'thinking' column (nullable text)
- MessageCreate, MessageOut, converters: thinking support
- chat.send WS handler: accepts thinking field
- broadcast_message: custom event_type parameter
2026-02-27 06:55:36 +01:00
0c44a8b384
Fix #4 hotfix: restore missing router = APIRouter in steps.py
Deploy Tracker / deploy (push) Failing after 3s
2026-02-26 15:17:35 +01:00
73c4ace9e9
Fix #18 : Add comment explaining token query param in download_project_file
Deploy Tracker / deploy (push) Failing after 4s
2026-02-26 15:16:50 +01:00
b6f12c2a56
Fix #17 : Add comment explaining token query param in download_attachment
Deploy Tracker / deploy (push) Failing after 4s
2026-02-26 15:16:42 +01:00
19bb797856
Fix #16 : Use explicit 'online' key in auth_ok instead of StrEnum value
Deploy Tracker / deploy (push) Failing after 4s
2026-02-26 15:16:10 +01:00
21199dd4e3
Fix #15 : Remove empty services/ directory
Deploy Tracker / deploy (push) Failing after 4s
2026-02-26 15:15:58 +01:00
e842149a23
Fix #14 : broadcast_message excludes by session_id, not slug (multi-tab support)
Deploy Tracker / deploy (push) Failing after 4s
2026-02-26 15:15:50 +01:00
8a54a2d609
Fix #13 : Basic RBAC — only owners can delete projects and members
Deploy Tracker / deploy (push) Failing after 4s
2026-02-26 15:15:25 +01:00
7360c79eeb
Fix #12 : Remove duplicate _to_member_out, use converters.member_out
Deploy Tracker / deploy (push) Failing after 4s
2026-02-26 15:15:00 +01:00
872699647f
Fix #11 : Remove dead config (redis, authentik, gitea, agent_max_restarts)
Deploy Tracker / deploy (push) Failing after 4s
2026-02-26 15:14:29 +01:00
b930ca1155
Fix #10 : list_tasks API now accepts project_slug query param (used by Picogent)
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
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
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)
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)
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
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
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
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
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
Deploy Tracker / deploy (push) Failing after 5s
2026-02-26 15:11:47 +01:00
c7b073b36c
Switch all imports to relative paths
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, убраны сломанные алиасы
Deploy Tracker / deploy (push) Failing after 3s
2026-02-25 16:15:08 +01:00
d0c0c87120
типизация: единые схемы везде, убраны ручные dict-ы из broadcasts, удалён дублирующий schemas.py
Deploy Tracker / deploy (push) Failing after 3s
2026-02-25 14:14:29 +01:00
be5fc6e99e
Унифицированная типизация данных через Pydantic схемы
...
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
...
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
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
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)
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
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)
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
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)
Deploy Tracker / deploy (push) Failing after 4s
2026-02-25 11:05:40 +01:00
39dde0e2d8
fix: consistent delete response format
Deploy Tracker / deploy (push) Failing after 4s
2026-02-25 10:37:47 +01:00
cd2ffd78ac
Fix duplicate volume mount in docker-compose.yml
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
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
Deploy Tracker / deploy (push) Failing after 4s
2026-02-25 08:41:44 +01:00
7a58cf97c8
fix: remove BFF from seed data
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
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
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
...
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
...
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
Deploy Tracker / deploy (push) Failing after 3s
2026-02-24 23:53:43 +01:00
41d98cad88
refactor: вся фильтрация сообщений на стороне Tracker
...
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)
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
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
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
...
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