UI: Calendar island fails to open — shows Projects popup overlay instead #51

Closed
opened 2026-04-15 12:51:54 +00:00 by zaelgohary · 3 comments
Member

Description

When clicking Projects > Calendar from the dock popup, the Calendar window does not open properly. Instead, the Contexts window (background) remains visible and the Projects popup re-appears on top, obscuring any Calendar content.

The test found no month name, no day-of-week headers (Sun-Sat), and no calendar grid — confirming the Calendar view never rendered.

Steps to Reproduce

  1. Open Hero OS UI
  2. Click Projects in dock
  3. Click "Calendar" in the popup
  4. Observe: No calendar appears; the popup and Contexts window remain

Expected

A Calendar view with month grid, day headers, navigation arrows, and "+ New Event" button.

Severity

High — Calendar island is completely inaccessible

## Description When clicking Projects > Calendar from the dock popup, the Calendar window does not open properly. Instead, the Contexts window (background) remains visible and the Projects popup re-appears on top, obscuring any Calendar content. The test found no month name, no day-of-week headers (Sun-Sat), and no calendar grid — confirming the Calendar view never rendered. ## Steps to Reproduce 1. Open Hero OS UI 2. Click Projects in dock 3. Click "Calendar" in the popup 4. Observe: No calendar appears; the popup and Contexts window remain ## Expected A Calendar view with month grid, day headers, navigation arrows, and "+ New Event" button. ## Severity High — Calendar island is completely inaccessible
Author
Member

Screenshots

deep_cal_01_initial.png

deep_cal_01_initial.png

## Screenshots ### deep_cal_01_initial.png ![deep_cal_01_initial.png](https://forge.ourworld.tf/attachments/24bb69f7-3b18-4fa8-bbd0-93473b898109)
Member

Adding a current-build repro that suggests this has regressed further — the whole shell now disappears when the Calendar route is hit, not just the Calendar window.

Build: make installdev on hero_os / hero_osis / hero_router / hero_proc, started via make run. Accessed through hero_router at http://127.0.0.1:9988/hero_os/ui/.

Observed symptom matrix (today, dev):

Route Result
/space/geomind/calendar (direct deep-link) Full app crashdocument.body.innerText.length === 0, no .dock-btn, no .window-header. URL rewrites to /hero_os/ui/. Dark empty page.
/space/geomind/archipelagos+calendar (equivalent of clicking Calendar "Open" from the Store) Same — full app crash, shell gone.
/space/geomind/nonexistentXYZ Falls back to Voice, shell intact.
/space/geomind/archipelagos+nonexistentXYZ Falls back to Store, shell intact.

The fallback handling for unknown islands is fine — the crash is specifically triggered by the calendar island module during Dioxus mount. Hitting any other island first then trying to open Calendar from the dock will probably reproduce the original "popup overlay" symptom this issue describes; the direct-deep-link path just exposes it louder (whole shell gone).

Severity: this probably belongs at Blocker/Critical now — a bookmarkable URL that bricks the whole app on open is a much worse failure mode than "Calendar doesn't render".

Adding a current-build repro that suggests this has regressed further — the whole shell now disappears when the Calendar route is hit, not just the Calendar window. **Build:** `make installdev` on hero_os / hero_osis / hero_router / hero_proc, started via `make run`. Accessed through hero_router at `http://127.0.0.1:9988/hero_os/ui/`. **Observed symptom matrix (today, dev):** | Route | Result | |---|---| | `/space/geomind/calendar` (direct deep-link) | **Full app crash** — `document.body.innerText.length === 0`, no `.dock-btn`, no `.window-header`. URL rewrites to `/hero_os/ui/`. Dark empty page. | | `/space/geomind/archipelagos+calendar` (equivalent of clicking Calendar "Open" from the Store) | Same — full app crash, shell gone. | | `/space/geomind/nonexistentXYZ` | Falls back to Voice, shell intact. | | `/space/geomind/archipelagos+nonexistentXYZ` | Falls back to Store, shell intact. | The fallback handling for unknown islands is fine — the crash is **specifically triggered by the `calendar` island module** during Dioxus mount. Hitting any other island first then trying to open Calendar from the dock will probably reproduce the original "popup overlay" symptom this issue describes; the direct-deep-link path just exposes it louder (whole shell gone). **Severity:** this probably belongs at Blocker/Critical now — a bookmarkable URL that bricks the whole app on open is a much worse failure mode than "Calendar doesn't render".
Author
Member

Root cause traced — two independent bugs, both now have PRs:

  1. Dioxus signal scope violation (hero_archipelagos #81 → PR #83)
    WindowRouteContext::new() created signals in each Window's scope, but root-level effects read them from root. Dioxus logs "used in non-descendant scope" warnings every render — with multiple islands restored from URL, the storm pegs the main thread and freezes the UI before Calendar can even try to render.

  2. chrono missing wasmbind feature (hero_archipelagos #82 → PR #84)
    Without wasmbind, chrono::Local::now() falls back to std::time::SystemTime::now() on wasm32 — which panics with time not implemented on this platform the moment Calendar's view reads the current date.

Both fixes are needed to make Calendar open. Will auto-close on #84 merge via its Closes line.

References:

### Root cause traced — two independent bugs, both now have PRs: 1. **Dioxus signal scope violation** (hero_archipelagos #81 → PR #83) `WindowRouteContext::new()` created signals in each Window's scope, but root-level effects read them from root. Dioxus logs "used in non-descendant scope" warnings every render — with multiple islands restored from URL, the storm pegs the main thread and freezes the UI before Calendar can even try to render. 2. **chrono missing `wasmbind` feature** (hero_archipelagos #82 → PR #84) Without `wasmbind`, `chrono::Local::now()` falls back to `std::time::SystemTime::now()` on wasm32 — which panics with `time not implemented on this platform` the moment Calendar's view reads the current date. Both fixes are needed to make Calendar open. Will auto-close on #84 merge via its `Closes` line. References: - https://forge.ourworld.tf/lhumina_code/hero_archipelagos/pulls/83 - https://forge.ourworld.tf/lhumina_code/hero_archipelagos/pulls/84
Sign in to join this conversation.
No milestone
No project
No assignees
2 participants
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_os#51
No description provided.