Files
timetracker/games
Claude d9902146dc Clean up label-embedding architecture
- Move {id,label} stripping into _SetCriterion.from_json() so both
  MultiCriterion and ChoiceCriterion normalise at the parse boundary;
  the querying layer stays typed (list[int] / list[str]) and clean.
- Revert MultiCriterion to a thin _extra_q() override; _SetCriterion.to_q()
  is no longer duplicated.
- JS: readSearchSelect always emits {id, label} objects — no conditional
  mixed-type arrays. filter_bar.js stores them as-is for all fields,
  removing the fragile isIdField hardcoded list.
- Update tests to use the {id, label} filter format.

https://claude.ai/code/session_01EyAJcMoDktLrY9tSbdHViA
2026-06-08 21:41:03 +02:00
..
2026-06-02 16:32:26 +02:00
2026-06-06 13:14:55 +02:00
2023-01-20 13:37:46 +00:00
2025-01-29 22:05:06 +01:00
2025-03-22 20:59:23 +01:00
2026-06-06 13:14:55 +02:00
2026-06-06 13:14:55 +02:00
2026-06-06 22:52:26 +02:00
2026-06-06 13:14:55 +02:00
2026-06-06 13:14:55 +02:00