feat: layer runtime and model selection across conversation, project and global
- Store runtime selection as { provider?, model? } layers and resolve them per
field (conversation -> project -> global); drop the legacy auto provider.
- Migrate stored selections (database v49) and clear deleted profile ids.
- Re-resolve selections in Main per request and at queue dispatch.
- Add ProjectRuntimeSelector and a two-column RuntimeModelPicker; manage
link opens model connections; restore per-runtime default model tabs.
- Stop duplicating trusted instructions and history across OpenCode,
Continue and DeepSeek Harness runtimes.
- Document the layered design, global provider removal plan and planned
purpose-specific models.
This commit is contained in:
@@ -430,6 +430,8 @@ export type ResolvedRuntimeSettings = {
|
||||
opencodeModelProfile?: ResolvedModelProfile
|
||||
continueModelProfile?: ResolvedModelProfile
|
||||
deepseekHarnessModelProfile?: ResolvedModelProfile
|
||||
/** What DeepSeek Harness uses when its own configuration is selected. */
|
||||
deepseekHarnessPlatformModelProfile?: ResolvedModelProfile
|
||||
opencodeBaseUrl: string
|
||||
opencodeEmbedded: boolean
|
||||
opencodeBinaryPath: string
|
||||
@@ -1989,6 +1991,11 @@ export class RuntimeSettingsStore {
|
||||
: undefined
|
||||
const deepseekHarnessModelProfile =
|
||||
this.resolveDeepSeekHarnessModelProfile(settings, modelProfiles)
|
||||
const deepseekHarnessPlatformModelProfile =
|
||||
this.resolveDeepSeekHarnessModelProfile(
|
||||
{ ...settings, deepseekHarnessModelSource: { kind: 'platform' } },
|
||||
modelProfiles
|
||||
)
|
||||
const embeddingConnections =
|
||||
this.resolveEmbeddingConnections(settings)
|
||||
const activeEmbeddingConnection =
|
||||
@@ -2014,6 +2021,7 @@ export class RuntimeSettingsStore {
|
||||
defaultImageModelProfileId: settings.defaultImageModelProfileId,
|
||||
continueModelProfile,
|
||||
deepseekHarnessModelProfile,
|
||||
deepseekHarnessPlatformModelProfile,
|
||||
...agent,
|
||||
subagentSmartRoutingEnabled:
|
||||
settings.subagentSmartRoutingEnabled,
|
||||
@@ -2530,7 +2538,7 @@ export class RuntimeSettingsStore {
|
||||
const next: StoredSettings = {
|
||||
...current,
|
||||
version: CURRENT_SETTINGS_VERSION,
|
||||
provider: input.provider,
|
||||
provider: input.provider === 'auto' ? 'model' : input.provider,
|
||||
modelProfiles,
|
||||
defaultModelProfileId,
|
||||
opencodeModelSource,
|
||||
|
||||
Reference in New Issue
Block a user