Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-svc-u2-release-recovery.md; R0=9b5be3926eaa394a9e520fd72ffdf6d0a48d1aef.
Impact: task metadata only; the feature workspace starts at 9b5be3926e.
Refs: .task/feature-svc-u2-release-recovery.md
Why: deploy overwrote live artifacts after stopping the old service, so
a failed start or workbench check left instances in a mixed
registration-vs-artifact state with no recovery path (2026-10-12
rdm1/rdmcand); the report's U2 requires restorable updates.
Evidence: make test-governance 250 OK; five svc suites 105 OK (rows in
the task card); new tests cover layout/pidcheck stability, rollback on
start failure with desired-state restore, build failure keeping the old
service running, interrupted-switch journal resolution, and schema-
advance blocking rollback without touching the database.
Impact: agent deploys stage immutable releases/<id>/ and switch the
current symlink atomically; deploy.journal persists the switch and is
resolved at start/restart/deploy/update/recover entries; legacy layouts
are adopted on first deploy and remain readable; release/rdm tracks
verify sha256 before staging.
Refs: .task/feature-svc-u2-release-recovery.md; user goal directive
2026-10-12; Dev #474 (U1 gate); Documents unified-deploy plan r2.
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=3b9cf82cd6fb53f973f26e2039275f7858b0c654.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
任务卡(同一份文档):.task/feature-svc-u2-release-recovery.md @
56aa9e3aWhy: 停服→覆盖→启动即拒的事故形态(rdm1/rdmcand)无恢复路径;U2 要求更新具备失败恢复能力。
改动(scripts/svc.sh):releases// 不可变制品目录 + current 原子指针(cmdline 未解析路径→pidcheck 跨版本稳定);deploy.journal 持久化切换(staging/switched/done/rolledback/blocked),start/restart/deploy/update/recover 五入口 resolve;启动/工作台/UI 失败回退上一完整版本并恢复期望态;库 schema 前过上一提交时点→阻断(绝不碰业务库),blocked 由显式 deploy 跨越;legacy 首次部署领养、永不删除;release 轨 sha256 前置校验。
Evidence: make test-governance 250 OK(同步后重录)+ 五 svc 套件 105 OK + 新增 tests/test_svc_u2.py(布局/回退/中断/阻断/兼容六用例);细节见任务卡证据表。
Impact: agent 部署全部改走 release 暂存+切换;未迁移实例行为不变。
Refs: 用户根因诊断 U2;#474(U1 门禁);Documents 统一部署 r2。