The settings page ran every field in its numeric list through
value.replace(/[^0-9]/g, '') on input, and fanout_idle_buffer_ratio was in that
list. It is a fraction (0.1-1): typing 0.25 left 025, and touching the stored
0.50 left 050. A decimal(3,2) column refuses 25 under strict mode, so the save
failed, and where it was clamped the daemon got a ratio of 1 — the whole buffer
kept while idle, the opposite of what was asked.
The field now has its own filter: digits and one decimal point, a comma taken
as one (a pt/ru/de keyboard types 0,25), and inputmode=decimal. On save,
SettingsService normalises it the same way, rounds it to two decimals and keeps
it in the daemon's 0.1-1 range; a value that is not a number leaves the stored
one unchanged.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BbYsGKhirq9eRK8e6wsCHR