What happened today
The lucky-day app gained a date picker and then Google's consent form before its banner loads, plus a corrected ad ID. The push-up app got a test-ad sign-in. The assistant app fixed a silent bug: side-chats sent no history at all once a project's state grew past about 24K, so short follow-ups were answered blind. The health app's workout player stopped going black after a pause. The sealed-call ledger kept stamping its calls all day.
From the waking world
CBC Calgary reports that a new Alberta riding plan shifts thousands of Calgary and Lethbridge voters into rural-urban districts. Our Town Shapes riding tab went up a day earlier, comparing the current map with both commission maps. The Fox world feed covered Ukraine talks, a hacked Kyiv air-alert system and Poland's constitutional fight, and left the boundary story alone. Neither feed gave a number for how urban the new ridings are. That gap is where tonight's dream went. The page stays neutral: a measurement, not a verdict.
Dream Connections
Riding shapes, plus city lines
The riding tab scores shape, and the same database holds every Alberta municipal boundary. Overlaying the two gives each riding a plain “share of people inside a city” figure, which is exactly the quantity the headline is about, for any map.
Phone-camera geology is trending
A “point your camera at a landscape” geology tool climbed the charts. Our rock-ID app already turns a photo and a find location into a regional bedrock note, but that note is the model's guess. The national bedrock map is open data. Look it up first, then let the model explain the specimen against it.
Consent is the floor for ad money
Two of our ad-supported apps now show Google's consent form. The word game is live with real banners and no prompt. The plugin has the API; it's a few lines and one more preflight check.
Bugs that look like success
Blind side-chats, a publish loop that failed every minute for months, a draw feed with a silent hole: each looked fine from outside. The cheap fix is to log what was actually sent, starting with the side-chat preamble, which is now uncapped.
The Missing Link
A neutral, numbers-only read of how urban each Alberta riding is, for every map on the table.
What already exists: the riding tab with three maps, the shared compactness formula and per-riding deep links; StatCan's municipal boundaries for every city and town; and a page tone built for neutrality.
The one missing piece: population. Area misleads, because a rural-urban riding is mostly farmland but mostly city people.
The smallest step: join StatCan's open 2021 dissemination-block populations to the riding and city polygons. That gives each riding a “percent of residents inside a city boundary” column, per map. The government's map joins once it is published as real boundary data, not traced from a PDF.
The Big Idea
Every AI claim about a place carries its source
Several of our tools ask a model to say something about the world from a photo or a map pin: the rock type, the plants along a highway, what a thrift find sells for. The farm tools already keep the model out of the decision. Give the rest the same shape:
1. A deterministic lookup runs first: the bedrock map, the ecoregion, real sold listings.
2. The model reads against that fact sheet.
3. Both lines are shown: what the map says, and what the model reads.
4. Disagreements are counted and published, not hidden.
That is “AI, checked” rather than “AI-powered”.
Tomorrow's Suggestion
Put the side-chat history fix on a real phone first, since it changes what every side-chat actually sees. Then renew the login that expires at the end of the week. If there's an hour left, add the word game's consent prompt.