Merge origin/main into deferred OpenCode restart branch.
Resolve ProvidersPage and lifecycle conflicts with custom providers and AppImage ARGV0 stripping. Address review follow-ups: OAuth index helper + tests, single auth-methods load trigger, shared Google env-alias module with VS Code parity coverage, and deferred restart for custom provider upsert. Co-authored-by: Serhii Dziupin <makeittech@users.noreply.github.com>
This commit is contained in:
@@ -730,9 +730,8 @@ export const settingsDict = {
|
||||
'settings.skills.sidebar.toast.skillDeleted': 'Skill "{name}" deleted successfully',
|
||||
'settings.skills.sidebar.toast.deleteSkillFailed': 'Failed to delete skill',
|
||||
'settings.skills.sidebar.toast.duplicateLoadFailed': 'Failed to load skill details for duplication',
|
||||
'settings.skills.sidebar.toast.renameLoadFailed': 'Failed to load skill details',
|
||||
'settings.skills.sidebar.toast.removeOldAfterRenameFailed': 'Failed to remove old skill after rename',
|
||||
'settings.skills.sidebar.toast.renameFailed': 'Failed to rename skill',
|
||||
'settings.skills.sidebar.toast.skillRenamed': 'Skill renamed to "{name}"',
|
||||
'settings.skills.sidebar.deleteDialog.title': 'Delete Skill',
|
||||
'settings.skills.sidebar.deleteDialog.description': 'Are you sure you want to delete skill "{name}"?',
|
||||
'settings.skills.sidebar.renameDialog.title': 'Rename Skill',
|
||||
@@ -1345,7 +1344,52 @@ export const settingsDict = {
|
||||
'settings.providers.page.connect.selectProviderPlaceholder': 'Select provider',
|
||||
'settings.providers.page.connect.searchProvidersPlaceholder': 'Search...',
|
||||
'settings.providers.page.connect.noProvidersFound': 'No providers found',
|
||||
'settings.providers.page.connect.allProvidersConnected': 'All providers connected.',
|
||||
'settings.providers.page.custom.optionLabel': 'Other / Custom',
|
||||
'settings.providers.page.custom.title': 'Custom provider',
|
||||
'settings.providers.page.custom.editTitle': 'Edit custom provider',
|
||||
'settings.providers.page.custom.description': 'Add an OpenAI-compatible provider with a base URL, credentials, and model list. Saved to OpenCode config so it works in chat like any other provider.',
|
||||
'settings.providers.page.custom.field.providerID.label': 'Provider ID',
|
||||
'settings.providers.page.custom.field.providerID.placeholder': 'my-provider',
|
||||
'settings.providers.page.custom.field.providerID.info': 'Lowercase letters, numbers, hyphens, and underscores. Used as the OpenCode provider id.',
|
||||
'settings.providers.page.custom.field.name.label': 'Display name',
|
||||
'settings.providers.page.custom.field.name.placeholder': 'My Provider',
|
||||
'settings.providers.page.custom.field.name.info': 'Shown in the provider and model pickers.',
|
||||
'settings.providers.page.custom.field.baseURL.label': 'Base URL',
|
||||
'settings.providers.page.custom.field.baseURL.placeholder': 'https://api.example.com/v1',
|
||||
'settings.providers.page.custom.field.baseURL.info': 'OpenAI-compatible API base URL. Must start with http:// or https://.',
|
||||
'settings.providers.page.custom.field.apiKey.label': 'API key',
|
||||
'settings.providers.page.custom.field.apiKey.placeholder': 'sk-... or {env:VAR_NAME}',
|
||||
'settings.providers.page.custom.field.apiKey.info': 'Stored in OpenCode auth, not by OpenChamber. Use {env:VAR_NAME} to read a key from the environment instead.',
|
||||
'settings.providers.page.custom.field.apiKey.editInfo': 'Leave blank to keep the existing credential, or enter a new key / {env:VAR_NAME}.',
|
||||
'settings.providers.page.custom.field.apiKey.editPlaceholder': 'Leave blank to keep existing key',
|
||||
'settings.providers.page.custom.models.title': 'Models',
|
||||
'settings.providers.page.custom.models.idLabel': 'Model ID',
|
||||
'settings.providers.page.custom.models.idPlaceholder': 'gpt-4o',
|
||||
'settings.providers.page.custom.models.nameLabel': 'Model name',
|
||||
'settings.providers.page.custom.models.namePlaceholder': 'GPT-4o',
|
||||
'settings.providers.page.custom.models.add': 'Add model',
|
||||
'settings.providers.page.custom.models.remove': 'Remove model',
|
||||
'settings.providers.page.custom.headers.title': 'Headers',
|
||||
'settings.providers.page.custom.headers.description': 'Optional request headers sent with every call.',
|
||||
'settings.providers.page.custom.headers.keyLabel': 'Header name',
|
||||
'settings.providers.page.custom.headers.keyPlaceholder': 'X-Custom-Header',
|
||||
'settings.providers.page.custom.headers.valueLabel': 'Header value',
|
||||
'settings.providers.page.custom.headers.valuePlaceholder': 'value',
|
||||
'settings.providers.page.custom.headers.add': 'Add header',
|
||||
'settings.providers.page.custom.headers.remove': 'Remove header',
|
||||
'settings.providers.page.custom.actions.back': 'Back',
|
||||
'settings.providers.page.custom.actions.save': 'Save provider',
|
||||
'settings.providers.page.custom.actions.update': 'Update provider',
|
||||
'settings.providers.page.custom.error.providerID.required': 'Provider ID is required',
|
||||
'settings.providers.page.custom.error.providerID.format': 'Use lowercase letters, numbers, hyphens, or underscores',
|
||||
'settings.providers.page.custom.error.providerID.exists': 'A provider with this ID is already connected',
|
||||
'settings.providers.page.custom.error.name.required': 'Display name is required',
|
||||
'settings.providers.page.custom.error.baseURL.required': 'Base URL is required',
|
||||
'settings.providers.page.custom.error.baseURL.format': 'Base URL must start with http:// or https://',
|
||||
'settings.providers.page.custom.error.required': 'Required',
|
||||
'settings.providers.page.custom.error.duplicate': 'Duplicate',
|
||||
'settings.providers.page.custom.error.apiKey.required': 'API key or {env:VAR_NAME} is required',
|
||||
'settings.providers.page.custom.authFailure.configAfterAuth': 'Credentials were saved, but the provider config was not. Fix the error and try again, or disconnect to clear the partial save.',
|
||||
'settings.providers.page.auth.title': 'Authentication',
|
||||
'settings.providers.page.auth.loadingMethods': 'Loading authentication methods...',
|
||||
'settings.providers.page.auth.apiKeyLabel': 'API Key',
|
||||
@@ -1354,6 +1398,8 @@ export const settingsDict = {
|
||||
'settings.providers.page.auth.oauthMethodFallback': 'OAuth method {index}',
|
||||
'settings.providers.page.auth.pasteAuthorizationCodePlaceholder': 'Paste authorization code',
|
||||
'settings.providers.page.auth.connected': 'Connected',
|
||||
'settings.providers.page.auth.incomplete': 'Credentials missing',
|
||||
'settings.providers.page.auth.incompleteHint': '· Add an API key or {env:VAR} before using this provider in chat',
|
||||
'settings.providers.page.auth.useReconnectHint': '· Use Reconnect to update credentials',
|
||||
'settings.providers.page.connectionDetails.title': 'Connection Details',
|
||||
'settings.providers.page.connectionDetails.configuredIn': 'Configured in:',
|
||||
@@ -1383,6 +1429,7 @@ export const settingsDict = {
|
||||
'settings.providers.page.actions.complete': 'Complete',
|
||||
'settings.providers.page.actions.hide': 'Hide',
|
||||
'settings.providers.page.actions.reconnect': 'Reconnect',
|
||||
'settings.providers.page.actions.edit': 'Edit',
|
||||
'settings.providers.page.actions.disconnecting': 'Disconnecting...',
|
||||
'settings.providers.page.actions.disconnect': 'Disconnect',
|
||||
'settings.providers.page.actions.hideAll': 'Hide all',
|
||||
@@ -1403,6 +1450,8 @@ export const settingsDict = {
|
||||
'settings.providers.page.toast.deviceCodeCopyFailed': 'Failed to copy device code',
|
||||
'settings.providers.page.toast.providerDisconnected': 'Provider disconnected',
|
||||
'settings.providers.page.toast.providerDisconnectFailed': 'Failed to disconnect provider',
|
||||
'settings.providers.page.toast.customProviderSaved': '{provider} connected',
|
||||
'settings.providers.page.toast.customProviderSaveFailed': 'Failed to save custom provider',
|
||||
'settings.mcp.page.empty.selectServer': 'Select an MCP server from the sidebar',
|
||||
'settings.mcp.page.empty.addNewOne': 'or add a new one',
|
||||
'settings.mcp.page.header.newServer': 'New MCP Server',
|
||||
|
||||
Reference in New Issue
Block a user