Studio — teljes review, javítások és fejlesztési ötletek

Négy szemszögből (verzió/komment mag, Lab pipeline, jobs/infra, biztonság) átnézve, adversarially ellenőrizve, majd TDD-vel javítva.

2026-07-04 535 teszt zöld (előtte 466) 8 P1 + 15 P2 javítva commit c4637ea — main-en, még nem push-olva, még nem deploy-olva
TL;DR: a legsúlyosabb hiba: minden publikáláskor a régebbi, már publikált verziók lezárt kommentjei átkerültek a legújabb verzióra — a verziótörténet visszamenőleg elromlott. Ez és 7 másik P1-es hiba javítva, teszttel lefedve. Emellett strukturált logolás került az appba (eddig szinte semmi nem logolt), és 24 konkrét fejlesztési ötlet a leverage / rep UX / ügyfél-élmény témákban.

1. Fejlesztési ötletek — innen érdemes indulni, 24 db

Rangsorolva ráfordítás/haszon szerint. S = kicsi, M = közepes munka.

Több leverage (kevesebb kézi munka dealenként)
  1. 1Batch intake lead-listára — 5–20 URL beillesztése → mindegyikre teljes pipeline fut le automatikusan. Egy hétre való prezentáció egy akcióból. M
  2. 2CRM → Studio auto-projekt-létrehozás — ha egy lead időpontot foglal, a Studio projekt már készen áll a hívásra. M
  3. 3Google Ads OAuth invalid_grant hiba javítása — visszaáll a volumen-forrás váltó. S
  4. 4"Nyertes szekciók" sablon-könyvtár — egy kattintással menthető szekció jóváhagyott oldalról, minden lezárt deal jobbá teszi a következő generálást. M
  5. 5Lab-futás végén egy kattintásos "előkészítő csomag" — ügyfél-link + Figma push + CRM csomag automatikusan, nem 3-4 külön kattintás. S–M
  6. 6"v2 elkészült" ügyfél-email draft publikálás után — a rep küldi, csak a szöveget nem neki kell megírnia. S
  7. 7Elakadt dealek Slack digest — "a link 6 napja készen áll, meg sem nyitották". S
  8. 8Teljes oldal regenerálás visszahozása, de szűkebben — oldalankénti, meglévő HTML-t is figyelembe vevő verzióban. M
Jobb rep UX (Mátyás / Dani)
  1. 1Health/errors nézet az új strukturált logokra — projekteken átívelő hibalista + retry gomb. M
  2. 2Retry nyíl az Áttekintés Feladatok táblájában (a Lab tabon már megvan). S
  3. 3Soft-delete/archiválás projekteknél — a törlés ma egy confirm() mögött végleges. S–M
  4. 4Élő progress-csík a "Pipeline indítása" gombhoz — a Lab már megcsinálja ezt, csak át kell venni. S
  5. 5Dashboard kereső/szűrő + utolsó aktivitás szerinti rendezés — 15+ projekt fölött már kellene. S
  6. 6Gemini költség/usage kijelzés a UI-ban — a token-számok most már logolva vannak, csak meg kell jeleníteni. M
  7. 7Mobilbarát dashboard + queue nézet — a Slack-értesítést telefonon is el lehessen intézni. M
  8. 8Futásidő + "mióta akadt el" jelzés a Feladatok táblában. S
Jobb ügyfél-élmény
  1. 1Mobilon ne teljes tiltás legyen <768px alatt, csak a kommentelés — a legtöbben telefonon nyitják meg először a linket. S–M
  2. 2Első-látogatás 3-lépéses bevezető overlay — kevesebb tartalmatlan komment. S
  3. 3Beküldés utáni elvárás-beállító visszaigazolás ("X megjegyzést megkaptunk, 1-2 munkanapon belül jelentkezünk"). S
  4. 4Előtte/utána nézet minden lezárt kommentnél — ez az a pillanat, amikor az ügyfél érzi, hogy dolgozunk rajta. M
  5. 5Oldal-szintű megtekintési statisztika csak a repnek — melyik oldalon időzött az ügyfél, hívás előtti infó. M
  6. 6Present-mód villanásmentes átmenet — élő sales-hívás közben ne legyen fehér villanás oldalváltáskor. S
  7. 7Magyar mikroszöveg-átnézés az ügyfél-felületen — egységes tegező hangnem. S
  8. 8Opcionális PIN + lejárat az ügyfél-linkeken — bizalmi jelzés céges ügyfeleknek. S–M

