keeps: surface silent thumbnail-bake fallback to the client
Previously, when the oven failed to produce a fresh thumbnail during
regenerate, keep-prepare-background silently fell back to the previously
cached thumbnailUri from piece.ipfsMedia and continued as if nothing
happened. Users saw "Media regenerated successfully" but the on-chain
thumbnail stayed stale (and objkt's thumb288 re-rendered from the same
old source, keeping the JPEG flattening). Discovered while debugging
$pie not updating its thumbnail despite regenerating.
Changes:
- keep-prepare-background: set job.thumbnailFallback = { kind, reason }
whenever we reuse a previous or artifact URI, and surface via
updateJobStage with a ⚠️ prefix so the stage message itself shows it.
- keep-job.formatJobForClient: expose thumbnailFallback to clients.
- keeps.html pollJobStatus: when job.thumbnailFallback first appears,
emit an error-level track entry explaining what happened, and mark
the thumbnail step as error. Fires once per job (thumbnailFallbackWarned).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>