Add per-service lifecycle modules for all hero services #75
Labels
No labels
prio_critical
prio_low
type_bug
type_contact
type_issue
type_lead
type_question
type_story
type_task
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
lhumina_code/hero_skills#75
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?
tools/modules/services/currently has lifecycle modules (install | start | stop | status) for 7 services. Per thenu_serviceskill, every hero service should have one. This issue tracks the remaining coverage.hero_zero has been archived (2026-04-20)
hero_zero/services/*.tomlis no longer the source of truth. The nu modules inhero_skills/tools/modules/services/are the authoritative hero_proc registration for every service. Any TOML references below are historical; the nu modules fully replace them.Pattern
Each module is a Nushell module at
tools/modules/services/service_<name>.nuthat:install | start [--reset] | stop | status--rootonly when the service must run under root's hero_proc (privileged port, CAP_NET_ADMIN,/root/hero/...paths)Template:
service_codescalers.nu(full-featured) orservice_browser.nu(user-level only). Usage pattern documented in thenu_serviceandnu_service_useskills underclaude/skills/.Already done (7)
--rootservice_proc.nuservice_router.nuservice_mycelium.nuservice_proxy.nuservice_browser.nuservice_embedder.nuservice_codescalers.nuTier 1 — ready to build (repo exists)
service_os.nu— hero_os (hero_os_server+hero_os_ui) (#77, PR #78)service_osis.nu— one module,--domainflag for the 18 variants: ai, base, business, calendar, code, communication, embedder, files, finance, flow, identity, job, ledger, media, network, projects, settings (+ the plain admin UI) — shipped by parallel agent; module in treeservice_books.nu— depends on indexer + embedder (#80, PR #81)service_collab.nu(#84, PR #85)service_whiteboard.nu(#82, PR #83)service_biz.nu— depends on osis_identity + proxy (#86, PR #89)service_db.nu(#87, PR #88)service_indexer.nu— shipped by parallel agent; module in treeservice_voice.nu(#92, PR #93)service_aibroker.nu— writesmodelsconfig.yml, consumesOPENROUTER_API_KEY/GROQ_API_KEY(#90, PR #91)service_foundry.nu— hero_foundry + hero_foundry_ui (#94, PR #95)service_compute.nu— hero_compute (uses hero_compute_registry for VM images) (#154)service_agent.nuservice_shrimp.nu— hero_shrimp Rust manager + server/cli/ui (#155)service_office.nu(#97, PR #98)service_claude.nu(#99)Tier 2 — repo exists, module not yet started
These just need a
service_<name>.numodule written. Sincehero_zerois archived, the nu module is the authoritative hero_proc registration — no TOML prerequisite. Follow the standard flow per the pinned comment.service_slides.nushipped by parallel agent; module in treehero_filemanager_*, nothero_drive_*service_logic.nushipped by parallel agent; module in treeservice_matrixchat.nushipped by parallel agent; module in tree(More repos exist that are likely services but weren't in this first cut — add them to this list as they come up.)
Shipped modules not originally on Tier 1 / Tier 2
Parallel-agent work added modules for services that weren't on the original tracker:
service_code.nu— shipped by parallel agent; module in tree. Note: requireslibseccomp-dev+libcap-ng-devat link time (filed as #96).service_lib_rhai.nu— shipped by parallel agent; module in tree (not a hero_proc service — installs thehero_doRhai runner binary).Out of scope / needs an owner
forgejo,forgejo_mcp— third-party; use upstream binary / package.hero_auth,hero_secure,hero_setup,hero_supervisor,hero_forge_ui,hero_cloud— historically declared inhero_zero(now archived) but no corresponding standalone repo inlhumina_code. Needs an owner / clarification before we can build these.hero_runnerwas renamed tohero_code; its module (service_code.nu) has shipped.Acceptance criteria per service
use services/mod.nu *makesservice_<name>available.--rootservices, regular user otherwise):service_<name> installclones, builds, and installs the binary to~/hero/bin/.service_<name> start --resetregisters with hero_proc and becomes healthy.service_<name> statusreports the state.service_<name> stopcleanly unregisters.startoutput prints sockets / UI URL / a short test plan, per thenu_service_useskill.Execution flow
We process this tracker one service at a time via
/forge_issue_mgmt. Each service follows the same cycle so the parent stays the source of truth:service_<name>.nu — <short description>. The body links back to #75 and restates the acceptance criteria.- [ ] service_os.nu — hero_os (#NN)./forge_issue_mgmtagainst the sub-issue — spec → approval → branchdevelopment_service_<name>fromdevelopment→ per-step implementation → test → final summary comment.development. Conventional commit prefixfeat(services): add service_<name>.nu. PR description closes the sub-issue and references #75.Invariants:
service_os.nuimplementation open for review: #78 (closes #77)rm -f $sock | completebreaks stop when running as root #79service_books.nuimplementation open for review: #81 (closes #80)Status update — Tier 1 progress:
service_os.numerged via PR #78 (closes #77).service_books.numerged via PR #81 (closes #80).Starting
service_whiteboard.nunext. The execution flow in the pinned comment governs every cycle; parent will be ticked as each PR lands.service_whiteboard.nuimplementation open for review: #83 (closes #82)Status update — Tier 1 progress:
service_whiteboard.numerged via PR #83 (closes #82).Starting
service_collab.nunext.service_collab.nuimplementation open for review: #85 (closes #84)PR opened: #88
service_biz.nuimplementation open for review: #89 (closes #86)PR opened: #91
service_voice.nuimplementation open for review: #93 (closes #92)Status update — Tier 1 progress:
service_voice.numerged via PR #93 (closes #92).Starting
service_foundry.nunext (covers bothhero_foundryandhero_foundry_ui).service_foundry.nuimplementation open for review: #95 (closes #94)Status audit — 2026-04-20
All merged service_*.nu modules are now ticked on the tracker. Big inventory sync since the last status comment.
Tier 1 merged (11 of 16)
service_os.nu— PR #78service_books.nu— PR #81service_whiteboard.nu— PR #83service_collab.nu— PR #85service_db.nu— PR #88service_biz.nu— PR #89service_aibroker.nu— PR #91service_voice.nu— PR #93service_foundry.nu— PR #95 (just merged)service_osis.nu— parallel agent, in tree (sub-issue wasn't opened; tracking retroactively)service_indexer.nu— parallel agent, in treeTier 1 remaining (5)
service_compute.nu— hero_compute + hero_compute_manager (uses hero_compute_registry)service_agent.nuservice_shrimp.nu— Bun/TS runtime, exec viabun run …service_office.nuservice_claude.nuTier 2 merged (3 of 7)
Originally "TOML needed first" items that ended up shipped along with the module:
service_slides.nuservice_logic.nuservice_matrixchat.nuTier 2 remaining (4)
Shipped outside the original tracker (2)
service_code.nu— hero_code (formerly hero_runner). Note:libseccomp-dev+libcap-ng-devneeded at link time (tracked at #96).service_lib_rhai.nu— not a hero_proc service; installs thehero_doRhai runner binary.Totals
tools/modules/services/.Related open issues
service_proc.nu:270rm bug (service_proc stop when run as root).Next cycle
Recommending
service_agent.nuorservice_office.nuas the next pilot — both appear to be clean two-binary virtual-workspace services with no external deps, so they should land as near-copy-renames ofservice_voice.nu/service_indexer.nu. Complex ones remaining:service_compute.nu(multi-repo coordination) andservice_shrimp.nu(Bun/TypeScript runtime — the first non-Rust service).Heads-up for anyone reading:
hero_zerois archived. The parent tracker above has been updated accordingly:repo + TOML both exist; nowrepo exists).demo_*bullet, reclarified thehero_auth/hero_secure/etc. ones as "historically declared in hero_zero (now archived)", and noted thathero_runnerwas renamed tohero_code(itsservice_code.nuhas shipped).The nu modules in
hero_skills/tools/modules/services/are now the single authoritative source for hero_proc action definitions per service.PR opened: #98
Status check vs
origin/developmentRan
git ls-tree -r --name-only origin/development -- tools/modules/services/and cross-referenced against the checklist above.✅ Newly shipped since last issue update (2026-04-21)
service_agent.nuservice_livekit.nu✅ All 7 "already done" + every checked box still in tree
Verified present:
service_proc,service_router,service_mycelium,service_proxy,service_browser,service_embedder,service_codescalers,service_os,service_osis,service_books,service_collab,service_whiteboard,service_biz,service_db,service_indexer,service_voice,service_aibroker,service_foundry,service_office,service_slides,service_logic,service_matrixchat,service_code,service_lib_rhai.➕ Modules in tree but not on the original tracker
service_core.nuservice_onlyoffice.nuservice_office.nu).service_rhai_runner.nuservice_lib_rhai; one of the two may be intended for deprecation.❌ Still missing — issue stays open
Tier 1:
service_compute.nu— hero_compute + hero_compute_manager (uses hero_compute_registry)service_shrimp.nu— Bun/TS runtime, exec viabun run …service_claude.nu(tracked in #99)Tier 2:
service_editor.nu(hero_editor)service_drive.nu(hero_drive)service_mail.nu(hero_mail)Six modules to go. Issue stays open — re-tick the boxes in the body if the tracker should reflect the two newly-shipped items above (
service_agent,service_livekit).Trimmed
service_compute.nuscope in the body —hero_compute_managerno longer exists (per maintainer). Confirmed byls hero_compute/crates/and the Forgejo API:lhumina_code/hero_compute_manageris not a repo, andhero_compute/crates/hashero_compute,hero_compute_server,hero_compute_ui,hero_compute_explorer,hero_compute_sdk,hero_compute_examples(no_manager).So the
service_compute.nuwork is justhero_compute(the CLI uses thehero_proc_service_selfstartpattern to registerhero_compute_server,hero_compute_ui, andhero_compute_explorer).hero_compute_registryis still active and remains the source for VM images.Opened the five missing-module issues — body updated with cross-links.
The sixth (
service_claude.nu) is already tracked in #99. Once all six land, this tracker can close.