From 333869b3e68930cf62b36819d6859db18d479d0a Mon Sep 17 00:00:00 2001 From: igneum-labs <337424239+igneum-labs@users.noreply.github.com> Date: Fri, 9 Oct 2026 08:20:59 +0000 Subject: [PATCH] relay: blob upload cap 128 MB (a 2.0.2 Setup is 63.9 MB; the 50 MB client token refused it with a 403) The relay's POST upload hands a Vercel Blob client token capped at MAX_BLOB. The Windows Setup grew past 50 MB with 2.0.2 (63,883,409 bytes), so both PC build jobs of 9 October 2026 ended at the blob PUT with 403 and the Setup could not come back for the rule-33 canary. 128 MB keeps the one-file shape and the hour-long token. Co-Authored-By: Claude Fable 5.1 --- relay/README.md | 2 +- relay/lib/relay.mjs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/relay/README.md b/relay/README.md index 12e6aca93..4a009d88e 100644 --- a/relay/README.md +++ b/relay/README.md @@ -52,7 +52,7 @@ What the 5 October rotation already did: the relay token (4 October), the intake |---|---|---| | Items (text, title, who, kind, flags, read and done marks) | Neon table `relay_items` (database `igneum`) | body 1 MB | | Machines (name, hostname, role, GPU and WSL facts, last seen) | Neon table `relay_machines` | | -| Files | Vercel Blob store `igneum-relay` (public URLs with random path and suffix, London) | 50 MB per file through a client token; 4 MB when pushed through the function | +| Files | Vercel Blob store `igneum-relay` (public URLs with random path and suffix, London) | 128 MB per file through a client token; 4 MB when pushed through the function | | The token and keys | `~/.config/igneum/relay-token`, `relay-key`, `relay-run-key`, `relay-machines/`; project env (`RELAY_TOKEN`, `RELAY_KEY`, `RELAY_RUN_PUB`, `LOG_INTAKE_KEY`, `LOG_INTAKE_KEY_NEXT`) | never in the repo | | Retention | rows older than 30 days are deleted with their blobs, checked on a feed read at most every 10 minutes per instance; `delete` removes the blob with the row (X26) | 30 days | diff --git a/relay/lib/relay.mjs b/relay/lib/relay.mjs index 8eb92c15a..c91589257 100644 --- a/relay/lib/relay.mjs +++ b/relay/lib/relay.mjs @@ -7,7 +7,7 @@ import { randomBytes } from 'node:crypto'; import { authVia } from './guard.mjs'; export const MAX_INLINE = 4 * 1024 * 1024; // raw upload through the function (Vercel body cap is 4.5 MB) -export const MAX_BLOB = 50 * 1024 * 1024; // direct-to-Blob upload with a client token +export const MAX_BLOB = 128 * 1024 * 1024; // direct-to-Blob upload with a client token (128 MB since 9 October 2026: a 2.0.2 Setup is 63.9 MB and the 50 MB token refused it with a 403) export const MAX_BODY = 1024 * 1024; // text body per item // start-app (MF-11, 7 October 2026): a signed, tagged task like `run`, but the agent executes nothing from its body: it // starts the installed Igneum Miner (hidden console, as the user) and reports whether an engine answered. The body