BlobStorage.write() in `auto` compression mode now consults the new `BlobWriteOptions.mimeType` and skips zstd for MIME types known to be already heavily compressed — JPEG, PNG, WebP, MP4, WebM, MP3, ZIP, PDF, Office formats, etc. Gzip/zstd over these formats wastes CPU for no measurable byte savings; the payload entropy is already near maximal, so the output is the same size or slightly larger plus the cost of running the compressor. The denylist `ALREADY_COMPRESSED_MIME_TYPES` is a conservative set of well-known formats. False negatives (compressing something we should have skipped) waste CPU; false positives (skipping something we could have compressed) waste a few percent of bytes. The denylist favours CPU-cycle safety because the formats listed here are the ones where gzip/zstd is reliably a net loss. The policy applies only to `auto` mode. Explicit `'zstd'` and `'none'` are honoured because the caller is asserting the choice. The new `isAlreadyCompressedMimeType()` is exported for consumers that want to make the same decision before calling `write()`. VFS / consumer wiring (pass mimeType from VFS through to BlobStorage) is part of the 2.5.0 #27 storage unification work — when that lands, every media upload through VFS will engage this policy automatically. For now consumers opt-in by passing `mimeType` in BlobWriteOptions. Tests (1447 total, +10): - isAlreadyCompressedMimeType helper: canonical types, case-insensitive + parameter stripping, false-on-missing. - write() auto-mode: image/jpeg + video/mp4 + application/zip all skip compression (metadata.compression === 'none'); text/plain is allowed through to zstd (either 'zstd' or 'none' depending on optional dep). - Read decompresses transparently regardless of write-side decision. - Explicit compression options bypass the policy. |
||
|---|---|---|
| .. | ||
| aggregation | ||
| brainy | ||
| graph | ||
| hnsw | ||
| import | ||
| indexes/columnStore | ||
| neural | ||
| performance | ||
| storage | ||
| types | ||
| utils | ||
| versioning | ||
| vfs | ||
| brainy-core.unit.test.ts | ||
| brainy-get-optimization.test.ts | ||
| create-entities-default.test.ts | ||
| fieldTypeInference.test.ts | ||
| plugin.test.ts | ||
| type-filtering.unit.test.ts | ||
| vfs-restart-fix.test.ts | ||
| workshop-vfs-diagnostic.test.ts | ||