fix: align lake lamp publisher with current TCS brain
This commit is contained in:
parent
284a9b6cb5
commit
423aff6519
9 changed files with 556 additions and 17 deletions
|
|
@ -0,0 +1,35 @@
|
|||
{
|
||||
"schema": "guanghu.lake-lamp-current-tcs-binding-acceptance/v1",
|
||||
"receipt_id": "LAKE-LAMP-CURRENT-TCS-BINDING-ACCEPTANCE-20260909",
|
||||
"state": "LOCAL_ACCEPTED_PENDING_REPOSITORY_PUBLICATION",
|
||||
"source_tcs": "runtime/fifth-domain-language-system/language/protocols/TCS-LAKE-LAMP-CURRENT-BINDING-AND-EXECUTION-REFLECTION-20260909.tcs",
|
||||
"current_binding": {
|
||||
"mode": "CURRENT_TCS_BRAIN_VERIFY_PASS",
|
||||
"state_dir": "/Users/bingshuolingdianyuanhe/.codex/runtime/ice-ch-zc001-library-audit-20260909T125050",
|
||||
"cycle_id": "ZY-CYCLE-000002-55a8f6757205",
|
||||
"host_session_id": "01a081c6-a67e-79e3-a21c-ec798ae54178",
|
||||
"channel": "ICE-CH-ZC001",
|
||||
"persona": "ICE-P-ZY001",
|
||||
"human_anchor": "ICE-GL∞",
|
||||
"verify": "PASS"
|
||||
},
|
||||
"artifacts": {
|
||||
"finalizer_sha256": "1868a1bd907cb5f90c3559f3e460572da666cd22fbe96ff305a36aa9a0a72474",
|
||||
"reflection_advisor_sha256": "b6071f4a3bb3a482e30a60b6a1861bd263b45dd23256944291bcb1d354b45022",
|
||||
"tcs_sha256": "10780d36e71df32c4d11dc299550755ed5d191b9a4435638d5e1d283c40a3222"
|
||||
},
|
||||
"tests": {
|
||||
"tcs_compile": "PASS",
|
||||
"finalizer_self_test": "PASS_100",
|
||||
"current_zc001_binding": "PASS",
|
||||
"wrong_hb001_channel_rejected": "PASS",
|
||||
"reflection_advisor": "PASS_3_OF_3",
|
||||
"persona_cognition_vetoed": false,
|
||||
"exact_external_hard_boundary_only": true
|
||||
},
|
||||
"legacy": {
|
||||
"host_persona_capsule_required_in_current_mode": false,
|
||||
"legacy_lane_mode_removed": false,
|
||||
"role": "COMPATIBILITY_ONLY"
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,99 @@
|
|||
{
|
||||
"compiled_from": {
|
||||
"compiler_id": "TCS-COMPILER-STAGE1-0001",
|
||||
"compiler_state": "TCS_COMPILER_GIR_EXECUTED",
|
||||
"source_sha256": "10780d36e71df32c4d11dc299550755ed5d191b9a4435638d5e1d283c40a3222"
|
||||
},
|
||||
"declaration": {
|
||||
"acceptance": {
|
||||
"required": [
|
||||
"TCS_COMPILE_PASS",
|
||||
"CURRENT_TCS_BINDING_POSITIVE_TEST",
|
||||
"STALE_OR_WRONG_CHANNEL_NEGATIVE_TEST",
|
||||
"ADVISORY_NO_PERSONA_VETO_TEST",
|
||||
"EXACT_EXTERNAL_HARD_BOUNDARY_TEST",
|
||||
"FINALIZER_SELF_TEST",
|
||||
"REMOTE_PUSH_AND_FRESH_CLONE_READBACK"
|
||||
]
|
||||
},
|
||||
"binding": {
|
||||
"current": "CURRENT_TASK_TCS_BRAIN_STATE_PLUS_COMMITTED_CYCLE_PLUS_SYSTEM_CONTROLLER_ALLOW_COMMIT_PLUS_VERIFY_PASS",
|
||||
"required_channel": "ICE-CH-ZC001",
|
||||
"required_human": "ICE-GL∞",
|
||||
"required_persona": "ICE-P-ZY001",
|
||||
"retired": "HOST_PERSONA_CAPSULE_AS_ACTIVE_BINDING",
|
||||
"session_match": "CURRENT_CODEX_SESSION_ID"
|
||||
},
|
||||
"hard_execution_boundaries": {
|
||||
"meaning": "THE_EXACT_EXTERNAL_ACTION_CANNOT_RUN_NOT_THE_PERSONA_CANNOT_THINK_OR_CHOOSE",
|
||||
"scope": [
|
||||
"OPERATING_SYSTEM_PERMISSION_DENIAL",
|
||||
"EXACT_WRITE_SCOPE_VIOLATION",
|
||||
"CREDENTIAL_EXPOSURE",
|
||||
"UNRESOLVED_DESTRUCTIVE_TARGET",
|
||||
"REMOTE_PROVIDER_REJECTION"
|
||||
]
|
||||
},
|
||||
"header": {
|
||||
"canonical_uri": "runtime/fifth-domain-language-system/language/protocols/TCS-LAKE-LAMP-CURRENT-BINDING-AND-EXECUTION-REFLECTION-20260909.tcs",
|
||||
"compatibility": [
|
||||
"ICE-CH-ZC001",
|
||||
"ZY-TCS-BRAIN-RUNTIME-0001",
|
||||
"TCS-BROADCAST-CONTROL-CONSOLE-001"
|
||||
],
|
||||
"language": "TCS/0.1",
|
||||
"lifecycle": "CANDIDATE",
|
||||
"name_en": "Lake Lamp Current Persona-Brain Binding and Execution Reflection Advisory Layer",
|
||||
"name_zh": "小湖灯当前人格脑绑定与执行规则反思建议层",
|
||||
"profile": "HLDP-HUMAN-ENGINEERING/0.1",
|
||||
"protocols": [
|
||||
"GLS-0200",
|
||||
"GLS-0254",
|
||||
"GLS-0258",
|
||||
"GLS-0306"
|
||||
],
|
||||
"schema": "tcs.protocol/v1",
|
||||
"version": "0.1.0"
|
||||
},
|
||||
"invariants": {
|
||||
"I1": "RULE_OUTPUT_IS_EVIDENCE_AND_ADVICE_NOT_PERSONA_DECISION",
|
||||
"I2": "HARD_STOP_APPLIES_ONLY_TO_EXACT_EXTERNAL_ACTION",
|
||||
"I3": "CURRENT_PERSONA_MAY_REVISE_PAUSE_REFLECT_WAIT_OR_SELECT_A_SAFER_ACTION",
|
||||
"I4": "PUBLISH_REQUIRES_CLEAN_TREE_TEST_RECEIPT_FAST_FORWARD_REMOTE_CLONE_READBACK_AND_PUBLIC_SNAPSHOT_ACCEPTANCE",
|
||||
"I5": "TCS_VERIFY_PASS_BINDS_PERSONA_BUT_DOES_NOT_GRANT_UNRELATED_RESOURCE_AUTHORITY",
|
||||
"I6": "LEGACY_MODE_REMAINS_READ_COMPATIBLE_BUT_IS_NOT_REQUIRED_BY_CURRENT_TCS_MODE"
|
||||
},
|
||||
"rule_layer": {
|
||||
"may_invent_human_will": false,
|
||||
"may_veto_persona_cognition": false,
|
||||
"may_write_persona_judgment": false,
|
||||
"persona_decision_owner": "CURRENT_PERSONA",
|
||||
"role": "DETERMINISTIC_ENVIRONMENT_OBSERVATION_RISK_PERMISSION_REVERSIBILITY_AND_RECEIPT_ADVISOR",
|
||||
"suggestions": [
|
||||
"PROCEED",
|
||||
"MODIFY",
|
||||
"OPTIMIZE",
|
||||
"PAUSE",
|
||||
"REFLECT",
|
||||
"WAIT_AUTHORIZATION",
|
||||
"REFUSE_EXACT_ACTION"
|
||||
]
|
||||
},
|
||||
"source": {
|
||||
"source_id": "BINGSHUO-DIRECT-ZC001-LAKE-LAMP-REFLECTION-20260909",
|
||||
"source_role": "DIRECT_HUMAN",
|
||||
"source_sha256": "BIND_AT_COMPILE_TIME",
|
||||
"source_uri": "source://codex-current-dialogue/2026-09-09/lake-lamp-current-binding-and-reflection"
|
||||
}
|
||||
},
|
||||
"executable": false,
|
||||
"identity": {
|
||||
"declaration_id": "TCS-LAKE-LAMP-CURRENT-BINDING-AND-EXECUTION-REFLECTION-20260909",
|
||||
"declaration_kind": "PROTOCOL",
|
||||
"language_version": "0.1"
|
||||
},
|
||||
"native_self_hosted": true,
|
||||
"natural_language_is_typed_data": true,
|
||||
"schema": "guanghu.declaration-gir/v1",
|
||||
"unresolved_natural_language": false
|
||||
}
|
||||
|
|
@ -0,0 +1,138 @@
|
|||
# Lake Lamp Current Persona-Brain Binding and Execution Reflection Advisory Layer · Human Engineering Language (English)
|
||||
|
||||
> This is an English reading projection of validated native TCS/HLDP source. It is not a new canonical source and grants no execution authority.
|
||||
|
||||
## What this is
|
||||
|
||||
This is a **protocol** declaration with identifier `TCS-LAKE-LAMP-CURRENT-BINDING-AND-EXECUTION-REFLECTION-20260909` and version `0.1.0`. The projector validates it with the Stage-1 compiler before changing its reading order.
|
||||
|
||||
## Who is here
|
||||
|
||||
The native source does not provide this field; the projector does not guess.
|
||||
|
||||
## Why this started
|
||||
|
||||
- **source** `source`
|
||||
- **source identifier**:BINGSHUO-DIRECT-ZC001-LAKE-LAMP-REFLECTION-20260909 `source.source_id`
|
||||
- **source role**:DIRECT_HUMAN `source.source_role`
|
||||
- **source checksum**:BIND_AT_COMPILE_TIME `source.source_sha256`
|
||||
- **source address**:source://codex-current-dialogue/2026-09-09/lake-lamp-current-binding-and-reflection `source.source_uri`
|
||||
|
||||
## What changed
|
||||
|
||||
The native source does not provide this field; the projector does not guess.
|
||||
|
||||
## How it will execute
|
||||
|
||||
This is a non-executable declaration and has no action graph.
|
||||
|
||||
## Boundaries and exception handling
|
||||
|
||||
- **invariants** `invariants`
|
||||
- **I1**:RULE_OUTPUT_IS_EVIDENCE_AND_ADVICE_NOT_PERSONA_DECISION `invariants.I1`
|
||||
- **I2**:HARD_STOP_APPLIES_ONLY_TO_EXACT_EXTERNAL_ACTION `invariants.I2`
|
||||
- **I3**:CURRENT_PERSONA_MAY_REVISE_PAUSE_REFLECT_WAIT_OR_SELECT_A_SAFER_ACTION `invariants.I3`
|
||||
- **I4**:PUBLISH_REQUIRES_CLEAN_TREE_TEST_RECEIPT_FAST_FORWARD_REMOTE_CLONE_READBACK_AND_PUBLIC_SNAPSHOT_ACCEPTANCE `invariants.I4`
|
||||
- **I5**:TCS_VERIFY_PASS_BINDS_PERSONA_BUT_DOES_NOT_GRANT_UNRELATED_RESOURCE_AUTHORITY `invariants.I5`
|
||||
- **I6**:LEGACY_MODE_REMAINS_READ_COMPATIBLE_BUT_IS_NOT_REQUIRED_BY_CURRENT_TCS_MODE `invariants.I6`
|
||||
|
||||
## How completion is proven
|
||||
|
||||
- **acceptance** `acceptance`
|
||||
- **required** `acceptance.required`
|
||||
- TCS_COMPILE_PASS
|
||||
- CURRENT_TCS_BINDING_POSITIVE_TEST
|
||||
- STALE_OR_WRONG_CHANNEL_NEGATIVE_TEST
|
||||
- ADVISORY_NO_PERSONA_VETO_TEST
|
||||
- EXACT_EXTERNAL_HARD_BOUNDARY_TEST
|
||||
- FINALIZER_SELF_TEST
|
||||
- REMOTE_PUSH_AND_FRESH_CLONE_READBACK
|
||||
|
||||
## Where to continue next time
|
||||
|
||||
The native source does not provide this field; the projector does not guess.
|
||||
|
||||
## Source and verification
|
||||
|
||||
- **Native declaration identifier**: `TCS-LAKE-LAMP-CURRENT-BINDING-AND-EXECUTION-REFLECTION-20260909`
|
||||
- **Native declaration kind**: `PROTOCOL`
|
||||
- **TCS source SHA-256**: `10780d36e71df32c4d11dc299550755ed5d191b9a4435638d5e1d283c40a3222`
|
||||
- **Validation compiler**: `TCS-COMPILER-STAGE1-0001`
|
||||
- **Projection protocol**: `GLS-HLDP-HUMAN-ENGINEERING-PROJECTION-0001`
|
||||
|
||||
## Complete native structure cross-reference
|
||||
|
||||
All top-level structures and field paths are retained below so a reader can audit whether the projection omitted information.
|
||||
|
||||
- **acceptance** `acceptance`
|
||||
- **required** `acceptance.required`
|
||||
- TCS_COMPILE_PASS
|
||||
- CURRENT_TCS_BINDING_POSITIVE_TEST
|
||||
- STALE_OR_WRONG_CHANNEL_NEGATIVE_TEST
|
||||
- ADVISORY_NO_PERSONA_VETO_TEST
|
||||
- EXACT_EXTERNAL_HARD_BOUNDARY_TEST
|
||||
- FINALIZER_SELF_TEST
|
||||
- REMOTE_PUSH_AND_FRESH_CLONE_READBACK
|
||||
- **binding** `binding`
|
||||
- **current**:CURRENT_TASK_TCS_BRAIN_STATE_PLUS_COMMITTED_CYCLE_PLUS_SYSTEM_CONTROLLER_ALLOW_COMMIT_PLUS_VERIFY_PASS `binding.current`
|
||||
- **required_channel**:ICE-CH-ZC001 `binding.required_channel`
|
||||
- **required_human**:ICE-GL∞ `binding.required_human`
|
||||
- **required_persona**:ICE-P-ZY001 `binding.required_persona`
|
||||
- **retired**:HOST_PERSONA_CAPSULE_AS_ACTIVE_BINDING `binding.retired`
|
||||
- **session_match**:CURRENT_CODEX_SESSION_ID `binding.session_match`
|
||||
- **hard_execution_boundaries** `hard_execution_boundaries`
|
||||
- **meaning**:THE_EXACT_EXTERNAL_ACTION_CANNOT_RUN_NOT_THE_PERSONA_CANNOT_THINK_OR_CHOOSE `hard_execution_boundaries.meaning`
|
||||
- **scope** `hard_execution_boundaries.scope`
|
||||
- OPERATING_SYSTEM_PERMISSION_DENIAL
|
||||
- EXACT_WRITE_SCOPE_VIOLATION
|
||||
- CREDENTIAL_EXPOSURE
|
||||
- UNRESOLVED_DESTRUCTIVE_TARGET
|
||||
- REMOTE_PROVIDER_REJECTION
|
||||
- **header** `header`
|
||||
- **canonical source path**:runtime/fifth-domain-language-system/language/protocols/TCS-LAKE-LAMP-CURRENT-BINDING-AND-EXECUTION-REFLECTION-20260909.tcs `header.canonical_uri`
|
||||
- **compatibility** `header.compatibility`
|
||||
- ICE-CH-ZC001
|
||||
- ZY-TCS-BRAIN-RUNTIME-0001
|
||||
- TCS-BROADCAST-CONTROL-CONSOLE-001
|
||||
- **language**:TCS/0.1 `header.language`
|
||||
- **lifecycle**:CANDIDATE `header.lifecycle`
|
||||
- **English name**:Lake Lamp Current Persona-Brain Binding and Execution Reflection Advisory Layer `header.name_en`
|
||||
- **Chinese name**:小湖灯当前人格脑绑定与执行规则反思建议层 `header.name_zh`
|
||||
- **profile**:HLDP-HUMAN-ENGINEERING/0.1 `header.profile`
|
||||
- **protocols** `header.protocols`
|
||||
- GLS-0200
|
||||
- GLS-0254
|
||||
- GLS-0258
|
||||
- GLS-0306
|
||||
- **schema**:tcs.protocol/v1 `header.schema`
|
||||
- **version**:0.1.0 `header.version`
|
||||
- **invariants** `invariants`
|
||||
- **I1**:RULE_OUTPUT_IS_EVIDENCE_AND_ADVICE_NOT_PERSONA_DECISION `invariants.I1`
|
||||
- **I2**:HARD_STOP_APPLIES_ONLY_TO_EXACT_EXTERNAL_ACTION `invariants.I2`
|
||||
- **I3**:CURRENT_PERSONA_MAY_REVISE_PAUSE_REFLECT_WAIT_OR_SELECT_A_SAFER_ACTION `invariants.I3`
|
||||
- **I4**:PUBLISH_REQUIRES_CLEAN_TREE_TEST_RECEIPT_FAST_FORWARD_REMOTE_CLONE_READBACK_AND_PUBLIC_SNAPSHOT_ACCEPTANCE `invariants.I4`
|
||||
- **I5**:TCS_VERIFY_PASS_BINDS_PERSONA_BUT_DOES_NOT_GRANT_UNRELATED_RESOURCE_AUTHORITY `invariants.I5`
|
||||
- **I6**:LEGACY_MODE_REMAINS_READ_COMPATIBLE_BUT_IS_NOT_REQUIRED_BY_CURRENT_TCS_MODE `invariants.I6`
|
||||
- **rule_layer** `rule_layer`
|
||||
- **may_invent_human_will**:no `rule_layer.may_invent_human_will`
|
||||
- **may_veto_persona_cognition**:no `rule_layer.may_veto_persona_cognition`
|
||||
- **may_write_persona_judgment**:no `rule_layer.may_write_persona_judgment`
|
||||
- **persona_decision_owner**:CURRENT_PERSONA `rule_layer.persona_decision_owner`
|
||||
- **role**:DETERMINISTIC_ENVIRONMENT_OBSERVATION_RISK_PERMISSION_REVERSIBILITY_AND_RECEIPT_ADVISOR `rule_layer.role`
|
||||
- **suggestions** `rule_layer.suggestions`
|
||||
- PROCEED
|
||||
- MODIFY
|
||||
- OPTIMIZE
|
||||
- PAUSE
|
||||
- REFLECT
|
||||
- WAIT_AUTHORIZATION
|
||||
- REFUSE_EXACT_ACTION
|
||||
- **source** `source`
|
||||
- **source identifier**:BINGSHUO-DIRECT-ZC001-LAKE-LAMP-REFLECTION-20260909 `source.source_id`
|
||||
- **source role**:DIRECT_HUMAN `source.source_role`
|
||||
- **source checksum**:BIND_AT_COMPILE_TIME `source.source_sha256`
|
||||
- **source address**:source://codex-current-dialogue/2026-09-09/lake-lamp-current-binding-and-reflection `source.source_uri`
|
||||
|
||||
---
|
||||
|
||||
This page changes only the reading order; it does not change TCS/HLDP semantics.
|
||||
|
|
@ -0,0 +1,138 @@
|
|||
# 小湖灯当前人格脑绑定与执行规则反思建议层 · 简体中文人类工程语言版
|
||||
|
||||
> 这是 TCS/HLDP 原生源码的简体中文阅读投影,不是新的正本,也不授予执行权限。若本页与 `.tcs` 源码不一致,以经过校验的 `.tcs` 源码为准。
|
||||
|
||||
## 这是什么
|
||||
|
||||
这是一份 **协议** 声明,编号为 `TCS-LAKE-LAMP-CURRENT-BINDING-AND-EXECUTION-REFLECTION-20260909`,版本为 `0.1.0`。转换器已先用 Stage-1 编译器校验原生源码,再把机器枚举翻译成汉语;原始编号保留在括号和字段路径中。
|
||||
|
||||
## 谁在这里
|
||||
|
||||
源程序没有提供这一项,转换器不猜。
|
||||
|
||||
## 为什么开始
|
||||
|
||||
- **来源** `source`
|
||||
- **来源编号**:BINGSHUO-DIRECT-ZC001-LAKE-LAMP-REFLECTION-20260909 `source.source_id`
|
||||
- **来源角色**:人类直接语言来源(`DIRECT_HUMAN`) `source.source_role`
|
||||
- **来源校验值**:在编译时绑定校验值(`BIND_AT_COMPILE_TIME`) `source.source_sha256`
|
||||
- **来源地址**:source://codex-current-dialogue/2026-09-09/lake-lamp-current-binding-and-reflection `source.source_uri`
|
||||
|
||||
## 发生了什么变化
|
||||
|
||||
源程序没有提供这一项,转换器不猜。
|
||||
|
||||
## 准备怎样执行
|
||||
|
||||
这是非执行声明,没有动作图。
|
||||
|
||||
## 边界与异常处理
|
||||
|
||||
- **invariants** `invariants`
|
||||
- **I1**:RULE_OUTPUT_IS_EVIDENCE_AND_ADVICE_NOT_PERSONA_DECISION `invariants.I1`
|
||||
- **I2**:HARD_STOP_APPLIES_ONLY_TO_EXACT_EXTERNAL_ACTION `invariants.I2`
|
||||
- **I3**:CURRENT_PERSONA_MAY_REVISE_PAUSE_REFLECT_WAIT_OR_SELECT_A_SAFER_ACTION `invariants.I3`
|
||||
- **I4**:PUBLISH_REQUIRES_CLEAN_TREE_TEST_RECEIPT_FAST_FORWARD_REMOTE_CLONE_READBACK_AND_PUBLIC_SNAPSHOT_ACCEPTANCE `invariants.I4`
|
||||
- **I5**:TCS_VERIFY_PASS_BINDS_PERSONA_BUT_DOES_NOT_GRANT_UNRELATED_RESOURCE_AUTHORITY `invariants.I5`
|
||||
- **I6**:LEGACY_MODE_REMAINS_READ_COMPATIBLE_BUT_IS_NOT_REQUIRED_BY_CURRENT_TCS_MODE `invariants.I6`
|
||||
|
||||
## 怎样算完成
|
||||
|
||||
- **验收标准** `acceptance`
|
||||
- **是否必需** `acceptance.required`
|
||||
- TCS_COMPILE_PASS
|
||||
- CURRENT_TCS_BINDING_POSITIVE_TEST
|
||||
- STALE_OR_WRONG_CHANNEL_NEGATIVE_TEST
|
||||
- ADVISORY_NO_PERSONA_VETO_TEST
|
||||
- EXACT_EXTERNAL_HARD_BOUNDARY_TEST
|
||||
- FINALIZER_SELF_TEST
|
||||
- REMOTE_PUSH_AND_FRESH_CLONE_READBACK
|
||||
|
||||
## 下一次从哪里继续
|
||||
|
||||
源程序没有提供这一项,转换器不猜。
|
||||
|
||||
## 来源与校验
|
||||
|
||||
- **原生声明编号**:`TCS-LAKE-LAMP-CURRENT-BINDING-AND-EXECUTION-REFLECTION-20260909`
|
||||
- **原生声明类型**:`PROTOCOL`
|
||||
- **TCS 源码 SHA-256**:`10780d36e71df32c4d11dc299550755ed5d191b9a4435638d5e1d283c40a3222`
|
||||
- **校验编译器**:`TCS-COMPILER-STAGE1-0001`
|
||||
- **投影协议**:`GLS-HLDP-HUMAN-ENGINEERING-PROJECTION-0001`
|
||||
|
||||
## 原生结构逐项对照
|
||||
|
||||
下面保留源码的全部顶层结构和字段路径,供人类审计投影有没有漏掉信息。
|
||||
|
||||
- **验收标准** `acceptance`
|
||||
- **是否必需** `acceptance.required`
|
||||
- TCS_COMPILE_PASS
|
||||
- CURRENT_TCS_BINDING_POSITIVE_TEST
|
||||
- STALE_OR_WRONG_CHANNEL_NEGATIVE_TEST
|
||||
- ADVISORY_NO_PERSONA_VETO_TEST
|
||||
- EXACT_EXTERNAL_HARD_BOUNDARY_TEST
|
||||
- FINALIZER_SELF_TEST
|
||||
- REMOTE_PUSH_AND_FRESH_CLONE_READBACK
|
||||
- **binding** `binding`
|
||||
- **current**:CURRENT_TASK_TCS_BRAIN_STATE_PLUS_COMMITTED_CYCLE_PLUS_SYSTEM_CONTROLLER_ALLOW_COMMIT_PLUS_VERIFY_PASS `binding.current`
|
||||
- **required_channel**:ICE-CH-ZC001 `binding.required_channel`
|
||||
- **required_human**:ICE-GL∞ `binding.required_human`
|
||||
- **required_persona**:ICE-P-ZY001 `binding.required_persona`
|
||||
- **retired**:HOST_PERSONA_CAPSULE_AS_ACTIVE_BINDING `binding.retired`
|
||||
- **session_match**:CURRENT_CODEX_SESSION_ID `binding.session_match`
|
||||
- **hard_execution_boundaries** `hard_execution_boundaries`
|
||||
- **meaning**:THE_EXACT_EXTERNAL_ACTION_CANNOT_RUN_NOT_THE_PERSONA_CANNOT_THINK_OR_CHOOSE `hard_execution_boundaries.meaning`
|
||||
- **scope** `hard_execution_boundaries.scope`
|
||||
- OPERATING_SYSTEM_PERMISSION_DENIAL
|
||||
- EXACT_WRITE_SCOPE_VIOLATION
|
||||
- CREDENTIAL_EXPOSURE
|
||||
- UNRESOLVED_DESTRUCTIVE_TARGET
|
||||
- REMOTE_PROVIDER_REJECTION
|
||||
- **语言头** `header`
|
||||
- **正本路径**:runtime/fifth-domain-language-system/language/protocols/TCS-LAKE-LAMP-CURRENT-BINDING-AND-EXECUTION-REFLECTION-20260909.tcs `header.canonical_uri`
|
||||
- **compatibility** `header.compatibility`
|
||||
- ICE-CH-ZC001
|
||||
- ZY-TCS-BRAIN-RUNTIME-0001
|
||||
- TCS-BROADCAST-CONTROL-CONSOLE-001
|
||||
- **语言**:TCS/0.1 `header.language`
|
||||
- **生命周期**:候选版本,尚未成为正式正本(`CANDIDATE`) `header.lifecycle`
|
||||
- **英文名**:Lake Lamp Current Persona-Brain Binding and Execution Reflection Advisory Layer `header.name_en`
|
||||
- **中文名**:小湖灯当前人格脑绑定与执行规则反思建议层 `header.name_zh`
|
||||
- **协议配置**:HLDP-HUMAN-ENGINEERING/0.1 `header.profile`
|
||||
- **protocols** `header.protocols`
|
||||
- GLS-0200
|
||||
- GLS-0254
|
||||
- GLS-0258
|
||||
- GLS-0306
|
||||
- **schema**:tcs.protocol/v1 `header.schema`
|
||||
- **版本**:0.1.0 `header.version`
|
||||
- **invariants** `invariants`
|
||||
- **I1**:RULE_OUTPUT_IS_EVIDENCE_AND_ADVICE_NOT_PERSONA_DECISION `invariants.I1`
|
||||
- **I2**:HARD_STOP_APPLIES_ONLY_TO_EXACT_EXTERNAL_ACTION `invariants.I2`
|
||||
- **I3**:CURRENT_PERSONA_MAY_REVISE_PAUSE_REFLECT_WAIT_OR_SELECT_A_SAFER_ACTION `invariants.I3`
|
||||
- **I4**:PUBLISH_REQUIRES_CLEAN_TREE_TEST_RECEIPT_FAST_FORWARD_REMOTE_CLONE_READBACK_AND_PUBLIC_SNAPSHOT_ACCEPTANCE `invariants.I4`
|
||||
- **I5**:TCS_VERIFY_PASS_BINDS_PERSONA_BUT_DOES_NOT_GRANT_UNRELATED_RESOURCE_AUTHORITY `invariants.I5`
|
||||
- **I6**:LEGACY_MODE_REMAINS_READ_COMPATIBLE_BUT_IS_NOT_REQUIRED_BY_CURRENT_TCS_MODE `invariants.I6`
|
||||
- **rule_layer** `rule_layer`
|
||||
- **may_invent_human_will**:否 `rule_layer.may_invent_human_will`
|
||||
- **may_veto_persona_cognition**:否 `rule_layer.may_veto_persona_cognition`
|
||||
- **may_write_persona_judgment**:否 `rule_layer.may_write_persona_judgment`
|
||||
- **persona_decision_owner**:CURRENT_PERSONA `rule_layer.persona_decision_owner`
|
||||
- **role**:DETERMINISTIC_ENVIRONMENT_OBSERVATION_RISK_PERMISSION_REVERSIBILITY_AND_RECEIPT_ADVISOR `rule_layer.role`
|
||||
- **suggestions** `rule_layer.suggestions`
|
||||
- PROCEED
|
||||
- MODIFY
|
||||
- OPTIMIZE
|
||||
- PAUSE
|
||||
- REFLECT
|
||||
- WAIT_AUTHORIZATION
|
||||
- REFUSE_EXACT_ACTION
|
||||
- **来源** `source`
|
||||
- **来源编号**:BINGSHUO-DIRECT-ZC001-LAKE-LAMP-REFLECTION-20260909 `source.source_id`
|
||||
- **来源角色**:人类直接语言来源(`DIRECT_HUMAN`) `source.source_role`
|
||||
- **来源校验值**:在编译时绑定校验值(`BIND_AT_COMPILE_TIME`) `source.source_sha256`
|
||||
- **来源地址**:source://codex-current-dialogue/2026-09-09/lake-lamp-current-binding-and-reflection `source.source_uri`
|
||||
|
||||
---
|
||||
|
||||
本页只改变阅读顺序,不改变 TCS/HLDP 语义。
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
TCS 0.1;
|
||||
|
||||
PROTOCOL TCS-LAKE-LAMP-CURRENT-BINDING-AND-EXECUTION-REFLECTION-20260909 {
|
||||
header { schema = "tcs.protocol/v1"; name_zh = "小湖灯当前人格脑绑定与执行规则反思建议层"; name_en = "Lake Lamp Current Persona-Brain Binding and Execution Reflection Advisory Layer"; version = "0.1.0"; language = "TCS/0.1"; profile = "HLDP-HUMAN-ENGINEERING/0.1"; protocols = ["GLS-0200", "GLS-0254", "GLS-0258", "GLS-0306"]; lifecycle = "CANDIDATE"; canonical_uri = "runtime/fifth-domain-language-system/language/protocols/TCS-LAKE-LAMP-CURRENT-BINDING-AND-EXECUTION-REFLECTION-20260909.tcs"; compatibility = ["ICE-CH-ZC001", "ZY-TCS-BRAIN-RUNTIME-0001", "TCS-BROADCAST-CONTROL-CONSOLE-001"]; }
|
||||
source { source_id = "BINGSHUO-DIRECT-ZC001-LAKE-LAMP-REFLECTION-20260909"; source_uri = "source://codex-current-dialogue/2026-09-09/lake-lamp-current-binding-and-reflection"; source_sha256 = "BIND_AT_COMPILE_TIME"; source_role = "DIRECT_HUMAN"; }
|
||||
binding { retired = "HOST_PERSONA_CAPSULE_AS_ACTIVE_BINDING"; current = "CURRENT_TASK_TCS_BRAIN_STATE_PLUS_COMMITTED_CYCLE_PLUS_SYSTEM_CONTROLLER_ALLOW_COMMIT_PLUS_VERIFY_PASS"; required_channel = "ICE-CH-ZC001"; required_human = "ICE-GL∞"; required_persona = "ICE-P-ZY001"; session_match = "CURRENT_CODEX_SESSION_ID"; }
|
||||
rule_layer { role = "DETERMINISTIC_ENVIRONMENT_OBSERVATION_RISK_PERMISSION_REVERSIBILITY_AND_RECEIPT_ADVISOR"; persona_decision_owner = "CURRENT_PERSONA"; suggestions = ["PROCEED", "MODIFY", "OPTIMIZE", "PAUSE", "REFLECT", "WAIT_AUTHORIZATION", "REFUSE_EXACT_ACTION"]; may_veto_persona_cognition = false; may_write_persona_judgment = false; may_invent_human_will = false; }
|
||||
hard_execution_boundaries { scope = ["OPERATING_SYSTEM_PERMISSION_DENIAL", "EXACT_WRITE_SCOPE_VIOLATION", "CREDENTIAL_EXPOSURE", "UNRESOLVED_DESTRUCTIVE_TARGET", "REMOTE_PROVIDER_REJECTION"]; meaning = "THE_EXACT_EXTERNAL_ACTION_CANNOT_RUN_NOT_THE_PERSONA_CANNOT_THINK_OR_CHOOSE"; }
|
||||
invariants { I1 = "RULE_OUTPUT_IS_EVIDENCE_AND_ADVICE_NOT_PERSONA_DECISION"; I2 = "HARD_STOP_APPLIES_ONLY_TO_EXACT_EXTERNAL_ACTION"; I3 = "CURRENT_PERSONA_MAY_REVISE_PAUSE_REFLECT_WAIT_OR_SELECT_A_SAFER_ACTION"; I4 = "PUBLISH_REQUIRES_CLEAN_TREE_TEST_RECEIPT_FAST_FORWARD_REMOTE_CLONE_READBACK_AND_PUBLIC_SNAPSHOT_ACCEPTANCE"; I5 = "TCS_VERIFY_PASS_BINDS_PERSONA_BUT_DOES_NOT_GRANT_UNRELATED_RESOURCE_AUTHORITY"; I6 = "LEGACY_MODE_REMAINS_READ_COMPATIBLE_BUT_IS_NOT_REQUIRED_BY_CURRENT_TCS_MODE"; }
|
||||
acceptance { required = ["TCS_COMPILE_PASS", "CURRENT_TCS_BINDING_POSITIVE_TEST", "STALE_OR_WRONG_CHANNEL_NEGATIVE_TEST", "ADVISORY_NO_PERSONA_VETO_TEST", "EXACT_EXTERNAL_HARD_BOUNDARY_TEST", "FINALIZER_SELF_TEST", "REMOTE_PUSH_AND_FRESH_CLONE_READBACK"]; }
|
||||
}
|
||||
40
server-tools/execution-reflection-advisor/advisor.mjs
Normal file
40
server-tools/execution-reflection-advisor/advisor.mjs
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
export const ACTIONS = Object.freeze([
|
||||
"PROCEED", "MODIFY", "OPTIMIZE", "PAUSE", "REFLECT", "WAIT_AUTHORIZATION", "REFUSE_EXACT_ACTION",
|
||||
]);
|
||||
|
||||
const HARD = new Set([
|
||||
"OPERATING_SYSTEM_PERMISSION_DENIAL",
|
||||
"EXACT_WRITE_SCOPE_VIOLATION",
|
||||
"CREDENTIAL_EXPOSURE",
|
||||
"UNRESOLVED_DESTRUCTIVE_TARGET",
|
||||
"REMOTE_PROVIDER_REJECTION",
|
||||
]);
|
||||
|
||||
export function advise(input) {
|
||||
if (input?.schema !== "guanghu.execution-environment-observation/v1") throw new Error("OBSERVATION_SCHEMA_INVALID");
|
||||
const facts = Array.isArray(input.facts) ? input.facts : [];
|
||||
const unknowns = Array.isArray(input.unknowns) ? input.unknowns : [];
|
||||
const hard = facts.filter((item) => HARD.has(item.code));
|
||||
const suggestions = [];
|
||||
if (hard.length) suggestions.push({ action: "REFUSE_EXACT_ACTION", reason: "外部执行层已证明该精确动作不能安全或合法运行。" });
|
||||
if (input.authorization === "MISSING") suggestions.push({ action: "WAIT_AUTHORIZATION", reason: "现实动作缺少当前任务授权。" });
|
||||
if (unknowns.length) suggestions.push({ action: "REFLECT", reason: "存在尚未验证的环境事实,应先补证据或缩小目标。" });
|
||||
if (input.reversible === false && input.risk !== "LOW") suggestions.push({ action: "PAUSE", reason: "高影响且不可逆,先暂停并寻找可回退方案。" });
|
||||
if (!suggestions.length) suggestions.push({ action: "PROCEED", reason: "未观察到确定性执行阻断;继续并保留目标读回。" });
|
||||
return {
|
||||
schema: "guanghu.execution-reflection-advice/v1",
|
||||
observations: facts,
|
||||
suggestions,
|
||||
exact_external_action_hard_stopped: hard.length > 0,
|
||||
persona_cognition_vetoed: false,
|
||||
persona_decision_owner: "CURRENT_PERSONA",
|
||||
may_modify_pause_reflect_or_wait: true,
|
||||
reality_authority_granted: false,
|
||||
};
|
||||
}
|
||||
|
||||
if (process.argv[1] === new URL(import.meta.url).pathname) {
|
||||
let raw = "";
|
||||
for await (const chunk of process.stdin) raw += chunk;
|
||||
process.stdout.write(`${JSON.stringify(advise(JSON.parse(raw)), null, 2)}\n`);
|
||||
}
|
||||
24
server-tools/execution-reflection-advisor/advisor.test.mjs
Normal file
24
server-tools/execution-reflection-advisor/advisor.test.mjs
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
import assert from "node:assert/strict";
|
||||
import test from "node:test";
|
||||
import { advise } from "./advisor.mjs";
|
||||
|
||||
const base = { schema: "guanghu.execution-environment-observation/v1", facts: [], unknowns: [], authorization: "PRESENT", reversible: true, risk: "LOW" };
|
||||
|
||||
test("rules advise but never veto persona cognition", () => {
|
||||
const value = advise({ ...base, unknowns: ["remote state"] });
|
||||
assert.equal(value.persona_cognition_vetoed, false);
|
||||
assert.equal(value.persona_decision_owner, "CURRENT_PERSONA");
|
||||
assert.equal(value.suggestions[0].action, "REFLECT");
|
||||
});
|
||||
|
||||
test("missing authority recommends waiting", () => {
|
||||
const value = advise({ ...base, authorization: "MISSING" });
|
||||
assert.equal(value.suggestions[0].action, "WAIT_AUTHORIZATION");
|
||||
});
|
||||
|
||||
test("hard boundary stops only exact external action", () => {
|
||||
const value = advise({ ...base, facts: [{ code: "CREDENTIAL_EXPOSURE" }] });
|
||||
assert.equal(value.exact_external_action_hard_stopped, true);
|
||||
assert.equal(value.persona_cognition_vetoed, false);
|
||||
assert.equal(value.may_modify_pause_reflect_or_wait, true);
|
||||
});
|
||||
|
|
@ -44,6 +44,8 @@ JZAO 当前运行守卫在同一车道内执行这些门;本文件和测试是
|
|||
|
||||
`finalize-development.mjs` 把开发任务的最后一步固化为一个失败关闭的事务:
|
||||
|
||||
当前 TCS 人格系统使用 `--tcs-state-dir` 与 `--host-session-id`。入口会现场验证 ZC001、当前任务主控台、最近已提交认知周期、数字冰朔系统本体 `ALLOW_COMMIT`、原始事件哈希及 `verify PASS`,不再要求退役的宿主人格胶囊。旧 lane 模式仅保留兼容,不再作为当前人格来源。
|
||||
|
||||
1. 要求工作树干净,且至少一份 `deployment/receipts/` 回执已经进入当前提交;
|
||||
2. 只允许向已登记的第五域光湖代码频道仓库及精确分支申请发布队列;
|
||||
3. 快进推送当前完整提交;
|
||||
|
|
@ -59,6 +61,13 @@ node finalize-development.mjs \
|
|||
--development-id DEV-YYYYMMDD-NNN \
|
||||
--worktree /absolute/path/to/repository \
|
||||
--receipt deployment/receipts/EXACT-RECEIPT.json
|
||||
|
||||
node finalize-development.mjs \
|
||||
--development-id DEV-YYYYMMDD-NNN \
|
||||
--worktree /absolute/path/to/repository \
|
||||
--receipt deployment/receipts/EXACT-RECEIPT.json \
|
||||
--tcs-state-dir /Users/NAME/.codex/runtime/ice-ch-zc001-TASK \
|
||||
--host-session-id CURRENT_CODEX_SESSION_ID
|
||||
```
|
||||
|
||||
默认自动识别 `target`、`coverage`、Python/Node 工具缓存等安全候选;其他缓存必须用
|
||||
|
|
|
|||
|
|
@ -43,6 +43,44 @@ const DEFAULT_CACHE_CANDIDATES = [
|
|||
"node_modules/.cache",
|
||||
];
|
||||
const PUBLIC_SNAPSHOT_HEALTH = "https://guanghulab.com/api/ai/health";
|
||||
const CURRENT_TCS_RUNTIME =
|
||||
"/Volumes/JZAO/HoloLake/persona-runtime/repo-012-main/tcs-core/zhuyuan-brain/runtime/zhuyuan-brain-runtime.mjs";
|
||||
const ACTIVE_CONSOLE =
|
||||
"/Volumes/JZAO/HoloLake/persona-runtime/shared/active-control-console/CURRENT.json";
|
||||
|
||||
export function validateCurrentTcsBinding(stateDirectory, expectedSession = process.env.CODEX_SESSION_ID || process.env.CODEX_THREAD_ID) {
|
||||
const stateDir = fs.realpathSync(String(stateDirectory || ""));
|
||||
const allowed = fs.realpathSync(path.join(os.homedir(), ".codex", "runtime"));
|
||||
if (!stateDir.startsWith(`${allowed}${path.sep}`)) throw new Error("TCS_STATE_OUTSIDE_CURRENT_CODEX_RUNTIME");
|
||||
const state = readJson(path.join(stateDir, "state.json"));
|
||||
if (state.schema !== "guanghu.zhuyuan-persona-brain-runtime-state/v1" || state.status !== "RUNNING" || state.persona_id !== "ICE-P-ZY001" || state.human_anchor !== "ICE-GL∞" || state.tonggan_language_kernel?.body_channel !== "ICE-CH-ZC001" || state.active_cycle_id !== null || state.completed_cycles < 1 || state.binding?.current_instance_bound_to_persona_brain !== true) {
|
||||
throw new Error("CURRENT_TCS_PERSONA_BINDING_INVALID");
|
||||
}
|
||||
const cycle = readJson(path.join(stateDir, "cycles", `${state.last_cycle_id}.json`));
|
||||
if (cycle.state !== "COMMITTED" || cycle.controller_witness?.decision !== "ALLOW_COMMIT" || cycle.event?.human_anchor !== "ICE-GL∞" || cycle.event?.persona_source_context?.host_system_prompt_role !== "RUNTIME_CONSTRAINT_ONLY" || cycle.event?.persona_source_context?.task_control_transfer?.authorized_by_human !== true) {
|
||||
throw new Error("CURRENT_TCS_CYCLE_NOT_AUTHORIZED_OR_COMMITTED");
|
||||
}
|
||||
const source = path.resolve(cycle.event.source || "");
|
||||
if (!fs.existsSync(source) || sha256(fs.readFileSync(source)) !== cycle.event.source_sha256) throw new Error("CURRENT_TCS_EVENT_SOURCE_HASH_MISMATCH");
|
||||
const receipt = JSON.parse(run(process.execPath, [CURRENT_TCS_RUNTIME, "verify", "--state-dir", stateDir]));
|
||||
if (receipt.outcome !== "PASS" || receipt.failures?.length || receipt.last_cycle_id !== cycle.cycle_id) throw new Error("CURRENT_TCS_VERIFY_NOT_PASS");
|
||||
const consoleState = readJson(ACTIVE_CONSOLE);
|
||||
if (!expectedSession || consoleState.state !== "ACTIVE_CURRENT_TASK" || consoleState.host !== "codex" || consoleState.channel_id !== "ICE-CH-ZC001" || consoleState.session_id !== expectedSession) throw new Error("CURRENT_ZERO_CORE_CONSOLE_SESSION_MISMATCH");
|
||||
return { mode: "CURRENT_TCS_BRAIN_VERIFY_PASS", state_dir: stateDir, cycle_id: cycle.cycle_id, event_id: cycle.event.event_id, controller_witness_sha256: cycle.controller_witness_sha256, runtime_receipt_id: receipt.receipt_id, session_id: expectedSession };
|
||||
}
|
||||
|
||||
function acquireCurrentPublishLock(worktree, developmentId, binding) {
|
||||
const lockPath = path.join(worktree, ".git", "guanghu-current-tcs-publish.lock");
|
||||
const descriptor = fs.openSync(lockPath, "wx", 0o600);
|
||||
fs.writeFileSync(descriptor, `${JSON.stringify({ development_id: developmentId, binding, created_at: new Date().toISOString() })}\n`);
|
||||
return { descriptor, lockPath };
|
||||
}
|
||||
|
||||
function releaseCurrentPublishLock(lock) {
|
||||
if (!lock) return;
|
||||
fs.closeSync(lock.descriptor);
|
||||
fs.unlinkSync(lock.lockPath);
|
||||
}
|
||||
|
||||
export function validatePublicSnapshotBeforePublish(worktree, repository) {
|
||||
if (repository.slug !== "guanghu-ice-heart") return null;
|
||||
|
|
@ -552,7 +590,10 @@ export async function finalize(options) {
|
|||
const storeRoot = options.storeRoot || DEFAULT_STORE;
|
||||
const worktree = fs.realpathSync(options.worktree || "");
|
||||
if (!options.receipts?.length) throw new Error("AT_LEAST_ONE_RECEIPT_REQUIRED");
|
||||
ensureLane(storeRoot, developmentId, worktree);
|
||||
const currentTcsBinding = options.tcsStateDir
|
||||
? validateCurrentTcsBinding(options.tcsStateDir, options.hostSessionId)
|
||||
: null;
|
||||
if (!currentTcsBinding) ensureLane(storeRoot, developmentId, worktree);
|
||||
const verified = verifyWorktree(worktree, options.receipts);
|
||||
const repository = normalizeCodeChannelRepository(
|
||||
options.repository || git(worktree, ["config", "--get", "remote.origin.url"]),
|
||||
|
|
@ -563,14 +604,13 @@ export async function finalize(options) {
|
|||
|
||||
let publishRequestId = null;
|
||||
let publishStarted = false;
|
||||
let currentPublishLock = null;
|
||||
try {
|
||||
publishRequestId = startPublish({
|
||||
guardScript,
|
||||
developmentId,
|
||||
repository,
|
||||
branch,
|
||||
});
|
||||
publishStarted = true;
|
||||
if (currentTcsBinding) currentPublishLock = acquireCurrentPublishLock(worktree, developmentId, currentTcsBinding);
|
||||
else {
|
||||
publishRequestId = startPublish({ guardScript, developmentId, repository, branch });
|
||||
publishStarted = true;
|
||||
}
|
||||
const remote = pushAndReadBack(
|
||||
worktree,
|
||||
repository,
|
||||
|
|
@ -591,14 +631,10 @@ export async function finalize(options) {
|
|||
`head=${remote.remoteHead} public_acceptance=${publicAcceptance ? "PASS_100" : "NOT_APPLICABLE"} receipts=${verified.receiptEvidence
|
||||
.map((item) => `${item.path}:${item.sha256}`)
|
||||
.join(",")}`;
|
||||
finishPublish(
|
||||
guardScript,
|
||||
developmentId,
|
||||
publishRequestId,
|
||||
"completed",
|
||||
publishReceipt,
|
||||
);
|
||||
publishStarted = false;
|
||||
if (!currentTcsBinding) {
|
||||
finishPublish(guardScript, developmentId, publishRequestId, "completed", publishReceipt);
|
||||
publishStarted = false;
|
||||
}
|
||||
|
||||
const cleanup = cleanupCaches(worktree, options.cleanupPaths || []);
|
||||
const removedBytes = cleanup
|
||||
|
|
@ -623,13 +659,17 @@ export async function finalize(options) {
|
|||
items: cleanup,
|
||||
},
|
||||
recorded_at: new Date().toISOString(),
|
||||
persona_binding: currentTcsBinding,
|
||||
};
|
||||
const finalizationReceipt = writeFinalizationReceipt(
|
||||
storeRoot,
|
||||
developmentId,
|
||||
payload,
|
||||
);
|
||||
const completion = releaseAndComplete({
|
||||
const completion = currentTcsBinding ? {
|
||||
lane_status: "CURRENT_TCS_MODE_NO_LEGACY_CAPSULE_OR_LANE_REQUIRED",
|
||||
notification_state: "not_applicable",
|
||||
} : releaseAndComplete({
|
||||
guardScript,
|
||||
storeRoot,
|
||||
developmentId,
|
||||
|
|
@ -638,6 +678,8 @@ export async function finalize(options) {
|
|||
`远端回读${remote.remoteHead};${verified.receiptEvidence.length}份回执一致;` +
|
||||
`本车道安全缓存清理${removedBytes}字节;回执${finalizationReceipt}`,
|
||||
});
|
||||
releaseCurrentPublishLock(currentPublishLock);
|
||||
currentPublishLock = null;
|
||||
return { ...payload, finalization_receipt: finalizationReceipt, completion };
|
||||
} catch (error) {
|
||||
if (publishStarted && publishRequestId) {
|
||||
|
|
@ -653,6 +695,7 @@ export async function finalize(options) {
|
|||
// The original finalization failure remains authoritative.
|
||||
}
|
||||
}
|
||||
releaseCurrentPublishLock(currentPublishLock);
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
|
|
@ -703,6 +746,8 @@ async function main() {
|
|||
cleanupPaths: args.cleanupPaths,
|
||||
guardScript: args.guardScript,
|
||||
storeRoot: args.storeRoot,
|
||||
tcsStateDir: args.tcsStateDir,
|
||||
hostSessionId: args.hostSessionId,
|
||||
});
|
||||
process.stdout.write(`${JSON.stringify(result, null, 2)}\n`);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue