KAOS/docs/SPEC.md
djuka 098ed13705 T22: Reorganizacija testova + logs handler + konzola fix
- Razbijen monolitni server_test.go na fokusirane test fajlove:
  api_test.go, dashboard_test.go, docs_test.go, search_test.go,
  submit_test.go, task_detail_test.go, console_test.go, sse_test.go,
  timestamp_test.go, ui_test.go, test_helpers_test.go
- Dodat logs.go handler (handleLogsTail) koji je nedostajao
- Dodat LogFile u config
- Fix konzola: prompt se šalje preko fajla umesto direktno u PTY
- 192 testova prolazi

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 04:45:50 +00:00

107 lines
3.2 KiB
Markdown

# KAOS — Specifikacija
**Verzija:** 0.3.0
**Poslednje azuriranje:** 2026-02-21
---
## Pregled
KAOS je sistem za razvoj softvera sa AI agentima pod ljudskim nadzorom.
Web dashboard omogucava operateru da upravlja taskovima, pokrece claude agente,
i prati rad u realnom vremenu kroz konzolne terminale.
---
## Funkcionalnosti
### Kanban Board
- 5 kolona: Backlog, Ready, Active, Review, Done
- Drag & drop premestanje taskova (Sortable.js)
- SSE auto-refresh kad se stanje promeni
- Dugmad po statusu: Odobri, Pusti, Proveri, Izvestaj
- Task detail modal sa markdown renderovanjem
### Konzola (Task PTY Sessions)
- Svaki task dobija sopstvenu claude CLI sesiju u PTY
- "Pusti" dugme: premesta task u active, pokrece interaktivni claude
- "Proveri" dugme: pokrece review claude sesiju za task u review/
- Terminali u browseru via xterm.js + WebSocket
- Replay buffer (1MB ring buffer) za reconnect
- Sesije prezivljavaju page reload
- Dinamicko dodavanje/brisanje terminala po aktivnim sesijama
- Kill dugme za zavrsavanje sesije
### Pretraga
- Pretrazuje taskove, dokumente i izvestaje
- Case-insensitive, sa snippet kontekstom
- Real-time rezultati (htmx delay:300ms)
### Dokumenti
- Pregled svih .md fajlova u projektu
- Sidebar + main layout
- Markdown renderovanje sa tabelama
- Breadcrumbs navigacija
- HTMX fragmenti za client-side navigaciju
### Prijava taskova
- Klijent mod: jednostavna forma (naslov + opis + prioritet)
- Operater mod: chat sa claude CLI za kreiranje taska
### Server logovi
- GET /api/logs/tail - poslednjih 100 linija loga
- Modal prikaz na dashboardu
### Vremena (Timestamps)
- Svaki prelaz taska belexi timestamp u Vremena tabelu
- Automatski u task .md fajl
---
## Task workflow
```
backlog --> ready --> active --> review --> done
| | |
<---------- |
<-------------------
```
| Prelaz | Ko | Kako |
|--------|----|------|
| backlog -> ready | operater | Odobri dugme |
| ready -> active | server | Pusti dugme (automatski) |
| active -> review | claude agent | Kad zavrsi rad |
| review -> done | operater/checker | Odobri ili Proveri |
| review -> active | operater/checker | Vrati na doradu |
| ready -> backlog | operater | Vrati dugme |
---
## API endpointi
| Metod | Putanja | Opis |
|-------|---------|------|
| GET | / | Dashboard (Kanban) |
| GET | /api/tasks | Svi taskovi (JSON) |
| GET | /api/task/:id | Detalj taska (JSON) |
| POST | /api/task/:id/move?to= | Premesti task |
| GET | /task/:id | Task detail (HTML) |
| POST | /task/:id/move?to= | Premesti + vrati board |
| POST | /task/:id/run | Pusti task (active + claude) |
| POST | /task/:id/review | Pokreni review sesiju |
| GET | /report/:id | Izvestaj/task modal |
| GET | /events | SSE stream |
| GET | /search?q= | Pretraga |
| GET | /console | Konzola stranica |
| GET | /console/sessions | Aktivne sesije (JSON) |
| POST | /console/kill/:taskID | Ubij sesiju |
| GET | /console/ws/:key | WebSocket terminal |
| GET | /api/logs/tail | Server logovi |
| GET | /docs | Lista dokumenata |
| GET | /docs/*path | Pregled dokumenta |
| GET | /submit | Prijava stranica |
| POST | /submit/simple | Prijava forme |
| POST | /submit/chat | Operater chat |
| GET | /submit/chat/stream/:id | Chat SSE stream |