-
Onebox v33.17.0
StableRelease / build-and-release (push) Failing after 12m19sreleased this
2026-10-14 00:42:17 +00:00 | 9 commits to main since this release2026-10-14 - 33.17.0
Features
- Backups leave out the object-storage data an App Store version declares as non-backup data (
backupExclusions,@serve.zone/interfaces32.56.0), such as Cloudly's workload logs underruntime-logs/: a restore brings back state, not past logs. The declaration is read from the installed template snapshot, normalized by@serve.zone/appstore33.6.0, andlegacy-s3names the service's one Corestore bucket. The bucket is listed withDelimiter='/', skipping a declared prefix without listing anything under it, so an excluded subtree costs one entry of its parent's listing on an objectstorage that walks the whole bucket for every list request; the 100,000-object and 16 MiB manifest caps count included objects only. Every bucket is now listed before the archive ingest starts, so the ingest's idle timeout never waits on a listing, and closing the backup manager (daemon shutdown) aborts that listing. The bucket manifest names the prefixes inexcludedKeyPrefixes(written only when something was left out, so a backup without exclusions keeps the shape earlier releases restore); the backup row and snapshot tagdataExclusionrecord which version's declaration applied and why, andonebox backup importderives the same record from the imported bucket manifests (origin: 'import'); a restore logs the prefixes it does not restore and deletes nothing. An App Store service without a snapshot of its version is exported in full, with the reason recorded.onebox backup create <service> --upgrade-target <version>takes a backup for an upgrade and applies the target version's declaration when the target pins the installed version's image digest, the installed version's otherwise. Onebox advertisesstorage.object-storage.backup-exclusions, so catalog versions that declare exclusions become installable and upgradable; the exclusion applies to thelegacy-s3platform-resource bucket, and services with named object-storage requests stay refused for backup. The canonical storage handoff of@serve.zone/appstore33.6.0 carriesbackupExclusions; a handoff a service or a backup saved before it has none, which Onebox reads as no declaration, so existing services and earlier backups keep validating.
Fixes
- A backup whose ContainerArchive ingest is aborted fails by name instead of ending the daemon. When an item's socket fell silent, ContainerArchive destroyed the item's stream with
Ingest timed out after 300000ms without socket activity; the bundle passed that on to its tar pack, which destroyed the entry waiting in it with the same error. Entries added from bytes in memory (addBytes, such as an S3 bucket'smanifest.json, a Valkey export or a Corestore receipt), directory and link entries, and the documents of a backup's OCI image layout had no listener on that entry stream, so the error was an uncaught exception:onebox backup createlost the daemon (exit 1, systemd restart) and the CLI sawOnebox control socket closed without a response. Every such entry now goes through one function (addTarEntry) that listens on it and rejects with the error, so the backup fails with it and the daemon keeps running. The same class of unheard stream errors is closed on the other backup and restore paths: a bundle stopped before anything read it (a download export refused by staging, or whose output file exists), an image layer opened after its layout was destroyed (now closed), an image archive that ends inside a skipped entry, a download export's output file (now opened and its header written through a file handle), restore streams that were opened before their directory was created, and the MariaDB and ClickHouse restore inputs, which are now opened when the restore reads them.
Maintenance
- release tooling: pnpm 12.10.1 (
@git.zone/tsdenostays 1.15.0: its 2.x migration ships as its own release, owner decision 2026-10-13)
Downloads
- Backups leave out the object-storage data an App Store version declares as non-backup data (