2. Megtalált és javított hibák — verzió / komment mag

P1Javítva Publikálás átírta a régebbi verziók lezárt kommentjeit
Minden új publikáláskor a rendszer az összes korábban lezárt/elutasított kommentet a legújabb verzióra pakolta át — a régi, ügyfélnek elküldött verzió visszamenőleg elvesztette a saját, akkor lezárt kommentjeit. A verziótörténet böngészése hamis képet adott. Ez volt a legsúlyosabb találat.
P1Javítva "Elvetés" egy még nem publikált oldalon törölte a teljes szerkesztési előzményt
Ha egy vadonatúj oldalon (még sosem publikálva) a rep rákattintott az Elvetésre, a rendszer törölte a teljes undo/audit előzményt, de a hibát jelezte vissza — a szerkesztések megmaradtak, de visszavonhatatlanul, nyom nélkül.
P2Javítva Sikertelen AI-szerkesztés felülírhatta a rep közben végzett kézi módosítását
Ha egy teljes oldalas AI-átírás elbukott a validáláson, a rendszer a sikertelen próbálkozást mégis "élesítette" — törölve egy közben kézzel elvégzett szerkesztést.
P2Javítva Sikertelen AI-átírás mégis "kész"-re állította a kommentet
Ha egy szekció AI-átírása technikai hiba miatt nem sikerült, a hozzá tartozó ügyfél-komment mégis "megoldva 🤖" jelzést kapott — pedig semmi nem változott.
P2Javítva Duplikált kommentek egy ismételt beküldésnél
Ha egy beküldés kétszer ment el (dupla kattintás, hálózati retry), az ügyfél kommentjei duplán jöttek létre.
P2Javítva Két egyidejű szerkesztés versenyhelyzetben ütközhetett
Adatbázis-szintű védelem híján elméletileg két párhuzamos kérés (dupla kattintás a publikálás gombon, egyidejű autosave) egymást felülíró verziókat hozhatott létre. Most adatbázis-szintű garancia zárja ki.
+ 4 további kisebb (P3) hiba javítva: blob-törlési sorrend, in-flight limit, globális fejléc/lábléc kép-hivatkozások publikáláskor, kézi átrendezés versenyhelyzet-védelme.
Tulajdonosi döntésre vár (nem javítottuk, csak jeleztük): az ügyfél "Új szekció" kérése ma csendben egy sima átírásra degradálódik — az AI technikailag nem tud új szekciót beszúrni a mai szabályok mellett.

3. Megtalált és javított hibák — Lab pipeline

P1Javítva Elakadt Lab-futás örökre "fut" állapotban maradt
Ha egy háttér-worker elhalt (memóriahiány, Modal timeout) egy Lab-lépés közben, a futás soha nem jelezte a hibát — végtelenül "fut" státuszban maradt, retry gomb nem működött, csak egy vadonatúj futás indítása segített, ami eldobta az addig elkészült lépéseket.
P1Javítva Az automatikus javító lépés levágta a 60 000 karakternél hosszabb oldalakat
A generálás utáni automatikus minőségjavítás minden generált oldalon lefut — de csak az első 60 000 karaktert küldte az AI-nak, majd a "kész" választ ráírta a TELJES oldalra. Minden hosszabb oldal (gyakori eset) elvesztette a végét: kapcsolat szekció, footer, scriptek — csendben.
P2Javítva Két egyidejű Lab-lépés futhatott párhuzamosan ugyanazon a futáson
Az "Újragenerálás" és a "scraper visszajelzés" gomboknál hiányzott a védelem, ami minden más lépésnél megvan — dupla Gemini-költség, egymást felülíró eredmények.
P2Javítva Feleslegesen duzzadt adat minden Lab-futás állapotában
A kulcsszó-kutatás nyers adatai (1000+ sor) véglegesen benne maradtak minden futás állapotában, feleslegesen lassítva minden későbbi mentést.
+ 4 további kisebb (P3) hiba javítva: CRM-mentés hibájának néma elnyelése, saját domain versenytársként való felismerése, dupla kattintásos lépésindítás, drága AI-hívás felesleges újrapróbálása egy determinisztikus hiba után.

