chengkai3
|
18ed6ede30
|
[fix]:[FL-216][ATP模型管理: 去掉版本概念,上传文件直接展示]
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-28 20:22:27 +08:00 |
|
chengkai3
|
08ba3e19d3
|
[fix]:[FL-215][ATP模型管理去掉版本概念:上传文件直接用于展示]
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-28 18:47:35 +08:00 |
|
chengkai3
|
cc988abdac
|
feat:[FL-212][任务监控页面支持查看执行日志]
- 后端添加任务日志存储和查询API
- 新增 /api/v1/admin/task-logs 端点支持上传、获取和列出任务日志
- 日志存储到MinIO,路径格式: logs/YYYY/MM/DD/{task_id}.log
- 新增 task_log_service 处理MinIO存储交互
- 新增 task_log schema 定义API请求响应格式
- 前端任务监控页面添加查看日志功能
- 在任务表格和卡片视图中添加"查看日志"按钮
- 点击按钮打开模态框显示任务执行日志
- 支持桌面端表格和移动端卡片两种视图
- 新增单元测试验证日志路径生成和错误处理
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-28 15:31:05 +08:00 |
|
chengkai3
|
5f0b4b0256
|
[fix]:[FL-205][模型删除时同步删除存储文件]
- 更新 delete_asset 函数,在删除数据库记录前先删除物理文件
- 遍历模型的所有 release,逐个删除其存储路径下的文件
- 使用 try-except 确保文件删除失败不会阻塞数据库清理
- 新增测试用例 test_delete_asset_removes_storage_files 验证文件删除功能
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-28 11:15:06 +08:00 |
|
chengkai3
|
a9fabc380d
|
[fix]:[FL-205][移除资产代码层级并添加路径冲突校验]
- 从存储路径中移除 asset_code 层级
- 修改路径结构:/atp-library/{voltage_level}/{tower_type}/r{release_no}
- 新增 _check_storage_path_conflict 函数,检测路径冲突
- 在 create_release 和 create_release_from_archive 中添加冲突校验
- 当检测到路径已被其他模型占用时,返回 409 错误并提示详细信息
- 新增测试用例验证冲突检测功能
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-28 11:02:33 +08:00 |
|
chengkai3
|
b82e005b7c
|
[feat]:[FL-205][ATP模型文件存储改造]
- 移除 releases 层级
- 新增 voltage_level(电压等级)和 tower_type(塔型)作为目录层级
- 修改存储路径结构:/atp-library/{voltage_level}/{tower_type}/{asset_code}/r{release_no}
- 更新相关测试用例
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-28 10:27:52 +08:00 |
|
chengkai3
|
b8f61a72aa
|
[feat]:[FL-194][删除AtpModel系统,保留AtpAsset]
- 删除AtpModel、AtpModelVersion、AtpSimulationRun模型及相关代码
- 删除/api/v1/atp/models API端点
- 将engine status功能迁移到atp_asset_service
- 更新路由和模型注册,移除atp_model引用
- 删除相关测试文件
- 更新fl_analysis_service使用atp_asset_service的_truncate_output
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-27 10:14:27 +08:00 |
|
chengkai3
|
5bf92a9ded
|
feat:[FL-184][AI问答改成流式响应]
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-24 13:48:33 +08:00 |
|
chengkai3
|
6a653a4960
|
fix:[FL-220][菜单禁用访问控制]
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-20 18:40:29 +08:00 |
|
chengkai3
|
899d5316cf
|
feat:[FL-211][高程管理扁平化为文件记录]
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-20 18:03:27 +08:00 |
|
chengkai3
|
fac00c0536
|
fix:[FL-218][角色管理列表接口返回 500]
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-20 16:13:47 +08:00 |
|
chengkai3
|
7022d7f266
|
[fix]:[FL-213][修复高程文件记录服务导入失败]
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-20 14:34:38 +08:00 |
|
chengkai3
|
09835543a2
|
[feat]:[FL-159][杆塔模型管理页面一致性优化]
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-20 08:38:07 +08:00 |
|
chengkai3
|
b2dd07d8e8
|
feat:[FL-158][ATP模型管理页面一致性优化]
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-20 08:04:37 +08:00 |
|
chengkai3
|
a9a2d32fd5
|
[feat]:[FL-154][系统消息页面一致性优化]
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-20 07:00:47 +08:00 |
|
chengkai3
|
012b62fab9
|
[feat]:[FL-153][系统参数管理页面一致性优化]
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-20 06:50:53 +08:00 |
|
chengkai3
|
4834a567a8
|
[feat]:[FL-120][角色管理页面对齐用户管理分页交互]
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-19 23:26:20 +08:00 |
|
chengkai3
|
23db30d0f0
|
fix: [FL-199][拆分用户创建错误消息以明确失败原因]
将模糊的 409 错误消息 "User id/email/username already exists or default role missing"
拆分为三种具体的异常类型:
1. UserDuplicateError (409) - 用户ID/邮箱/用户名已存在
2. UserRoleAssignmentError (500) - 默认角色未配置或角色分配失败
3. UserCreateError (500) - 其他用户创建失败
改动内容:
- 在 user_service.py 中定义三个异常类
- 将 create_user 返回类型从 UserPublic | None 改为 UserPublic(抛出异常)
- 在 API 层捕获具体异常并返回对应的 HTTP 状态码和明确错误消息
- 更新和新增测试以验证错误消息准确性
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-18 13:13:51 +08:00 |
|
chengkai3
|
f3e5640290
|
fix:[FL-193][用户管理 - email 字段 NOT NULL 约束冲突]
修复 users.email 字段 NOT NULL 约束与前端可选表单不一致的问题。
## 改动内容
1. 添加数据库兼容性检查函数 `_ensure_user_email_nullable()`
- 检测 users.email 字段是否有 NOT NULL 约束
- 如果存在约束则自动移除,使字段变为可选
- 仅对 PostgreSQL 数据库生效
2. 在 `init_db()` 中调用该函数
- 确保应用启动时自动应用迁移
- 与现有兼容性检查函数保持一致的模式
3. 添加单元测试 `test_user_email_optional.py`
- 验证可以创建不带 email 的用户
- 验证可以创建带 email 的用户
- 验证直接使用 User 模型创建用户时 email 可为 None
## 修复方案
采用 Issue 中推荐的方案 1(数据库层面修复):
- 将 email 字段改为可选,与前端表单语义保持一致
- 用户可以选择不填写邮箱
- email 字段保持 UNIQUE 约束,但允许 NULL 值
## 相关文件
- api/app/core/database.py:523-546 - 新增兼容性检查函数
- api/app/core/database.py:586 - 在 init_db() 中调用
- api/tests/test_user_email_optional.py - 新增单元测试
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-18 11:34:22 +08:00 |
|
chengkai3
|
3cc35c0336
|
feat: [FL-184] 添加调试模式配置以返回异常堆栈跟踪
- 在配置文件中添加 debug_mode 参数,默认值为 true
- 创建全局异常处理器,当 debug_mode 开启时返回 stacktrace 信息
- 在 .env.example 中添加 DEBUG_MODE 配置项说明
- 新增测试文件验证调试模式功能
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-18 08:39:21 +08:00 |
|
chengkai3
|
3899a2345e
|
[fix]:[FL-145][系统消息要支持删除]
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-16 17:44:11 +08:00 |
|
chengkai3
|
946312cb6e
|
fix:[FL-143][处理消息查看报错]
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-16 17:03:18 +08:00 |
|
chengkai3
|
9ba1cc4388
|
[feat]:[FL-118][增加密码错误5次禁止登录半小时功能]
- 在User模型添加failed_login_attempts和failed_login_locked_until字段
- 在database.py添加字段迁移兼容性函数_ensure_user_login_lockout_column_compatibility
- 修改auth_service.py的login_user函数实现登录锁定逻辑:
* 检查账户是否处于锁定状态
* 密码错误时递增失败计数
* 失败5次后锁定账户30分钟
* 登录成功后重置失败计数和锁定状态
- 添加单元测试test_login_lockout.py验证功能
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-14 01:07:26 +08:00 |
|
chengkai3
|
4328d9fd34
|
[fix/feat]:[FL-82][ATP模型管理改造]
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-11 23:45:57 +08:00 |
|
chengkai3
|
fac37ddb8d
|
[fix/feat]:[FL-81][ATP模型管理改造为资产发布制]
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-11 22:39:48 +08:00 |
|
chengkai3
|
61a1954034
|
[feat]:[FL-80][高程数据导入异步并支持进度回看]
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-10 15:38:10 +08:00 |
|
chengkai3
|
3a8027803c
|
[fix/feat]:[FL-77][修复杆塔高程回填任务 actor_user_id 传递]
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-10 08:31:11 +08:00 |
|
chengkai3
|
2a54857fe1
|
[fix/feat]:[FL-76][高程数据导入报错]
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-10 08:26:51 +08:00 |
|
chengkai3
|
2ad2405cd3
|
[fix/feat]:[FL-74][高程数据支持DEM地形瓦片预览和线路地形图]
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-10 00:26:09 +08:00 |
|
chengkai3
|
4ce57708b4
|
[fix]:[FL-70][删除线路时,塔杆要一起删除]
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-09 12:30:27 +08:00 |
|
chengkai3
|
d7f712e3c1
|
[feat]:[FL-69][接入 legacy ATP/EGM worker 适配链路]
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-09 12:28:02 +08:00 |
|
chengkai3
|
d36aeb8636
|
[feat]:[FL-65][新增定时任务管理页面]
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-09 12:00:59 +08:00 |
|
chengkai3
|
f26f7859cd
|
[feat]:[FL-62][补充系统日志审计覆盖范围]
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-09 11:31:00 +08:00 |
|
chengkai3
|
4e2b3dcdad
|
[fix]:[FL-57][统一计算任务到 Celery worker]
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-09 08:29:10 +08:00 |
|
chengkai3
|
2a10cc62d8
|
[fix]:[FL-55][ATP模型管理和线路管理菜单冲突]
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-09 00:11:58 +08:00 |
|
chengkai3
|
1adec62d6c
|
[feat]:[FL-51][ATP模型管理去掉版本管理]
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-08 23:44:18 +08:00 |
|
chengkai3
|
23980a3cf3
|
[fix]:[FL-48][it looks like wine32 is missing]
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-08 22:16:02 +08:00 |
|
chengkai3
|
5a41cd4d3d
|
[fix/feat]:[FL-42][清理题库 Markdown 导题 热搜遗留模块]
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-08 12:48:12 +08:00 |
|
chengkai3
|
a6bb67752c
|
[fix]:[FL-44][清理遗留聊天 / 模型注册模块]
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-08 12:35:24 +08:00 |
|
chengkai3
|
dd8dd9244d
|
[fix]:[FL-43][清理遗留需求协同待办日程JWT生成器模块]
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-08 12:32:11 +08:00 |
|
chengkai3
|
4d7f67f73a
|
[fix/feat]:[FL-39][移除 seed 启动自动调用,改为管理员手动接口触发]
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-08 09:08:01 +08:00 |
|
chengkai3
|
3451589401
|
[migrate]:[FL-37][补齐防雷报告图7雷区分布图输出]
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-08 05:15:45 +08:00 |
|
chengkai3
|
171a4a6089
|
[migrate]:[FL-35][杆塔多回路几何专用编辑器]
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-08 03:29:41 +08:00 |
|
chengkai3
|
f7c577932f
|
[migrate]:[FL-33][补齐防雷报告分级章节与图表输出]
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-08 01:32:56 +08:00 |
|
chengkai3
|
a9e2e587ae
|
[migrate]:[FL-30][加装避雷器复算与报告表14]
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-07 23:48:53 +08:00 |
|
chengkai3
|
0746e3ce28
|
[migrate]:[FL-31][add fl-analysis result export]
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-07 23:28:54 +08:00 |
|
chengkai3
|
cd0d605c5b
|
[migrate]:[FL-27][补齐杆塔专业参数编辑与导出字段]
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-07 21:42:05 +08:00 |
|
chengkai3
|
aebf152cd4
|
[migrate]:[FL-24][参数准备闭环与就绪校验]
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-07 20:37:53 +08:00 |
|
chengkai3
|
e21472bbd9
|
[migrate]:[FL-21][防雷分析普通/同跳计算接入ATP执行链路]
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-07 19:30:47 +08:00 |
|
chengkai3
|
923e4a8220
|
[migrate]:[FL-17][普通计算同跳计算工作流]
Co-authored-by: multica-agent <github@multica.ai>
|
2026-06-07 18:09:32 +08:00 |
|