feat: add channel async polling delay toggle

Fixes #5717
Fixes #4244
This commit is contained in:
CaIon
2026-06-24 20:40:10 +08:00
parent 5d943281b5
commit d2dcbc3137
13 changed files with 424 additions and 15 deletions
@@ -3249,6 +3249,31 @@ export function ChannelMutateDrawer({
</FormItem>
)}
/>
<FormField
control={form.control}
name='disable_task_polling_sleep'
render={({ field }) => (
<FormItem className='flex items-center justify-between px-4 py-3'>
<div className='space-y-0.5'>
<FormLabel>
{t('Skip async task polling delay')}
</FormLabel>
<FormDescription>
{t(
'Do not wait one second between polling async tasks for this channel'
)}
</FormDescription>
</div>
<FormControl>
<Switch
checked={field.value}
onCheckedChange={field.onChange}
/>
</FormControl>
</FormItem>
)}
/>
</div>
<FormField
@@ -47,6 +47,7 @@ const ADVANCED_SETTINGS_FIELDS = new Set<FieldPath<ChannelFormValues>>([
'allow_inference_geo',
'allow_speed',
'claude_beta_query',
'disable_task_polling_sleep',
'upstream_model_update_check_enabled',
'upstream_model_update_auto_sync_enabled',
'upstream_model_update_ignored_models',
+8
View File
@@ -203,6 +203,7 @@ export const channelFormSchema = z
allow_inference_geo: z.boolean().optional(), // OpenAI/Anthropic: inference geography
allow_speed: z.boolean().optional(), // Anthropic: speed mode control
claude_beta_query: z.boolean().optional(), // Anthropic: beta query passthrough
disable_task_polling_sleep: z.boolean().optional(),
// Upstream model update settings (stored in settings JSON)
upstream_model_update_check_enabled: z.boolean().optional(),
upstream_model_update_auto_sync_enabled: z.boolean().optional(),
@@ -342,6 +343,7 @@ export const CHANNEL_FORM_DEFAULT_VALUES: ChannelFormValues = {
allow_inference_geo: false,
allow_speed: false,
claude_beta_query: false,
disable_task_polling_sleep: false,
upstream_model_update_check_enabled: false,
upstream_model_update_auto_sync_enabled: false,
upstream_model_update_ignored_models: '',
@@ -397,6 +399,7 @@ export function transformChannelToFormDefaults(
let allowInferenceGeo = false
let allowSpeed = false
let claudeBetaQuery = false
let disableTaskPollingSleep = false
let upstreamModelUpdateCheckEnabled = false
let upstreamModelUpdateAutoSyncEnabled = false
let upstreamModelUpdateIgnoredModels = ''
@@ -416,6 +419,7 @@ export function transformChannelToFormDefaults(
allowInferenceGeo = parsed.allow_inference_geo === true
allowSpeed = parsed.allow_speed === true
claudeBetaQuery = parsed.claude_beta_query === true
disableTaskPollingSleep = parsed.disable_task_polling_sleep === true
upstreamModelUpdateCheckEnabled =
parsed.upstream_model_update_check_enabled === true
upstreamModelUpdateAutoSyncEnabled =
@@ -473,6 +477,7 @@ export function transformChannelToFormDefaults(
allow_inference_geo: allowInferenceGeo,
allow_speed: allowSpeed,
claude_beta_query: claudeBetaQuery,
disable_task_polling_sleep: disableTaskPollingSleep,
allow_safety_identifier: allowSafetyIdentifier,
upstream_model_update_check_enabled: upstreamModelUpdateCheckEnabled,
upstream_model_update_auto_sync_enabled: upstreamModelUpdateAutoSyncEnabled,
@@ -576,6 +581,9 @@ function buildSettingsJSON(formData: ChannelFormValues): string {
if ('claude_beta_query' in settingsObj) delete settingsObj.claude_beta_query
}
settingsObj.disable_task_polling_sleep =
formData.disable_task_polling_sleep === true
// Upstream model update settings (for model-fetchable channel types)
if (MODEL_FETCHABLE_TYPES.has(formData.type)) {
settingsObj.upstream_model_update_check_enabled =
+1
View File
@@ -100,6 +100,7 @@ export interface ChannelOtherSettings {
allow_inference_geo?: boolean
allow_speed?: boolean
claude_beta_query?: boolean
disable_task_polling_sleep?: boolean
upstream_model_update_check_enabled?: boolean
upstream_model_update_auto_sync_enabled?: boolean
upstream_model_update_ignored_models?: string[]