fix(islands): wire books, compute, voice to archipelago embeds #75
No reviewers
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!75
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "development_fix_island_embeds"
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?
Summary
Replaces the three remaining
ExternalServiceIframefallbacks inisland_content.rswith the real archipelago embed components (BooksApp,ComputeApp,VoiceApp). Those components construct the iframesrcviaIslandContext::with_window_id(...)and carry the per-island theme/auth sync wiring that the generic fallback lacks.Related Issue
Closes #74
Changes
crates/hero_os_app/src/island_content.rsBooksApp,ComputeApp,VoiceAppcfg-gated re-exports alongside the existing embed imports.BooksApp(featureisland-books) and kept the nativeHeroBooksApparm underisland-books-native.ComputeApp(featureisland-compute) and an iframe fallback for the defensive "neither feature" case.VoiceApp(featureisland-voice), keeping the existing native arm.crates/hero_os_app/Cargo.tomlisland-voice = ["dep:hero_archipelagos_voice"].hero_archipelagos_voiceas an optional git dep onbranch = "development"(mirroring the otherhero_archipelagos_*crate declarations).island-booksandisland-voiceto the defaultwebfeature list so the new arms are selected in the default web build.Cargo.lock— regenerated to include the new archipelago crates (books,compute,voice) and their transitive deps.Test Plan
cargo check -p hero_os_app --no-default-features --features webpasses (13 warnings, all pre-existing).cargo check -p hero_os_app --no-default-features --features web-nativepasses (15 warnings, all pre-existing).booksisland renders the.books-islandwrapper fromBooksApprather than.embed-container-plain. Same forcompute(.compute-embed.embed-container) andvoice(.voice-embed/.voice-islandperVoiceApp).srcfor each of the three islands containshero_window_id=<id>when a window_id is provided (verified by inspecting thesrcattribute in the devtools inspector).251ba2f410904c35c967904c35c967da8ca82cd1cc46d0dfb93366a8f3503366a8f350627789540262778954024414dc7fff