refactor(cliproxy): address review feedback on parity and refresh flow

- make refresh ownership handling exhaustive in provider refresher

- extend backend/ui sync test to provider IDs and device-code providers

- remove DEFAULT_CURSOR_PORT re-export from use-cursor hook

- import cursor default port directly from shared defaults module
This commit is contained in:
Tam Nhu Tran committed 2026-02-18 03:24:28 +07:00
1 parent 5a786263bc
commit 39593c161b
4 files changed
+40 -19

No files matched your search

+18 -16
View File
@@ -26,6 +26,10 @@ export interface ProviderRefreshResult {
delegated?: boolean;
}
function assertNever(value: never): never {
throw new Error(`Unhandled token refresh ownership: ${String(value)}`);
}
/**
* Check if a provider's token refresh is delegated to CLIProxy
*/
@@ -47,24 +51,22 @@ export async function refreshToken(
return await refreshGeminiTokenWrapper();
}
if (isRefreshDelegated(provider)) {
// CLIProxyAPIPlus handles refresh for these providers automatically.
// No action needed from CCS — report success with delegated flag.
return { success: true, delegated: true };
}
const ownership = getTokenRefreshOwnership(provider);
if (ownership === 'unsupported') {
return {
success: false,
error: `Token refresh not yet implemented for ${provider}`,
};
switch (ownership) {
case 'cliproxy':
// CLIProxyAPIPlus handles refresh for these providers automatically.
// No action needed from CCS — report success with delegated flag.
return { success: true, delegated: true };
case 'unsupported':
case 'ccs':
// Non-gemini CCS-owned refresh paths are not implemented yet.
return {
success: false,
error: `Token refresh not yet implemented for ${provider}`,
};
default:
return assertNever(ownership);
}
return {
success: false,
error: `Unknown provider: ${provider}`,
};
}
/**