fix: clean up launcher tmp/bindable items; update TODO

- Update stale comment in menu_location_list.svelte: prop is already
  $bindable(null), comment incorrectly said it was not
- Confirm cleanup_tmp_files is wired in launcher_background_sync.svelte
- Mark both items done in TODO__Agents.md
This commit is contained in:
Scott Idem
2026-03-11 15:17:32 -04:00
parent 496afcb813
commit a878e4a05b
2 changed files with 7 additions and 7 deletions

View File

@@ -20,7 +20,7 @@ Related: `src/lib/stores/store_versions.ts` is the new home for version constant
- [x] **Font size cycler (Launcher sidebar):** Font size cycler and light/dark toggle added to new `menu_launcher_controls.svelte` component; wired into `launcher_menu.svelte`. Visibility toggles (All Files / All Sessions) moved to same component and restyled to `preset-tonal-tertiary`. (2026-03-11)
- **Minor Svelte warning:** `slct_event_location_id` prop in `menu_location_list.svelte` is not `$bindable()` but `bind:value={slct_event_location_id}` is used. Functionally fine since `onchange` writes directly to `$events_slct.event_location_id`.
- [x] **Minor Svelte warning:** `slct_event_location_id` in `menu_location_list.svelte` — prop already has `$bindable(null)`; stale comment in file updated. (2026-03-11)
### [Svelte] State reference warnings
- **42 `state_referenced_locally` warnings remain** in `recovery_meetings/ae_idaa_comp__event_obj_id_edit.svelte` and `..._v2.svelte`. Same pattern as the 10 fixed on 2026-03-09 — move reactive reads into `onMount`.
@@ -42,7 +42,7 @@ lead record look like in the DB?
### [General]
- **Temp Cleanup:** Auto-removal of native `.tmp` files older than 24h.
- [x] **Temp Cleanup:** `cleanup_tmp_files` wired in `launcher_background_sync.svelte`; called at launcher startup. Confirmed working. (2026-03-11)
- **`window.print()` for badge print button:** Wire the existing `handle_print_badge()` to trigger `window.print()`. Browser print works well across Chrome/Chromium/Firefox — no Electron needed.
- **Input Field Audit:** Several input fields are missing `name`/`id` attributes or `data-testid`. Known examples: badge override fields in `ae_comp__badge_obj_view.svelte`; template name input in `ae_comp__badge_template_form.svelte`. Matters for: accessibility, autofill, label associations, and test targeting. (For tests, use `getByLabel()` rather than `input[value*=...]` which only checks the HTML attribute, not the Svelte-bound DOM property.)
@@ -67,6 +67,8 @@ Two related UX gaps to handle together:
- Swap the ad-hoc patterns to use it consistently
## ✅ Completed (2026-03)
- [x] **[Build]** Rollup/Vite circular dependency warnings eliminated — `manualChunks` in `vite.config.ts` colocates all `svelte/*` internals into a single `svelte-vendor` chunk, preventing `runtime.js` / `index-client.js` split (~35 warnings gone). (2026-03-11)
- [x] **[Refactor]** `try_cache` audit + sponsorship/event_file/hosted_file SWR alignment — removed vestigial `try_cache` params from `generate_qr_code`, `ae_core_functions` wrappers; added SWR fast/slow path to sponsorship loaders; changed `event_file` and `hosted_file` single-object loader defaults from `false``true` for consistency. (2026-03-11)
- [x] **[DevOps]** Frontend + Backend unified into single `aether_container_env` Docker Compose. `ae_app` service live with healthcheck, single exposed port (`AE_APP_NODE_PORT`), internal `ae_api` networking. Deploy scripts in `package.json` both target `../aether_container_env/docker-compose.yml`. (2026-03-10)
- [x] **[DevOps]** `/health` endpoint live at `src/routes/health/+server.ts`. Docker `HEALTHCHECK` uses it. (2026-03-10)
- [x] **[UI]** Dark mode `color-scheme` fix — `html.dark/light { color-scheme }` in `app.css`; all native browser controls now sync to app dark mode. (2026-03-10)

View File

@@ -20,11 +20,9 @@
* → navigates to /launcher/{location_id} via goto()
*
* NOTE — slct_event_location_id binding:
* This prop is NOT declared $bindable() but is used with bind:value on the <select>.
* This is intentional: the onchange handler writes directly to the canonical stores
* ($events_slct.event_location_id) rather than propagating through a prop binding.
* The bind:value keeps the select's visual state in sync with the store value passed
* in from the parent without requiring a two-way prop binding.
* Declared $bindable() so the parent can pass the initial selected value via bind:.
* The onchange handler also writes directly to the canonical stores
* ($events_slct.event_location_id) to keep other parts of the launcher in sync.
*/
interface Props {
loading__session_li_status?: null | boolean | string;