Skip to content

v0.3.0

Choose a tag to compare

@github-actions github-actions released this 26 Jul 17:18
· 134 commits to main since this release

🚀 v0.3.0

发布日期:2026-07-27

自 v0.2.8 起累积了 34 个提交、15 个特性都没有发过版 —— 期间 TUI 基本重写了一遍。
这一版把它们一次性放出来,版本号也从补丁位提到次版本位,以匹配实际变化幅度。

✨ 候选池:从「去过的目录」变成「历史 ∪ 目录树」

  • 🌲 目录树发现层: 后台流式扫描目录树(历史目录的兄弟、$HOME 全树、$HOME 外锚点),
    没 cd 过的目录现在也能被模糊搜索命中。分层 BFS + 剪枝 + 时间/数量双预算,
    实测本机候选从 47,048 涨到 50,074。总开关 CDH_DISCOVER=0。
  • 🎯 排序不被稀释: 发现层候选排在同模糊分的历史候选之后,不给它们伪造 frecency。
  • 🌱 空历史也能用: 没有任何历史时照常打开界面,先从 $PWD 的祖先链自举。

🧹 降噪:Ctrl+D 现在是「排除」

  • 🚫 子树排除: Ctrl+D 排除该目录及其全部子目录,写入 DATA/cdh/excludes(行式路径,可手工编辑)。
    排除的子树连 read_dir 都不会发生,省的是 I/O 而不只是显示。
  • ↩️ F4 排除清单面板: 上下选择、Ctrl+D 取消排除,取消后该子树当场补扫回来,不用重启。
  • 🔍 CDH_IGNORE_RE 现在也作用于发现层(此前它只过滤历史候选)。

🖼️ 界面

  • 👁️ 目录预览面板(Tab 切换),异步加载,不阻塞按键。
  • ⚙️ F2 设置面板: 语言、启动预览、颜色、鼠标,持久化到 $XDG_CONFIG_HOME/cdh/tui.toml。
  • 🌏 中英双语,跟随 locale,可用 CDH_LANG 覆盖。
  • 🎨 主题与扁平化重构,F3 / Ctrl+T 循环切换。
  • 🧊 右下角环境 3D 线框立方体(仅彩色模式,CDH_CORNER_3D=0 关闭)。
  • 🔀 git 状态:预览里显示分支与干净/已修改。
  • 🖱️ 鼠标单击选中、双击跳转、滚轮滚动;分页、Home/End、Unicode 光标编辑等一并补齐。

🧮 排序与历史

  • 📊 多信号融合排序(frecency / uniq / recency / context),解决 $HOME 长期霸榜。
  • 🕐 时间戳归一化:毫秒 / 微秒 / 纳秒历史记录都能正确解析。
  • 🧽 TUI 内清理失效路径;--ignore-re、评分明细等 CLI 能力。

🐛 值得一提的修复

  • 挂载根自身(如 /mnt)此前不被判为慢挂载,会让 9p 的 read_dir 进到本地专用的防饥饿阶段。
  • 立方体曾覆盖列表行、破坏选中条。
  • git 状态探测超时后不再留下僵尸进程。
  • 帮助浮层截断、安装器管道执行、子安装器路径等。

🧰 构建支持

  • ✅ Linux: x86_64-unknown-linux-gnu
  • ✅ macOS: x86_64-apple-darwin / aarch64-apple-darwin

💡 安装方式

curl -fsSL https://github.com/xianyudd/cdh/releases/download/v0.3.0/cdh-v0.3.0-x86_64-unknown-linux-gnu.tar.gz \
  | tar -xz
cd cdh-v0.3.0-x86_64-unknown-linux-gnu
bash --noprofile --norc install.sh