This repository was archived by the owner on Jun 4, 2026. It is now read-only.
1.0.1 — Pull is sync-ready + upload routing + --batch
New
boxel push --batch [--batch-size N]— atomic bulk upload. Definitions upload individually in dependency order (so FieldDefs land before CardDefs that contain them); instances batch through/_atomicin groups of N (default 10). Faster and quieter than per-file POST on pushes of 50+ files, and reduces UI re-indexing churn.boxel pull <url> ./localwrites.boxel-sync.jsonautomatically after a fresh download. You can now runboxel sync .immediately against a just-pulled directory with no manual intermediate step.
Fixed
- Binary upload corruption. Images, fonts, PDFs, and other non-text files were being routed through the
/_atomicJSON endpoint with text encoding, corrupting the bytes. Binary files now take the per-file POST path withapplication/octet-stream. - Plain-text file rejection.
.md,.csv,.yaml,.xml, and.txtuploads were being rejected by the realm's module compiler as "invalid source". Plain-text files now take the per-file POST path with their true MIME type. - Manifest shape drift between push and pull.
pushandpullhad diverged on the shape of.boxel-sync.json. Mixed-command workflows (pull → push or pull → sync → push) could mark every file as changed on the next run. All three commands now use one canonical shape;pushmigrates the pre-1.0.1 bare-string format on read. - Partial-failure batch marks files as synced. In
--batchmode, the manifest was updated for every file in a batch whenever any file succeeded, even if some of them had failed. Failed uploads could be silently stranded without retry. The manifest now tracks only files that successfully uploaded; failures stay out and get retried on the next run. boxel --versionreported wrong number. The CLI had a hardcoded version string that drifted frompackage.json. Version is now sourced frompackage.jsonat runtime.--batch-sizesilently accepted garbage.--batch-size abcor--batch-size -5used to flow through asNaN/ negative and cause weird behavior downstream. Non-positive-integer input now fails fast with a clear error.
For contributors
- New
src/lib/content-type.ts— single source of truth mapping file extension → MIME type → upload-path decision. Any extension you add for atomic-compatibility should also go here. - New drift-guards section in
.gitignore— prevents Boxel platform docs, workspace dirs, and other content that commonly ends up at the repo root from leaking into commits. AGENTS.mdnow documents the content-type routing table (file class → path → headers) and the canonical manifest shape, so future additions tobatch-upload.tsor any manifest-touching command have one reference.