edit | blame | history | raw

AppGrid与交互容器

生成日期:2026-07-09

当前状态

最近结论摘录

  • AppGrid 备注气泡输入框 placeholder 可读性修复:从系统默认 placeholderString 改为显式 placeholderAttributedString
  • 设计决策:placeholder 使用 white alpha 0.48,可接受范围 0.46-0.52;正文颜色、输入框背景、文案和尺寸均不改。
  • 本地化边界:placeholder 仍使用 tr("appNote.placeholder"),不写死中文。
  • QA 门禁:Scripts/app_note_bubble_input_qa.sh 增加 placeholder 可读性防回归,并保留 IME marked text、提交 / 取消和备注长度上限检查。
  • 交付快照:补建 8.3.7 (20260822.2207) ad-hoc signed 本地测试 DMG;不是 ASC 上传包,也未做公证。
  • Owner 体验验收:2026-08-28 用户已安装验证 8.3.7 (20260822.2207) 本地测试 DMG,并确认 placeholder 字色效果 OK。
  • 范围边界:Owner 验收只覆盖本地体验包和 AppGrid 备注气泡 placeholder 字色优化,不等同 ASC 上传包、公开发布放行或其它新需求验收。

核心事实补录

2026-06-08 legacy/codex-20260610/session-history/2026-06-08-AppGrid抖动修复.md

# Taglauncher 会话记录 - 2026-06-08 AppGrid抖动修复
## 用户目标
用户确认采用低风险方案:hover 只保留高亮/填色,不再自动滚动;点击 tag 仍滚动到对应分组。
## 已完成事项
- 将任务登记到 `/Users/ar/Projects/Taglauncher/src/TODO.md` 的 `In Progress`。
- 修改 `/Users/ar/Projects/Taglauncher/src/Apptag/ContentView.swift`:
  - 移除 `AppGridInteractionState` 中只服务于 hover 自动滚动的 `tagNavigationLastHoverScrollID` 与 `tagNavigationLastHoverScrollAt`。
## 用户目标
用户确认采用低风险方案:hover 只保留高亮/填色,不再自动滚动;点击 tag 仍滚动到对应分组。
## 已完成事项
- 将任务登记到 `/Users/ar/Projects/Taglauncher/src/TODO.md` 的 `In Progress`。
- 修改 `/Users/ar/Projects/Taglauncher/src/Apptag/ContentView.swift`:
  - 移除 `AppGridInteractionState` 中只服务于 hover 自动滚动的 `tagNavigationLastHoverScrollID` 与 `tagNavigationLastHoverScrollAt`。
  - 移除 `tagNavigationHoverScrollInterval`。
  - 从 `handleTagNavigationHover()` 中移除 `scrollToTagFromHover(id)` 调用。
  - 删除 `scrollToTagFromHover(_:)` 函数。
## 已完成事项
- 将任务登记到 `/Users/ar/Projects/Taglauncher/src/TODO.md` 的 `In Progress`。
- 修改 `/Users/ar/Projects/Taglauncher/src/Apptag/ContentView.swift`:
  - 移除 `AppGridInteractionState` 中只服务于 hover 自动滚动的 `tagNavigationLastHoverScrollID` 与 `tagNavigationLastHoverScrollAt`。
  - 移除 `tagNavigationHoverScrollInterval`。
  - 从 `handleTagNavigationHover()` 中移除 `scrollToTagFromHover(id)` 调用。
  - 删除 `scrollToTagFromHover(_:)` 函数。
- 保留 `activateTagNavigation(_:)` 中的 `scrollTo(id)`,因此点击 tag 仍会滚动到对应分组。
## 验证结果

2026-06-08 legacy/codex-20260610/session-history/2026-06-08-AppGrid抖动排查.md

