# 0.4.0 发布记录与检查单

- 源码版本：`0.4.0`
- 状态：✅ 已发布；npm `latest`、Git tag 与 GitHub Release 均为 `0.4.0`
- 基线日期：2026-09-02
- 发布提交：`4cc7b03`
- Release workflow：`33575803070`（tag/版本检查、`npm run check`、OIDC publish、GitHub Release 全部成功）

## 已纳入范围

- `enterprise-enrichment` 扩展为工商全景、股权、治理和历史工商维度组按需调用。
- 固化 16 个当前工商工具与 4 个历史工商工具契约，并兼容
  `qcc-dsh-mcp-oauth@0.1.7` 实测 legacy serverName。
- 新增只读 `/data-cleaning/api/phase2/capabilities` 预检、真实证据验收器与默认关闭的本地 Runner。
- G5 Host Bridge 提供批量幂等、多候选人工续跑、retryable 失败人工重试、取消/超时、错误分类和脱敏审计。
- 发布 workflow 在发布前执行完整 `npm run check`，并强制 Git tag 与 `package.json` 版本一致。

## 已通过门

- 单元、契约、Web 路由、Skill、脱敏和 Runner 自动测试。
- npm 打包白名单与 README/包版本一致性检查。
- DSH `0.1.1-rc.2` / `0.1.2-alpha.2` 隔离 Host 加载冒烟。
- rc.2 隔离 Host 真实 OAuth、授权跨重启恢复、20 家公开企业、400 次 QCC 调用：
  20/20 主体解析，每企业当前工商最低 15 维、历史工商 4 维。
- rc.2 隔离 Host 的旧 access token 已自然过期；重新启动后持久 grant 自动刷新、到期时间前移，
  16 个 company + 4 个 history 动态工具恢复，并以 1 行真实 enrich（1/1 成功、2 条安全审计）确认新 token 可用。
- Web→Bridge→Mock ToolRuntime 故障注入覆盖 401、429 与配额耗尽：除 `UNKNOWN_TOOL` 刷新竞态外
  均不自动重试；401/429 只能显式人工重试，配额耗尽在重新派发前阻断；审计不含参数、原始响应或秘密。
- `main` 提交 `0c8cb75` 的远端 CI `33569931224` 已通过 Linux Node 22、Linux Node 24 与 Windows Node 24 全矩阵。
- 真实证据与报告仅保存在 Git 忽略的本机目录，不进入仓库或 npm 包。

## 发布阻断门（已通过）

2026-09-02 已完成此前两个剩余门：

1. ✅ access token 自然到期后的真实 refresh、持久 grant 更新、动态工具恢复与续期后最小真实调用。
2. ✅ 401、429、配额不足的本地故障注入、稳定错误码、人工重试门及审计脱敏。

代码审查、本机 `npm run check`、干净工作树、远端 CI 与正式发布均已完成；不再有 0.4.0 功能或发布缺口。

## 已执行的发布流程

```bash
npm run check
git status --short
git tag -a v0.4.0 -m "Release v0.4.0"
git push origin v0.4.0
```

`v0.4.0` tag 已触发 `.github/workflows/release.yml`：校验 tag/包版本、执行完整检查、
通过 npm OIDC Trusted Publishing 发布并生成 GitHub Release；全程没有手工写入生产密钥。

发布后验证：npm Registry 返回 `latest=0.4.0`，公共 tarball 全新隔离安装成功，ESM 导入可见
`apply / inject / name`；公共 Registry 包安装到全新 DSH profile 后在隔离端口 43160 成功启动，
三工具、两个 Skill、Web 与 QCC Bridge seam 均注册；GitHub Release 为非 draft、非 prerelease。

已知文档差异：npm 的 0.4.0 tarball/包页面 README 是 tag 时的不可变快照，仍含“发布候选 / latest 0.3.0”
字样；GitHub `main` 已修正。该差异不影响代码、版本或安装，且不得覆盖已发布版本；如需同步 npm 包内文案，
应发布新的补丁版本 `0.4.1`。

## 回滚

- tag 尚未推送：删除本地 tag，修复后重新检查。
- tag 已推送但 workflow 未发布 npm：停止 workflow，修复后使用新的补丁版本；不要复用已公开 tag。
- npm 已发布：npm 版本不可覆盖。立即在 GitHub/npm 标记受影响版本，必要时执行 `npm deprecate`，
  修复后发布 `0.4.1`；代码回滚使用普通 revert commit，不改写 `main` 历史。
