Commit Graph

  • 18186f685d fix(widget): Text消费opts.cfontsize(框架缺陷:构造硬写1使.ui的cfontsize全无效,实测恒20px)——opt-in默认1不影响存量 main yumoqing 2026-09-18 17:49:36 +08:00
  • 1da20fad8a fix(theme): sidebar-toggle定案恒暗色语境(用户2026-09-18纠正)——底透明与top同底(#1e293b)、汉堡线恒#e2e8f0、无边框,不引主题变量切换风格不变 yumoqing 2026-09-18 17:37:20 +08:00
  • dcfcecd1d1 feat(theme): sidebar-toggle前后色全CSS主题感知(chip底var(--surface-card)+线var(--ink-1)+边框var(--line),弃glyph交换) yumoqing 2026-09-18 17:10:12 +08:00
  • cba76f20d3 feat(theme): --line变量+暗色tab按钮(.tabpanel button跟主题表面,selected高亮)——2026-09-18暗色治理续(主页tab白块) yumoqing 2026-09-18 16:22:40 +08:00
  • ee7a1dd7e7 feat(theme): 主题表面变量--bg-side/--bg-page/--surface-card双主题+菜单分组展开箭头(.menu-group::after跟--ink-3,展开旋转90°,menu.js同步open类)——2026-09-18用户四项主题要求②③框架层 yumoqing 2026-09-18 16:13:26 +08:00
  • 0b034a6c86 fix(bricks): widgetBuild遇options.secret_defaults即注册到bricks.app+window——root构建早于子AgentIO,顺序正确;此前读app.opts拿不到(root是VBox非App实例) yumoqing 2026-09-18 15:46:10 +08:00
  • 0be28d9377 fix(agent_input): secret_defaults第三源bricks.app.opts(root options)——Html script不执行后的纯JSON路线 yumoqing 2026-09-18 15:40:48 +08:00
  • 920a4150a7 feat(agent_input): secret_defaults宿主级默认合并(显式opts优先)——全站AgentIO自动获得钥匙,不再逐产线配置 yumoqing 2026-09-18 15:37:28 +08:00
  • 37c5e4ac29 feat(theme): --ink-0..3主题感知文字色变量(亮slate深阶/暗slate浅阶)——暗色对比度治理,禁.ui/.dspy硬编码字体色 yumoqing 2026-09-18 14:04:09 +08:00
  • f819b3242b feat(agent): UiText.insertAtCursor + AgentIO 敏感信息选择窗(2026-09-17) yumoqing 2026-09-17 15:45:48 +08:00
  • 7c1661312e fix(mobile): 手机PopupWindow点输入域弹窗即关——.popupwindow移动端position:fixed钉死视口(主修:软键盘收缩视口后focus自动滚动把absolute弹窗滚出可视区)+focusin滚动归零安全网+_mobile_clamp重钳归零 yumoqing 2026-09-16 12:18:55 +08:00
  • 449631732a fix(i18n): obj_fmtstr 裸调用 ReferenceError——必须走 bricks 命名空间 yumoqing 2026-09-14 20:08:44 +08:00
  • 458b599061 feat(Text): 动态文本国际化 i18n_params 透传 yumoqing 2026-09-14 19:18:15 +08:00
  • 1989a0f04f fix(mobile): 普通Popup钳高到铺满可视屏时顶端切出屏外(负top未写回) yumoqing 2026-09-09 10:47:25 +08:00
  • 479cc3ba05 fix(mobile): 手机弹窗高度超出屏幕——高度钳制到可视屏高(2026-09-08用户报障) yumoqing 2026-09-09 10:39:54 +08:00
  • 5648da13c7 feat(mobile): 底部TabBar溢出「更多」机制+MobileSheet底部上滑竖向菜单(2026-09-08用户要求:tab多于4个时第5格收更多,点击弹竖菜单,选中项照常open_tab进内容区)——TabBar opts.more追加更多格(派发more事件,永不高亮);TabPanel createMobileBar按max_visible(默认4)切visible/overflow,more.dataurl动态项打开时实时拉(已购产线购买即出现,无需改index.ui);新增MobileSheet控件(蒙层9500>TabBar9000<PopupWindow10000起,功能弹窗不被蒙层挡;面板justify-content:flex-end贴底,column下align-items会挤右侧;同屏单例;_teardown自实现摘除防蒙层残留;popup:true项点击直接widgetBuild urlwidget走PopupWindow自开链路);css含dark变体 yumoqing 2026-09-08 19:30:55 +08:00
  • 44411712d0 fix(agent): 用户输入「停」要真停在输入停之前——旧实现前端无AbortController,停指令被当普通消息再POST一次(后端关键词短路回'已停止'),但上一条流式请求是独立HTTP连接仍持续reader.read()渲染+后端生成器继续跑→'已停止'与旧输出同时刷屏(2026-09-08用户报障);修法:AgentIO每条流注册AbortController到_running_streams,「停」整句精确匹配(绝不子串,防'为什么已取消'误杀)且有在飞流时→abort fetch(服务端连接断→ahserver检测断连break→生成器链下个yield点GeneratorExit终止,实测断连后0个新LLM调用)+冻结旧气泡(update_data见_stopped即return,不再渲染后续chunk,停在输入停之前)+追加'已停止'标记;停指令不上屏不发请求(零LLM费用);jsoncall全链透传signal(bricks_fetch/httpcall/post)+handle_chunk对AbortError静默收尾(reader.cancel的Promise.catch兜底防unhandledrejection);playwright端到端实测:输出冻结chunks_grew=0/服务端确认BrokenPipe断连/停后零多余POST/新消息正常/语义精确匹配全过 yumoqing 2026-09-08 17:25:19 +08:00
  • 1d4c6be71f fix(mobile): 手机全屏弹窗底部让出TabBar(不盖底部标签栏,用户随时可点Tab离开)+pl-gate定位工具类(未购门禁遮罩用)(2026-09-08用户三条要求) yumoqing 2026-09-08 16:01:13 +08:00
  • 69a41fac54 fix(tab): 首屏tab无active高亮——Toolbar.createTools完成后从不dispatch('ready')(TabPanel的ready绑定是死绑定),show_first_tab走dispatch('command')绕过do_handle高亮逻辑;修法:createTools末尾广播ready+show_first_tab在按钮已建好时改走toolbar.click(2026-09-08,playwright实测首屏home tab高亮+全量回归过) yumoqing 2026-09-08 15:56:23 +08:00
  • 93c8cac5bc fix(tab): TabPanel删tab/开tab两bug——①删当前tab内容不清+不回切:Toolbar.remove_item调用不存在的unselect_item抛TypeError致dispatch('remove')永远到不了tab_removed(Layout补unselect_item;tab_removed补items移除/content destroy/无tab清空);②菜单新增tab高亮不切:createTool是async,同步toolbar.click时新按钮未进toolList空转(open_tab改await add_tab后再click);删tab回切目标=访问历史最近tab(_push_tab_history),非固定first(2026-09-08用户报bug,playwright本地实测修复+边缘用例过) yumoqing 2026-09-08 15:48:40 +08:00
  • d19592c79b fix(mobile): 登录页文档内登录成功后导航回根域名——shell in-place渲染进login.ui文档致baseURI=/rbac/user/,后续根绝对urlwidget全401→登录窗反复打开(用户报障实测根因);桌面弹窗登录document是shell页不受影响(2026-09-08) yumoqing 2026-09-08 15:31:08 +08:00
  • 9f3155a9f2 fix(mobile): 底部Tab点击无响应+登录窗叠开——①_mobile_bar_clicked不解包dispatch事件({params:数据})致item.name恒undefined静默return(实测根因,Toolbar/Menu同约定);②withLoginInfo加登录窗单例_bricks._login_window_pending,并发401共享一窗后来者等销毁后重试,重试逻辑抽_retry_after_login共享尾部(2026-09-08用户报障) yumoqing 2026-09-08 15:27:13 +08:00
  • dc534768ea fix(mobile): ChipBar css拼接前导空格致classList.add('')抛SyntaxError——widgetBuild中断内容区空白(浏览器实测根因)(2026-09-08) yumoqing 2026-09-08 14:52:04 +08:00
  • af9d81929d fix(mobile): mobile_hidden首次应用推迟到构造链结束(schedule_once)——Button子类构造在super()后写行内display:flex覆盖同步设置的none,致手机端汉堡按钮重现(浏览器实测发现)(2026-09-08) yumoqing 2026-09-08 14:49:50 +08:00
  • 902d6f824f feat(mobile): 手机端H5适配收编入框架——TabBar/ChipBar控件+声明式mobile_hidden/mobile_opts+TabPanel mobile_bar模式+AgentIO.set_pipeline切产线+index_tab.js动态tab收编(修show_tabcontent未定义name/refresh语义/add_tab不存在的add_removeable三处旧bug)+PopupWindow全屏化+iOS 16px输入防缩放(2026-09-07用户需求:适配逻辑不出bricks框架) yumoqing 2026-09-08 14:26:24 +08:00
  • f2884eefc2 feat(mdwidget): 已渲染媒体(img/video/audio)追加下载按钮——会话agent生成的媒体可下载;同源走?download=1强制附件(Content-Disposition),内联data用download属性,外链新窗口;注入放在链接处理循环之后防被onclick拦截成markdown加载(2026-09-08用户定夺) yumoqing 2026-09-08 11:58:38 +08:00
  • f31ef89eca fix(tabular): 删除Tabular.get_hidefields死代码覆写(this.data_params从未赋值恒为空)——子表新增/编辑表单丢失data_params隐藏字段(vendor_id等)不注入,继承DataViewer正确版(this.opts.data_params) yumoqing 2026-09-06 21:51:06 +08:00
  • 8446104ac9 fix(form): FormBody文本字段透传placeholder——textarea编辑框格式提示不丢失 yumoqing 2026-09-03 17:18:49 +08:00
  • 4c8abd57e5 feat(input): UiText支持placeholder——textarea编辑框显示格式提示(供应商端点目录等JSON字段需要) yumoqing 2026-09-03 17:10:05 +08:00
  • 658e0bd748 Merge git.opencomputing.cn:yumoqing/bricks yumoqing 2026-09-02 13:54:31 +08:00
  • f2bf42e7c7 feat(input): UiCheckBox 支持 multicheck 多选(opts.multicheck)——原属性存在但从未赋值 yumoqing 2026-09-02 13:54:23 +08:00
  • d3cff3e923 fix(AgentIO): 跟滚误关根治——_track_follow按scrollTop减小判用户上翻 yumoqing 2026-09-02 11:02:51 +08:00
  • 4815e1e54d fix(AgentIO): 滚底根治——MutationObserver监听内容增长 yumoqing 2026-09-02 10:57:17 +08:00
  • 26aad5712a fix(AgentIO): 滚底改同步——后台tab不触发rAF导致流式更新时不滚 yumoqing 2026-09-01 18:11:22 +08:00
  • 89917d4328 feat(AgentIO): 会话区保持最后输出可见——超出显示范围自动滚到底 yumoqing 2026-09-01 18:02:24 +08:00
  • 6a94f10370 feat(AgentIO): 正文输入回车直接发送、Ctrl+回车换行——UiText新增opt-in的enter_sends选项(默认关,不影响其他表单),submit图标功能不变 yumoqing 2026-09-01 17:31:27 +08:00
  • a77200c5ae fix: Tree展开/收起同步三角图标状态; 模块JS注入统一加版本参数防缓存(20260831a) yumoqing 2026-08-30 21:53:26 +08:00
  • 2d145ddf8e chore: bricks版本号升20260830e,强制客户端刷新(get_by_id已是原版,零字节差异) pipeline-agent 2026-08-30 20:41:11 +08:00
  • 706c461e6b feat: Tree点击非叶子节点自动展开(懒加载友好); CodeEditor控件+CodeMirror5 pipeline-agent 2026-08-30 20:07:23 +08:00
  • 735387555c feat: CodeEditor控件——CodeMirror5包装(行号/高亮/懒加载),3parties加codemirror5+python模式 pipeline-agent 2026-08-30 19:48:56 +08:00
  • 1a4d664b5a revert: get_by_id改回原版分段查找——.是框架设计的控件路由分隔符,后缀兜底是错误修法;UI侧改用裸id pipeline-agent 2026-08-30 13:55:35 +08:00
  • b7b85e063f fix: get_by_id层级id查找——精确匹配+后缀兜底+CSS.escape,修复urlwidget replace target静默miss(世界/场景/实体等创建导入点击无反应根因) pipeline-agent 2026-08-30 13:03:58 +08:00
  • 47b08371aa feat: MdWidget/MarkdownViewer外链新窗口打开(非同源链接不再被拦截成站内跳转) yumoqing 2026-08-29 15:00:18 +08:00
  • 9f05e56d93 chore: bricks.js 缓存版本号 20260825a→20260829a(label 兼容修复强制刷新) yumoqing 2026-08-29 09:02:38 +08:00
  • 093b849bf1 fix(Text): 兼容 label 写法——LLM 生成 .ui 常用 label,此前静默渲染空文本致界面空白 yumoqing 2026-08-29 09:01:52 +08:00
  • 4cf2c1a57e feat(AgentInput): 模型下拉自动注入 session_id——多tab按会话解析项目模型,各产线UI无需逐个配置 yumoqing 2026-08-28 12:39:26 +08:00
  • 5227a4d491 fix(AgentIO): 模型下拉尊重服务端 selected 标记,不再每次重建回退首项 yumoqing 2026-08-28 12:26:02 +08:00
  • 406ed6f17a feat(scene3d): Scene3D 接入脚本引擎 + 按需注入 three.js + 自写环绕相机 yumoqing 2026-08-27 15:41:51 +08:00
  • d945e414d7 feat(scene3d): Scene3D widget — bricks3d 最小闭环(后端声明式场景描述符→three.js 本地渲染→entity_tapped 事件回传) yumoqing 2026-08-27 11:31:10 +08:00
  • 8a92b95990 fix(css): .scrollpanel 选择器缺逗号导致 VScrollPanel 无 width/height/overflow 样式(高度塌陷) yumoqing 2026-08-25 15:05:21 +08:00
  • 635bd76386 feat(header.tmpl): 应用级 js/css 与 bricks 主文件加 ?v=assets_ver() 缓存版本号(服务端未注册则退化为原行为) yumoqing 2026-08-25 14:36:16 +08:00
  • 7e0d5a1701 fix(bricks): on_parent 等事件 params 为 widget 对象时不再撞循环 JSON yumoqing 2026-08-25 13:56:20 +08:00
  • 91b3212f31 chore: bump bricks.js 缓存版本号 20260820b(登录不刷新页面 login_source/refresh) yumoqing 2026-08-20 14:44:09 +08:00
  • f2f9893bac fix(bricks): 非用户主动登录(401自动弹窗)成功后不刷新页面 yumoqing 2026-08-20 14:41:18 +08:00
  • 3c8eb4bb3d fix(tree): 展开箭头和节点图标加 flexShrink:0,防止长label挤压到0宽 yumoqing 2026-08-19 20:31:20 +08:00
  • 2c0f01451b chore: bump bricks.js 缓存版本号 20260818a(AgentInput padding) yumoqing 2026-08-18 18:46:16 +08:00
  • 625b6441bf chore: bump bricks.js 缓存版本号 20260815g yumoqing 2026-08-18 18:43:44 +08:00
  • e66837cb0d fix(tree): Tree 图标改为 /bricks/imgs/ 绝对路径,绕过 bricks.path 计算 bug(currentScriptPath 返回 / 导致图标 404) yumoqing 2026-08-18 18:43:20 +08:00
  • 4bdf040aaa fix(tree): 节点内容渲染从 schedule_once 异步改为同步,消除展开图标时序问题 yumoqing 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) yumoqing 2026-08-15 20:35:06 +08:00
  • b09ef14301 chore: remove debug logs (CTN/SETURL), keep token race fix; bump cache ver yumoqing 2026-08-15 20:07:44 +08:00
  • efbd5f5839 debug: log set_url null/stale/render; bump cache ver yumoqing 2026-08-15 19:49:26 +08:00
  • aae2150dad fix: AgentIO上传文件改用FormData(JSON.stringify会丢失File对象内容) yumoqing 2026-08-15 19:15:19 +08:00
  • 97ad189fb5 debug: add change_node_type is_leaf logging; bump cache ver yumoqing 2026-08-15 19:00:20 +08:00
  • 2254297be3 fix: cache-busting for bricks.js/css (?v= in header.tmpl) yumoqing 2026-08-15 17:16:02 +08:00
  • ee50245895 fix(Svg): cancel stale fetch in set_url so leaf nodes hide arrow (race condition) yumoqing 2026-08-15 11:53:27 +08:00
  • 7746595739 fix(tree): change_node_type 死代码导致叶子节点仍显示展开箭头 yumoqing 2026-08-15 01:40:07 +08:00
  • cbfe532050 fix: resizebox z-index above xterm/Wterm content p 2026-08-13 17:25:28 +08:00
  • d1995ff118 fix: PopupWindow resize — remove stale e.target check in resizing() p 2026-08-13 17:19:03 +08:00
  • 9e23fbccb9 fix: ResourceBrowser strip tools before clone_descriptor (avoid circular ref from buildBind event_widget) p 2026-08-13 16:01:42 +08:00
  • 71dae6ecfe fix: ResourceBrowser tree_width method collides with option name (rename to get_tree_width) p 2026-08-13 14:24:19 +08:00
  • 8b4b9390a8 Revert "feat: AgentIO abort previous request on new input" yumoqing 2026-08-11 14:48:58 +08:00
  • 5fb7796df1 feat: AgentIO abort previous request on new input yumoqing 2026-08-11 14:00:42 +08:00
  • f9322531d0 feat: UiCode support multiple select attribute yumoqing 2026-08-10 16:56:36 +08:00
  • ded5de54ed cleanup: remove Conform widget handling, revert to conversational confirm yumoqing 2026-08-09 21:57:59 +08:00
  • 1fd689ca62 fix: AgentIO.sys_post() + global ref — reliable Conform confirm handler yumoqing 2026-08-09 21:46:06 +08:00
  • bf6b14f81e fix: Conform confirm creates AgentOutput and processes streaming response yumoqing 2026-08-09 20:19:44 +08:00
  • 22feb99a13 AgentOut: handle Conform widget confirmed event → POST _system_action yumoqing 2026-08-09 20:00:01 +08:00
  • 9a6e7e1a75 AgentOut: handle bricks widget descriptor JSON (widgettype) in streamed response yumoqing 2026-08-09 17:01:34 +08:00
  • 8b4897ea14 AgentIO: use AgentInput instead of TextFiles for model selector support yumoqing 2026-08-08 23:42:14 +08:00
  • e2086397fd bugfix yumoqing 2026-08-08 22:47:14 +08:00
  • f2766a76dd bugfix yumoqing 2026-08-08 22:45:24 +08:00
  • c0cda2931a fix(textfiles): clear_widgets before add_widget to prevent stale file entries yumoqing 2026-08-03 10:45:34 +08:00
  • c726b95714 feat(DimensionFilter): dark/light theme via CSS variables and dimension-filter class yumoqing 2026-07-31 11:55:39 +08:00
  • 1034b53341 fix(DimensionFilter): use native CSS flexbox for proper height fill yumoqing 2026-07-31 11:38:09 +08:00
  • 57575d90f0 fix(DimensionFilter): proper flex layout - fixed search+horizontal bar, filler content area with VScrollPanel display yumoqing 2026-07-30 18:27:24 +08:00
  • 09a07904fc fix(DimensionFilter): configurable param names + 'all' skip + init refresh_display yumoqing 2026-07-30 16:49:08 +08:00
  • 9f4ca625c6 fix: add .dimension-btn-active CSS class for DimensionFilter active state yumoqing 2026-07-30 15:58:51 +08:00
  • 850d44ddb5 feat: add DimensionFilter widget with h_data_url, v_measure_url, show_data_url support yumoqing 2026-07-30 15:52:36 +08:00
  • bc3c4525fd fix(Tree): suppress deselect event dispatch when switching nodes yumoqing 2026-07-27 18:35:08 +08:00
  • 33409eb634 feat(Tree): add select_only option — click always selects, never deselects yumoqing 2026-07-27 18:23:16 +08:00
  • 1775309638 i18n: add Tabular CRUD form translations (Add/Update/Clone/Delete record) yumoqing 2026-07-27 12:12:49 +08:00
  • 7bc0a7fdcc move html5-qrcode + model-viewer from unpkg CDN to local 3parties/ yumoqing 2026-07-24 16:23:02 +08:00
  • a6a4a485a9 droppable docs: add max_size/multiple, file upload example with FormData+fetch yumoqing 2026-07-23 16:45:14 +08:00
  • 675dd09d05 add docs for FlipCard/Carousel/Draggable/Droppable/Sortable widgets (zh+en) yumoqing 2026-07-23 16:25:50 +08:00
  • 48c6405bbc add Draggable/Droppable/Sortable bricks widgets — SortableJS-backed, file drop support yumoqing 2026-07-23 15:58:39 +08:00
  • 6c94ce66a2 add FlipCard and Carousel bricks widgets + CSS yumoqing 2026-07-23 14:57:14 +08:00
  • 0d42a87052 fix: ChartScatter tooltip显示nameField+隐藏series0 legend yumoqing 2026-07-23 14:29:28 +08:00
  • 829d099d31 fix: inputdata2dic use getAll for multi-value fields, UserInputView iterate arrays yumoqing 2026-07-16 12:21:20 +08:00
  • f732d631e3 fix: multi-file preview in UiFile, multi video/audio in UserInputView, concat assign in LlmOut yumoqing 2026-07-16 11:40:44 +08:00