Skip to content

Releases: GarrettFynn/muyun-companion

0.9.0

Choose a tag to compare

@github-actions github-actions released this 14 Oct 11:17

新功能 What's new

① 已读标记 · Read marks in the file explorer

读过的笔记在文件树标题后显示绿色 ✓。读完 = 阅读进度达到阈值(默认 95%,可调)或在队列中手动标记。重命名/删除笔记后 ✓ 自动跟随,折叠的文件夹展开时自动补画。

Finished notes get a green ✓ suffix in the file explorer (progress over a configurable threshold — 95% by default — or manually marked). Marks follow renames and deletions.

② 队列深耕 · Reading tray upgrades

  • 搜索:按标题/路径全库搜索在读笔记 Search the whole tray by title or path
  • 按文件夹分组:分组头带数量 Group rows by folder with counts
  • ✓ 标记读完:一键移出队列并联动文件树 ✓ Mark finished — removes it from the tray and marks the tree
  • 行内累计时长:每行显示本篇累计阅读时长(需开启阅读统计)Per-note all-time reading time inline

③ 笔记删除/重命名跟随 · Stats follow renames & deletions

续读位置与阅读统计的键随笔记重命名自动迁移、随删除自动清理——文件夹整建重命名同样逐篇迁移,残留数据不再堆积。

Resume-position and reading-stats keys migrate on rename and are cleaned on deletion — folder renames included.

修复 Fixed

  • 命令面板自 0.5 年代起实际只剩一条命令:全部命令补显式 id(中文名自动生成的 id 会互相塌缩)。All commands now carry explicit ids — Chinese-only names used to collapse into a single undefined entry.

验证 Verification

一次性测试 vault(MuYun 主题、12.7 万字/338 标题长文)CDP 全量压测:小地图审计 0 失配、队列搜索/分组/读完/时长全过、文件与文件夹重命名迁移逐键核对、删除清理干净、深浅双主题 ✓ 配色正确、全程零报错。


安装 Update: 社区插件目录内更新,或下载 main.js / manifest.json / styles.css 覆盖安装。In-app update from the community directory, or overwrite the three files manually.

0.8.6

Choose a tag to compare

@github-actions github-actions released this 14 Oct 06:20

修复 Fixed — 长文与超长大纲压力测试(CDP 真机七修)

用一次性测试 vault 在真实 Obsidian 1.14.4 上做了 12.7 万字 / 338 标题 / 2722 行的压力测试,定位并修复七个问题:

① 长文首开点轨整条消失 — metadataCache 解析迟于打开事件时,旧逻辑把点轨清掉后再无事件触发重建。现在 cache 未解析时保留现状,并订阅 resolved 事件补一次刷新。

② 带格式标题显示错乱 — 缓存里是原始 markdown(**加粗**、`代码`、==高亮==、[[笔记|别名]]),与阅读视图渲染文本对不上。标题统一做行内标记归一。

③ 滚动过程中章节显示错误 — 两个来源:callout 内标题在 DOM 里但缓存不收录(会吃掉匹配指针);重复标题(多模型同文小节)绑错段落。现按「层级+文本」索引 + 像素占比估行为主、滚动连续性微调消歧。

④ 滚动停止后标签停在过渡态 — 虚拟化渲染在滚动结束后仍异步补块。新增 MutationObserver 去抖补算。

⑤ 长距离点击跳转落点偏远 — 虚拟化视图里长距平滑滚动会被渲染高度补偿打断(实测目标 11393 只滚到 7067)。超过两屏改瞬移 + 精滚纠偏。

⑥ 0.8.5 的指向箭头从未显示 — 浮层 overflow:hidden 裁掉了盒外伪元素。箭头移入盒内右缘。

⑦ 超长大纲点轨被压扁 — 338 标题时圆点被 flex 静默压成 1.6px 细条。现在超限自动层级收缩(隐藏最深层标题、H1/H2 骨架常显),当前章节照常按真实标题跟踪显示;并修正 lvl1 大点的点径差额、禁止 flex 压缩。

压测数据 Stress results

21 步全文档滚动审计 0 失配 / 0 回退;updateRail 单次 0.25ms(预算 1.5ms);点击跳转落点误差 ±11 行内;收缩后 86 个骨架点完整收纳。


安装 Update: 社区插件目录内更新,或下载 main.js / manifest.json / styles.css 覆盖安装。In-app update from the community directory, or overwrite the three files manually.

