pipeline
3cf1d04e36
fix: workspace popup - use HBox+buildWidget pattern like task btn
2026-08-12 14:07:22 +08:00
pipeline
16a51e2c83
fix: workspace popup render - use resizebox instead of content_w
2026-08-12 14:03:15 +08:00
ymq
8908112a65
feat: Tree+dataurl workspace (RAG pattern); shortcut files
2026-08-12 12:40:05 +08:00
ymq
fa9fc76bef
fix: replace Tree widget with VScrollPanel dir listing
2026-08-12 12:37:49 +08:00
ymq
c8e597764d
feat: workspace browser with tree+file list+Wterm editor
2026-08-12 10:47:58 +08:00
ymq
6b7487d736
feat: switch cockpit UI to v2 agent endpoint
2026-08-11 13:36:58 +08:00
ymq
9bef8e131a
fix: AgentIO as main chat area with url+model_dataurl+model_cwidth+placeholder
2026-08-08 23:27:39 +08:00
ymq
b4c9e5dd4c
agent_input.js → bricks, AgentIO uses AgentInput internally, index.ui clean AgentIO
2026-08-08 23:23:10 +08:00
ymq
6426e1aa65
fix: AgentInput inputed bind — stream NDJSON via body.getReader() instead of r.json()
2026-08-08 23:18:51 +08:00
ymq
e3148bde6f
clean: AgentIO native, no hooks, no patches
2026-08-08 23:14:40 +08:00
ymq
81a6126896
fix: monkey-patch handle_chunk to split on 0x0a — no AgentIO changes
2026-08-08 23:11:06 +08:00
ymq
f4c3ee0d56
fix: clean AgentIO inputed bind, no project_form hook
2026-08-08 23:05:19 +08:00
ymq
acc84707e3
fix: index.ui AgentInput→AgentIO + url + hook in project_form.changed
2026-08-08 22:56:38 +08:00
dbaf2f7b28
refactor: context_bar改为UiCode项目选择器+任务按钮
2026-08-07 17:57:02 +08:00
78e9d6a903
fix: 用Html+script替代失效的datawidget,页面加载时fetch context更新按钮
2026-08-07 17:47:49 +08:00
ba454f84cc
fix: context_bar添加render事件,页面加载时fetch context更新按钮标签
2026-08-07 17:46:16 +08:00
64ba5daf92
fix: 先fetch context再判断,避免datawidget返回null
2026-08-07 17:24:45 +08:00
c812e827ea
fix: 移除无效的 new bricks.urlwidget,只用 fetch 渲染任务列表
2026-08-07 17:18:26 +08:00
bcd160d38e
feat: 当前项目弹窗显示任务列表,点击任务查看详情
2026-08-07 17:11:36 +08:00
ca26bde685
fix: 当前项目按钮始终显示选择器,去掉详情弹窗
2026-08-07 17:04:26 +08:00
7841c3b26c
fix: Button用 text_w.set_text 而非 set_text
2026-08-07 16:55:16 +08:00
6efd5d007a
fix: setText -> set_text (Bricks snake_case API)
2026-08-07 16:51:11 +08:00
073140d8de
fix: fetch回调直接更新按钮标签+setValue,替代无效的datawidget.render()
2026-08-07 16:47:05 +08:00
c07ba94552
fix: 补漏 iteration 按钮的 popup-window -> pw.content_w
2026-08-07 15:47:48 +08:00
c2c9374c1d
fix: document.querySelector('.popup-window') -> pw.content_w.dom_element.querySelector('select')
2026-08-07 15:47:34 +08:00
0f39febf94
fix: 删掉确定按钮,下拉选择后自动提交
2026-08-07 15:44:09 +08:00
4ee00bf9cc
fix: 按钮触发form.submit(),Form bind用urlwidget提交
2026-08-07 15:40:35 +08:00
e1ac09542a
fix: Form submit + urlwidget 替代确定按钮,context_update 返回 widget 自关闭弹窗
2026-08-07 15:26:55 +08:00
82f9fb6764
fix: 当前项目/迭代按钮改为选择器弹窗,无选中时显示列表供选择
...
- 当前项目按钮:无项目时弹出选择器,有项目时显示详情
- 当前迭代按钮:无迭代时弹出选择器(按项目过滤),有迭代时显示详情
- 新增 cockpit_project_picker.dspy:返回项目列表
- 新增 cockpit_iteration_picker.dspy:返回迭代列表(支持project_id过滤)
- 新增 cockpit_context_update.dspy:保存选择到 pipeline_agent_settings
2026-08-07 15:06:17 +08:00
3f91752d06
fix: bricks.showError -> bricks.show_error (snake_case API)
...
bricks.js only exposes show_error(), not showError().
Affected: index.ui / index_cockpit.ui — project & iteration
detail popup guards that show error when no context selected.
2026-08-07 13:47:20 +08:00
32bb085b6e
fix: FormData用file_names字符串数组传文件路径(避免Blob类型报错)+加catch兜底
2026-08-07 13:31:30 +08:00
ba2d7eca11
fix: fetch改用FormData(multipart)——ahserver自动保存文件到params_kw
2026-08-06 18:50:15 +08:00
523adc5303
fix: AgentInput提交数据修复——model_id容错、file_paths序列化、iteration_id/project_id从context读取
2026-08-06 16:04:51 +08:00
0a6baa0d52
feat: AgentInput控件 — TextFiles+UiCode模型选择一体化
...
- 新增 agent_input.js: bricks.AgentInput extends VBox
- 内部结构: UiFile + DynamicColumn + UiText + [add_btn | model_selector(UiCode) | filler | submit_btn]
- options: model_dataurl(模型列表API), model_cwidth, placeholder
- event inputed: {prompt, add_files, model_id}
- 自动注册 bricks.Factory.register('AgentInput', ...)
- index.ui/index_cockpit.ui: chat_input 改用 widgettype=AgentInput
- 利用 bricks 的 jsfiles() 机制自动加载 agent_input.js
2026-08-06 13:43:11 +08:00
d2542f1768
refactor: AgentInput复合控件 — TextFiles + UiCode模型选择整合
...
- 新建 agent_input VBox: 内嵌模型选择行(HBox) + TextFiles输入区,统一为一个输入控件
- 顶部移除 model_selector,底部模型选择作为 UiCode 嵌在输入框内
- index.ui & index_cockpit.ui 同步更新
2026-08-05 19:42:02 +08:00
0aad9561b0
refactor: 模型选择器移到输入区上方 — 去顶部model_selector
...
- index_cockpit.ui & index.ui: 移除顶部 HBox 中的 model_selector Form + 模型配置 Button
- 在 TextFiles 输入区上方新增模型选择行:🤖 下拉 + 模型配置按钮
- chat_input 脚本改为从 input_model_selector 读取 model_id (getValue)
- 修复脚本中 Unicode 转义损坏
2026-08-05 19:20:05 +08:00
4e374117e9
fix: context_bar弹窗改为inline展示data(不依赖外部页面)
2026-08-05 18:19:08 +08:00
8d158dcc86
feat: cockpit_context端点 + UI context_bar动态化
...
- 新增 cockpit_context.dspy API(读 pipeline_agent_settings,返回项目/迭代/workspace)
- index_cockpit.ui & index.ui context_bar:
- 静态'当前项目/迭代:--' → Button(link样式)+datawidget自动加载
- 点击项目/迭代弹出 PopupWindow 查看详情
2026-08-05 18:10:56 +08:00
fff34b04b3
fix: whiteSpace pre-wrap for agent messages, content preview in deliverables
2026-08-02 23:37:14 +08:00
40afce18e7
fix: remove duplicate stats_row, keep only quick_cards
2026-08-02 17:01:20 +08:00
97e2c6b2f4
feat: Phase 1 — intent recognition, guided conversation, context bar
2026-08-01 23:36:29 +08:00
84df91d9eb
fix: model_id form reading fallback to select element
2026-08-01 21:57:04 +08:00
0d6266b088
fix: add model selector to root cockpit index.ui (was only in sd_cockpit)
2026-08-01 16:16:21 +08:00
c310754d57
fix: limit model config popup size (36x26 grid)
2026-08-01 11:33:07 +08:00
c0a31d60df
fix: change cockpit refresh button to model config popup in index.ui
2026-08-01 11:18:34 +08:00
72cd262cdb
feat(cockpit): product-grade LLM integration with context + model mgmt
...
Backend:
- cockpit_chat.dspy: real LLM calls via llm table config, Hermes-style
context (system prompt + project/iteration + history), auto model
selection (multimodal if files, text otherwise)
- cockpit_model_options.dspy: returns active models with capabilities
- llm table: added capabilities column (text/vision/multimodal)
Frontend:
- inputed script: no page reload, updates agent bubble with LLM reply
- stats_row refreshed on success, error shown in bubble
DB:
- sd_agent_settings table for per-user agent preferences
2026-07-31 18:06:27 +08:00
d7bace21db
fix: setText -> set_text (bricks API is snake_case)
2026-07-31 17:14:33 +08:00
ef37e492c9
fix(cockpit): AgentIO-style UX — show user+agent bubbles immediately before POST
...
Follow bricks/agent.js AgentIO pattern:
- On inputed: instant user bubble + '正在分析需求...' agent placeholder in chat_scroll
- POST to cockpit_chat.dspy
- On success: reload to show complete conversation
- On error: show error text in the placeholder bubble
Previously crashed on VScrollPanel.render() — VScrollPanel has no render method.
Now uses add_widget() to append message bubbles dynamically, matching AgentIO.
2026-07-31 16:59:38 +08:00
b2314fd3b2
fix: add bricks.app as second arg to getWidgetById calls in cockpit scripts
...
The new bricks.js getWidgetById (line 2680) no longer has a default from_widget fallback.
When called without a second argument, from_widget is undefined and get_by_id crashes at
line 2691: Cannot read properties of undefined (reading 'dom_element').
Fixed both in refresh button click handler and TextFiles inputed handler.
2026-07-31 16:14:19 +08:00
163824870b
fix: wrap getWidgetById in try-catch for missing current_iteration_id widget
2026-07-31 15:47:51 +08:00