MalloryEstate Briefing
M·066Reference
← All briefings

Estate

Estate Review — Three-Day Mobile Sprint

A durable snapshot of ~three days (16–19 Jul) of mostly phone-driven estate work — what shipped, what it enables, and where the seams are.

Dated 2026-07-19Programme Estate

Situation

Over three days the estate gained live external awareness (TomTom traffic joining weather/news, with a proactive commute watch), a second Google account (MK Community Energy) folded into calendar and inbox, a Model Settings screen turning hardcoded routing into data-driven presets, an eval battery wired to gate pushes and page on regression, the Pebble watch promoted to a glance surface, and a round of assistant-proactivity fixes — while the VM→Goose migration advanced to Increment 4a. The method held throughout: design doc → plan → small PRs → merge.

The one systemic weakness was the last mile: build outran landing. Almost everything is merged to main but inert — the edge is undeployed, three secrets are unset, several VM jobs aren't pulled or cron'd, and one whole increment sits on an un-PR'd branch. The estate is 🔴 RED, driven entirely by two concrete, fixable Tier-A items — not by anything the new work broke.

Key decisions

Reason about the physical day

TomTom traffic joins weather and news as a collect→interpret→surface loop; the weekday-morning commute watch (defaults OFF) is the first proactive nudge grounded in live-world data.

Owner-tagged accounts

A multi-account registry gives every calendar event and inbox item a data_owner tag — the groundwork for a clean work / personal / mk-community-energy split the vault already enforces.

Model choice as a dial, not a redeploy

Routing moved from hardcoded providersForTier into config:routing KV with a UI — the self-serving loop designated as the first doer dogfood task.

Regression becomes a gated signal

The eval battery + /status verdict + weekly canary turn "did that change break the persona?" from a vibe into a paged signal — aimed at the silent-failure class that hid the 13-day auth outage.

Off the lapsed subscription for good

Each Goose/OpenRouter increment retires another routine from the lapsed claude CLI — the durable answer to the 30 Jun incident, not a re-auth stopgap.

Architecture

Six capability surfaces plus a migration increment, landed across the mallory (edge/app) and mallory-runtime (Tower/VM) repos and the vault.

Live traffic / ambient awareness
TomTom provider, /live/places config, PWA traffic card, proactive commute watch (mallory).
google_mk — 2nd Google account
Multi-account calendar with per-event owner badge; MK inbox ball-in-court → response-SLA surface; accounts registry (mallory + mallory-runtime).
Model Settings / persona routing
Thrifty / balanced / sharp + custom presets in config:routing KV with a web UI (mallory).
Eval battery
Pre-push gate, POST /eval/report, /status verdict, OpenRouter fallback, weekly Tower canary (mallory + mallory-runtime).
Pebble glance surface
Unified notify() fan-out to the Timeline with per-kind wrist policy; briefing / nudge / reminder / traffic pins (mallory).
Assistant proactivity R2
Evidence-drafted EOD /reflect + nightly cron, /journal, Deadline Hardener calendar-write (dry-run by default).
VM→Goose migration Inc 4a
Google read connector + edge OAuth-broker console; Inc 1/2 live, Inc 4a merged with a deploy tail pending.

Risks & guardrails

Build outran landing

Near-everything is merged but inert — undeployed edge, three unset secrets, VM jobs not pulled or cron'd. The RED state is a landing gap, not a regression.

🔴 slack-email-monitor failing

"Unparseable pull" since 17 Jul — a connector routine not yet migrated off the lapsed CLI. While down, work-Slack/Gmail ball-in-court items silently don't reach the Waiting surface.

🔴 calendar-sync paused

Deliberately paused during the google_mk multi-account cutover; the agenda is stale-served (labelled as such) until the rollout + Inc 4a deploy tail complete.

One stranded increment

VM→Goose Inc 3 (Asana dev-backlog) is code-complete on a branch that was run on-box but never PR'd; Inc 4a leap-frogged it, so the recipe can't deploy.

Out of scope

The actionable worklist — every unfinished thread as a hand-processing task with a paste-ready prompt — lives in the sibling runbook, not this briefing.Digital Wellbeing (a Maths Circle product) is tracked in its own note and Asana, not this estate review.
spec · vault · 01 Projects/Mallory Estate Review 2026-07-19/00-design-document.md
Mallory · Estate briefing