Commit Graph

19 Commits

Author SHA1 Message Date
idriz
c92de5e729 Igra: vrati web search (uz Wikipediju kao rezervu)
Samo Wikipedia nije prepoznavala neke likove. Vraćen web search (Responses API
web_search) kao primarni fallback kad LLM ne zna lika, sa Wikipedijom kao
rezervom. Kako se prepoznavanje sada radi u pozadini pri presudi (uz filler),
spor web search više ne blokira potvrdu izbora. Timeout 25s (pa 8s wiki).
Izvor "wiki" -> "web".

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LzKpYaEsuWDevuNnvSjcFW
2026-09-04 20:19:58 +02:00
idriz
2d8b884da8 Igra: fallback samo Wikipedia (bez OpenAI web searcha)
Web search (Responses API) je znao trajati i do 100s. Pošto LLM ionako zna
većinu likova, a Wikipedia je brza (~1s) i dobra za izmišljene likove, fallback
kad LLM ne zna lika sada koristi SAMO englesku Wikipediju (wiki.py), uz 8s
timeout. Uklonjen poziv responses.create/web_search. Izvor "web" -> "wiki"
(kod, admin prikaz).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LzKpYaEsuWDevuNnvSjcFW
2026-09-04 20:06:21 +02:00
idriz
59194d9126 Igra: trenutna potvrda izbora (prepoznavanje odgođeno) + timeout web searcha
Uzrok sporosti (iz loga): prepoznavanje lika, uključujući web search, radilo
se UNUTAR superheroji_izbor prije potvrde. Za nepoznato ime web search je
jednom trajao ~100s i blokirao potvrdu.

- record_pick je sada BRZ (bez LLM-a): odmah bilježi izbor i vraća potvrdu;
  brza provjera zabrane/duplikata preko keša alias-a i izgovorenog imena.
- Pravo prepoznavanje (LLM + web search) radi se pri presudi (_resolve_pending),
  paralelno, gdje ionako ima filler poruka.
- Web search ograničen na 20s (+8s wiki fallback), da presuda ne visi.
- Filler je sada periodičan (svakih ~9s dok traje presuda), ne samo jednom.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LzKpYaEsuWDevuNnvSjcFW
2026-09-04 19:55:36 +02:00
idriz
8a4b3446b4 Igra: minimum 2 igrača (2-5, ne 1-5)
Igra u jednu osobu nema smisla. game_nova sada odbije partiju sa manje od
dvoje igrača i traži od modela da ponovo pita (2-5). Ažurirane upute i opis
alata. Uklonjen i zaostali spomen alata superheroji_presudi iz uputa.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LzKpYaEsuWDevuNnvSjcFW
2026-09-04 19:24:13 +02:00
idriz
c3706e67e5 Igra v2: auto-presuda + filler, pamćenje dvoboja sa razlogom (reuse bez LLM)
Problem: potvrda zadnjeg heroja se čula tek nakon "sad ću odlučiti" jer je
model grupisao potvrdu i poziv presudi. Rješenje: presuda runde je sada
AUTOMATSKA (uklonjen alat superheroji_presudi). Kad zadnji igrač izabere,
Python pokrene resolve_round u pozadini; model prvo brzo potvrdi ime i kaže
da razmišlja, rezultat stigne preko notify_model. Ako traje >8s -> filler.

Pamćenje dvoboja: pored Ela sada se u heroes.json (matchups) bilježe konkretni
ishodi sa razlogom, po cijelom skupu likova i po parovima. Kad se isti dvoboj
ponovi -> čita se iz baze BEZ poziva LLM-u (dosljedno + brzo). Admin tab
prikazuje "Zabilježene dvoboje"; reset briše i njih.

Sekvenciranje odgovora (_wait_idle) da se izbjegne
conversation_already_has_active_response.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LzKpYaEsuWDevuNnvSjcFW
2026-09-04 14:29:04 +02:00
idriz
d0fddcf985 Igra: potvrdi ime SVAKOG heroja + smanji pogrešno prepoznavanje imena
Problem 1 (kuromi -> Hulk): model je nejasan zvuk mapirao na poznatog
superheroja. Upute pojačane: likovi su iz SVIH medija (Kuromi, Pikaču...),
ne zamjenjuj čuveno ime sličnim superherojem, pitaj da se ponovi ako nisi
siguran, i ponovo pozovi izbor ako dijete ispravi ime.

Problem 2 (ne potvrdi drugog heroja): superheroji_izbor sada zna (preko
round_complete/next_picker) da li runda ima još igrača; UVIJEK traži da model
prvo naglas potvrdi ime, pa tek onda pita sljedećeg ili pozove presudi.

