Objective
Make the Loop RuntimeBridge start the actual published Runtime binary reliably on clean installations and fail with actionable diagnostics before any effect is attempted.
The Runtime package publishes the executable named simplicio, while RuntimeBridge currently defaults to simplicio-runtime. This works only with an undocumented wrapper or SIMPLICIO_RUNTIME_BIN override.
Implementation steps
- Define canonical binary resolution order: explicit constructor value, SIMPLICIO_RUNTIME_BIN, installed simplicio, then documented legacy aliases.
- Never resolve the Loop's own executable or an arbitrary PATH collision as Runtime.
- Probe version and compiled identity before starting MCP.
- Start simplicio serve --mcp --stdio --json and complete initialize/initialized.
- Call capabilities/tools-list and require the exact tools needed by the requested execution route.
- Validate MCP protocol version, Runtime version range, effect transaction schema and HBI/HBP compatibility.
- Cache the verified binary identity per executable hash, invalidating on file replacement.
- Add doctor output with resolved path, version, SHA, capabilities and exact repair command.
- Preserve Runtime-optional Loop operation; only Runtime-backed routes require the binary.
- Remove silent fallback when the user explicitly selected Runtime execution.
Tests
- PyPI-installed Runtime exposing only simplicio.
- Explicit valid/invalid SIMPLICIO_RUNTIME_BIN.
- Legacy alias available.
- PATH collision and wrong product identity.
- Old/incompatible Runtime version.
- Missing required MCP tool.
- MCP protocol mismatch and malformed tools/list.
- Paths with spaces and Windows executable suffix.
- Binary replaced while a session is alive.
- Clean Linux/macOS/Windows fixtures.
Acceptance criteria
Relations
- Runtime machine-readable manifest: wesleysimplicio/simplicio-runtime#3043
- Runtime warm path: wesleysimplicio/simplicio-runtime#2983
Objective
Make the Loop RuntimeBridge start the actual published Runtime binary reliably on clean installations and fail with actionable diagnostics before any effect is attempted.
The Runtime package publishes the executable named simplicio, while RuntimeBridge currently defaults to simplicio-runtime. This works only with an undocumented wrapper or SIMPLICIO_RUNTIME_BIN override.
Implementation steps
Tests
Acceptance criteria
Relations