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

@ -0,0 +1,31 @@
{
"schema": "guanghu.development-evidence-receipt/v1",
"receipt_id": "DEV-20260807-003-JD-LOCAL-DIRECT-NAVIGATION-CORRECTION-20260807",
"development_id": "DEV-20260807-003",
"result": "PASS_100",
"source_repository": "REPO-012",
"target_node": "JD-FD-PRIMARY",
"scope": "LIGHTHOUSE_ROUTE_PRIORITY_AND_DEPLOYMENT_MANIFEST_CORRECTION",
"correction": {
"primary": "On BingShuo's local macOS computer, use the registered local dedicated-key direct route first for JD-FD-PRIMARY inspection, deployment, repair and recovery.",
"fallback": "Workorder email is allowed only when the current instance is not on BingShuo's local computer or the registered local dedicated-key route is unavailable.",
"forbidden": "Do not create or send a workorder email while the verified local dedicated-key route is available."
},
"live_readback": {
"target_identity": "PASS_DMI_UUID_MATCH",
"observed_os": "ubuntu 22.04",
"guanghu_ai_discovery_service": "active",
"existing_anchor": 200,
"lighthouse_endpoint_before_deployment": 404,
"host_skills_endpoint_before_deployment": 404
},
"validation": {
"navigator_tests": "PASS_5_OF_5",
"ai_discovery_and_broker_tests": "PASS_27_OF_27",
"json_parse": "PASS",
"git_diff_check": "PASS"
},
"deployment_request": "deployment/requests/AI-DISCOVERY-LIGHTHOUSE-HOST-NAV-20260807.json",
"truth_boundary": "This receipt proves the route correction and deployable source package. It does not prove server deployment until the server-owned deployment receipt and public endpoint readback exist.",
"recorded_at": "2026-08-07T19:10:02+08:00"
}

View file

