Commit Graph

  • f022b304d6 fix: 任务树展开图标走 /imgs/ 404——图标复制到 wwwroot/imgs 并配 any 权限;未分配迭代 0 个时不显示 ymq 2026-08-18 18:09:48 +08:00
  • 9da322c5c3 refactor: task_tree 阶段顺序改为从 SDL_ROLES 动态生成(next_role 链推导,自动排除 qc 门禁),不再写死 _phase_order ymq 2026-08-18 17:47:08 +08:00
  • 1403bced52 feat: /download 下载端点 download_project.dspy + RBAC 权限注册 ymq 2026-08-18 16:04:00 +08:00
  • 4be75e1f6a feat: task_tree/task_io 补充 qc_review 状态图标/颜色 ymq 2026-08-18 15:16:44 +08:00
  • 270adbce47 feat: task_tree 任务树状结构(项目→迭代→阶段→任务,懒加载) ymq 2026-08-18 13:53:55 +08:00
  • 44b2de96f3 feat: task_io 终态任务不刷新(params.state 判断清除/设置 timer)+ 状态徽章显示 ymq 2026-08-18 13:46:15 +08:00
  • eba0f17767 feat: /task 任务树弹窗(task_tree/task_io dspy + widget 透传) ymq 2026-08-18 11:57:01 +08:00
  • f024733781 feat(llm): set_agent_model保存个人选择+模型下拉返回selected标记 ymq 2026-08-17 13:31:05 +08:00
  • 3f394a8188 fix(llm): 模型下拉严格本机构隔离 ymq 2026-08-17 13:22:26 +08:00
  • a467b6f6ed feat(llm): cockpit模型下拉按org_id过滤 ymq 2026-08-17 12:18:34 +08:00
  • 8f2f7a11da feat(CRUD): feature/deliverable CRUD页面+appcodes下拉+统一dspy命名(修复URL不匹配bug) ymq 2026-08-17 11:35:03 +08:00
  • ad29dfab49 docs: 全景映射文档更新现状——10个状态机概念全部固化 ymq 2026-08-17 11:03:56 +08:00
  • 7ff03afbc5 feat: sd_features功能/需求表(models+appcodes) + SDLC概念→能力+skill全景映射文档 ymq 2026-08-17 07:10:29 +08:00
  • d8bfbd8ed4 revert: 移除skill_pack.dspy(安装技能能力应在pipeline-core通用内核) ymq 2026-08-16 15:18:43 +08:00
  • 1d90202c37 feat: skill_pack.dspy技能集选装API(机构管理员list/install/uninstall/installed) ymq 2026-08-16 15:17:47 +08:00
  • 88e8983109 fix: 角色判断改pipeline库+superuser,org_id查询改pipeline库 ymq 2026-08-15 20:37:08 +08:00
  • 8bc02590fa feat: 微信通道落地-系统级单条配置+验证码绑定(个人订阅号方案) ymq 2026-08-15 20:35:47 +08:00
  • 74142a8a05 feat: v2链路文件上传(cockpit_chat_v2.dspy接收file提取文本注入prompt) ymq 2026-08-15 19:15:34 +08:00
  • 849a761b76 refactor: 删除旧版cockpit界面(sd_cockpit/index.ui+cockpit_chat.dspy),统一到v2架构 ymq 2026-08-15 19:11:49 +08:00
  • 5c8f8f695a feat: 上传文件后端提取文本内容(docx/txt)作为中性上下文注入agent,结合prompt由agent决定动作 ymq 2026-08-15 18:55:13 +08:00
  • 395ddd1deb feat: 打通文件上传链路(前端FormData上传文件内容+后端接收保存到workspace/uploads+中性上下文注入agent) ymq 2026-08-15 18:52:40 +08:00
  • 4aab89f4dd fix(workspace_files): file name halign left ymq 2026-08-15 17:16:03 +08:00
  • 69925d48ba fix(workspace_files): right = VBox(100%x100%) + fixed-height droppable + filler VScrollPanel file list ymq 2026-08-15 12:11:49 +08:00
  • 327d3f39a4 fix(workspace_files): file list top-align and scrollable (drop filler/height) ymq 2026-08-15 11:53:28 +08:00
  • 319b72c735 feat: 微信通道配置界面(公众号配置表单+用户openid绑定)+cockpit入口按钮 ymq 2026-08-15 10:11:51 +08:00
  • 4a9eb227df feat: 微信通道(机构级公众号配置+用户openid绑定+回调框架)+修复mysql.ddl.sql的xls2ui双重引号bug ymq 2026-08-15 10:09:57 +08:00
  • c29f676cb3 refactor: cockpit AgentIO适配gateway统一入口 ymq 2026-08-15 10:02:54 +08:00
  • d36d5ed4f6 feat: cockpit前端处理ask_user类型,把agent提问展示给用户 ymq 2026-08-15 08:19:03 +08:00
  • b601dc94c3 fix: workspace_tree 叶子判定排除 __pycache__(与扫描一致) ymq 2026-08-15 01:45:12 +08:00
  • d5fc14ae1c fix: workspace_tree 叶子判定——无子目录的目录标 is_leaf=true ymq 2026-08-15 01:40:08 +08:00
  • d5ce25e553 fix: cockpit v1 diagnose 心跳超时判定 10→20 分钟(对齐 LLM 重试最坏时长) ymq 2026-08-15 00:46:31 +08:00
  • 13b0aa5de5 feat: cockpit v1 diagnose_project 运行中任务返回 claimed_by+心跳陈旧度 ymq 2026-08-15 00:27:13 +08:00
  • f519f48dd5 fix: cockpit v1 answer_question 回答后恢复任务 waiting→submitted(清 claimed_by) ymq 2026-08-15 00:11:48 +08:00
  • 5e84ddbb07 fix: workspace_browse 补 import json + 去 pid 残留;workspace_popup 复用 get_workspace_dir ymq 2026-08-14 18:09:51 +08:00
  • b9a458af53 refactor: 8 个 workspace dspy 内联重复逻辑收敛到 get_workspace_dir/get_workspace_base ymq 2026-08-14 18:07:38 +08:00
  • f68755edf8 feat: cockpit 会话传 pipeline_id,支持产线缺省模型 p 2026-08-14 18:03:06 +08:00
  • ebcb89da56 refactor: workspace_base 从 appbase params 表读(去硬编码,params 表不存在时用默认值兜底) ymq 2026-08-14 15:59:55 +08:00
  • af178f98ad fix: 机构远程空间配置表单取值/赋值 bug + get 支持 owner_type ymq 2026-08-14 15:15:24 +08:00
  • 1fd895213c feat: 远程目录 UI 提示改为相对路径(从远程用户 home 目录开始) ymq 2026-08-14 14:20:53 +08:00
  • ece913f186 fix: sandbox_run 审计 result 用 rc==0 判断(run 返回无 ok 键) ymq 2026-08-14 13:39:26 +08:00
  • e33bd24227 fix: 补全审计接入点 ymq 2026-08-14 13:37:53 +08:00
  • 66e7181b39 fix: 远程空间配置页按钮改用 show_message/show_error p 2026-08-14 13:37:28 +08:00
  • 8f9ae04028 feat: 机构远程空间配置页(sd_org_remote)+ 权限注册 p 2026-08-14 13:33:07 +08:00
  • 534591e5d5 refactor: 审计 API 迁移到 app_audit 模块 ymq 2026-08-14 12:21:01 +08:00
  • 4742a67d80 feat: load_path 注册 audit API(owner.audit) + work_env/deploy_account(logined) ymq 2026-08-14 12:12:33 +08:00
  • 359c57b156 feat: 审计 API(仅 owner.audit)+ work_env 写审计日志 ymq 2026-08-14 12:11:01 +08:00
  • 9ab0db53ad feat: work_env 加 get_org_pubkey(admin 获取机构公钥配置远程免密) ymq 2026-08-14 11:58:52 +08:00
  • a97512a760 security: org 级工作环境仅超管可设 + user 级强制设自己 ymq 2026-08-14 11:26:39 +08:00
  • 7350e04cf6 feat: 工作环境 API (get/set/ensure_remote_bwrap) + deploy_account run 支持远程模式 ymq 2026-08-14 11:12:59 +08:00
  • f3e81a69db security: Wterm(workspace_edit) bwrap沙箱化,防 rm -rf/sudo提权/越界/网络攻击 ymq 2026-08-13 18:33:31 +08:00
  • 803afa5cfe fix: cockpit_chat_v2 输出 content 流式格式(AgentIO→AgentOut 期望 content/reasoning_content/error,非 widget JSON) ymq 2026-08-13 18:19:33 +08:00
  • f6e919aa84 feat: 部署账号 API (ensure/list/remove/run/file读写) ymq 2026-08-13 17:57:13 +08:00
  • 9bc5e81574 fix: load_path find_app_root walk up to pipeline-app root p 2026-08-13 17:49:23 +08:00
  • addfdabc76 workspace: Wterm cursorBlink + PopupWindow resizable p 2026-08-13 17:19:08 +08:00
  • 9f4307b5d9 workspace: fix xterm cmdargs (asyncssh create_process single command) p 2026-08-13 17:00:42 +08:00
  • 67f318888d workspace: open use entire_url for xterm trigger p 2026-08-13 16:56:56 +08:00
  • e19f5c5a2e workspace: open dispatch (vi/office-pdf/media) + file serving + edit xterm p 2026-08-13 16:40:13 +08:00
  • c7d5e63491 workspace: use URLSearchParams for upload/delete p 2026-08-13 15:57:55 +08:00
  • 5f7ddc197a workspace: add upload/open/delete tools + drag-drop p 2026-08-13 15:56:21 +08:00
  • e0d095cb04 tree: fix __root__ expansion returns subdirs p 2026-08-13 14:26:56 +08:00
  • 751c953ad3 workspace: use ResourceBrowser widget p 2026-08-13 12:02:00 +08:00
  • 0805eb219b workspace: use remove+widgetBuild per row, monkey-patch dispatch p 2026-08-12 18:50:43 +08:00
  • c934111748 popup: VBox for files panel p 2026-08-12 18:49:19 +08:00
  • 6f6e31fcf0 workspace: monkey-patch Tree.dispatch for selected p 2026-08-12 18:48:11 +08:00
  • ef39d586bb tree: root only initially, click to expand p 2026-08-12 18:44:40 +08:00
  • 0a0260708a workspace: cache-busting fetch URLs p 2026-08-12 18:42:16 +08:00
  • 3349bb1b33 tree: nested children for initial load p 2026-08-12 18:39:46 +08:00
  • af7d7fc716 tree: lazy-load children only p 2026-08-12 18:37:51 +08:00
  • 1dfaa7a573 fix: getWidgetById with bricks.app scope, initial root load p 2026-08-12 18:35:33 +08:00
  • 7f29e5c157 fix: getWidgetById with popup scope, no PopupWindow binds p 2026-08-12 18:21:07 +08:00
  • 8a095c712c workspace: full tree dspy + urlwidget button + PopupWindow binds p 2026-08-12 18:09:49 +08:00
  • 9ec29726b2 workspace: use closure vars for tree+fp, no getWidgetById p 2026-08-12 18:01:44 +08:00
  • 7e3424ef37 workspace: button script builds everything, tree.bind directly p 2026-08-12 17:49:49 +08:00
  • 1856da5bca workspace: button script handles tree bind, popup no binds p 2026-08-12 17:31:32 +08:00
  • fdecd9ee1f workspace: bind on PopupWindow level, wid=ws_tree p 2026-08-12 17:30:37 +08:00
  • 888e1ff320 workspace: add debug logs to bind script p 2026-08-12 17:23:47 +08:00
  • ebf7757dd2 fix: use getWidgetById instead of this in tree script p 2026-08-12 17:00:04 +08:00
  • 61fb3f6485 fix: workspace_tree id=__root__ returns children p 2026-08-12 16:51:30 +08:00
  • 340dcf0fd0 workspace: tree lazy-load with id param p 2026-08-12 16:48:34 +08:00
  • f106d330a4 workspace: script fetch+widgetBuild for selected node p 2026-08-12 16:45:03 +08:00
  • 10e6407419 workspace: event_params [id] for urlwidget p 2026-08-12 15:48:34 +08:00
  • 3032f26e2d workspace: script action for tree selected p 2026-08-12 15:37:49 +08:00
  • f7c68c5d73 workspace: params_mapping id->id for tree urlwidget p 2026-08-12 15:20:39 +08:00
  • 4db8e3fafd workspace: root dir files initially, __root__ handling p 2026-08-12 15:18:47 +08:00
  • 222d3e2e75 workspace: tree dirs only, left 280px, right filler p 2026-08-12 15:17:06 +08:00
  • 5dcd8cea5a workspace: PopupWindow width 85% height 80% p 2026-08-12 15:14:57 +08:00
  • 6408406cd9 workspace: relative path ids, is_leaf, workspace_files uses ws_dir p 2026-08-12 15:13:25 +08:00
  • cb11d92b3e workspace: idField not valueField, cfontsize 1.0 p 2026-08-12 15:11:22 +08:00
  • 1c59c29b6a workspace: Tree cfontsize 1.0 p 2026-08-12 15:09:36 +08:00
  • 9b834ee4f9 workspace: Tree textField/valueField/parentField p 2026-08-12 15:08:34 +08:00
  • be93db3a62 workspace: HBox+Tree, entire_url, urlwidget action p 2026-08-12 15:02:40 +08:00
  • 5af747e004 workspace: standard subwidgets + auto_open p 2026-08-12 14:36:52 +08:00
  • b3b97632ac workspace: content in options instead of subwidgets p 2026-08-12 14:35:53 +08:00
  • 90af3f67a1 workspace: urlwidget action loading PopupWindow from DSPY p 2026-08-12 14:34:49 +08:00
  • 35261b8b84 workspace: popupwindow action with inline content p 2026-08-12 14:33:51 +08:00
  • f72d422551 workspace: urlwidget script loading popup from DSPY p 2026-08-12 14:32:14 +08:00
  • 4268d716d6 workspace: use popupwindow action + workspace_popup.dspy p 2026-08-12 14:29:53 +08:00
  • 43053e9545 fix: workspace script - proper JSON escaping for querySelector p 2026-08-12 14:26:56 +08:00
  • 3ad3997d05 fix: workspace - container into content_w, then move flexbox into resizebox p 2026-08-12 14:20:09 +08:00
  • 03ee716c10 fix: workspace - single container into content_w, subwidgets inside p 2026-08-12 14:19:27 +08:00