## 2026-06-15

- 2026-06-15 heartbeat wake: gateway runtime healthy with an ok connectivity probe, session count is 9, and no action is needed.
## 2026-06-15

- 2026-06-15 heartbeat wake: gateway runtime healthy with an ok connectivity probe, session count is 9, and no action is needed.
- Funnel false-pause incident diagnosed: the deployed `failure_budget` path was falling back to lifetime audit-log totals on empty batches, diverging from the runbook’s per-batch expectation and tripping a false `> 10` create guard after historical accumulation.
- Funnel fix applied and locally verified on 2026-06-15: patch prevents the empty-batch handoff from using all-time audit totals for failure-budget enforcement.
- Notion access finding on 2026-06-15: the issue was connector OAuth/app-session reauthentication, not the local API key file path; `~/.config/notion/api_key` remains the authoritative token source until env is corrected.
- Gateway auth-watchdog false positive investigated on 2026-06-15: repeated `[AUTH WARN] OAuth status unreadable` alerts were caused by brittle parsing in `scripts/gateway-watchdog.sh`, not a live OpenAI auth outage.
- Gateway auth-watchdog fix applied on 2026-06-15: watchdog now checks machine-readable `openclaw --no-color models --status-json`, strips any pre-JSON doctor/banner preamble, and keys health off an effective OpenAI OAuth profile with `status=ok` instead of scraping the human-readable usage line.
- Notion architecture comparison on 2026-06-15: this watchdog recurrence belongs under existing Threads DB incident `THR-91` (`GW.3 — Gateway flapping + codex OAuth-unreadable diagnosis`), not under `THR-13` OAuth monitor planning work; rationale is that THR-91 already defines future `AUTH-WARN` events as a passive tripwire back into that thread.
- Final watchdog parser root cause confirmed on 2026-06-15: the `parse_openai_oauth_json_status` helper was implemented with a Python heredoc, so the interpreter consumed the heredoc as stdin instead of the piped JSON payload; that made the parser read an empty stream and emit `parse_error` on every live run even when the status JSON itself was valid.
- Final watchdog verification on 2026-06-15: after replacing the heredoc-based parser with `python3 -c`, a direct run of `scripts/gateway-watchdog.sh` completed cleanly at `10:56 PDT` with only `Probe OK` / `Gateway reachable` log lines and no new auth alert.
