In motionEveryday gravity
A steady free-move dashboard
Widgets have grips, edge and corner resize handles, and keyboard layout controls. The first-drag resizing jump and overlapping widgets on a fresh workspace are fixed. Local browser checks cover resize handles, first load, reload, and tablet width; regression tests also cover scrolling, cancelled gestures, and older saved layouts. Next: verify the feel on an actual iPad before calling the layout finished.
In motionEveryday gravity
Apple Music and local MP3 library
Focus audio now has three sources behind one volume slider: the original browser-made noise, Streams — internet-radio and other audio you add yourself by name and https address (there is deliberately no built-in station list: a SomaFM terms check showed curated lists need the provider's written permission) — and Library — your own music played straight off a self-hosted Subsonic-compatible server like Navidrome, with the password stored encrypted and the audio proxied so seeking works without the password ever reaching the browser. Library tracks report to last.fm under its own play-length rules, with failures that can never interrupt the music; streams carry no track metadata and say so. A security pass has since hardened the plumbing: the server address must be a public internet host (private, loopback, and link-local addresses are refused and re-checked through DNS before every fetch), and the last.fm connect flow binds its callback to a short-lived cookie so a cross-site page can't link the account. The pieces are built and unit-verified: what remains is proving live audio against a real connected Navidrome, and Apple Music stays a documented plan until a real MusicKit developer token exists.
In motionDurable, multi-device brain
Shared items stop overwriting each other
Shared saves now refuse stale versions, combine independent record edits, and show both versions when the same item changed in two places. Pending drafts survive reload and failed requests, and a choice is checked again if another edit arrives before it saves. Isolated Postgres and two-browser fixtures pass; deployment and verification with two real signed-in accounts are still needed.
In motionDurable, multi-device brain
Signed-in isolation tests
Every data route is now checked automatically for a missing sign-in check or a query that forgets whose data it is. The matching proof against the live database is written and waiting on its first run.
In motionContext, memory, and integrations
Gmail plus custom-domain email
Mail starts with hygiene: accounts are added right in the app — passwords encrypted before they touch the database — and a hosted engine reads them over IMAP each morning, quarantines marketing into its own folder, sends one-click unsubscribes you approve once, and reclaims server space in resumable batches. A training screen shows every call it made and takes your correction: approve or decline an unsubscribe per message or per sender, watch each attempt move through requested to completed or failed with the last attempt time, test an account's connection before trusting it, and read per-account counts after every run. Each person's accounts stay their own. The engine is built and verified against fixtures; checking it against the live mail servers is the next step before the first real sweep.
In motionContext, memory, and integrations
Text the brain in
Texting a thought to the household number can land it in the right person's inbox like any other capture: the webhook proves Twilio, checks the owned destination, resolves a verified mobile number to that signed-in person's account, answers provider retries exactly once, and files the text with the same protected write every capture gets. The number, production credentials, saved webhook, per-account linking, database table, settings, documentation, and tests are in place. One account has started linking but has not yet sent the exact one-time LINK message, so no production capture has passed end to end. The settings checker now refreshes that pending state without flashing the panel. A verified real text into each account is still needed before this is complete; A2P registration stays separate unless e-f later sends replies.