-
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