TASKS.md: comprehensive task list with correct statuses
All done/planned/idea items from PLANNING.md, IDEAS.md, AGENT-PLAN.md and actual implementation state
This commit is contained in:
parent
50ab60f723
commit
a11bef2941
240
TASKS.md
Normal file
240
TASKS.md
Normal file
@ -0,0 +1,240 @@
|
|||||||
|
# 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
|
||||||
Loading…
Reference in New Issue
Block a user