[object Object]

← back to Beverlyhillsvideos

adsense-approval-watch: resolve George auth from ~/.claude.json (3rd source) so the launchd job runs without a keychain item — TK-10570

6766aa12aa5c380b283e56f83b73799a86979539 · 2026-08-14 09:59:03 -0700 · Steve

Files touched

Diff

commit 6766aa12aa5c380b283e56f83b73799a86979539
Author: Steve <steve@designerwallcoverings.com>
Date:   Fri Aug 14 09:59:03 2026 -0700

    adsense-approval-watch: resolve George auth from ~/.claude.json (3rd source) so the launchd job runs without a keychain item — TK-10570
---
 scripts/adsense-approval-watch.mjs | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/scripts/adsense-approval-watch.mjs b/scripts/adsense-approval-watch.mjs
index 5a2150b..28228f4 100644
--- a/scripts/adsense-approval-watch.mjs
+++ b/scripts/adsense-approval-watch.mjs
@@ -68,6 +68,13 @@ function loadAuth() {
     const pw = execSync('security find-generic-password -s dw-agents -a admin -w', { encoding: 'utf-8' }).trim();
     if (pw) return Buffer.from(`admin:${pw}`).toString('base64');
   } catch { /* fall through */ }
+  // Third source (TK-10570): the value the george MCP itself uses, already in ~/.claude.json —
+  // so a launchd job resolves auth with no keychain item and no secret in the plist.
+  try {
+    const raw = execSync('cat "$HOME/.claude.json"', { encoding: 'utf-8' });
+    const v = JSON.parse(raw)?.mcpServers?.george?.env?.GEORGE_BASIC_AUTH;
+    if (v) return v;
+  } catch { /* fall through */ }
   return null;
 }
 

← 7ff802a auto-data-snapshot: 2026-08-14T08:19:45 (1 data files) — soc  ·  back to Beverlyhillsvideos  ·  auto-data-snapshot: 2026-08-14T12:24:03 (1 data files) — soc 4846776 →