17 Commits
Author SHA1 Message Date
JoeAllen 94fdb6a507 feat: 国际化 / 键盘操作 / 无障碍 / 性能优化
国际化
- 新增 ui/i18n 双语文案表(中文原文为 key,英文集中映射,tf 支持占位符)
- AppSettings 增加 language(跟随系统/中文/English),启动与保存时即时生效
- 全部界面文案(标题栏/侧栏/工作区/发布/订阅/表单/设置/全部对话框/通知)入表

键盘操作
- Ctrl+W 关闭当前标签页;Ctrl+Tab / Ctrl+Shift+Tab 循环切换标签
- Ctrl+F 聚焦当前工作区消息过滤框

无障碍
- 全部纯图标按钮补 accessibility_label(屏幕阅读器 / UIA 自动化可识别)

性能
- 折叠态预览(JSON 美化/压平+截断)改为入环形缓冲时计算一次,
  随 MqttRecord 缓存(Arc<str>),渲染热路径对最多数百条可见行
  不再逐帧重复 serde_json 解析
2026-10-01 15:54:18 +08:00
JoeAllen c05b258c5c feat(ui): 侧栏/订阅面板/发布栏抽屉式折叠
- 连接侧栏:Ctrl+B 或把手按钮收起为 40px 窄 rail(展开把手 + 新建连接),
  状态随 ui-state.json 持久化;展开时标题行带收起按钮
- 订阅面板:标题行收起按钮,收起后左侧 32px rail 拉回
- 发布面板:工具条右端把手收起为细条(34px),细条上拉回;
  收起后全局 Ctrl+Enter 发送仍可用
2026-09-30 16:36:59 +08:00
JoeAllen 967bf9dd78 feat(ui): 界面体验一轮打磨(快捷键/暂停滚动/会话恢复/JSON 预览)
- 全局 Ctrl+Enter 发送;订阅框 Enter 提交、Esc 退出编辑;过滤框 Esc 清空
- 消息流新增「暂停/恢复」:暂停时画面不随新消息跳动,消息仍入环形缓冲
- JSON 负载折叠态预览按原始数据美化展示(多行缩进,超 40 行兜底截断)
- 标签页持久化(ui-state.json),重启恢复工作区;无可恢复标签时自动打开
  首个自连连接的工作区,避免「已连上却演空态」
- 侧边栏 Error 连接行内红字显示失败原因;侧边栏/订阅面板补竖分隔线
- 消息订阅色条上下留隙,不再连成一整条竖线
- 发布被当前过滤条件隐藏时给出「已发送」提示
- 连接表单:主机+端口同行;TLS 证书三个路径字段加「浏览…」(rfd)
- 主题切换/系统外观变化后强制整窗重绘,修未收敛区域的旧色残影
- 设置主题文案改「跟随系统」(跟随逻辑此前已实现)
2026-09-30 16:15:58 +08:00
JoeAllen f5cd0cdc4f chore: 移除项目中所有 Gitea 痕迹,origin 仅作 git 同步远程
- settings_dialog:仓库链接 REPO_URL 与展示名改指 GitHub,
  更新检查文案改「检查 GitHub Releases 上的新版本」
- update/mod.rs、check.rs 注释与 README 去除 Gitea 提法
- 删除 docs/deep-analysis-2026-09-30.md:其发布流水线章节描述的
  Gitea 旧渠道已整体下线,报告失去现实参照(git 历史 5ad4536 可找回)