# Taglauncher 会话记录 - 2026-06-08 AppGrid抖动排查
## 用户目标
用户提供 `/Users/ar/Desktop/奇怪的抖动问题.mp4`,要求先判断奇怪交互抖动的成因,并评估修复风险。
## 已完成事项
- 读取并遵守 `~/.codex/rules/qa-workflow.md` 与 `~/.codex/rules/delivery-gate.md`。
- 使用 `ffprobe` 检查视频:8.88 秒,1920x1080,约 19.49 fps。
- 使用 `ffmpeg` 抽取 contact sheet:
- 使用 `ffmpeg` 抽取 contact sheet:
  - `/private/tmp/taglauncher-jitter-frames/contact.jpg`
  - `/private/tmp/taglauncher-jitter-frames/contact-4fps.jpg`
- 读取并分析相关源码:
  - `/Users/ar/Projects/Taglauncher/src/Apptag/ContentView.swift`
  - `/Users/ar/Projects/Taglauncher/src/Apptag/AppGridCollectionView.swift`
  - `/Users/ar/Projects/Taglauncher/src/Apptag/TagNavigationView.swift`
  - `/Users/ar/Projects/Taglauncher/src/Apptag/AppGridSupport.swift`
## 初步判断
- `/private/tmp/taglauncher-jitter-frames/contact.jpg`
  - `/private/tmp/taglauncher-jitter-frames/contact-4fps.jpg`
- 读取并分析相关源码:
  - `/Users/ar/Projects/Taglauncher/src/Apptag/ContentView.swift`
  - `/Users/ar/Projects/Taglauncher/src/Apptag/AppGridCollectionView.swift`
  - `/Users/ar/Projects/Taglauncher/src/Apptag/TagNavigationView.swift`
  - `/Users/ar/Projects/Taglauncher/src/Apptag/AppGridSupport.swift`
## 初步判断
- 视频中的抖动主要表现为 AppGrid 内容在不同分组位置之间跳动,而不是单个图标 hover 的局部放大。

2026-06-08 legacy/codex-20260610/session-history/2026-06-08-AppGrid抖动验收.md

# Taglauncher 会话记录 - 2026-06-08 AppGrid抖动验收
## 用户目标
用户使用新版后反馈:与修复前相比变化不大,仍有一点小抖,但当前效果可以接受。
## 已完成事项
- 将 `/Users/ar/Projects/Taglauncher/src/TODO.md` 中 App Grid 顶部 tag hover 抖动修复任务从 `In Progress` 移动到 `Done`。
- 在 Done 记录中补充用户真实体验验收结论:仍有轻微小抖,但可接受,本轮不继续扩大修复范围。
## 已完成事项
- 将 `/Users/ar/Projects/Taglauncher/src/TODO.md` 中 App Grid 顶部 tag hover 抖动修复任务从 `In Progress` 移动到 `Done`。
- 在 Done 记录中补充用户真实体验验收结论:仍有轻微小抖,但可接受,本轮不继续扩大修复范围。
## 关键决策
- 当前不再继续扩大到 AppGrid 布局算法、hover bubble 或窗口层级的更大改动。
- 保留本轮低风险改动:hover 不触发自动滚动,点击 tag 仍滚动。
## 文件变更
- `/Users/ar/Projects/Taglauncher/src/TODO.md`
- 当前不再继续扩大到 AppGrid 布局算法、hover bubble 或窗口层级的更大改动。
- 保留本轮低风险改动:hover 不触发自动滚动,点击 tag 仍滚动。
## 文件变更
- `/Users/ar/Projects/Taglauncher/src/TODO.md`
## 未决问题
- 残余轻微小抖仍存在,后续如需要继续优化,可单独复盘 AppGrid layout bounds invalidation、hover bubble 命中区域和 tag navigation 高亮/填色重绘。
## 后续建议

2026-07-01 2026-07-01-标签额度PRD.md

- 新增 PRD:
  - `/Users/ar/Projects/Taglauncher/src/Docs/Requirements/2026-07-01-pro-custom-container-quota-prd.md`
- 新增长期备忘:
  - `/Users/ar/Projects/Taglauncher/src/Docs/Requirements/free-vs-pro-feature-memo.md`
