[Perf] Fix liveQuery reactivity, silence debug logs, add performance guidelines
- launcher/+layout.svelte: convert lq__event_session_obj from $derived to $derived.by() so Svelte tracks event_session_id as a dependency; the old pattern read the store inside the Dexie async callback where Svelte's tracking is off, so the liveQuery never updated on session change - ae_events__event_file.ts: fix hardcoded log_lvl: 2 in SWR fire-and-forget background refresh (always-on debug logging on every cache hit) → 0 - e_app_sign_in_out.svelte: lower 6 call-site log levels (1×log_lvl:2, 5×log_lvl:1) to 0; sign-in runs on every page load - element_manage_hosted_file_li.svelte: log_lvl:2 → 0 in refresh call; remove log_lvl=1 assignment + debug block inside click handler; log_lvl:1 → 0 in delete call - AE__Performance_Guidelines.md: add 5 Svelte 5 runes rules covering $derived.by() for reactive liveQuery, liveQuery purity, cheap equality guards ($id+updated_on, ID-join, shallow_equal), untrack() requirement, and log_lvl discipline Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -222,9 +222,12 @@
|
||||
});
|
||||
|
||||
// Event Session (Main View Trigger - Needed for Global Header/Idle)
|
||||
let lq__event_session_obj = $derived(
|
||||
liveQuery(() => db_events.session.get($events_slct.event_session_id))
|
||||
);
|
||||
// $derived.by: capture ID in outer closure so Svelte tracks it as a dependency.
|
||||
// liveQuery callback runs in Dexie's async context where Svelte tracking is off.
|
||||
let lq__event_session_obj = $derived.by(() => {
|
||||
const id = $events_slct.event_session_id;
|
||||
return liveQuery(() => db_events.session.get(id));
|
||||
});
|
||||
|
||||
// Store sync effects — keep liveQuery closures pure (data-only) and sync to
|
||||
// $events_slct here in reactive effects instead. Comparing updated_on + id is
|
||||
|
||||
Reference in New Issue
Block a user