Demo readiness — services, inspector, deployment #3

Closed
opened 2026-03-04 17:47:33 +00:00 by mik-tf · 3 comments
Owner

Get all Hero backend services running, visible in inspector, and deployed for demos.

Architecture

Layer 1: hero_builder_base        — build tools (Rust, zig, deps)
Layer 2: hero_services (prod)     — base services compiled + running
Layer 3: optional add-ons         — hero_biz, etc. downloaded as binaries from Forge package registry

The production container (hero_services PR #43) builds all core service binaries into a slim runtime image with zinit as service manager. Additional apps like hero_biz are published as standalone binaries and can be added on demand.

Backend services — must all run, on correct sockets, OpenRPC visible

  • hero_indexer
  • hero_books
  • hero_embedder
  • hero_db (Redis)
  • hero_voice
  • hero_biz
  • hero_auth
  • hero_os
  • hero_osis
  • hero_inspector
  • hero_proxy
  • All services discoverable via hero_inspector (OpenRPC specs on correct Unix sockets)
  • All services expose MCP via inspector gateway

hero_inspector — key validation tool

Inspector is the primary check that the backend works. It must:

  • Show all OpenRPC calls from all services
  • Open service UIs via web links
  • Provide MCP gateway to all services

Services must follow hero_sockets convention for discovery. Use hero_crates_best_practices_check to verify socket/OpenRPC compliance.

hero_biz regression

Business tools have lost features — currently not even a third of what was originally there:

  • Audit current vs original features
  • Restore cross-links (e.g. contact → contracts, customer → their data)
  • At minimum match previous demo capability

hero_voice

  • Build as Dioxus app
  • Connect to AI models
  • Hostable for demos

Branch cleanup

  • Coordinate with Timur
  • All service repos on single default branch (development)
  • Remove stale branches

Deployment

Main vehicle: hero_services PR #43 (Dockerfile.prod + TFGrid deploy)

  • Deploy on grid VM with all services running
  • Verify inspector shows all services
  • Gateway responds (HTTPS via TFGrid name proxy)
  • All UIs accessible

Container runtime note

Standard is Podman (see dev docs forge_docker_publish skill). However, runner host does not have Podman yet (circle_ops #666). hero_services PR #43 uses Docker for now — switch to Podman once ops resolves the runner setup. hero_builder PR #4 is already prepared for Podman with runs-on: host.

Notes

  • Move fast, do not break what works
  • Market is hot, need to give demos
  • Inspector is the validation layer — if it shows all services with OpenRPC, we are good
Get all Hero backend services running, visible in inspector, and deployed for demos. ## Architecture ``` Layer 1: hero_builder_base — build tools (Rust, zig, deps) Layer 2: hero_services (prod) — base services compiled + running Layer 3: optional add-ons — hero_biz, etc. downloaded as binaries from Forge package registry ``` The production container ([hero_services PR #43](https://forge.ourworld.tf/lhumina_code/hero_services/pulls/43)) builds all core service binaries into a slim runtime image with zinit as service manager. Additional apps like hero_biz are published as standalone binaries and can be added on demand. ## Backend services — must all run, on correct sockets, OpenRPC visible - [ ] hero_indexer - [ ] hero_books - [ ] hero_embedder - [ ] hero_db (Redis) - [ ] hero_voice - [ ] hero_biz - [ ] hero_auth - [ ] hero_os - [ ] hero_osis - [ ] hero_inspector - [ ] hero_proxy - [ ] All services discoverable via hero_inspector (OpenRPC specs on correct Unix sockets) - [ ] All services expose MCP via inspector gateway ## hero_inspector — key validation tool Inspector is the primary check that the backend works. It must: - Show all OpenRPC calls from all services - Open service UIs via web links - Provide MCP gateway to all services Services must follow hero_sockets convention for discovery. Use hero_crates_best_practices_check to verify socket/OpenRPC compliance. ## hero_biz regression Business tools have lost features — currently not even a third of what was originally there: - [ ] Audit current vs original features - [ ] Restore cross-links (e.g. contact → contracts, customer → their data) - [ ] At minimum match previous demo capability ## hero_voice - [ ] Build as Dioxus app - [ ] Connect to AI models - [ ] Hostable for demos ## Branch cleanup - [ ] Coordinate with Timur - [ ] All service repos on single default branch (development) - [ ] Remove stale branches ## Deployment Main vehicle: [hero_services PR #43](https://forge.ourworld.tf/lhumina_code/hero_services/pulls/43) (Dockerfile.prod + TFGrid deploy) - [ ] Deploy on grid VM with all services running - [ ] Verify inspector shows all services - [ ] Gateway responds (HTTPS via TFGrid name proxy) - [ ] All UIs accessible ## Container runtime note Standard is Podman (see [dev docs forge_docker_publish skill](https://forge.ourworld.tf/geomind_code/dev_docs/src/branch/development/claude/skills/forge_docker_publish/SKILL.md)). However, runner host does not have Podman yet ([circle_ops #666](https://forge.ourworld.tf/mycelium/circle_ops/issues/666)). hero_services PR #43 uses Docker for now — switch to Podman once ops resolves the runner setup. [hero_builder PR #4](https://forge.ourworld.tf/lhumina_code/hero_builder/pulls/4) is already prepared for Podman with `runs-on: host`. ## Related - [lhumina_code/home #1](https://forge.ourworld.tf/lhumina_code/home/issues/1) — checkboxes 2 (arm/intel binaries) and 3 (hero_os container) - [hero_builder PR #4](https://forge.ourworld.tf/lhumina_code/hero_builder/pulls/4) — Podman CI (blocked on ops) - [hero_services PR #43](https://forge.ourworld.tf/lhumina_code/hero_services/pulls/43) — production container + TFGrid deploy - [circle_ops #666](https://forge.ourworld.tf/mycelium/circle_ops/issues/666) — install Podman on runner host ## Notes - Move fast, do not break what works - Market is hot, need to give demos - Inspector is the validation layer — if it shows all services with OpenRPC, we are good
mik-tf changed title from Service cleanup — single branch, health audit, demo readiness to Demo readiness — services, inspector, deployment 2026-03-04 17:54:03 +00:00
Author
Owner

Status update — all backend services deployed and discoverable

Backend services — all running on VM (heroos.gend02.grid.tf)

  • hero_indexer — 19 methods
  • hero_books — 19 methods
  • hero_embedder — 33 methods
  • hero_db (Redis) — 20 methods
  • hero_voice — 16 methods
  • hero_biz — running, healthy
  • hero_auth — running, healthy
  • hero_os — 15 methods (via OSIS root context)
  • hero_osis — 509 methods
  • hero_inspector — 13 methods
  • hero_proxy — 4 methods
  • All services discoverable via hero_inspector (24 healthy, 0 unhealthy, 17 with methods)
  • MCP gateway works by socket name (e.g. /mcp/hero_redis_server)

Deployment

  • Container built and pushed: forge.ourworld.tf/lhumina_code/hero_zero:dev-combined-deploy
  • Deployed on TFGrid VM via make update ENV=prod
  • Inspector shows all services
  • Gateway responds (HTTPS via TFGrid name proxy)
  • All UIs accessible via hero_proxy

Service naming compliance

All TOMLs renamed from _openrpc/_http to _server/_ui per Hero ecosystem skills.

PRs (1 per repo, by mik-tf)

Repo PR Status
hero_inspector #4 Merged
hero_services #43 Open (WIP)
hero_embedder #7 Open (WIP)
hero_osis #12 Open (WIP)

Remaining

  • Branch cleanup (coordinate with Timur)
  • hero_biz feature audit (separate product concern)
  • Switch to Podman (blocked on circle_ops #666)
  • hero_os_http and hero_foundry_ui: add GET /openrpc.json (lhumina_code/home #4)
## Status update — all backend services deployed and discoverable ### Backend services — all running on VM (`heroos.gend02.grid.tf`) - [x] hero_indexer — 19 methods - [x] hero_books — 19 methods - [x] hero_embedder — 33 methods - [x] hero_db (Redis) — 20 methods - [x] hero_voice — 16 methods - [x] hero_biz — running, healthy - [x] hero_auth — running, healthy - [x] hero_os — 15 methods (via OSIS root context) - [x] hero_osis — 509 methods - [x] hero_inspector — 13 methods - [x] hero_proxy — 4 methods - [x] All services discoverable via hero_inspector (24 healthy, 0 unhealthy, 17 with methods) - [x] MCP gateway works by socket name (e.g. `/mcp/hero_redis_server`) ### Deployment - [x] Container built and pushed: `forge.ourworld.tf/lhumina_code/hero_zero:dev-combined-deploy` - [x] Deployed on TFGrid VM via `make update ENV=prod` - [x] Inspector shows all services - [x] Gateway responds (HTTPS via TFGrid name proxy) - [x] All UIs accessible via hero_proxy ### Service naming compliance All TOMLs renamed from `_openrpc`/`_http` to `_server`/`_ui` per Hero ecosystem skills. ### PRs (1 per repo, by mik-tf) | Repo | PR | Status | |---|---|---| | hero_inspector | #4 | **Merged** | | hero_services | #43 | Open (WIP) | | hero_embedder | #7 | Open (WIP) | | hero_osis | #12 | Open (WIP) | ### Remaining - [ ] Branch cleanup (coordinate with Timur) - [ ] hero_biz feature audit (separate product concern) - [ ] Switch to Podman (blocked on circle_ops #666) - [ ] hero_os_http and hero_foundry_ui: add `GET /openrpc.json` (lhumina_code/home #4)
Author
Owner

Considered done as superseded by #5

Considered done as superseded by #5
Author
Owner

Considered done as superseded by #5

Considered done as superseded by #5
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#3
No description provided.