hotfix: close cliproxy plus fallback gaps

This commit is contained in:
Tam Nhu Tran committed 2026-04-22 08:52:17 -04:00
1 parent b8b48a99ba
commit dd90ea7e2f
15 files changed
+235 -104

No files matched your search

+29 -14
View File
@@ -18,6 +18,7 @@ import {
savePinnedVersion,
clearPinnedVersion,
isVersionPinned,
resolveLocalBackend,
} from '../binary-manager';
import { BACKEND_CONFIG, DEFAULT_BACKEND } from '../platform-detector';
import { CLIProxyBackend } from '../types';
@@ -54,8 +55,10 @@ export interface LatestVersionResult {
* Get current binary status for a specific backend
*/
export function getBinaryStatus(backend?: CLIProxyBackend): BinaryStatusResult {
const effectiveBackend =
backend ?? loadOrCreateUnifiedConfig().cliproxy?.backend ?? DEFAULT_BACKEND;
const effectiveBackend = resolveLocalBackend(
backend ?? loadOrCreateUnifiedConfig().cliproxy?.backend ?? DEFAULT_BACKEND,
{ warnOnFallback: true }
);
const backendConfig = BACKEND_CONFIG[effectiveBackend];
return {
installed: isCLIProxyInstalled(effectiveBackend),
@@ -71,8 +74,10 @@ export function getBinaryStatus(backend?: CLIProxyBackend): BinaryStatusResult {
* Check for latest version
*/
export async function checkLatestVersion(backend?: CLIProxyBackend): Promise<LatestVersionResult> {
const effectiveBackend =
backend ?? loadOrCreateUnifiedConfig().cliproxy?.backend ?? DEFAULT_BACKEND;
const effectiveBackend = resolveLocalBackend(
backend ?? loadOrCreateUnifiedConfig().cliproxy?.backend ?? DEFAULT_BACKEND,
{ warnOnFallback: true }
);
try {
// Use checkCliproxyUpdate which is backend-aware (uses correct GitHub repo)
@@ -119,8 +124,10 @@ export async function installVersion(
};
}
const effectiveBackend =
backend ?? loadOrCreateUnifiedConfig().cliproxy?.backend ?? DEFAULT_BACKEND;
const effectiveBackend = resolveLocalBackend(
backend ?? loadOrCreateUnifiedConfig().cliproxy?.backend ?? DEFAULT_BACKEND,
{ warnOnFallback: true }
);
try {
await installCliproxyVersion(version, verbose, effectiveBackend);
@@ -147,8 +154,10 @@ export async function installLatest(
verbose = false,
backend?: CLIProxyBackend
): Promise<InstallResult> {
const effectiveBackend =
backend ?? loadOrCreateUnifiedConfig().cliproxy?.backend ?? DEFAULT_BACKEND;
const effectiveBackend = resolveLocalBackend(
backend ?? loadOrCreateUnifiedConfig().cliproxy?.backend ?? DEFAULT_BACKEND,
{ warnOnFallback: true }
);
try {
const latestVersion = await fetchLatestCliproxyVersion(effectiveBackend);
@@ -184,8 +193,10 @@ export async function installLatest(
* Check if a version is pinned
*/
export function isPinned(backend?: CLIProxyBackend): boolean {
const effectiveBackend =
backend ?? loadOrCreateUnifiedConfig().cliproxy?.backend ?? DEFAULT_BACKEND;
const effectiveBackend = resolveLocalBackend(
backend ?? loadOrCreateUnifiedConfig().cliproxy?.backend ?? DEFAULT_BACKEND,
{ warnOnFallback: true }
);
return isVersionPinned(effectiveBackend);
}
@@ -193,8 +204,10 @@ export function isPinned(backend?: CLIProxyBackend): boolean {
* Get pinned version if any
*/
export function getPinned(backend?: CLIProxyBackend): string | null {
const effectiveBackend =
backend ?? loadOrCreateUnifiedConfig().cliproxy?.backend ?? DEFAULT_BACKEND;
const effectiveBackend = resolveLocalBackend(
backend ?? loadOrCreateUnifiedConfig().cliproxy?.backend ?? DEFAULT_BACKEND,
{ warnOnFallback: true }
);
return getPinnedVersion(effectiveBackend);
}
@@ -202,7 +215,9 @@ export function getPinned(backend?: CLIProxyBackend): string | null {
* Clear version pin
*/
export function clearPin(backend?: CLIProxyBackend): void {
const effectiveBackend =
backend ?? loadOrCreateUnifiedConfig().cliproxy?.backend ?? DEFAULT_BACKEND;
const effectiveBackend = resolveLocalBackend(
backend ?? loadOrCreateUnifiedConfig().cliproxy?.backend ?? DEFAULT_BACKEND,
{ warnOnFallback: true }
);
clearPinnedVersion(effectiveBackend);
}