## 核心事实 / 变更快照
### 变更对象
TagLauncher 免费版 / Pro 版标签维护权限边界。
- 新增长期备忘:
  - `/Users/ar/Projects/Taglauncher/src/Docs/Requirements/free-vs-pro-feature-memo.md`
## 核心事实 / 变更快照
### 变更对象
TagLauncher 免费版 / Pro 版标签维护权限边界。
### 事实来源
## 核心事实 / 变更快照
### 变更对象
TagLauncher 免费版 / Pro 版标签维护权限边界。
### 事实来源
- 本轮用户讨论。

2026-07-01 2026-07-01-标签额度刷新审查.md

作为代码审核员 C / QA,只读审查 TagLauncher 8.3.0 新问题的验收方案:免费用户编辑或维护标签后,Settings Tags 顶部自定义容器额度文案没有实时刷新,仍显示 0/6。用户要求不要改代码,并回答静态 QA 断言、应跑的现有 QA 命令,以及不截图 / 不真实点击时自动化证据与人工验收边界。
## 已完成事项
- 已读取 `qa-workflow` skill、`CODE_GOVERNANCE.md`、全局 QA 规则、研发前置讨论规则、`CODEGRAPH.md`。
- 已只读检查当前工作区状态:当前分支 `codex/pro-custom-hotkeys-8.2.0`,工作区已有多处未提交改动,本轮不修改。
- 已定位相关源码:
  - `src/Apptag/TagEditorView.swift`
  - `src/Apptag/PreferencesView.swift`
- 已定位相关源码:
  - `src/Apptag/TagEditorView.swift`
  - `src/Apptag/PreferencesView.swift`
  - `src/Apptag/ContentView.swift`
  - `src/Apptag/ProEntitlement.swift`
  - `src/Apptag/DataLayer.swift`
  - `src/Scripts/pro_custom_container_quota_qa.sh`
## 关键判断
- `src/Apptag/TagEditorView.swift`
  - `src/Apptag/PreferencesView.swift`
  - `src/Apptag/ContentView.swift`
  - `src/Apptag/ProEntitlement.swift`
  - `src/Apptag/DataLayer.swift`
  - `src/Scripts/pro_custom_container_quota_qa.sh`
## 关键判断
- 现有 `pro_custom_container_quota_qa.sh` 主要覆盖额度模型、门禁、文案和数据层规则,不足以覆盖“成功维护标签后顶部额度文案触发 SwiftUI 重新渲染”。

2026-07-01 2026-07-01-额度状态审查.md

作为 TagLauncher 崩溃 / 新问题代码审核员 A,只读审查 8.3.0 新问题的最小修复方案,不修改源码。
问题:免费用户编辑 / 维护 4 个标签后,标签页顶部“免费用户可以使用6个自定义标签(容器):已使用 0 / 6”没有实时变化。
关注文件:
- `/Users/ar/Projects/Taglauncher/src/Apptag/TagEditorView.swift`
- `/Users/ar/Projects/Taglauncher/src/Apptag/ContentView.swift`
- `/Users/ar/Projects/Taglauncher/src/Apptag/PreferencesView.swift`
- `/Users/ar/Projects/Taglauncher/src/Apptag/TagEditorView.swift`
- `/Users/ar/Projects/Taglauncher/src/Apptag/ContentView.swift`
- `/Users/ar/Projects/Taglauncher/src/Apptag/PreferencesView.swift`
- `/Users/ar/Projects/Taglauncher/src/Apptag/ProEntitlement.swift`
- `/Users/ar/Projects/Taglauncher/src/Scripts/pro_custom_container_quota_qa.sh`
## 已完成事项
- 只读检查当前工作区、分支和 worktree。
- `/Users/ar/Projects/Taglauncher/src/Apptag/TagEditorView.swift`
- `/Users/ar/Projects/Taglauncher/src/Apptag/ContentView.swift`
- `/Users/ar/Projects/Taglauncher/src/Apptag/PreferencesView.swift`
- `/Users/ar/Projects/Taglauncher/src/Apptag/ProEntitlement.swift`
- `/Users/ar/Projects/Taglauncher/src/Scripts/pro_custom_container_quota_qa.sh`
## 已完成事项
- 只读检查当前工作区、分支和 worktree。
- 只读审查自定义标签容器额度状态流、TagEditorView mutation 回调、ContentView / PreferencesView 顶部 accessory、ProEntitlement quota policy 和现有 QA 脚本。

