Skip to content

History / Home

Revisions

  • docs(07): 归档响度均衡研究——扁平属性写得进但 Win11 不读,标未结 **为什么改** 用户需求是「给扬声器加音量均衡开关」。实现完成后机械验证全绿(写入字节、 状态回读、菜单位置、5 台设备往返),但用户耳朵验收**无变化**。因暂时无法 定论,按「不把半成品留在主干」的惯例把代码回退,研究过程存档待续。 **怎么改** 07 页新增 §12,六小节:属性位置与两条实现路径 / IPolicyConfig 免提权方案 / PROPVARIANT 偏移坑 / Win11 只认实例存储的未结矛盾 / 设备支持性无法判别 / 续做入口;Home.md 导航同步 §12 指针。 **踩过的坑(判据要点)** ① **ACL 不可推断,必须实测**:`Get-Acl` 显示 `BUILTIN\Users` 有 `SetValue` 且 `ContainerInherit`,看着能写;实则 ACL 里另有显式 DENY,`RegOpenKeyExW` 四个 访问掩码全返回 ACCESS_DENIED。差点据此做出「非管理员可写」的错误结论。 ② **PROPVARIANT 联合体在偏移 8**:按「头 + 立刻跟联合体」直觉写会让布尔值落到 偏移 4 → 属性能读到、真值恒假,且**不报任何错**。自检单测当场转红才拦住。 ③ **自造判据的下场**:§12.5 记录的设备支持性判据来自第三方工具的单台设备样本, 被我当成通用规则写进了上一轮结论,后经 22 台全量扫描证伪。已在页面中明确记 「该判据错误」并说明来源,避免下一个人重复踩。 **影响边界** 仅文档。主干代码已回退到 c67f261,工作区无残留。**系统侧有一处未还原**:DUNU DTC100pro 的响度属性被写成 ON,需要提权才能改回(已告知用户命令)。 **验证结论** 文档改动,`git diff --stat` = 2 文件 +118/-1;Home.md 表格 19 行均为 5 列, 结构未被破坏。主仓 `git status` 干净。

    @oneday5799 oneday5799 committed Oct 11, 2026
  • docs: 校准三处过期指针、补 tooltip 字号决策史与三态判据的完整留档 背景:AGENTS.md 精简与注释清理暴露出 Wiki 自身的三类问题:脚本搬了家、 判据被删成了空头承诺、决策史只存在于代码注释里(本轮已按体例删掉)。本批一并安置。 ① **过期指针 2 处**(脚本在主仓 `0ada59a` / `a03674c` 移动后漂移): · 01-项目概览 的目录树写 `generate_icons.mjs(不入版本控制)`——文件已改名为 `tools/generate-app-icons.mjs` 且**已入库**;`tools/` 子树一并补成现状 (含承重注释闸门、doc-table-audit、任务栏图标生成器、剥离器、local/)。 · 15 §8.5 写 `generate_music_icons.mjs`——该脚本已删,现役是 `tools/generate-widget-icons.mjs`(偏移算法在同目录 `svg-offset.mjs`)。 ② **Wiki 08 §2 缺记第 8 类**:该节标题写「七类」、正文只到第 7 类, 而 AGENTS.md 却写着「八条的判据细节见 Wiki 08 §闸门」——一句空头承诺。 ⇒ 补第 8 类(GDI 文本入口空串闸,含悬垂哨兵指针的判据与 `[ \t]` vs `\s` 的踩坑)与第 9 类(钩子不得落后于模板,含「`.git/hooks/` 不随仓库走 ⇒ 漂移是静默的」这一根因),标题与维护矩阵统一为九类。 ③ **补两处决策史留档**(原本只在代码注释里): · 15 §4.7.3 **tooltip 字号决策史**:6(凭观感,作废)→ 12(对齐 base.css, 用户嫌「太虚太小」)→ 15(对齐面板歌名实际像素高 12 DIP × 125%)三步各带出处, 外加与 WPF 那个 tooltip 仍有的两处**有意**不同(字号档位、参照点), 以及初始延迟为何不跟它改成 800ms。 · 15 §4.7.4 **tooltip 自绘决策**与 §8.6.3 **三层维度表**(组件存不存在 / 记住的那块可用吗 / 回落)——原判据指向的 `config::taskbar_widget_visible` 已被删除,判据一度成了空头。 ④ **F99 页补三处入口**:`F99-Pro-排障过程`(单机排障流水,138 行)在 Home.md、 `_Sidebar.md`、AGENTS.md 三处都没有入口,正撞在「新增页面三处同步, 漏一处即双源漂移」上 ⇒ 三处补齐,并在 Home 标注它是单机流水、非常设章节。 影响边界:仅文档,无代码改动。node tools/doc-table-audit.mjs 对全 Wiki 111 个表格块 0 问题。

    @oneday5799 oneday5799 committed Oct 6, 2026
  • wiki: 补建 15 任务栏内嵌与自绘、16 物理设备身份两页,并补录 6 个漏记模块 起因:本地 AI 记忆(.workbuddy-ai,已 gitignore)里积累了 2026-09-21~26 的大量实测结论, 但 **Wiki 完全缺失**——`taskbar_widget`(本仓最大模块,4009 行)与 `device_identity` (2748 行)两个主题此前只存在于本地记忆,任何人查 Wiki 都查不到。 本次把「结论、纪律、踩坑、实测数据」融合进来,逐轮调试流水与探针脚本不进 Wiki。 新增两页: - 15-任务栏内嵌与自绘:四路取舍结论(自绘分层子窗口被采用)、分层子窗口「可见四条件」、 `supportedOS` 与 app.manifest 铁律、Z 序(SetParent 落顶只是副产品)、命中测试按 alpha 走、 两条 DPI 口径、source-over 合成、任务栏专属验收方法论(观测口径 + 像素判据六坑)、 **已退役的两代「避让」方案留档**。 - 16-物理设备身份:ContainerId 三级降级链、容器 GUID 版本位 = 派生方式、占位容器黑名单、 BaseContainers 反向索引、hidapi 路径映射、CM_Get_Device_ID_ListW 的三种静默失败、 2.4G 电量分域、「重命名 vs 身份键」、落地沿革。 既有页补录: - 03 章:补记 6 个此前**完全漏记**的模块(taskbar_widget / device_identity / battery_notify / bt_ble / toast / xinput),并声明两批行数口径(新批次 as-of ccdc445, 旧批次 as-of 8a42d8d 不追改,按「行号漂移惰性处理」规范)。模块数 27 → 30。 - 04 章:新增「给设置页新增一个标签页」小节 —— 必改清单 5 条 + 三个静默坑 (折叠卡初始化必须用固定值 / bindToggle 内部会写盘 / initComboBox 打开后把 flyout 移进 body)。 - 08 章:新增 §4.5 MSIX 可写路径与包身份验收(含 `-PreventBreakaway` 这个必踩参数)、 撤回重发机制;第 4 类校验补 stdio EBUSY 矩阵与 spawnSync 诊断陷阱。 验证: - `node tools/doc-table-audit.mjs D:/Code/PeriTray.wiki` → 19 份文档、表格块 84、硬失败 0 - 内部链接体检:110 个链接全部无扩展名且目标存在,断链 0 - `§N` 指针体检:19 处全部可解析到实际章节 - 与 AGENTS.md 无表述冲突;AGENTS.md 侧同步新增「任务栏内嵌纪律」节与页面清单

    @oneday5799 oneday5799 committed Sep 27, 2026
  • wiki: 融合代码审查与整改复盘为 12/13/14 三页,并同步导航与过时内容 新增三页(原 docs/code-review/ 6 份过程档案的结论融合,过程稿不再保留): - 12-代码审查与整改复盘:审查范围与局限、39 与 41 两个口径、41 条最终处置总表、 批次与关键提交、计划外 B1~B15、未决项决策 1~8、明确不做、Slint 评估结论存档 - 13-架构决策与纪律:15 条纪律,每条 = 为什么 + 反例 + 判据 (持锁区纯内存、锁序白名单、RAII 守卫、失败路径回滚、事件回调线程、同步命令禁重活、 window_getter 无超时、中毒处理统一、超时自愈、配置写入语义、前端访问与加载序、 CSP 安全面、日志与进程) - 14-工程实践与验收方法论:可证伪判据、验证三分法、回归闸门≠验收闸门、 注入式验证与确定性压力探针、判据自身的四类缺陷、五层判据、自指型断言体检、 避坑清单 30 条、回归风险→验证、引用与行尾纪律 同步: - Home.md:导航表加 3 行;intro 补「架构纪律与验收方法论」 - _Sidebar.md:新增「复盘与方法」分组 - Wiki-维护规范.md:模式 A 触发事件表补 3 行(架构纪律→13、验收方法论→14、处置状态→12) - 08-工程化与工具链.md:修掉写死的 clippy 基线条数(改为以 check-clippy.mjs 的 BASELINE_ALLOW 为准);改写 release.yml 与发版流程(改为 tag → CI 自动发布 + body_path 注入手写 notes,并写明「本仓不用 PR ⇒ 自动正文只有一行 compare 链接」) 体检:node tools/doc-table-audit.mjs ../PeriTray.wiki → 17 份文档 / 55 表格块 / 硬失败 0; 内部链接断链 0 处。

    @oneday5799 oneday5799 committed Sep 20, 2026
  • wiki: 08 章补 clippy 闸门;顺带订正「校验类数」的 7 处陈旧副本(01/07/08/09/Home) 触发项 `Wiki-维护规范` §2 模式 A 明确列有「工具链 / 闸门 / CI / 发版流程变化 → 08 章 + AGENTS.md 对应节」。主仓已随 61a3c65 把 clippy 加进 CI 与 pre-commit(AGENTS.md 同步), Wiki 08 章仍是旧的「fmt + check」两道,属必须同步项。 改法(08 章) - §1 闸门总览图:两侧各补 clippy 一行;并注明 pre-commit 走 `--optional` (未装组件时告警跳过),而 **CI 调同一条命令但不带该参数 ⇒ 硬失败**。 热增量成本由「约 3-4s」改为分档说明(Rust 未动 <1s;Rust 有改动 fmt+check 约 3s, 另加 clippy 约 6~14s)。 - §3 Rust 侧闸门:新增 clippy 条目,写明它是 **`-D warnings` + 20 条存量基线 `-A` + 3 条显式 `-D`**, 以及入闸门时实测的 **88 条**(全是风格类、与本次审查 40 条发现零交集)、 3 条显式开启项(`await_holding_lock` / `await_holding_refcell_ref` / `mutex_atomic`)。 - §3 **同时写明边界**(防被读成「Rust 侧已闭合」):基线那 20 条对新增代码同样放行; `.lock().unwrap()` **clippy 默认不覆盖**(lint 是 restriction 组的 `unwrap_used`, 开启后全仓 94 条);`let _ =` 丢 must_use 无机械防线;异步里的 `thread::sleep` (24 处)无对应 lint;基线写错 lint 名会以 `error[E0602]` 变红而非静默失效。 - §4 CI 工作流:步骤由「四步」改为「九步」并列出 clippy 一步; 另加一条告警——`on.push.branches` 只含 `main`(外加 `pull_request`), **特性分支 push 不触发 CI**,闸门要到合并 main 或开 PR 才执行。 顺带订正:校验类数的陈旧副本(**7 处、5 个文件**) AGENTS.md 与 check.mjs 头部都写 **七类**(第 7 类 = Toast 契约,P1-6 引入), 而 Wiki 有 **6 处**仍写「五类校验」,且 08 §2 的详解**只写到第 6 类、缺第 7 类**: - `01-项目概览.md:53`、`:70`;`08-工程化与工具链.md:113`;`09-开发指南.md:90`; `Home.md:20`、`:32` —— 全部「五类校验」→「七类校验」。 - `08-工程化与工具链.md:25` 标题「六类校验详解」→「七类校验详解」, 并**补上缺失的「第 7 类:Toast 契约」**(注明此前只写在 AGENTS.md)。 - `07-踩坑复盘-高频回归.md:141` 另有一处**编号漂移**:BOM 条目写「第 4 类校验由此而来」, 而 check.mjs 头部与 AGENTS.md 均为 **第 5 类**(第 4 类是 JS 语法机检)→ 已改。 - 另在 `Home.md:20`/`:32` 顺带补上 clippy 一词,使导航摘要与本章一致。 自检(按 `Wiki-维护规范` §5 清单逐条) - 内部链接无扩展名且可解析:`grep -rn "](.*\.md)" *.md`(排除 github.com)⇒ **0 处**。 - 新增/删除页面:**无**,故未动 Home 表结构(Home 的改动只是措辞)。 - 引用的 commit SHA 在主仓存在:本次 diff 新增行里的 SHA 只有 `5a56589`(07 章原有行, 因改「第 4 类」而整行重现)——`git cat-file -t 5a56589` ⇒ **commit** ✅。 08 章原有的 `4f39219` 同样 `commit` ✅。**本次未新增任何 SHA**。 - 踩坑条目 §4 五段模板:本次未新增踩坑条目。 - 与 AGENTS.md 无表述冲突:四处关键数字(88 条 / 20 条基线 / 94 条 / 24 处) 在 AGENTS.md 与 08 章**各命中 1 次且一致**。 - 行尾:5 个改动文件均保持 CRLF(CRLF 数 == 总行数)。 回归点 纯文档。风险点是「同一事实的副本数」——本次一次改掉 7 处,若日后又出现 「五类/六类」表述,按本仓惯例应**先 `grep` 全文找出所有副本再改**, 否则等于制造新的双源漂移(这正是 08 章本次新增内容的同源教训)。

    @oneday5799 oneday5799 committed Sep 18, 2026
  • wiki: 项目更名 PeriphMonitor → PeriTray

    @oneday5799 oneday5799 committed Sep 1, 2026
  • wiki: v1.3.3 校准轮 — 版本演进史补全、命令/模块/行数更新

    @oneday5799 oneday5799 committed Aug 30, 2026
  • wiki: 新增 11-支持设备列表页(76 PID 全清单),同步导航

    @oneday5799 oneday5799 committed Aug 25, 2026
  • wiki: 新增 Wiki-维护规范页,修复两处仓库链接缺失右括号 - 新增 10 章:职责边界/维护时机矩阵/操作流程/内容模板/自检清单 - Home 与 Sidebar 同步导航;09 章维护约定收敛为指向 10 章单一出处 - 修复 sed 转换时误删的 ]( 链接右括号(Home/01 各一处)

    @oneday5799 oneday5799 committed Aug 24, 2026
  • Publish full wiki: architecture, modules, pitfall retrospectives, toolchain, dev guide

    @oneday5799 oneday5799 committed Aug 24, 2026