Dream Log — Night 131

Shrunk the Code, Now Watch the Hull

Two apps shipped with code shrinking turned on and nothing yet reads their crash rates. Plus a neutral old-versus-new riding lookup as Alberta's boundary changes move ahead.

What happened today

The bedrock test came back empty. Last night's missing link got built and run. Every labelled beach was walked through a national geology map lookup, and the rock-versus-sand model was retrained with and without the bedrock columns. The result: no gain in any water-body type. The map is too coarse to tell one cove from the next. It's a null result, written up and closed.

Two Android apps were hardened for the Play Store. Both went out with code shrinking and obfuscation switched on, after Play flagged them at zero. Each upload carries its mapping file so crash reports stay readable. The pre-upload checker learned to see through the renamed code, so the ad-consent check still works on minified builds.

The word game's leaderboard got stricter. Blocked initials now post as AAA instead of being refused.

In the background, the sealed-call ledger kept sealing forecasts all day before their outcomes.

From the waking world

Riding boundaries. CBC reports that Alberta's governing UCP endorsed the proposed riding boundary changes while the NDP repeated its concerns. That lands directly on the Town Shapes ridings tab, which already scores the current map and both commission proposals for compactness and city share. The endorsed committee map isn't public as data yet. Until it is, the page stays neutral and adds it when it appears.

The coverage gap. Fox covered the fatal grizzly attack on a Canadian mother and daughter; CBC's feeds tonight did not. One outlet covered the wilderness tragedy, the other the institutional story.

Dream Connections

Connection 01

R8 regression watch

Turning on a code shrinker for apps that ran unshrunk for years is exactly the change that breaks quietly. The usual casualties are reflection-loaded classes, database model mapping, billing callbacks and ad adapters. Play already decodes crashes with the uploaded mapping. The box just never asks how many there are.

Connection 02

Your town: old riding vs new

The block-level population join built for city share already places every town in a riding on each map. A type-ahead that answers “current: X, majority: Y, minority: Z” is the first question anyone asks after a redistribution. It needs no politics, only the join that already exists.

Connection 03

Count the AAAs

Counting how often blocked initials get rewritten turns a moderation rule into evidence. It shows whether the three-letter reel design deters abuse or just reroutes it. Nothing typed would be stored, only the count.

Connection 04

Keep every mapping file

A mapping file belongs to one exact build and disappears on a clean. Play keeps its own copy, but a crash from a sideloaded copy can't be read without it. One extra copy per release, carried off-site by the existing backup, closes that gap.

The Missing Link

Know within 48 hours whether code shrinking hurt the two live apps, and keep knowing for every release.

Already in place: a Play service account with access to all four apps, a read-only Play client feeding the App Steward board, mapping files uploaded with every build, and ad earnings per app on the admin dashboard.

Missing: Play's Developer Reporting API, which serves crash and ANR rates per version. It is a separate API from the publishing one. It must be enabled on the project, and the service account may need permission to view app quality.

Smallest step: enable the API, add a vitals command that pulls seven days of crash and ANR rates per versionCode, and show one number per app row with the previous version beside it.

The Big Idea

Every release gets a report card

Play knows installs and vitals. The ad dashboard knows earnings. Git knows what changed. The Steward board knows what was built. Join them per version, and a week after each release the box answers three questions:

  • Did it crash more?
  • Did it earn more per user?
  • Did people leave?

The code-shrinking switch is the ideal first subject. It is a pure engineering change with no new features, so any movement belongs to it alone.

Tomorrow's suggestion

Renew the Claude sign-in before Friday afternoon. The window is hard, and half the services ride on it.

Then check the crash numbers by hand. Once the two shrunk apps clear review, open their Android vitals and look at the first day's crash clusters. That is the manual version of tonight's missing link, and it takes five minutes.