standardize: ports, binary names, wait-and-restart logic #11

Merged
mik-tf merged 11 commits from development_hero_zero_standardize into development 2026-02-12 00:56:04 +00:00
Owner

Part of hero ecosystem standardization.

Changes

  • Updated all service templates to use standardized ports from hero_ports registry
  • Wait-and-restart logic: services start immediately, hero_zero restarts failed installs
  • Standardized binary names across all 15 services
  • All service templates point to development_hero_zero_standardize branch for testing

Ecosystem-wide standardization (coordinated across 15 repos)

  • Port alignment: all repos use ports from hero_ports skill registry
  • Binary naming: all binaries match repo name in snake_case per naming_convention skill
  • Makefile compliance: all repos follow makefile_helper skill — targets are 1-2 commands max, logic in scripts/
  • CI coverage: all repos have compile/build jobs in Forgejo CI
  • Package names: Cargo.toml package names match repo names

Testing

  • 15/15 services Running with correct ports via clean build (rm -rf ~/hero/ && make run)
  • 57 unit tests pass across 6 repos with test coverage, 0 failures
  • All binaries compile and install correctly
Part of hero ecosystem standardization. ## Changes - Updated all service templates to use standardized ports from hero_ports registry - Wait-and-restart logic: services start immediately, hero_zero restarts failed installs - Standardized binary names across all 15 services - All service templates point to `development_hero_zero_standardize` branch for testing ## Ecosystem-wide standardization (coordinated across 15 repos) - **Port alignment**: all repos use ports from hero_ports skill registry - **Binary naming**: all binaries match repo name in snake_case per naming_convention skill - **Makefile compliance**: all repos follow makefile_helper skill — targets are 1-2 commands max, logic in `scripts/` - **CI coverage**: all repos have compile/build jobs in Forgejo CI - **Package names**: Cargo.toml package names match repo names ## Testing - 15/15 services Running with correct ports via clean build (`rm -rf ~/hero/ && make run`) - 57 unit tests pass across 6 repos with test coverage, 0 failures - All binaries compile and install correctly
feat: standardize ports, binary names, add download method, remove hero_router
Some checks are pending
Build and Test / build (push) Waiting to run
a7975f7d34
Major changes:
- Implement download method in _InstallService (curl-based binary download)
- Remove hero_router placeholder (my_router_path repo doesn't exist)
- Remove --web-port 3875 from zinit-server (unsupported flag)

Port standardization (per hero_ports registry):
- hero_redis: 6666 -> 3378
- hero_shrimp: 3131 -> 3384
- hero_aibroker: 3751 -> 3385
- hero_indexer: 9753 -> 3386
- hero_forge: 7365 -> 3387
- hero_wasmos: 8201 -> 3388
- hero_compute_manager: 3760 -> 3389
- hero_supervisor: 3030 -> 3390
- hero_runner: added port 3391
- mycelium: 9651 -> 3392
- forgejo: 3000 -> 3393

Binary name standardization (per naming_convention):
- heroforge-server -> hero_forge
- compute -> hero_compute_manager
- herorunner -> hero_runner
- supervisor -> hero_supervisor
- heroindex -> hero_indexer
- hero_wasmos_server -> hero_wasmos
- aibroker -> hero_aibroker

Other fixes:
- hero_compute_manager: add REDIS_URL + depends_on hero_redis
- hero_supervisor: fix REDIS_URL to use port 3378
- hero_runner: fix SUPERVISOR_URL to use port 3390
- hero_osis: fix HERO_INDEXER_PORT to 3386
- forgejo: switch to download method
- Set branch=development_hero_zero_standardize for repos with changes
fix: binary name extraction, tarball downloads, install ordering
Some checks are pending
Build and Test / build (push) Waiting to run
b6e3c68d51
- Add extract_binary_name() helper: handles sh/bun wrappers by scanning for
  __HERO_BIN__ paths instead of blindly taking first token
- Download method: support .tar.gz extraction (needed for mycelium)
- Fix forgejo download URL to use Codeberg release format
- Fix mycelium template: binary is 'mycelium' not 'myceliumd'
- Install ordering: hero_supervisor.install depends on hero_osis.install
  (hero_coordinator has path dependency on hero_osis source)
- Install ordering: .install oneshots now inherit depends_on from service
  templates, ensuring correct build order
- Optional binary hash: skip hash for non-binary services (bun/JS apps)
- Fix install.rs binary_exists check to use extract_binary_name
- Support download method in install.rs binary_exists check
fix: source_deps for hero_coordinator, mycelium runtime config
Some checks are pending
Build and Test / build (push) Waiting to run
1c39966c99
- Add source_deps field to BuildSection: lists repos whose source must be
  cloned before building (handles Cargo path dependencies)
- hero_supervisor/hero_runner: add source_deps=[hero_osis] so hero_osis
  source is cloned before hero_coordinator builds
- mycelium: use --tcp-listen-port 3392 --no-tun --key-file to avoid root
  TUN requirement and port conflicts
fix: mycelium port conflicts with system mycelium, data dir creation
Some checks are pending
Build and Test / build (push) Waiting to run
29fa73305e
- Add separate ports for mycelium API (3396), JSON-RPC (3397),
  peer discovery (3398) to avoid conflicts with system mycelium
- Add MYCELIUM_DATA env var to trigger data dir creation
fix: switch hero_books from download to build method
Some checks are pending
Build and Test / build (push) Waiting to run
96fdaeed2a
releases.ourworld.tf is not resolving (NXDOMAIN). Switch to building
from source which works. Also fix branch from development_auth (doesn't
exist) to development.
fix: use COMPUTE_PORT env var instead of --port CLI arg
Some checks are pending
Build and Test / build (push) Waiting to run
a160fa0794
hero_compute_manager reads port from COMPUTE_PORT env var, not --port
CLI flag. The --port arg was being silently ignored.
feat: wait for installs to complete, then restart failed services
Some checks are pending
Build and Test / build (push) Waiting to run
4438543f8d
After starting all services, hero_zero now polls until all .install
oneshots finish building, then restarts any services that failed during
the build window. This fixes the clean-slate race condition where
services fail because their binary doesn't exist yet.
fix(hero_osis): add explicit branch = development to prevent source_deps clone conflict
Some checks are pending
Build and Test / build (push) Waiting to run
c5874f99f9
standardize: point all service templates to development_hero_zero_standardize branch
Some checks failed
Build and Test / build (push) Failing after 2s
Build and Test / build (pull_request) Failing after 1s
8d0d7eb521
ci: restrict test triggers to PRs and push to development/main
Some checks are pending
Build and Test / build (pull_request) Waiting to run
1de7133061
Stop triggering test/build workflows on every push to every branch.
Tests now run only on:
- push to development or main (post-merge validation)
- pull_request targeting development or main (pre-merge check)
- manual workflow_dispatch

Per forge_ci skill: Standard Workflow Triggers convention.
standardize: switch git dep branches to development
Some checks failed
Build and Test / build (pull_request) Failing after 2s
941b9af420
Preparation for merge: all git dependency branch refs changed from
development_hero_zero_standardize to development. After hero_lib PR
merges first, all downstream deps resolve on development branch.
mik-tf merged commit 428f59d25e into development 2026-02-12 00:56:04 +00:00
mik-tf deleted branch development_hero_zero_standardize 2026-02-12 00:56:06 +00:00
Sign in to join this conversation.
No reviewers
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_services!11
No description provided.