Uz to: benigna greška response_cancel_not_active spuštena na debug.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LzKpYaEsuWDevuNnvSjcFW
2026-09-04 13:58:03 +02:00
idriz
db0a9b88fd Dodaj igru Superheroji (glasovna) + admin tab
Igra: 1-5 igrača, nekoliko rundi (konfigurabilno). Svaku rundu svaki igrač
kaže izmišljenog lika (širok pojam — bilo koji medij), Idriz presudi ko bi
pobijedio i zašto. Pobjednik runde se banuje do kraja partije. Redoslijed se
rotira svaku rundu (zadnji ima prednost). Najviše pobjeda runda = pobjednik partije.

- idriz/gamestore.py: trajno skladište (heroji, Elo rejting, broj rundi), bez
  vanjskih zavisnosti (i admin ga uvozi). clear_favorite() drži borbe dosljedne
  kroz partije (jači heroj ne gubi od znatno slabijeg).
- idriz/game.py: resolve_hero (najjači LLM gpt-5.5 + web search fallback samo kad
  ne zna lika), adjudicate (presuda + obrazloženje na bosanskom), Match (tok partije).
- assistant.py: 4 realtime alata (nova_partija, izbor, presudi, kraj) + upute;
  igra ide odmah nazad modelu, ne kroz pozadinski posao.
- config.py: game_model (default = text_model).
- admin: tab "Superheroji" (broj rundi + rang-lista + reset pamćenja).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LzKpYaEsuWDevuNnvSjcFW
2026-09-04 11:57:43 +02:00
idriz
24cbe280d6 Dodaj admin web panel u repo (admin/), sinhronizuj systemd unite
- admin/: LAN web panel (Flask + waitress + python-pam), status servisa,
  PAM login sa idriz korisnikom, vertikalni meni. Port 8080, samo LAN.
- systemd/idriz-admin.service: korisnički servis, enabled + Restart=always
  + StartLimitIntervalSec=0.
- systemd/idriz.service: dodan StartLimitIntervalSec=0 (repo je bio zastario).

Od sada sav aplikacioni source code ide u ovaj repo.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LzKpYaEsuWDevuNnvSjcFW
2026-09-04 11:26:45 +02:00
idriz
dbe6ee6f28 Fix garbled replies: clear input buffer on mic on/off, guarded cancel, ask to repeat instead of guessing
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LzKpYaEsuWDevuNnvSjcFW
2026-09-02 20:13:36 +02:00
idriz
ab638aa690 Switching the mic off interrupts speech (distinct tone); background jobs keep running
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LzKpYaEsuWDevuNnvSjcFW
2026-09-02 20:07:01 +02:00
idriz
69b6c838b0 Conversation mode: answer questions by voice, adjust level on request (naprednije / pojednostavi)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LzKpYaEsuWDevuNnvSjcFW
2026-09-02 19:30:58 +02:00
idriz
c7add89c6e Summaries on gpt-5.5 with strict Bosnian-only rules and a proofreading pass
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LzKpYaEsuWDevuNnvSjcFW
2026-09-02 19:27:29 +02:00
idriz
92e6254888 USB mic switch acts as on/off: listen only while the USB source exists, chime when it appears
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LzKpYaEsuWDevuNnvSjcFW
2026-09-02 19:14:00 +02:00
idriz
7e69c3af24 Wait quietly for the microphone to reappear when unplugged
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LzKpYaEsuWDevuNnvSjcFW
2026-09-02 19:05:22 +02:00
idriz
c37041ae76 Mic software gain, VAD threshold 0.5, speech event logging, greeting on connect
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LzKpYaEsuWDevuNnvSjcFW
2026-09-02 19:00:51 +02:00
idriz
e594971fbf Strip bullet chars from facts, neutral image captions
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LzKpYaEsuWDevuNnvSjcFW
2026-09-02 18:57:49 +02:00
idriz
881ad46c11 Summary layout for kids: Wikipedia lead image, airy text, facts box, generated illustration fallback
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LzKpYaEsuWDevuNnvSjcFW
2026-09-02 18:47:23 +02:00
idriz
78967e15f9 Idriz v0.1: Realtime voice assistant with Wikipedia summaries and coloring pages
- OpenAI Realtime session (server VAD, half-duplex audio via pacat/PipeWire)
- Tools: wikipedia_sazetak (en.wikipedia -> Bosnian summary, max 2 A4 pages via WeasyPrint)
  and bojanka (image generation -> pure line art on A4)
- CUPS printing, systemd user service, install script, offline test script

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LzKpYaEsuWDevuNnvSjcFW
2026-09-02 18:37:39 +02:00
idriz
cc1babe26d Initial commit
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LzKpYaEsuWDevuNnvSjcFW
2026-09-02 16:53:26 +02:00