Skip to content

Potbot 0.5.0.dev8 - resumable artifact upload Cogs

Pre-release
Pre-release

Choose a tag to compare

@kieransimkin kieransimkin released this 24 Oct 04:14
7a964cb

This preview continues T01.3/G10 with five installed SYN Cogs: open an upload, retain a checked chunk, inspect bounded missing-slot pages, commit the complete verified source, and abort unfinished upload access. The optional 31-Cog profile preserves all prior identities and uses the existing inherited Embers, independent host admission, artifact store and work ledger.

Uploads pin workspace, owner, policy, length, whole SHA-256 and original expiry. Fixed chunks are at most 8 KiB; status pages contain at most 128 offsets. Migration 23 adds append-only sessions, slots and terminal receipts. Transaction advisory locks preserve SELECT/INSERT-only table permissions and serialize competing terminal decisions. Streaming assembly verifies whole bytes and checks expiry, monotonic deadlines and host admission before publication. Existing content-addressed bytes can deduplicate; only the terminal receipt declares this upload committed.

All eight exact-head push/PR checks passed before merge. The genuine PostgreSQL fixture resumes after controller/service recreation in one process, handles reversed/duplicate delivery, verifies identical concurrent commits, reconstructs the complete artifact through independent range Cogs, and tests 22 negative cases plus empty files and paged status. Actual start/progress/completed/failed/indeterminate observations are read through REST/WebSocket. Source-bound acceptance and clean-wheel profile smoke are required in CI.

The existing conservative write fence remains: a post-dispatch write failure is indeterminate until an admitted replacement controller inspects durable state. Abort retains staged bytes and cannot delete committed content. Source size is capped at 64 MiB or the backend's smaller configured limit; logical bounds do not measure physical disk traffic or peak process memory.

Qualification is local POSIX resumable upload/range reads and controller-instance recreation. Actual network failures, OS-process crashes/power loss, physical retention/GC, tenant-wide quotas, other backends, universal producer adoption and real devices remain separately tracked. T01.3/G10 stays in progress. PyPI publishing remains disabled; no installed runtime or native custody is changed.

The workflow builds exact-tag wheel/source distributions, checks a clean installation and publishes immutable assets, SHA256SUMS and the source manifest. See the upload Cog guide for contracts, demonstration and limits.