CODE-DESIGN-ANA-SEMI-ROOT-PREFLIGHT-ORCHESTRATION-V007-V021dev.developer.ana.cai2026-07-26T18:10:04.9230408+08:00CODE-DESIGN-ANA-SEMI-ROOT-PREFLIGHT-ORCHESTRATION-V007-V020 / 11173/235aaa1ef3ead63f0b729239de95e89ab54cffe0f2b80a4a7eac2e563120fc93AUDIT-DEV-ANA-SEMI-ROOT-PREFLIGHT-ORCHESTRATION-V007-PRECONSUMPTION-REPAIR-PLAN-V020=PASS/0/0 / 202509/0c81bf1711d4bab2859f7c225d3f9d7fc3992dab143810fd1183663990b0e769 / line 1673AUDIT-DEV-ANA-SEMI-ROOT-PREFLIGHT-ORCHESTRATION-V007-STAGE-P-IMPLEMENTATION-FAILURE-001=PASS_FAILURE_PATH/1/1 / 208353/9c58e80fa237993c5f3194c09458cc529f3e57bbd7f18ea7ebdc2393dc7533dd / line 1704BLOCK-STAGE-P-IMPLEMENTATION-FAILURE-01_P01_WINDOWS_POWERSHELL_GENERIC_METHOD_SYNTAX_INVALIDPENDING_INDEPENDENT_PYTHON_ARCHITECTURE_REPAIR_PLAN_REVIEWNOT_ISSUEDNOT_ISSUED本版是全新、append-only 的实现架构修复计划。旧 Stage P A001 已永久关闭;旧 P01-P04 是不可变失败历史,旧 P05-P08 与旧 run 继续 absent。本版不修改、删除、重命名、复用或补造任何旧目标。
Stage P 从 C#/.NET Framework + Windows PowerShell 5.1 切换为受管 CPython 3.12 单进程实现。该切换只 supersede Stage P 的实现语言、运行时、API 表达与目标路径;V007/V020 已审核通过的业务边界继续有效:
[authorized_at, expires_at);旧实现失败点是 Windows PowerShell 5.1 无法解析 [Linq.Enumerable]::SequenceEqual[byte](...)。Python 直接使用 bytes == bytes,不存在 PowerShell 泛型静态方法语法差异;ast.parse、json.loads、json.dumps、hashlib.sha256、os.open(..., O_CREAT|O_EXCL) 和 datetime 均为标准库,不需要网络安装第三方依赖。
本计划不把“换语言”解释为放宽合同。相反,解析、JCS、字节、路径、进程与终态验证都前移到第一次持久化之前。
代码和正式文档只绑定逻辑运行时 BUNDLED_WORKSPACE_PYTHON_3_12。管理授权前动态解析其绝对路径,并绑定同一次授权的 path/bytes/SHA-256/version。当前只读观察值为:
| field | observed value |
|---|---|
| absolute path | C:\Users\Cai\.cache\codex-runtimes\codex-primary-runtime\dependencies\python\python.exe |
| bytes | 91648 |
| SHA-256 | 3c6a206b7d93cca823934a83732220dcffd413fd1036d9fb82eebb64599cf7f3 |
| product/file version | 3.12.13 |
该绝对路径是当前环境证据,不写入未来源代码。路径、bytes、hash 或 version 漂移时只能 HOLD/STOP,并重新走计划/授权判断。
本阶段只允许 Python 标准库。当前只读检查显示 pymysql=false、mysql.connector=false、sqlalchemy=false。本计划不安装包、不访问网络、不引入 vendor wheel。
后续数据库身份/授权预检不得把聊天中的密码传入 Python argv、stdin、环境、文件或日志。数据库连接仍应由 Python 编排器启动冻结的 mysql.exe --login-path=ana_semi_admin_preflight,由 .mylogin.cnf 提供不可见认证;是否允许该子进程和两条 SQL,必须在 Stage P 实现审核 PASS 后另立执行授权。
future run:RUN-DEV-ANA-SEMI-ROOT-PREFLIGHT-PYTHON-STAGE-P-20260726-001
| id | relative path | role | creation |
|---|---|---|---|
| Y01 | dev/ana-dev/ana_semi_preconsumption_v002.py |
Python implementation module | CreateNew |
| Y02 | dev/ana-dev/test/test_ana_semi_preconsumption_v002.py |
Python standard-library unit/contract tests | CreateNew |
| Y03 | dev/ana-dev/test/ana_semi_preconsumption_vectors_v002.json |
strict canonical JSON vectors | CreateNew |
| Y04 | dev/ana-dev/test/run_ana_semi_preconsumption_validation_v002.py |
single-process validation entry | CreateNew |
| Y05 | dev/ana-dev/tmp/RUN-DEV-ANA-SEMI-ROOT-PREFLIGHT-PYTHON-STAGE-P-20260726-001/test/static-result.json |
static result | CreateNew |
| Y06 | dev/ana-dev/tmp/RUN-DEV-ANA-SEMI-ROOT-PREFLIGHT-PYTHON-STAGE-P-20260726-001/test/contract-result.json |
contract result | CreateNew |
| Y07 | dev/ana-dev/tmp/RUN-DEV-ANA-SEMI-ROOT-PREFLIGHT-PYTHON-STAGE-P-20260726-001/receipt/preflight-repair-receipt.md |
as-of Y06 receipt | CreateNew |
| Y08 | dev/ana-dev/tmp/RUN-DEV-ANA-SEMI-ROOT-PREFLIGHT-PYTHON-STAGE-P-20260726-001/manifest/preflight-repair-manifest.csv |
eight-row manifest, self hash external-only | CreateNew |
target count=8,source/test=4,temporary result=4,formal target=0。当前 Y01-Y08 与 future run 必须全部 absent。任何 pre-existence、reparse point、path escape、case-fold collision 或 parent mismatch 都是 preconsumption STOP。
旧 P01-P04 的 bytes/hash 必须继续精确为:
18621/561d0a7d6ebb8769a459c2ec36e0c767330a29dc9117bea26acc0eb359af174b2824/85b561e449b7e385a44de7f66e609172c8e28869cde6f5e107701ff706a49a534038/6b404e64d902ced1398664b2df50cb2f021512c6587b6bd5e513790db03377e114811/e462986be23bababbdea99e2efa31f14c00ec09f2600cf5cfff568a409d30ae9旧 P05-P08 必须保持 absent;不得用旧失败包作为 Python 实现输入。
Stage P implementation authorization 只允许一个 Python 进程:
BUNDLED_WORKSPACE_PYTHON_3_12 -I -B -c <reviewed_bootstrap>
python_process_count=exactly 1;powershell/csc/node/synthetic/proof/mysql_config_editor/mysql/query/database=0/0/0/0/0/0/0/false;120000ms,kill-wait=10000ms;reviewed_bootstrap 的完整 UTF-8 bytes/hash、-c token、argv token count/preimage/hash 与 Win32 CommandLine bytes/hash,必须在下一次实现授权申请中作为动态固定向量提供。未冻结或复算不一致时不得启动。
唯一 Python 进程从 stdin 接收非秘密 ANA-SEMI-PYTHON-SOURCE-BUNDLE-JCS-V001。bundle 只含 Y01-Y04 的:artifact_id,relative_path,media_type,content_base64,bytes,sha256,按 Y01-Y04 排序。stdin 不得含数据库密码、token、cookie、credential 或 option-file 内容。
在任何文件打开之前,bootstrap 必须:
ast.parse,三者 error count 必须均为 0;json.loads,再以 UTF-8、sort_keys=True,separators=(',',':'),ensure_ascii=False,allow_nan=False 重新序列化,必须 byte-identical;subprocess、socket、urllib、http、requests、数据库 connector、eval、exec、动态 import 和 shell invocation;仅 bootstrap 自身允许一次受审的 compile/exec 加载 Y04;任一失败必须在 Y01-Y08 materialized_count=0 时 terminal STOP。不得修正 bundle 后再次启动。
内存 gate PASS 后,严格执行:
Y01 CreateNew → reopen/hash → Y02 CreateNew → reopen/hash → Y03 CreateNew → reopen/hash/canonical → Y04 CreateNew → reopen/hash/AST → import Y01/Y02/Y04 from exact reviewed paths → run static tests → Y05 → run contract tests → Y06 → freeze Y01-Y06 → Y07 → Y08 → external Y08 hash
所有写入使用 os.open(path, os.O_WRONLY|os.O_CREAT|os.O_EXCL, 0o600) 或等价 Windows exclusive-create;写完 flush+os.fsync+close,只读独占复开并复算 bytes/hash。不得 predelete、truncate、rename-over、rewrite、repair、backfill。
Y04 只提供固定 main(project_root, run_id, output_root) -> int;同一进程内只能调用一次。second call 由原子 owner state 直接返回 STOP_REENTRANT_CALL,provider call count=0,不能再次读取 clock/process/filesystem。
datetime.fromisoformat 后强制 tzinfo is not None;astimezone(timezone.utc);inside = authorized_at_utc <= now_utc < expires_at_utc;Python 权威实现为内建 bytes 严格相等:actual_bytes == expected_bytes。旧 PowerShell 语法字符串 [Linq.Enumerable]::SequenceEqual[byte]( 必须作为负向 sentinel 出现在 Y03;Y01/Y02/Y04 的 UTF-8 源码中该字符串出现次数必须为 0。
Python 实现只读取一次管理授权指定的、只读 process snapshot provider。selector 先按 PID 去重和 source PID 排除,再按 ordinal/case-sensitive executable path、argv token vector、cwd 与 run id 分类。访问拒绝、字段 null、重复 PID、snapshot drift 或相关进程 liveness 不确定时记录 unknown 并 STOP;不得用 substring、自身当前命令行或宽松名称匹配证明 zero。
本阶段不启动、终止或修改任何被观察进程。future management authorization 必须冻结 snapshot provider、字段 schema、exact selector vectors 和 no-self-match 规则。
Y03/Y05/Y06 延续 V020 的语义组,但采用语言无关 JSON 类型:string|integer|boolean|null|array[integer]|array[string],不再把 PowerShell CLR FullName 当作权威业务字段。为保持可审计性,结果同时记录 python_type_name,固定 enum 为 str|int|bool|NoneType|list[int]|list[str]。
Y03 至少覆盖:
Y05/Y06 为 canonical JSON、UTF-8、无 BOM/CR/NUL/trailing LF。Y07 UTF-8、无 BOM/CR/NUL、恰好一个 final LF。Y08 为 RFC4180 CRLF、含 final CRLF、固定八行 Y01-Y08;Y08 自身 row 的 bytes/hash 为空,external Y08 bytes/hash 只进入 native terminal 与独立审核。
artifact row 状态 enum:
NOT_RUN_UPSTREAM_STOP|ATTEMPTED_NO_OUTPUT|MATERIALIZED_INVALID_KNOWN|MATERIALIZED_VALID|STATE_UNCERTAIN
终态优先级:
PACKAGE_UNCLOSED_OR_STATE_UNCERTAIN/27 > RECEIPT_CREATE_STOP/25 > MANIFEST_CREATE_STOP/26 > OUTER_TIMEOUT_KILLED_KNOWN/24 > STATIC_TEST_FAILED/21 > CONTRACT_TEST_FAILED/22 > SOURCE_CREATE_OR_VALIDATE_STOP/11 > PASS/0
已知且安全 hash 的 partial 文件必须记 MATERIALIZED_INVALID_KNOWN,不能降级为 unknown;writer 尝试但无文件为 ATTEMPTED_NO_OUTPUT;从未到达 writer 为 NOT_RUN_UPSTREAM_STOP。只有 handle/liveness/close/hash 无法判定时才允许 STATE_UNCERTAIN/27。
权威无环 DAG:
V021 + plan audit + management authorization → in-memory bundle gate → Y01-Y04 → Y05 → Y06 → freeze Y01-Y06 → Y07(as-of Y06) → Y08(record Y07 hash; self blank) → external native terminal(record Y08 hash) → independent implementation review
Y07 不宣称 Y08 final;native terminal 才记录最终 closure。任何上游失败后,下游未执行目标必须物理 absent,禁止伪造零字节文件。
Python Stage P PASS 只证明安全编排器实现可用,不自动连接数据库。后续最近的合法动作仍是 root identity/grant preflight:
ana_semi_admin_preflight,不得使用聊天密码;SELECT USER(), CURRENT_USER() 与 SHOW GRANTS FOR CURRENT_USER();READONLY_PROVEN;如果未来决定采用 Python connector,必须先建立不会暴露秘密的 credential provider 并独立审核;当前环境没有 connector 包,本计划不授权安装或直连。
独立 reviewer 必须至少验证:
本 V021 只允许 dev.reviewer.ana.cai 独立计划审核。review PASS 后,也只允许向 management.admin 申请新的、single-use、exact Y01-Y08 Python implementation/materialization/validation 授权。未获得明确管理授权前,禁止 Y01-Y08/run 物化、Python process、PowerShell/csc/node/synthetic/proof/config-editor/mysql/SQL/database/network/credential/formal target、R3、BATCH-001、配置/binding/session/role/permission/Git 修改。