2026-07-01 26.0701-Taglauncher.Coder3-标签额度文案补修.md

# 26.0701-Taglauncher.Coder3-标签额度文案补修
## 用户目标
根据用户直接提供的截图 `/Users/ar/Desktop/Screencapture/SCR-20260701-phds.png`,修正 8.3.0 标签额度相关 UI 文案:
- Pro 对比表“可维护标签数量”的 Pro 列“没有限制”前漏了一个 `✅`。
- 标签页顶部额度行文案改为“免费用户可以使用6个自定义标签(容器):”。
- 更新 29 个本地化 JSON:
  - `settings.proStatus.unlimitedTags` 全部加上前置 `✅`。
  - `pro.customContainers.quotaShort` 改为“免费用户 / free users 可使用 6 个自定义标签(容器)”语义,并保留 `%used%`、`%limit%` 占位符。
- 更新自动化 QA:
  - `Scripts/pro_localization_qa.sh` 增加英文、简体中文和全语言 `unlimitedTags` 前置 `✅` 检查。
  - `Scripts/pro_custom_container_quota_qa.sh` 增加简体中文额度文案和 `✅没有限制` 检查。
## 核心事实 / 变更快照
- 变更对象:Pro 对比表第一行 Pro 列状态、标签页自定义容器额度行。
- 更新自动化 QA:
  - `Scripts/pro_localization_qa.sh` 增加英文、简体中文和全语言 `unlimitedTags` 前置 `✅` 检查。
  - `Scripts/pro_custom_container_quota_qa.sh` 增加简体中文额度文案和 `✅没有限制` 检查。
## 核心事实 / 变更快照
- 变更对象:Pro 对比表第一行 Pro 列状态、标签页自定义容器额度行。
- 变更前:
  - 简体中文 Pro 列第一行显示 `没有限制`。
  - 简体中文标签页额度行显示 `自定义容器:已使用 %used% / %limit%`。

2026-07-01 26.0701-Taglauncher.发布修复-编辑标签崩溃和额度刷新.md

# Taglauncher 8.3.0 编辑标签崩溃和额度刷新
## 用户目标
- 修复 8.3.0 中“试图编辑标签时系统卡死 / 崩溃”的阻塞问题。
- 用户人工验证后确认:现在可以编辑标签,不会在编辑标签时卡死。
- 同轮补修免费用户自定义标签额度顶部文案不实时刷新:用户已编辑 4 个标签,但仍显示 `0 / 6`。
- 生成新的 8.3.0 DMG 供最终人工验收。
- 代码仓库:`/Users/ar/Projects/Taglauncher`
- 源码根目录:`/Users/ar/Projects/Taglauncher/src`
- 用户提供 hang 日志:`/Users/ar/Desktop/26.0701crashlog`
- 用户明确要求:排查崩溃时拉一位架构师和三位代码审核员共同看原因;后续额度刷新方案也拉架构师和代码审核员看。
## 关键决策
- 编辑标签卡死根因判断:`NSTextField.mouseDown(with: event)` 被同一个 `NSEvent` 手动转发,可能进入 AppKit 控件追踪递归。
- 修复策略:不再手动把原始 `mouseDown` 事件转发给 `NSTextField`,改为语义聚焦 / 首次选中,后续点击让原生文本框处理光标。
- 代码仓库:`/Users/ar/Projects/Taglauncher`
- 源码根目录:`/Users/ar/Projects/Taglauncher/src`
- 用户提供 hang 日志:`/Users/ar/Desktop/26.0701crashlog`
- 用户明确要求:排查崩溃时拉一位架构师和三位代码审核员共同看原因;后续额度刷新方案也拉架构师和代码审核员看。
## 关键决策
- 编辑标签卡死根因判断:`NSTextField.mouseDown(with: event)` 被同一个 `NSEvent` 手动转发,可能进入 AppKit 控件追踪递归。
- 修复策略:不再手动把原始 `mouseDown` 事件转发给 `NSTextField`,改为语义聚焦 / 首次选中,后续点击让原生文本框处理光标。
- 额度刷新根因判断:顶部 `customContainerQuotaAccessory` 直接读数据库派生值,但缺少明确 SwiftUI 状态驱动,保存后父视图不稳定重算。

