[nu-demo] hero_os_app: island-room (and possibly others) missing from web feature — WASM 404 at runtime #123

Closed
opened 2026-04-23 23:09:45 +00:00 by mik-tf · 1 comment
Owner

Symptom

Clicking Rooms (under Intelligence in the dock) shows:

Failed to load island WASM 'room': JsValue(Error: Island not found: room (HTTP 404))
at eval (eval at <anonymous> (https://heronu.gent01.grid.tf/hero_os/ui/wasm/hero_os_app.js:551:25), <anonymous>:4:23)

Root cause

hero_os/crates/hero_os_app/Cargo.toml:43 defines the feature:

island-room = ["dep:hero_archipelagos_room", "hero_archipelagos_room/web"]

But the web feature list (line 117+) does NOT include island-room:

web = [
    "core",
    "island-ai", "island-messaging", "island-call", "island-livekit",
    "island-calendar", "island-filesystem", "island-tasks",
    ...
]

The dock does route to the room island (registry.rs registers it under Intelligence archipelago), but the WASM bundle doesn't contain the code, so runtime dispatch 404s.

Same class of bug as the earlier island-videos regression (fixed in our rebuild by adding FEATURES="web,island-videos"). Suspect other features are also drift: island-knowledge, island-intelligence, island-services all appear in web-native but not web.

Demo workaround (planned)

Rebuild hero_os_app with FEATURES="web,island-videos,island-room" (and grep the registry/dock for any other referenced islands missing from web). One-time ~8 min.

Proper fix

  1. Audit: compare registry.rs dock/archipelago entries against the web feature list. Any referenced island missing from web = incomplete build.
  2. Make it impossible: have the build script (or a compile-time check) assert that every v.push(..._metadata()) call in registry.rs is behind a #[cfg(feature = "...")] whose feature is in the web list. Fail the build otherwise.
  3. Tidy: consider merging web and web-native into a single web feature with a sub-flag for native islands, so the two lists can't drift out of sync.

Related: native islands use web-native — some are already registered. Unifying would eliminate duplication.

Linked

  • Videos was the same class of bug — we rebuilt with island-videos after the fact.
  • home#122 — broader pattern of hardcoded defaults.

Filed 2026-04-23 nu-shell demo bring-up. Signed-off-by: mik-tf

## Symptom Clicking **Rooms** (under Intelligence in the dock) shows: ``` Failed to load island WASM 'room': JsValue(Error: Island not found: room (HTTP 404)) at eval (eval at <anonymous> (https://heronu.gent01.grid.tf/hero_os/ui/wasm/hero_os_app.js:551:25), <anonymous>:4:23) ``` ## Root cause `hero_os/crates/hero_os_app/Cargo.toml:43` defines the feature: ```toml island-room = ["dep:hero_archipelagos_room", "hero_archipelagos_room/web"] ``` But the `web` feature list (line 117+) does NOT include `island-room`: ```toml web = [ "core", "island-ai", "island-messaging", "island-call", "island-livekit", "island-calendar", "island-filesystem", "island-tasks", ... ] ``` The dock **does** route to the `room` island (registry.rs registers it under Intelligence archipelago), but the WASM bundle doesn't contain the code, so runtime dispatch 404s. Same class of bug as the earlier `island-videos` regression (fixed in our rebuild by adding `FEATURES="web,island-videos"`). Suspect other features are also drift: `island-knowledge`, `island-intelligence`, `island-services` all appear in `web-native` but not `web`. ## Demo workaround (planned) Rebuild `hero_os_app` with `FEATURES="web,island-videos,island-room"` (and grep the registry/dock for any other referenced islands missing from `web`). One-time ~8 min. ## Proper fix 1. **Audit**: compare `registry.rs` dock/archipelago entries against the `web` feature list. Any referenced island missing from `web` = incomplete build. 2. **Make it impossible**: have the build script (or a compile-time check) assert that every `v.push(..._metadata())` call in `registry.rs` is behind a `#[cfg(feature = "...")]` whose feature is in the `web` list. Fail the build otherwise. 3. **Tidy**: consider merging `web` and `web-native` into a single `web` feature with a sub-flag for native islands, so the two lists can't drift out of sync. Related: native islands use `web-native` — some are already registered. Unifying would eliminate duplication. ## Linked - Videos was the same class of bug — we rebuilt with `island-videos` after the fact. - [home#122](https://forge.ourworld.tf/lhumina_code/home/issues/122) — broader pattern of hardcoded defaults. Filed 2026-04-23 nu-shell demo bring-up. Signed-off-by: mik-tf
Author
Owner

Moved to hero_demo#14 — see lhumina_code/hero_demo#14

Moved to hero_demo#14 — see https://forge.ourworld.tf/lhumina_code/hero_demo/issues/14
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#123
No description provided.