diff --git a/docs/04-current-state.md b/docs/04-current-state.md index a7fe5a94..3bb93780 100644 --- a/docs/04-current-state.md +++ b/docs/04-current-state.md @@ -91,7 +91,7 @@ PR #219(业务 `ab5fd15b`)的本地测试边界:Evolver 335 通过 / 1 跳 ### P0 · 可靠性与真实五代搜索 -- 2026-10-14 完整应用发现并修复实际阻断:campaign持久化了发起用户,但调度投影漏`requested_by_sub`,真实模型使用路径报费用身份缺失。`ae9626db`补回内部字段,公开响应schema仍不暴露;新数据库回归修复前1失败、修复后1通过。完整Evolver新隔离数据库357通过/1跳过,相关Ruff通过;针对改动文件Mypy10项tuple/dict错误与main影子源码输出完全相同,不能说类型检查通过。修复尚未部署,不称生产执行已修好。 +- 2026-10-14 完整应用发现并修复实际阻断:campaign持久化了发起用户,但调度投影漏`requested_by_sub`,真实模型使用路径报费用身份缺失。`ae9626db`补回内部字段,公开响应schema仍不暴露;新数据库回归修复前1失败、修复后1通过。完整Evolver新隔离数据库357通过/1跳过,相关Ruff通过;针对改动文件Mypy10项tuple/dict错误与main影子源码输出完全相同,不能说类型检查通过。修复已随 [PR #242](https://github.com/mirror29/inalpha/pull/242) 合并为`a275f8be`;精确head/main CI与七镜像全成功,评审/合并tree相同。自动CR有1项MEDIUM,已按完整消费者源码回应,独立专项复核无确认新增P1/P2,不说自动CR零发现。发布守卫先0后2、后续1/2均中止;稳定空闲观察也未取得连续三个0,原Evolver容器未替换,现场内部投影仍缺字段。配置/数据库备份600、TOC可读但非恢复演练;只更新了服务器仓库并缓存镜像,不能说生产执行已修好。Chrome解锁后已关闭本任务新建验收页,保留其他标签,连接仍未稳定归零。新镜像无网络临时容器的实际模块导入确认内部字段存在、公开schema不包含它,源码哈希与业务版本相同;不是应用lifespan或生产执行验收。待自然连接空闲后仅发布Evolver,精确旧image ID回滚。见 [发布与守卫回执](validation/e2-campaign-identity-release-2026-10-14.json)。 - 同日完整 Evolver lifespan/dispatcher 源码进程隔离探索通过:新正确迁移链库中,离线模型返回且2条响应checkpoint保存、整代提案0时SIGKILL,租约自然过期后重启完成五代/120实现;离线调用2+8,总10而非12,合成账本0.000780、未知预留0、10attempts。最终`INSUFFICIENT_FDR_EVIDENCE`,无冠军/Forward/holdout。外围签发器、凭据端点、事件快照和provider HTTP transport均是本地夹具;不是同镜像、真实owner、完整外围服务栈或生产恢复。此临时进程脚本尚非维护中的CI回归,早先两次启动失败也保留。见 [完整应用恢复回执](validation/e2-full-app-response-recovery-2026-10-14.json)。 - 已有自动化和隔离数据库的租约、幂等、审批恢复、交接测试。完整服务进程退出、在途模型请求、显式失败重试、旧 worker 隔离仍需独立服务验收;数据库对象重建不等于生产重启通过。 diff --git a/docs/validation/e2-campaign-identity-release-2026-10-14.json b/docs/validation/e2-campaign-identity-release-2026-10-14.json new file mode 100644 index 00000000..352a8c52 --- /dev/null +++ b/docs/validation/e2-campaign-identity-release-2026-10-14.json @@ -0,0 +1,92 @@ +{ + "date": "2026-10-14", + "status": "merged_and_built_deployment_deferred_by_live_connection_guard", + "business_pr": 242, + "reviewed_head": "cea74c9234641934b01eb518d26bd506619eab12", + "merge_commit": "a275f8be7679578e4aef62cffb3ff5c6f13a988e", + "merged_at": "2026-10-14T04:57:21Z", + "reviewed_and_merge_tree": "1c6e982ad91cecbe2cdc5d9210bbf1d41e79f6b0", + "ci": { + "head": 38513735909, + "main": 38514078608, + "images": 38514078419, + "result": "all_success", + "built_images": 7 + }, + "review": { + "run": 38513735892, + "valid_body": true, + "medium": 1, + "resolution_comment": "https://github.com/mirror29/inalpha/pull/242#issuecomment-6161217355", + "decision": "Full route/schema/dictionary-row consumer inspection and independent scoped review found no confirmed new P1/P2; not an automated zero-finding review.", + "limitations": "Static review; not production owner execution." + }, + "deployment_attempts": [ + { + "guard_counts": [ + 0, + 2 + ], + "result": "Stopped after image pull/config and DB backup; before env edit or service replacement." + }, + { + "guard_counts": [ + 1 + ], + "result": "Stopped at first guard; no replacement." + }, + { + "guard_counts": [ + 2 + ], + "result": "Prepared resume rejected at first guard; no replacement." + }, + { + "read_only_stable_window": "45 observations; no three consecutive zeros, final counts one", + "result": "Stopped before any deployment mutation; no socket was closed or ignored." + }, + { + "after_browser_unlocked": "Own new verification tab closed; original tabs kept. Read-only stable watch still did not obtain three consecutive zeros, so no replacement.", + "result": "deferred" + } + ], + "server_repository": "a275f8be7679578e4aef62cffb3ff5c6f13a988e", + "running_evolver": { + "container_id": "c55a5efecf6946b82b4993697f68092f8ae5e94259e9423f97c4f133c250f671", + "config_image": "sha256:2587420863671943cbbe310cd174f19643cd4f1b0ca4f3bb40476ef75026d8c7", + "image_id": "sha256:2587420863671943cbbe310cd174f19643cd4f1b0ca4f3bb40476ef75026d8c7", + "health": "healthy", + "requested_by_sub_projection_present": false, + "result": "Original container remains, new fix is not yet running." + }, + "backups": { + "config": "infra/.env.prod.before-campaign-usage-20261014T050141Z", + "database": "infra/backups/campaign-usage-before-20261014T050141Z.dump", + "mode": "600", + "config_matches_current": "cmp verified for resume preparation", + "database_toc_readable": true, + "restore_exercise": false, + "warning": "pg_dump recorded existing continuous aggregate circular foreign-key warning; archive listing is not full restore validation." + }, + "final_read_only_check": { + "database": "inalpha", + "schema": "0069", + "loops": 0, + "campaigns": 0, + "public_login_after_redirects": 200 + }, + "browser": "Chrome unlocked after follow-up; task-created verification tab closed, other tabs retained. A temporary blank tab was used during maintenance preparation. No new model prompt or approval.", + "new_model_calls": 0, + "new_e2_searches": 0, + "next_action": "Wait for naturally idle HTTP window, revalidate task/connection guards and unchanged original image, then deploy only Evolver with exact image rollback. Do not force-close user connections or claim production five-generation recovery.", + "built_image_probe": { + "image": "ghcr.io/mirror29/inalpha-evolver:a275f8be7679578e4aef62cffb3ff5c6f13a988e", + "network": "none", + "ephemeral_container_removed": true, + "identity_projection_present": true, + "public_schema_excludes_identity": true, + "campaign_module_sha256": "4b2cff25407847e718fc609c257e9a85f9b9fc56014e72a27d0fc6e4ea177cd1", + "source_hash_matches_reviewed_business_file": true, + "scope": "Pure package/schema import in actual built image, not application lifespan, real owner or production execution." + } +}