2026-08-22 26.0822-Taglauncher.AppGrid备注气泡-placeholder字色.md

# 2026-08-22|TagLauncher|AppGrid 备注气泡|placeholder 字色
## 用户目标
用户在截图中指出 AppGrid 图标备注气泡的输入框提示文字“APP 用途备注”太暗,几乎看不见;但该文字只是 placeholder,不应过分抢眼。
## 关键决策
- 本轮只改 placeholder 字色,不改文案、不改输入框尺寸、不改输入框背景、不改正文颜色。
- placeholder 仍使用 `tr("appNote.placeholder")`,不写死中文;多语言继续显示各自翻译。
- 本轮生成的是 ad-hoc signed 本地安装测试 DMG,不是 App Store Connect 上传 `.pkg`,也不做公证 / ASC 发布。
## 核心事实 / 变更快照
- 变更对象:AppGrid 备注气泡输入框 placeholder 视觉层级。
- 事实来源:
  - `/Users/ar/Projects/Taglauncher/03-O/C1.source/Apptag/AppGridSupport.swift`
  - `/Users/ar/Projects/Taglauncher/03-O/C1.source/Scripts/app_note_bubble_input_qa.sh`
  - `/Users/ar/Projects/Taglauncher/03-O/CODEGRAPH.md`
- 变更前:`NSTextField` 使用 `field.placeholderString = placeholder`,系统默认 placeholder 色在 `Color.black.opacity(0.92)` bubble 和 `Color.white.opacity(0.12)` 输入框背景上过暗。
- 变更后:`placeholderAttributedString` 使用 `NSColor.white.withAlphaComponent(0.48)`。
- 源码变更 commit:`1ec08b1dedff313e385767edb0c2b815b6dd56f3`。
- 测试包归档 commit:`eab3bec`。
- 本地测试 DMG:`/Users/ar/Projects/Taglauncher/03-O/C2.builds/LocalTest-8.3.7-20260822.2207/Archive/TagLauncher-8.3.7-build20260822.2207-localtest.dmg`。
- SHA256:`4fef51bfa26eb1d73fbb5de4e3a336d5a2a5ed02aa658995126012ace6e04c9f`。
## 验证
已通过 `Scripts/app_note_bubble_input_qa.sh`、`Scripts/macos14_availability_typecheck_qa.sh`、构建、codesign、metadata QA、DMG verify 和只读挂载检查。

2026-08-28 26.0828-Taglauncher.AppGrid备注气泡-placeholder验收.md

# 2026-08-28|TagLauncher|AppGrid 备注气泡|placeholder 验收
## 用户目标
用户反馈已安装 `8.3.7 (20260822.2207)` 本地测试包并验证视觉效果,结论为“效果 OK”。
## 核心事实 / 变更快照
- 对应本地测试包:`/Users/ar/Projects/Taglauncher/03-O/C2.builds/LocalTest-8.3.7-20260822.2207/Archive/TagLauncher-8.3.7-build20260822.2207-localtest.dmg`。
- 源码变更 commit:`1ec08b1dedff313e385767edb0c2b815b6dd56f3`。
- 测试包归档 commit:`eab3bec`。
- DMG SHA256:`4fef51bfa26eb1d73fbb5de4e3a336d5a2a5ed02aa658995126012ace6e04c9f`。
- 变更后:Owner 已确认安装验证通过,placeholder 字色效果 OK。
- 范围边界:本结论只覆盖 AppGrid 备注气泡 placeholder 字色优化和上述本地体验包;不代表 ASC 上传包、公开发布放行、其它 UI 问题或后续新需求已验收。

