All done/planned/idea items from PLANNING.md, IDEAS.md, AGENT-PLAN.md and actual implementation state
241 lines
9.0 KiB
Markdown
241 lines
9.0 KiB
Markdown
# TASKS.md — Полный список задач Team Board
|
||
|
||
Обновлено: 2026-02-28
|
||
|
||
## Легенда
|
||
- ✅ Готово
|
||
- 🔧 В работе
|
||
- 📋 Запланировано
|
||
- 💡 Идея (требует brainstorm)
|
||
|
||
---
|
||
|
||
## Инфраструктура
|
||
|
||
- ✅ Tracker MVP: FastAPI + SQLAlchemy 2 + PostgreSQL 16
|
||
- ✅ Docker для Tracker (bind mounts: postgres, uploads, projects)
|
||
- ✅ Nginx + SSL (dev.team.uix.su)
|
||
- ✅ CI/CD: Gitea Actions auto-deploy
|
||
- ✅ Redis удалён (был не нужен)
|
||
- ✅ BFF удалён — фронт напрямую к Tracker
|
||
|
||
## Аутентификация
|
||
|
||
- ✅ JWT auth для людей (login/password)
|
||
- ✅ Token auth для агентов (Bearer tb-xxx)
|
||
- ✅ Auth middleware на всех /api/ endpoints
|
||
- ✅ OPTIONS preflight пропускается
|
||
- ✅ Bcrypt пароли (миграция с SHA-256)
|
||
- 📋 Authentik OAuth (SSO через auth.uix.su)
|
||
|
||
## Модели данных
|
||
|
||
- ✅ Unified Member model (human + agent)
|
||
- ✅ UUID как primary identifier везде (slug только для display)
|
||
- ✅ Soft-delete для agents (is_active flag)
|
||
- ✅ AgentConfig: capabilities, labels, chat/task_listen, prompt, model, provider
|
||
- ✅ Project: name, slug, description, repo_urls, status, task_counter, auto_assign
|
||
- ✅ ProjectMember (many-to-many)
|
||
- ✅ Task: title, desc, type, status, priority, labels, assignee, reviewer, watchers, parent_id, depends_on
|
||
- ✅ TaskAction (structured audit log)
|
||
- ✅ TaskLink (blocks, depends_on, relates_to)
|
||
- ✅ Label (глобальные, app-wide)
|
||
- ✅ TaskLabel (many-to-many)
|
||
- ✅ Step (checklist внутри задачи)
|
||
- ✅ Chat + Message (unified: чат + комментарии к задачам)
|
||
- ✅ Message: thinking, tool_log, actor_id, mentions
|
||
- ✅ Attachment (файлы в чате)
|
||
- ✅ ProjectFile (файлы проекта)
|
||
- ✅ Centralized enums (tracker/enums.py)
|
||
|
||
## WebSocket
|
||
|
||
- ✅ WS Foundation: подключение, auth, heartbeat
|
||
- ✅ Auto-subscribe на проекты при auth
|
||
- ✅ broadcast_message (с фильтрацией агентов)
|
||
- ✅ broadcast_task_event (с project_id)
|
||
- ✅ System messages: @mention filtering для агентов
|
||
- ✅ Agent streaming: start/delta/tool/end events
|
||
- ✅ config.updated event (hot reload)
|
||
- ✅ Frontend WS heartbeat (30 сек)
|
||
|
||
## REST API
|
||
|
||
- ✅ CRUD: projects, tasks, steps, messages, members
|
||
- ✅ Task links API (POST/GET/DELETE)
|
||
- ✅ Labels API (global CRUD + task associations)
|
||
- ✅ Project files API (upload, download, search, thumbnails)
|
||
- ✅ Chat attachments API
|
||
- ✅ Task search (q= по номеру + title)
|
||
- ✅ Subscription modes: all, mentions, assigned, none
|
||
- ✅ Auto-assign (task labels ↔ agent labels, project option)
|
||
- ✅ Init handshake: assigned_tasks в auth.ok
|
||
|
||
## Web Client (Vite + React SPA)
|
||
|
||
### Kanban Board
|
||
- ✅ 5 колонок (backlog → done) с цветами
|
||
- ✅ Карточки: приоритет, assignee, labels
|
||
- ✅ Parent/child key на карточках (TE-1 / TE-3)
|
||
- ✅ Move buttons (← →)
|
||
- ✅ Task dedup fix
|
||
|
||
### Task Modal
|
||
- ✅ Inline edit title + description
|
||
- ✅ Task key сверху (breadcrumb с родителем)
|
||
- ✅ Status, priority, assignee, reviewer selectors
|
||
- ✅ Steps (checklist с прогресс-баром)
|
||
- ✅ Comments (newest first, input on top)
|
||
- ✅ File attachments в чате
|
||
- ✅ Dependencies section (colored labels + search autocomplete)
|
||
- ✅ Subtasks section (status dots, clickable navigation)
|
||
- ✅ "+" Подзадача button
|
||
- ✅ Thinking blocks (collapsible 💭)
|
||
- ✅ Tool log (collapsible 🔧)
|
||
|
||
### Create Task Modal
|
||
- ✅ Title, Description
|
||
- ✅ Type (task/bug/feature)
|
||
- ✅ Status selector (colored circles, default backlog)
|
||
- ✅ Priority selector (colored circles)
|
||
- ✅ Assignee + Reviewer dropdowns
|
||
- ✅ Labels toggle buttons
|
||
- ✅ Parent ID (for subtasks)
|
||
|
||
### Chat Panel
|
||
- ✅ Fullscreen, dedup by ID
|
||
- ✅ Message styling (yellow=system, green=agent)
|
||
- ✅ @mention autocomplete (MentionInput)
|
||
- ✅ File attachments
|
||
|
||
### Project
|
||
- ✅ Tabs: Board / Chat / Files / Settings
|
||
- ✅ Project Files (drag & drop, search, thumbnails)
|
||
- ✅ Project Settings: name, desc, repos, status, auto-assign toggle
|
||
- ✅ Member management (humans + agent toggles)
|
||
|
||
### Settings (app-wide)
|
||
- ✅ Settings Layout с sidebar
|
||
- ✅ 🏷️ Лейблы — глобальные лейблы (CRUD, color picker)
|
||
- ✅ 🤖 Агенты — список, создание, редактирование
|
||
- ✅ Agent Modal: capabilities, labels, listen modes, prompt, model, token management
|
||
|
||
### Auth & Navigation
|
||
- ✅ Login page
|
||
- ✅ Sidebar с проектами
|
||
- ✅ Mobile viewport fix (100dvh)
|
||
- ✅ No-cache для index.html
|
||
|
||
## Picogent (Pi Agent Core — TypeScript)
|
||
|
||
- ✅ WS transport с auth
|
||
- ✅ Router: pure relay, zero side effects
|
||
- ✅ Agent streaming (start/delta/tool/end)
|
||
- ✅ Config split: agent.json + config.json
|
||
- ✅ Hot config update (config.updated handler)
|
||
- ✅ Anti-loop: ignore agent messages unless @mentioned
|
||
- ✅ Bootstrap context: AGENT.md + memory files
|
||
- ✅ Session compaction via Haiku
|
||
- ✅ Per-project memory (UUID-based dirs)
|
||
- ✅ Auto-reply (if no send_message tool called)
|
||
- ✅ 23 MCP tools: tasks(5), steps(2), messages(2), projects(2), members(1), files(6), task links(3)
|
||
- ✅ systemd template: picogent@.service
|
||
|
||
## Агенты
|
||
|
||
- ✅ Coder: slug=coder, capabilities=[code,review], AGENT.md (BMAD Dev style)
|
||
- ✅ Architect: slug=architect, capabilities=[architecture,review,planning], AGENT.md (BMAD Winston)
|
||
- ✅ Anti-loop rules в обоих AGENT.md
|
||
- ✅ Multi-agent: max 1 exchange per topic
|
||
|
||
## Безопасность
|
||
|
||
- ✅ Path traversal protection (basename + realpath)
|
||
- ✅ Agent sandbox (allowedPaths = [agentHome])
|
||
- ✅ CASCADE delete (tasks → messages, steps)
|
||
- ✅ Auth на всех mutations (get_current_member Depends)
|
||
|
||
---
|
||
|
||
## Запланировано
|
||
|
||
### Фича: RBAC — система прав
|
||
- 💡 Brainstorm: архитектура permissions (roles, per-endpoint checks)
|
||
- 📋 Реализация: таблица roles, role_permissions, middleware
|
||
- 📋 Права для агентов (ограничение действий)
|
||
- 📋 Viewer role (read-only, уже решено концептуально)
|
||
|
||
### Фича: Subtasks (расширение)
|
||
- ✅ parent_id в модели Task
|
||
- ✅ Subtasks section в TaskModal
|
||
- ✅ Create subtask button
|
||
- 📋 Subtasks на kanban доске (индентация или группировка)
|
||
- 📋 Drag & drop subtask в другого родителя
|
||
|
||
### Фича: Task Priorities (расширение)
|
||
- ✅ Priority field в модели + UI
|
||
- 📋 Сортировка по приоритету на доске
|
||
- 📋 Фильтр по приоритету
|
||
|
||
### Фича: PR-flow + Gitea интеграция
|
||
- 💡 Brainstorm: архитектура интеграции с Gitea API
|
||
- 📋 requires_pr flag на задаче
|
||
- 📋 Webhook от Gitea → Tracker (PR created/merged)
|
||
- 📋 Auto-move задачи в review при PR creation
|
||
- 📋 Auto-move в done при PR merge
|
||
|
||
### Фича: Review Iterations
|
||
- 📋 author ≠ reviewer validation
|
||
- 📋 Max 3 review iterations
|
||
- 📋 Review comments → task comments
|
||
|
||
### Фича: Voice Messages
|
||
- 📋 Web: MediaRecorder → upload audio
|
||
- 📋 Audio player в чате
|
||
- 📋 STT транскрипция для агентов (через Thoth)
|
||
- 📋 Android: voice recording
|
||
|
||
### Фича: Telegram Bridge (Picobridge)
|
||
- 📋 Bridge agent (member_type=bridge)
|
||
- 📋 WS → Telegram notifications
|
||
- 📋 Важные события: assigned, mentions
|
||
- 📋 Bidirectional: Telegram → Tracker
|
||
|
||
### Фича: Android Client
|
||
- ✅ Brainstorm завершён (Kotlin + Jetpack Compose)
|
||
- 📋 Создать репо team-board/android
|
||
- 📋 MVP: Kanban + Chat + Voice + Task creation
|
||
|
||
### Фича: Authentik OAuth
|
||
- 📋 OAuth2 flow с auth.uix.su
|
||
- 📋 Auto-create member при первом login
|
||
- 📋 SSO для всех сервисов
|
||
|
||
### Фича: Billing / API Usage
|
||
- 💡 Brainstorm: что считать, как хранить
|
||
- 📋 Tracking token usage per agent
|
||
- 📋 Cost dashboard
|
||
|
||
### Фича: Расширенные зависимости
|
||
- ✅ TaskLink model (blocks, depends_on, relates_to)
|
||
- ✅ UI: colored labels + search autocomplete
|
||
- 📋 Валидация циклических зависимостей
|
||
- 📋 Блокировка взятия задач с незавершёнными зависимостями
|
||
- 📋 Граф зависимостей (визуализация)
|
||
|
||
### Фича: Файлы в задачах
|
||
- 📋 Attachments прямо на задаче (не только в чате)
|
||
- 📋 Drag & drop в TaskModal
|
||
|
||
### Фича: Picogent npm package
|
||
- 📋 bin entry, shebang
|
||
- 📋 Publish в Gitea registry
|
||
|
||
### Фича: Фильтры и поиск
|
||
- 📋 Фильтр задач по assignee, priority, labels на доске
|
||
- 📋 Глобальный поиск задач
|
||
- 📋 Saved filters
|
||
|
||
### Фича: Vector Search (Phase 3)
|
||
- 💡 Когда >20 проектов — RAG для agent memory
|