Root cause: Two issues prevented the landing page from showing.
1. __init__.py get_session_html endpoint returned 404 when session
didn't exist, so the iframe never received any content. Now returns
full template with empty manifest so landing page JS can display
available sessions.
2. web/dashboard.js never auto-loaded on node creation - the iframe
started empty (black box). Now auto-calls forceLoadSession after
node creation so the dashboard immediately shows either the session
grid or the landing page with session cards.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>