Integrate per-domain OSIS split into hero_zero build & deploy pipeline #117
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?
Background
Timur's commit
3b52af0on hero_osis splits the monolithichero_osis_serverinto 17 per-domain binaries:hero_osis_identity,hero_osis_business,hero_osis_calendar,hero_osis_communication,hero_osis_files,hero_osis_projects,hero_osis_settings,hero_osis_network,hero_osis_finance,hero_osis_code,hero_osis_ai,hero_osis_flow,hero_osis_base,hero_osis_ledger,hero_osis_media,hero_osis_job,hero_osis_embedderEach domain gets its own OServer instance and socket:
$HERO_SOCKET_DIR/hero_osis_<domain>/rpc.sockThe old monolithic
hero_osis_serverbinary andmain.rsare deleted.What needs to change
1. hero_zero build pipeline
docker/build-local.shcurrently builds-p hero_osis_server— needs to build all 17 per-domain binaries.2. Service TOMLs
Replace single
hero_osis.tomlwith 17 per-domain TOMLs, each starting its own binary.3. Profiles
profiles/user.tomlneeds entries for all 17 domain servers (and hero_osis_ui).4. OSIS UI proxy
hero_osis_ui/src/routes.rsrpc_call_inner()currently connects to a singlehero_osis/rpc.sock. Needs to route to the correct per-domain socket based on the method prefix (e.g.Contact.list→hero_osis_identity/rpc.sock,Company.list→hero_osis_business/rpc.sock).5. Entrypoint seeding
docker/entrypoint.shwaits forhero_osis/rpc.sock— needs to wait for all domain sockets (or at least the critical ones like identity, business).6. WASM client / islands
hero_os WASM islands that call OSIS need to know which domain socket to target. The proxy routes may need updating.
7. Seed data
The
hero_osis_seedbinary may need updating for per-domain seeding.Context from Session 20
In session 20 we:
All these fixes are still valid — the per-domain OServer instances each use unified_server.rs which has our dispatch fixes.
Reference
3b52af0by Timur Gordon2f90341,91c30ef,cefba5a,8d406b5,5f7720bPer-domain OSIS split integrated (#117)
Changes
hero_zero (
2e665c4):build-local.sh/build-services.sh/preflight.sh: build all 17 per-domain binaries instead of monolithichero_osis_serverhero_osis_identity.toml,hero_osis_communication.toml, etc.)hero_osis.tomlnow UI-only (runshero_osis_uibinary)entrypoint.sh: wait forhero_osis_identity/rpc.sock, seed via identity socket directly,rpc.sock→ui.socksymlink for hero_router compatibilitydepends_onupdated: hero_os, hero_biz, hero_supervisor →hero_osis_identityhero_osis (
c4a2630):routes.rs:method_to_domain()maps RPC methods to correct per-domain socket; strips domain prefix from 3-part methodsmain.rs:/:contextPOST catch-all for hero_router's/ui/rpc/rewrite,/rpcdefault handlerVerified
/health,/.well-known/heroservice.json,/openrpc.json,POST /rpcon each domain socketidentity.contact.list), 2-part (AuthService.get_challenge), cross-domain (calendar.event.list)Memory
17 OServer processes: ~282MB total (range 5-31MB per process). Well within 16GB VM budget.