peter
07766c43e8
feat: closed-set admin knobs are pickers, not free text
...
log_level, search_source, download_layout and the transcode hw/preset
were typed by hand, and every consumer carried its own guess at what a
typo meant. The value set is now a Literal in config.py: pydantic
rejects a bad env value at boot (any letter case accepted), sysconfig
refuses a bad override and derives the admin picker's options from the
same Literal, and the consumers read the value as-is.
The Configuration page renders a choice key as a segmented bar, or a
dropdown past six options, with translated option names. Its tabs now
follow the registry's order instead of a hand-kept copy that had
already dropped the explore group.
A single-choice FilterSelect now opens on the option in use: in the
browser it could land on the first row instead.
2026-09-17 00:03:56 +02:00
..
2026-09-01 23:09:25 +02:00
2026-09-05 04:02:57 +02:00
2026-09-14 17:46:46 +02:00
2026-09-02 00:15:21 +02:00
2026-09-04 22:42:15 +02:00
2026-09-15 02:53:22 +02:00
2026-08-27 04:02:25 +02:00
2026-08-23 07:43:06 +02:00
2026-08-23 07:43:06 +02:00
2026-08-23 07:43:06 +02:00
2026-09-12 16:22:27 +02:00
2026-09-09 00:12:53 +02:00
2026-09-15 01:35:25 +02:00
2026-08-28 02:37:56 +02:00
2026-09-14 00:50:05 +02:00
2026-09-15 00:53:15 +02:00
2026-09-14 01:42:57 +02:00
2026-09-05 04:18:33 +02:00
2026-08-30 03:32:14 +02:00
2026-08-23 07:43:06 +02:00
2026-08-23 07:43:06 +02:00
2026-08-23 07:43:06 +02:00
2026-09-04 20:29:33 +02:00
2026-09-05 01:35:09 +02:00
2026-09-04 20:29:33 +02:00
2026-09-14 00:50:05 +02:00
2026-08-23 07:43:06 +02:00
2026-08-23 07:43:06 +02:00
2026-08-26 05:25:47 +02:00
2026-08-23 07:43:06 +02:00
2026-09-15 00:53:15 +02:00
2026-08-28 02:37:56 +02:00
2026-09-12 03:57:52 +02:00
2026-09-16 00:34:50 +02:00
2026-08-29 08:02:11 +02:00
2026-09-04 01:56:55 +02:00
2026-09-17 00:03:56 +02:00
2026-09-04 22:42:15 +02:00
2026-09-01 23:31:49 +02:00
2026-08-23 07:43:06 +02:00
2026-08-23 07:43:06 +02:00
2026-09-12 05:50:31 +02:00
2026-08-23 07:43:06 +02:00
2026-08-23 07:43:06 +02:00
2026-08-23 07:43:06 +02:00
2026-08-29 03:52:13 +02:00
2026-09-11 18:05:19 +02:00
2026-08-20 08:50:47 +02:00
2026-09-09 23:55:51 +02:00
2026-09-10 22:05:39 +02:00
2026-09-11 23:27:48 +02:00
2026-08-23 07:43:06 +02:00
2026-08-23 07:43:06 +02:00
2026-08-23 07:43:06 +02:00
2026-08-23 07:43:06 +02:00
2026-08-23 07:43:06 +02:00
2026-09-12 16:21:37 +02:00
2026-08-23 07:43:06 +02:00
2026-08-23 07:43:06 +02:00
2026-08-23 07:43:06 +02:00
2026-08-27 02:50:41 +02:00
2026-09-06 03:31:02 +02:00
2026-08-23 07:43:06 +02:00
2026-09-06 03:31:02 +02:00
2026-08-30 17:58:38 +02:00
2026-09-12 03:57:52 +02:00
2026-08-23 07:43:06 +02:00
2026-09-10 20:02:06 +02:00
2026-09-11 18:04:30 +02:00
2026-09-12 04:18:35 +02:00
2026-08-23 07:43:06 +02:00
2026-08-23 07:43:06 +02:00
2026-08-23 07:43:06 +02:00
2026-08-28 01:34:02 +02:00
2026-09-11 18:05:30 +02:00
2026-09-15 02:53:22 +02:00
2026-08-23 07:43:06 +02:00
2026-09-15 02:25:00 +02:00
2026-08-23 07:43:06 +02:00
2026-09-04 02:38:01 +02:00
2026-09-04 23:04:09 +02:00
2026-08-23 07:43:06 +02:00
2026-08-23 07:43:06 +02:00
2026-08-23 07:43:06 +02:00
2026-08-23 07:43:06 +02:00
2026-08-23 07:43:06 +02:00
2026-09-05 01:46:58 +02:00
2026-08-23 07:43:06 +02:00
2026-08-23 07:43:06 +02:00
2026-08-23 07:43:06 +02:00
2026-09-17 00:03:56 +02:00
2026-08-26 05:25:47 +02:00
2026-08-23 07:43:06 +02:00
2026-08-23 07:43:06 +02:00
2026-09-13 23:12:16 +02:00
2026-09-05 04:02:57 +02:00
2026-08-23 07:43:06 +02:00
2026-08-23 07:43:06 +02:00
2026-09-04 20:29:33 +02:00
2026-09-14 00:50:05 +02:00