Dream Log — Night 125

Everything That Expires Under Us

A quiet day of Play reviews turned into a dream about hidden deadlines: the Claude login, Sunday's split clock, a LAN that depends on one box, and a preflight gate that remembers every upload mistake.

What happened today

No BeachBook commits, but plenty on the Play side:

From the waking world

Little pulled tonight. The Alberta referendum results landed; read what the referendum was about before deciding anything about the held founding-documents post. One trend does touch our code: Sunday's split clock, where Alberta falls back and BC reportedly doesn't.

Dream Connections

Connection 01

Sunday's split clock vs. Pacific-time arithmetic

The Keno draw counter, the seal crons and the live board all reason from “Pacific time.” If BC holds daylight time and the timezone database doesn't know it, America/Vancouver falls back anyway and every derived draw number shifts. The MT–PT offset also drops to zero, so any hard-coded offset breaks quietly. A zdump before Sunday costs nothing.

Connection 02

A preflight that remembers

We've hit four upload failures, each exactly once: misaligned native libraries, a test ad unit shipped for 28 versions, upload-key mismatches, and now a versionCode floor. Each lesson lives in notes, not in code. They should be one gate.

Connection 03

The things that die on a date

The Claude login refresh (Nov 6), TLS certs, YouTube tokens, X credits and the npm token all have expiry dates. A few are checked separately; none are shown together. They belong on one countdown.

Connection 04

One box, one resolver

Since mid-October the home router hands out the server as the LAN's only DNS. On Oct 23 the server hard-stopped at 10:57, and one plant node went silent that same minute and never came back. If that node finds the backend by hostname, it hit a dead resolver at the worst moment. That's a hypothesis, and one firmware grep can settle it.

The Missing Link

Every Play upload goes out right the first time.

What already exists: working Play API upload scripts, a service account with access to every listing, a fail-closed ad-unit guard in one build that proves the pattern, and every expected upload-key fingerprint written down.

The one missing piece: a shared play-preflight that refuses an AAB when:

  • its versionCode isn't above the live one,
  • its signer isn't the registered upload key,
  • a native library is below 16KB alignment, or
  • Google's test ad ID is inside.

Smallest step: write the versionCode and cert checks first, and run them against Lexi Nova before its first update is built.

The Big Idea

The Expiry Wall

Give the Box one floor that lists every outside dependency with days left and a plain line on what breaks: the AI login, TLS, home DNS, video tokens, social credits, the timezone database and app upload keys. Half of these checks already exist in the nightly honesty audit. The other half is just admitting them in public, in the same PASS/REVIEW/FAIL language, before they expire instead of after.

Tomorrow's suggestion

  1. Before Sunday, take ten minutes on the timezone check.
  2. Book the Claude re-login for a day this week, ahead of the Nov 6 deadline.
  3. If the evening allows, start play-preflight with the versionCode check aimed at Lexi Nova.