OSIS island still 404s on default web build — no bundle path available even after PR #103 #112
Labels
No labels
prio_critical
prio_low
type_bug
type_contact
type_issue
type_lead
type_question
type_story
type_task
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
lhumina_code/hero_os#112
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?
Context
#44 reported
Failed to load island WASM 'osis': Island not found: osis (HTTP 404)and was closed today by PR #103 (loader URL fix:/islands/...→/hero_os/ui/islands/...).PR #103 is correct and necessary — but it only unblocks islands that already have a bundle on disk. PR #103's own test note acknowledges this:
The OSIS 404 is one of those "separate deployment issues" — and it's a deterministic, reproducible code/config gap, not a deployment artifact. Filing this as a narrower follow-up so OSIS doesn't get conflated with #44.
Reproduction
WASM_FEATURES=web(the default).GET /hero_os/ui/islands/osis/hero_archipelagos_osis.js → 404. The URL is now correct (post-PR-#103); the file doesn't exist.Two render paths exist; default
webbuild has zero of them for OSISThe shell can render an island via either:
_appcrate compiled intohero_os_app's main WASM. Controlled by anisland-<name>-nativecargo feature.hero_archipelagos_<name>crate thatmake installbuilds withwasm-packand drops at/islands/<name>/hero_archipelagos_<name>.js.For OSIS, neither is available on the default build:
Native path is gated out of
webIn
crates/hero_os_app/Cargo.tomlondevelopment:island-osis-native = ["dep:hero_osis_app", "native-bootstrap"]— feature exists.web= …): does not listisland-osis-native.web-native= …): does includeisland-osis-nativeat L149.So
WASM_FEATURES=web(the default) compileshero_os_appwithouthero_osis_app, and the dispatcher's#[cfg(feature = "island-osis-native")]arm is absent at runtime.Lazy path doesn't exist at all
hero_archipelagos's tree ondevelopment(879 entries) has no OSIS island crate. The 17 archipelagos underarchipelagos/:The only OSIS-named blob is
archipelagos/intelligence/intelligence/src/views/knowledge/osis_picker.rs— that's an OSIS-aware view inside the intelligence island, not a standalone OSIS island. There is nohero_archipelagos_osispackage, somake installproduces nothing at/islands/osis/....Workaround (Mik documented this in home#171)
Build hero_os with
WASM_FEATURES=web-nativeinstead of the defaultweb. That pulls inisland-osis-native, which linkshero_osis_appinto the main WASM and makes the dispatcher render OSIS via the native path. The lazy path stays unavailable, but it's not needed if native is compiled in.This is a deliberate parallel track per Mik's reply on home#190: the
_appcrates /island-*-nativefeatures are a 100% SPA migration that's intentionally not the default while Kristof's direction is "not yet."Fix options
One of these needs to land for OSIS to work on the default
webbuild (in priority order, cheapest first):island-osis-nativeto the defaultwebfeature inhero_os_app/Cargo.toml. One-line change. Bypasses the parallel-track policy specifically for OSIS, which has no iframe alternative — unlike islands likecollabandwhiteboardthat have iframe fallbacks documented in home#171.hero_archipelagos_osiscrate somake installproduces an/islands/osis/...bundle. More work but keeps the OSIS island on the lazy path and aligns with the convention used for system islands likeservices.The right choice depends on the answer to the open architectural question in home#190 — "Convention question: parallel _app Dioxus crates and island-*-native features — finish, repurpose, or deprecate?"
Why this matters
Until one of the fixes above lands, every default-build deployment ships a dock that includes an OSIS tile that 404s on click. Operators can rebuild with
WASM_FEATURES=web-nativeas a workaround, but that's not the documented default install path.