v0.3.3 更新说明
本期相对 v0.3.2 主要是一次安全加固 + System Hosts 体验优化,并附带了一轮发版/版本号文档的修正。
🔒 安全修复:escapeHtml 加固(#110,#117)
RuleEditor.tsx 和 SystemHosts.tsx 各自带了一份相同的 escapeHtml,只转义 &、<、> — 文本节点够用,但任何后续把值塞进属性插值(href、title、onclick)就构成 stored XSS。这次:
- 合并到单一
src/lib/escape.ts - 顺手把
"和'也补上(顺序仍是&在前,避免&被二次编码) - 12 个新单测覆盖五个字符 + 双重编码回归 +
<script>和属性逃逸中和
✨ 新增:System Hosts 行号 gutter(#111,#118)
System Hosts 页面现在常驻显示左侧 44px 行号栏,1-based。开启搜索后,当前活动匹配对应的行号加粗 + 主色高亮。原本搜索栏右侧的 "Line N of M" 小标签下线,gutter 成为主要的"我在第几行"affordance。
实现要点:
- 布局沿用
RuleEditor的同款 wrapper + 绝对定位 gutter,保持视觉一致 - gutter
overflow: hidden,通过onScroll把<pre>.scrollTop同步过去,无独立滚动条 lineNumbersmemo 仅依赖totalLines,搜索打字不会重建数组
📖 文档(无运行时变更,#119)
doc/build-and-version.md 重新梳理:
- 画清楚
__APP_VERSION__同时驱动 About 卡片 和 检查更新 的链路 - 修正 CI 矩阵表中第二个 runner 被误标为 "Intel" 的描述(两个 runner 都是
macos-latest) - 列出全部 6 个
Cargo.toml路径,明确说"不要碰"
下载
| 平台 | DMG |
|---|---|
| Apple Silicon | mHost_0.3.3_aarch64.dmg |
| Intel | mHost_0.3.3_x64.dmg |
.app.tar.gz 同帖提供(mHost_aarch64.app.tar.gz、mHost_x64.app.tar.gz)。
升级方式
- 已安装 v0.3.x:打开 mHost → Settings → "检查更新" → 看到 v0.3.3 后点击跳转下载页
- 首次安装或从 v0.2.x 升级:直接下载对应架构的 DMG 拖入 Applications 即可,不会影响
/etc/hosts中# ---- mHost start ----managed block
已知问题
- 安装包未做 Apple 代码签名(同 v0.3.x 一直的状态),首次打开如遇 Gatekeeper 拦截请右键 → 打开
- Linux / Windows 不在当前发版范围(#67)