# T20: Fix — dugmad po statusu taska (workflow kontrole) **Kreirao:** planer **Datum:** 2026-02-20 **Agent:** coder **Model:** Sonnet **Zavisi od:** T19 ✅ --- ## Opis Svaki task prikazuje RAZLIČITO dugme zavisno od stanja i uslova. Operater mora da pregleda i odobri pre pokretanja. ## Dugmad po stanju ### backlog/ — zavisnosti NISU ispunjene ``` ┌────────────────────────────┐ │ T18 │ │ End-to-end test │ │ coder · Sonnet │ │ Zavisi od: T17 ⏳ │ │ [Blokiran 🔒] │ ← sivo, nije klikabilno └────────────────────────────┘ ``` ### backlog/ — zavisnosti JESU ispunjene ``` ┌────────────────────────────┐ │ T16 │ │ SSE auto-refresh │ │ coder · Sonnet │ │ Zavisi od: T15 ✅ │ │ [Pregledaj 👁] │ ← otvori sadržaj taska └────────────────────────────┘ ``` Klik "Pregledaj 👁" → otvori task sadržaj u panelu. U panelu prikaži dugme [Odobri ✅] koje premesti u ready/. ### ready/ — odobren, spreman za rad ``` ┌────────────────────────────┐ │ T16 │ │ SSE auto-refresh │ │ coder · Sonnet │ │ Zavisi od: T15 ✅ │ │ [Pusti ▶] │ ← pokreni agenta └────────────────────────────┘ ``` Klik "Pusti ▶" → pokreni Claude Code u čistoj sesiji. SAMO ready/ taskovi imaju Play dugme. ### active/ — agent radi ``` ┌────────────────────────────┐ │ T16 │ │ SSE auto-refresh │ │ coder · Sonnet │ │ [Radi ⚙️] │ ← informativno, nije klikabilno └────────────────────────────┘ ``` ### review/ — agent završio, čeka pregled ``` ┌────────────────────────────┐ │ T16 │ │ SSE auto-refresh │ │ coder · Sonnet │ │ [Pregledaj 👁] │ ← otvori izveštaj └────────────────────────────┘ ``` Klik → otvori izveštaj + task sadržaj u panelu. U panelu dva dugmeta: - [Odobri ✅] → premesti u done/ - [Vrati ↩] → premesti u ready/ (za doradu) ### review/ — agent ima pitanje ``` ┌────────────────────────────┐ │ T16 │ │ SSE auto-refresh │ │ coder · Sonnet │ │ ❓ Pitanje čeka odgovor │ │ [Odgovori 💬] │ ← otvori pitanje └────────────────────────────┘ ``` Klik → otvori task sa pitanjem. Operater vidi ## Pitanja sekciju. Treba mogućnost da upiše odgovor u ## Odgovori sekciju. Posle odgovora: dugme [Nastavi ▶] pokrene agenta ponovo. ### done/ — završen ``` ┌────────────────────────────┐ │ T01 ✅ │ │ Inicijalizacija Go projekta│ │ v0.1.1 │ │ [Izveštaj 📊] │ ← otvori report └────────────────────────────┘ ``` ## Logika za server ``` Za svaki task: 1. Pročitaj zavisnosti iz fajla (## Zavisi od) 2. Proveri da li su sve zavisnosti u done/ 3. Ako je review/ → proveri da li ## Pitanja postoji i nije prazno 4. Na osnovu toga odluči koje dugme Funkcija: resolveTaskAction(task) → action string - "blocked" → zavisnosti nisu ispunjene - "review" → u backlog/, zavisnosti ok, čeka pregled - "run" → u ready/, spreman za pokretanje - "running" → u active/ - "question" → u review/, ima pitanje bez odgovora - "approve" → u review/, završen, čeka odobrenje - "done" → u done/ ``` ## Pozicija dugmeta Uvek desno dole na kartici. Kartica ima `display: flex; flex-direction: column;` Dugme u `margin-top: auto;` kontejneru da bude na dnu. ## Testovi - Task u backlog/ bez zavisnosti → "Pregledaj 👁" - Task u backlog/ sa blokirajućom zavisnošću → "Blokiran 🔒" - Task u ready/ → "Pusti ▶" - Task u active/ → "Radi ⚙️" (neklikabilno) - Task u review/ završen → "Pregledaj 👁" - Task u review/ sa pitanjem → "Odgovori 💬" - Task u done/ → "Izveštaj 📊" - Klik "Odobri" na backlog task → premešten u ready/ - Klik "Pusti" na ready task → agent pokrenut - Klik "Odobri" na review task → premešten u done/ --- ## Pitanja --- ## Odgovori