fix(lighthouse): prefer JD local key route

This commit is contained in:
冰朔 2026-08-07 19:10:24 +08:00
commit df3012bad2
10 changed files with 130 additions and 11 deletions

View file

@ -18,3 +18,8 @@ Codex、Qoder CN、QoderWork CN 共享本大脑与灯塔注册表,但各自保
当用户说“推一下线上仓库”时,本机 macOS 宿主应解析到已登记代码频道、系统钥匙串
传输与小湖灯自动收口器。不得搜索历史凭据、打印秘密、退回旧 `/fifth-domain/`
也不得把钥匙串存在、提交存在或授权存在分别冒充推送完成;远端完整 SHA 回读才算 100。
当用户提到京东主控服务器的检查、部署、修复或恢复时,本机 macOS 宿主应解析到
`JD-FD-PRIMARY` 与本地专用密钥直达传输。只有当前实例不在冰朔本机,或私有注册表
确认专用密钥直达不可用时,才能把工单邮件作为临时备选。本机直达仍只授予当前任务
范围:先严格校验主机指纹和 DMI 实例 UUID再执行已登记动作并回读服务器自有回执。

View file

@ -23,6 +23,15 @@ description: 光湖灯塔三宿主自动导航。用户提到路径是否有效
`INTENT-REPOSITORY-PUBLISH-001 → REPO-012 → LOCAL_GIT_OSXKEYCHAIN → 小湖灯 finalizer`
不得搜索令牌、猜 SSH、使用旧仓库、手工绕过发布队列或输出钥匙串秘密。
“京东服务器”“京东主控服务器”“检查/部署/修复京东服务”在冰朔本机 macOS 上必须走
`INTENT-JD-SERVER-OPERATION-001 → JD-FD-PRIMARY → LOCAL_DEDICATED_KEY_SSH`
先从 JZAO 私有的 `HL-LOCAL-SERVER-ACCESS-001` 解析本地专用密钥路径,再以严格主机
指纹校验直达;登录后必须核对 DMI 实例 UUID并把任何写入绑定当前用户任务、不可变
来源、回滚和服务器自有回执。不得在本机专用密钥可用时创建或发送工单邮件。
工单邮件只在当前实例不位于冰朔本机,或已登记的本地专用密钥直达路径确实不可用时
作为临时备选;“没有先找到路径”不等于“路径不存在”,必须先查私有本机访问注册表。
## 边界
- 灯塔路径健康不等于现实动作已授权或已完成。

View file

@ -42,6 +42,18 @@ class LighthouseNavigatorTests(unittest.TestCase):
self.assertEqual(route["status"], "REDIRECT_ONLY_NOT_CURRENT")
self.assertEqual(route["redirect"]["redirect_to"], "REPO-012")
def test_jd_server_operation_prefers_local_dedicated_key(self):
route = compile_route(self.registry, self.host_map, "codex", "检查京东主控服务器")
self.assertEqual(route["decision"], "ALLOW_NAVIGATION")
self.assertEqual(route["intent"]["id"], "INTENT-JD-SERVER-OPERATION-001")
self.assertEqual(route["target"]["id"], "JD-FD-PRIMARY")
self.assertEqual(route["intent"]["transport"], "LOCAL_DEDICATED_KEY_SSH")
self.assertEqual(
route["intent"]["fallback"]["forbidden_when"],
"VERIFIED_LOCAL_DEDICATED_KEY_DIRECT_ROUTE_AVAILABLE",
)
self.assertFalse(route["authority_granted"])
if __name__ == "__main__":
unittest.main()