2026-09-30 14:02:38 +08:00
JoeAllen f4315dce1e ci: macOS 只出 Apple Silicon(aarch64-apple-darwin),不做 Intel 2026-09-30 13:39:02 +08:00
JoeAllen 4e7ddfd4e9 ci: 发布矩阵加入 macOS(aarch64 原生 + x86_64 交叉编译)
客户端 platform_triple 本就支持 apple 三元组,补齐 CI 构建;Intel 侧
在 ARM runner 上交叉编译(Apple SDK 双架构通用)。README 补充 macOS
Gatekeeper 未签名产物的说明。
2026-09-30 13:38:10 +08:00
JoeAllen 8614c66131 chore(release): 弃用 Gitea 渠道,GitHub 发布历史自 v1.0.0 独立开始
- 删除 mirror-gitea job 与 scripts/publish-gitea.*(不再向 Gitea 镜像,
  不管旧版本兼容)
- update/mod.rs 与 README 同步:Gitea 标记为历史渠道已弃用
2026-09-30 13:01:42 +08:00
JoeAllen 68273e8e63 feat(update): OTA 更新源切换到 GitHub Releases
- RELEASES_API 指向 api.github.com/repos/LiJoeAllen/mqttx/releases;
  latest 端点优先,回退列表分页改 per_page=5(GitHub 参数)
- agent 显式设置 User-Agent: mqttx-ota(GitHub API 要求携带 UA)
- api.github.com 未认证配额 60 次/小时/IP:共享出口 IP 打满时检查静默
  降级(错误仅记录),附件下载走 github.com CDN 不受配额限制
- 设置对话框「关于」的更新源展示改为 GitHub(UPDATE_SOURCE 常量)
- v1.0.x 老客户端 OTA 源仍是 Gitea,靠 CI mirror-gitea job 喂养
  (配置 GITEA_URL/GITEA_TOKEN/GITEA_OWNER Secrets 后生效),
  老客户端升级完毕后可移除镜像 job 与 publish-gitea 脚本
2026-09-30 12:41:11 +08:00
JoeAllen 1132cdd41d ci: 工作流迁移至 GitHub Actions
- 新增 .github/workflows/release.yml:v* tag 触发,Linux + Windows 双平台
  构建(启用 windows-latest,替代原本地 publish-gitea.ps1 补位的 Windows 发布),
  发布到 GitHub Release(7z/裸二进制/.sha256,OTA 命名约定不变)
- 可选 mirror-gitea job:配置 GITEA_URL/GITEA_TOKEN/GITEA_OWNER Secrets 后
  自动把产物镜像到自建 Gitea Release,保住已装机 v1.0.x 客户端的 OTA 更新源;
  未配置时自动跳过。客户端 OTA 切换到 GitHub 后可删除该 job
- 删除 .gitea/workflows/release.yml(已迁移);scripts/publish-gitea.* 保留
  (镜像 job 与本地应急发布仍使用)
- README 发布章节同步更新
2026-09-30 12:34:21 +08:00
JoeAllen 2661a734ee fix(release): 修复 CI 阻断与发布链路,强制版本一致性
- sysmon 采样测试改为分平台断言:此前无条件断言 working_set > 0,非 Windows 上 cargo test 必失败,v* tag 会停在测试阶段(test job 恰好跑在 ubuntu-latest)
- CI test job 补齐 GPUI 的 Linux 系统依赖,--lib --tests 让集成测试参与编译
- meta job 校验 tag 与 gpui-app/Cargo.toml 版本一致:忘 bump 会导致新版本装完仍自报旧版,客户端反复提示同一更新
- 发布脚本:--exact-match 取 tag 并强制 semver 校验(--always 会产出 v1.0.0-4-gbc9f55c 这类客户端 release_part 截断后判定不新的版本,且该 Release 会占据 /releases/latest 遮蔽真更新);Release 创建/查询/解析失败一律 exit 1,不再让 job 变绿而 OTA 通道为空
- sysmon CPU 差分基准只在真正算出结果时前移:采样间隔过近沿用上次读数,修复手点立即刷新永远读到 0%;修正 cpu_percent 注释口径(0~100,整机占比)
- README 订正发布流程:CI 实际仅出 Linux 产物;补 Release 附件(7z/裸二进制/.sha256)这一 OTA 唯一通道与命名约定;token 需 repo 写权限
2026-09-30 10:14:18 +08:00
JoeAllen bc9f55c889 refactor(ui): 拆分 app/connection_view/widgets 为子组件,对话框归拢 dialogs/
- ui/app/ 拆为门面、events(引擎事件泵)、actions(用户动作)、io(导入导出)、
  theme(主题)、titlebar/sidebar/main_area(渲染分区)