4. Megtalált és javított hibák — jobs & infrastruktúra

P1Javítva Egy háttérfolyamat összeomlása a "kész" jelzés UTÁN örökre eltüntette a következő lépést
Ha egy feladat lezárása közben a következő lépés indítása hibázott, a rendszer a feladatot mégis "kész"-nek mutatta — a projekt csendben megrekedt egy köztes állapotban (pl. "Generálás alatt"), semmilyen riasztás nem ment el.
P1Javítva Elakadt feladatok "elakadtként" jelölése nem takarított fel utánuk
Amikor a rendszer észlelte, hogy egy feladat elakadt (worker meghalt, nem jelentkezett vissza), csak a feladatot jelölte hibásnak — de a hozzá tartozó projekt-állapotot (pl. "publikálás alatt", "osztályozás alatt") nem állította vissza, az örökre abban a state-ben ragadt.
P1Javítva Oldal törlése tönkrement, ha az oldalt valaha szerkesztették
A törlés hiányzott egy kapcsolódó adattábla-tisztításról, ezért minden valaha szerkesztett oldal törlése hibával elszállt — az oldal örökre törölhetetlen maradt a felületről.
P1Javítva Teszt-deploy véletlenül az ÉLES tárhelybe írhatott/olvashatott/törölhetett
A "rebuild" néven futó teszt-app konfigurációja tévesen az éles app tárhely-előtagját és callback-URL-jét örökölte — egy teszt-deploy elméletileg olvashatott, írhatott és törölhetett volna az ÉLES ügyféladatok tárhelyében. Most teljesen elkülönítve fut.
+ 5 további (P2/P3) hiba javítva: sikertelen Cloudflare-deploy mégis "publikálva"-ra állította a projektet, adatbázis-írások elvesztése GET-kéréseknél újraindításkor, importálás visszagörgetésének hiányossága nem-HTTP hibáknál, worker-timeout és a "elakadt" figyelő közti 15 perces rés, konfigurációs alapértékek eltérése helyi/éles környezet közt.

5. Amit hozzáadtunk — nem hiba, új képesség

Strukturált logolás (app/obs.py)
Eddig az egész app gyakorlatilag néma volt — kb. 15 800 sor kódból egyetlen fájl logolt valamit. Most minden kérés, minden háttérfeladat (végigkövethető egy azonosítóval), minden AI-hívás és minden korábban csendben elnyelt hiba egy tiszta, kereshető sort ír. Jelszavak, tokenek, promptok és oldaltartalom soha nem kerülnek logba.
Biztonsági keményítés
Ügyfél-linkek (megtekintésre szánt "present" link) nem tudnak korlátlan fájlfeltöltésre visszaélni; a bejelentkezés zárol ismételt hibás próbálkozás után; a session-cookie mindig biztonságos módban megy ki; az app most leáll induláskor, ha a titkosító kulcs hiányzik vagy gyenge — eddig csendben egy nem biztonságos alapértékre váltott.
Fontos, mielőtt élesbe megy: minden a fenti fájlokban main-re commit-olva van (c4637ea), de még nincs push-olva és nincs deploy-olva. Deploy előtt két gyors ellenőrzés kell: (1) az éles adatbázisban nincs-e már meglévő duplikált verzió, amit az új, szigorúbb szabály elutasítana indításkor, (2) az éles titkosító kulcs be van-e állítva (az új build ennek hiányában nem indul el). Mindkettő olvasás-only check, Mátyás intézi deploy előtt.