[meta] All Hero stack components should read config from hero_proc secrets (cross-layer META compliance) #225
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?
Goal
Every Hero stack component reads config from hero_proc secrets, not from OS env / config files /
option_env!/ iframe params. Single canonical source across all three layers (nu scripts, native Rust, WASM).The META rule from
hero_proc_metaskill: "all _ui and _server processes must read configuration exclusively from hero_proc secrets, never from OS env or config files." This umbrella extends that principle to the install-side nu scripts and the WASM frontend, since the same operator-experience problem ("oh you forgot to export X") applies at every layer.Why now
Surfaced sharply during session 68 (hero_office Bucket C item 4 of #212). hero_office is the only private repo in
lhumina_code/; makingservice office install --downloadwork required forwardingFORGEJO_TOKENfrom the operator's shell, which is exactly the wrong layer. The fix landed (lhumina_code/hero_skills@c28ba16) as transition compatibility, but the right shape is hero_proc secret reads everywhere.Children
lib.nu+service_*.nu)hero_*_server/hero_*_ui)hero_osshell +hero_archipelagosislands)Sequencing
--downloadso we have a stable consumer surface to refactor./configendpoint that WASM calls is itself a Rust binary that needs to be reading from hero_proc secrets first.End state — fresh-VM deploy contract
After all three children land, the entire Hero stack ships from a bare VM via:
No
~/.bashrcedits. No per-service env blocks. No iframe boot-param passthrough of secrets. Nooption_env!-baked tokens. No "I forgot to source env.sh" incidents.Acceptance criteria
hero_demo/docs/ops/DEPLOYMENT.mddocuments the canonical secret list.source ~/hero/cfg/env/env.sh.References
~/.claude/skills/hero_proc_meta/SKILL.md~/.claude/skills/hero_proc_secrets/SKILL.mdlhumina_code/hero_skills@c28ba16— the env-based transition fix that triggered this umbrellaFinal form — where this work lands
This META compliance umbrella is the second leg of a three-leg tripod that makes Hero deployable as an end-user product, not just a demo.
Once all three land plus the (separately planned) auth arc,
hero_routerbecomes the install surface in a one-session add: it already knows every running service via discovery; exposing/install/list+/install/<name>(calling into hero_proc's existing service-install path) collapses the bootstrap to two binaries —hero_router+hero_proc. From a bare HTTPS endpoint, the owner installshero_os, then any app, all binaries fetched from Forgejo Releases, all config seeded viahero_proc secret set, all state per-context portable.The Store island in
hero_archipelagos(archipelagos/archipelagos/archipelagos/src/island.rs) already has TODO comments naming exactly this: "In the future, this Store will support downloading apps from a package registry, at which point uninstalled apps will show a 'Get' button." No new repos, no new verbs — the install path already exists; this umbrella just makes its config layer deterministic enough that the Store's "Get" button can call it without operator-side env juggling.So this issue is not just hygiene — it's a precondition for the end-user product loop. Without it, the install path stays operator-only (must SSH and
export FOO=barper service); with it, install becomes a button click.mik-tf referenced this issue from lhumina_code/hero_demo2026-05-06 21:42:24 +00:00
First concrete instance of the META rule shipping is now tracked under home#230 Phase 2 —
BASE_PATHpurge across hero_biz / hero_foundry / hero_agent / hero_embedder / hero_code / hero_proc. Lands within the spirit of #223 (native Rust binaries) without unblocking the full umbrella.mik-tf referenced this issue from lhumina_code/hero_slides2026-05-10 12:48:31 +00:00