# HoloLake Code Channel · 部署与更新边界

本目录保存光湖代码频道（HLCC）的部署约束与机器可检验配置。

当前状态：

- 上游源码镜像与光湖自主源码基线已在 `BS-SG-003` 建立；
- 固定源码基线为 Forgejo `v16.0.1` / `b3d7e4ac3cbccc220703097a51fa4c16bf302579`；
- 国内旧第五域仍由 Gitea 1.23.7 原地承载并作为历史事实源；
- `GLS-0239` 已登记京东个人子频道、`/code/` 正式入口、公开 AI 读取、
  `bingshuo` 单身份密码沿用和 `HLCC-ICE-000001` 新 Git 根提交；
- 新频道部署与低权限激活清单已经就绪，正式切换前不覆盖旧第五域；
- `update-policy.json` 中的光湖更新清单地址仍是规划地址，尚未上线。

`jd-candidate/` 是绑定京东主节点固定架构预置器的候选服务包。它只从临时新加坡
中继读取 Forgejo 官方公开二进制、签名、公钥和哈希清单，不公开或下载光湖产品
Git bundle。服务先在 `127.0.0.1:3341` 暴露结构化安装状态；只有固定 SHA-256、
官方发布密钥指纹和 GPG 签名全部通过，且 `127.0.0.1:3340/api/v1/version`
确认版本、单身份迁移和新频道根提交后，状态才会变为 `ready=true`。候选数据与
旧第五域 Gitea 完全隔离；旧访问令牌、仓库、活动和 Git 历史不会迁入。

必须同时满足：

1. Forgejo 内置更新检查器关闭；
2. 官方上游不能自动合并、自动构建或自动部署；
3. 生产更新只认光湖签名清单；
4. 光湖清单不可用时停留在人工发布，不回退官方接口；
5. Gitea 迁移必须并行演练、可恢复、可回滚。

本目录不是服务器凭据库，不保存密码、Token、SSH 私钥或数据库转储。

## 隔离候选

`candidate-app.jd.ini`、`candidate-app.enterprise.ini`、`install-candidate.sh`、
`start-candidate.sh` 和
`stop-candidate.sh` 用于 `JD-FD-PRIMARY` 与 `AW-GZ-001` 上各自独立的隔离候选：

- 只绑定 `127.0.0.1:3340`；
- 使用独立 SQLite 和仓库目录；
- 禁止注册、Actions、镜像和 Forgejo 内置更新检查；
- 只接收由 `BS-SG-003` 准备的固定 v16.0.1 二进制、签名与官方公钥材料；
- 在两个国内节点分别再次核验 Forgejo 官方 GPG 指纹和二进制签名；
- 安装和启动分离，安装脚本不注册 systemd、cron 或其他自动任务。

同一份离线包还要在 `AW-GZ-001` 企业服务器使用
`candidate-app.enterprise.ini` 独立部署。京东与企业实例的数据库、仓库、用户、
权限、密钥和回滚目录完全分离；它们只共享经过验签的源码与版本基线。

`BS-SG-003` 只负责海外源码和发布材料下载，不启动代码仓库服务。京东和企业节点都
必须保留 `forgejo-upstream-all.bundle`、`guanghu-code-channel.bundle`、官方签名、
公钥和 `MANIFEST.sha256`，从而在国内断开海外下载时仍可离线恢复与重装。候选验证
位于各自独立目录，不读取、不迁移、不修改国内现役 Gitea 数据。

`prepare-release-on-sg.sh` 是新加坡中继的唯一准备脚本：它从 Forgejo 官方镜像
下载固定版本二进制和签名、拉取并核对官方 GPG 指纹，并从现有上游镜像和光湖
产品仓生成两个 Git bundle。全部文件写入 `MANIFEST.sha256`。它不会启动服务，
也不会自行向京东或企业服务器传输；两次传输都必须绑定后续受控工单。
