Skip to content

v0.1.15

Choose a tag to compare

@dwnmf dwnmf released this 27 Feb 21:16
· 18 commits to main since this release

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(...) around artifactsStore.requestThread(...) to prevent unintended reactive dependency capture.
  • Added a request-key guard (lastArtifactsRequestKey) so repeated requests are skipped when threadId and anchorId are unchanged.
  • Reset the request-key guard when connection or thread context is not ready.

Validation

  • bun run test passed.
  • bun run ci:local passed (lint, typecheck, tests, build).

Commit

  • 80d4c4f fix(thread): stop artifacts polling loop that stalls thread view