fix: 全部TS错误修复(25->0) + 证书API 500修复 + i18n缺失key补全 + 类型定义修正

- 证书API 500修复: AssessmentCertificate实体注册到app.module.ts
- 前端TS错误25个清零: i18n key 17个, 类型定义8个
- i18n补全: 17个缺失key添加到zh/en/ja
- KnowledgeFile类型: 添加title, content字段
- importService: 改用apiClient.request替代raw fetch
- ModeSelector: 移除jsx prop
- questionBankService: .ok -> .status >= 400
- NotebookDetailView: .filter -> .items.filter
- ImportTasksDrawer: tasks.items提取
- API端点审计: 16/16通过
- 数据库Schema审计: 25表288列一致
- AGENTS.md更新
This commit is contained in:
Developer
2026-05-18 08:30:59 +08:00
parent 631e99c0e0
commit 0b0a060967
16 changed files with 310 additions and 390 deletions
+3 -2
View File
@@ -5,6 +5,7 @@ import {
Inject,
forwardRef,
ForbiddenException,
BadRequestException,
} from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm';
import { Repository, DeepPartial, In } from 'typeorm';
@@ -416,7 +417,7 @@ private async getModel(tenantId: string): Promise<ChatOpenAI> {
this.logger.log(`[startSession] activeKbId resolved to: ${activeKbId}`);
if (!activeKbId) {
this.logger.error(`[startSession] No knowledge source resolved`);
throw new Error('Knowledge source (ID or Template) must be provided.');
throw new BadRequestException('Knowledge source (ID or Template) must be provided.');
}
// Try to determine if it's a KB or Group and check permissions
@@ -539,7 +540,7 @@ private async getModel(tenantId: string): Promise<ChatOpenAI> {
this.logger.error(
`[startSession] Insufficient content length: ${content?.length || 0}`,
);
throw new Error(
throw new BadRequestException(
'Selected knowledge source has no sufficient content for evaluation.',
);
}