549a3ff14b
fix(admin): 账号管理用户名过长溢出
CI / check (pull_request) Failing after 1m48s
2026-08-06 17:10:06 +08:00
edb798b752
fix(admin): 钱包列表隐藏学号显示
CI / check (pull_request) Failing after 3m30s
2026-08-06 17:06:24 +08:00
bbeea440f9
fix(admin): dashboard 待办卡片点击导航去重与防抖
...
CI / check (pull_request) Failing after 3m19s
- 同一目标路径不再重复 navigate,避免历史记录堆叠
- 400ms 冷却期内忽略重复/幽灵点击,防止来回跳转
- 新增 shouldNavigateTodoCard 守卫单元测试
2026-08-06 16:11:13 +08:00
9048816abc
feat(ai): 移除 Excel 导入预检链路
...
- 删除 preflight_import 工具、预检卡、resolve 接口与 ui.import_preflight 事件
- 删除 imports.preflight 解析器与 PreflightReport 类型
- SYSTEM_PROMPT 改为上传 Excel 后直接确认列映射/策略并调用 start_import_wizard
- 前端同步移除预检类型/组件/测试,保留导入向导
2026-08-06 15:50:38 +08:00
14db28afc6
fix(ai): 修复 Nest DI 启动失败
...
- A2uiSubmissionsService/DataSource/BusinessContextService 等构造参数
由 import type 改为值导入,确保 Nest 能解析依赖
- 验证:dev 模式后端正常启动,相关 243 个测试通过
2026-08-06 15:39:33 +08:00
c72ff2cb8a
fix(ai): 清理 aislop 扫描告警
...
- 拆分 SSE reducer 到 sseReducer.ts,provider.ts 降至 220 行
- artifact 合并工具抽到 uiArtifacts.ts,去除双重类型断言
- 业务上下文注册表改用 field/relation/entity 构建器收敛重复
- aislop 分数 71 → 81(Healthy),AI Slop 0 告警
2026-08-06 15:35:12 +08:00
24e0ecbdaf
feat(ai): 业务上下文感知与 A2UI 链路统一
...
- 新增代码内业务上下文元数据层(实体字典 + 三大闭环工作流)
- 新增 get_business_context / get_entity_schema / get_pending_tasks 运行时工具
- SYSTEM_PROMPT 与技能目录改为先查业务流程/待办再执行
- A2UI 增加 ai_a2ui_submissions 幂等表、表单过期、ui.artifact 事件
- 提交回灌携带 submissionId / fieldErrors / 下一步建议
- 前端 uiArtifacts 归一化与过期表单禁用
2026-08-06 15:23:23 +08:00
d9c541dacc
fix(admin): 跨标签页权限写入不再整页刷新
...
storage 事件里 permissions 变更改为原地写入权限 store,
仅 gongxue-auth token 实际变化(登录/退出/切换账号)才 reload,
避免多标签页相互触发刷新风暴
2026-08-06 14:53:22 +08:00
ae88372ef8
fix(imports): 修复 AI 导入向导多工作表与表头误判
...
- AI resolve 生成向导时按阶段携带全部 sheetNames,不再只取第一张表
- ImportStageRequest 支持 sheets 数组并兼容旧 sheet;手动重传同步修复
- headerMatches 收窄为单向包含,避免宿舍号被原/新宿舍号反向匹配
- suggestStep 增加入住/换宿显式表头信号,修复入住表误判为换宿
- 预检与预览按工作表逐表解析列映射,兼容异构表头
- 修复预检卡生成向导成功后按钮未复位 loading 的问题
- 补充 mapping/预检/run/ai-chat 多工作表测试
2026-08-06 14:46:33 +08:00
259271f56c
fix(admin): Alert message 弃用 API 全部迁移为 title
2026-08-06 12:20:24 +08:00
824c33a71c
refactor(ai-chat): 拆分超大文件并通过 aislop 100 分门槛
...
- AiChatService 拆出抽象基类,职责不变
- submissions 按提交内容/评审确认/运行时/流程拆为 4 个模块并保持导出兼容
- 导入工具执行器抽取共享 runner,消除重复签名块
- 全仓 aislop 扫描 100/100,0 警告
2026-08-06 12:13:37 +08:00
7f09d5271e
feat(imports): 导入向导兼容旧版工作簿并完善执行/预览
...
- 新增 xls 工作簿回退解析与测试
- 执行/预览/权限校验逻辑完善
2026-08-06 11:59:51 +08:00
7f3e30ba38
fix(archive): 档案聚合接口 null 字段归一化为空串
...
避免可选列缺省返回 null 导致前端响应校验报「字段格式异常」
2026-08-06 11:59:43 +08:00
d0ab8da01b
feat(admin): AI 预检卡片交互与消息组件完善
...
- 预检卡支持列映射、导入策略确认与生成导入向导
- 消息组件/API 契约配套更新,含集成测试
2026-08-06 11:59:36 +08:00
6a18fd264d
feat(ai-chat): AI 导入确认流程完善并清理代码质量
...
- 新增导入确认/映射解析辅助,支持预检后生成导入向导
- 抽取 parseAttachmentArgs/beginImportToolRun 等重复逻辑
- 双重类型断言改为运行时守卫,消除 aislop 告警
2026-08-06 11:59:28 +08:00
026a9f35d8
fix(admin): 迁移 antd v6 弃用 API 并清理控制台警告
...
- Card bordered -> variant;Modal maskClosable -> mask.closable
- InputNumber addonBefore/After -> prefix/suffix;Statistic valueStyle -> styles.content
- Alert message -> title;Steps items.description -> items.content
- 移除考勤页未挂载 Form 上的 setFieldsValue,消除 useForm 警告
2026-08-06 11:58:58 +08:00
2e7bb81ebd
fix(admin): 修正接口 schema 与路由不匹配
...
- classroomSchema 允许 building/status 为 null,教室查看页恢复数据
- 排期 matrix 单元格为对象而非数组,教室排期页恢复渲染
- 押金批量收取改用 /deposits/eligible-students 路由
- 学生下拉 schema 按 /deposits/student-lookups 实际结构校验
- 水电费录入改走 /expenses/student-utility,批量恢复改为 PUT
2026-08-06 11:58:19 +08:00
67e14e357c
fix(imports): 导入向导 sheets_json 扩容为 MEDIUMTEXT
...
start_import_wizard 存整表行数据,TEXT(64KB) 在 430 行文件上触发
Data too long for column 'sheets_json',扩容至 MEDIUMTEXT(16MB) 并补迁移
(实际表名 import_runs,原迁移误写 import_run 导致空跑)
2026-08-05 22:26:14 +08:00
6249fefc64
refactor(ai-chat): 移除 excel_analyze/office_analyze 工具与 OfficeKit 依赖
...
- 删除 excel_analyze/office_analyze 两个 A2UI 工具(schema、分发、执行器、测试)
- 附件分析改为依赖上传时自动提取的文本与 preflight_import 报告 errorSamples
- 移除 @officecli/officecli 依赖及 OfficeCliService(PPT 上传不再自动提取文本)
- 保留 AiExcelReaderService(附件文本提取与导入预检仍使用)
2026-08-05 22:26:05 +08:00
d1c933f032
refactor(server): 清理无用导入与类型转换
...
- 移除测试/控制器中未使用的导入与实例
- bills/classroom-rentals 改用 ESM 导入替代 require
- bills.service 去掉多余断言、backfill 显式转字符串、main.ts void bootstrap
2026-08-05 21:14:17 +08:00
1a1e90c72f
fix(admin): 补全 React hooks 依赖并修复页面稳定性
...
- 各页面 useCallback/useMemo 依赖补全(modal/mutation/setter 等),避免闭包过期
- ECharts 使用 optionRef、MainLayout 缓存菜单转换函数、main.tsx 增加挂载点校验
- 学生同步结果改用 recordsCount 展示
2026-08-05 21:14:08 +08:00
ab4765cee5
feat: Excel 导入预检与动态问答,AI 聊天/文件解析体验修复
...
- imports: 新增 preflight_import 预检报告(判定/分阶段统计/阻断归因/问题/下一步/错误示例),导入任务 settings 落库(映射/校区/更新/重复/未匹配策略),预览应用策略,向导提交写操作日志
- ai-chat: 新增 excel_analyze(ExcelJS)工具,移除附件/上下文截断,start_import_wizard 支持确认参数,ui.import_preflight SSE,预览确认写操作日志
- admin: ImportPreflightCard 渲染与持久化,聊天抽屉布局/侧边栏修复,考勤页 CSS 引入,费用/学生页接口 schema 校验修复
2026-08-05 21:12:50 +08:00
b882411f42
refactor: 拆分考勤服务文件并通过 aislop 全项目扫描
CI / check (pull_request) Failing after 5m24s
2026-08-05 18:55:36 +08:00
6ba7f4e3d0
refactor: 抽取课程考勤记录构建 helper,消除重复代码
2026-08-05 18:51:06 +08:00
c8316e9e8e
feat: 结算时同步钉钉已审批请假并标记为请假
2026-08-05 18:43:02 +08:00
32343b271b
fix: 通知 SSE 长连接被 Nginx 60s 超时掐断
2026-08-05 18:00:45 +08:00
2a519a3714
fix: 仪表盘 totalCapacity 聚合值转为数字
2026-08-05 17:53:44 +08:00
1e1e24f0f0
fix: 修复考勤控制器 DI 解析与班级日期迁移空 SQL
2026-08-05 17:46:11 +08:00
47720a8fcc
refactor: 移除 SQLite 支持,仅保留 MySQL
2026-08-05 17:43:13 +08:00
81e622fa09
feat: 学生报告改为流式排版并隐藏空数据区块
2026-08-05 17:20:57 +08:00
fd39e1686a
feat: 重构各业务模块管理页面与服务
2026-08-05 17:12:00 +08:00
80e6fccf05
chore: 服务端模块装配与入口更新
2026-08-05 17:11:43 +08:00
0c94ca54df
feat: 新增通用导入中心
2026-08-05 17:11:39 +08:00
e9c8a1085d
feat: 考勤模块重构与钉钉考勤同步
2026-08-05 17:11:23 +08:00
c622e40a12
feat: 学生档案与报告生成
2026-08-05 17:11:15 +08:00
0e6e3e2d96
feat: AI 对话支持 A2UI 表单/审查/图表与 Agent 工具
2026-08-05 17:11:00 +08:00
644c35ce53
feat: 完善 RBAC 权限体系与权限管理页面
2026-08-05 17:10:51 +08:00
68270e7571
refactor: 拆分数据库迁移基建并新增审计日志工具
2026-08-05 17:10:42 +08:00
d53bbd8176
refactor: 前端应用骨架迁移至 zustand 并统一路由权限壳
2026-08-05 17:10:30 +08:00
a9ce5563b1
chore: 升级依赖与工程配置
2026-08-05 17:10:14 +08:00
3a1ed717d8
feat: 扩展 Agent 业务查询与学生增改工具
2026-08-04 14:43:20 +08:00
216a20ffaf
feat: 钉钉学生同步支持仅绑定手机号及学生列表修复
2026-08-04 14:43:20 +08:00
50c44e4410
feat: AI 对话支持 A2UI 表单/审查/图表与 Excel 读取
2026-08-04 14:43:12 +08:00
f07ffdc64c
refactor: 前端登录/权限/界面状态迁移至 zustand
2026-08-04 14:41:27 +08:00
ce1dcc07ea
chore: 新增 zustand、@ant-design/x-card 与 officecli 依赖
2026-08-04 14:41:14 +08:00
095eccea76
feat: 支持考试批量归档与恢复
CI / check (pull_request) Successful in 2m4s
2026-07-25 09:45:58 +08:00
0ef86e65ce
feat: 为批量归档补充批量恢复
2026-07-25 09:34:03 +08:00
4d77848bf7
Remove name field from ClassTeacher and derive teacher name from user
...
CI / check (pull_request) Successful in 3m29s
lookup
2026-07-24 17:36:35 +08:00
c1bb05502e
修复班级教师姓名显示
CI / check (pull_request) Successful in 2m26s
2026-07-24 17:19:18 +08:00
1f198d48ea
Merge pull request 'Refactor AI chat: streaming, tool calls, UI polish' ( #51 ) from refactor-ai-chat-streaming into main
2026-07-24 08:28:10 +00:00