Skip to content

显式接管无删除操作的 D8 残留,保留原历史 - #173

Merged
EricWvi merged 2 commits into
ora-space:mainfrom
wanglongan587:fix/624-d8-missing-delete-operation
Oct 25, 2026
Merged

EricWvi merged 2 commits into
ora-space:mainfrom
wanglongan587:fix/624-d8-missing-delete-operation

Conversation

@wanglongan587

@wanglongan587 wanglongan587 commented Oct 24, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

D8 可在尚未声明删除操作时达到 done/workspace_unavailable,原受控接管却必须引用原失败删除操作,导致这类保留数据的历史任务没有恢复入口。本 PR 增加默认关闭的显式部署运维选择,并持久保留原删除操作缺失这一事实。

 cloudctl residual terminate
- every D8 takeover requires an original failed delete operation
+ retain the original default
+ explicit --allow-missing-delete-operation + exact original Run/Workspace
+ missing provenance → fenced termination → data retained
+ separately confirmed cleanup → released

仅部署 CLI 可选择新变体;终结状态、交付结论、原租户/Project/Workspace/generation、admission、无删除历史/账本和 Project 互斥仍须核验。根意图及从属删除使用相同来源,迁移拒绝矛盾来源组合,旧默认命令的规范输入不变。不补造 operation,不改 Run 历史,不增加 HTTP 或租户权限。

ADR:实现 decisions/cloud/issue-run/20261025-d8-residual-without-delete-operation.md D1–D3,approved 规格已随 specs#222 合入 main 32d3af60a602d52ff10d90e43d225d91d41dc7d0。独立 implemented 落地 PR 为 specs#227:先合并本产品 PR,再合并 specs#227。该规格状态只表示历史入口的实现,跨进程物理处置和原任务恢复仍为 Missing,由 ora-space/circus#621 在部署后验收。

D4 的未来产生路径由 ora-space/circus#643 单独承接。本 PR 不修改 giveUpRunWorkspaceRelease,不把历史显式接管视为治本完成。既有残留回收 ADR 继续为 implemented。

Evidence

  • Before: 真实 D8 worker 产生零删除操作状态,显式选择回归在旧准入以 legacy_residual_identity_required 失败。
    After: 1b772b442d2346aa19e85e80b40438faf0cc0bed 覆盖默认拒绝、显式精确接管、十项拒绝、幂等重放、终止保留后独立清理、完整 Run 行不变、前一 schema 升级/重复迁移与矛盾来源拒绝。
  • 已合并最新 main 0bc162edcef83501fe0802d6a98268142fe72058,无冲突;差异仍只有本 PR 的 13 个后端/CLI/迁移及正式文档文件。新 head 的 全部 CI 已通过:packages、四个 integration 分片及汇总 check。
  • 合并 main 后的新 head 已在与现场分离的 PostgreSQL 17.11 上重跑 task check、task test:race、task build,三项全部通过;格式、lint(0 issues)、proto lint/生成漂移检查均通过,git diff --check 通过。检查使用固定该 commit 的独立 Linux checkout,不修改原现场。
  • specs#227 对 10 项完整义务保留 8 Partial / 2 Missing,明确直接断言与缺口。数据库中提交物理成功结果只能证明 Cloud 状态机,不能证明原卷已真实保留/删除或原任务已经恢复。

Merge Danger

Door: one-way。新增 0070_d8_missing_delete_operation.sql;应用并产生新变体后,回退二进制需要前向兼容方案,不能删除来源来伪造旧记录。当前 main 最新仍是 0069_workflow_node_attempt.sql,0070 顺延且不冲突;合并前再次核对,不预占编号。

Blast Radius: 运维。扩展部署接管的历史资源状态集合;默认命令与逐目标物理证据边界保持。

Refs ora-space/circus#624

@wanglongan587 wanglongan587 changed the title 候选:显式接管无删除操作的 D8 残留,保留原历史 显式接管无删除操作的 D8 残留,保留原历史 Oct 25, 2026
@wanglongan587
wanglongan587 marked this pull request as ready for review October 25, 2026 09:42
@EricWvi
EricWvi merged commit 27eb910 into ora-space:main Oct 25, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants