Binary files (.glb, .gltf, .png, .jpg, .jpeg, .webp) were pushed as raw
Git blobs via Octokit, bypassing Git LFS. This caused LFS-tracked repos
to see all files as modified after git pull, requiring spurious commits.
Now the bot uploads binaries to the LFS server via the Batch API and
stores LFS pointer files in the Git tree. Also fixes getRemoteFolder()
to read the real file size from LFS pointers instead of the pointer size.
Git LFS stores pointer files whose SHA differs from the actual blob SHA,
causing false-positive diffs on every upload. Switching to file size
comparison resolves this for LFS-enabled repos.
Also replaces the inline error message with a dedicated NoChangesModal
when no differences are detected, offering cancel (reset) or modify
(close modal) actions.