Skip to content

Releases: ThinkofRain1213/dsh-smooth-cursor-patched

v0.1.9-patched.2 — 空光标 / 划词 / 换行 / 滚动越界修复 + 询问界面

Choose a tag to compare

@ThinkofRain1213 ThinkofRain1213 released this 22 Sep 05:27

相对上游的修复

上游 dsh-smooth-cursor v0.1.7 在以下场景存在可复现的缺陷,本版本逐项修复:

  • 空内容与初次聚焦保活 — 上游在空输入框或初次点击时,光标测量拿到零高度矩形,导致光标不显示。本版为富文本输入框增加分层测量与空行兜底。
  • 双向划词跟手 — 上游固定取选区第 0 个矩形,正向拖选(从左往右)时光标不跟鼠标。本版按选区方向(selectionDirection)选择首/末矩形,并把选区终点与方向纳入重测签名。
  • 换行空行精准拦截 — 上游依赖 range.getBoundingClientRect(),在空行上会拿到 Chromium 回溯吸附的矩形,光标停留在上一行末尾。本版在软换行与空段落处优先实测该行自身的 <br> 高度。
  • 视口物理纵向裁剪 — 上游没有裁剪,长文本滚动时超界光标会漂浮到聊天区或工具栏上方。本版按输入框滚动视口剔除并裁切。
  • 覆盖询问界面 — 上游只覆盖 textarea[data-phase]。本版同时覆盖 ask_user_question 交互卡片的作答输入框。
  • 光标呼吸(新增) — 对齐 VS Code / 原生 500ms 节拍:无操作 0.5 秒后呼吸,打字时常亮,可在设置中独立开关。

本仓库的构建修复

分离为独立仓库的过程中,CI 抓到两个真实的构建缺陷(本地可复现、跨机器不可复现):

  • CSS Module 哈希依赖绝对路径 — 构建把源码绝对路径同时用作 rolldown 虚拟模块 id 与 lightningcss 的 filename。后果有两个:已发布产物里嵌入了构建机的本地路径;且同一份源码在不同目录构建出不同类名。现在改为仓库相对路径。
  • sourcemap 内嵌 CRLFlib/client.js.mapsourcesContent 会内嵌源码原文,Windows 检出(CRLF)与 Linux(LF)产出的 map 不同。现在所有文本按 LF 检出。

两项均已验证:把同一棵树复制到另一个不同名字的目录构建,产物字节完全相同。

安装

dsh plugin --profile web add dsh-smooth-cursor-patched

或从 GitHub:

dsh plugin --profile web add github:ThinkofRain1213/dsh-smooth-cursor-patched

安装后重启 dsh web 并强制刷新页面。

说明

  • 本仓库目前没有自动化测试。 CI 是构建门禁(类型检查 / 构建 / loader-id 契约 / 产物新鲜度),不是行为门禁——它证明不了光标在浏览器中的实际表现。
  • 版本号 -patched.N 属 prerelease,但已显式发布到 npm 的 latest 标签,因此 dsh plugin add dsh-smooth-cursor-patched 可直接安装。
  • 上游自 2026-09-09 起未再更新。上游若恢复维护,本分支将优先回归上游。

完整变更9863f61...v0.1.9-patched.2