Releases: xcloud-ai/xu-quiet-outline
Releases · xcloud-ai/xu-quiet-outline
Release list
2.2.3
Full Changelog: 2.2.2...2.2.3
2.2.2
2.2.1
2.2.0
2.1.0
2.0.3
2.0.2
Code quality
- Expansion memory parsing now goes through
unknownwith a runtime type guard before use, eliminating the two type-aware lint warnings (no-unsafe-assignment/no-unsafe-argument). Corrupted or unexpected stored data is safely treated as "no memory" instead of being trusted blindly - Removed an unused legacy helper module
No user-facing behavior changes.
代码质量
- 展开记忆解析改为先落
unknown再经运行时类型守卫收窄,消除两条 type-aware lint 警告(no-unsafe-assignment/no-unsafe-argument);存储数据损坏或内容异常时安全地按"无记忆"处理,不再盲信 - 删除一个未使用的遗留工具模块
无用户可见的行为变化。
Full Changelog: 2.0.1...2.0.2
2.0.1
Code review fixes
- Replaced all direct HTML string injection with Obsidian's
addIcon/setIconicon API andcreateElDOM helpers (fixes the unsafeinnerHTMLerror and the DOM / icon related warnings) - Expansion memory now uses the vault-scoped
App#loadLocalStorage/App#saveLocalStorageAPIs instead of globallocalStorage - Added
getSettingDefinitions()alongside the existing settings tab (dual-support pattern): all settings are indexed in Obsidian 1.13+ settings search, with live theme refresh on change; older versions keep the current settings page - Timer uses
window.requestAnimationFrame; removed unnecessary type assertions and an unsafe array typing - Removed the deprecated
builtin-modulesdependency in favor of Node's built-inmoduleAPI
No user-facing behavior changes.
代码审核修复
- 移除全部 HTML 字符串直注:自定义图标改用 Obsidian
addIcon/setIcon图标 API,DOM 统一走createEl系辅助方法(修复 unsafe innerHTML 错误及相关 DOM / 图标警告) - 展开记忆改用 vault 级隔离的
App#loadLocalStorage/App#saveLocalStorageAPI,不再直接访问全局 localStorage - 设置页在保留现有界面的基础上增加
getSettingDefinitions()(官方双支持模式):Obsidian 1.13+ 全部设置可被全局设置搜索索引,改色/开关仍即时生效;旧版本维持原设置页 - 计时器改用
window.requestAnimationFrame;清理多余类型断言与不安全的数组类型 - 移除官方不推荐的
builtin-modules依赖,改用 Node 内置moduleAPI
无用户可见的行为变化。
Full Changelog: 2.0.0...2.0.1
2.0.0
Rewrite
- Removed Vue 3 / Naive UI / Vite: the whole plugin is rewritten with zero UI framework — vanilla DOM rendering bundled by esbuild
- Fixed-row-height virtual scrolling: only viewport rows are rendered, smooth even with 1000+ headings
- Smaller footprint:
main.jsis now ~91 KB
Fixes
- Clicked-heading highlight no longer lingers while scrolling; a single highlight tracks the cursor / scroll position
- Fixed rows overlapping on first launch when the sidebar panel mounts late (row height is measured after layout and re-measured on resize)
- Fixed the expansion level resetting to 0 on startup due to empty memory written during a race; expansion memory now stores the per-file level (v2 format), legacy data is migrated automatically
Changes
- "Default expanding level" is now a validated 0-5 dropdown instead of free text;
qo-default-level: 0in frontmatter is honored correctly - Primary color override is off by default, so the outline follows the active Obsidian theme accent color
- Rainbow indentation color pickers are labeled by indent level (1-5)
- Removed about ten dead code paths left by the rewrite (unused event channels, navigator hooks, store fields)
重写
- 移除 Vue 3 / Naive UI / Vite,全插件零框架重写:原生 DOM 渲染,esbuild 打包
- 固定行高虚拟滚动:只渲染视口内行,上千标题长文档滚动依然流畅
- 体积更小:
main.js约 91 KB
修复
- 点击标题后滚动不再残留两个高亮,仅保留跟随光标 / 滚动位置的单个高亮
- 修复侧边栏面板延迟挂载时首启动行文字堆叠(布局完成后补测行高,尺寸变化时自动重测)
- 修复启动竞态写入空记忆导致展开级别被重置为 0;展开记忆升级为按文件存级别(v2 格式),旧数据自动迁移
变更
- 「默认展开层级」由自由文本改为 0-5 下拉校验;frontmatter
qo-default-level: 0现在能正确生效 - 「覆盖主色」默认关闭,大纲跟随当前 Obsidian 主题强调色
- 彩虹缩进线取色器按缩进层级 1-5 标注
- 清理重写遗留的约 10 处死代码(无触发方事件通道、导航器冗余钩子、store 无用字段等)
Full Changelog: 1.1.6...2.0.0