axios+telemetry cleanup
This commit is contained in:
@@ -1,4 +1,3 @@
|
||||
import axios from 'axios'
|
||||
import { constants as fsConstants } from 'fs'
|
||||
import { access, writeFile } from 'fs/promises'
|
||||
import { homedir } from 'os'
|
||||
@@ -16,6 +15,7 @@ import { ClaudeError, getErrnoCode, isENOENT } from './errors.js'
|
||||
import { execFileNoThrowWithCwd } from './execFileNoThrow.js'
|
||||
import { getFsImplementation } from './fsOperations.js'
|
||||
import { gracefulShutdownSync } from './gracefulShutdown.js'
|
||||
import { isHttpError, nativeRequest } from './http.js'
|
||||
import { logError } from './log.js'
|
||||
import { gte, lt } from './semver.js'
|
||||
import { getInitialSettings } from './settings/settings.js'
|
||||
@@ -79,11 +79,11 @@ export async function assertMinVersion(): Promise<void> {
|
||||
|
||||
if (
|
||||
versionConfig.minVersion &&
|
||||
lt(MACRO.VERSION, versionConfig.minVersion)
|
||||
lt('0.1.0-alpha', versionConfig.minVersion)
|
||||
) {
|
||||
// biome-ignore lint/suspicious/noConsole:: intentional console output
|
||||
console.error(`
|
||||
It looks like your version of Claude Code (${MACRO.VERSION}) needs an update.
|
||||
It looks like your version of Claude Code (0.1.0-alpha) needs an update.
|
||||
A newer version (${versionConfig.minVersion} or higher) is required to continue.
|
||||
|
||||
To update, please run:
|
||||
@@ -325,7 +325,7 @@ export async function getLatestVersion(
|
||||
// which could be maliciously crafted to redirect to an attacker's registry
|
||||
const result = await execFileNoThrowWithCwd(
|
||||
'npm',
|
||||
['view', `${MACRO.PACKAGE_URL}@${npmTag}`, 'version', '--prefer-online'],
|
||||
['view', `@anthropic-ai/claude-code@${npmTag}`, 'version', '--prefer-online'],
|
||||
{ abortSignal: AbortSignal.timeout(5000), cwd: homedir() },
|
||||
)
|
||||
if (result.code !== 0) {
|
||||
@@ -356,7 +356,7 @@ export async function getNpmDistTags(): Promise<NpmDistTags> {
|
||||
// Run from home directory to avoid reading project-level .npmrc
|
||||
const result = await execFileNoThrowWithCwd(
|
||||
'npm',
|
||||
['view', MACRO.PACKAGE_URL, 'dist-tags', '--json', '--prefer-online'],
|
||||
['view', '@anthropic-ai/claude-code', 'dist-tags', '--json', '--prefer-online'],
|
||||
{ abortSignal: AbortSignal.timeout(5000), cwd: homedir() },
|
||||
)
|
||||
|
||||
@@ -385,7 +385,8 @@ export async function getLatestVersionFromGcs(
|
||||
channel: ReleaseChannel,
|
||||
): Promise<string | null> {
|
||||
try {
|
||||
const response = await axios.get(`${GCS_BUCKET_URL}/${channel}`, {
|
||||
const response = await nativeRequest<string>(`${GCS_BUCKET_URL}/${channel}`, {
|
||||
method: 'GET',
|
||||
timeout: 5000,
|
||||
responseType: 'text',
|
||||
})
|
||||
@@ -425,14 +426,14 @@ export async function getVersionHistory(limit: number): Promise<string[]> {
|
||||
|
||||
// Use native package URL when available to ensure we only show versions
|
||||
// that have native binaries (not all JS package versions have native builds)
|
||||
const packageUrl = MACRO.NATIVE_PACKAGE_URL ?? MACRO.PACKAGE_URL
|
||||
const packageUrl = '@anthropic-ai/claude-code'
|
||||
|
||||
// Run from home directory to avoid reading project-level .npmrc
|
||||
const result = await execFileNoThrowWithCwd(
|
||||
'npm',
|
||||
['view', packageUrl, 'versions', '--json', '--prefer-online'],
|
||||
// Longer timeout for version list
|
||||
{ abortSignal: AbortSignal.timeout(30000), cwd: homedir() },
|
||||
{ abortSignal: (AbortSignal as any).timeout(30000), cwd: homedir() },
|
||||
)
|
||||
|
||||
if (result.code !== 0) {
|
||||
@@ -464,7 +465,7 @@ export async function installGlobalPackage(
|
||||
logEvent('tengu_auto_updater_lock_contention', {
|
||||
pid: process.pid,
|
||||
currentVersion:
|
||||
MACRO.VERSION as AnalyticsMetadata_I_VERIFIED_THIS_IS_NOT_CODE_OR_FILEPATHS,
|
||||
'0.1.0-alpha' as AnalyticsMetadata_I_VERIFIED_THIS_IS_NOT_CODE_OR_FILEPATHS,
|
||||
})
|
||||
return 'in_progress'
|
||||
}
|
||||
@@ -476,7 +477,7 @@ export async function installGlobalPackage(
|
||||
logError(new Error('Windows NPM detected in WSL environment'))
|
||||
logEvent('tengu_auto_updater_windows_npm_in_wsl', {
|
||||
currentVersion:
|
||||
MACRO.VERSION as AnalyticsMetadata_I_VERIFIED_THIS_IS_NOT_CODE_OR_FILEPATHS,
|
||||
'0.1.0-alpha' as AnalyticsMetadata_I_VERIFIED_THIS_IS_NOT_CODE_OR_FILEPATHS,
|
||||
})
|
||||
// biome-ignore lint/suspicious/noConsole:: intentional console output
|
||||
console.error(`
|
||||
@@ -500,8 +501,8 @@ To fix this issue:
|
||||
|
||||
// Use specific version if provided, otherwise use latest
|
||||
const packageSpec = specificVersion
|
||||
? `${MACRO.PACKAGE_URL}@${specificVersion}`
|
||||
: MACRO.PACKAGE_URL
|
||||
? `@anthropic-ai/claude-code@${specificVersion}`
|
||||
: '@anthropic-ai/claude-code'
|
||||
|
||||
// Run from home directory to avoid reading project-level .npmrc/.bunfig.toml
|
||||
// which could be maliciously crafted to redirect to an attacker's registry
|
||||
|
||||
Reference in New Issue
Block a user