- 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>
107 lines
3.2 KiB
Markdown
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 |
|