1.2.23 — Build pipeline bug fixes
What changed
checker.py — crash on framework files outside project root
relative_to() threw ValueError when a syntax error's source file was in the rb install directory (~/.rb/bin/) rather than the project. The checker now handles this gracefully and suppresses errors from framework/vendor files — they use Luau-specific syntax (+=, etc.) that luac 5.x rejects as invalid, but which is correct for Roblox.
Before: build crashed with a Python ValueError traceback instead of showing the real error.
After: framework-file errors are silently filtered; only user-code errors fail the build.
Prometheus — += compound assignment not supported
Prometheus (Lua 5.x obfuscator) cannot parse Luau compound assignment operators (+=, -=, *=, etc.). Any project code that used += in init {} or local function blocks caused an obfuscation failure.
Fix: all compound assignments in project source files must use expanded Lua 5.x form (t = t + x instead of t += x). The framework compiler now documents this constraint.
guard keyword not transpiled inside nested local function blocks
The guard DSL keyword was only transpiled in handler bodies (on Heartbeat { }) and func {} blocks. When used inside a local function defined within init {}, it was emitted as-is into the compiled output, causing Prometheus to fail with a parse error.
Fix: use explicit Lua inside local function bodies in init {}:
-- instead of:
local function _scan()
guard r = hrp -- ✗ not transpiled here
end
-- use:
local function _scan()
local r = hrp; if not r then return end -- ✓
end