清理完美像素链路的死代码
Project CI / Repository checks (pull_request) Successful in 1m16s
Project CI / Backend tests (pull_request) Successful in 4m2s
Project CI / Native shell tests (pull_request) Successful in 11m41s
Project CI / Frontend tests (pull_request) Failing after 1m43s

- 删除只有测试调用的 snap_pixel_art_strict 与 snap_pixel_art 两个无 deadline
  包装,公开入口收敛为 snap_pixel_art_with_deadline 与
  snap_pixel_art_strict_with_deadline;原本只写在 snap_pixel_art 头上的双输入
  尺寸与输出契约合并进保留者的文档,调用点改为显式传 None。
- 去掉持久化结果里从不被读取的 status 透传(客户端枚举与 record 字段)。该段
  原本搭载了「status 缺失即拒绝」的校验,保留为显式 is_none 拦截,并补一个
  此前缺失的回归用例锁住它。
- 快速编辑面板不再对 dialog 状态做 pending-confirmation 的运行时收窄:dialog
  由面板派生,写回方只做 failed→idle 重置,该分支恒不成立,直接取面板状态。
- 收回三个无人导入的 export(reconcilePerfectPixelProject、
  createPerfectPixelReconciliationOperation、
  INVALID_PERFECT_PIXEL_OPERATION_ERROR_MESSAGE)。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-04 06:53:29 +00:00
parent 06d8fbb9c2
commit 3bea6441a8
6 changed files with 58 additions and 77 deletions
@@ -342,7 +342,7 @@ export const PERFECT_PIXEL_RECONCILIATION_WINDOW_MS = 75_000;
// 中文注释:第一批曾把 v1 快照写成 240 秒。滚动部署与旧标签页仍可能持久化该形状,
// 所以读取侧保留兼容上限;它只决定快照是否可信,不会延长当前 75 秒对账窗口。
const LEGACY_PERFECT_PIXEL_RECONCILIATION_WINDOW_MS = 240_000;
export const INVALID_PERFECT_PIXEL_OPERATION_ERROR_MESSAGE =
const INVALID_PERFECT_PIXEL_OPERATION_ERROR_MESSAGE =
'完美像素操作快照无效,禁止自动重试。';
const PERFECT_PIXEL_OPERATION_KEYS = new Set([
@@ -78,10 +78,11 @@ function syncPanelFromDialogUpdate(
model: normalizedDialog.imageModel ?? normalizedPanel.model,
quickEditReferences: normalizedDialog.generationReferences,
assetLabel: normalizedDialog.assetLabel,
status:
normalizedDialog.status === 'pending-confirmation'
? normalizedPanel.status
: normalizedDialog.status,
// 中文注释:dialog 由 createQuickEditDialog 从面板自身派生,组合器只会做
// failed→idle 的重置,不会写入 'pending-confirmation' 这类完美像素专属状态。
// 因此归一化后的 dialog 状态恒等于归一化后的面板状态,直接取面板侧即可,
// 也让面板的三态联合类型不必在这里做运行时收窄。
status: normalizedPanel.status,
errorMessage: normalizedDialog.errorMessage,
};
}
@@ -325,7 +325,7 @@ export function inspectPerfectPixelProjectSnapshot(
return { kind: 'applied', project, resource };
}
export function createPerfectPixelReconciliationOperation(
function createPerfectPixelReconciliationOperation(
operation: PerfectPixelOperationSnapshot,
startedAt = Date.now(),
): PerfectPixelOperationSnapshot {
@@ -362,7 +362,7 @@ function waitForPerfectPixelReconciliationDelay(
});
}
export async function reconcilePerfectPixelProject(
async function reconcilePerfectPixelProject(
projectId: string,
operation: PerfectPixelOperationSnapshot,
options: { signal?: AbortSignal } = {},