- api.py: q_all/q_one 双模(同步+await)查询助手,q_one 无行返回空 dict; module_dbname 失败不抛的库名解析包装(内部委托 get_module_dbname,无硬编码 DBNAME); CONTRACT_SYMBOLS + __all__ 同步登记三符号 - db.py: get_sor_context(env, module_name) 公共入口(pbl_compiler/exporter.py 契约名), 优先宿主注入 helper,其次 sqlor DBPools().sqlorContext(解析库名),均不可用则显式抛错 - 根因: pbl_runtime_ext/idempotency.py 顶层 from pbl_common.api import q_all, q_one 符号缺失 -> 包导入期 ImportError -> 应用起不来(healthz=000),与原 crud 缺口同型 - 验证: py_compile OK; verify_contract_symbols_all_modules.py 违规=0 死契约=0 PASS; _selftest_contract_symbols.py PASS=34 FAIL=0; verify_import_closure.py FAIL 项=0 - 选择性 git add(仅 api.py/db.py,未用 -A)
fix(pbl_common): [Bug HoSBcdZY4G7IxhaFiIE07] 补齐 4 个跨模块契约符号 q_all/q_one/module_dbname/get_sor_context
契约说明(1,824B):1 表 + 导出清单 + C1 落地(_assert_tenant_first/insert 覆盖/update 剥离) + C2 落地(4 条 fail-closed) + tx 单事务用法示例(供 T13) + 挂载方式
Description