664 Commits

Author SHA1 Message Date
658e0bd748 Merge git.opencomputing.cn:yumoqing/bricks 2026-09-02 13:54:31 +08:00
f2bf42e7c7 feat(input): UiCheckBox 支持 multicheck 多选(opts.multicheck)——原属性存在但从未赋值 2026-09-02 13:54:23 +08:00
d3cff3e923 fix(AgentIO): 跟滚误关根治——_track_follow按scrollTop减小判用户上翻
旧实现按gap判follow:异步widget挂载使scroll事件滞后,程序滚底后gap瞬时>80
被误判为用户上翻→follow关→第二条消息后输出不再跟滚
2026-09-02 11:02:51 +08:00
4815e1e54d fix(AgentIO): 滚底根治——MutationObserver监听内容增长
widget描述符走widgetBuild().then()异步挂载,同步滚总在挂载前执行滚不到新内容;
MutationObserver在挂载落DOM后触发,同步/异步渲染全覆盖,后台tab也生效
2026-09-02 10:57:17 +08:00
26aad5712a fix(AgentIO): 滚底改同步——后台tab不触发rAF导致流式更新时不滚 2026-09-01 18:11:22 +08:00
89917d4328 feat(AgentIO): 会话区保持最后输出可见——超出显示范围自动滚到底
- chunk_response流式更新后scroll_to_bottom(rAF延迟到布局完成)
- show_input用户发消息强制滚底
- 用户上翻看历史暂停跟滚(_track_follow),滚回底部恢复——不强行打断阅读
2026-09-01 18:02:29 +08:00
6a94f10370 feat(AgentIO): 正文输入回车直接发送、Ctrl+回车换行——UiText新增opt-in的enter_sends选项(默认关,不影响其他表单),submit图标功能不变 2026-09-01 17:31:46 +08:00
a77200c5ae fix: Tree展开/收起同步三角图标状态; 模块JS注入统一加版本参数防缓存(20260831a) 2026-08-30 21:53:26 +08:00
pipeline-agent
2d145ddf8e chore: bricks版本号升20260830e,强制客户端刷新(get_by_id已是原版,零字节差异) 2026-08-30 20:41:11 +08:00
pipeline-agent
706c461e6b feat: Tree点击非叶子节点自动展开(懒加载友好); CodeEditor控件+CodeMirror5 2026-08-30 20:07:23 +08:00
pipeline-agent
735387555c feat: CodeEditor控件——CodeMirror5包装(行号/高亮/懒加载),3parties加codemirror5+python模式 2026-08-30 19:48:56 +08:00
pipeline-agent
1a4d664b5a revert: get_by_id改回原版分段查找——.是框架设计的控件路由分隔符,后缀兜底是错误修法;UI侧改用裸id 2026-08-30 13:55:35 +08:00
pipeline-agent
b7b85e063f fix: get_by_id层级id查找——精确匹配+后缀兜底+CSS.escape,修复urlwidget replace target静默miss(世界/场景/实体等创建导入点击无反应根因) 2026-08-30 13:04:07 +08:00
47b08371aa feat: MdWidget/MarkdownViewer外链新窗口打开(非同源链接不再被拦截成站内跳转) 2026-08-29 15:00:35 +08:00
9f05e56d93 chore: bricks.js 缓存版本号 20260825a→20260829a(label 兼容修复强制刷新) 2026-08-29 09:02:38 +08:00
093b849bf1 fix(Text): 兼容 label 写法——LLM 生成 .ui 常用 label,此前静默渲染空文本致界面空白 2026-08-29 09:01:52 +08:00
4cf2c1a57e feat(AgentInput): 模型下拉自动注入 session_id——多tab按会话解析项目模型,各产线UI无需逐个配置 2026-08-28 12:39:26 +08:00
5227a4d491 fix(AgentIO): 模型下拉尊重服务端 selected 标记,不再每次重建回退首项
- UiCode.build_options: 未显式指定 value 时,扫描数据项 selected:true 标记作为初始选中
  (此前每次重建控件都把用户已持久化的选择重置成列表第一项)
- AgentIO 透传 model_params 给 AgentInput(多 tab 会话按 session_id 解析项目模型)
2026-08-28 12:26:02 +08:00
406ed6f17a feat(scene3d): Scene3D 接入脚本引擎 + 按需注入 three.js + 自写环绕相机
- engine.js/inherit.js 以 UMD 双分支引入(node 测试照跑 + 浏览器拼进 bricks.js)
- Scene3D 新增本地逻辑引擎(独立世界):描述符 properties/events 喂 SceneRuntime,
  点击→tap 注入、每帧 step 推进、transform/visible 回填 three.js
- three.min.js 按需注入(非 3D 页面不背 608KB)
- 自写环绕相机:单指旋转/双指缩放/双指平移(three.js r148+ 移除 UMD OrbitControls)
- 新增 API:set_entity_transform / set_paused / reset_runtime
- 已验证:门铃示例(定时+条件+点击+moveTo+属性变化)、相机旋转全链路
2026-08-27 15:41:51 +08:00
d945e414d7 feat(scene3d): Scene3D widget — bricks3d 最小闭环(后端声明式场景描述符→three.js 本地渲染→entity_tapped 事件回传)
- scene3d.js: Scene3D widget(VBox 子类),支持 box/sphere/cylinder/model 实体
  内联 scene 或 scene_url 两种描述符来源;Raycaster 拾取→dispatch entity_tapped
  活动对象(scene/camera/renderer/mesh)只存实例私有字段,防 JSON.stringify 循环引用
  s3_dispose() 释放 WebGL 资源;set_entity_color/set_entity_visible 公共 API
