fix: portal page reactivity issue with Svelte 5 runes (#303)
after PR #302, portal page hung indefinitely showing "loading tracks..."
despite data loading successfully. console logs showed all API calls
completed and state variables updated, but UI never reflected changes.
root cause: portal page uses Svelte 5 runes mode, but component-local
state was declared with plain `let` instead of `let x = $state(...)`.
in Svelte 5 runes mode, plain let variables have no reactivity - they're
just regular JavaScript variables, so assignments don't trigger UI updates.
the bug was introduced when new state variables (`hasUnresolvedFeaturesInput`)
were added with `$state()` while existing variables remained as plain `let`,
creating an inconsistent mix that masked the issue.
fix:
- convert all reactive state in portal +page.svelte to use $state()
- add comprehensive Svelte 5 runes documentation to state-management.md
- add prominent gotcha to frontend/CLAUDE.md about $state() requirement
- improve logfire.md with deployment_environment column for debugging
this prevents future reactivity bugs and provides clear debugging guidance
when symptoms match (variables update but UI doesn't).
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-authored-by: Claude <noreply@anthropic.com>
authored by
zzstoatzz.io
Claude
and committed by
GitHub
4c385a52
024f54f0