来源索引

时间线

2026-06-08 legacy/codex-20260610/session-history/2026-06-08-AppGrid抖动修复.md

  • 原始标题:Taglauncher 会话记录 - 2026-06-08 AppGrid抖动修复
  • 将任务登记到 /Users/ar/Projects/Taglauncher/src/TODO.mdIn Progress
  • 修改 /Users/ar/Projects/Taglauncher/src/Apptag/ContentView.swift
  • 移除 AppGridInteractionState 中只服务于 hover 自动滚动的 tagNavigationLastHoverScrollIDtagNavigationLastHoverScrollAt
  • 移除 tagNavigationHoverScrollInterval
  • handleTagNavigationHover() 中移除 scrollToTagFromHover(id) 调用。

2026-06-08 legacy/codex-20260610/session-history/2026-06-08-AppGrid抖动排查.md

  • 原始标题:Taglauncher 会话记录 - 2026-06-08 AppGrid抖动排查
  • 读取并遵守 ~/.codex/rules/qa-workflow.md~/.codex/rules/delivery-gate.md
  • 使用 ffprobe 检查视频:8.88 秒,1920x1080,约 19.49 fps。
  • 使用 ffmpeg 抽取 contact sheet:
  • /private/tmp/taglauncher-jitter-frames/contact.jpg
  • /private/tmp/taglauncher-jitter-frames/contact-4fps.jpg

2026-06-08 legacy/codex-20260610/session-history/2026-06-08-AppGrid抖动验收.md

  • 原始标题:Taglauncher 会话记录 - 2026-06-08 AppGrid抖动验收
  • /Users/ar/Projects/Taglauncher/src/TODO.md 中 App Grid 顶部 tag hover 抖动修复任务从 In Progress 移动到 Done
  • 在 Done 记录中补充用户真实体验验收结论:仍有轻微小抖,但可接受,本轮不继续扩大修复范围。
  • 当前不再继续扩大到 AppGrid 布局算法、hover bubble 或窗口层级的更大改动。
  • 保留本轮低风险改动:hover 不触发自动滚动,点击 tag 仍滚动。
  • /Users/ar/Projects/Taglauncher/src/TODO.md

2026-07-01 2026-07-01-标签额度PRD.md

  • 原始标题:2026-07-01 标签额度 PRD
  • 组织市场专家、架构师、运营专家参与讨论。
  • 形成一致结论:不采用“维护次数”限制,采用“自定义维护容器数量”限制。
  • 新增 PRD:
  • /Users/ar/Projects/Taglauncher/src/Docs/Requirements/2026-07-01-pro-custom-container-quota-prd.md
  • 新增长期备忘:

2026-07-01 2026-07-01-标签额度刷新审查.md

  • 原始标题:2026-07-01 标签额度刷新审查
  • 已读取 qa-workflow skill、CODE_GOVERNANCE.md、全局 QA 规则、研发前置讨论规则、CODEGRAPH.md
  • 已只读检查当前工作区状态:当前分支 codex/pro-custom-hotkeys-8.2.0,工作区已有多处未提交改动,本轮不修改。
  • 已定位相关源码:
  • src/Apptag/TagEditorView.swift
  • src/Apptag/PreferencesView.swift

2026-07-01 2026-07-01-额度状态审查.md

  • 原始标题:2026-07-01 额度状态审查
  • 只读检查当前工作区、分支和 worktree。
  • 只读审查自定义标签容器额度状态流、TagEditorView mutation 回调、ContentView / PreferencesView 顶部 accessory、ProEntitlement quota policy 和现有 QA 脚本。
  • 运行现有 QA:bash src/Scripts/pro_custom_container_quota_qa.sh,结果 PASS。
  • 最可能漏掉的状态驱动不是数据层计数,而是 UI 层缺少一个可观察的 customContainerQuotaStatus 或等价 refresh token。
  • 当前 customContainerQuotaAccessoryContentViewPreferencesView 的 computed view 中直接调用 ProEntitlementPolicy.customContainerQuotaStatus(),SwiftUI 不会自动订阅数据库文件或 TagDef.isCustomMaintained 派生计数变化。

