Incidents search/filter/load-more; Archive viewable by viewers #164

Merged
logan merged 1 commits from feat/archive-search-viewers into main 2026-09-23 23:54:36 -04:00
Owner
  • Incidents: search box, status + type filters, Load more (100/page, client-side filtering over loaded window)
  • Archive (/calls): open to all org members; GET /calls/search now require_firebase_token (org-scoped). Attach/detach stays admin.
  • Live and Incidents were already viewer-viewable.

c2-core pytest: 438 pass. Frontend not typechecked locally (no Node on the authoring box) — main's Next build is the check.

🤖 Generated with Claude Code

- Incidents: search box, status + type filters, Load more (100/page, client-side filtering over loaded window) - Archive (/calls): open to all org members; GET /calls/search now require_firebase_token (org-scoped). Attach/detach stays admin. - Live and Incidents were already viewer-viewable. c2-core pytest: 438 pass. Frontend not typechecked locally (no Node on the authoring box) — main's Next build is the check. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
logan added 1 commit 2026-09-23 23:53:50 -04:00
Incidents page: text search (title, location, summary, units, vehicles,
tags, location mentions), status and type filters, and a Load more button
that pages the Firestore query 100 at a time. Filtering runs over the
loaded window, and the page says so when older incidents exist.

Archive (/calls): readable by every org member, not just admins.
GET /calls/search now takes any Firebase token scoped to the caller's org
— the Firestore rules already let members read every call in their org,
so this widens nothing. Attach/detach stays admin-only (UI and routes).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
logan merged commit c043298902 into main 2026-09-23 23:54:36 -04:00
logan deleted branch feat/archive-search-viewers 2026-09-23 23:54:37 -04:00
Sign in to join this conversation.