axios+telemetry cleanup
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
import axios from 'axios';
|
||||
import { isHttpError, nativeRequest } from '../utils/http.js';
|
||||
import { readFile, stat } from 'fs/promises';
|
||||
import * as React from 'react';
|
||||
import { useCallback, useEffect, useState } from 'react';
|
||||
@@ -28,6 +28,7 @@ import { ConfigurableShortcutHint } from './ConfigurableShortcutHint.js';
|
||||
import { Byline } from './design-system/Byline.js';
|
||||
import { Dialog } from './design-system/Dialog.js';
|
||||
import { KeyboardShortcutHint } from './design-system/KeyboardShortcutHint.js';
|
||||
import { VERSION } from 'src/constants/product.js';
|
||||
import TextInput from './TextInput.js';
|
||||
|
||||
// This value was determined experimentally by testing the URL length limit
|
||||
@@ -211,7 +212,7 @@ export function Feedback({
|
||||
platform: env.platform,
|
||||
gitRepo: envInfo.isGit,
|
||||
terminal: env.terminal,
|
||||
version: MACRO.VERSION,
|
||||
version: VERSION,
|
||||
transcript: normalizeMessagesForAPI(messages),
|
||||
errors: sanitizedErrors,
|
||||
lastApiRequest: getLastAPIRequest(),
|
||||
@@ -343,7 +344,7 @@ export function Feedback({
|
||||
<Text>
|
||||
- Environment info:{' '}
|
||||
<Text dimColor>
|
||||
{env.platform}, {env.terminal}, v{MACRO.VERSION}
|
||||
{env.platform}, {env.terminal}, v{VERSION}
|
||||
</Text>
|
||||
</Text>
|
||||
{envInfo.gitState && <Text>
|
||||
@@ -396,7 +397,7 @@ export function createGitHubIssueUrl(feedbackId: string, title: string, descript
|
||||
}>): string {
|
||||
const sanitizedTitle = redactSensitiveInfo(title);
|
||||
const sanitizedDescription = redactSensitiveInfo(description);
|
||||
const bodyPrefix = `**Bug Description**\n${sanitizedDescription}\n\n` + `**Environment Info**\n` + `- Platform: ${env.platform}\n` + `- Terminal: ${env.terminal}\n` + `- Version: ${MACRO.VERSION || 'unknown'}\n` + `- Feedback ID: ${feedbackId}\n` + `\n**Errors**\n\`\`\`json\n`;
|
||||
const bodyPrefix = `**Bug Description**\n${sanitizedDescription}\n\n` + `**Environment Info**\n` + `- Platform: ${env.platform}\n` + `- Terminal: ${env.terminal}\n` + `- Version: ${VERSION || 'unknown'}\n` + `- Feedback ID: ${feedbackId}\n` + `\n**Errors**\n\`\`\`json\n`;
|
||||
const errorSuffix = `\n\`\`\`\n`;
|
||||
const errorsJson = jsonStringify(errors);
|
||||
const baseUrl = `${GITHUB_ISSUES_REPO_URL}/new?title=${encodeURIComponent(sanitizedTitle)}&labels=user-reported,bug&body=`;
|
||||
@@ -540,12 +541,13 @@ async function submitFeedback(data: FeedbackData, signal?: AbortSignal): Promise
|
||||
'User-Agent': getUserAgent(),
|
||||
...authResult.headers
|
||||
};
|
||||
const response = await axios.post('https://api.anthropic.com/api/claude_cli_feedback', {
|
||||
content: jsonStringify(data)
|
||||
}, {
|
||||
const response = await nativeRequest('https://api.anthropic.com/api/claude_cli_feedback', {
|
||||
method: 'POST',
|
||||
headers,
|
||||
body: {
|
||||
content: jsonStringify(data)
|
||||
},
|
||||
timeout: 30000,
|
||||
// 30 second timeout to prevent hanging
|
||||
signal
|
||||
});
|
||||
if (response.status === 200) {
|
||||
@@ -566,14 +568,13 @@ async function submitFeedback(data: FeedbackData, signal?: AbortSignal): Promise
|
||||
success: false
|
||||
};
|
||||
} catch (err) {
|
||||
// Handle cancellation/abort - don't log as error
|
||||
if (axios.isCancel(err)) {
|
||||
if (err instanceof Error && err.name === 'AbortError') {
|
||||
return {
|
||||
success: false
|
||||
};
|
||||
}
|
||||
if (axios.isAxiosError(err) && err.response?.status === 403) {
|
||||
const errorData = err.response.data;
|
||||
if (isHttpError(err) && err.status === 403) {
|
||||
const errorData = err.data;
|
||||
if (errorData?.error?.type === 'permission_error' && errorData?.error?.message?.includes('Custom data retention settings')) {
|
||||
sanitizeAndLogError(new Error('Cannot submit feedback because custom data retention settings are enabled'));
|
||||
return {
|
||||
|
||||
Reference in New Issue
Block a user