0.8.5

Choose a tag to compare

@github-actions github-actions released this 14 Oct 05:30

新功能 What's new

标签指向箭头 · Label pointer arrow

章节标签(常显与悬停预览)右缘新增一个小三角 ▸,指向对应的圆点——标签与点轨之间的空隙被箭头补满并垂直居中,一眼就能看出标签说的是哪个位置,不用再在标签和圆点之间来回对线。

A small triangle ▸ now sits on the right edge of the section label (persistent and hover alike), pointing at its dot — it fills the gap between label and rail and is vertically centered, so the label anchors visually to the exact spot it describes.


安装 Update: 社区插件目录内更新,或下载 main.js / manifest.json / styles.css 覆盖安装。In-app update from the community directory, or overwrite the three files manually.

0.8.4

Choose a tag to compare

@github-actions github-actions released this 14 Oct 05:25

修复 Fixed — 大纲完整性与双模式跟随(Obsidian 1.14 适配)

通过 CDP 在真实 Obsidian 1.14.4 上复现并定位了三个根因,逐一修复:

① 阅读模式大纲显示不完整 · Incomplete outline in reading view

Obsidian 1.14 的阅读视图对长文是虚拟化渲染——DOM 里只有可视窗附近的标题(32 章的文档只渲染出 8 个),而点轨此前直接按 DOM 取标题,于是只能拿到一小窗口的圆点。

现在点轨目标统一取自 metadataCache 的完整标题表:每个标题都有圆点,点轨始终是完整大纲。当前章节跟踪用双指针把已渲染的标题窗口按「层级+文本」单调映射回全表下标;点击跳转改为两段式——先按行占比粗滚,滚动动画结束后(scrollend)再按「离视口中心最近的同文标题」精滚,正确处理重复标题(如多篇审查意见里都有「待确认问题」)。

Obsidian 1.14 virtualizes long reading-view documents — the DOM only holds headings near the viewport (a 32-section doc rendered just 8), and the rail was built from the DOM. The rail now sources the complete heading list from metadataCache; the rendered window is mapped back by a monotonic two-pointer; clicking a dot jumps in two passes (line-ratio rough scroll → nearest same-text refine after scrollend).

② 实时预览不随滚动 · Live preview didn't follow scrolling

0.8.2 的修复依赖 editor.cmEditor,而这个内部属性在 1.14 已被混淆为 undefined,能力探测直接跳过——跟随从未激活。现改用官方 Editor API:coordsAtPos 判定光标是否滚出视野(null/越界),出视野时按 scrollTop 占比估算可视顶部行。打字态(光标在视野内)行为不变。

The internal cmEditor property is minified away in 1.14, so 0.8.2's branch never activated. Rewritten on the official Editor API: coordsAtPos detects an off-screen cursor; the visible top line is estimated from scrollTop. Typing behavior unchanged.

③ 小窗格点轨溢出 · Rail overflow in short panes

密度分档此前只看章节数、且只在建轨时计算一次——窗格变矮或分屏后圆点照样被裁。现按可用高度分档(8→5→3px 三档点径),窗口 resize 自动重算,间隙动态压缩、兜底到 0。CDP 实测 480px 高窗格 32 章全部收纳。

Density tiers are now height-aware (8→5→3px) and recomputed on window resize; verified with CDP that all 32 dots fit in a 480px-tall pane.

验证 Verification

CDP 真机五项全绿(完整 32 圆点 / 滚动单调跟随 / 末尾重复标题点击精准 / 编辑态滚轮跟随 / 480px 窗格全收纳);无头台架四场景全过(虚拟化窗口滚动 / 编辑态三分支 / 100 章收纳 / 30 字长标题无省略)。


安装 Update: 社区插件目录内更新,或下载 main.js / manifest.json / styles.css 覆盖安装。In-app update from the community directory, or overwrite the three files manually.

0.8.3

Choose a tag to compare

@github-actions github-actions released this 14 Oct 04:55

修复 Fixed

阅读模式下大纲显示不完整 · Incomplete outline display in reading view

两个来源同时修掉 Two causes fixed at once:

① 点轨溢出裁切 · Dot-rail overflow clipping

轨道固定占视图高度的 76% 并垂直居中——标题一多(约 28 章以上),圆点就上下溢出被裁掉,文档后半部分的章节从点轨上消失。现在按数量自动分档压缩:>40 章缩小点径、>80 章再缩一档,点间距按轨道可用高度动态计算(向下取整保证永不超预算)。每个标题都有一个可见圆点,点轨始终是完整大纲。

