- searchTasks API function (q= param)
- Autocomplete dropdown: search by number or title
- Shows task key + title, click to select
- Replaces raw ID input
- Parent breadcrumb: 'TE-1 / TE-3' with clickable parent link
- Subtasks section: colored status dots, clickable keys, assignee
- onOpenTask callback: close current modal, open clicked task
- SubtaskBrief interface in API types
- Project API: project.id for all CRUD + files + members
- Member API: member.id for get/update/regenerate/revoke
- ProjectSettings: member selection by id
- ChatPanel/MentionInput: projectId prop
- AgentModal: agent.id for API, slug for display only
- Agent streaming: real-time text deltas in chat
- Thinking/reasoning: collapsible block with agent's thinking process
- Tool call indicators: shows running/completed tools
- Streaming bubble with pulse animation while agent generates
- Message type updated with 'thinking' field
- Task interface: assignee_id/assignee, reviewer_id/reviewer, watcher_ids
- Message interface: author_id/author вместо author_slug
- API functions: assignTask использует assignee_id
- KanbanBoard: обновлен под новые поля задач
- TaskModal: assignee selection по ID вместо slug
- ChatPanel: отображение author через relationship
- Migrate from Next.js App Router to Vite + React Router
- Replace NEXT_PUBLIC_* env vars with VITE_*
- Convert all pages to React Router structure
- Remove BFF dependency, connect directly to Tracker
- JWT auth with query param support in WebSocket
- All components migrated with basic functionality
- Ready for production deployment