Files
OSIT-AE-App-Svelte/documentation/TODO__Agents.md
Scott Idem 45f8bb5e58 fix(pres_mgmt): restore session view — name always visible, POC in hero card, email/copy links
- 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>
2026-06-12 15:15:58 -04:00

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/error state feedback. Shown when require__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 MyClipboard copy button in POC row for trusted staff. Shown when show__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: mount Sign_in_out in presenter_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_agree is stored and displayed but the upload components are gated on auth__kv.presenter[id] only, not on presenter.agree. A presenter who signs in but has not agreed can still upload. The original blocked the upload section until agree === true.

Session POC Sign-In

  • [Pres Mgmt] session_page_menu.svelte sign-in prop still wrong event_session_id prop passed to Sign_in_out was just changed from event_id to event_session_id — verify this is actually $lq__event_session_obj?.event_session_id (the real session ID string) not the URL param url_session_id. The sign-in component uses this value to set auth__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 layoutbadge_4x6_fanfold layout 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.ts to use V3 helpers.
  • [Cleanup] Delete Legacy Wrappers — Once all callsites are migrated, remove src/lib/ae_api/api_get__crud_obj_id.ts and the legacy exports from api.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_loc fully retired. All 5 sub-stores (badges_loc, leads_loc, pres_mgmt_loc, launcher_loc, events_auth_loc) are on PersistedState. Unused fields also pruned from ae_stores.ts and ae_idaa_stores.ts.
  • idaa_loc → PersistedState — Highest remaining priority. Root cause of the IDAA "Access Denied" corruption bug (ae_loc bootstrap writes stomp on authenticated_access). Promote novi_* identity fields and archives/bb/recovery_meetings sub-objects.
  • ae_loc → PersistedState — Largest scope. Extract auth_loc sub-store first (the identity/permission fields are what get corrupted). Defer full migration until after idaa_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.ts to build_tmp_sort — requires bumping IDB_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_session after sort behavior review.
  • [IDB Sort] Roll out to ae_events__event_presenter after sort behavior review.
  • [IDB Sort] Roll out to ae_events__event_location after sort behavior review.
  • [IDB Sort] Roll out to ae_core__person + ae_core__account after 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_hash comparison.

🧪 Testing & Optimization

  • [IDAA] IDB fast-path contact search — parse contact_li_json in search__event().
  • [IDAA] Optimize Recovery Meetings SQL VIEW and indexes.
  • [IDAA / Events] Audit default_qry_str coverage in all other event search pages.
  • [Launcher/VLC] Linux playback investigation — fullscreen + pause-on-end flags.

⚙️ DevOps & Backend

  • [Backend] event_file — add cfg_json column (post-CMSC) — The per-file display override currently uses a localStorage workaround (launcher_loc.current.file_display_overrides) because event_file has no JSON blob column. Proper fix: add cfg_json to the event_file DB 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 in launcher_file_cont.svelte — search for file_display_overrides.
  • [Backend] Re-add Access-Control-Allow-Private-Network: true CORS 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 to src/service-worker.js. See mistake #16 in BOOTSTRAP__AI_Agent_Quickstart.md.
  • [DevOps] Nginx proxy buffer tuning — Buffer settings copied from PHP guide; not optimal for Node.js. proxy_busy_buffers_size technically exceeds safe limit. Re-examine when enabling compression (now re-enabled) stabilizes.
  • [DevOps] Simplify Dockerfile env file selection — Use plain .env instead of BUILD_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