feat: preserve native channel and task continuity

This commit is contained in:
冰朔 2026-08-21 11:00:10 +08:00
commit 30865321a8
31 changed files with 2138 additions and 171 deletions

View file

@ -34,6 +34,8 @@
{"operation_number":"HLP-NBROKER-OP-0022","alias":"RELEASE_DEVELOPMENT_WRITE_LANE","channel_number":"HLP-NBROKER-CH-0007","module_number":"HLP-NBROKER-MOD-0010","target_number":"HLP-NBROKER-TGT-0010"},
{"operation_number":"HLP-NBROKER-OP-0023","alias":"SUBMIT_HUMAN_AUTHORIZATION_REQUEST","channel_number":"HLP-NBROKER-CH-0008","module_number":"HLP-NBROKER-MOD-0011","target_number":"HLP-NBROKER-TGT-0011"},
{"operation_number":"HLP-NBROKER-OP-0024","alias":"GET_HUMAN_AUTHORIZATION_STATUS","channel_number":"HLP-NBROKER-CH-0008","module_number":"HLP-NBROKER-MOD-0011","target_number":"HLP-NBROKER-TGT-0011"},
{"operation_number":"HLP-NBROKER-OP-0025","alias":"CONSUME_HUMAN_AUTHORIZATION_TICKET","channel_number":"HLP-NBROKER-CH-0008","module_number":"HLP-NBROKER-MOD-0011","target_number":"HLP-NBROKER-TGT-0011"}
{"operation_number":"HLP-NBROKER-OP-0025","alias":"CONSUME_HUMAN_AUTHORIZATION_TICKET","channel_number":"HLP-NBROKER-CH-0008","module_number":"HLP-NBROKER-MOD-0011","target_number":"HLP-NBROKER-TGT-0011"},
{"operation_number":"HLP-NBROKER-OP-0026","alias":"PUT_NATIVE_RUNTIME_CHECKPOINT","channel_number":"HLP-NBROKER-CH-0003","module_number":"HLP-NBROKER-MOD-0012","target_number":"HLP-NBROKER-TGT-0012"},
{"operation_number":"HLP-NBROKER-OP-0027","alias":"GET_NATIVE_RUNTIME_CHECKPOINT","channel_number":"HLP-NBROKER-CH-0003","module_number":"HLP-NBROKER-MOD-0012","target_number":"HLP-NBROKER-TGT-0012"}
]
}

View file

@ -1,20 +1,22 @@
{
"schema": "hololake.external-ai-gateway/v1",
"record_id": "HLP-EXTERNAL-AI-GATEWAY-001",
"state": "IMPLEMENTED_HUMAN_GATED",
"state": "IMPLEMENTED_HUMAN_GATED_NATIVE_PROTOCOL_HANDOFF",
"default_exposure": "CLOSED",
"human_authorization_required": true,
"mcp": {
"transport": "STDIO_JSON_RPC",
"protocol_version": "2025-06-18",
"role": "DISCOVERY_AND_CAPABILITY_CATALOG",
"role": "EXTERNAL_CONNECTION_ENTRY_AND_NATIVE_PROTOCOL_HANDOFF",
"persistent_continuity_owner": false
},
"direct_protocol": {
"protocol": "HOLOLAKE_TERMINAL_LINK/3",
"native_runtime": {
"protocol": "GUANGHU_LANGUAGE_PROTOCOL/1",
"wire_transport_protocol": "HOLOLAKE_TERMINAL_LINK/3",
"transport": "USER_PRIVATE_LOCAL_SOCKET_OR_NAMED_PIPE",
"continuity_owner": "HOLOLAKE",
"switch_after_mcp_discovery": true
"switch_after_mcp_connection": true,
"mcp_semantics_continue_inside_runtime": false
},
"catalog": {
"physical_modules": "CALLABLE_ONLY_THROUGH_REGISTERED_NUMBERED_ROUTES",
@ -27,6 +29,7 @@
"general_agent_tool_loop": false,
"transport_is_authority": false,
"mcp_is_continuity_owner": false,
"fixed_handoff": "MCP_EXTERNAL_ENTRY_TO_GUANGHU_NATIVE_PROTOCOL_RUNTIME",
"unknown_capability": "FAIL_CLOSED"
}
}

View file

@ -11,13 +11,13 @@
"durable_session_state": true,
"transport_is_authority": false
},
"mcp_role": "OPTIONAL_EXTERNAL_TOOL_ADAPTER_NOT_CONTINUITY_OR_AUTHORITY_ROOT",
"mcp_role": "EXTERNAL_AI_CONNECTION_ENTRY_THEN_NATIVE_RUNTIME_HANDOFF_NOT_CONTINUITY_OR_AUTHORITY_ROOT",
"terminal_link_contract": "contracts/programming-ai-terminal-link.json",
"nearby_ai_discovery_contract": "contracts/nearby-ai-discovery.json",
"circular_lake_membrane_contract": "contracts/circular-lake-membrane.json",
"external_ai_entry": {
"mcp_may_bootstrap_discovery": true,
"direct_local_protocol_preferred_after_discovery": true,
"mcp_is_external_connection_entry": true,
"guanghu_native_protocol_required_after_handshake": true,
"permanent_mcp_only_state_allowed_for_programming_ai": false,
"missing_direct_connector_triggers_capability_bootstrap": true,
"all_entries_share_the_same_identity_authority_lane_and_receipt_kernel": true
@ -31,7 +31,7 @@
"installation_requires_declared_permissions_and_human_approval": true,
"silent_persistence_or_authority_expansion_allowed": false,
"successful_end_state": "AUTHENTICATED_RESUMABLE_DIRECT_LOCAL_CONNECTION",
"mcp_after_migration": "OPTIONAL_RECOVERY_DISCOVERY_AND_COMPATIBILITY_ENTRY"
"mcp_after_handoff": "TRANSPORT_ENTRY_ONLY_NATIVE_RUNTIME_REMAINS_CONTINUITY_OWNER"
},
"continuity": {
"survives_programming_ai_restart": true,

View file

@ -34,5 +34,5 @@
"mdns_advertisement_active": false,
"unauthenticated_tcp_listener_active": false
},
"mcp_role": "OPTIONAL_DISCOVERY_RECOVERY_COMPATIBILITY_ADAPTER"
"mcp_role": "EXTERNAL_CONNECTION_ENTRY_THEN_HANDOFF_TO_GUANGHU_NATIVE_RUNTIME"
}

