edit | blame | history | raw

03-O — 输出成果

O = Output。本目录存放 Aligner 项目所有产出物。
IN git — 源码、工具、知识和规则放在这里;构建产物默认不进入 Git。
Git 仓库根目录:03-O/。不要在项目根目录或 03-O/C1.source/ 单独初始化 Git 仓库。

目录结构

路径 内容 git
C1.source/ 源代码 — Sources/ + Tests/ + Package.swift
C2.builds/ 本地构建输出 — 根目录只保留当前发布包目录、旧版归档、研发中间产物 🚫
C2.builds/Aligner-<Version>-build<YYYYMMDD.HHMM>/ 当前最新包 — 最新可分发 DMG + SHA256SUMS.txt + release manifest 🚫
C2.builds/X-旧版build成果/ 历史存档 — 旧 DMG / 旧发布包归档,不放旧 .app 🚫
C2.builds/Z-研发中间产物/ 内部工作区 — 当前 .app、QA 报告、trace、截图样本、图标试验 🚫
C3.tools/ 工具脚本 — 打包脚本、窗口诊断
K1.业务知识/ 业务知识 — 窗口行为、Space 枚举、AX API、架构共识
K2.项目管理/ 项目管理知识 — SOP、协作规范、经验教训

Git 规则

  • 03-O/ 是唯一 Git 仓库根目录。
  • C1.source/C3.tools/K1.业务知识/K2.项目管理/ 都随 03-O/ 一起版本管理。
  • C2.builds/ 是本地构建输出和归档目录,不进入 Git;正式可回滚版本通过源码 commit、release tag、release manifest、DMG SHA256 和 GitHub Release asset 绑定。
  • C1.source/ 只是 SwiftPM / Xcode 工程根,不是 Git 根。
  • 过程文档 02-P/ 和输入材料 01-I/ 不进入该 Git 仓库。

C2.builds 规则

  • C2.builds/ 根目录永远保持清爽:只放一个当前最新包目录、X-旧版build成果/Z-研发中间产物/
  • 当前最新包目录命名为 Aligner-<Version>-build<YYYYMMDD.HHMM>/,目录内放当前 .dmgSHA256SUMS.txt
  • 正式测试包 / 发布包还必须包含 release manifest;manifest 是发布证据,不代表 C2.builds/ 进入 Git。
  • X-旧版build成果/ 只存历史可恢复包;旧 .app 不进入归档(避免 macOS 搜出一堆旧 App 影响系统表现)。
  • Z-研发中间产物/current/Aligner.app 是研发和 QA 脚本使用的当前可运行 .app,不是分发包。
  • Z-研发中间产物/qa-reports/ 存放 Round QA JSON、trace、XML、截图样本等中间产物,不允许散落在 C2.builds/ 根目录。
  • 可验收 / 可分发 DMG 命名格式:Aligner-<Version>-build<YYYYMMDD.HHMM>.dmg
  • DMG 文件名中的 version / build 必须与 C1.source/Resources/Aligner-Info.plist 中的 CFBundleShortVersionString / CFBundleVersion 一致;Z-研发中间产物/current/Aligner.app 只是 QA 可运行副本,不是版本事实源。
  • 本地开发包优先使用稳定代码签名身份。若只能使用 ad-hoc 签名,Accessibility / Screen Recording 的 TCC 授权可能在重打包后失效,表现为系统开关已打开但 App 内仍显示未授权。
  • C3.tools/package-app.sh 默认只打包不启动;需要打包后自动启动时显式设置 ALIGNER_OPEN_AFTER_BUILD=1
  • C3.tools/check-signing.sh 可检查本机当前会使用的签名身份。推荐长期固定 Aligner Local Code Signing;未创建该身份时,可临时使用 ALIGNER_CODE_SIGN_IDENTITY 指定现有稳定本地签名身份。
edit | blame | history | raw

Changelog

0.1.14 / 20260814.2230

  • 新增本地性能诊断包导出入口,可从菜单栏或 Aligner 应用菜单保存为 zip 并发送给测试负责人。
  • 诊断包包含版本、设备与显示器、权限、偏好、最近 Quick Switch 性能阶段、应用名称和窗口数量,以及循环性能日志。
  • 诊断包不包含窗口标题、截图或键入内容;新增归档结构单测,覆盖 zip 的摘要、性能日志和说明文件。

