348 Commits

Author SHA1 Message Date
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
ymq
af178f98ad fix: 机构远程空间配置表单取值/赋值 bug + get 支持 owner_type
根因:bricks.Form.getValue() 返回 FormData 对象(非普通对象),v.remote_host=undefined 传空值报格式非法;setValue 是 InlineForm 方法,Form 无此方法导致加载失败
- 取值 getValue→_getValue(返回 {name:value} 普通对象)
- 加载遍历 name_inputs 逐个 setValue
- work_env.dspy get 加 owner_type 参数,org 页面加载 org 级(原 user 级优先导致看不到 org 配置)
2026-08-14 15:15:24 +08:00
ymq
1fd895213c feat: 远程目录 UI 提示改为相对路径(从远程用户 home 目录开始) 2026-08-14 14:20:53 +08:00
ymq
ece913f186 fix: sandbox_run 审计 result 用 rc==0 判断(run 返回无 ok 键) 2026-08-14 13:39:26 +08:00
ymq
e33bd24227 fix: 补全审计接入点
- deploy_account: account_create/account_remove/sandbox_run 审计
- work_env: org_key_gen/remote_bwrap 审计
2026-08-14 13:37:53 +08:00
p
66e7181b39 fix: 远程空间配置页按钮改用 show_message/show_error 2026-08-14 13:37:28 +08:00
p
8f9ae04028 feat: 机构远程空间配置页(sd_org_remote)+ 权限注册 2026-08-14 13:33:07 +08:00
ymq
534591e5d5 refactor: 审计 API 迁移到 app_audit 模块
- 删除 wwwroot/api/audit.dspy(迁移到 app_audit)
- work_env.dspy 改 import app_audit.audit_service
- load_path.py 移除 audit.dspy 的 owner.audit 注册
2026-08-14 12:21:01 +08:00
ymq
4742a67d80 feat: load_path 注册 audit API(owner.audit) + work_env/deploy_account(logined) 2026-08-14 12:12:33 +08:00
ymq
359c57b156 feat: 审计 API(仅 owner.audit)+ work_env 写审计日志 2026-08-14 12:11:01 +08:00
ymq
9ab0db53ad feat: work_env 加 get_org_pubkey(admin 获取机构公钥配置远程免密) 2026-08-14 11:58:52 +08:00