You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 48a6686
Browse filesBrowse the repository at this point in the historyBrowse files
fix(run-ops): DNS-safe, sortable base32hex run id (replace base62 KSUID)
The run-ops split minted NEW-store run ids as 27-char base62 KSUIDs. The
supervisor puts the run id in the k8s pod name (runner-<id>), and pod names
must be DNS-1123 labels (lowercase [a-z0-9-]), so uppercase base62 ids made
k8s reject the pod (422) and those runs never launched. .toLowerCase() can't
fix it (base62 folds distinct symbols, colliding ids and destroying sort).
Change the encoding, not the structure: mint a 26-char lowercase base32hex id
(24-char core = 6-byte ms timestamp + 9 CSPRNG bytes, + region char + version
char "1"). Lexicographically time-sortable at ms resolution, DNS-safe from
birth, hyphen-free (so firekeeper's runner-<id>-attempt-N round-trip is
unchanged). The residency discriminator switches from id length to the fixed
version char, so the format can evolve without a hard migration.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Change the run-ops run id format from a 27-char base62 KSUID to a 26-char lowercase base32hex id (ms timestamp + CSPRNG core, region char, version char) so run ids are DNS-1123 safe for Kubernetes pod names while staying lexicographically time-sortable
0 commit comments