- build.sh: scene3d.js 加入 SOURCES
- 3parties/three.min.js: r149 UMD 全局版(608KB,npmmirror 下载)
- examples/scene3d_demo.html: 演示页(4 实体场景 + scene_ready/entity_tapped binds)

验证(CDP 实测):场景就绪事件 点击拾取 entity_tapped→binds→状态栏更新
球点击变色 #f59e0b→#ef4444 全链路通过;干净重载 0 JS 异常
2026-08-27 11:31:10 +08:00
8a92b95990 fix(css): .scrollpanel 选择器缺逗号导致 VScrollPanel 无 width/height/overflow 样式(高度塌陷) 2026-08-25 15:05:21 +08:00
635bd76386 feat(header.tmpl): 应用级 js/css 与 bricks 主文件加 ?v=assets_ver() 缓存版本号(服务端未注册则退化为原行为) 2026-08-25 14:36:16 +08:00
7e0d5a1701 fix(bricks): on_parent 等事件 params 为 widget 对象时不再撞循环 JSON
- buildEventHandler: event.params 经 bricks.event_params_data 过滤,widget/DOM/Event 不当数据用
- apply_data: 改用 bricks.safe_json_stringify,循环引用时降级序列化而不抛异常
- bump bricks.js 缓存版本 20260825a
2026-08-25 13:56:20 +08:00
91b3212f31 chore: bump bricks.js 缓存版本号 20260820b(登录不刷新页面 login_source/refresh) 2026-08-20 14:44:09 +08:00
f2f9893bac fix(bricks): 非用户主动登录(401自动弹窗)成功后不刷新页面
- withLoginInfo 弹登录窗带 login_source=auto 标记被动登录
- Message 类读 refresh=false 设 _login_no_reload,跳过 dispatch user_logined
- 用户主动点击登录仍正常刷新
2026-08-20 14:41:18 +08:00
3c8eb4bb3d fix(tree): 展开箭头和节点图标加 flexShrink:0,防止长label挤压到0宽 2026-08-19 20:31:20 +08:00
2c0f01451b chore: bump bricks.js 缓存版本号 20260818a(AgentInput padding) 2026-08-18 18:46:16 +08:00
625b6441bf chore: bump bricks.js 缓存版本号 20260815g 2026-08-18 18:43:44 +08:00
e66837cb0d fix(tree): Tree 图标改为 /bricks/imgs/ 绝对路径,绕过 bricks.path 计算 bug(currentScriptPath 返回 / 导致图标 404) 2026-08-18 18:43:20 +08:00
4bdf040aaa fix(tree): 节点内容渲染从 schedule_once 异步改为同步,消除展开图标时序问题 2026-08-18 18:27:24 +08:00
c98a8b6eeb fix(tree): folder icon now switches to open-folder on expand (typo + this.icon_url bug) 2026-08-15 20:35:06 +08:00
b09ef14301 chore: remove debug logs (CTN/SETURL), keep token race fix; bump cache ver 2026-08-15 20:07:44 +08:00
efbd5f5839 debug: log set_url null/stale/render; bump cache ver 2026-08-15 19:49:26 +08:00
aae2150dad fix: AgentIO上传文件改用FormData(JSON.stringify会丢失File对象内容) 2026-08-15 19:15:19 +08:00
97ad189fb5 debug: add change_node_type is_leaf logging; bump cache ver 2026-08-15 19:00:20 +08:00
2254297be3 fix: cache-busting for bricks.js/css (?v= in header.tmpl) 2026-08-15 17:16:02 +08:00
ee50245895 fix(Svg): cancel stale fetch in set_url so leaf nodes hide arrow (race condition) 2026-08-15 11:53:27 +08:00
7746595739 fix(tree): change_node_type 死代码导致叶子节点仍显示展开箭头
return 提前返回使 set_url(null) 成为死代码,叶子节点(is_leaf=true)的展开箭头本应隐藏却仍显示。
修复:叶子分支直接 set_url(null) 隐藏箭头,非叶子才 set_state+bind 展开。
2026-08-15 01:42:36 +08:00
p
cbfe532050 fix: resizebox z-index above xterm/Wterm content 2026-08-15 01:42:36 +08:00
p
d1995ff118 fix: PopupWindow resize — remove stale e.target check in resizing() 2026-08-15 01:42:36 +08:00
p
9e23fbccb9 fix: ResourceBrowser strip tools before clone_descriptor (avoid circular ref from buildBind event_widget) 2026-08-15 01:42:36 +08:00
p
71dae6ecfe fix: ResourceBrowser tree_width method collides with option name (rename to get_tree_width) 2026-08-15 01:42:36 +08:00
8b4b9390a8 Revert "feat: AgentIO abort previous request on new input"
This reverts commit 5fb7796df1d0b416ae978ecd95be076a037d30a7.
2026-08-11 14:48:58 +08:00
5fb7796df1 feat: AgentIO abort previous request on new input 2026-08-11 14:00:42 +08:00
f9322531d0 feat: UiCode support multiple select attribute 2026-08-10 16:56:36 +08:00
ded5de54ed cleanup: remove Conform widget handling, revert to conversational confirm 2026-08-09 21:57:59 +08:00
1fd689ca62 fix: AgentIO.sys_post() + global ref — reliable Conform confirm handler 2026-08-09 21:46:06 +08:00
bf6b14f81e fix: Conform confirm creates AgentOutput and processes streaming response 2026-08-09 20:19:44 +08:00
22feb99a13 AgentOut: handle Conform widget confirmed event → POST _system_action 2026-08-09 20:00:01 +08:00
9a6e7e1a75 AgentOut: handle bricks widget descriptor JSON (widgettype) in streamed response 2026-08-09 17:01:34 +08:00