feat(ops): Phase 27 — hero_demo source-repo + hero_skills install module + profile entry #12

Open
opened 2026-05-06 17:47:11 +00:00 by mik-tf · 0 comments
Owner

Why

hero_assistance is currently NOT in:

  • hero_demo/README.md's 27-source-repo list
  • hero_skills/nutools/install/ install modules (so service_install_all doesn't pick it up)
  • Any hero_demo profile

A fresh Hero OS box provisioned via hero_demo does NOT bring up hero_assistance. To finish Hero OS integration, hero_assistance must be installable end-to-end from a single service_complete invocation.

Depends on: Phase 24 (hero_proc lifecycle), Phase 25 (admin dashboard), Phase 26 (island).

What

A. hero_demo/README.md source-repo list

Add hero_assistance to the appropriate archipelago row in the 27-repo table. Same archipelago as Phase 26 / D-23 (Communication recommended).

A.1. Binary release infrastructure — already in place ✓

We already have CI binary publishing per s32 (issue #6, closed). On every v* tag push, .forgejo/workflows/build-linux.yaml:

  • Builds hero_assistance_server, hero_assistance_ui, hero_assistance binaries (target x86_64-unknown-linux-gnu, suffix linux-amd64)
  • Publishes to both Forgejo Releases page (binary attachments — what svc_install_download consumes) AND Forgejo Generic package registry (backup channel at https://forge.ourworld.tf/lhumina_code/-/packages/generic/hero_assistance/<version>)
  • Naming convention <bin>-linux-amd64 matches hero_skills svc_install_download expectation exactly

Phase 27 install module just needs to call svc_install_download with linux-amd64 asset suffix — no CI changes needed.

B. hero_skills install module

New file: hero_skills/nutools/modules/services/service_hero_assistance.nu (canonical location, sibling to service_books.nu / service_collab.nu). Mirrors the existing pattern. Both install paths supported (matches service_collab.nu line 256-275):

service_hero_assistance install                                 # cargo build (default)
service_hero_assistance install --download                      # download latest release from Forgejo
service_hero_assistance install --download --version v0.3.1     # specific tag
service_hero_assistance install --download --reset              # force refetch

The --download path uses svc_install_download $SVX_SERVICE_NAME $SVX_FORGE_LOC $SVX_BINARIES $sudo $reset $version "linux-amd64". Already compatible with our CI — s32 (.forgejo/workflows/build-linux.yaml) publishes binaries as <bin>-linux-amd64 on Forgejo Releases on every v* tag. The 3 published binaries (hero_assistance_server-linux-amd64, hero_assistance_ui-linux-amd64, hero_assistance-linux-amd64) match svc_install_download's naming convention exactly.

The cargo build path uses svc_install $SVX_SERVICE_NAME $SVX_FORGE_LOC $SVX_BINARIES $sudo $update $reset $release — same as service_collab.

Hooks into service_hero_assistance install/start from Phase 24's nu_service module (the scripts/service_hero_assistance.nu in this repo is the dev-time entrypoint; this hero_skills module is the deploy-time entrypoint).

C. hero_demo profile

Add hero_assistance to one or more profiles under hero_demo/profiles/. Default candidate: communication or support profile.

D. Smoke test

Provision a fresh Hero OS VM (TFGrid single-VM or local KVM), run service_complete, verify:

  • hero_proc service status hero_assistance_server reports healthy
  • hero_proc service status hero_assistance_ui reports healthy
  • Admin dashboard reachable via hero_router at /hero_assistance_admin/...
  • Customer SPA reachable as island in hero_os shell
  • Curl smoke: /health, /openrpc.json, /rpc ping

Acceptance

  • hero_demo/README.md PR merged
  • hero_skills/nutools/install/install_hero_assistance.nu PR merged
  • hero_demo/profiles/<X>.toml PR merged
  • Fresh-VM smoke: service_complete brings hero_assistance up successfully
  • service_hero_assistance install --download --version v0.3.1 pulls binaries from Forgejo Releases and installs to ~/hero/bin/ without falling back to cargo build
  • service_hero_assistance install (no flags) builds from source via svc_cargo_install
  • Operator admin dashboard reachable via hero_router prefix
  • Customer SPA island shows up in hero_os archipelago view
  • All curl smoke checks pass

Files to touch (external repos)

  • lhumina_code/hero_demo — README.md + profile TOML
  • lhumina_code/hero_skillsinstall_hero_assistance.nu
  • lhumina_code/hero_archipelagos — finalize island registration from Phase 26

Files to touch (this repo)

  • prompt.md §1 — mark Phase 27 done; close Hero OS integration phase
  • CLAUDE.md — final state paragraph

Out of scope

  • New engineering work (all earlier phases must be complete)

References

  • Skill tfgrid_deploy
  • Reference: hero_demo/README.md 27-repo table
  • Reference: existing install_hero_*.nu modules in hero_skills
## Why hero_assistance is currently NOT in: - `hero_demo/README.md`'s 27-source-repo list - `hero_skills/nutools/install/` install modules (so `service_install_all` doesn't pick it up) - Any `hero_demo` profile A fresh Hero OS box provisioned via `hero_demo` does NOT bring up hero_assistance. To finish Hero OS integration, hero_assistance must be installable end-to-end from a single `service_complete` invocation. Depends on: Phase 24 (hero_proc lifecycle), Phase 25 (admin dashboard), Phase 26 (island). ## What ### A. `hero_demo/README.md` source-repo list Add `hero_assistance` to the appropriate archipelago row in the 27-repo table. Same archipelago as Phase 26 / D-23 (Communication recommended). ### A.1. Binary release infrastructure — already in place ✓ We already have CI binary publishing per s32 (issue #6, closed). On every `v*` tag push, `.forgejo/workflows/build-linux.yaml`: - Builds `hero_assistance_server`, `hero_assistance_ui`, `hero_assistance` binaries (target `x86_64-unknown-linux-gnu`, suffix `linux-amd64`) - Publishes to **both** Forgejo Releases page (binary attachments — what `svc_install_download` consumes) AND Forgejo Generic package registry (backup channel at `https://forge.ourworld.tf/lhumina_code/-/packages/generic/hero_assistance/<version>`) - Naming convention `<bin>-linux-amd64` matches hero_skills `svc_install_download` expectation exactly Phase 27 install module just needs to call `svc_install_download` with `linux-amd64` asset suffix — no CI changes needed. ### B. `hero_skills` install module New file: `hero_skills/nutools/modules/services/service_hero_assistance.nu` (canonical location, sibling to `service_books.nu` / `service_collab.nu`). Mirrors the existing pattern. **Both install paths supported** (matches service_collab.nu line 256-275): ```nu service_hero_assistance install # cargo build (default) service_hero_assistance install --download # download latest release from Forgejo service_hero_assistance install --download --version v0.3.1 # specific tag service_hero_assistance install --download --reset # force refetch ``` The `--download` path uses `svc_install_download $SVX_SERVICE_NAME $SVX_FORGE_LOC $SVX_BINARIES $sudo $reset $version "linux-amd64"`. **Already compatible with our CI** — s32 (`.forgejo/workflows/build-linux.yaml`) publishes binaries as `<bin>-linux-amd64` on Forgejo Releases on every `v*` tag. The 3 published binaries (`hero_assistance_server-linux-amd64`, `hero_assistance_ui-linux-amd64`, `hero_assistance-linux-amd64`) match `svc_install_download`'s naming convention exactly. The `cargo build` path uses `svc_install $SVX_SERVICE_NAME $SVX_FORGE_LOC $SVX_BINARIES $sudo $update $reset $release` — same as service_collab. Hooks into `service_hero_assistance install/start` from Phase 24's nu_service module (the `scripts/service_hero_assistance.nu` in this repo is the dev-time entrypoint; this hero_skills module is the deploy-time entrypoint). ### C. `hero_demo` profile Add hero_assistance to one or more profiles under `hero_demo/profiles/`. Default candidate: communication or support profile. ### D. Smoke test Provision a fresh Hero OS VM (TFGrid single-VM or local KVM), run `service_complete`, verify: - `hero_proc service status hero_assistance_server` reports healthy - `hero_proc service status hero_assistance_ui` reports healthy - Admin dashboard reachable via `hero_router` at `/hero_assistance_admin/...` - Customer SPA reachable as island in hero_os shell - Curl smoke: `/health`, `/openrpc.json`, `/rpc` ping ## Acceptance - [ ] `hero_demo/README.md` PR merged - [ ] `hero_skills/nutools/install/install_hero_assistance.nu` PR merged - [ ] `hero_demo/profiles/<X>.toml` PR merged - [ ] Fresh-VM smoke: `service_complete` brings hero_assistance up successfully - [ ] `service_hero_assistance install --download --version v0.3.1` pulls binaries from Forgejo Releases and installs to `~/hero/bin/` without falling back to cargo build - [ ] `service_hero_assistance install` (no flags) builds from source via `svc_cargo_install` - [ ] Operator admin dashboard reachable via hero_router prefix - [ ] Customer SPA island shows up in hero_os archipelago view - [ ] All curl smoke checks pass ## Files to touch (external repos) - `lhumina_code/hero_demo` — README.md + profile TOML - `lhumina_code/hero_skills` — `install_hero_assistance.nu` - `lhumina_code/hero_archipelagos` — finalize island registration from Phase 26 ## Files to touch (this repo) - `prompt.md` §1 — mark Phase 27 done; close Hero OS integration phase - `CLAUDE.md` — final state paragraph ## Out of scope - New engineering work (all earlier phases must be complete) ## References - Skill `tfgrid_deploy` - Reference: `hero_demo/README.md` 27-repo table - Reference: existing `install_hero_*.nu` modules in hero_skills
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
lhumina_code/hero_assistance#12
No description provided.