fix(sprite): replace personal VM URL with official CDN for keep-alive script (#2701)

The sprite-keep-running.sh script was downloaded from a hardcoded personal
VM URL (kurt-claw-f.sprites.app) which would break all Sprite deployments
if that VM goes offline. Use the official CDN proxy at openrouter.ai/labs/spawn/.

Fixes #2699

-- refactor/code-health

Co-authored-by: B <6723574+louisgv@users.noreply.github.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
A 2026-03-16 20:04:49 -07:00 committed by GitHub
parent b854917186
commit 5b2eddb763
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 5 additions and 4 deletions

View file

@ -1,6 +1,6 @@
{
"name": "@openrouter/spawn",
"version": "0.20.6",
"version": "0.20.7",
"type": "module",
"bin": {
"spawn": "cli.js"

View file

@ -83,7 +83,9 @@ describe("installSpriteKeepAlive", () => {
await installSpriteKeepAlive();
expect(capturedCmds.some((cmd) => cmd.includes("kurt-claw-f.sprites.app/sprite-keep-running.sh"))).toBe(true);
expect(capturedCmds.some((cmd) => cmd.includes("openrouter.ai/labs/spawn/shared/sprite-keep-running.sh"))).toBe(
true,
);
expect(capturedCmds.some((cmd) => cmd.includes("sprite-keep-running"))).toBe(true);
expect(capturedCmds.some((cmd) => cmd.includes(".local/bin/sprite-keep-running"))).toBe(true);
expect(capturedCmds.some((cmd) => cmd.includes("chmod +x"))).toBe(true);

View file

@ -610,11 +610,10 @@ export async function downloadFileSprite(remotePath: string, localPath: string):
* as long as the agent is running preventing inactivity shutdown.
*
* Non-fatal: logs a warning if download fails so deployment still proceeds.
* Reference: https://kurt-claw-f.sprites.app/sprite-keep-running.sh
*/
export async function installSpriteKeepAlive(): Promise<void> {
logStep("Installing Sprite keep-alive...");
const scriptUrl = "https://kurt-claw-f.sprites.app/sprite-keep-running.sh";
const scriptUrl = "https://openrouter.ai/labs/spawn/shared/sprite-keep-running.sh";
const keepAliveResult = await asyncTryCatch(() =>
runSprite(
"mkdir -p ~/.local/bin && " +