[taskboard] clear stale dispatch errors on retry
This commit is contained in:
@@ -303,6 +303,9 @@ export async function updateTask(id: number, input: Partial<TaskRecord>) {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const hasField = <K extends keyof TaskRecord>(field: K) =>
|
||||||
|
Object.prototype.hasOwnProperty.call(input, field);
|
||||||
|
|
||||||
const mergedTags = Array.isArray(input.tags) ? input.tags.filter((tag) => typeof tag === "string") : existing.tags;
|
const mergedTags = Array.isArray(input.tags) ? input.tags.filter((tag) => typeof tag === "string") : existing.tags;
|
||||||
const nextStatus = input.status ?? existing.status;
|
const nextStatus = input.status ?? existing.status;
|
||||||
const nextDispatchState = deriveDispatchState({ ...existing, ...input, tags: mergedTags }, existing);
|
const nextDispatchState = deriveDispatchState({ ...existing, ...input, tags: mergedTags }, existing);
|
||||||
@@ -334,9 +337,9 @@ export async function updateTask(id: number, input: Partial<TaskRecord>) {
|
|||||||
input.priority ?? existing.priority,
|
input.priority ?? existing.priority,
|
||||||
nextStatus,
|
nextStatus,
|
||||||
JSON.stringify(mergedTags),
|
JSON.stringify(mergedTags),
|
||||||
input.last_dispatch_at ?? existing.last_dispatch_at,
|
hasField("last_dispatch_at") ? input.last_dispatch_at ?? null : existing.last_dispatch_at,
|
||||||
acknowledgedAt,
|
acknowledgedAt,
|
||||||
input.last_error ?? existing.last_error,
|
hasField("last_error") ? input.last_error ?? null : existing.last_error,
|
||||||
completedAt,
|
completedAt,
|
||||||
id,
|
id,
|
||||||
],
|
],
|
||||||
|
|||||||
Reference in New Issue
Block a user