feat(stores): retire events_loc — Svelte 4 persisted store fully replaced

events_loc has been completely removed after migrating all consumers:

- EVENTS_MODULE_TITLE constant replaces $events_loc.title (was always
  the static default 'OSIT\'s Æ Events', never written dynamically)
- events/+layout.svelte: qry__* writes moved to events_sess; stale-deploy
  ver check block removed (store_versions.ts handles this already)
- 3 stale pres_mgmt stragglers fixed: device_obj_li, location_page_menu,
  event_reports_page_menu now use pres_mgmt_loc.current directly
- testing/+page.svelte: missed launcher ref fixed (launcher_loc.current)
- events_loc export, events_local_data_struct, persisted import, and
  AE_EVENTS_LOC_VERSION import all removed from ae_events_stores.ts
- events_loc import cleaned from all consumer files

events_sess (in-memory writable) stays in ae_events_stores.ts unchanged.
store_versions.ts keeps its _check_and_wipe('ae_events_loc') entry to
clean lingering old data from users' browsers.

svelte-check: 0 errors, 0 warnings.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Scott Idem
2026-06-11 16:41:06 -04:00
parent 83c9b9fd4f
commit 573d20e574
33 changed files with 48 additions and 173 deletions

View File

@@ -1,13 +1,12 @@
// store_versions MUST be first import — its side-effect wipes stale localStorage
// before svelte-persisted-store hydrates from it.
import { AE_EVENTS_LOC_VERSION } from '$lib/stores/store_versions';
import { persisted } from 'svelte-persisted-store';
import { writable } from 'svelte/store';
import type { Writable } from 'svelte/store';
import type { key_val } from '$lib/stores/ae_stores';
// Static display title for the Events module. Always this value — nothing writes to it.
// Use this constant instead of $events_loc.title (which is being retired).
export const EVENTS_MODULE_TITLE = `OSIT's Æ Events`;
import { badges_sess_defaults } from '$lib/stores/ae_events_stores__badges_defaults';
import { launcher_sess_defaults } from '$lib/stores/ae_events_stores__launcher_defaults';
import { leads_sess_defaults } from '$lib/stores/ae_events_stores__leads_defaults';
@@ -18,38 +17,10 @@ import { pres_mgmt_sess_defaults } from '$lib/stores/ae_events_stores__pres_mgmt
// events_session_data_struct.ver. See store_versions.ts for the schema-level wipe mechanism.
const ver = '2025-10-16_2139';
/* *** BEGIN *** Initialize events_local_data_struct */
// Persisted to localStorage. Retains user preferences and event-specific config across
// browser sessions. See store_versions.ts for the schema-level invalidation mechanism.
const events_local_data_struct: key_val = {
__version: AE_EVENTS_LOC_VERSION, // Schema version gate — see store_versions.ts
ver: ver, // Deployment stamp — compared against events_sess.ver to trigger reloads.
name: 'Aether - Events',
title: `OSIT's Æ Events`,
// all, disabled, enabled
qry__enabled: 'enabled',
// all, hidden, not_hidden
qry__hidden: 'not_hidden',
qry__limit: 20,
qry__offset: 0,
// auth__person and auth__kv have been promoted to events_auth_loc (ae_events_stores__auth.svelte.ts).
// show_details has been moved to leads_loc (ae_events_stores__leads_defaults.ts).
// events_cfg_json and event_id were unused — removed.
// badges, leads, pres_mgmt, launcher have all been promoted to their own PersistedState stores.
};
export const events_loc: Writable<key_val> = persisted(
'ae_events_loc',
events_local_data_struct
);
/* *** BEGIN *** Initialize events_session_data_struct */
// In-memory only (writable, not persisted). Resets on page load.
const events_session_data_struct: key_val = {
// Deployment stamp — compared against events_loc.ver in events/+layout.svelte.
// Deployment version stamp — bump alongside ver above when pushing breaking changes.
ver: ver,
log_lvl: 1,