feat: 接入 gpui-kit 全部 38 个官方主题预设 + 按语言拆分 locales + 0.7.3 升级

主题预设("我全都要"):
- gpui-app/themes/ 内嵌官方捆绑 21 个文件 36 变体 + Default Light/Dark
- theme.rs:register_bundled_themes(bootstrap 注册)/ apply_theme_preset
  (Theme::update + apply_config 整包应用)/ theme_preset_names
- settings.theme_preset 字段(serde 默认 linear);保存/启动按预设分派,
  外观模式与跟随系统监听仅对 Linear 生效(预设自带明暗不被冲掉)
- 设置页「主题预设」下拉(Linear + 38 注册名),切换即时生效

语言包按语言分文件(用户要求):
- locales/ui.yml → locales/en.yml + locales/zh-CN.yml
  (rust-i18n 文件名 stem 即 locale,扁平 "ns.key": "value")
- i18n.rs 测试改为双文件键集合一致性 + 占位符强制

修复:设置对话框打开即栈溢出
- gpui-kit 0.7.0→0.7.3 无法解决;根因是 Windows 主线程 8MB 栈对
  Dialog 覆盖层内 Select 渲染的深调用链不足,注册多主题后越过阈值
  (64MB 试验栈下不复现,证实深调用链而非无限递归)
- .cargo/config.toml:Windows 主线程栈 8MB→64MB
- 注册时机移到 bootstrap(main 的 init_themes,gpui_kit::init 后、
  窗口创建前),对齐官方 story 示例的注册姿势
- 误伤修复:gpui-app/Cargo.toml 被批量编辑误删 bin.name 与
  build-dependencies 段;examples/flood.rs 误删已恢复

官方 skill 同步:npx skills add 被墙,gh-proxy 镜像克隆后手动覆盖
~/.agents/skills 与 ~/.zcode/skills 的 gpui-kit + gpui-kit-design-guides。
This commit is contained in:
2026-10-12 17:07:40 +08:00
parent c2c89014d1
commit ac5b6e9862
34 changed files with 6150 additions and 608 deletions
+3 -2
View File
@@ -1,5 +1,3 @@
# MQTTX en 文案(rust-i18n:文件名即 locale,扁平 key: value)。
# key = 语义标识符 ns.name;en/zh-CN 两文件键集合必须一致——单测强制。
"aliyun.access_key_id": "AccessKey ID"
"aliyun.access_key_secret": "AccessKey Secret"
"aliyun.auth_mode": "Auth mode"
@@ -240,6 +238,7 @@
"settings.show_millis": "Show milliseconds in timestamps"
"settings.tagline": "A cross-platform MQTT debug client built with GPUI, aiming at MQTTX"
"settings.theme": "Theme"
"settings.theme_preset": "Theme preset"
"settings.version_line": "Version {v} (update source: {src})"
"sidebar.collapse": "Collapse sidebar (Ctrl+B)"
"sidebar.connections": "Connections"
@@ -345,3 +344,5 @@
"will.enabled_hint": "Enabled"
"will.topic_required": "Will topic cannot be empty"
"will.topic_wildcard": "Will topic cannot contain wildcards + or #"
# MQTTX en 文案(rust-i18n:文件名即 locale,扁平 key: value)。
# key = 语义标识符 ns.name;en/zh-CN 两文件键集合必须一致——单测强制。