refactor: 前端全面替换 any 为 unknown 并统一错误处理,后端用量记录补写请求头/体

- 前端 API 层、stores、conversation 解析器、组件全面替换 any 为 unknown/具体类型
- 错误处理统一使用 parseApiError/getErrorStatus 替代 err.response?.data?.detail 模式
- 后端 handler/TaskService/UsageLifecycle/StreamTracker 链路传递 request_headers/request_body
- streaming/pending 状态更新时可补写客户端和提供商的请求头及请求体
- 新增 TaskService 和 UsageService 相关测试
This commit is contained in:
fawney19
2026-02-22 00:43:41 +08:00
parent 98e60e8f74
commit cf2eee222e
121 changed files with 1652 additions and 1179 deletions
+4 -4
View File
@@ -293,7 +293,7 @@ function parseScopes(input: string): string[] | null {
return parts.length ? parts : null
}
function parseJsonOrNull(input: string): Record<string, any> | null {
function parseJsonOrNull(input: string): Record<string, unknown> | null {
const raw = input.trim()
if (!raw) return null
return JSON.parse(raw)
@@ -387,7 +387,7 @@ async function loadAll() {
if (selectedType.value) {
syncFormFromSelected()
}
} catch (err: any) {
} catch (err: unknown) {
log.error('加载 OAuth 配置失败:', err)
showError(getErrorMessage(err, '加载失败'))
} finally {
@@ -420,7 +420,7 @@ async function handleSave() {
await oauthApi.admin.upsertProviderConfig(selectedType.value, payload)
success('保存成功')
await loadAll()
} catch (err: any) {
} catch (err: unknown) {
showError(getErrorMessage(err, '保存失败'))
} finally {
saving.value = false
@@ -441,7 +441,7 @@ async function handleTest() {
}
lastTestResult.value = await oauthApi.admin.testProviderConfig(selectedType.value, testPayload)
success('测试完成')
} catch (err: any) {
} catch (err: unknown) {
showError(getErrorMessage(err, '测试失败'))
} finally {
testing.value = false