Hero OS Development Plan — hero_proc, services, inspector, auth & shipping #50
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
hero_proc — Central Process Manager
hero_proc replaces zinit as the unified process manager for all Hero services.
Self-starting services
--startflag--start, the binary uses the Hero SDK to register itself with hero_procmake run→hero_embedder --startStartup sequence
Logging
embedder.workspace.id.job.id.sourceStatus
Get hero_proc working properly, stress test it, then demo via terminal and UI.
OpenRPC / MCP / Inspector
Every Hero service must expose:
hero_inspector is the bridge: it reads OpenRPC specs and automatically generates MCP interfaces. No service implements MCP directly. Inspector merges into the proxy and service layer.
Services Architecture
Git & Branches
development_kristofhas been merged intodevelopmentdevelopmentTesting Workflow
hero_auth & SSO
hero_collab
UI Theme
Other Items
Shipping Plan
Bulk of code → integration → fix bugs → ship. Services go live one by one. Compute goes live, people can play.
Incorporated into the master roadmap: #38. Closing this issue.
Phase 1 complete: hero_proc replaces zinit in Docker deployment
Commit:
bd14ea1on hero_services developmentDone
hero_proc restartfor failed servicesNext phases
--start(each binary registers with hero_proc via SDK)Signed-off-by: mik-tf
Phase 1 & 2 Complete
Phase 1 (done in bd14ea1)
Phase 2 (done today)
servesubcommand + lifecycle commands (run, start, stop, status, logs)What remains for #50
--startself-registration — each binary registers itself with hero_proc via SDK, replacing hero_services_server orchestrationProgress update — P1 Phase 3 + P2 complete
P1 Phase 3: Self-registration via HeroLifecycle (DONE)
ZinitLifecyclealias everywhere (13 binaries, 8 repos). Single pattern:HeroLifecyclefromhero_servicecratezinit_sdkintegration withhero_service::HeroLifecycle(3 crates, PR ondevelopment_mik_6_1).env()builderprofile.rsnow calls{binary} start— each service registers itself with hero_proc. Falls back to SDK for non-standard exec (shell wrappers, bun scripts)cargo-server-patches.toml— local path overrides for hero_rpc, hero_lib, hero_proc. Builds work from local repos without pushing firstSKIP_WASM=1 make distpassed — 37 binaries, validation OKP2: Inspector/MCP cleanup (DONE)
/mcpendpoint (9 hardcoded tools in mcp.rs)users.update_scopeas proper JSON-RPC method + OpenRPC spec entry (was orphan MCP-only tool)mcp.rs(417 lines), removed/mcproute from hero_auth/mcpdirectly. Inspector reads OpenRPC specs and auto-generates MCP tools for all servicesP1 Phase 4 (Logging) — status
Remaining
Signed-off-by: mik-tf
Verified: P1 Phase 3 + P2 — Docker smoke test passed
Docker test results (hero_zero:dev)
Key fixes since last update
start_service_via_binary()now passes--service-name,--run-args,--envto the binary'sstartcommandstart(run as foreground servers)--service-nameoverrideRemaining
Signed-off-by: mik-tf
All services now have HeroLifecycle
Migrated the last 3 Rust services that were missing lifecycle support:
All 3 now support
start,stop,status,logs,runsubcommands.Final lifecycle coverage
Total: 28/29 Rust binaries have HeroLifecycle. Only hero_shrimp (TypeScript) uses SDK fallback.
Docker test: 20/21 services running, all smoke tests pass.
Signed-off-by: mik-tf
P1 Phase 4 (Logging) — E1-E4 complete
What was done
logs.insertRPCinfo(),error(),warn(),debug(),info_tagged(),flush()srcformat:service.component.subcomponent(dotted notation)hero_service::HeroLoggerandhero_rpc_server::HeroLoggerLifecycle migration also complete
What's left on #50
Signed-off-by: mik-tf
Closing — all core items complete
Done
{binary} start --service-nameSplit to follow-up issues
Docker verification
Signed-off-by: mik-tf