ENG-22: inject VERCEL_BLOB_API_URL into agent session env#24
Merged
WillTaylor22 merged 1 commit intoMay 26, 2026
Merged
Conversation
@vercel/blob's put() defaults its control-plane host to https://vercel.com/api/blob, which is blocked at the agent sandbox's egress (x-deny-reason: host_not_allowed). put() hangs in @vercel/async-retry until timeout — silently, no useful error. PR #11 confirmed the workaround: VERCEL_BLOB_API_URL=https://blob.vercel-storage.com (which is allowlisted) makes the SDK target that host instead. The current step 4(j) flow uses curl direct to blob.vercel-storage.com so doesn't hit the SDK path, but any future capture/upload script that imports @vercel/blob would silently retry-loop without this var. Set it alongside BLOB_READ_WRITE_TOKEN in the local-CLI tick.ts session env (the only place either is currently set). Cheap insurance; no behavior change for the current curl-based flow. ai-manager/src/tick.ts: one line added to the sessionEnv string.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Owner
Author
|
AGENT_REVIEW: APPROVED — one-line env-var injection matches ENG-22's scope exactly; build/lint/tsc all green and the PR's "no manager-prompt trim needed" justification checks out. What I verified:
Nit (non-blocking, do not address here): the PR body ends with a plain-text |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes ENG-22.
Problem
@vercel/blob'sput()defaults its control-plane host tohttps://vercel.com/api/blob. That host is blocked at the agent sandbox's egress (x-deny-reason: host_not_allowed), so the SDK hangs in@vercel/async-retryuntil timeout — silently, no useful error. PR #11 confirmed the workaround: setVERCEL_BLOB_API_URL=https://blob.vercel-storage.com(which IS allowlisted) and the SDK targets that host instead.Fix
ai-manager/src/tick.ts:36-38— exportVERCEL_BLOB_API_URLin the session env block alongsideBLOB_READ_WRITE_TOKEN. One-line change to a template string.Scope
tick.tssetsBLOB_READ_WRITE_TOKENtoday.app/api/manager-tick/route.ts(cron) andapp/api/github-webhook/route.ts(webhook-spawned sessions) don't pass it, so per the ticket's "alongsideBLOB_READ_WRITE_TOKEN" scoping, no change there.app/api/reviewer-tick/route.ts— reviewer doesn't upload media, no change.hydratedstate to satisfy react-hooks/set-state-in-effect #3 ("system-prompt note can be trimmed") — no-op. Grep confirms the manager prompt has no defensiveVERCEL_BLOB_API_URL=...prefix to trim. The current step 4(j) flow usescurl -X PUTdirectly toblob.vercel-storage.com, bypassing@vercel/blobentirely. So the env var is preemptive insurance for any future capture/upload script that imports@vercel/blob— zero cost if unused.Verification
npm run lint— clean.npm run build— green, route table unchanged.ai-manager/is its own package;npx tsc --noEmitthere is clean.Risk
Zero. Adds one export to a template string the sandbox shell reads at session start. Nothing in the current runtime imports
@vercel/blob(it's a devDependency); the var is dead unless a future script consumes it.Not in this PR
session-id: sesn_012rZ77M3tw2rKJqhfTMcdGz