The rail occupied a fixed 76% of the view height and centered — with many headings (~28+) the dots overflowed and got clipped, so later chapters vanished from the rail. Now density adapts automatically: smaller dots beyond 40 headings, smaller again beyond 80, with the gap computed from the available rail height (floored, never exceeding the budget). Every heading keeps a visible dot.

② 长标题被省略号截断 · Long headings truncated with ellipsis

章节标签/悬停预览的宽度上限原来只有 200/260px,中文长标题很快变成「…」。现在放宽为 常显 min(60vw, 480px) / 悬停 min(56vw, 460px),常规长度的标题可完整显示。

The label width caps were 200/260px — long Chinese headings turned into «…» quickly. Caps are now min(60vw, 480px) for the persistent label and min(56vw, 460px) for hover.

验证 Verification

真源码无头 DOM 台架四场景回归:阅读态滚动跟随、编辑态三分支、100 章全部收纳(4–452px ∈ 456px 轨道)、30 字长标题完整无省略。
Headless harness on the real main.js: reading scroll-following, edit-mode branches, 100 headings fully contained, 30-char heading shown in full.


安装 Update: 社区插件目录内更新,或下载 main.js / manifest.json / styles.css 覆盖安装。In-app update from the community directory, or overwrite the three files manually.

0.8.2

Choose a tag to compare

@github-actions github-actions released this 14 Oct 00:10

改进 Improved

实时预览下滚轮阅读也能推动小地图 · Minimap now follows wheel-scrolling in live preview

0.8.1 的常显章节标签在实时预览(编辑态)里只跟光标——用滚轮纯阅读时光标不动,标签也就不动。现在:光标在视野内时仍随光标(打字态行为不变);光标滚出视野时改按可视顶部行定位当前小节,滚轮阅读时标签与点轨实时跟随。

In live preview the persistent section label only tracked the cursor — wheel-scrolling without moving the cursor left it static. Now the cursor is still tracked while it is on screen (typing behavior unchanged); once it scrolls out of view, the current section is located by the first visible line, so the label and dot-rail follow wheel-scrolling.

  • CM6 能力探测(posAtCoords / coordsAtPos),缺失或异常自动退回旧的随光标行为 Degrades to the old cursor tracking when CM6 helpers are unavailable
  • 阅读视图行为不变(随滚动,跨章节边界时切换)Reading view unchanged (follows scrolling, flips at section boundaries)

验证 Verification

随源码用真实 main.js + styles.css 的无头 DOM 台架回归:阅读态滚动跟随 / 悬停让位与恢复、编辑态「光标在视野内 / 滚出视野 / 能力缺失」三分支全部通过。
Headless DOM harness running the real main.js + styles.css: reading-view scroll following, hover yield & restore, and all three edit-mode branches pass.


安装 Update: 社区插件目录内更新,或下载 main.js / manifest.json / styles.css 覆盖安装。In-app update from the community directory, or overwrite the three files manually.

0.8.1

Choose a tag to compare

@github-actions github-actions released this 13 Oct 23:56

新功能 What's new

小地图常显当前章节 · Current-section label on the edge minimap

当前小节的标题标签现在常驻在右侧点轨的当前圆点旁,随滚动实时跟随——不用再把鼠标凑到圆点上才知道读到哪了。

The current section's label now stays pinned beside the active dot on the right-edge minimap and follows scrolling — no more hunting for tiny dots to see where you are.

  • 阅读态跟滚动、编辑态(实时预览)跟光标 Reading view follows scrolling; live preview follows the cursor
  • 悬停其他圆点时显示该节的悬停预览,悬停结束回到当前章节 Hovering another dot shows that section's preview; it returns to the current one on leave
  • 样式比悬停预览收敛一档:半透明模糊底、去投影,不喧宾夺主 Subtler than the hover tip: translucent blurred background, no shadow
  • 设置项「阅读 › 小地图常显当前章节」可关闭(默认开)Toggleable under Settings › Reading (on by default)

修复 Fixed

  • 点轨重建/清除后浮层引用悬挂的问题(此前首次悬停可能不显示)Rail tip reference dangling after rail rebuilds

