feat(service_os): close lifecycle gaps — start_base/start_full bundles + islands_build with preflight #162
Labels
No labels
prio_critical
prio_low
type_bug
type_contact
type_issue
type_lead
type_question
type_story
type_task
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
lhumina_code/hero_skills#162
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?
Summary
service_oshas two lifecycle gaps that bite anyone setting up hero_os from scratch:service_X startcalls by hand and remember the right set + ordering.service_*wrapper for the per-island WASM build. A complete UI needs THREE artifact phases: hero_os Rust binaries (service_os install), the main hero_os_app shell WASM (service_os wasm_build), and ~30 per-island WASM bundles built fromhero_archipelagosviawasm-pack. Phase 3 has noservice_oswrapper — users have to know to manually runcd ~/hero/code0/hero_archipelagos && make install. There's also no preflight warning when the islands directory is missing, so the failure mode is "click a dock icon → 404 in the browser console" rather than "see a hint at start time."Plus a non-obvious operational gotcha for phase 3: hero_os_ui only registers the
/islandsHTTP route if the directory exists at process startup. So even after a successful islands install, the running hero_os_ui won't serve them until it's restarted.Proposal
Three new commands + one preflight warn, all added to
tools/modules/services/service_os.nu:All three accept the standard
--root/--update/--resetflags from the existing module conventions.islands_buildalso takes--restart(because of the at-startup route registration caveat above) and preflights wasm-pack availability.startnow has a non-fatal preflight warn for missing islands, mirroring the existingsvx_check_assetspattern:Design choices
startdoesn't auto-callwasm_build/islands_build;start_base/start_fulldoesn't auto-call them either. Same separation-of-phases the module already uses forinstallvswasm_build. Each phase logs separately and can be re-run independently.start_basecompanion set is opinionated. Just the services hero_os_app actually consumes via SDK imports (hero_osis_sdkfor AI bar / spaces) plus auth (hero_proxy, per the registry.rs comment "auth moves to hero_proxy"). Everything else is feature-island specific and goes instart_full.start_fulldoes explicit ordering. livekit before collab (collab auto-chains livekit, but explicit ordering keeps output readable).Related
_appcrates andisland-*-nativefeaturesAcceptance
service_os start_basebrings up hero_os + companions on a fresh boxservice_os islands_build --restartproduces a working dock without manualcd hero_archipelagosservice_os startwarns clearly when islands are missing