v0.1.15
Summary
This release fixes a regression where opening /thread/:id could become non-responsive and trigger runaway resource usage in the browser.
User-facing impact
- Fixes blank or never-finishing thread page loads for affected sessions.
- Prevents CPU spikes (up to 100%) and excessive RAM growth (2-3 GB) caused by repeated artifact fetch churn.
- Improves thread stability under local development and reconnect scenarios.
Root cause
A reactive effect in src/routes/Thread.svelte requested thread artifacts on connection, but the call path could participate in reactive invalidation and repeatedly re-trigger the same fetch for an unchanged (threadId, anchorId) pair.
This produced a request/render loop that degraded frontend performance and could lead to websocket instability symptoms.
Fix details
Updated file
src/routes/Thread.svelte
Changes
- Added
untrack(...)aroundartifactsStore.requestThread(...)to prevent unintended reactive dependency capture. - Added a request-key guard (
lastArtifactsRequestKey) so repeated requests are skipped whenthreadIdandanchorIdare unchanged. - Reset the request-key guard when connection or thread context is not ready.
Validation
bun run testpassed.bun run ci:localpassed (lint, typecheck, tests, build).
Commit
80d4c4ffix(thread): stop artifacts polling loop that stalls thread view