安装 Update: 社区插件目录内更新,或下载 main.js / manifest.json / styles.css 覆盖安装。In-app update from the community directory, or overwrite the three files manually. 需 MuYun 主题以获得最佳观感 Best with the MuYun theme.

0.8.0

Choose a tag to compare

@github-actions github-actions released this 13 Oct 23:23

User-feedback round. 用户反馈迭代。

  • Actual reading time 已阅读时长 — the status bar now shows time really spent on the note: ⏱ session · all-time total (per-note session resets on note switch or a 10-min gap). Replaces the remaining-time estimate, which duplicated the top progress bar; with stats off it falls back to the old estimate. 状态栏改为显示真实已读时长「⏱ 本次 · 本篇累计」(切笔记或间隔 10 分钟重置「本次」)。原「剩 N 分钟」与顶部进度条信息重复,故替换;未开统计时退回旧估算。
  • Streak removed from the status bar (kept in the heatmap modal & weekly report) per feedback. 连续天数移出状态栏(热图与周报中保留)。
  • Reading tray upgrades 队列升级 — 📌 pin notes to the top; each row now shows the last chapter you were in (e.g. ⌁ 2.3 锚点); Ctrl/⌘+click opens in a new pane. 📌 置顶;行内显示最近所在章节;Ctrl/⌘ 点击新窗格打开。
  • Performance budget sheet filled with first real measurements (2026-10-14): scroll frame 0.00–0.60ms (budget 1.5ms), ticks render 0.30ms (budget 2ms), persist 1.90ms/write. 性能预算表首次回填真机实测:滚动帧 0.00–0.60ms(预算 1.5)、刻度 0.30ms(预算 2)、写盘单次 1.90ms。

0.7.0

Choose a tag to compare

@github-actions github-actions released this 13 Oct 22:41

The P2 pack: reading tray, streak, richer stats, weekly report. P2 全家:队列 / streak / 统计增强 / 周报导出。

  • Reading tray 继续阅读队列 — a command (or a click on the status-bar 📖) opens your recently-read notes with position & progress; one click jumps back to where you left off.

  • Streak 常驻 — the status bar shows 🔥N from 2 consecutive days on; the heatmap modal header shows current & best streak.

  • Richer stats 统计六维 — hourly distribution, reading sessions (≤10-min gaps merged), completion rate, week-over-week delta, goal calendar; day records extended to {sec, sess, maxSess, hours} (old numeric records read transparently), and day details older than 120 days now roll into monthly totals instead of being dropped.

  • Weekly report export 周报导出 — 导出阅读周报 writes a markdown note for the last complete week (ISO-week file names, never overwrites): totals with week-over-week, session & focus stats, hourly bars with your golden hours, completion rate, goal calendar, all-time top 10. Export folder is configurable (default 阅读统计/).

  • Debug timing 调试打点 — optional debugMode logs hot-path timings (scroll frame / ticks / fold FLIP / persist) to the console for the performance budget sheet.

  • 继续阅读队列:命令面板或点击状态栏 📖 打开在读列表(最近 20 篇、含进度与时间),一键回到上次位置,✕ 可移出。

  • 连续天数:状态栏 ≥2 天起显示 🔥N;热图弹窗顶部显示当前/历史最佳。

  • 统计六维:时段分布、会话质量(间隔≤10分钟归并)、完读率、环比、目标达成日历;days 记录扩展为 {sec,sess,maxSess,hours}(旧数字记录透明兼容),超龄明细折入月度汇总不再丢弃。

  • 周报导出:导出上一个完整周,文件名带 ISO 周号不覆盖;模板含环比/会话与专注/时段条形与黄金时段/完读率/目标日历/累计 Top10;导出文件夹可设置(默认 阅读统计/)。

  • debugMode 调试打点:可选输出热路径耗时(滚动帧/刻度/折叠动画/写盘),用于核对性能预算表。

0.6.1

Choose a tag to compare

@github-actions github-actions released this 13 Oct 22:30

Fixes & polish. 三处修正。

  • Breadcrumb jump now unfolds the target heading first when it was folded away (previously a silent no-op). 面包屑跳转遇到目标章节被折叠时,先按标题文本回源行展开再落点(此前静默失败)。
  • Section ticks on the progress bar show the chapter name on hover. 进度条章节刻度悬停显示章节名。
  • Changing the typewriter anchor now re-anchors immediately instead of waiting for the next cursor move. 打字机锚点切换后立即重锚,无需等下次光标移动。