2.6 KiB
V2 Phase 3 Display Cache Smoke Verification - 2026-06-30T18-35-02
Environment
- Host:
192.168.3.90 - Compose project:
yuqei-contract-v2-smoke - Contract API:
http://192.168.3.90:18100 - Deploy artifact:
project-docs/qa-artifacts/v2-smoke-docker-deploy/2026-06-30T18-35-02 - Smoke artifact:
project-docs/qa-artifacts/phase3-display-cache-smoke/2026-06-30T18-35-02
Deploy
Deployment command:
$env:SSHPASS='<由运维临时提供>'
powershell.exe -NoProfile -ExecutionPolicy Bypass -File yuqei-infra\scripts\deploy-v2-smoke-docker.ps1 -UseSshpass -AllowDirtyWorktree -KeepRemoteBackup -SkipSmoke
Important guardrail: -ResetSmokeVolumes was not used.
Deploy result: pass.
Runtime Schema Check
Post-flow /api/v1/runtime/schema-check result:
- Top-level status:
ok - Alembic actual/head:
20260630_0021/20260630_0021 display_cache_consistency.status:okdisplay_cache_consistency.checked_rows:12011display_cache_consistency.mismatch_count:0display_cache_cleanup_prestate.status:okdisplay_cache_cleanup_prestate.legacy_columns_retained:truedisplay_cache_cleanup_prestate.display_cache_consistent:true
Flow Sample
Smoke contract: contract-6b07dab8d737
Covered API flow:
- Create contract:
draft/待提交/tag-primary - Submit approval:
approval_pending/待审批/tag-warning - Reject approval:
rejected/已退回/tag-danger - Resubmit approval:
approval_pending/待审批/tag-warning - Start review task:
review-5586aaf68aa9/queued - Final contract status:
reviewing/审查中/tag-warning
Database Derived Cache Check
Direct PostgreSQL check inside the contract-api container:
- Contract ID:
contract-6b07dab8d737 - Status:
reviewing - Stored
status_label:审查中 - Expected
status_label:审查中 - Stored
status_tone:tag-warning - Expected
status_tone:tag-warning status_label_matches:truestatus_tone_matches:true- Stored
next_action:根据审查结果修改或提交审批
The next_action value changed after the review worker processed the queued task, which confirms that next_action/next_actions still follow workflow/action context behavior and were not flattened into a pure status cache.
Conclusion
Remote smoke passed. The old compatibility columns remain present and consistent, while production SQLAlchemy write paths now keep status_label/status_tone derived from status.
The next Phase 3 step should be the next_action/action_hint semantic design. Do not delete the old UI cache columns yet.