diff --git a/AGENTS.md b/AGENTS.md index 8ba7cb43..59d424c3 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -11,6 +11,7 @@ UniDesk 是一个以主 server 为统一入口的分布式工作平台。本文 ## P0: 工作区、语义合并与并行修改 - P0: 本机可能有多个并行开发任务;发现未预期本地修改时默认保留,不得自动 `git reset`、`git checkout --`、删除或回滚他人修改。 +- P0: 当前目录的主工作区(非 `.worktree/` 路径)必须固定停留在 `master` 分支;禁止把主工作区切到其他分支,非 `master` 开发必须使用独立 `.worktree/`。 - P0: 固定主 repo 通常只做 source-truth 预检、fetch、status 和 worktree anchor;源码、配置、部署脚本、issue closeout 和高风险 dad-dev 工作必须使用独立 `.worktree/`。文档/skill/长期参考轻量修改可直接在当前主 worktree 处理。细则见 `docs/reference/devops-hygiene.md`。 - P0: 清理任务 worktree 前必须按语义确认已合入 `master`:工作区 clean,相关提交是 `origin/master` 祖先或被 `--cherry-pick` 判定为等价吸收,必要时检查关键文件 diff/PR merge commit;不得仅因分支落后就删除。仍有未合入语义、未提交文件或不确定归属时,先合并/提交/推送到 `master` 或记录阻塞,不清理 worktree。 - P0: UniDesk 工具链自身修复必须先合并到 `master`,再把实际执行工具命令的 checkout 更新到包含该 merge 的最新 `master` 后继续使用;若当前 checkout 有并行脏改或非 master 分支导致不能安全 fast-forward,禁止 reset/stash/checkout 清理,改用干净 `origin/master` worktree 运行工具并说明原因。 diff --git a/docs/issue/issue-973-p1-reflog-recovery.md b/docs/issue/issue-973-p1-reflog-recovery.md new file mode 100644 index 00000000..6a7ecba4 --- /dev/null +++ b/docs/issue/issue-973-p1-reflog-recovery.md @@ -0,0 +1,39 @@ +# Issue 973 P1 Reflog 恢复证据 + +目标合并分支: UniDesk master + +## 范围 + +本文记录 [#973](https://github.com/pikasTech/unidesk/issues/973) 的 P1 恢复证据。恢复对象是本地分支 `fix/hwlab-tools-image-bun-yaml-2026`,该分支的 reflog-only 提交在恢复前仍会被以下命令列出: + +```bash +git cherry -v HEAD fix/hwlab-tools-image-bun-yaml-2026 +``` + +本恢复 PR 之前,该命令仍会显示未处理的 `+` 提交。 + +## 恢复决策 + +本 PR 使用 `-s ours` 合并旧分支以保留 ancestry,但不恢复过时的单体实现。直接 cherry-pick `06bffaf` 时会与当前拆分模块冲突(`scripts/src/gh/*`、`scripts/src/hwlab-node/*`、`scripts/src/platform-infra-observability/*`),继续套用会把已经被替代的单文件实现重新引入仓库。 + +当前 `master` 已在现有模块边界中保留这些行为: + +| 旧提交 | 恢复状态 | 当前语义落点 | +|---|---|---| +| `0817e3d` | 语义已保留 | `config/hwlab-node-lanes.yaml` 已包含 `webProbe.alertThresholds`;`scripts/src/hwlab-node-lanes.ts` 解析 typed thresholds;`scripts/src/hwlab-node/web-probe-observe.ts` 注入 `UNIDESK_WEB_OBSERVE_ALERT_THRESHOLDS_JSON`;analyzer/runner 消费 YAML 阈值。 | +| `1789700` | 语义已保留 | `scripts/src/hwlab-node/web-probe-observe.ts` 已暴露 `webProbeCommandTimeoutSummary`、async start/status fallback、`degradedReason`、report-file 读取失败和 analyzer timeout 恢复元数据。 | +| `a08dfea` | 语义已保留 | `scripts/src/platform-infra-observability/manifest.ts` 和 `render.ts` 已输出 trace identity、key spans、resource timing 列、business trace id 和 drill-down 命令。 | +| `06bffaf` | 语义已保留 | `config/unidesk-cli.yaml` 与 `scripts/src/output.ts` 已提供全局 JSON/text dump 保护;GitHub CLI 已拆到 `scripts/src/gh/*`,默认输出为 bounded table 和渐进披露。 | +| `da3efa4` | patch-id 已等价 | long-lived stream 已与慢 API lifetime 分开分类,同时保留 stream-open budget finding。 | + +## 验证 + +本分支完成 ancestry merge 后,reflog 分支不再报告未处理的 `+` 提交: + +```bash +git cherry -v HEAD fix/hwlab-tools-image-bun-yaml-2026 +``` + +输出为空。 + +`AGENTS.md` 同步补充了“主 worktree 必须固定停留在 `master`”的 P0 规则,用于满足 [#973](https://github.com/pikasTech/unidesk/issues/973) 验收 A2。