zcbot/web
caoqianming cbb16b896f refactor(dev): 前端模块化 Step 2(起)— 抽出 layout.js
三栏布局(pane 折叠 rail + 拖拽 splitter + 手机单列视图)是 main.js 里
唯一对其他功能节零出边的干净段,用它打样增量剥离。

- layout.js(121 行):import $ + 4 个 LS_*_COLLAPSED/WIDTH,只导出
  mqPhone / setMobileView(后者供 selectTask 在手机宽下选中任务自动切
  对话面板,是唯一跨模块调用)。折叠/splitter/mobile-tab 顶层事件绑定
  原样保留(ES module 默认 defer,import 时 DOM 已就绪)。
- main.js:删 114 行 → 2606 行,加 layout import 并清掉随之不再用的
  4 个 LS_* import。逻辑零改动,纯剪切 + 连线;node --check 过,
  main 残留 layout 私有符号清零。

顺手修 Step 1 遗留测试失败:test_static_vendor 第二用例原只 grep
dev.html 找 formatContextStats / context_original_chars / cache_hit_tokens,
模块化后这些搬进 js/*.js → 改为扫 dev.html + js/*.js 合并源。2 测试全过。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-06 21:27:51 +08:00
..
static refactor(dev): 前端模块化 Step 2(起)— 抽出 layout.js 2026-06-06 21:27:51 +08:00
__init__.py core(§7 Phase G G1): Web UI 脚手架 + cli.py web 子命令 2026-05-14 13:37:54 +08:00
app.py refactor(dev): 前端模块化 Step 1 — dev.html 拆零构建 ES module(叶子优先) 2026-06-05 16:55:20 +08:00
auth.py feat(dev): 顶栏自助改密码 + 选入按钮文字改图标(防换行) 2026-06-05 15:07:21 +08:00
broker.py core(0004): 删 runs / usage_events 表 + cancel/SSE 改 task-level 2026-05-18 11:05:35 +08:00
sinks.py core(0004): 删 runs / usage_events 表 + cancel/SSE 改 task-level 2026-05-18 11:05:35 +08:00