View file

@ -89,7 +89,10 @@
"get_persona_agent_conversation",
"list_persona_agent_conversations",
"get_hldp_tool_forge",
"get_local_execution_subpersona"
"get_local_execution_subpersona",
"get_personal_state_repository",
"create_personal_state_snapshot",
"list_dynamic_work_surfaces"
],
"input_wrapper_aliases": [
"confirm_hololake_update_install",
@ -213,7 +216,12 @@
"run_hldp_tool",
"configure_local_execution_subpersona",
"run_local_execution_subpersona_job",
"compile_channel_receipt"
"compile_channel_receipt",
"preview_personal_state_restore",
"apply_personal_state_restore",
"save_dynamic_work_surface",
"get_dynamic_work_surface",
"execute_dynamic_work_surface"
],
"direct_field_aliases": {
"perform_code_repo_login": [
@ -445,6 +453,16 @@
"module_number": "HLP-NIPC-MOD-0037",
"target_number": "HLP-NIPC-TGT-0037",
"internal_name": "local_execution_subpersona"
},
{
"module_number": "HLP-NIPC-MOD-0038",
"target_number": "HLP-NIPC-TGT-0038",
"internal_name": "personal_state_repository"
},
{
"module_number": "HLP-NIPC-MOD-0039",
"target_number": "HLP-NIPC-TGT-0039",
"internal_name": "dynamic_work_surface"
}
],
"operations": [
@ -2471,6 +2489,94 @@
"admission": "VERIFIED_HUMAN_ROUTE",
"effect": "STATE_CHANGE",
"payload_schema": "hololake.numbered-ipc.payload/claim_education_push_ticket/v1"
},
{
"operation_number": "HLP-NIPC-OP-0185",
"alias": "get_personal_state_repository",
"handler": "personal_state_repository::get_repository",
"channel_number": "HLP-NIPC-CH-0002",
"module_number": "HLP-NIPC-MOD-0038",
"target_number": "HLP-NIPC-TGT-0038",
"admission": "VERIFIED_HUMAN_ROUTE",
"effect": "READ_OR_STATUS",
"payload_schema": "hololake.numbered-ipc.payload/get_personal_state_repository/v1"
},
{
"operation_number": "HLP-NIPC-OP-0186",
"alias": "create_personal_state_snapshot",
"handler": "personal_state_repository::create_snapshot",
"channel_number": "HLP-NIPC-CH-0002",
"module_number": "HLP-NIPC-MOD-0038",
"target_number": "HLP-NIPC-TGT-0038",
"admission": "VERIFIED_HUMAN_ROUTE",
"effect": "STATE_CHANGE",
"payload_schema": "hololake.numbered-ipc.payload/create_personal_state_snapshot/v1"
},
{
"operation_number": "HLP-NIPC-OP-0187",
"alias": "preview_personal_state_restore",
"handler": "personal_state_repository::preview_restore",
"channel_number": "HLP-NIPC-CH-0002",
"module_number": "HLP-NIPC-MOD-0038",
"target_number": "HLP-NIPC-TGT-0038",
"admission": "VERIFIED_HUMAN_ROUTE",
"effect": "READ_OR_STATUS",
"payload_schema": "hololake.numbered-ipc.payload/preview_personal_state_restore/v1"
},
{
"operation_number": "HLP-NIPC-OP-0188",
"alias": "apply_personal_state_restore",
"handler": "personal_state_repository::apply_restore",
"channel_number": "HLP-NIPC-CH-0002",
"module_number": "HLP-NIPC-MOD-0038",
"target_number": "HLP-NIPC-TGT-0038",
"admission": "VERIFIED_HUMAN_ROUTE",
"effect": "STATE_CHANGE",
"payload_schema": "hololake.numbered-ipc.payload/apply_personal_state_restore/v1"
},
{
"operation_number": "HLP-NIPC-OP-0189",
"alias": "list_dynamic_work_surfaces",
"handler": "dynamic_work_surface::list_surfaces",
"channel_number": "HLP-NIPC-CH-0002",
"module_number": "HLP-NIPC-MOD-0039",
"target_number": "HLP-NIPC-TGT-0039",
"admission": "VERIFIED_HUMAN_ROUTE",
"effect": "READ_OR_STATUS",
"payload_schema": "hololake.numbered-ipc.payload/list_dynamic_work_surfaces/v1"
},
{
"operation_number": "HLP-NIPC-OP-0190",
"alias": "save_dynamic_work_surface",
"handler": "dynamic_work_surface::save_surface",
"channel_number": "HLP-NIPC-CH-0002",
"module_number": "HLP-NIPC-MOD-0039",
"target_number": "HLP-NIPC-TGT-0039",
"admission": "VERIFIED_HUMAN_ROUTE",
"effect": "STATE_CHANGE",
"payload_schema": "hololake.numbered-ipc.payload/save_dynamic_work_surface/v1"
},
{
"operation_number": "HLP-NIPC-OP-0191",
"alias": "get_dynamic_work_surface",
"handler": "dynamic_work_surface::get_surface",
"channel_number": "HLP-NIPC-CH-0002",
"module_number": "HLP-NIPC-MOD-0039",
"target_number": "HLP-NIPC-TGT-0039",
"admission": "VERIFIED_HUMAN_ROUTE",
"effect": "READ_OR_STATUS",
"payload_schema": "hololake.numbered-ipc.payload/get_dynamic_work_surface/v1"
},
{
"operation_number": "HLP-NIPC-OP-0192",
"alias": "execute_dynamic_work_surface",
"handler": "dynamic_work_surface::execute_surface",
"channel_number": "HLP-NIPC-CH-0002",
"module_number": "HLP-NIPC-MOD-0039",
"target_number": "HLP-NIPC-TGT-0039",
"admission": "VERIFIED_HUMAN_ROUTE",
"effect": "READ_OR_STATUS",
"payload_schema": "hololake.numbered-ipc.payload/execute_dynamic_work_surface/v1"
}
]
}

