Maestro task 107b8fbe-2557-4b21-a557-2da8daa3a722 — Navigation: crest tap to child log and idle return.
Done-condition: tapping a present crest opens that child's quest log, and back/idle return navigates to the board, using the strategy-generated paths. Away plates do NOT navigate. A test asserts the navigation target for a present plate and that an away plate has no navigation.
Verification against the built bundle found the navigation already wired correctly (no frontend/src change; the committed bundle rebuilds byte-identical). What was missing was proof: nothing asserted where a crest tap or the quest log's idle return actually lands.
frontend/tests/render-party-board.mjs: optional url + click_plate spec keys; output now also carries tappable (plates rendered as ) and location (pathname after the tap). jsdom's Event must shadow Node's so the card's location-changed dispatch is delivered.
frontend/tests/render-quest-log.mjs (new): mounts the quest-log card at a URL and reports the pathname/title after an optional idle wait.
tests/test_panel_cards.py: three navigation tests composed from the strategy's generated configs — present crest tap lands on /nestquest/ada (the exact computed URL), the away plate is not tappable and tapping it leaves the URL at /nestquest, and the idle return navigates to /nestquest via the strategy-computed board_path.
Checks: cd frontend && npm run build (bundle unchanged); TZ=UTC uv run pytest -q -> 1701 passed (baseline 1698 + 3 new).
Maestro task 107b8fbe-2557-4b21-a557-2da8daa3a722 — Navigation: crest tap to child log and idle return.
Done-condition: tapping a present crest opens that child's quest log, and back/idle return navigates to the board, using the strategy-generated paths. Away plates do NOT navigate. A test asserts the navigation target for a present plate and that an away plate has no navigation.
Verification against the built bundle found the navigation already wired correctly (no frontend/src change; the committed bundle rebuilds byte-identical). What was missing was proof: nothing asserted where a crest tap or the quest log's idle return actually lands.
- frontend/tests/render-party-board.mjs: optional url + click_plate spec keys; output now also carries tappable (plates rendered as <button>) and location (pathname after the tap). jsdom's Event must shadow Node's so the card's location-changed dispatch is delivered.
- frontend/tests/render-quest-log.mjs (new): mounts the quest-log card at a URL and reports the pathname/title after an optional idle wait.
- tests/test_panel_cards.py: three navigation tests composed from the strategy's generated configs — present crest tap lands on /nestquest/ada (the exact computed URL), the away plate is not tappable and tapping it leaves the URL at /nestquest, and the idle return navigates to /nestquest via the strategy-computed board_path.
Checks: cd frontend && npm run build (bundle unchanged); TZ=UTC uv run pytest -q -> 1701 passed (baseline 1698 + 3 new).
The strategy already computes quest_log_path and board_path and the cards
already navigate by them, so no card source needed fixing — what was
missing was proof: nothing asserted where a crest tap or the quest log's
idle return actually lands. The render harnesses now report the navigation
target of a present-plate tap, that an away plate is not tappable and does
not navigate, and that the idle return goes back to the strategy-computed
board path, so the navigation contract is asserted against the bundle HACS
ships instead of read out of the sources.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Maestro task 107b8fbe-2557-4b21-a557-2da8daa3a722 — Navigation: crest tap to child log and idle return.
Done-condition: tapping a present crest opens that child's quest log, and back/idle return navigates to the board, using the strategy-generated paths. Away plates do NOT navigate. A test asserts the navigation target for a present plate and that an away plate has no navigation.
Verification against the built bundle found the navigation already wired correctly (no frontend/src change; the committed bundle rebuilds byte-identical). What was missing was proof: nothing asserted where a crest tap or the quest log's idle return actually lands.
Checks: cd frontend && npm run build (bundle unchanged); TZ=UTC uv run pytest -q -> 1701 passed (baseline 1698 + 3 new).
Independent Claude Sonnet 5 review completed for this exact commit.