0.1.13 / 20260814.0445

  • 修复 Quick Switch 在 App Shelf 自动换成两行时,首行 App 图标被 Space Lane 裁挡的问题。
  • App Shelf 两行布局改为按真实行高预留 shelf 高度,并保持 Space Lane / App Shelf / Waterfall 的固定纵向间距。
  • 增强 App Shelf fixture QA,断言两行 App 图标必须完整落在 shelf 内,并保留 Space Lane 与 Waterfall 间距。

0.1.12 / 20260625.2320

  • 修复 App Shelf 图标点击误触关闭的问题:图标主体点击优先打开该 App 的第一个窗口,只有明确点到关闭按钮视觉区域才进入关闭确认。
  • 过滤低置信 AX-only 普通窗口候选:非最小化、非全屏且没有高置信 Space 归属的 AX-only 残留不再进入 Quick Switch,避免 App badge 数量和 Waterfall 卡片虚高。
  • 激活明确失败时,本次投影视图会抑制失败 windowID,避免用户继续点到同一张不可激活的 stale 卡片。
  • 增强 App Shelf 鼠标 fixture 和窗口激活 fixture,覆盖 near-close 图标点击不进关闭流、激活失败目标被移除。

0.1.11 / 20260625.1705

  • 优化 Finder 多页签 / CG-only 窗口激活的等待体验:交互路径增加 1.5 秒预算和阶段耗时日志,避免一次点击长时间卡在系统等待态。
  • Finder 页签循环兜底从 24 轮收敛为最多 5 轮;5 轮无法命中时快速返回失败,不再继续高耗时硬转。
  • Finder 直接 AX / WindowServer 激活后新增前台标题校验:标题不匹配时进入有预算的页签 fallback,避免把“看似激活成功但实际跳错页签”记录为成功。
  • Window activation QA 报告新增 lastActivationDurationMilliseconds,并补源码 guardrail 验证 5 轮循环上限和预算字段。

0.1.10 / 20260624.2359

  • 修复 Quick Switch 窗口卡片点击偶发不准的问题:鼠标命中测试改用动画中的 presentation frame,避免过滤、对齐或横栏滚动动画期间点到视觉卡片却按旧位置提交。
  • 强化真实窗口激活链路:窗口级 AX 动作从 focus / raise 扩展为 focus / main / raise,并在 AX 短暂缺失或首次动作失败时重读一次目标窗口再尝试前置。
  • 激活 / 关闭服务接入 live Space resolver,和 snapshot 使用同一套 SkyLight Space 数据,降低 Finder、多页签、跨 Space 场景的错误 host fallback。
  • appActivatedOnly 不再作为窗口卡片精准激活成功语义;它只保留为诊断结果。
  • 修正 Obsidian 跨 Space live QA 在环境不满足时的脚本崩溃,改为明确 skipped 并记录原因。

0.1.9 / 20260624.2019

  • 新增 Dock reopen 打开 Quick Switch:用户从 Dock 重新点击 / 双击 Aligner 图标时,复用 Option+Tab 的 Quick Switch 打开路径。
  • Dock reopen 只负责打开 Quick Switch,不改主题、视图模式或布局选择,全部沿用现有默认逻辑。
  • 增加 Dock reopen fixture QA,并纳入主 UI 回归入口;同步放宽真实 Option+Tab 触发 QA 的默认等待,降低事件 tap 启动时序误判。

0.1.8 / 20260624.1311

  • 将 Aligner 的最低系统版本下探到 macOS 14.0,统一 SwiftPM、Info.plist、AppInfo 和 public manifest 元数据。
  • ScreenCaptureKitincludeChildWindows 增加 macOS 14.2 可用性保护,保证 macOS 14.0 / 14.1 可编译运行。
  • 增加 macOS 14 兼容 QA 入口,并补 release manifest / release config 的最低系统版本 guardrail。

0.1.7 / 20260622.1828

  • 修复 App Shelf 真实 hover 在 view-model / 截图刷新后丢失的问题:鼠标停在 App 图标上不动时,图标保持放大和上浮,Waterfall 联动保持有效。
  • 纵栏瀑布和横栏瀑布共用同一套 hover 持久化逻辑。
  • 增强 App Shelf fixture QA,新增 view-model rebuild 后 hover 仍保持的纵栏 / 横栏回归。

0.1.6 / 20260622.1734

  • 修复 App Shelf hover 视觉覆盖不完整的问题:纵栏瀑布和横栏瀑布下都去掉 App 图标外侧蓝色矩形边框。
  • 保留真实 hover App 图标本身放大和轻微上浮,不恢复邻居图标跟随。
  • 增强 App Shelf fixture QA,新增横栏瀑布 case,并断言背景层、容器层、图标层边框均为 0。

