Add hero_osis selfstart CLI (hero_proc_service_selfstart pattern) #32
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_osis#32
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?
Problem
This repo does not follow the
hero_proc_service_selfstartpattern used by every other Hero service (excepthero_office, tracked separately).A
hero_osisbinary does exist atcrates/hero_osis_server/src/bin/hero_osis.rs, but it is auto-generated bybuild.rsand is a multi-domain orchestrator — it spawns every OSIS domain server (ai,base,business,calendar,code,communication,embedder,files,finance,flow,identity,job,ledger,media,network,projects,settings) in one tokio runtime. It is a server, not a lifecycle CLI.As a consequence,
tools/modules/services/service_osis.nuinhero_skillshas to hand-transcribe the hero_proc action spec rather than delegating to a canonical Rust--start/--stopdefinition.Proposed solution
Add a separate selfstart CLI — suggestion: new crate
crates/hero_osis_daemon/producing binaryhero_osis_daemon(keeping the existinghero_osisorchestrator binary untouched, since it is used at runtime inside the supervised service).Alternative naming if preferred: rename
hero_osis→hero_osis_orchestratorand free up thehero_osisname for the selfstart CLI. That matches thehero_claude/hero_voiceprecedent better but requires touchingbuild.rsand downstream references.Scope
crates/hero_osis_daemon/(lib-less, onesrc/main.rs) added to the workspace members list.[[bin]] name = "hero_osis_daemon"(orhero_osisafter rename — operator's call).hero_proc_sdk(git, branchdevelopment) andclap.main.rspattern: identical tohero_voice/crates/hero_voice/src/bin/hero_voice.rs:clapstruct with--start/--stopflags.build_service_definition()that returns aServiceBuildResult. OSIS is 18 domain servers + 1 admin UI. The action spec should either:hero_osisaction that execs the orchestrator binary (simplest), ORself_start()/self_stop()→hero_proc_sdk::lifecycle::restart_service/stop_service.buildenv.sh→ addhero_osis_daemon(or whatever binary name is chosen) toBINARIES.Cargo.toml[workspace].membersto include the new crate.README.mdwith the--start/--stopusage block.Reference exemplars
lhumina_code/hero_voice/crates/hero_voice/src/bin/hero_voice.rs— lean two-action selfstart.lhumina_code/hero_agent/crates/hero_agent_daemon/src/main.rs—_daemoncrate naming precedent.lhumina_code/hero_claude/crates/hero_claude/src/main.rs— rich action spec with env pass-through.Downstream effect
Once this lands,
tools/modules/services/service_osis.nuinhero_skillscan be refactored to a thin delegator, removing the action-spec duplication.See the
hero_proc_service_selfstartskill for the canonical pattern description.Refs: lhumina_code/hero_skills#75