v0.3.1 - 5.8 survival: the Capability Ladder
5.8 survival -- the Capability Ladder
The bridge was silently broken on UE 5.8. 5.8 defaults
RemoteControlSettings.bAllowAnyRemoteFunctionCall to False, which blocks every
/remote/object/call with HTTP 400 "not allowed by remote control settings". So
execute_python and every codegen tool failed live -- while ue_status and the
mock-only CI stayed green. Connectivity was measured; capability never was.
Fixed
bAllowAnyRemoteFunctionCall=TrueinConfig/DefaultRemoteControl.ini--
the one line that unblocks every tool on 5.8 (localhost-only, single-trusted-
operator model; the bridge already permits arbitrary Python exec over RC).- The Remote Control error body is no longer swallowed -- the clients
returned only "Client error '400 '"; they now preserve the RC body that says
why.
Added -- the Capability Ladder (so this can't recur silently)
ue_preflight+ue_health_check(deep=true): a runtime probe that
separates reachable (a GET) from permitted / capable (a real function
call) / round-trip (the full Python path), stops at the first failure, and
returns the named cause + one-line fix with the raw RC body as evidence.- A diagnosis map (error signature -> cause -> fix) -- every future live
failure becomes a rule. - 13 tests incl. the golden failure test: the 5.8 block must surface as
rungPermittednamingbAllowAnyRemoteFunctionCall.
Why it matters: connectivity, permission, and capability are three different
signals. The bridge measured one. A health check can never again read green
while the bridge is dead -- and any failure now names its own fix.