# Taglauncher 会话记录 - 2026-06-08-25 ## 用户目标 用户认为当前源码管理混乱,要求研究是否可把所有源代码统一迁移到 `/Users/ar/Projects/Taglauncher/src`,以后不允许在其他目录放源代码,并且必须保证 Git 记录延续且有效。本轮只研究方案,不执行迁移。 ## 已完成勘察 - 读取并按 `codebase-migrate` 技能的迁移规划方式评估。 - 确认 `/Users/ar/Projects/Taglauncher` 是主 Git 仓库工作区: - top-level:`/Users/ar/Projects/Taglauncher` - git dir:`.git` - 当前分支:`main` - 当前 HEAD:`b2b51506d0e91ebd400bb6b0504016a55ca4fd4f` - 确认 `/Users/ar/Projects/Taglauncher-7.8.15-source` 是同一仓库的 linked worktree,不是独立仓库: - git dir:`/Users/ar/Projects/Taglauncher/.git/worktrees/Taglauncher-7.8.15-source` - 当前分支:`codex/recover-7.8.15-grok-fix` - 当前 HEAD:`4f5d7c13209555a114761f5027299f3ba1b42217` - release tag:`v7.8.22-build20260608.1324` - `git worktree list --porcelain` 还显示两个 prunable 的旧 worktree: - `/Users/ar/Projects/Apptag-7` - `/Users/ar/Projects/Apptag8-ai` - `/Users/ar/Projects/Taglauncher/src` 当前存在但为空。 - `main` 与 `codex/recover-7.8.15-grok-fix` 没有共同 merge-base,属于同一 repo 内的两段 unrelated history: - `git merge-base --all main codex/recover-7.8.15-grok-fix` 返回 status 1。 - `main...codex/recover-7.8.15-grok-fix` 约为 `36 131`。 - `main` 目前主要是网站文档:`docs/` 和 `readme.md`,约 36 个 tracked files。 - `codex/recover-7.8.15-grok-fix` 是当前发布源码分支,顶层包含 `Apptag/`、`Research/`、`Release/`、`Scripts/`、`build.sh`、`make_dmg.sh` 等,约 466 个 tracked files。 - 当前根目录 `/Users/ar/Projects/Taglauncher` 里还有大量 untracked 内容,包括 `AGENTS.md`、`Release/`、`Research/`、`build/`、`LocalDataBackups/` 等;其中证书目录属于敏感/非源码资料,不应纳入源码迁移。 ## 初步结论 迁移可行,但不建议直接把 linked worktree 移动到 `/Users/ar/Projects/Taglauncher/src`,因为那会形成“一个 Git 工作区里嵌套同仓库 linked worktree”的结构,仍然混乱。 推荐方案是: - 保留 `/Users/ar/Projects/Taglauncher` 作为唯一工作区。 - 用一次 Git 迁移提交,把当前发布源码分支作为第二父历史接入 `main`,并把其文件树导入到 `src/` 前缀下。 - 迁移后删除 `/Users/ar/Projects/Taglauncher-7.8.15-source` linked worktree。 - 更新 `AGENTS.md` / 项目文档,明确唯一源码根目录是 `/Users/ar/Projects/Taglauncher/src`。 ## 建议后续步骤 1. 先创建安全 tag/备份:旧 `main`、当前 release tag、当前发布产物。 2. 在 `main` 上创建迁移分支,例如 `codex/relocate-source-to-src`。 3. 处理根目录 untracked 内容:证书、发布产物、旧 build、本地备份全部移到受控的非源码归档位置,不删除。 4. 使用 `git merge -s ours --allow-unrelated-histories --no-commit codex/recover-7.8.15-grok-fix` 建立双父历史。 5. 使用 `git read-tree --prefix=src/ -u codex/recover-7.8.15-grok-fix` 将发布源码树导入 `src/`。 6. 提交迁移 commit。 7. 从 `/Users/ar/Projects/Taglauncher/src` 运行 QA 和 build,验证构建脚本路径仍可用。 8. 验证 Git 历史: - source release commit/tag 仍可达。 - `git log --follow --find-renames -- src/Apptag/Info.plist` 可追溯迁移前文件。 9. 删除外部 linked worktree:`git worktree remove /Users/ar/Projects/Taglauncher-7.8.15-source`,再 `git worktree prune`。 10. 项目规则中明确:以后不得创建 `/Users/ar/Projects/Taglauncher-*source` 这类源码目录,所有源码任务必须在 `/Users/ar/Projects/Taglauncher/src` 内执行。 ## 未执行事项 - 未移动任何文件。 - 未修改源码仓库。 - 未清理 worktree。