Refactor archipelagos islands from zinit to hero_proc #61

Closed
opened 2026-03-20 02:27:27 +00:00 by mik-tf · 2 comments
Owner

Context

The zinit→hero_proc migration (#58) removed all zinit_sdk Cargo.toml deps across 12 repos. However, 3 archipelagos WASM islands still reference the old zinit REST API on port 9800:

  • archipelagos/embed/zinit/ — standalone zinit embed island
  • archipelagos/system/service/ — single service view (calls zinit_api_url() on port 9800)
  • archipelagos/system/services/ — service list view

These islands compile but won't show data since zinit's web UI no longer exists. They need to be refactored to use hero_proc_ui's JSON-RPC API instead.

What needs to change

  1. Replace zinit_api_url() (port 9800) with hero_proc_ui RPC calls
  2. Update data models (ServiceInfo, StatsSummary) to match hero_proc's service.status / service.stats responses
  3. Replace REST HTTP calls with JSON-RPC 2.0 calls to /hero_proc_ui/rpc
  4. Rename or alias the islands appropriately

Files

  • hero_archipelagos/archipelagos/system/service/src/services/zinit_service.rs
  • hero_archipelagos/archipelagos/system/service/src/island.rs
  • hero_archipelagos/archipelagos/system/services/src/
  • hero_archipelagos/archipelagos/embed/zinit/src/
## Context The zinit→hero_proc migration (#58) removed all `zinit_sdk` Cargo.toml deps across 12 repos. However, 3 archipelagos WASM islands still reference the old zinit REST API on port 9800: - `archipelagos/embed/zinit/` — standalone zinit embed island - `archipelagos/system/service/` — single service view (calls `zinit_api_url()` on port 9800) - `archipelagos/system/services/` — service list view These islands compile but won't show data since zinit's web UI no longer exists. They need to be refactored to use hero_proc_ui's JSON-RPC API instead. ## What needs to change 1. Replace `zinit_api_url()` (port 9800) with hero_proc_ui RPC calls 2. Update data models (`ServiceInfo`, `StatsSummary`) to match hero_proc's `service.status` / `service.stats` responses 3. Replace REST HTTP calls with JSON-RPC 2.0 calls to `/hero_proc_ui/rpc` 4. Rename or alias the islands appropriately ## Files - `hero_archipelagos/archipelagos/system/service/src/services/zinit_service.rs` - `hero_archipelagos/archipelagos/system/service/src/island.rs` - `hero_archipelagos/archipelagos/system/services/src/` - `hero_archipelagos/archipelagos/embed/zinit/src/`
Author
Owner

Browser test status (2026-03-20)

Full assessment of Hero OS dock tabs after all browser fixes + zinit migration:

Working (embedded JS dashboards):

  • Admin → Inspector: 33 services, 23 healthy
  • Admin → Proxy: 33/33 OK, all green
  • Admin → Foundry UI: works (socat bridge TCP:8654)
  • Admin → Embedder: works

Broken — old zinit islands (this issue):

  • Admin → Zinit: blank (calls port 9800)
  • Admin → Auth: blank (old zinit auth island)
  • Admin → Services: blank (old zinit services island)

Broken — WASM island socket routing (separate issue needed):

  • Intelligence (AI): HTTP 502 — cannot connect to backend socket
  • Communication: 502 — socket not found
  • Books: blank — WASM cant reach hero_books_server
  • Admin → Foundry: blank — socket routing
  • Admin → Redis: broken — Redis protocol, no admin UI

Blank — needs OSIS ready + seed data (#62):

  • Files, Media, Business, Projects, Store

Signed-off-by: mik-tf

## Browser test status (2026-03-20) Full assessment of Hero OS dock tabs after all browser fixes + zinit migration: ### Working (embedded JS dashboards): - Admin → Inspector: 33 services, 23 healthy - Admin → Proxy: 33/33 OK, all green - Admin → Foundry UI: works (socat bridge TCP:8654) - Admin → Embedder: works ### Broken — old zinit islands (this issue): - Admin → Zinit: blank (calls port 9800) - Admin → Auth: blank (old zinit auth island) - Admin → Services: blank (old zinit services island) ### Broken — WASM island socket routing (separate issue needed): - Intelligence (AI): HTTP 502 — cannot connect to backend socket - Communication: 502 — socket not found - Books: blank — WASM cant reach hero_books_server - Admin → Foundry: blank — socket routing - Admin → Redis: broken — Redis protocol, no admin UI ### Blank — needs OSIS ready + seed data (#62): - Files, Media, Business, Projects, Store Signed-off-by: mik-tf
Author
Owner

Done

Replaced all zinit REST API (port 9800) islands with hero_proc_ui iframe embeds.

Changes

  • hero_archipelagos: Rewrote services and service system islands from zinit REST API calls to iframe embeds of /hero_proc_ui/
  • hero_archipelagos: Updated zinit embed island metadata (renamed to Proc)
  • hero_services: Added zinit_ui.sock → hero_proc_ui.sock symlink in entrypoint.sh

Verification

  • make smoke passes — /hero_proc_ui/ returns 200, /zinit_ui/ routes to hero_proc_ui via symlink
  • No more port 9800 dependency anywhere in the codebase

Commits:

  • hero_archipelagos: dd89d19
  • hero_services: 82cca10

Signed-off-by: mik-tf

## Done Replaced all zinit REST API (port 9800) islands with hero_proc_ui iframe embeds. ### Changes - **hero_archipelagos**: Rewrote services and service system islands from zinit REST API calls to iframe embeds of /hero_proc_ui/ - **hero_archipelagos**: Updated zinit embed island metadata (renamed to Proc) - **hero_services**: Added zinit_ui.sock → hero_proc_ui.sock symlink in entrypoint.sh ### Verification - make smoke passes — /hero_proc_ui/ returns 200, /zinit_ui/ routes to hero_proc_ui via symlink - No more port 9800 dependency anywhere in the codebase Commits: - hero_archipelagos: dd89d19 - hero_services: 82cca10 Signed-off-by: mik-tf
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/home#61
No description provided.