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:
@@ -1645,7 +1645,9 @@ export function SettingsPanel({
|
||||
provider: agentRuntimeType,
|
||||
profileId: runtimeSource.profileId
|
||||
}
|
||||
: { provider: agentRuntimeType }
|
||||
: runtimeSource.kind === 'platform'
|
||||
? { provider: agentRuntimeType, runtimeConfig: true as const }
|
||||
: { provider: agentRuntimeType }
|
||||
const status = testingModel
|
||||
? await window.goodbuddy.settings.testModelConnection(profileId)
|
||||
: await window.goodbuddy.settings.testRuntime(runtimeSelection)
|
||||
@@ -3563,10 +3565,10 @@ export function SettingsPanel({
|
||||
'openai-images-generations'
|
||||
? t('model.profile.imageGeneration')
|
||||
: t('model.profile.textChat'),
|
||||
continueCompatibility: isContinueCompatible(profile)
|
||||
continueCompatibility: isAgentRuntimeModelProtocol(profile.protocol)
|
||||
? t('model.profile.compatible')
|
||||
: t('model.profile.incompatible'),
|
||||
openCodeCompatibility: isOpenCodeCompatible(profile)
|
||||
openCodeCompatibility: isAgentRuntimeModelProtocol(profile.protocol)
|
||||
? t('model.profile.compatible')
|
||||
: t('model.profile.incompatibleImageProtocol'),
|
||||
deepseekHarnessCompatibility:
|
||||
|
||||
Reference in New Issue
Block a user