Repository navigation
feat: advanced OpenAI settings per provider - #10
Merged
LukeGus merged 1 commit intoOct 22, 2026
Merged
Conversation
|
AI review | Looks safe to merge Adds validated advanced settings for OpenAI providers with proper migrations, UI, and fallback logic. No security or rule violations found.
Reviewed 8aba74b. AI can be wrong, a maintainer still decides. Comment |
Providers of type openai and openai_compatible get an Advanced section: endpoint (auto, Responses API, Chat Completions), reasoning effort, reasoning summary, verbosity, max output tokens and temperature. They are stored as one JSON column (migration 0013) and validated by the routes. Empty fields send nothing. The user's output limit never goes above a caller's own cap. Temperature is not sent to OpenAI with an effort other than none, and a server that refuses it is asked again without it. The summary retry now keeps a user-set effort, and an effort the model refuses is shown instead of turning summaries off.
LukeGus
force-pushed
the
feat/provider-advanced-settings
branch
from
October 22, 2026 17:29
c683caa to
8aba74b
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stacked on #9 — merge #9 first; until then this diff also includes its commits (Responses API for OpenAI).
What
Providers of type OpenAI and OpenAI compatible get a collapsible Advanced section in the provider form. Other provider types don't show it and never send it.
reasoning.effortreasoning_effortreasoning.summary(off = not sent)text.verbosityverbositymax_output_tokensmax_completion_tokens(OpenAI) /max_tokens(compatible)temperaturetemperatureLeaving a field on Default sends nothing new, so the requests are the same as before. The values come from the OpenAI API reference (Responses create; Chat Completions create) and the latest-model guide: "When reasoning effort is not
none, removetemperature,top_p, andtop_logprobs."Behaviour details
Math.min). Callers include the engine's reply limit and the 2048 cap used by exposure explanations. With the field empty, the plugin keeps sending its own limit as before.openaiproviders when the reasoning effort is set to anything other thannone, and a warning is logged. A server that answers 400/422 abouttemperatureis asked again without it, also with a warning. Compatible servers get it with any effort.reasoning_effort: "none"retry for tools still only runs when the user did not set an effort.reasoning.summaryand keeps a user-set effort.advancedonp_ai_providers, added by migration0013_provider_advanced(sqlite/postgrestext, mysqllongtext). It was generated withtermix-plugin migrations, andsnapshot.jsonis updated.POST /providersandPATCH /providers/:idacceptadvanced. PATCH replaces the whole object;nullclears it.advanced({}when nothing is set).AiProviderSettings.tsx, 27 newai.advanced*keys inlocales/en.json. Translations are not included.Verification
npx tsc -p .: OK.npx prettier --check .: OK.npx vitest run: 88 files, 937 passed, 1 skipped (base: 87 files, 823 passed).noneretry.nullon edit, prefill, invalid temperature blocks Save.termix-plugin test/typecheck/build/validate/pack) passed.ghcr.io/termix-ssh/termix:latest, plugin mounted as bundled) the log showsApplied 1 migration(s) for plugin ai: 0013_provider_advancedandActivated plugin ai.gpt-6-luna(screenshot below) and the assistant still works with the settings left on Default.Screenshot