@@ -140,7 +140,7 @@ export default function Settings() {
140140 if ( loading ) return < div className = "page" style = { { display : 'flex' , justifyContent : 'center' , padding : 'var(--spacing-xl)' } } > < LoadingSpinner size = "lg" /> </ div >
141141 if ( ! settings ) return < div className = "page" > < div className = "empty-state" > < p className = "empty-state-text" > Settings not available</ p > </ div > </ div >
142142
143- const watchdogEnabled = settings . watchdog_idle || settings . watchdog_busy
143+ const watchdogEnabled = settings . watchdog_idle_enabled || settings . watchdog_busy_enabled
144144
145145 return (
146146 < div className = "page" style = { { maxWidth : 1000 , padding : 0 } } >
@@ -205,31 +205,31 @@ export default function Settings() {
205205 </ h3 >
206206 < div className = "card" >
207207 < SettingRow label = "Enable Watchdog" description = "Automatically monitor and manage backend processes" >
208- < Toggle checked = { settings . watchdog_idle || settings . watchdog_busy } onChange = { ( v ) => { update ( 'watchdog_idle ' , v ) ; update ( 'watchdog_busy ' , v ) } } />
208+ < Toggle checked = { settings . watchdog_idle_enabled || settings . watchdog_busy_enabled } onChange = { ( v ) => { update ( 'watchdog_idle_enabled ' , v ) ; update ( 'watchdog_busy_enabled ' , v ) } } />
209209 </ SettingRow >
210210 < SettingRow label = "Enable Idle Check" description = "Automatically stop backends that have been idle too long" >
211- < Toggle checked = { settings . watchdog_idle } onChange = { ( v ) => update ( 'watchdog_idle ' , v ) } disabled = { ! watchdogEnabled } />
211+ < Toggle checked = { settings . watchdog_idle_enabled } onChange = { ( v ) => update ( 'watchdog_idle_enabled ' , v ) } disabled = { ! watchdogEnabled } />
212212 </ SettingRow >
213213 < SettingRow label = "Idle Timeout" description = "Time before an idle backend is stopped (e.g. 15m, 1h)" >
214- < input className = "input" style = { { width : 120 } } value = { settings . watchdog_idle_timeout || '' } onChange = { ( e ) => update ( 'watchdog_idle_timeout' , e . target . value ) } placeholder = "15m" disabled = { ! settings . watchdog_idle } />
214+ < input className = "input" style = { { width : 120 } } value = { settings . watchdog_idle_timeout || '' } onChange = { ( e ) => update ( 'watchdog_idle_timeout' , e . target . value ) } placeholder = "15m" disabled = { ! settings . watchdog_idle_enabled } />
215215 </ SettingRow >
216216 < SettingRow label = "Enable Busy Check" description = "Stop stuck/busy processes that exceed timeout" >
217- < Toggle checked = { settings . watchdog_busy } onChange = { ( v ) => update ( 'watchdog_busy ' , v ) } disabled = { ! watchdogEnabled } />
217+ < Toggle checked = { settings . watchdog_busy_enabled } onChange = { ( v ) => update ( 'watchdog_busy_enabled ' , v ) } disabled = { ! watchdogEnabled } />
218218 </ SettingRow >
219219 < SettingRow label = "Busy Timeout" description = "Time before a busy backend is stopped (e.g. 5m)" >
220- < input className = "input" style = { { width : 120 } } value = { settings . watchdog_busy_timeout || '' } onChange = { ( e ) => update ( 'watchdog_busy_timeout' , e . target . value ) } placeholder = "5m" disabled = { ! settings . watchdog_busy } />
220+ < input className = "input" style = { { width : 120 } } value = { settings . watchdog_busy_timeout || '' } onChange = { ( e ) => update ( 'watchdog_busy_timeout' , e . target . value ) } placeholder = "5m" disabled = { ! settings . watchdog_busy_enabled } />
221221 </ SettingRow >
222222 < SettingRow label = "Check Interval" description = "How often the watchdog checks backends (e.g. 2s)" >
223- < input className = "input" style = { { width : 120 } } value = { settings . watchdog_check_interval || '' } onChange = { ( e ) => update ( 'watchdog_check_interval ' , e . target . value ) } placeholder = "2s" />
223+ < input className = "input" style = { { width : 120 } } value = { settings . watchdog_interval || '' } onChange = { ( e ) => update ( 'watchdog_interval ' , e . target . value ) } placeholder = "2s" />
224224 </ SettingRow >
225225 < SettingRow label = "Force Eviction When Busy" description = "Allow model eviction even during active API calls" >
226- < Toggle checked = { settings . force_eviction } onChange = { ( v ) => update ( 'force_eviction ' , v ) } />
226+ < Toggle checked = { settings . force_eviction_when_busy } onChange = { ( v ) => update ( 'force_eviction_when_busy ' , v ) } />
227227 </ SettingRow >
228228 < SettingRow label = "LRU Eviction Max Retries" description = "Maximum retries waiting for busy models before eviction" >
229- < input className = "input" type = "number" style = { { width : 120 } } value = { settings . lru_retries ?? '' } onChange = { ( e ) => update ( 'lru_retries ' , parseInt ( e . target . value ) || 0 ) } placeholder = "30" />
229+ < input className = "input" type = "number" style = { { width : 120 } } value = { settings . lru_eviction_max_retries ?? '' } onChange = { ( e ) => update ( 'lru_eviction_max_retries ' , parseInt ( e . target . value ) || 0 ) } placeholder = "30" />
230230 </ SettingRow >
231231 < SettingRow label = "LRU Eviction Retry Interval" description = "Wait between eviction retries (e.g. 1s)" >
232- < input className = "input" style = { { width : 120 } } value = { settings . lru_retry_interval || '' } onChange = { ( e ) => update ( 'lru_retry_interval ' , e . target . value ) } placeholder = "1s" />
232+ < input className = "input" style = { { width : 120 } } value = { settings . lru_eviction_retry_interval || '' } onChange = { ( e ) => update ( 'lru_eviction_retry_interval ' , e . target . value ) } placeholder = "1s" />
233233 </ SettingRow >
234234 </ div >
235235 </ div >
@@ -282,13 +282,13 @@ export default function Settings() {
282282 </ div >
283283 ) }
284284 < SettingRow label = "Enable Memory Reclaimer" description = "Evict backends when memory usage exceeds threshold" >
285- < Toggle checked = { settings . memory_reclaimer } onChange = { ( v ) => update ( 'memory_reclaimer ' , v ) } />
285+ < Toggle checked = { settings . memory_reclaimer_enabled } onChange = { ( v ) => update ( 'memory_reclaimer_enabled ' , v ) } />
286286 </ SettingRow >
287287 < SettingRow label = "Memory Threshold (%)" description = "Eviction triggers when usage exceeds this percentage" >
288288 < div style = { { display : 'flex' , alignItems : 'center' , gap : 'var(--spacing-sm)' } } >
289- < input type = "range" min = "50" max = "100" value = { settings . memory_threshold || 80 } onChange = { ( e ) => update ( 'memory_threshold ' , parseInt ( e . target . value ) ) } disabled = { ! settings . memory_reclaimer } style = { { width : 120 } } />
290- < span style = { { fontSize : '0.875rem' , fontWeight : 600 , minWidth : 40 , textAlign : 'right' , color : percentColor ( settings . memory_threshold || 80 ) } } >
291- { settings . memory_threshold || 80 } %
289+ < input type = "range" min = "50" max = "100" value = { Math . round ( ( settings . memory_reclaimer_threshold || 0.8 ) * 100 ) } onChange = { ( e ) => update ( 'memory_reclaimer_threshold ' , parseInt ( e . target . value ) / 100 ) } disabled = { ! settings . memory_reclaimer_enabled } style = { { width : 120 } } />
290+ < span style = { { fontSize : '0.875rem' , fontWeight : 600 , minWidth : 40 , textAlign : 'right' , color : percentColor ( Math . round ( ( settings . memory_reclaimer_threshold || 0.8 ) * 100 ) ) } } >
291+ { Math . round ( ( settings . memory_reclaimer_threshold || 0.8 ) * 100 ) } %
292292 </ span >
293293 </ div >
294294 </ SettingRow >
0 commit comments