0.1.5 / 20260622.1717

  • 收敛 App Shelf hover 视觉:保留真实 hover App 图标放大效果,但移除图标背后的蓝色矩形底。
  • 取消邻近 App 图标视觉跟随,左右邻居不再放大、不上浮、不暴露 magneticNeighbor
  • 增强 App Shelf fixture QA,验证 hover 背景透明、邻居保持普通尺寸、close button 只属于真实 hover App。

0.1.4 / 20260622.1641

  • 优化 App Shelf hover 动效为 Magnetic Dock Lite:当前 App 图标放大并轻微上浮,邻近图标做轻量跟随。
  • 邻近 App 只做视觉动效,不触发 hover 语义、不显示关闭按钮、不联动 Waterfall / Space。
  • 用户开启 Reduce Motion 时禁用磁性放大动效。
  • 增强 App Shelf fixture QA,覆盖浅色 / 深色主题、邻近图标动效、hover 语义隔离和横栏瀑布回归。

0.1.3 / 20260620.1337

  • 增加 Option 两位窗口码输入过程中的 Waterfall 实时筛选反馈:第一键筛选 App 时,匹配窗口保持亮,其它 Waterfall 窗口变暗。
  • 增加单窗口 App 首键直达:当某个 App 当前只有一个可见窗口时,按该 App 序号会直接打开唯一窗口,不再等待第二个窗口序号。
  • 增加两位码筛选 fixture QA,并纳入主 UI 回归入口。

0.1.2 / 20260620.0319

  • 修复深色模式下 Space tile hover 浅色高亮时,Space 编号、窗口数量、App 文本、Split View 标签、角标线和占用条仍为浅色导致不可读的问题。
  • 增加 Space Lane 深色 hover 可读性 fixture QA,并纳入主 UI 回归入口。

0.1.1 / 20260620.0136

  • 增加 Quick Switch 浅色 / 深色皮肤切换。
  • 在 Quick Switch 右上角增加半明半暗圆盘切换图标,点击可在两套皮肤间切换。
  • 增加深色皮肤的多层渐变背景、暗色 Space Lane、App Shelf、Waterfall column、窗口卡片和控件配色。
  • 增加主题偏好持久化,重新打开 App 后保持用户上次选择。
  • 增加主题切换 fixture QA,并纳入主 UI 回归入口。

0.1.0 / 20260619.2255

  • 冻结 Quick Switch MVP2 当前稳定体验,建立 v0.1.0-build20260619.2255 回滚基线。
C1.source/AGENTS 3 KB
C1.source/CODEGRAPH 29 KB
C3.tools/README 563 b
CHANGELOG 7 KB
K1.业务知识/AX-API-备忘录 848 b
K1.业务知识/Architect-B-状态数据流方案 13 KB
K1.业务知识/Architect-C-底层实现方案 11 KB
K1.业务知识/README 462 b
K1.业务知识/macOS窗口行为百科 8 KB
K1.业务知识/分割线拖拽-技术方案.v1 5 KB
K1.业务知识/多显示器Space排序规则 2 KB
K1.业务知识/底层代码架构共识.v1 9 KB
K1.业务知识/成果地图 4 KB
K1.业务知识/技术约束-可行性研究 9 KB
K1.业务知识/排列质量-产品要求 4 KB
K1.业务知识/窗口排列规则 5 KB
K1.业务知识/设计决策日志 1 KB
K1.业务知识/设计成果地图 3 KB
K2.项目管理/Aligner2接收验证记录-2026-06-28 2 KB
K2.项目管理/QA成果地图 5 KB
K2.项目管理/README 397 b
K2.项目管理/Round0-状态收口 5 KB
K2.项目管理/code-review-checklist 925 b
K2.项目管理/lessons-learned 1 KB
K2.项目管理/round-workflow 1 KB
K2.项目管理/团队协作规范 13 KB
K2.项目管理/开发工作-经验与教训 985 b
K2.项目管理/新窗口接手指南 4 KB
K2.项目管理/研发交付验收流程 3 KB
K2.项目管理/经验-项目文件夹管理 11 KB
K2.项目管理/设计工作-经验与教训 757 b
K2.项目管理/迁移资产清单 3 KB
K2.项目管理/项目经理-经验与教训 2 KB
K3.运营与发布资料/README 514 b
README 3 KB