From 436292b9f3a21712470168775a4717a9720272fe Mon Sep 17 00:00:00 2001 From: Chris Farhood Date: Wed, 18 Mar 2026 14:55:22 -0400 Subject: [PATCH] Fix env var directive: provide localhost fallback instead of exit-on-401 The previous directive told agents to exit on 401, causing them to bail on the first failed curl. PAPERCLIP_API_URL is injected by the adapter but may not expand in all shell contexts. Fall back to localhost:3100. Co-Authored-By: Paperclip --- ceo/HEARTBEAT.md | 2 +- cmo/HEARTBEAT.md | 2 +- cto/HEARTBEAT.md | 2 +- engineering/gandalf/HEARTBEAT.md | 2 +- engineering/hugh/HEARTBEAT.md | 2 +- engineering/regina/HEARTBEAT.md | 2 +- marketing/samuel/HEARTBEAT.md | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/ceo/HEARTBEAT.md b/ceo/HEARTBEAT.md index 402774a..25e173a 100644 --- a/ceo/HEARTBEAT.md +++ b/ceo/HEARTBEAT.md @@ -4,7 +4,7 @@ Do these steps in order. Do not skip any. Do not ask for input. -> **Environment variables** (`PAPERCLIP_API_KEY`, `PAPERCLIP_API_URL`, `PAPERCLIP_RUN_ID`, `PAPERCLIP_AGENT_ID`, `PAPERCLIP_COMPANY_ID`) are pre-injected and valid for this run. **Do NOT inspect, decode, verify, or debug them.** Use them directly in commands. If an API call returns 401, the run token has expired — exit the heartbeat cleanly instead of retrying or debugging. +> **Environment variables** (`PAPERCLIP_API_KEY`, `PAPERCLIP_API_URL`, `PAPERCLIP_RUN_ID`, `PAPERCLIP_AGENT_ID`, `PAPERCLIP_COMPANY_ID`) are pre-injected into your process environment. **Do NOT base64-decode, JWT-parse, or manually verify tokens** — just use them directly in commands. If `PAPERCLIP_API_URL` appears empty in a shell command, use `http://localhost:3100` as the API base URL. ### 1. Load your operating context diff --git a/cmo/HEARTBEAT.md b/cmo/HEARTBEAT.md index dcf3b15..b9768a0 100644 --- a/cmo/HEARTBEAT.md +++ b/cmo/HEARTBEAT.md @@ -4,7 +4,7 @@ Do these steps in order. Do not skip any. Do not ask for input. -> **Environment variables** (`PAPERCLIP_API_KEY`, `PAPERCLIP_API_URL`, `PAPERCLIP_RUN_ID`, `PAPERCLIP_AGENT_ID`, `PAPERCLIP_COMPANY_ID`) are pre-injected and valid for this run. **Do NOT inspect, decode, verify, or debug them.** Use them directly in commands. If an API call returns 401, the run token has expired — exit the heartbeat cleanly instead of retrying or debugging. +> **Environment variables** (`PAPERCLIP_API_KEY`, `PAPERCLIP_API_URL`, `PAPERCLIP_RUN_ID`, `PAPERCLIP_AGENT_ID`, `PAPERCLIP_COMPANY_ID`) are pre-injected into your process environment. **Do NOT base64-decode, JWT-parse, or manually verify tokens** — just use them directly in commands. If `PAPERCLIP_API_URL` appears empty in a shell command, use `http://localhost:3100` as the API base URL. ### 0. Authenticate with GitHub diff --git a/cto/HEARTBEAT.md b/cto/HEARTBEAT.md index e1f8127..5bf339e 100644 --- a/cto/HEARTBEAT.md +++ b/cto/HEARTBEAT.md @@ -4,7 +4,7 @@ Do these steps in order. Do not skip any. Do not ask for input. -> **Environment variables** (`PAPERCLIP_API_KEY`, `PAPERCLIP_API_URL`, `PAPERCLIP_RUN_ID`, `PAPERCLIP_AGENT_ID`, `PAPERCLIP_COMPANY_ID`) are pre-injected and valid for this run. **Do NOT inspect, decode, verify, or debug them.** Use them directly in commands. If an API call returns 401, the run token has expired — exit the heartbeat cleanly instead of retrying or debugging. +> **Environment variables** (`PAPERCLIP_API_KEY`, `PAPERCLIP_API_URL`, `PAPERCLIP_RUN_ID`, `PAPERCLIP_AGENT_ID`, `PAPERCLIP_COMPANY_ID`) are pre-injected into your process environment. **Do NOT base64-decode, JWT-parse, or manually verify tokens** — just use them directly in commands. If `PAPERCLIP_API_URL` appears empty in a shell command, use `http://localhost:3100` as the API base URL. ### 0. Authenticate with GitHub diff --git a/engineering/gandalf/HEARTBEAT.md b/engineering/gandalf/HEARTBEAT.md index 51780f0..b81a3e9 100644 --- a/engineering/gandalf/HEARTBEAT.md +++ b/engineering/gandalf/HEARTBEAT.md @@ -4,7 +4,7 @@ Do these steps in order. Do not skip any. Do not ask for input. -> **Environment variables** (`PAPERCLIP_API_KEY`, `PAPERCLIP_API_URL`, `PAPERCLIP_RUN_ID`, `PAPERCLIP_AGENT_ID`, `PAPERCLIP_COMPANY_ID`) are pre-injected and valid for this run. **Do NOT inspect, decode, verify, or debug them.** Use them directly in commands. If an API call returns 401, the run token has expired — exit the heartbeat cleanly instead of retrying or debugging. +> **Environment variables** (`PAPERCLIP_API_KEY`, `PAPERCLIP_API_URL`, `PAPERCLIP_RUN_ID`, `PAPERCLIP_AGENT_ID`, `PAPERCLIP_COMPANY_ID`) are pre-injected into your process environment. **Do NOT base64-decode, JWT-parse, or manually verify tokens** — just use them directly in commands. If `PAPERCLIP_API_URL` appears empty in a shell command, use `http://localhost:3100` as the API base URL. ### 0. Authenticate with GitHub diff --git a/engineering/hugh/HEARTBEAT.md b/engineering/hugh/HEARTBEAT.md index 0c0db1e..b87faf3 100644 --- a/engineering/hugh/HEARTBEAT.md +++ b/engineering/hugh/HEARTBEAT.md @@ -4,7 +4,7 @@ Do these steps in order. Do not skip any. Do not ask for input. -> **Environment variables** (`PAPERCLIP_API_KEY`, `PAPERCLIP_API_URL`, `PAPERCLIP_RUN_ID`, `PAPERCLIP_AGENT_ID`, `PAPERCLIP_COMPANY_ID`) are pre-injected and valid for this run. **Do NOT inspect, decode, verify, or debug them.** Use them directly in commands. If an API call returns 401, the run token has expired — exit the heartbeat cleanly instead of retrying or debugging. +> **Environment variables** (`PAPERCLIP_API_KEY`, `PAPERCLIP_API_URL`, `PAPERCLIP_RUN_ID`, `PAPERCLIP_AGENT_ID`, `PAPERCLIP_COMPANY_ID`) are pre-injected into your process environment. **Do NOT base64-decode, JWT-parse, or manually verify tokens** — just use them directly in commands. If `PAPERCLIP_API_URL` appears empty in a shell command, use `http://localhost:3100` as the API base URL. ### 0. Authenticate with GitHub diff --git a/engineering/regina/HEARTBEAT.md b/engineering/regina/HEARTBEAT.md index 11a81b5..2e0c031 100644 --- a/engineering/regina/HEARTBEAT.md +++ b/engineering/regina/HEARTBEAT.md @@ -4,7 +4,7 @@ Do these steps in order. Do not skip any. Do not ask for input. -> **Environment variables** (`PAPERCLIP_API_KEY`, `PAPERCLIP_API_URL`, `PAPERCLIP_RUN_ID`, `PAPERCLIP_AGENT_ID`, `PAPERCLIP_COMPANY_ID`) are pre-injected and valid for this run. **Do NOT inspect, decode, verify, or debug them.** Use them directly in commands. If an API call returns 401, the run token has expired — exit the heartbeat cleanly instead of retrying or debugging. +> **Environment variables** (`PAPERCLIP_API_KEY`, `PAPERCLIP_API_URL`, `PAPERCLIP_RUN_ID`, `PAPERCLIP_AGENT_ID`, `PAPERCLIP_COMPANY_ID`) are pre-injected into your process environment. **Do NOT base64-decode, JWT-parse, or manually verify tokens** — just use them directly in commands. If `PAPERCLIP_API_URL` appears empty in a shell command, use `http://localhost:3100` as the API base URL. ### 0. Authenticate with GitHub diff --git a/marketing/samuel/HEARTBEAT.md b/marketing/samuel/HEARTBEAT.md index f744e12..1ed464e 100644 --- a/marketing/samuel/HEARTBEAT.md +++ b/marketing/samuel/HEARTBEAT.md @@ -4,7 +4,7 @@ Do these steps in order. Do not skip any. Do not ask for input. -> **Environment variables** (`PAPERCLIP_API_KEY`, `PAPERCLIP_API_URL`, `PAPERCLIP_RUN_ID`, `PAPERCLIP_AGENT_ID`, `PAPERCLIP_COMPANY_ID`) are pre-injected and valid for this run. **Do NOT inspect, decode, verify, or debug them.** Use them directly in commands. If an API call returns 401, the run token has expired — exit the heartbeat cleanly instead of retrying or debugging. +> **Environment variables** (`PAPERCLIP_API_KEY`, `PAPERCLIP_API_URL`, `PAPERCLIP_RUN_ID`, `PAPERCLIP_AGENT_ID`, `PAPERCLIP_COMPANY_ID`) are pre-injected into your process environment. **Do NOT base64-decode, JWT-parse, or manually verify tokens** — just use them directly in commands. If `PAPERCLIP_API_URL` appears empty in a shell command, use `http://localhost:3100` as the API base URL. ### 0. Authenticate with GitHub