- session_view.svelte: session name/code were only rendered in edit_mode — non-editors saw a blank card. Now always visible; edit_mode just wraps them in field editors. - Restructured hero card as a <ul> with datetime, room, and POC as rows inside the card. POC no longer floats below as a disconnected block. - Dynamic POC label (label__session_poc_name) used throughout: row label, modal titles, fallback text, and editor label — no more hardcoded "Host:". - POC "Select Person" flow: gate select editor on person_options_loaded to prevent empty dropdown on open; button reads "Reload Person" after list is loaded. - Restored email sign-in link button in POC row with idle/sending/sent/error feedback. Shown when require__session_agree && show__email_access_link && poc_person_primary_email. - Restored inline copy-access-link for trusted staff (show__copy_access_link). - session_page_menu.svelte: fix event_session_id prop — was passing event_id instead of event_session_id, breaking the Sign_in_out auth grant. - ae_comp__event_session_poc_profile.svelte: migrate run() to $effect, fix poc_person_id_random → poc_person_id, fix events_slct reference in copy link URL. - +page.svelte: add pres_mgmt config sync so session pages opened directly by URL get correct hide__session_poc and other remote config values. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
9.0 KiB
Frontend Agent Task List
Use this file to track steps for complex features or bug fixes. Status: Stable — ongoing development. Scope: Active/open work only. Completed detail lives in archive files.
🔴 LCI October — Pres Mgmt Restoration (in progress 2026-06-12)
These features regressed over the last 6 months and must be working before the LCI conference.
Reference commit for original working implementation: bb993a102.
Session POC (Champion/Moderator) — session_view.svelte
Root cause of visible bugs: The POC section is placed below the session hero card as a
separate disconnected block. In the original it was part of a structured <ul> with the session
name, code, datetime, location, and description all together. The current layout looks and feels
wrong to users.
-
[Pres Mgmt] POC section — move inside session hero card (2026-06-12) Restructured hero card as a
<ul>with datetime, room, and POC as rows inside the card. Session name and code are now always visible (not just in edit_mode — that was a bug). -
[Pres Mgmt] POC assignment — "Select Person" flow broken (2026-06-12) Gated the select editor on
person_options_loaded(Object.keys($slct.person_obj_kv).length > 0). "Select Person" button renders as "Reload Person" after list is loaded. -
[Pres Mgmt] Email Session POC sign-in link — UI missing (2026-06-12) Restored email button in POC row with
sending/sent/errorstate feedback. Shown whenrequire__session_agree && show__email_access_link && poc_person_primary_email. -
[Pres Mgmt] Copy Session POC access link — UI missing from session view (2026-06-12) Restored inline
MyClipboardcopy button in POC row for trusted staff. Shown whenshow__copy_access_link && trusted_access && poc_sign_in_url.
Presenter Sign-In
-
[Pres Mgmt] Presenter email sign-in link routes to wrong page
email_sign_in__event_presenter()builds a URL to/presenter/[id]?person_id=...&person_pass=.... The URL param parser (sign_in_out.svelte) is only mounted on the session page menu, not the presenter page. A presenter clicking their email link lands on their page with no auth granted. Fix: mountSign_in_outinpresenter_page_menu.svelte(same way session menu does it), or change the email link to route to the session page (which already has the parser) and include the presenter/presentation IDs as params — which is how it worked originally. -
[Pres Mgmt] Presenter agreement not enforced before file upload
require__presenter_agreeis stored and displayed but the upload components are gated onauth__kv.presenter[id]only, not onpresenter.agree. A presenter who signs in but has not agreed can still upload. The original blocked the upload section untilagree === true.
Session POC Sign-In
- [Pres Mgmt]
session_page_menu.sveltesign-in prop still wrongevent_session_idprop passed toSign_in_outwas just changed fromevent_idtoevent_session_id— verify this is actually$lq__event_session_obj?.event_session_id(the real session ID string) not the URL paramurl_session_id. The sign-in component uses this value to setauth__kv.session[event_session_id].
- [Launcher/Electron] Wallpaper reliability (post-CMSC)
- Use timestamp/randomized temp filename so macOS always sees a new path.
- Add resilient reconciliation loop or event-driven reapply on display topology changes.
🔴 Axonius DC — June 9 (Badge Printing)
Setup/Registration: June 8 | Show: June 9
- [Badges] Epson C3500 fanfold badge layout —
badge_4x6_fanfoldlayout CSS created, wired, and documented. First live use: Axonius Adapt DC, June 9, 2026. (2026-05-15)
🚧 V3 CRUD Migration (Surgical Cleanup)
Finalizing the 100% adoption of V3 Standard endpoints and retirement of legacy wrappers.
- [Core] Legacy Utility Helpers — Refactor
ae_core_functions.tsto use V3 helpers. - [Cleanup] Delete Legacy Wrappers — Once all callsites are migrated, remove
src/lib/ae_api/api_get__crud_obj_id.tsand the legacy exports fromapi.ts.
🚧 High Priority Workstreams
[Stores] Svelte 4 → Svelte 5 State Migration
The app uses svelte-persisted-store (coarse reactivity). Migration target: replace with Svelte 5
PersistedState (from runed) for fine-grained updates. See PROJECT__Stores_Svelte5_Migration.md.
- Events module — COMPLETE (2026-06-11):
events_locfully retired. All 5 sub-stores (badges_loc,leads_loc,pres_mgmt_loc,launcher_loc,events_auth_loc) are onPersistedState. Unused fields also pruned fromae_stores.tsandae_idaa_stores.ts. idaa_loc→ PersistedState — Highest remaining priority. Root cause of the IDAA "Access Denied" corruption bug (ae_locbootstrap writes stomp onauthenticated_access). Promotenovi_*identity fields andarchives/bb/recovery_meetingssub-objects.ae_loc→ PersistedState — Largest scope. Extractauth_locsub-store first (the identity/permission fields are what get corrupted). Defer full migration until afteridaa_loc.- Non-persisted writables (
ae_sess,slct, etc.) — Low priority; no coarse-reactivity problem.
[Data Layer] IDB sorting + content version rollout
Sorting baseline is now build_tmp_sort (ASC chain, no .reverse() on tmp-sort lists).
⚠️ Exception: ae_events__event.ts and ae_events__event_session.ts use legacy encoding
(priority ? 1 : 0, priority=true→'1'). Their sort comparators must remain descending
until the modules are migrated to build_tmp_sort. ae_events__event_presentation.ts already
uses build_tmp_sort (overrides generic encoding in its specific_processor). See
CLIENT__IDAA_and_customized_mods.md → "Sort Encoding" for full table.
- [IDB Sort] Migrate
ae_events__event.tstobuild_tmp_sort— requires bumpingIDB_CONTENT_VERSIONS.events.event(currently v3) and switching all event sort comparators to ascending. Check all pages that sort events before doing this. - [IDB Sort] Roll out to
ae_events__event_sessionafter sort behavior review. - [IDB Sort] Roll out to
ae_events__event_presenterafter sort behavior review. - [IDB Sort] Roll out to
ae_events__event_locationafter sort behavior review. - [IDB Sort] Roll out to
ae_core__person+ae_core__accountafter sort behavior review. - [IDB Version] Roll out to
db_events.ts(session, presenter, badge, etc.). - [IDB Version] Roll out to
db_core.ts(site_domain, person, user).
[Journals] Journal Entry Config follow-ups
- [Journals] Entry passcode secondary auth — implement
passcode_hashcomparison.
🧪 Testing & Optimization
- [IDAA] IDB fast-path contact search — parse
contact_li_jsoninsearch__event(). - [IDAA] Optimize Recovery Meetings SQL VIEW and indexes.
- [IDAA / Events] Audit
default_qry_strcoverage in all other event search pages. - [Launcher/VLC] Linux playback investigation — fullscreen + pause-on-end flags.
⚙️ DevOps & Backend
- [Backend]
event_file— addcfg_jsoncolumn (post-CMSC) — The per-file display override currently uses a localStorage workaround (launcher_loc.current.file_display_overrides) becauseevent_filehas no JSON blob column. Proper fix: addcfg_jsonto theevent_fileDB table, expose it through the FastAPI model, then migrate the frontend back to reading/writing the backend field (restoring global/cross-device persistence). Frontend code is inlauncher_file_cont.svelte— search forfile_display_overrides. - [Backend] Re-add
Access-Control-Allow-Private-Network: trueCORS header. - [DevOps] Service worker
skipWaiting+clients.claim— Root cause of "users see old code / can't reproduce in dev testing": the SW sat in waiting state until all tabs closed. IDAA members leave idaa.org open all day. Fixed 2026-06-03: both calls added tosrc/service-worker.js. See mistake #16 inBOOTSTRAP__AI_Agent_Quickstart.md. - [DevOps] Nginx proxy buffer tuning — Buffer settings copied from PHP guide; not
optimal for Node.js.
proxy_busy_buffers_sizetechnically exceeds safe limit. Re-examine when enabling compression (now re-enabled) stabilizes. - [DevOps] Simplify Dockerfile env file selection — Use plain
.envinstead ofBUILD_MODE.
✅ Completed (archived)
See the full completed history in: documentation/archive/TODO__Agents__ARCHIVE_2026-03.md documentation/archive/TODO__Agents__ARCHIVE_2026-04.md documentation/archive/TODO__Agents__ARCHIVE_2026-05.md documentation/archive/TODO__Agents__ARCHIVE_2026-06.md