fetch
Download completed or selected outputs, validate complete PNG or GIF structure,
write the manifest-authoritative destinations, populate the content cache, and
update output hashes. --tag also pushes manifest tags after successful
downloads when the provider supports tagging.
fetch --refresh re-downloads already-downloaded outputs from their durable
provider reference and replaces the local file only when the object's bytes
changed upstream, after editing it in the provider's own editor, for
example. Unchanged objects are reported as such and left alone; a changed
object replaces the local file only if that file still hashes to what
PixelKiln wrote, so a local hand edit is never overwritten without --force.
The lockfile then records the new bytes as this generation. A character's
rotations and frames are re-resolved from the character itself first, since
PixelLab stamps their URLs with the last edit time and a cache can keep
serving an old stamp; a character deleted upstream fails its entry instead
of silently keeping the old bytes. Objects with no durable reference
(PixelLab pixflux images, for one) are not eligible; use pixelkiln edit
for those.
When a style sets enforcePalette, fetch snaps each downloaded PNG to the
style's palette before writing it and records the raw hash and the palette on
the lock entry. Turning the flag on or off later makes plan report the
style's generated entries as recoverable; the next fetch re-applies the
rule to the files already on disk from the raw bytes in the content cache,
contacting no provider. See Palette enforcement.
After a stale spec is deliberately regenerated, fetch replaces the prior file
only if its hash still proves PixelKiln wrote it. A changed or untracked
destination is refused; inspect it, then pass fetch --force only when the new
provider result should take ownership. gen --force applies the same rule.