fix: count OpenCode inventory fallback as connected Merge pull request #183 from 777genius/fix/opencode-inventory-summary-count
fix: count OpenCode inventory fallback as connected
This commit is contained in:
commit
a76d0cb2ed
2 changed files with 34 additions and 3 deletions
|
|
@ -37,6 +37,7 @@ import {
|
|||
getProviderDisconnectAction,
|
||||
isConnectionManagedRuntimeProvider,
|
||||
isOpenCodeCatalogHydrating,
|
||||
isProviderInventoryOnlyFallback,
|
||||
shouldShowProviderConnectAction,
|
||||
shouldShowProviderStatusSkeleton,
|
||||
} from '@renderer/components/runtime/providerConnectionUi';
|
||||
|
|
@ -527,6 +528,10 @@ function isPendingMultimodelProviderStatus(provider: CliProviderStatus): boolean
|
|||
);
|
||||
}
|
||||
|
||||
function isProviderCountedAsConnected(provider: CliProviderStatus): boolean {
|
||||
return provider.authenticated || isProviderInventoryOnlyFallback(provider);
|
||||
}
|
||||
|
||||
function formatRuntimeAuthSummary(
|
||||
cliStatus: NonNullable<ReturnType<typeof useCliInstaller>['cliStatus']>,
|
||||
visibleProviders: readonly CliProviderStatus[],
|
||||
|
|
@ -541,7 +546,7 @@ function formatRuntimeAuthSummary(
|
|||
return t('cliStatus.provider.checkingProviders');
|
||||
}
|
||||
const denominator = visibleProviders.length;
|
||||
const connected = visibleProviders.filter((provider) => provider.authenticated).length;
|
||||
const connected = visibleProviders.filter(isProviderCountedAsConnected).length;
|
||||
|
||||
return t('cliStatus.provider.connectedCount', { connected, denominator });
|
||||
}
|
||||
|
|
@ -571,7 +576,7 @@ function isCheckingMultimodelStatus(
|
|||
function hasVisibleAuthenticatedMultimodelProvider(
|
||||
visibleProviders: readonly CliProviderStatus[]
|
||||
): boolean {
|
||||
return visibleProviders.some((provider) => provider.authenticated);
|
||||
return visibleProviders.some(isProviderCountedAsConnected);
|
||||
}
|
||||
|
||||
function isOpenCodeProviderEffectivelyReady(provider: CliProviderStatus): boolean {
|
||||
|
|
|
|||
|
|
@ -718,9 +718,34 @@ describe('CLI status visibility during completed install state', () => {
|
|||
supportsSelfUpdate: false,
|
||||
showVersionDetails: false,
|
||||
showBinaryPath: false,
|
||||
authLoggedIn: false,
|
||||
authLoggedIn: true,
|
||||
authStatusChecking: false,
|
||||
providers: [
|
||||
{
|
||||
providerId: 'anthropic',
|
||||
displayName: 'Anthropic',
|
||||
supported: true,
|
||||
authenticated: true,
|
||||
authMethod: 'api_key',
|
||||
verificationState: 'verified',
|
||||
statusMessage: null,
|
||||
models: ['claude-haiku-4-5'],
|
||||
modelAvailability: [],
|
||||
canLoginFromUi: true,
|
||||
capabilities: {
|
||||
teamLaunch: true,
|
||||
oneShot: true,
|
||||
},
|
||||
backend: null,
|
||||
modelCatalog: null,
|
||||
modelCatalogRefreshState: 'idle',
|
||||
runtimeCapabilities: null,
|
||||
},
|
||||
createCodexNativeRolloutProvider({
|
||||
state: 'ready',
|
||||
statusMessage: 'ChatGPT account ready',
|
||||
models: ['gpt-5.4'],
|
||||
}),
|
||||
{
|
||||
providerId: 'opencode',
|
||||
displayName: 'OpenCode (200+ models)',
|
||||
|
|
@ -755,6 +780,7 @@ describe('CLI status visibility during completed install state', () => {
|
|||
});
|
||||
|
||||
expect(host.textContent).toContain('OpenCode');
|
||||
expect(host.textContent).toContain('Providers: 3/3 connected');
|
||||
expect(host.textContent).toContain('Models available');
|
||||
expect(host.textContent).toContain('big-pickle');
|
||||
expect(host.textContent).not.toContain('Checking...');
|
||||
|
|
|
|||
Loading…
Reference in a new issue