fix(report): accept section: job progress phases on read-back
Independent Staging Quality Gate / validate (push) Successful in 8m41s
Independent Staging Quality Gate / publish (push) Successful in 1m53s

Heartbeat and GET were parsing progress_phase with a pattern that rejects the colon prefix the writer already persists, which aborted generation after the first chapter.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Jesse_Chen
2026-09-04 20:09:11 +08:00
parent a793edb1ad
commit e27d5dc5a7
5 changed files with 57 additions and 4 deletions
@@ -352,7 +352,7 @@ function recordFromRow(value: unknown): PersonalReportJobRecord {
}
const status = statusValue as PersonalReportJobStatus;
if (attemptCount > maxAttempts) storageInvalid("invalid personal report job retry budget");
if (!operationalCodePattern.test(progressPhase)) storageInvalid("invalid progress phase");
if (!isValidPersonalReportJobProgressPhase(progressPhase)) storageInvalid("invalid progress phase");
if (lastErrorCode !== null && !operationalCodePattern.test(lastErrorCode)) {
storageInvalid("invalid last error code");
}