Use Kaya primary identity for activity cards and filters
Kaya climbing sessions could display a cardio icon because origin selection left Kaya unresolved alongside WHOOP recordings and their Peloton/Apple Health copies. The card and activity filters used the sensor-bearing representative's type.
Treat Kaya sync and file-import records as initiating sources in PostgreSQL and ClickHouse. Web/mobile icons, mobile type labels, activity filters, and overview filter options follow the resolved primary type. Sensor selection and provenance links remain independent; competing initiating sources remain unresolved. Version the calendar caches with the changed filtering semantics.
Regression tests execute source selection and filtering against the real database engines. Field-priority fixtures now distinguish a primary Kaya title from unresolved-source fallback. The strength no-sets fixture uses its own database so calendar-week boundaries cannot mix it with other workouts.
Final CI is green on 411aaa4: unit/mobile tests, all four integration shards, mutation checks, browser tests, coverage, and native builds passed. All review threads are resolved.
Validation: the initial complete unit/mobile suite passed 24,004 tests (19 skipped), with 181 origin/read-model database tests and all 46 local analytics models passing. Follow-up checks passed 55 database tests, 58 focused server unit tests, root/server typechecks, and the earlier web/mobile typechecks. A read-only execution against the reported activity's production mirror records selects Kaya.
Local verification limits: a later full suite was stopped during workstation contention after an archive-test failure; all 25 archive tests passed in isolation. Two older calendar fixture setups exceeded the local ClickHouse memory cap; the changed source-tree/filter scope passed against the real engine. Browser visual verification was unavailable. No memory limits, retries, or timeouts were increased.
Deployment requires the PostgreSQL function migration and a bounded read-model refresh for existing activities. Production has not been modified.