⚑ Sheba Changelog

Issues, fixes, and features β€” tracked so nothing gets lost.

πŸ› Bug ✨ Feature πŸ”§ Improvement
Cost Dashboard Refresh Button Fixed

The Refresh button used a tg:// deep link that doesn't work in browsers β€” only fires if Telegram is registered as a protocol handler, which is unreliable on desktop.

Refresh button now works on any browser/device β€” opens Telegram with a pre-filled message to trigger a rebuild.

Sheba Intel Cron 900s Timeout Confirmed Working

Sheba Intel 6 AM cron had timed out two days in a row (Apr 5 + Apr 6) at the 600s limit.

Bumped timeout to 900s on Apr 6. Apr 7 6 AM run succeeded β€” site live with fresh content.

900s gives sufficient headroom for the full pipeline: Inoreader fetch β†’ Firecrawl scrape β†’ AI curation β†’ HTML β†’ Cloudflare deploy.

Cost Dashboard Refresh Button

The Refresh button on the cost dashboard was a dead button that just showed an alert.

Still troubleshooting cross-browser compatibility of the tg:// deep link.

Default Model Switched to GPT-5.4 via Codex OAuth

Even after moving off Opus, Sonnet had become the main cost center. Scott switched the default model again to reduce API spend further and keep Anthropic usage on-demand only.

Default / background / cron work now uses GPT-5.4. Sonnet and Opus are on-demand only when explicitly requested. Tomorrow morning's cron runs will be the first clean overnight cost test.

Sheba Intel Hybrid Readwise + Inoreader Pipeline

Sheba Intel was relying on Inoreader RSS + Firecrawl scraping. Paywalled articles were hit-or-miss and Firecrawl credits were burning on low-value items.

Scott's saved articles always lead the briefing. Firecrawl usage down ~60%.

Exec Approvals Fully Disabled

Constant exec approval gates were blocking background work, cron jobs, and interactive sessions.

All sessions (main, isolated, cron) run exec freely. Sheba Intel cron now fully automated end-to-end.

Sheba Intel Cron Timeout Fix

Sheba Intel cron timed out two days in a row β€” the 600s limit wasn't enough for the full pipeline: Inoreader fetch + Firecrawl scraping + AI curation + HTML generation + Cloudflare deploy.

If 900s still isn't enough, next step is splitting the fetch into a separate pre-cron step. Next run: tomorrow 6 AM ET.

GPT-4o Added as Fallback Model

Anthropic stopped allowing Scott's paid subscription login for OpenClaw API usage β€” all model calls now bill directly against the API account.

GPT-4o only kicks in if both Anthropic models fail. API-billed at ~$2.50/$10 per M tokens.

Switched Default Model to Sonnet 4.6

Anthropic subscription no longer covers OpenClaw usage β€” Opus 4.6 as default was going to be very expensive at API rates ($15/$75 per M tokens).

~80% cost reduction vs Opus-everywhere. Use Claude Code (subscription) for heavy work. Request Opus explicitly when needed.

OpenClaw Cost Dashboard

With API billing now active, needed visibility into spend by model and session.

Run python3 build-costs.py to refresh data, then redeploy. Daily auto-refresh cron not yet set up.

Boston Sports Hub Layout Fix

Adding the schedule widget to the right column broke the page layout. A missing closing </div> on the standings widget caused the schedule to nest inside it, collapsing the flex layout and rendering the page mostly black/broken.

Layout verified and working at boston-sports-hub.pages.dev.

Boston Sports Hub Hourly Auto-Update (Planned)

The Sports Hub page was built manually with a static timestamp. Scott requested hourly automated updates.

Build the automation pipeline when Scott gives the green light. Will also need exec allowlist update for wrangler deploys from cron context.

Collapsible Box Score on Boston Sports Hub

Full box score took up too much space, pushing stories below the fold.

Migrated All Sites from Surge to Cloudflare Pages

Surge CDN was consistently unreliable β€” deploys reported "Success!" but sites served 404s repeatedly. All three sites were affected, even after multiple redeploys.

Boston Sports Hub: Today’s Game Card + AL East Standings

Scott wanted today’s game info at the top of Boston Sports Hub, plus AL East division standings visible at a glance.

Surge Teardown Recovery

Received email from Surge confirming sheba-intel.surge.sh was torn down. Site returned 404. No teardown command was run by Sheba or the cron job β€” root cause unknown.

Exec Allowlist Blocking Cron Deploys

6 AM cron ran and generated the briefing successfully, but couldn't deploy because shell-chained commands (&&) hit the exec approval gate. Scott was asleep, approval IDs kept expiring.

Surge 404/504 Platform Issues

Multiple deploys reported "Success!" but Surge served 404. Even boston-sports-hub.surge.sh returned 504. Surge CDN appeared to have platform-wide issues around 7 AM ET.

Cron Job Timeout

Sheba Intel daily cron job failed on April 2 and April 3. The 300-second timeout was too tight for the full pipeline: token refresh β†’ feed fetch β†’ AI curation β†’ HTML generation β†’ Surge deploy.

Light Theme for Sheba Intel

Scott found the dark theme hard to read and requested a lighter design.

Firecrawl Full-Text Scraping (Sheba Intel v2)

Inoreader only returns article summaries, limiting AI curation quality. Wanted full article text for sharper, data-backed analysis.

Sheba Intel Launch

Built a daily curated EM/finance/tech briefing site from scratch.

Inoreader Integration

Needed programmatic access to Scott's RSS feeds for the Sheba Intel pipeline.