docs(idaa): track contact_li_json_ext search gap + message sent to backend
- TODO__Agents.md: added task for contact search — backend to whitelist contact_li_json_ext in event search, frontend to add OR condition in search__event() and update local IDB fast-path filter. Blocked on backend. - CLIENT__IDAA_and_customized_mods.md: documented the search architecture gap under Recovery Meetings — what default_qry_str contains, why contact_li_json is unsearchable as raw JSON, what contact_li_json_ext is and what needs to happen to enable contact name/email search. Backend agent notified via ae_send_message 2026-04-08. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -372,6 +372,21 @@ Members can filter meetings by:
|
||||
|
||||
Search is debounced (250ms) and uses the standard Aether SWR pattern.
|
||||
|
||||
### Search Architecture — What Is and Isn't Searched
|
||||
|
||||
The fulltext search runs against the `default_qry_str` field (backend-computed, contains:
|
||||
`id_random`, type, name, description, timezone, recurring pattern/text, location text).
|
||||
|
||||
**Contact names and emails are NOT currently searchable.** The `contact_li_json` field is a
|
||||
JSON longtext — MariaDB cannot efficiently substring-search it directly. The backend already
|
||||
has a `contact_li_json_ext` (STORED GENERATED, indexed) column to work around this, but it
|
||||
has not yet been added to the searchable fields whitelist in the API.
|
||||
|
||||
**Pending fix (tracked in TODO__Agents.md, 2026-04-08):**
|
||||
- Backend: add `contact_li_json_ext` to the event object searchable fields whitelist
|
||||
- Frontend: add `contact_li_json_ext` as an OR condition in `search__event()`, and update
|
||||
the local IDB fast-path filter to parse `contact_li_json` for instant cache results
|
||||
|
||||
### Edit Form — Sections and Key Fields
|
||||
|
||||
The edit form (`ae_idaa_comp__event_obj_id_edit.svelte`) is organized into these sections.
|
||||
|
||||
@@ -85,6 +85,21 @@ suddenly jumps to 0 errors, verify it's not because a bad `.d.ts` replaced a pac
|
||||
Run `npx svelte-check 2>&1 | grep ModalProps` to get the current list.
|
||||
Fix pattern: replace `children` prop binding with Svelte snippet syntax per flowbite-svelte docs.
|
||||
|
||||
- [ ] **[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.
|
||||
|
||||
**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.
|
||||
|
||||
- [ ] **[IDAA / Events] Audit `default_qry_str` coverage in other event search pages.**
|
||||
The backend was updated 2026-03-31 to expose `default_qry_str` in API responses.
|
||||
Frontend fix applied to Recovery Meetings (`+page.svelte` + `properties_to_save`).
|
||||
|
||||
Reference in New Issue
Block a user