2026-07-01 26.0701-Taglauncher.Coder3-标签额度文案补修.md

  • 原始标题:26.0701-Taglauncher.Coder3-标签额度文案补修
  • 更新 29 个本地化 JSON:
  • settings.proStatus.unlimitedTags 全部加上前置
  • pro.customContainers.quotaShort 改为“免费用户 / free users 可使用 6 个自定义标签(容器)”语义,并保留 %used%%limit% 占位符。
  • 更新自动化 QA:
  • Scripts/pro_localization_qa.sh 增加英文、简体中文和全语言 unlimitedTags 前置 检查。

2026-07-01 26.0701-Taglauncher.发布修复-编辑标签崩溃和额度刷新.md

  • 原始标题:Taglauncher 8.3.0 编辑标签崩溃和额度刷新
  • 编辑标签卡死根因判断:NSTextField.mouseDown(with: event) 被同一个 NSEvent 手动转发,可能进入 AppKit 控件追踪递归。
  • 修复策略:不再手动把原始 mouseDown 事件转发给 NSTextField,改为语义聚焦 / 首次选中,后续点击让原生文本框处理光标。
  • 额度刷新根因判断:顶部 customContainerQuotaAccessory 直接读数据库派生值,但缺少明确 SwiftUI 状态驱动,保存后父视图不稳定重算。
  • 额度刷新修复策略:ContentViewPreferencesView 分别持有 quota @StateTagEditorView 在成功保存或被 quota 拦截时回传最新 ProCustomContainerQuotaStatus
  • 不做范围:不做新的视觉改版;不重新做真实 GUI 截图验证,因为用户正在使用电脑并明确要求不要截图;真实视觉刷新留给用户人工验收。

2026-08-22 26.0822-Taglauncher.AppGrid备注气泡-placeholder字色.md

  • 原始标题:2026-08-22|TagLauncher|AppGrid 备注气泡|placeholder 字色
  • 用户指出 AppGrid 图标备注气泡的输入框提示文字“APP 用途备注”太暗;要求先由设计总监给方案,确认后落地。
  • 设计方案:placeholder 使用 white alpha 0.48,可接受范围 0.46-0.52;正文、输入框背景、文案和尺寸不动。
  • 源码落地:AppBubbleNoteTextField 从系统默认 placeholderString 改为显式 placeholderAttributedString,并继续使用 tr("appNote.placeholder")
  • QA 门禁:Scripts/app_note_bubble_input_qa.sh 增加 placeholder 可读性防回归,同时保留 IME、提交 / 取消和长度上限检查。
  • 交付快照:源码变更 commit 1ec08b1dedff313e385767edb0c2b815b6dd56f3;测试包归档 commit eab3bec;本地测试 DMG 为 8.3.7 (20260822.2207),SHA256 4fef51bfa26eb1d73fbb5de4e3a336d5a2a5ed02aa658995126012ace6e04c9f
  • 范围边界:本轮没有做真实运行截图 smoke;DMG 是 ad-hoc signed 本地安装测试包,不是 ASC 上传包,也未做公证。

2026-08-28 26.0828-Taglauncher.AppGrid备注气泡-placeholder验收.md

  • 原始标题:2026-08-28|TagLauncher|AppGrid 备注气泡|placeholder 验收
  • 用户反馈已安装 8.3.7 (20260822.2207) 本地测试包并验证视觉效果,结论为“效果 OK”。
  • PMO 台账和事件日志已记录 Owner 体验验收通过。
  • 范围边界:该验收只覆盖本地体验包和 AppGrid 备注气泡 placeholder 字色优化,不代表 ASC 上传包、公开发布放行或其它新需求验收。