fix: probe POST /rpc, HTTP-first, MCP socket name lookup, BASE_PATH regex #4

Merged
mik-tf merged 7 commits from development_fix_openrpc_http_fallback into development 2026-03-05 00:21:49 +00:00
Owner

Summary

  • Add HTTP fallback in probe_openrpc_socket() when raw JSON-RPC fails
  • Many _server.sock services speak HTTP (axum-based), not raw stream JSON-RPC
  • Without this fix, hero_auth, hero_books_server, hero_embedder_server, hero_foundry_server, hero_inspector_server all show as unhealthy in the inspector UI

Fixes #3

Test plan

  • Deploy updated inspector in container
  • Verify previously-unhealthy services now show as healthy
  • Verify raw JSON-RPC services (zinit_server, hero_osis_server) still work

🤖 Generated with Claude Code

## Summary - Add HTTP fallback in `probe_openrpc_socket()` when raw JSON-RPC fails - Many `_server.sock` services speak HTTP (axum-based), not raw stream JSON-RPC - Without this fix, hero_auth, hero_books_server, hero_embedder_server, hero_foundry_server, hero_inspector_server all show as unhealthy in the inspector UI Fixes #3 ## Test plan - [ ] Deploy updated inspector in container - [ ] Verify previously-unhealthy services now show as healthy - [ ] Verify raw JSON-RPC services (zinit_server, hero_osis_server) still work 🤖 Generated with [Claude Code](https://claude.com/claude-code)
When CARGO_TARGET_DIR is set (e.g. in container builds), use it
directly instead of relying on python3 + cargo metadata fallback.
Fixes make install failing in environments without python3.

Co-Authored-By: mik-tf <mik@threefold.io>
Aligns with hero_ecosystem skill requirement: all repos must use
edition = "2024" and rust-version = "1.92".

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Take development's standardized Makefile header.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
chore: bump rust-version to 1.93 per hero_ecosystem standard
Some checks failed
Build & Test / check (pull_request) Failing after 1s
60f2c2ec27
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
fix: add HTTP fallback for _server.sock probing
Some checks failed
Build & Test / check (pull_request) Failing after 0s
ebf1ab2803
Services named *_server.sock are classified as SocketKind::Openrpc
and only probed with raw JSON-RPC. Many services (hero_auth,
hero_books_server, hero_embedder_server, hero_foundry_server)
actually speak HTTP over Unix socket. When raw JSON-RPC fails,
now falls back to probe_http_socket() before marking unhealthy.

Fixes #3

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
fix: make ConnectInfo optional in MCP handler
Some checks failed
Build & Test / check (pull_request) Failing after 1s
072df82c5c
When accessed via hero_proxy (Unix socket forwarding), the
ConnectInfo<SocketAddr> extension is not available, causing
HTTP 500. Make it optional and fall back to "unix" for logging.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
fix: probe POST /rpc, HTTP-first, MCP socket name lookup, BASE_PATH
Some checks failed
Build & Test / check (pull_request) Failing after 1s
ec5c1a3367
- Probe POST /rpc instead of POST / for rpc.discover (standard path)
- Fall back to POST / then GET /openrpc.json for legacy services
- Flip _server.sock probe order: HTTP first, raw JSON-RPC fallback
- MCP gateway: lookup by socket name (priority), then title (fallback)
- BASE_PATH regex: match _ui suffix instead of legacy _http

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
mik-tf changed title from WIP: fix _server.sock HTTP fallback probing to fix: probe POST /rpc, HTTP-first, MCP socket name lookup, BASE_PATH regex 2026-03-05 00:21:43 +00:00
mik-tf merged commit f3cdc6c3d0 into development 2026-03-05 00:21:49 +00:00
Sign in to join this conversation.
No reviewers
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/hero_inspector!4
No description provided.