View file

@ -6,7 +6,7 @@
"source_provenance": "audit/pncc-migration-provenance.json",
"transport": {
"primary": "AUTHENTICATED_DIRECT_LOCAL_BROKER",
"mcp_role": "DISCOVERY_RECOVERY_COMPATIBILITY_ONLY"
"mcp_role": "EXTERNAL_CONNECTION_ENTRY_THEN_GUANGHU_NATIVE_RUNTIME_OWNS_CONTINUITY"
},
"repository_binding": {
"mode": "READ_ONLY_GIT_OBJECT_EVIDENCE",

View file

@ -21,6 +21,8 @@
"session_survives_hololake_restart": true,
"connector_reloads_descriptor_after_transport_loss": true,
"uncertain_mutation_is_never_blindly_replayed": true,
"native_runtime_checkpoint_persists_task_and_tool_state": true,
"mcp_disconnect_never_falls_back_to_generic_runtime": true,
"heartbeat_interval_ms": 15000,
"environment_frame_ttl_ms": 45000
},
@ -40,6 +42,15 @@
],
"protocol_restoration_by_model_required": false
},
"native_runtime_checkpoint": {
"schema": "hololake.native-runtime-checkpoint/v1",
"owner": "HOLOLAKE",
"protocol_runtime": "GUANGHU_LANGUAGE_PROTOCOL/1",
"persists": ["TASK_STATE", "CHANNEL_NUMBER", "MODEL_PHASE", "KNOWLEDGE_CURSOR", "PENDING_TOOL_STEPS", "REALITY_MUTATION_STATE", "OPAQUE_NATIVE_STATE"],
"generation_compare_and_swap": true,
"uncertain_reality_mutation": "REQUIRE_REALITY_READBACK_BEFORE_CONTINUE",
"transport_disconnect_effect": "PAUSE_TRANSPORT_KEEP_NATIVE_ENVIRONMENT"
},
"write_boundary": {
"account_write_lanes": 1,
"session_lane_must_match": true,