diff --git a/CHANGELOG.md b/CHANGELOG.md index 6a56b8629..4d2f8dcbe 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ - CLI/Status: make the “More” footer shorter and easier to scan (newlines + context-aware suggestions). - Docs/FAQ: make `clawdbot status` the first diagnostic step (and point to `status --all` for pasteable reports). - CLI/Status: format non-JSON-serializable provider issue values more predictably. +- Gateway/Heartbeat: deliver reasoning even when the main heartbeat reply is `HEARTBEAT_OK`. (#694) — thanks @antons. ## 2026.1.11-7 diff --git a/src/agents/model-auth.test.ts b/src/agents/model-auth.test.ts index 985a7110e..eccceca67 100644 --- a/src/agents/model-auth.test.ts +++ b/src/agents/model-auth.test.ts @@ -32,6 +32,7 @@ describe("getApiKeyForModel", () => { ); vi.resetModules(); + const { ensureAuthProfileStore } = await import("./auth-profiles.js"); const { getApiKeyForModel } = await import("./model-auth.js"); const model = { @@ -40,6 +41,9 @@ describe("getApiKeyForModel", () => { api: "openai-codex-responses", } as Model; + const store = ensureAuthProfileStore(process.env.CLAWDBOT_AGENT_DIR, { + allowKeychainPrompt: false, + }); const apiKey = await getApiKeyForModel({ model, cfg: { @@ -52,6 +56,8 @@ describe("getApiKeyForModel", () => { }, }, }, + store, + agentDir: process.env.CLAWDBOT_AGENT_DIR, }); expect(apiKey.apiKey).toBe(oauthFixture.access); diff --git a/src/infra/heartbeat-runner.ts b/src/infra/heartbeat-runner.ts index b8ace042e..c53435d09 100644 --- a/src/infra/heartbeat-runner.ts +++ b/src/infra/heartbeat-runner.ts @@ -315,6 +315,7 @@ export async function runHeartbeatOnce(opts: { const mediaUrls = replyPayload.mediaUrls ?? (replyPayload.mediaUrl ? [replyPayload.mediaUrl] : []); + // Reasoning payloads are text-only; any attachments stay on the main reply. const previewText = shouldSkipMain ? reasoningPayloads .map((payload) => payload.text)