tipIMPLEMENTACIJA
rednic1209
sto_je{
"kratko": "Zamjena debelih JS klijenata s tankim fetch-only klijentima. Sva logika premjestena na server. ZAKON 41.",
"princip": "Piranha analiza: stari JS = samostalni mozgovi, 0 fetch poziva. Novi slim JS = ciste fetch ljuske. Server je jedina istina.",
"zakon_41": "Nema vanjskih SDK-ova. Nema lokalnog state machinea. Browser-native fetch i Web Speech API."
}
slim_klijenti{
"genesis_kernel_slim.js": {
"zamjenjuje": "genesis_kernel.js",
"uklonjeno": [
"lokalni h256",
"lokalna Krunica",
"lokalna Sesija",
"offline state machine"
],
"api": {
"Puz.udi": "POST /api/v1/pos/auth/verify → token, weise3_id, trust",
"Puz.udi_offline": "POST /api/v1/pos/auth/verify s tprg_token",
"Sesija.puls": "GET /api/v1/pos/sesija/puls → stanje, preostalo_s",
"Sesija.atom": "POST /api/v1/pos/krunica/atom → redni, hash",
server_backend{
"pos_kernel.py": {
"lokacija": "/var/www/fenix-v4/api/v1/pos_kernel.py",
"server": "MAR fenix-v4 port 8005",
"framework": "FastAPI async, Python 3.13",
"endpointi": 10,
"redis_db": 5,
"redis_namespace": "fenix4:pos:",
"redis_kljucevi": {
"fenix4:pos:sesija:{token}": "JSON sesije, TTL 8h (28800s)",
"fenix4:pos:krunica:{wid}": "LIST atoma smjene, SHA3-256 lanac",
"fenix4:pos:tura:{id}": "JSON stanice ture",
"fenix4:pos:tureSmjene:{wid}": "SET
pos_adaptive_patch{
"fajl": "templates/pos/adaptive.html",
"dodano": [
"slim script tagovi: genesis_kernel_slim, ai_promatrac_slim, vozac_vertikala_slim, eho_ai_slim",
"smjena bar UI: weise3_id, preostalo vrijeme, Produzi i Predaj gumbi",
"mic gumb: Web Speech API, ZAKON 41, hr-HR locale",
"_posInit: sessionStorage pos_slim_token, Puz.udi pri startu",
"_smjenaPuls: interval 60s, Sesija.puls azurira UI",
"_micToggle: SpeechRecognition → ai.slusaj → dodajArtikl"
]
}
nginx_routing{
"MAR_dodano": [
"location /api/v1/pos/ → proxy_pass http://127.0.0.1:8005",
"location /api/v1/eho/ → proxy_pass http://127.0.0.1:8005"
],
"napomena": "Specificni blokovi moraju biti ISPRED catch-all /api/v1/ → :8010"
}
arhitekturalne_odluke[
{
"odluka": "Redis db=5 za POS i EHO",
"razlog": "Izolacija od fina db=1 i genesis/brsljani db=4"
},
{
"odluka": "UMD format za slim JS",
"razlog": "Drop-in zamjena: isti interface kao debeli klijenti, bez promjena na stranicama"
},
{
"odluka": "X-Pos-Token u HTTP headeru",
"razlog": "ZAKON 29: token nije u URL-u ni logu"
},
{
"odluka": "EHO API na fenix-v4 MAR, ne samo EU genesis",
"razlog": "JS slim klijent koristi relativne putanje. POS je na li
testovi_provedeni[
{
"opis": "auth/verify, Redis sesija kreirana",
"ok": true
},
{
"opis": "krunica/atom, SHA3-256 lanac u Redis",
"ok": true
},
{
"opis": "sesija/predaj, paket atoma vraca se za POSB prijelaz",
"ok": true
},
{
"opis": "tura planiraj+pomakni 4x, ALIBI atom pri ISPORUCENO",
"ok": true
},
{
"opis": "EHO 3-agentni lanac TVRDIM→POTVRDJUJEM→DOKAZUJEM",
"ok": true
},
{
"opis": "EHO multi-worker Redis shared state",
"ok": true
},
sesija2026-05-31 — piranha analiza + 10 endpointa + 4 slim JS + Redis backend + nginx routing
krunica_hashd33f39b76690cf72f46efe9c68e6a03bfd92cd17e1ab1b19654f8a967e9ca0fb