# 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。
