An / Changelog

What changed, when, and why.

Including the things we got wrong. Especially those.

Updated weekly No marketing copy. No 'and more!' 12 entries since we started keeping this
Filter

Memory Center: bulk forget

You can now select multiple memory rows and forget them in one action. We added this because three beta users in a row asked for it after a job change — they wanted to scrub a former employer cleanly, not 47 confirmations.

Selection state is held only in the active session — closing the app clears it. There is no "forget all" button on purpose; that's the kind of action that should be deliberate.

Briefing arrives 14 minutes early, not 7

Originally we sent the morning briefing 7 minutes before your wake target. Logs showed people were already on their phones when it arrived — it landed mid-scroll and got buried. Pushed to 14 minutes. The brief now reliably waits for you, not the other way around.

14 is not arbitrary — it's the median time between alarm dismissal and first app open, across 1,200 sessions. Below that, you miss it. Above 20 it feels stale.

Removed the streak counter

Two weeks ago we shipped a 7-day briefing-read streak. We thought it would feel like quiet encouragement. Two days in, a beta tester wrote: "I read the briefing in the bathroom at 2am because I didn't want to lose my streak." That's the opposite of what An is supposed to do.

An is not supposed to compete for your attention. We knew this principle and shipped against it anyway, because streaks are 'engagement.' Streaks are out. They are not coming back.

If you had a streak, it's gone. Sorry — and also, you're welcome.

"Mom" no longer auto-elevated above your boss

Reported by 4 users in 3 days. The priority engine had a heuristic that boosted contacts named "Mom," "Mum," "妈" or "妈妈" by 0.3 — a leftover from an early experiment we forgot to remove. For some users this meant a casual text from mom outranked a Slack from their CEO. Embarrassing. Removed.

If you actually want mom to rank above your boss, that's what the Priority People list is for — set it explicitly.

Evening review

A short read at 9:48pm. Three things: what got done, what didn't, what tomorrow asks of you. We resisted shipping this for months — most apps that nag you about your day are joyless. The version that works does only one thing and ends without asking you to feel productive.

Fixed: briefings sometimes referred to events from yesterday as "today"

now() - 24h." data-zh="原因:生成简报的时间窗查询使用设备墙钟 · 但生成可能发生在第二天午夜前 14 分钟。所以 “昨天” 的事在技术上还落在 now() - 24h 范围内。">Cause: the time-window query that builds the briefing used the device's wall clock at generation time, but generation could happen up to 14 minutes before midnight on the next day. So an event from "yesterday" technically still fell inside now() - 24h.

Fix: window now anchored to the day boundary of the briefing's intended delivery time, not generation time. Sounds obvious in retrospect. Most bugs do.

Pulled the "voice nudge" feature one week after shipping it

An briefly had a feature that would say your name out loud (in your earbuds) when something high-priority arrived. We thought it would feel like a friend tapping your shoulder. It didn't — it felt like an app suddenly knowing your name and using it. Several testers described the same shiver.

Lesson: features that work in a friend can feel like surveillance in software. The bar for software using your name out loud is much higher than we thought. Pulled. Not coming back without a much better reason.

Memory Center

The biggest single ship of the beta: every fact An has remembered about you, viewable, editable, deletable. We built this before we built the priority engine on purpose — if we couldn't show you what An knows, we shouldn't get to use it.

Reduced briefing length: target 240 words, ceiling 320

Old target was 380. Read-completion was 51%. New target is 240, current read-completion is 87%. The shorter brief is doing more work because more of it is being read. Less is more, but only because we measured.

Calendar conflicts now show all overlapping events, not just two

If three meetings overlapped, An previously surfaced two of them and silently dropped the third. The dropped one was usually the lowest-priority — but "usually" is not the same as "always." Fixed.

Mac app: native AppKit, lives in the menu bar

Native AppKit, shared core with iOS, lives quietly in the menu bar. We didn't ship Electron because the whole product is about not consuming your attention; an app that takes seconds to open consumes attention.

First internal build

60 invited testers. The product, but barely. Briefings worked, priority engine was a stub, Memory Center didn't exist yet. We shipped what was real and labeled the rest as "coming." That label has gotten shorter every release since.

Want this in your reader? RSS / JSON feed coming with v1.0. Email us about a feature →