Generált UI fejlesztési setup
A renderer a BFF-hez tartozik. A Complexity kezeli a generálást, a tartós állapotot és az előzményeket. Külön renderer-szolgáltatásra vagy hosztolt Gatewayre nincs szükség. A szokásos indításhoz használd a Docker-fejlesztést.
Függőségek és package patch
A backend a @openuidev/lang-core@1.0.1 csomagot rögzíti. A BFF ezt a csomagot és az @openuidev/react-lang@1.0.1 csomagot rögzíti. Az install parancsot minden repóban annak package managerével és lockfile-jával futtasd.
A BFF patches/@openuidev__react-lang@1.0.1.patch fájlja és a workspace patchedDependencies beállítása install-bemenet. A patch megszünteti a fejlesztői DevTools automatikus külső CDN-betöltését, a renderer exportjait megtartva. Ne szerkeszd kézzel a node_modules mappát.
Az opcionális OPENUI_TELEMETRY_DISABLED=1 a függőségek install-folyamatára vonatkozik. Ez nem kötelező alkalmazás-.env bemenet. A csomagok kiadási korához kötött kivételek nem engedélyeznek szélesebb verziótartományt. Frissítéskor a két csomagot, a lockfile-okat, a patchet, a parsert és a registry szerződését együtt ellenőrizd.
Adatbázis és Prisma
A kanonikus SQL-fájlok a mailGen/ECS_MovePST_To_TempSQL/DB_Lib/Sql/ mappában vannak. A sémabeállítás ebben a sorrendben történik:
20261015_complexity_ui_states.sql: acomplexity.ui_statestábla, az output/revision egyedi kulcs és az üzenet-idegen kulcs.20261015_complexity_ui_state_groups.sql: nullablelink_group_id, revízióra szűkített csoport-egyedi kulcs és identitás CHECK.20261016_complexity_ui_state_tool_ids.sql: kettőspont támogatása a kanonikus tool- és output-azonosítókban. Az egyenlőség és a 200 karakteres korlát megmarad.20261016_complexity_submit_input.sql: nullablecomplexity.chats.submit_input_enabled boolean. A meglévő NULL érték az alkalmazásban kikapcsolt állapotot jelent.20261016_complexity_ui_state_revisions.sql: pozitív UI-revíziók a korábbi, ismertui_revision = 1feltétel helyett. Azanswer_revision > 0és aversion > 0megmarad.
A séma alkalmazásához használd a deployment szokásos, kontrollált sémaútját. A scripts/apply-local-database-migrations.sh a hozzá tartozó helyi Compose-környezetben alkalmazza a védett migrációkat. Más runtime és teszt-példány saját, ellenőrzött sémautat igényel. A Prisma sémaszinkron önmagában nem hozza létre az SQL CHECK-korlátokat.
A revízió-frissítés megáll, ha ismeretlen vagy nem ellenőrzött CHECK-korlátot talál. A már helyes pozitív CHECK újbóli alkalmazása változatlanul hagyja. A módosítás nem ad hozzá oszlopot, nem tölt fel adatot és nem ad hozzá Prisma-leképezést. Az EF-leképezés és a friss setup CHECK-korlátja is pozitív revíziókat használ.
Az állapot-, csoport- vagy Submit input leképezés módosítása után generáld újra a backend és a BFF Prisma kliensét a saját sémájukból. Csak CHECK-et módosító revízió-változtatáshoz nem kellenek új modellnevek vagy mezők.
Frissítés előtt vizsgáld meg a hatókört és az offline sémamegőrzési különbséget. Őrizd meg az állapot- és csevegősorokat, az egyedi kulcsokat, az indexeket és az idegen kulcsokat. Destruktív vagy ismeretlen különbségnél állj meg. A reset, a volume törlése, a --accept-data-loss és a --force-reset nem frissítési lépések.
Szolgáltatások és jogosultságok
A BFF, a Complexity-szolgáltatás és a Getter kompatibilis forrásszerződést használ. Az Admin kezeli a Submit input (a bemenet modellnek küldésének engedélyezése) szabályzati katalógusát. Ha ez a katalógus változik, frissítsd az Admint.
A célzott csoport Agent tool access (ügynök-eszközhozzáférés) beállításához külön displayOpenUI és displayMarkdown jogosultság kell. Az eszközregisztráció és a korábban mentett beállítások nem adnak futásidejű hozzáférést.
A tartós állapot a meglévő tulajdonosi titkosítási és konverziós útvonalat használja. A kapcsolt csoportok saját, hitelesített társított adatokat (AAD) használnak. Külön infrastruktúra-szolgáltatás, credential, bucket vagy port nem kell. Az UI-állapot mentése nem hív modellt. A modellnek küldéshez a Submit input engedélyezése szükséges.
Generálási szabályzat és prompt-alapértékek
A szabályzat- vagy alapértékváltozáshoz a BFF, a Complexity és az Admin egyező forrását használd. Az Admin LLM configuration oldalán (magyarul: LLM-beállítások) különböztesd meg a beépített alapértékeket a bérlői (tenant) felülírásoktól. A frissítés nem írja át automatikusan a bérlői promptokat és a meglévő futásokból származó pillanatképeket.
Az új, soron belüli generálás és a megtartott régi előzmény-megjelenítés a megjelenítési viselkedést követi. Csak prompt-alapérték változásához nem kell sémamigráció vagy új környezeti változó.
Indítás után egy eldobható beszélgetéssel ellenőrizd a generálást, az interakciót, az újratöltést, a régi revíziókat és a nyelvi megjelenítést. Lásd a generált UI használatát és a setup-követelményeket.
Indítási ellenőrzések a tartós UI-state-hez
Az egységes Docker-inicializálás során a Prisma-sémaszinkron megelőzi az adatbázis-feature installert. A seed-lépés az installer után fut. A normál újraindítás, amely kihagyja az inicializálást, ezeket a lépéseket nem ismétli meg.
Az installer három kanonikus CHECK-korlátot biztosít a complexity.ui_states táblán:
ui_states_revision_check: azanswer_revision, azui_revisionés a CAS-versionmindegyikének pozitívnak kell lennie. A CAS a compare-and-swap, vagyis a párhuzamos frissítések verziós ellenőrzése.ui_states_identity_check: atool_call_id-nak egyeznie kell azoutput_id-val. Az azonosító 1–200 ASCII-betűt, számjegyet, aláhúzást, kettőspontot vagy kötőjelet fogad el.ui_states_group_identity_check: alink_group_idlehet NULL. Egyébként 1–200 ASCII-betűt, számjegyet, aláhúzást vagy kötőjelet fogad el.
Az installer hozzáadja a hiányzó CHECK-et, és validálja az összes meglévő sort. Az azonos, validált CHECK változatlan marad, beleértve a PostgreSQL-objektumazonosítóját (OID). Csak a várt constraint-név alatt lévő, pontosan ismert régi revízió- vagy tool/output-azonosító-definíciót cseréli le.
Egy ismeretlen definíció, egy nem validált constraint, egy eltérő constrainttípus vagy egy érvénytelen sor leállítja a tranzakciót és az inicializálást. Újrapróbálkozás előtt vizsgáld meg az adatbázis-katalógust és a meglévő sorokat. Ne kerüld meg ezeket az ellenőrzéseket, és ne használj destruktív indítási kapcsolókat.
A Prisma továbbra is kezeli a relációs objektumokat: a táblákat, oszlopokat, indexeket, egyedi kulcsokat és idegen kulcsokat. A fenti SQL-fájlok maradnak a kanonikus, explicit upgrade-definíciók.
Izolált példány esetén használd annak saját, ellenőrzött sémaútját. Ehhez a példányhoz ne használd a régi scripts/apply-local-database-migrations.sh célkeresését. Ez a szkript a backend régi Coolify Compose-fájlja, annak környezeti fájlja és a COMPOSE_PROJECT_NAME alapján választja ki a PostgreSQL-célt. Az infrastruktúra-wrapper is betölti a backend környezetét. A példány célját nem a futtatókörnyezeti pillanatképből határozza meg.