# Amazon 仓库内部 V5

这是完整仓内的交互式任务仿真项目，涵盖收货、库存、拣选、包装、复核、分拣、集笼和仓内月台交接。工程当前处于集成验收阶段；最终发布状态、文件哈希和实际测试范围以 `release-evidence.json` 及 [使用与验证页面](viewer/engineering.html) 为准。旧 V4.3 的结果不能证明 V5 已通过。

## 使用

从项目根目录启动 `python3 -m http.server 58124 --bind 127.0.0.1`，打开 `http://127.0.0.1:58124/v5/viewer/`。网页依赖 HTTP 读取模型，直接双击 HTML 不可用。

- “库存与任务来源”查看 SKU、货位、在库、预留和在途，选择货位可定位。
- 选择在途订单并开启跟随，查看同一任务的设备交接与目的地。
- 暂停、单步或调整倍率；仿真时钟与现实时间倍率分开显示。
- 停止新订单后仍处理已到订单、必要补货、余货及空箱回流。解除故障后保留原任务继续运行。
- “料箱去向”区分空闲、随任务和货架内箱；隔离静态箱单列，不能混入循环数量。
- “充电与返程”读取6个真实充电位和159台车状态，可直接定位；SOC属于尚未现场校准的仿真估算。
- 从设备列表观察实际作业状态。空闲、等待上游、故障和执行任务应有不同表现。
- 运行记录导出为 JSON；“导出当前同步模型”截取同一运行内核的 12 秒 GLB 回放。

## 工程边界

设备用途参考 Amazon 公开资料；本仓的尺寸、数量、设备共存、路径、SKU、服务周期和需求均为工程假设。公开资料、工程假设、软件运行观测分别记录。未获得现场测量、Amazon WMS/PLC 或真实触觉/视觉数据，不以此模型承诺现场产能或安全验收。

当前订单模型为单行多件。整仓采用任务与运动学状态；独立接触实验不能证明整仓刚体碰撞与力控制。模型里的设施不因无需求而持续空转。所有设备的实际任务入口与未实现能力由独立审查记录，设备数量不是质量分数。

## 文件与版本

| 文件 | 用途 |
|---|---|
| `viewer/` | 当前统一交互程序与本地依赖 |
| `viewer/model-contract.json` | 布局、资源、路径及库存契约 |
| `viewer/engineering-data.js` | 与布局哈希绑定的离线分配计划 |
| `viewer/fleet-warm-start.json` | 兼容契约的真实仿真状态；不兼容时明确冷态启动 |
| `warehouse_geometry_optimized.glb` | 原始细节模型的优化输入，运行时叠加实际设备与载荷 |
| `amazon_fulfillment_interior_v5.glb` | 发布时从当前运行状态导出的有限回放 |
| `amazon_fulfillment_interior_v5.blend` | 发布时由同一 GLB 导入的可编辑 Blender 场景 |
| `release-evidence.json`、`evidence/` | 发布状态、验证边界与实际记录 |

最终模型文件须通过导出、加载、动画变化和哈希检查后才列入发布包；目录内历史 V4 文件不属于 V5 交付。

## 维护与重新构建

在项目根目录执行。逻辑变动后先重建可视化数据，直到连续输出稳定，再生成模型契约与计划；不允许直接修改生成文件去跳过不一致检查。

```sh
python3 engineering/build-v5.py
```

统一构建器先更新真实料箱合同，再迭代库存和共享网络直至稳定，生成布局契约及对应计划；构建过程中源代码变动会使构建记录失败。

随后重新生成兼容暖态并完成真实浏览器验证，导出 GLB、校验并导入 Blender。工程脚本分别为 `export-v5-browser.js`、`prepare-v5-replay.mjs` 和 `build-v5-blend.py`。变更期间的诊断快照不能代替最终冻结版本。

最终发布前由 `freeze-v5.py` 记录全部运行输入，独立任务形成与该哈希一致的 `final-gate.json`，再执行：

```sh
engineering/.venv/bin/python engineering/check-v5-release.py --local
engineering/.venv/bin/python deployment/package-v5.py
```

线上版本保留在 `/srv/amazon-warehouse-v4/releases/`，`current` 符号链接决定服务目录。发布使用 `deployment/update-v5.py` 校验整包、生成独立 release 并原子切换；失败自动恢复原链接。既有 V4.3 页面保留在 `/v4/viewer/`。

回退时先读取 `deployment/v5-deployment-result.json` 的 `backup` / `release` 实际记录，确认目标 release 存在，再按该记录切回原目录；不得凭猜测删除发布目录。服务名称为 `amazon-warehouse-v4`，端口 8443，现有协议为 HTTP。检查资源哈希和公共地址后才宣布交付。