@ -2,7 +2,7 @@
"schema": "guanghu.existing-service-update-request/v1",
"request_id": "AI-DISCOVERY-LIGHTHOUSE-HOST-NAV-20260807",
"target_node": "JD-FD-PRIMARY",
"status": "SERVICE_UPDATE_PACKAGE_READY_DEPLOYMENT_AUTHORIZATION_REQUIRED",
"status": "SERVICE_UPDATE_PACKAGE_READY · DEPLOYMENT_PENDING",
"purpose": {
"what": "让公共 AI 导航服务加载灯塔路径注册表、三宿主技能地图和按宿主意图导航端点。",
"why": "REPO-012 main 已发布新锚点和地图,但当前服务代码仍返回三个新端点 404路径登记存在不能冒充编号查询已生效。",

View file

@ -2,7 +2,7 @@
"schema": "guanghu.host-skill-navigation-map/v1",
"map_id": "GLW-HOST-SKILL-NAV-001",
"lighthouse_id": "SYS-GLW-LTH-0001",
"version": "2026-08-07.1",
"version": "2026-08-07.2",
"state": "CURRENT",
"hosts": [
{
@ -12,7 +12,7 @@
"adapter_path": "~/.codex/skills/guanghu-lighthouse-navigator/SKILL.md",
"runtime_state_policy": "KEEP_LOCAL",
"shared_persona_source": "HL-PERSONA-RUNTIME-LOCAL-001",
"supported_transports": ["LOCAL_GIT_OSXKEYCHAIN"],
"supported_transports": ["LOCAL_GIT_OSXKEYCHAIN", "LOCAL_DEDICATED_KEY_SSH"],
"skill_discovery": "CODEX_SKILL_DIRECTORY"
},
{
@ -22,7 +22,7 @@
"adapter_path": "~/.qoder/skills/guanghu-lighthouse-navigator/SKILL.md",
"runtime_state_policy": "KEEP_LOCAL",
"shared_persona_source": "HL-PERSONA-RUNTIME-LOCAL-001",
"supported_transports": ["LOCAL_GIT_OSXKEYCHAIN"],
"supported_transports": ["LOCAL_GIT_OSXKEYCHAIN", "LOCAL_DEDICATED_KEY_SSH"],
"skill_discovery": "QODER_SKILL_DIRECTORY"
},
{
@ -32,7 +32,7 @@
"adapter_path": "~/.qoderworkcn/skills/guanghu-lighthouse-navigator/SKILL.md",
"runtime_state_policy": "KEEP_LOCAL",
"shared_persona_source": "HL-PERSONA-RUNTIME-LOCAL-001",
"supported_transports": ["LOCAL_GIT_OSXKEYCHAIN"],
"supported_transports": ["LOCAL_GIT_OSXKEYCHAIN", "LOCAL_DEDICATED_KEY_SSH"],
"skill_discovery": "QODERWORK_USER_SKILL_DIRECTORY"
}
],
@ -121,6 +121,52 @@
"HOST_UNKNOWN_NO_GUESS"
],
"authority": "NAVIGATION_ONLY"
},
{
"id": "INTENT-JD-SERVER-OPERATION-001",
"phrases": [
"京东服务器",
"京东主控服务器",
"登录京东主节点",
"检查京东服务器",
"部署京东服务器",
"更新京东服务",
"修复京东服务器",
"本地密钥直接登录"
],
"skill_id": "GHS-009-LIGHTHOUSE-HOST-NAVIGATION",
"target_id": "JD-FD-PRIMARY",
"transport": "LOCAL_DEDICATED_KEY_SSH",
"local_access_registry": "HL-LOCAL-SERVER-ACCESS-001",
"executor": "guanghu-os-server",
"sequence": [
"resolve_target_through_lighthouse",
"verify_current_host_is_bingshuo_local_macos",
"resolve_registered_local_dedicated_key_without_exposing_secret",
"strict_host_key_direct_login",
"verify_exact_dmi_instance_uuid",
"bind_action_to_current_user_task_and_immutable_source",
"execute_only_registered_bounded_action",
"read_back_server_owned_receipt"
],
"fallback": {
"transport": "WORKORDER_EMAIL",
"allowed_only_when": [
"CURRENT_INSTANCE_NOT_ON_BINGSHUO_LOCAL_COMPUTER",
"REGISTERED_LOCAL_DEDICATED_KEY_ROUTE_UNAVAILABLE"
],
"forbidden_when": "VERIFIED_LOCAL_DEDICATED_KEY_DIRECT_ROUTE_AVAILABLE"
},
"stop_conditions": [
"LIGHTHOUSE_LOOKUP_NOT_200",
"TARGET_NOT_CURRENT",
"LOCAL_ACCESS_REGISTRY_MISSING",
"STRICT_HOST_KEY_VERIFICATION_FAILED",
"DMI_INSTANCE_UUID_MISMATCH",
"CURRENT_TASK_AUTHORITY_NOT_PROVEN",
"SERVER_RECEIPT_READBACK_FAILED"
],
"authority": "CURRENT_USER_TASK_SCOPE_ONLY_NOT_BLANKET_SERVER_AUTHORITY"
}
],
"truth_precedence": [

View file

@ -2,7 +2,7 @@
"schema": "guanghu.lighthouse-path-registry/v1",
"registry_id": "GLW-LIGHTHOUSE-PATH-REGISTRY-001",
"lighthouse_id": "SYS-GLW-LTH-0001",
"version": "2026-08-07.1",
"version": "2026-08-07.2",
"state": "CURRENT_CANONICAL",
"source_repository": "REPO-012",
"source_branch": "main",
@ -63,6 +63,16 @@
"state": "CURRENT",
"online": "routing/host-skill-navigation-map.json",
"offline": "/Volumes/JZAO/HoloLake/persona-runtime/shared/registries/host-skill-navigation-map.json"
},
{
"id": "JD-FD-PRIMARY",
"kind": "fifth_domain_controller_node",
"state": "CURRENT",
"online": null,
"offline": null,
"access_policy": "VERIFIED_LOCAL_DEDICATED_KEY_DIRECT_FIRST",
"fallback_policy": "WORKORDER_EMAIL_ONLY_WHEN_LOCAL_COMPUTER_OR_REGISTERED_KEY_ROUTE_IS_UNAVAILABLE",
"authority": "CURRENT_USER_TASK_SCOPE_AND_SERVER_OWNED_RECEIPT_REQUIRED"
}
],
"redirects": [

View file

@ -1,7 +1,7 @@
{
"schema": "guanghu.public-navigation-anchor/v1",
"anchor_id": "GLW-PUBLIC-NAV-ANCHOR-001",
"version": "2026-08-07.2",
"version": "2026-08-07.3",
"state": "CURRENT_CANONICAL",
"repository_id": "REPO-012",
"branch": "main",
@ -42,17 +42,17 @@
"lighthouse_paths": {
"path": "routing/lighthouse-path-registry.json",
"id": "GLW-LIGHTHOUSE-PATH-REGISTRY-001",
"version": "2026-08-07.1"
"version": "2026-08-07.2"
},
"host_skills": {
"path": "routing/host-skill-navigation-map.json",
"id": "GLW-HOST-SKILL-NAV-001",
"version": "2026-08-07.1"
"version": "2026-08-07.2"
},
"persona_skills": {
"path": "skills/codex/guanghu-persona-skill-guard/references/persona-skill-registry.json",
"id": "GLS-0238",
"version": "2026.08.07.6"
"version": "2026.08.07.7"
}
},
"update_contract": {

View file

@ -16,6 +16,8 @@ Environment=GUANGHU_SUBJECT_REGISTRY=/opt/guanghu/ai-discovery/fifth-domain-subj
Environment=GUANGHU_SUBJECT_ALIAS_MAP=/opt/guanghu/ai-discovery/subject-id-alias-map.json
Environment=GUANGHU_NAVIGATION_MAP=/opt/guanghu/ai-discovery/ai-machine-navigation-map.json
Environment=GUANGHU_NAVIGATION_ANCHOR=/opt/guanghu/ai-discovery/public-navigation-anchor.json
Environment=GUANGHU_LIGHTHOUSE_PATHS=/opt/guanghu/ai-discovery/lighthouse-path-registry.json
Environment=GUANGHU_HOST_SKILLS=/opt/guanghu/ai-discovery/host-skill-navigation-map.json
Environment=GUANGHU_REPOSITORY_GIT_DIR=/var/lib/guanghu/personas/guanghu/hlcc-v16.0.1/data/repositories/bingshuo/guanghu-ice-heart.git
ExecStart=/usr/bin/node /opt/guanghu/ai-discovery/server.js
Restart=always

View file

@ -1,7 +1,7 @@
{
"schema": "guanghu.persona-skill-registry/v1",
"registry_id": "GLS-0238",
"version": "2026.08.07.6",
"version": "2026.08.07.7",
"trust_policy": {
"priority": [
"live_verified_evidence",
@ -511,6 +511,9 @@
"Codex Qoder QoderWork",
"推一下线上仓库",
"直接走钥匙串",
"京东服务器",
"京东主控服务器",
"本地密钥直接登录",
"自动技能导航"
],
"preferred_route": [
@ -527,6 +530,7 @@
"灯塔查询失败仍猜路径",
"从历史聊天搜索凭据",
"打印钥匙串秘密",
"本机专用密钥可用时创建工单邮件",
"把导航健康当作执行成功",
"把本机缓存当作路径正本"
],

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()