Commit Graph

6 Commits

Author SHA1 Message Date
Youzini-afk
a070e04e56 fix(panel): prevent UI freeze when opening panel during extraction
Root cause: onStreamProgress callback fires 20-50x/sec during LLM streaming,
each calling setLastExtractionStatus with syncRuntime=true (default), which
triggers setRuntimeStatus -> refreshPanelLiveState() -> _refreshDashboard().
_refreshDashboard iterates all graph nodes (.filter x2) and performs heavy
DOM updates each time. When the panel is open, this blocks the main thread.

Fixes:
1. panel.js: Add requestAnimationFrame throttle to refreshLiveState() with
   minimum 80ms gap between actual DOM refreshes. Rapid calls are collapsed
   into a single animation frame, preventing main thread saturation.
2. extraction-controller.js: Change onStreamProgress to use syncRuntime=false
   so streaming updates no longer trigger setRuntimeStatus (which would also
   update the floating ball on each chunk).
3. recall-controller.js: Same fix for recall onStreamProgress which had
   the identical syncRuntime=true issue.
2026-04-29 17:03:49 +08:00
Youzini-afk
42bd85b0aa fix(recall): reuse persisted recall on history rerolls 2026-04-11 20:02:52 +08:00
Youzini-afk
322752bb43 feat: improve shujuku-compatible extraction and recall input 2026-04-11 16:05:34 +08:00
Youzini-afk
6882087c67 Refactor recall LLM selection protocol 2026-04-10 16:24:53 +08:00
Youzini-afk
ef154b5950 Fix hidden-message leakage into plugin prompts 2026-04-10 14:06:26 +08:00
Youzini-afk
feec17f3e3 Reorganize modules into layered directories 2026-04-08 01:17:57 +08:00