KAOS/TASKS/reports/T13-report.md
djuka a3fc9b3af0 T13: Dodat search bar sa instant pretragom taskova i dokumenata
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 12:47:39 +00:00

71 lines
1.9 KiB
Markdown

# T13 Izveštaj: Dashboard — pretraga taskova i dokumentacije
**Agent:** coder
**Model:** Opus
**Datum:** 2026-02-20
---
## Šta je urađeno
Dodat search bar na dashboard sa instant pretragom (HTMX debounce 300ms).
### Novi fajlovi
| Fajl | Opis |
|------|------|
| `internal/server/search.go` | Search handler, matchTask, extractSnippet, containsInsensitive |
| `web/templates/partials/search-results.html` | Template za dropdown rezultate |
### Izmenjeni fajlovi
| Fajl | Izmena |
|------|--------|
| `internal/server/server.go` | GET /search ruta |
| `internal/server/render.go` | renderSearchResults(), search-results template u init() |
| `internal/server/server_test.go` | 8 novih testova, checker agent i report u test setup |
| `web/templates/layout.html` | Search input sa hx-get, click-outside zatvaranje |
| `web/static/style.css` | Search wrapper, dropdown, result items, status badges, snippet |
### Endpoint
| Ruta | Opis |
|------|------|
| `GET /search?q={query}` | HTML fragment sa rezultatima pretrage |
### Šta pretražuje
1. **Taskovi** — ID, naslov, opis, agent, status
2. **Dokumenti** — svi .md fajlovi (sadržaj)
3. **Izveštaji** — reports/*.md (sadržaj)
### Features
- Case insensitive pretraga
- Snippet sa kontekstom oko pogotka
- Status badge za taskove (done/active/review...)
- Klik na task → otvori detail panel
- Klik na dokument → navigacija na /docs/
- Max 20 rezultata
- Prazan query → prazan odgovor
- Nema rezultata → "Nema rezultata" poruka
- Click outside → zatvori dropdown
### Novi testovi — 8 PASS
```
TestSearch_FindsTask PASS
TestSearch_FindsTaskByID PASS
TestSearch_FindsDocument PASS
TestSearch_FindsReport PASS
TestSearch_EmptyQuery PASS
TestSearch_NoResults PASS
TestSearch_CaseInsensitive PASS
TestSearch_HasSnippet PASS
```
### Ukupno projekat: 109 testova, svi prolaze
- `go vet ./...` — čist
- `go build ./...` — prolazi