docs(idaa): update CLIENT doc for error handling and contact search status
- Access Gate: document new verify_error_type states (rate_limited/api_error), retry/reset UI buttons added in the previous session - Search Architecture: correct 'contacts not searchable' — default_qry_str already includes contact data; two bugs fixed 2026-05-19 (stale STORED GENERATED columns, frontend secondary filter dropping API-matched results). IDB fast-path gap remains. - TODO__Agents.md: update contact search task to reflect API path now working; narrow remaining work to IDB fast-path only Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -217,20 +217,20 @@ suddenly jumps to 0 errors, verify it's not because a bad `.d.ts` replaced a pac
|
||||
- `$effect` auth guards in IDAA page components are reactivity guards (prevent spurious SWR calls on coarse `$ae_loc` writes), NOT auth-bypass guards. SvelteKit layout hierarchy already prevents child components from mounting when `(idaa)/+layout.svelte` blocks rendering.
|
||||
- Doc: SvelteKit layout hierarchy security model captured in `GUIDE__SvelteKit2_Svelte5_DexieJS.md` and `BOOTSTRAP__AI_Agent_Quickstart.md` (Mistake #7).
|
||||
|
||||
- [ ] **[IDAA] Make `contact_li_json_ext` searchable — Recovery Meeting contact search (2026-04-08)**
|
||||
Members cannot search for meetings by contact name or email. `contact_li_json` data is not
|
||||
included in `default_qry_str` and MariaDB cannot substring-search a JSON longtext directly.
|
||||
The `event` table already has `contact_li_json_ext` (STORED GENERATED, indexed) to work around this.
|
||||
- [ ] **[IDAA] IDB fast-path contact search — Recovery Meetings (2026-04-08, updated 2026-05-19)**
|
||||
**API path is now working** — `default_qry_str` already includes contact name/email.
|
||||
Two bugs were fixed 2026-05-19: (1) STORED GENERATED columns had stale values; forced
|
||||
rebuild via fake updates. (2) Frontend secondary filter was re-checking text against
|
||||
response fields, silently dropping API results that matched only via `default_qry_str`.
|
||||
|
||||
**Backend (blocked on this first):** Add `contact_li_json_ext` to the searchable fields
|
||||
whitelist for the `event` object type — likely a one-line change in `ae_obj_types_def.py`
|
||||
or the event object definition. Message sent to backend agent 2026-04-08.
|
||||
|
||||
**Frontend (after backend ships):**
|
||||
- `src/lib/ae_events/ae_events__event.ts` → `search__event()`: add `contact_li_json_ext`
|
||||
as an OR condition alongside `default_qry_str` when `qry_str` is present.
|
||||
- `src/routes/idaa/(idaa)/recovery_meetings/+page.svelte` fast-path IDB filter: parse
|
||||
`contact_li_json` and include contact names/emails in the local text match check.
|
||||
**Remaining gap — IDB fast-path only:** The local cache fast-path returns all cached meetings
|
||||
without text filtering; users see the unfiltered list first, then the API-filtered result
|
||||
replaces it. To make contact matches appear instantly from cache:
|
||||
- `src/lib/ae_events/ae_events__event.ts` → fast-path filter in `search__event()`: parse
|
||||
`contact_li_json` and include contact names/emails in the local text match.
|
||||
- `src/routes/idaa/(idaa)/recovery_meetings/+page.svelte` fast-path display: same filter.
|
||||
Backend enhancement (`contact_li_json_ext` whitelist) is not required for this — the IDB
|
||||
records already store `contact_li_json` raw JSON which can be parsed client-side.
|
||||
|
||||
- [ ] **[IDAA] Optimize Recovery Meetings SQL VIEW and indexes.**
|
||||
The current search query can be taxing on the server. With ~150 active meetings, the view
|
||||
|
||||
Reference in New Issue
Block a user