ymq
|
3785622bac
|
feat: 项目角色模型配置 CRUD 界面(模型配置设置界面)
- sd_project_role_models CRUD(index.ui + get/add/update/delete dspy)
- 下拉选项:get_model_options(模型)/get_role_options(角色)/get_project_select_options(项目)
- load_path 注册权限路径 + models 表模型
|
2026-08-22 11:17:27 +08:00 |
|
ymq
|
87d1848e2d
|
feat: sd_projects 加 default_model + 新增 sd_project_role_models 表
|
2026-08-22 10:19:54 +08:00 |
|
ymq
|
683315af84
|
fix: sdlc-repo-standard 同步 git 源(改用 {项目名}_pc + 引用 project-directory-spec)
|
2026-08-21 23:36:02 +08:00 |
|
ymq
|
9f931347db
|
fix(office): univer-office 端口 9091→19091,避免与 pipeline worker 1 撞端口
|
2026-08-21 13:13:30 +08:00 |
|
ymq
|
42f3b7bf26
|
fix: 工作控件查看按钮弹窗——MdWidget 外包 VScrollPanel,长文档可滚动不截断
|
2026-08-20 21:45:11 +08:00 |
|
ymq
|
d7b0013009
|
fix(crud): json subtables url 从 stub 目录改为真实 tblname 目录
|
2026-08-20 15:55:24 +08:00 |
|
ymq
|
60b3870278
|
fix(task_tree): 阶段计数排除子任务,与阶段平铺口径一致
- 阶段列表 role_cnt 之前统计所有该role任务(含子任务),但阶段平铺只列 parent_id 为空的顶层任务
- 导致有子任务的角色(如 develop 挂在 design 名下)计数>0 但点开为空,前端显示'任务不存在'
- 修复:role_cnt 跳过有 parent_id 的子任务,与平铺逻辑(if parent: continue)口径一致
|
2026-08-20 15:43:25 +08:00 |
|
Pipeline Agent
|
482c2c2f22
|
feat(repo-standard): repos目录规范——项目过程仓库+应用仓库+模块仓库,阶段文档进项目过程仓库
|
2026-08-20 00:42:02 +08:00 |
|
ymq
|
af6c8769e3
|
feat(iteration): sd_iterations 加 seq_no 迭代序号字段
|
2026-08-19 17:06:37 +08:00 |
|
ymq
|
17b9f1f7f0
|
feat: 工作空间文件列表增加编辑按钮(复用原打开逻辑),查看按钮改为 txt/md 用 MdWidget 渲染、其他下载查看
|
2026-08-19 13:31:53 +08:00 |
|
ymq
|
e11822df91
|
feat(project-space): sdlc 项目创建设默认 pipeline_id=sdlc_general + 列表按空间过滤 + 模型加默认值
|
2026-08-19 11:38:28 +08:00 |
|
ymq
|
8beff51654
|
feat: PM项目推进铁律——默认自动推进(暂停才需指令),加 paused 项目状态 + pause/resume 工具 + PM暂停门控
|
2026-08-19 06:37:16 +08:00 |
|
ymq
|
c0cb3148a1
|
feat: PM任务分解与编排——父子关系(parent_id)+依赖串行(depends_on)+任务树分层
|
2026-08-19 05:53:28 +08:00 |
|
ymq
|
f022b304d6
|
fix: 任务树展开图标走 /imgs/ 404——图标复制到 wwwroot/imgs 并配 any 权限;未分配迭代 0 个时不显示
|
2026-08-18 18:09:48 +08:00 |
|
ymq
|
9da322c5c3
|
refactor: task_tree 阶段顺序改为从 SDL_ROLES 动态生成(next_role 链推导,自动排除 qc 门禁),不再写死 _phase_order
|
2026-08-18 17:47:08 +08:00 |
|
ymq
|
1403bced52
|
feat: /download 下载端点 download_project.dspy + RBAC 权限注册
|
2026-08-18 16:04:00 +08:00 |
|
ymq
|
4be75e1f6a
|
feat: task_tree/task_io 补充 qc_review 状态图标/颜色
|
2026-08-18 15:16:44 +08:00 |
|
ymq
|
270adbce47
|
feat: task_tree 任务树状结构(项目→迭代→阶段→任务,懒加载)
|
2026-08-18 13:53:55 +08:00 |
|
ymq
|
44b2de96f3
|
feat: task_io 终态任务不刷新(params.state 判断清除/设置 timer)+ 状态徽章显示
|
2026-08-18 13:46:15 +08:00 |
|
ymq
|
eba0f17767
|
feat: /task 任务树弹窗(task_tree/task_io dspy + widget 透传)
|
2026-08-18 11:57:01 +08:00 |
|
ymq
|
f024733781
|
feat(llm): set_agent_model保存个人选择+模型下拉返回selected标记
|
2026-08-17 13:31:05 +08:00 |
|
ymq
|
3f394a8188
|
fix(llm): 模型下拉严格本机构隔离
|
2026-08-17 13:22:26 +08:00 |
|
ymq
|
a467b6f6ed
|
feat(llm): cockpit模型下拉按org_id过滤
|
2026-08-17 12:18:34 +08:00 |
|
ymq
|
8f2f7a11da
|
feat(CRUD): feature/deliverable CRUD页面+appcodes下拉+统一dspy命名(修复URL不匹配bug)
|
2026-08-17 11:35:03 +08:00 |
|
ymq
|
ad29dfab49
|
docs: 全景映射文档更新现状——10个状态机概念全部固化
|
2026-08-17 11:03:56 +08:00 |
|
ymq
|
7ff03afbc5
|
feat: sd_features功能/需求表(models+appcodes) + SDLC概念→能力+skill全景映射文档
|
2026-08-17 07:10:29 +08:00 |
|
ymq
|
d8bfbd8ed4
|
revert: 移除skill_pack.dspy(安装技能能力应在pipeline-core通用内核)
|
2026-08-16 15:18:43 +08:00 |
|
ymq
|
1d90202c37
|
feat: skill_pack.dspy技能集选装API(机构管理员list/install/uninstall/installed)
|
2026-08-16 15:17:47 +08:00 |
|
ymq
|
88e8983109
|
fix: 角色判断改pipeline库+superuser,org_id查询改pipeline库
|
2026-08-15 20:37:08 +08:00 |
|
ymq
|
8bc02590fa
|
feat: 微信通道落地-系统级单条配置+验证码绑定(个人订阅号方案)
|
2026-08-15 20:35:47 +08:00 |
|
ymq
|
74142a8a05
|
feat: v2链路文件上传(cockpit_chat_v2.dspy接收file提取文本注入prompt)
|
2026-08-15 19:15:34 +08:00 |
|
ymq
|
849a761b76
|
refactor: 删除旧版cockpit界面(sd_cockpit/index.ui+cockpit_chat.dspy),统一到v2架构
|
2026-08-15 19:11:49 +08:00 |
|
ymq
|
5c8f8f695a
|
feat: 上传文件后端提取文本内容(docx/txt)作为中性上下文注入agent,结合prompt由agent决定动作
|
2026-08-15 18:55:13 +08:00 |
|
ymq
|
395ddd1deb
|
feat: 打通文件上传链路(前端FormData上传文件内容+后端接收保存到workspace/uploads+中性上下文注入agent)
|
2026-08-15 18:52:40 +08:00 |
|
ymq
|
4aab89f4dd
|
fix(workspace_files): file name halign left
|
2026-08-15 17:16:03 +08:00 |
|
ymq
|
69925d48ba
|
fix(workspace_files): right = VBox(100%x100%) + fixed-height droppable + filler VScrollPanel file list
|
2026-08-15 12:11:49 +08:00 |
|
ymq
|
327d3f39a4
|
fix(workspace_files): file list top-align and scrollable (drop filler/height)
|
2026-08-15 11:53:28 +08:00 |
|
ymq
|
319b72c735
|
feat: 微信通道配置界面(公众号配置表单+用户openid绑定)+cockpit入口按钮
|
2026-08-15 10:11:51 +08:00 |
|
ymq
|
4a9eb227df
|
feat: 微信通道(机构级公众号配置+用户openid绑定+回调框架)+修复mysql.ddl.sql的xls2ui双重引号bug
|
2026-08-15 10:09:57 +08:00 |
|
ymq
|
c29f676cb3
|
refactor: cockpit AgentIO适配gateway统一入口
|
2026-08-15 10:02:54 +08:00 |
|
ymq
|
d36d5ed4f6
|
feat: cockpit前端处理ask_user类型,把agent提问展示给用户
|
2026-08-15 08:19:03 +08:00 |
|
ymq
|
b601dc94c3
|
fix: workspace_tree 叶子判定排除 __pycache__(与扫描一致)
tests/detector 仅含 __pycache__ 子目录,之前 is_leaf 判定把它算作子目录导致误标非叶子。
修正:叶子判定排除隐藏目录和 __pycache__,与下方目录扫描规则一致。
|
2026-08-15 01:45:12 +08:00 |
|
ymq
|
d5fc14ae1c
|
fix: workspace_tree 叶子判定——无子目录的目录标 is_leaf=true
原把所有目录硬编码 is_leaf:false,导致无子目录的目录(叶子)也被当成可展开的非叶子。
改为扫描子目录判断 has_subdir,is_leaf = not has_subdir。
|
2026-08-15 01:40:08 +08:00 |
|
ymq
|
d5ce25e553
|
fix: cockpit v1 diagnose 心跳超时判定 10→20 分钟(对齐 LLM 重试最坏时长)
|
2026-08-15 00:46:31 +08:00 |
|
ymq
|
13b0aa5de5
|
feat: cockpit v1 diagnose_project 运行中任务返回 claimed_by+心跳陈旧度
|
2026-08-15 00:27:13 +08:00 |
|
ymq
|
f519f48dd5
|
fix: cockpit v1 answer_question 回答后恢复任务 waiting→submitted(清 claimed_by)
|
2026-08-15 00:11:48 +08:00 |
|
ymq
|
5e84ddbb07
|
fix: workspace_browse 补 import json + 去 pid 残留;workspace_popup 复用 get_workspace_dir
|
2026-08-14 18:09:51 +08:00 |
|
ymq
|
b9a458af53
|
refactor: 8 个 workspace dspy 内联重复逻辑收敛到 get_workspace_dir/get_workspace_base
|
2026-08-14 18:07:38 +08:00 |
|
p
|
f68755edf8
|
feat: cockpit 会话传 pipeline_id,支持产线缺省模型
|
2026-08-14 18:03:06 +08:00 |
|
ymq
|
ebcb89da56
|
refactor: workspace_base 从 appbase params 表读(去硬编码,params 表不存在时用默认值兜底)
|
2026-08-14 15:59:55 +08:00 |
|