min
2f9d6a21f6
fix(rbxl-importer): CORS preflight + открыт для всех
...
Фронт студии (studio.rublox.pro) делал POST /import/rbxl/analyze
на minecraftia-school.ru/api-rbxl, preflight (OPTIONS) не получал
Access-Control-Allow-Origin → CORS ошибка.
Фиксы:
- after_request гарантированно ставит CORS-заголовки на ВСЕ ответы
(включая OPTIONS) — раньше flask-cors иногда их не отдавал
- Явный handler для OPTIONS /import/rbxl/analyze + create
- Headers: Allow-Origin=*, Allow-Methods, Allow-Headers content-type+x-user-id
- Убрал ALLOWED_USER_IDS=[1] (импорт открыт всем — кнопка
в UI уже без гейтинга, см. вики «Импорт из Roblox»)
Деплой: вручную через SSH на VM 130 (rbxl-importer не имеет CI/CD).
2026-06-10 01:27:48 +03:00
412bb2fad9
feat(rbxl-import): студия исполняет импортированные Roblox-Lua скрипты
...
CI / Lint (pull_request) Successful in 2m43s
CI / Build (pull_request) Successful in 1m57s
CI / Secret scan (pull_request) Successful in 1m21s
CI / PR size check (pull_request) Successful in 8s
CI / Deploy to S1 + S2 (pull_request) Has been skipped
Сегодня доведены до играбельного состояния:
- UI модалка импорта подключена в KubikonStudio (кнопка для МИНа в навигации)
- Converter: SCALE 0.35 (карта пропорциональна R15-персонажу),
playerModelType='skin_bacon-hair', Lua упакован в поле code с маркером
// @roblox-lua (storys API сохраняет только {id,code,target,name})
- vite.config: api+статика через rublox.pro/minecraftia-school.ru
- GameRuntime: распознаёт маркер, запускает через RobloxLuaSandbox
+ wasmoon Worker. Фильтрация: target!=null + lua<2500б +
лимит 50 sandbox'ов (WASM OOM при >50 VM)
- roblox-shim: nullStub (Proxy с no-op методами) вместо null
для FindFirstChild/WaitForChild — цепочки не падают
- require() заменён на nullStub
- RobloxLuaSandbox: совместимость с интерфейсом ScriptSandbox
(sendGlobalEvent/SceneSnapshot/etc — no-op заглушки)
- RobloxLuaWorker: pcall обёртка над user-кодом
- remoteDevlog.js + /devlog endpoint: автосбор browser-логов
- PlayerController._loadSkinManifest: dev-fallback на studio.rublox.pro
Тест на Easy Obby:
- 8205 instances → 2245 primitives + 742 Lua-scripts
- 50/742 Lua-VM запущены (KillBrick handlers и т.п.),
151 отфильтровано как admin/chat services, 541 пропущено по памяти
- Скин bacon-hair виден, FPS 20-25
- Сцена играется, можно ходить, прыгать
TODO (следующая итерация):
- Single-VM mode для wasmoon (один Lua-state на 742 скрипта,
убрать WASM OOM)
- Реализовать select/focus в иерархии для импортированных карт
- Touched events от Babylon impostor → Lua-shim сигналы
- Поддержка GUI (ScreenGui/Frame/TextLabel) в конвертере
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-07 21:13:16 +03:00