Files
Shuery 60f2ae3e0f docs: TUI 与入口重组的设计记录(4 条 ADR + 验收锚点)
grilling 三轮把设计树走完了,这里把它落成文件,避免决策只活在对话里。

ADR-0010 零依赖自研 TUI:三个候选库全部实测排除 —— ConsoleGuiTools 的 PSGallery 元数据声明最低 7.2(5.1 装不上);Spectre.Console 0.49.1 能在 5.1 加载但要塞 4 个第三方 DLL 且不支持鼠标;Terminal.Gui 1.15.0 能反射接线到真的渲染出窗口,但 Application.Shutdown() 在两端都抛 NRE。同时记下两条实测坑:无控制台时 $Host.UI.SupportsVirtualTerminal 会撒谎返回 True(第一道闸门必须是 [Console]::IsOutputRedirected),以及 5.1 的 RawUI.LengthInBufferCells 对中文返回 2、对边框字符返回 6(都不能用来排版)。

ADR-0011 进度回调这个例外:它是注入点不是状态,无头路径为 $null 时行为与今天完全一致。

ADR-0012 入口改名与垫片:这次留垫片而 Common.psm1 直接删,是因为前者是外部接口(断了是静默没用)后者是内部实现(断了当场报错)。并纠正了自己的一个伪前提 —— 本机实测没有注册任何 BakNRet 计划任务。

ADR-0013 TUI 写配置:外科式改写 + 校验通过才原子替换。硬事实是 SoftwareCatalog.psd1 根本不能被 Import-PowerShellDataFile 读入(动态表达式),任何"解析成对象再序列化"的方案都会毁掉表达式与注释。

.scratch/tui/spec.md 是这次改造的验收锚点:9 条已定决策 + 三轮的判据 + 风险表。

验收:Parse 两版仍绿。
2026-09-27 15:27:01 +08:00

32 lines
851 B
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 归档本体不进版本库(数 GB,且是随时可重建的产物)
Backups/
# 运行日志
logs/
# 压缩过程中的临时归档(正常情况下不会残留;中断时可能留下,便于排查)
*.tmp.7z
*.tmp.zip
*.tmp.rar
# 测试用的本地依赖(Pester 等,见 tools/Install-TestDependencies.ps1)
.tools/
# 口令与私钥文件绝不进版本库。
# BackupConfig.psd1 的 PasswordFile 默认值为空:口令应放在仓库之外
# (用 $env:BAKNRET_PASSWORD,或用 -KeyFile 指向仓库外的文件)。
*.key
*.pfx
# 编辑器 / 系统杂项
.vscode/
*.swp
Thumbs.db
desktop.ini
# 单文件构建产物(tools\Build-BakNRetModule.ps1 可随时重建)
dist/
# 调研探针的解包产物(NuGet 解包件与 .nupkg):结论进 ADR,二进制不进仓库
.scratch/_probe/load/
.scratch/_probe/nuget/