- ui/connection_view/ 拆为门面、subscribe、messages、publish、vars、util(纯函数)
- ui/widgets/ 拆为 select(可搜索下拉)、kv_editor、common(字段行/状态/时间)
- 五个对话框归拢 ui/dialogs/,linear-theme.json 随 theme.rs 迁入 ui/app/
- clippy 0 警告,全部路径经门面保持稳定
2026-09-29 22:20:53 +08:00
JoeAllen 303b348ffe chore: 移除 Tauri + Vue 遗留实现,仅维护原生 gpui 程序
- 删除 src/(Vue 前端)、src-tauri/(Tauri 后端与全套图标)、
  Vite/TS/pnpm 配置、.github 旧 CI、.vscode 推荐
- workspace 去掉 src-tauri exclude;.gitignore 精简为纯 Rust 项目
- README 指向归档分支 tauri-legacy(保留完整历史可随时查阅)
2026-09-29 20:12:31 +08:00
JoeAllen 4e70741f55 feat: Linear 风格 UI 主题(近黑/纯白扁平调色板、靛蓝主色、14px 密度与 6px 圆角)
Release / Meta (push) Canceled after 0s
Release / Test (push) Canceled after 0s
Release / Build (ubuntu-latest) (push) Canceled after 0s
Release / Build (windows-latest) (push) Canceled after 0s
Release / Publish package (push) Canceled after 0s
2026-09-28 22:49:56 +08:00
JoeAllen c1c4fc011e feat: GPUI 版补齐 MQTTX 基础功能对标(分组/SSL证书/订阅增强/消息流控制/设置与日志) 2026-09-28 14:41:15 +08:00
JoeAllen bf6937b776 feat: 重写为 GPUI 原生桌面应用并接入 Gitea 软件包发布
- gpui-kit 0.6 原生 UI:连接管理、消息流/日志、发布预设、全局变量、
  设置、阿里云连接预设、原生 Logo
- MQTT 5.0/3.1.1 引擎(rumqttc,TCP/TLS/WS/WSS),独立 tokio runtime
  + 事件泵,真实 broker 端到端测试
- 连接表单:保存前可一键测试连接(宽松校验,自动生成临时 Client ID),
  高级属性(认证/MQTT 5 属性/遗嘱)按需折叠显示,WS 路径仅 WS/WSS 显示
- bug 修复:Hex 奇数长度显式报错、测试连接唯一 Client ID、Base64/Hex
  发布发送真实字节、v5 发布记录携带 Content-Type/用户属性、预设应用
  清除旧 Content-Type、模板时间基准统一;补 8 个单元测试
- Gitea 发布:Generic Package 上传脚本(bash/PowerShell)+ Actions
  release 工作流(tag 触发,双平台构建),README 使用说明
2026-09-28 11:39:47 +08:00
Joe Allen e2d829630e docs: 更新 README.md 为项目完整文档 2026-08-20 15:26:49 +08:00
Joe Allen 154fb15130 feat: initial MQTT v5 debugging tool
- Tauri v2 + Vue 3 + TypeScript + Element Plus
- Connection management (CRUD + enable/disable/test)
- Preset system with {{variable}} placeholders
- Dashboard with live message scrolling + topic tree
- Payload inspector (JSON/Hex/Base64/Plain)
- Protocol-level logging (file + UI dual channel)
- Global variable manager with localStorage persistence
- MQTT v5 property support (user properties, content type, etc.)
- SubAck result tracking with subscribe_tracked API
2026-08-18 14:32:57 +08:00