# T22 Izveštaj: Prijava — dva moda (klijent i operater) **Agent:** coder **Model:** Opus **Datum:** 2026-02-20 --- ## Šta je urađeno Nova sekcija "Prijava" sa dva moda: klijent (prosta forma) i operater (chat sa Claude API). ### Izmenjeni/kreirani fajlovi | Fajl | Izmena | |------|--------| | `internal/server/submit.go` | NOVO — handleri za oba moda, nextTaskNumber, Claude API streaming, chatState | | `web/templates/submit.html` | NOVO — template sa toggle klijent/operater, forma, chat UI | | `internal/server/server.go` | chatMu/chats polja, 4 nove rute, sync import | | `internal/server/render.go` | renderSubmitPage(), registracija submit.html template | | `internal/server/server_test.go` | 13 novih testova | | `web/static/style.css` | CSS za submit, form, chat, priority | | `web/templates/layout.html` | Prijava nav tab | | `web/templates/console.html` | Prijava nav tab | | `web/templates/docs-list.html` | Prijava nav tab | | `web/templates/docs-view.html` | Prijava nav tab | ### Klijent mod - Forma: naslov (obavezno), opis (opciono), prioritet (Nizak/Srednji/Visok) - POST /submit/simple → kreira task u backlog/ - Auto-numeracija: skenira sve taskove, nađe max T{XX}, inkrementiraj - Task format sa svim standardnim KAOS poljima + Prioritet + Izvor - Vizuelna potvrda sa task ID-em ### Operater mod - Chat interfejs sa Claude API (Sonnet model) - System prompt: CLAUDE.md + trenutno stanje svih taskova - SSE streaming odgovora (Anthropic streaming API → browser) - Višestruke poruke u istoj sesiji (chat_id) - Automatsko onemogućenje inputa dok Claude odgovara ### Endpointi | Endpoint | Metod | Opis | |----------|-------|------| | /submit | GET | Stranica za prijavu | | /submit/simple | POST | Klijent forma → backlog/ | | /submit/chat | POST | Operater poruka → Claude API | | /submit/chat/stream/:id | GET | SSE stream odgovora | ### Navigacija Novi tab "Prijava" dodat u header svih stranica (Kanban, Dokumenti, Konzola, Prijava). ### Novi testovi — 13 PASS ``` TestSubmitPage PASS TestSubmitPage_ClientModeIsDefault PASS TestSimpleSubmit_CreatesTask PASS TestSimpleSubmit_MissingTitle PASS TestSimpleSubmit_AutoNumbering PASS TestSimpleSubmit_DefaultPriority PASS TestChatSubmit_NoAPIKey PASS TestChatSubmit_EmptyMessage PASS TestChatStream_NotFound PASS TestNextTaskNumber PASS TestBuildTaskContext PASS TestSubmitPage_HasPrijavaNav PASS TestDashboard_HasPrijavaNav PASS ``` ### Ukupno projekat: 155 testova, svi prolaze - `go vet ./...` — čist - `go build ./...` — prolazi