fix: verify semantic rollout runtime

This commit is contained in:
Jesse_Chen
2026-07-29 19:26:51 +08:00
parent 6ed9f2dd0a
commit f0f7c27382
4 changed files with 19 additions and 6 deletions
+3 -3
View File
@@ -437,9 +437,9 @@ sequence. A plain HTTP `200` is not substitute evidence:
event, then a clear event. Verify the ambiguous/future facts do not score.
4. Pause, reload, and resume from a second authenticated browser session.
Verify no second rectification charge.
5. Reach a candidate, verify the prior active time is still in force, reject a
mismatched candidate confirmation, then explicitly confirm the exact
candidate. Verify the time changes atomically.
5. Reach a stable candidate range and verify the prior active time remains in
force. Confirm that no exact minute can be accepted and that rectification
does not write `profiles.active_birth_time`.
6. Explicitly continue the saved ordinary question. Verify one normal
consultation reservation. Delete its chat and verify the account case still
resumes/loads.
@@ -151,6 +151,18 @@ compose=(docker compose -p jyotisha-staging --env-file .env.staging "${compose_f
"${compose[@]}" config --quiet
"${compose[@]}" up -d --no-build --pull never --force-recreate --no-deps web rectification-v4-worker
for service in web rectification-v4-worker; do
container="$(docker ps -q --filter 'label=com.docker.compose.project=jyotisha-staging' --filter "label=com.docker.compose.service=$service" | head -n 1)"
[ -n "$container" ] || {
echo "staging $service container is missing after rollout" >&2
false
}
runtime_env="$(docker inspect --format '{{range .Config.Env}}{{println .}}{{end}}' "$container")"
grep -Fxq "RECTIFICATION_AGENT_V5_ENABLED=$creation_enabled" <<<"$runtime_env"
grep -Fxq "RECTIFICATION_AGENT_V5_SHADOW=false" <<<"$runtime_env"
grep -Fxq "RECTIFICATION_AGENT_V5_CANARY_PERCENT=100" <<<"$runtime_env"
done
health=""
for _ in $(seq 1 30); do
health="$(curl --fail --silent --show-error "$STAGING_URL/api/health" 2>/dev/null || true)"
+2 -2
View File
@@ -1644,7 +1644,7 @@
- 用户现象:用户提交“2016 年 9 月离家去外地上大学”后,回复仍固定为“我记下了这段经历。接下来请继续讲另一件……”,没有进入 Semantic Question Renderer。
- 根因:Case rollout 只写入 V3 创建门和 smoke 状态,没有写入 `RECTIFICATION_AGENT_V5_ENABLED``RECTIFICATION_AGENT_V5_SHADOW``RECTIFICATION_AGENT_V5_CANARY_PERCENT`;因此 `selectRectificationDeploymentMode()` 把新 Case 持久化为 `v4_legacy`Orchestrator 必然调用 Legacy Projector。
- 修复:受控 staging rollout 现在原子写入 V5 Agent 开关,public 与 smoke rollout 使用 `v5_agent`、100% canary,并重建 web/workerstaging 中唯一满足 V6 版本、未完成、无 open Job 条件的错误 Case 已原位升级为 `rectification-evidence-v5` / `v5_agent`,历史 Turn、Event、Job 与 Agent Run 保持不变。
- 验证:rollout 脚本测试断言三项 V5 选择器只写一次staging 运行容器已读取 `enabled=true``shadow=false``canary=100`;活跃 Case 聚合只剩 `v5_agent`;健康检查保持 exact SHA、public、ready。
- 防复发:公开 Case rollout 必须同时控制创建门与 Agent deployment mode;仅有 `readyForNewCases=true` 不再视为新对话 Renderer 已启用的充分证据。
- 验证:rollout 脚本测试断言三项 V5 选择器只写一次,并在成功前核对 web/worker 容器实际读取 `enabled``shadow``canary`staging 活跃 Case 聚合只剩 `v5_agent`;健康检查保持 exact SHA、public、ready。
- 防复发:公开 Case rollout 必须同时控制创建门与 Agent deployment mode,并验证运行容器的实际环境;仅有 `readyForNewCases=true` 不再视为新对话 Renderer 已启用的充分证据。
- 相关记录:BUG-085、BUG-086、BUG-087
- 修复版本:`birth-time-rectification-v6` / `rectification-agent-v6-1`
@@ -458,7 +458,8 @@ test("public rectification rollout enables the semantic agent and recreates web
[
"#!/usr/bin/env bash",
'if [ "$1" = ps ]; then echo web-container; exit 0; fi',
`if [ "$1" = inspect ]; then echo ghcr.io/jesse-ux/jyotisha-web@sha256:${"b".repeat(64)}; exit 0; fi`,
`if [ "$1" = inspect ] && [[ "$*" == *Config.Image* ]]; then echo ghcr.io/jesse-ux/jyotisha-web@sha256:${"b".repeat(64)}; exit 0; fi`,
'if [ "$1" = inspect ] && [[ "$*" == *Config.Env* ]]; then printf "%s\n" RECTIFICATION_AGENT_V5_ENABLED=true RECTIFICATION_AGENT_V5_SHADOW=false RECTIFICATION_AGENT_V5_CANARY_PERCENT=100; exit 0; fi',
`printf '%s\n' "$*" >>${join(root, "docker.log")}`,
].join("\n"),
);