更新日志
QuickApp · 停靠屏幕四边的快捷应用启动器
来源仓库文件 UpdateLog.md
0.9.10 0.9.10 (2026-10-17)
- 修复从置顶 Dock 打开“关于”后,检查更新窗口落在“关于”后面、导致两个窗口无法操作的问题;更新窗口沿完整 owner 链继承置顶状态。
- 复用更新窗口时切换到当前发起窗口作为 owner,恢复隐藏或最小化的更新窗口。
- 增加真实 Windows 窗口验证,检查原生 owner、层级、输入禁用及关闭后的恢复,并接入 CI 和发布门禁。
0.9.9 0.9.9 (2026-10-17)
- 快捷菜单、托盘、关于页和 Dock 提示统一打开同一个更新窗口,集中检查、下载、取消和安装;关闭后重新打开保留进度与安装包。
- 修复更新窗口先关闭、视图模型被清空后才执行安装命令导致的崩溃;安装器启动失败时保留窗口并显示原因,成功启动后按安装服务要求退出。
- macOS 打包按设备确认镜像卸载状态;更新检查测试在异步操作前初始化共享语言,避免并发测试受语言初始化时序影响。
0.9.8 0.9.8 (2026-10-16)
- 修复 Windows 安装向导动态装饰与进度刷新时的闪烁,保留跟随系统、浅色、深色与减少动态效果选项。
- 安装器统一展示 CodeWF 品牌与官方网站入口,安装、修复和卸载继续使用原生流程。
- 修复本机统一发布入口无法读取带 Condition 属性的 VersionPrefix、默认误用 0.0.0 的问题;显式 -Version 仍可覆盖,并增加隔离入口回归。发布文档从版本源生成命令,不再固定旧版本号。
- 主产品单文件离线原型同步本版本;各仓库独立保留安装器设计原型。
0.9.7 0.9.7 (2026-10-16)
- macOS 品牌镜像在 Finder 或 Spotlight 短暂占用时按间隔重试正常卸载,持续失败保留挂载目录并终止打包。
- 版本及非空发布说明校验前置到五平台 AOT 构建之前,避免构建完成后才发现缺少发布说明。
- 保留统一 .NET 紫异形 Windows 安装器及五平台 EXE / DEB / DMG、SHA-256 交付;同步单文件原型版本。
0.9.6 0.9.6 (2026-10-16)
- Windows 安装包使用 .NET 紫异形原生向导,支持双语许可、三态外观、减少动态效果、真实进度以及修复/卸载入口;Linux 和 macOS 同步品牌资源。
- 主行动按钮与导航选中态复用共享 Primary / OnPrimary 配色,单文件原型与真实控件同步修复深色主题下的文字对比度。
- 补齐五平台版本发布说明,保留 EXE / DEB / DMG 与 SHA-256 安装包门禁,不提供便携压缩包。
0.9.4 0.9.4 (2026-10-16)
- Semi 与 Ursa 内建文案跟随唯一全局语言切换,保留宿主同键覆盖。
- 增加真实菜单切语回归与五平台安装包名称、版本、哈希校验门禁。
0.9.2 0.9.2 (2026-10-15)
- macOS 应用包将国际化 JSON 等资源放入
Contents/Resources,修复签名失败,搬移后再次自检。 - Windows CI 显式等待 GUI 程序并读取进程退出码,避免将空的
$LASTEXITCODE误判为自检失败。
0.9.1 0.9.1 (2026-10-15)
- 修复单文件原型嵌入 SVG 时受 Git 换行转换影响的问题,Windows/Linux 检出生成一致。
- 保留 0.9.0 标签,使用新补丁版本继续五平台 NativeAOT 安装包发布。
0.9.0 0.9.0 (2026-10-15)
- 三态明暗 + 八色统一主题,外观和语言独立持久化。
- JSON 输出与 T4 强类型资源支持中英动态切换,修复打开窗口的类型下拉框缓存旧语言。
- 独立关于窗口接入真实版本、平台、编译时间与完整 Toolkit 更新状态;移除重复更新服务。
- 单文件离线原型与脚本化路由验收,增加实际窗口与 NativeAOT 验证入口。
- 发布限定五种安装包,各平台使用原生 runner 执行 NativeAOT。
0.8.2 0.8.2 (2026-10-13)
- 修复「更新说明」为空:发布说明改从网页端点
releases.atom读取(此前只有被禁用的 API 回退路径才带正文),仍不消耗 GitHub API 配额;拉取失败只少一段说明,不影响更新提示本身。 - 旧版本落盘的更新缓存只有安装包、没有说明:首次检查会自动补一次说明并写回缓存,之后照旧零额外请求。
- 恢复 0.7.3/0.8.0 起 Windows 安装版的启动:
InvariantGlobalization与SemiTheme Locale="zh-CN"冲突导致窗口出现前进程就退出,该开关现显式关闭。 - 设置 · 关于「立即检查」发现新版本时弹出版本说明卡片(已安装版本、最新版本、更新说明 + 安装、取消);0.8.0 的应用多开(启动数量)等改动一并包含在本版安装包中。
- 构建与 189 项测试通过(新增发布说明解析、资产失败仍保留说明、无对应条目无说明、旧缓存自动补齐用例);更新说明卡片 26 项无头 UI 验证通过。
0.8.1 0.8.1 (2026-10-13)
- 修复 0.7.3/0.8.0 的 Windows 安装版启动即退出:
InvariantGlobalization与SemiTheme Locale="zh-CN"冲突,加载主题时抛CultureNotFoundException,窗口出现前进程就结束(原因只写进%LOCALAPPDATA%\QuickApp\logs\app.log);该开关现显式关闭,win-x64 NativeAOT 发布产物已在 Windows 上实测可正常启动。 - 设置 · 关于「立即检查」发现新版本时直接弹出版本说明卡片:已安装版本、最新版本、更新说明(GitHub Release 正文)与「安装」「取消」按钮。
- 安装按钮按状态推进:下载 → 下载中(带进度)→ 安装;没有匹配本机安装包时改为「打开发布页」,关闭卡片即取消下载。
- 检查到新版本时 Dock 提示带「查看」,关于页出现「查看新版本」入口,可随时再打开同一张卡片。
- 单页原型同步版本说明卡片;原型存储键升到
quickapp-prototype-v2(携带启动数量与版本说明字段)。 - 构建与 186 项测试通过;更新说明卡片 25 项无头 UI 验证通过;发布产物实测可正常启动。
0.8.0 0.8.0 (2026-10-12)
- 新增应用多开:程序 / 文件 / 目录条目可填写「启动数量」,一次点击连续启动多个实例(如微信),单个条目最多 99 个。
- 启动数量只对程序类生效,网址与命令恒为 1;旧配置没有该字段即为 1,导入导出与存储模式切换一并保留。
- 编辑窗口在该类型下新增「启动数量」输入与说明,非法或越界输入就地提示;多开时 Dock 提示改为「正在启动 N 个」。
- 单页原型同步该字段(含校验、导入导出)。
- 修复 0.7.3 起 Windows 安装版启动即退出:
InvariantGlobalization与SemiTheme Locale="zh-CN"冲突,XAML 加载时抛CultureNotFoundException,程序在窗口出现前就结束(只写进%LOCALAPPDATA%\QuickApp\logs\app.log)。该开关现显式关闭,发布产物已实测可正常启动。 - 设置 · 关于的「立即检查」发现新版本时,直接弹出版本说明卡片:已安装版本、最新版本、更新说明(GitHub Release 正文)与「安装」「取消」按钮;安装按钮按状态在 下载 → 下载中(带进度)→ 安装 之间切换,没有匹配本机安装包时改为「打开发布页」。
- 构建与 186 项测试通过(新增旧配置默认 1、越界兜底、非程序类归 1、编辑框解析与多实例启动用例),更新说明卡片的 25 项无头 UI 验证通过,win-x64 NativeAOT 发布产物实测可正常启动。
0.7.3 0.7.3 (2026-10-12)
- 设置窗口与快捷项编辑窗口迁移到
CodeWFWindow:弃用自绘标题栏和关闭按钮,修复 Windows Server 上窗口顶部边框缺失;Dock 悬浮层、Toast 提示与内联小弹窗保持无镶边设计。 - Avalonia 升至 12.1.4,新增 Semi.Avalonia 与 CodeWF.Avalonia.Controls 依赖,并在免裁清单
Roots.xml同步补充,NativeAOT 不丢失样式与控件元数据。 - 0.7.2 的安装包与测试均已通过,仅因缺少
.github/release-notes/v0.7.2.md导致创建 GitHub Release 的校验步骤失败;本版本补齐发布说明后重新发版,170 项测试通过。
0.7.1 0.7.1 (2026-10-09)
- 单页原型同步 v0.7.0 的热键唤起搜索、焦点、重复按键和沿边位置记忆,收起、重新展开、刷新与视口变化保持一致。
- 修复拖动后唤出把手偏离 Dock 中心:使用 Dock 在工作区的实际中心投影到屏幕边缘,兼容任务栏占用和不同窗口尺寸。
- 170 项测试、单页原型交互、无头 UI 与 Windows NativeAOT 验证通过。
0.7.0 0.7.0 (2026-10-08)
热键唤起搜索
- 全局唤起热键(默认 Ctrl+Alt+Space)改为直接弹出搜索界面:展开 Dock、打开搜索行、聚焦输入框,并把输入法切到英文态,按下即可直接打字母检索;已在搜索态时再按一次收回(钉住时不收回)。
- 设置窗口「推荐」页签修复列表空白:绑定错误指向了控制器对象而非卡片集合,现在正确渲染推荐卡片。
记忆沿边拖动位置
- 拖动 Dock 松手后,沿停靠边的位置按比例落盘(
edgeOffsetRatio,-1 贴起点、0 居中、+1 贴终点):之后展开、收起、收起把手都停在松手位置,不再自动回到边中间,方便躲开桌面上不想被遮挡的区域。 - 偏移随屏幕大小自适应,换分辨率、换主屏后按同一相对位置还原,且始终夹在屏幕内;旧配置(无该字段)保持居中。
- 构建与 166 项测试通过(新增沿边偏移的比例换算、越界夹取与往返一致性用例)。
0.6.0 0.6.0 (2026-10-08)
快捷项管理
- 新增统一的快捷项编辑,支持修改命令、文件或目录路径、网址、参数及工作目录,保留原顺序和自定义图标;新增目录和网址入口。
- Windows 支持为条目设置全局快捷键,检查重复与系统占用,保存后立即生效;多条快捷键共用一个消息线程,修复热键线程退出的 Win32 入口名称。
- 命令按原文执行,支持 CMD / PowerShell、工作目录、后台执行与终端保留输出;旧命令保留后台模式,新命令默认显示终端。
- 搜索结果不再显示「未配置」,只保留「+」;结果区域最高 300,四个停靠方向都可纵向滚动。
- 配置读取失败时提示原因、提供重新加载入口,禁止默认空配置覆盖原文件;共享锁和权限错误不再被当成 JSON 损坏。复制命令支持带空格的路径与启动参数,文件/目录添加去重。
design只保留index.html:菜单、搜索、设置、编辑、托盘和更新通过实际入口打开,共用快捷项与设置状态,交互与实现同步维护。- 构建与 154 项测试通过;单页原型交互、无头 UI 与 NativeAOT 验证全部通过。
0.5.2 0.5.2 (2026-10-08)
更新检查
- 默认只使用 GitHub 网页端点检查版本与解析安装包,不再自动回退到 API,避免共享出口 IP 的 API 配额耗尽导致检查失败。
- 读取最新版本时直接使用重定向响应头;当前版本已是最新时不请求安装包列表。安装包列表超时或不可用时仍提示已确认的新版本,可打开发布页下载;失败或空列表不缓存,下次检查重试。
- 推荐应用同步使用网页检查策略;修复取消检查后仍尝试 API 回退的问题。
- 构建与 137 项测试通过;真实 GitHub 验证可获取版本、Windows 安装包和校验文件,API 请求数为 0。
0.5.1 0.5.1 (2026-10-08)
界面原型对齐
- 设置窗口、命令行窗口、导入确认和许可证弹窗调整为原型定稿尺寸、间距、圆角与背景层次。
- 设置页签支持方向键循环切换,弹窗支持 Esc 关闭;Dock 图标按原型比例居中显示。
- 推荐应用卡片补充实时安装包文件名与大小,Dock 面板默认使用 100% 不透明度。
- 构建与测试通过:119 项测试全部通过。
0.5.0 0.5.0 (2026-10-07)
设置 · 推荐应用
- 设置窗口新增「推荐」页签:分享作者自研软件,一键下载并安装。首个条目为 Vex(维刻)——跨平台 Markdown 编辑器,后续按内置目录扩展。
- 安装包地址永不写死:目录只描述「软件是什么、从哪个仓库取」,运行时按操作系统实时解析该仓库 GitHub Releases 的最新发布(复用自更新的网页端点管线,不占 API 配额,1 小时进程内缓存 + 每 2 小时后台刷新)——被推荐的软件发了新版本,这里拿到的永远是最新安装包,QuickApp 自身无需发版。
- 安装流程对应原型
design/index.html设置窗口推荐页签的状态机:解析版本 → 下载(进度条 + 可取消,sha256 校验)→ 静默安装(Windows Inno/VERYSILENT)→ 已安装徽标。 - 安装完成后自动把快捷方式加入 Dock:按目录里的候选路径探测主程序(Windows
%LOCALAPPDATA%\Programs与%ProgramFiles%、Linux、macOS 各自一套),探测结果随安装记录持久化(recommended-state.json);快捷方式与 Dock 双向同步——编辑模式移除后卡片变回「加入 Dock」,可随时加回;导入配置覆盖后同样自动对齐。 - 手动安装场景(非 Windows 或无静默参数)只完成下载引导,确认装好后手动点「加入 Dock」,此时再探测一次主程序路径。
- 新增 6 项推荐服务单元测试(目录嵌入、按平台选包、无匹配包、TTL 缓存、强制刷新、平台路径),共 119 项。
0.4.4 0.4.4 (2026-10-04)
配置迁移修复(数据找回)
- 修复 v0.4.2/0.4.3 迁移缺陷:旧配置被错误拷到
%LOCALAPPDATA%根目录(少了一级QuickApp),导致升级后应用列表为空、主题回退默认浅色。升级到本版本后自动修复——用%APPDATA%\QuickApp里的旧配置覆盖自动生成的默认配置,散落的错误文件一并清理;%APPDATA%\QuickApp旧目录原样保留作备份。便携模式不受影响。 - 新增迁移单元测试(含坏迁移修复场景),共 112 项。
0.4.3 0.4.3 (2026-10-04)
全平台 NativeAOT 发布
- 所有发布平台(Windows / Linux / macOS)统一走 NativeAOT:完整反射元数据保全(
IlcGenerateCompleteTypeMetadata+IlcTrimMetadata=false,Prism/DryIoc 反射兼容),单线程 ILC;启动速度与内存占用进一步优化,发布件为原生单可执行文件。 - CI 矩阵按目标系统分发 runner(Linux 任务安装 clang/zlib1g-dev,linux-arm64 使用 arm64 runner),win-x86 不受 NativeAOT 支持保持自包含单文件(如适用)。
scripts/publish.ps1与 CI 使用同一套发布参数。
0.4.2 0.4.2 (2026-10-04)
数据目录规范化
- 用户数据统一迁移到系统标准应用数据目录:Windows
%LOCALAPPDATA%、Linux~/.local/share、macOS~/Library/Application Support(Environment.SpecialFolder.LocalApplicationData);旧版 Roaming(%APPDATA%)位置的数据在首次启动时自动迁移,旧目录原样保留作备份。 - 统一发布脚本入口
scripts/publish.ps1(-RuntimeIdentifier/-Version,输出artifacts/publish/<rid>/),本地发布与 CI 同一套逻辑。
0.4.1 0.4.1 (2026-10-04)
更新检查摆脱 API 配额
- 版本检查改走 GitHub 网页端点:
releases/latest的 302 落点直接给出最新版本号(只读响应头),版本变化时再经expanded_assets/{tag}(发布页懒加载资产列表的接口)解析安装包直链——全程不碰 api.github.com 的每小时配额,代理共享出口 IP 也不会再看到「GitHub API 限流中」。tag 与上次一致时直接复用缓存结果,一次资产请求都省掉。 - Releases API(ETag 条件请求 + 403/429 退避)降级为自动回退,网页端点改版或超时时才启用;下载与校验流程不变。
- 修复:Dock 在左右边缘间切换后,滚动指示条停留在旧边算出的一侧,看起来像应用块外沿多了条边框;现在换边后按新边重算。
0.4.0 0.4.0 (2026-10-01)
更新策略升级
- 运行中周期检查更新:启动时之外每 12 小时自动检查一次,Dock 常驻不再错过新版本;沿用「自动检查更新」开关,周期检查失败静默不打扰,发现新版本才提示。
- 抗限流:改用 ETag 条件请求,304 不计入 GitHub API 每小时配额——走代理共享出口 IP 时也能稳定检查;上次的 release 内容随 ETag 一起缓存,304 时继续版本比较,旧版本用户不会漏掉更新提示。
- 收到 403/429 按 GitHub 指示退避(X-RateLimit-Reset / Retry-After),恢复前不再发请求;检查失败提示具体原因与恢复时间(如「GitHub API 限流中,约 14:00 后恢复」)。
- 「立即检查」增加 15 秒防抖,短时间内重复点击不再重复请求。
- 修复版本比较边界:三段版本号(Revision=-1)不再被误判为有更新。
0.3.0 0.3.0 (2026-10-01)
新装应用即时可搜 + 自定义图标入库
- 搜索即时反映新装应用:开始菜单挂 FileSystemWatcher(事件驱动、平时零轮询),目录有变化只置脏标记,打开搜索面板时才补扫一次——装完软件不用重启 QuickApp,立刻就能搜到。
- 「更换图标」入库:选中的图片复制到配置目录 icons\ 子库(按条目 Id 命名、重复更换自动覆盖),原图删除/移动不再导致图标静默回退;MSIX 包 logo 路径不受影响。
- 配置导入导出改用 .qa(zip 容器:config.json + 图标库),换机迁移带上自定义图标;导入时映射回本机路径并清理失效的库外图标引用。按约定不兼容旧 .json 导出文件。
- 图标库孤儿清理:启动与导入后移除无引用文件;会话内不删,保留「移除可撤销」。
- 安装版↔便携切换同步迁移图标库并重映射条目图标路径,切换模式不再丢自定义图标。
- 修复:单元测试此前会读写真实 %APPDATA% 配置,现已全部隔离进临时目录。
0.2.7 0.2.7 (2026-09-30)
界面全面对齐设计稿
- Dock 工具区:四键图标统一 20px,未钉住时图钉倾斜 42°、钉住后转正并显示强调色,28px 键圆角 8。
- 右键菜单 / 更多操作菜单:整体缩窄;「停靠」改为四向图形选择器(点哪条边停靠哪条边,当前边高亮);菜单项配图标、危险项红色;去掉与设置重复的「关于」入口。
- 搜索:结果分组「已配置 / 系统应用」;系统应用行提供「未配置」徽章与添加按钮;支持拼音 / 首字母 / 路径匹配并按相关度排序。
- 编辑模式:拖动排序改为插入线指示;提示与按钮分列两端;图标不再悬浮放大。
- 更新提示:横排更新条与竖排「新版本」胶囊 + 弹出卡片,下载中显示进度,修复竖排 Dock 被压扁的问题。
- 托盘菜单重构为 MVVM,菜单顺序与状态标注对齐设计稿。
- 面板不透明度固定 100%,移除外观页不透明度设置项;设置窗口修复左侧导航对齐。
- 快捷方式显示目标程序真实图标(去除 Shell 合成箭头);收起把手按物理屏幕边界内缩居中。
- 主题支持「跟随系统」,操作系统切换深浅模式时界面实时跟随。
- 配置增强:滚动备份 config.1~4.json、安装版/便携版一键切换、打开配置文件夹入口。
0.2.6 0.2.6 (2026-09-29)
修复
- 打开应用右键菜单时保持 Dock 显示,直到右键菜单关闭后才恢复自动隐藏计时。
- 点击“从 Dock 移除”后,在移除操作完成后关闭右键菜单,避免菜单继续悬浮。
0.2.5 0.2.5 (2026-09-28)
修复与改进
- 从图标右键菜单移除应用后立即关闭菜单,避免弹层残留在 Dock 上。
- 放大真实应用图标并移除彩色底板和内部留白;无图标占位与键盘焦点提示保持可见。
- 发布页现在展示按版本编写的中文更新说明,列出实际修复内容。
0.2.4 0.2.4 (2026-09-28)
Full Changelog: https://github.com/dotnet9/QuickApp/compare/v0.2.3...v0.2.4
0.2.2 0.2.2 (2026-09-28)
Full Changelog: https://github.com/dotnet9/QuickApp/compare/v0.2.1...v0.2.2
0.2.1 0.2.1 (2026-09-28)
Full Changelog: https://github.com/dotnet9/QuickApp/compare/v0.2.0...v0.2.1