All UI crates must expose GET /openrpc.json #4

Closed
opened 2026-03-04 23:59:26 +00:00 by mik-tf · 0 comments
Owner

Context

Per Hero ecosystem skills, every _ui service should expose its backend OpenRPC spec at GET /openrpc.json. This allows the inspector to discover methods even when the UI does not proxy POST /rpc.

Currently, only UIs that implement a manual RPC proxy (forwarding POST /rpc to the backend _server.sock) are discoverable. UIs without this proxy show 0 methods in the inspector.

Affected UI crates

  • hero_os_http (hero_os repo) — has /rpc/{context} proxy but no /openrpc.json; PR in progress on development_consolidated
  • hero_foundry_ui (hero_fossil repo) — has /api/discover but no /openrpc.json; PR in progress

Not applicable (no UI crate exists)

  • hero_proxy_ui — hero_proxy is a reverse proxy, no dedicated UI crate
  • hero_auth — single binary, no UI crate
  • hero_biz — web forms app, no JSON-RPC UI

UIs that already work (proxy /rpc)

hero_books, hero_embedder, hero_indexer, hero_osis, hero_redis, hero_voice, zinit — all discoverable by inspector.

Future: openrpc_proxy! macro

The skills reference an openrpc_proxy! macro that would standardize this. Until implemented, each UI adds a manual GET /openrpc.json route.

  • Inspector probe: POST /rpc first, then GET /openrpc.json fallback (hero_inspector PR #4, merged)
  • Service TOML renames: _http -> _ui (hero_services #43)
## Context Per Hero ecosystem skills, every `_ui` service should expose its backend OpenRPC spec at `GET /openrpc.json`. This allows the inspector to discover methods even when the UI does not proxy `POST /rpc`. Currently, only UIs that implement a manual RPC proxy (forwarding `POST /rpc` to the backend `_server.sock`) are discoverable. UIs without this proxy show 0 methods in the inspector. ## Affected UI crates - [ ] `hero_os_http` (hero_os repo) — has `/rpc/{context}` proxy but no `/openrpc.json`; PR in progress on `development_consolidated` - [ ] `hero_foundry_ui` (hero_fossil repo) — has `/api/discover` but no `/openrpc.json`; PR in progress ## Not applicable (no UI crate exists) - ~`hero_proxy_ui`~ — hero_proxy is a reverse proxy, no dedicated UI crate - ~`hero_auth`~ — single binary, no UI crate - ~`hero_biz`~ — web forms app, no JSON-RPC UI ## UIs that already work (proxy `/rpc`) hero_books, hero_embedder, hero_indexer, hero_osis, hero_redis, hero_voice, zinit — all discoverable by inspector. ## Future: openrpc_proxy! macro The skills reference an `openrpc_proxy!` macro that would standardize this. Until implemented, each UI adds a manual `GET /openrpc.json` route. ## Related - Inspector probe: `POST /rpc` first, then `GET /openrpc.json` fallback (hero_inspector PR #4, merged) - Service TOML renames: `_http` -> `_ui` (hero_services #43)
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
lhumina_code/home#4
No description provided.