## 项目属性
项目类型:研发项目
主要产物:Wails / Go 桌面语音输入 App
## 1. 命令输出保护
保护上下文用量。
任何输出量未知或可能很大的命令,都必须限制输出字节数。
默认安全写法:
```bash
COMMAND 2>&1 | head -c 6000
```
## 2. 发布版本规则
本项目声明为 `研发项目`,发布或分发安装包前默认遵守 `~/.codex/rules/release-versioning.md`;如本项目 release 文档或构建脚本另有更具体要求,以本项目规则为准。
## 3. 测试通过后的默认打包规则
当某一轮改动已经完成开发自测,并且 QA 验证也通过后,默认进入测试包交付流程,不需要再单独询问用户是否打包。
执行打包前仍必须遵守发布版本规则:递增 patch 版本号、生成新的 `YYYYMMDD.HHMM` build 编号、更新 App 元数据与 `CHANGELOG.md`,并生成可分发的 macOS `.dmg`。
如果只有开发自测通过,但 QA 尚未验证通过,则不得把该版本作为测试人员可用包交付;此时只说明当前处于待 QA 状态。
## 4. Mac App Store 出口合规规则
如果本 App 未实现、未打包、未接入非 Apple 操作系统提供的加密算法,Mac App Store 构建的 `Info.plist` 应声明:
```xml
ITSAppUsesNonExemptEncryption
```
提交 App Store Connect 前必须检查该键是否存在并为 `false`,以避免每次上传 build 后出现 `Missing Compliance` 并需要手动回答加密出口合规问题。
如果后续新增自实现加密、第三方加密库、非系统提供的标准加密算法或专有加密算法,必须重新评估出口合规,不得沿用上述声明。
## 5. 对话记忆保存规则
本项目需要保存重要会话记忆,但不得为了普通会话记录频繁打断用户审批。
- 首选保存目录:项目根目录下的 `.codex-sessionhistory/`,即 `/Users/ar/Projects/PrivateVoice/.codex-sessionhistory/`。
- 只在发生以下情况时保存会话记录:关键决策、文件修改、发布 / 构建 / QA 结论、重大问题排查、用户明确要求保存、阶段性收尾。
- 纯询问、路径确认、状态查询、简单说明、无实质决策或无文件变更的对话,不强制保存。
- 文件名格式:`YYYY-MM-DD-主题.md`;主题必须概括本轮 session 的核心内容,控制在 20 个字符以内,优先使用中文短语,避免空格、`/`、`:` 等不适合作为文件名的字符。
- 如果同一天同主题已有记录文件,必须创建新文件并追加序号,避免覆盖:`YYYY-MM-DD-主题-01.md`、`YYYY-MM-DD-主题-02.md`。
- 保存内容至少包括:用户目标、已完成事项、关键决策、文件变更、未决问题、后续建议。
- 如果首选目录在当前沙盒下不可写,不得发起额外权限审批;必须改存到当前 Codex 工作区的 `.codex-sessionhistory/PrivateVoice/`,并在最终答复中说明实际保存位置。
- 只有首选目录和当前工作区备用目录都不可写时,才允许跳过保存,并在最终答复中说明原因。
- 如果确需保存,应一次性保存本轮完整摘要,避免为了会话记录反复修正。
- 跨项目对话以主要项目保存;如果多个项目都有实质决策或改动,应按同样的首选目录 / 当前工作区备用目录规则分别保存摘要。