# 小湖灯操作回执协议 v1

这是语言人格层、工程层与服务器常驻 Agent 之间的共同事实层。常驻 Agent 只读取本机真实的授权、导航图、固定动作与健康结果；它不替人格体决定目标，也不读取或回传密码、密钥和令牌。

每个回执使用 `guanghu.operation-receipt/v1`：

```json
{"state":"failed","diagnostic_code":"action_execution_failed","workorder_id":"...","target":"JD-FD-PRIMARY","action":"deploy-registered-service","evidence":{"exit_code":1,"stderr":"..."},"next_step":"..."}
```

固定流程：创建工单 → 主人邮箱批准 → 领取会话 → 读取/确认实时导航图 → 查询 `/api/session/status` → 执行已登记固定动作 → 读取回执。

`/api/session/status` 是人格体判断“是否真的进入服务器、当前卡在哪里、最后一次执行是否成功”的唯一接口。它返回会话绑定的目标、范围、允许动作、导航图确认状态、最后回执与下一步。

稳定诊断码：

- `owner_handoff_required`：交给主人打开 `request_url`；不要索要密码或验证码。
- `map_ack_required`：先读并确认实时导航图；不要跳到别的服务器猜路径。
- `session_expired`：同一目标和范围重新申请工单。
- `action_execution_failed`：根据受限 `evidence` 和 `next_step` 修复，再执行同一登记动作。
- `repo_push_transport_unavailable`：推送许可不是 Git 登录凭证。受限 bundle 接收器未部署前，不得重试裸 `git push`。

推送的下一阶段必须是服务器端 bundle 接收器：验证短时会话、仓库、分支和预期基线后，经代码频道支持的接收路径写入并回执提交 SHA。禁止再次用裸仓库 `update-ref` 绕过代码频道数据库。
