Skip to content

Commit e7ec1fa

Browse files
committed
Add DO viewer to admin page, show total power and co2 on page load, and update changelog and readme
1 parent bc27b50 commit e7ec1fa

7 files changed

Lines changed: 543 additions & 95 deletions

File tree

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ These are all lessons from this build. A PCB respin would fix most of them at th
104104
- Outdoor weather + air quality context (via Cloudflare Worker proxy to Open-Meteo): conditions with day/night-aware icons, feels-like, dewpoint, wind direction, pressure trend, AQI + PM2.5, atmospheric CO₂, UV index
105105
- Guestbook with two-level reply threading, tombstone deletes, moderation queue, inline AI translation, rate limiting
106106
- Snake at /snake (also embedded on the 404 / offline / timeout pages) with two leaderboards (today's top scores + all-time top ten, top scores cross over automatically), replay viewer for top entries, quarterly Hall of Fame archive of past all-time boards, 3-letter initials with content blocklist, server-side replay verification, idle demo mode
107-
- `/chronicle`: a daily auto-generated diary the chip writes about itself, plus weekly, monthly, and quarterly reflection entries that aggregate prior periods. Around 30 observation detectors fold sensor extremes, visitor counts, weather, calendar events (equinoxes / first-of-month / season transitions), sensor-retire events, owner-defined personal anchors (birthdays, framing day), and self-aware-chip moments (curator absence, tinkering noticed, long-uptime milestones) into one of several narrative templates per cadence. Daily entries seal at chip-local midnight; weekly on Mondays; monthly on the 1st; quarterly at quarter starts. Permalinks for every entry, RSS feed, owner-curated notes that thread to X as replies, public today-in-progress preview card on the index, year/month accordion archive, keyboard navigation (←/→) on detail views, and per-entry share button.
107+
- `/chronicle`: a daily auto-generated diary the chip writes about itself, plus weekly, monthly, and quarterly reflection entries that aggregate prior periods. Around 30 observation detectors fold sensor extremes, visitor counts, weather, calendar events (equinoxes / first-of-month / season transitions), sensor-retire events, owner-defined personal anchors (birthdays, framing day), and self-aware-chip moments (curator absence, tinkering noticed, long-uptime milestones) into one of several narrative templates per cadence. Daily entries seal at chip-local midnight; weekly on Mondays; monthly on the 1st; quarterly at quarter starts. Permalinks for every entry, RSS feed, owner-curated notes that thread to X as replies, public today-in-progress preview card on the index, year/month accordion archive with template-id filter chips (milestones / records / anomalies / busy / quiet / reflections), keyboard navigation (←/→) on detail views, and per-entry share button.
108108
- Dark mode, responsive, SRI-pinned CDN scripts, no tracking
109109

110110
**Firmware**
@@ -117,7 +117,7 @@ These are all lessons from this build. A PCB respin would fix most of them at th
117117
- WiFi runtime watchdog: reboots if disconnected >10 min
118118
- Heap safety net: reboots at <30 KB free rather than hang
119119
- Event-driven SSE push for sensor stats (15s) and console entries (on each request)
120-
- Admin panel (LAN-only): OTA updates, file manager (with overwrite-confirm + gzip-pair tooltips), full SD backup/restore, R2 backup health + liveness test, SMTP2GO test email, self-test (with I²C bus scanner), sensor + error log viewers, device health sparklines (heap + RSSI), Worker link status, data management (reset counters / export state / clear Snake leaderboard / repair monthly+yearly stats from weekly archives / drop out-of-spec CSV rows / fix truncated record timestamps), maintenance mode toggle
120+
- Admin panel (LAN-only): OTA updates, file manager (with overwrite-confirm + gzip-pair tooltips), full SD backup/restore, R2 backup health + liveness test, SMTP2GO test email, self-test (with I²C bus scanner), sensor + error log viewers, device health sparklines (heap + RSSI), Worker link status, data management (reset counters / export state / clear Snake leaderboard / repair monthly+yearly stats from weekly archives / drop out-of-spec CSV rows / fix truncated record timestamps), Durable Object storage explorer (read + delete-by-key for incident recovery, gated on the worker secret), maintenance mode toggle
121121
- OLED boot sequence, rotating runtime pages, burn-in protection
122122

123123
**Edge**
@@ -133,7 +133,7 @@ These are all lessons from this build. A PCB respin would fix most of them at th
133133
- Embeddable live status badges at `/status.svg` (and `/status-wide.svg`)
134134
- Optional HMAC challenge-response device auth
135135
- Optional SMTP2GO integration for guestbook-pending alerts, dead-man's-switch (device silent >N hours), backup failures, and overdue-backup warnings
136-
- Optional daily off-site backups to Cloudflare R2 with GFS rotation (7 daily + 4 weekly + 12 monthly + yearly) and sha256 integrity manifests
136+
- Optional daily off-site backups to Cloudflare R2 with GFS rotation (7 daily + 4 weekly + 12 monthly + yearly) and sha256 integrity manifests; Worker also writes a daily full Durable Object snapshot to `state/do-snapshot/YYYY-MM-DD.json` (30-day retention) so non-chronicle DO state (snake leaderboards + season archives + replays, caches) is recoverable independently if DO is ever wiped
137137
- Optional Shelly Gen 2+ smart plug integration for live power monitoring: live-wattage banner on homepage, power chart, energy column in CSV logs, per-period energy on `/history` cards, lifetime cost + CO₂ totals on homepage and `/about` (when grid rates are configured), admin observability panel + self-test entry
138138
- Optional X / Twitter auto-post: each sealed Chronicle entry crossposts once via the X API v2 (OAuth 1.0a HMAC-SHA1 signed in-Worker). Owner notes added later thread under as replies. Idempotent via `posted_to_x` and `note_x_tweet_id` flags so DO restarts and re-seals don't double-post. Silently skipped if any of the 4 secrets are unset
139139
- Security headers, no-cache list for dynamic endpoints

0 commit comments

Comments
 (0)