-
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