You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
settings: 14a's type scale, column rhythm and phone step-down (#1830) (#1897) (bce3f13)
settings: a row that leaves the app, a run with no card, and a chip that is one of a set (#1725) (#1729) (6848c8c)
settings: the Appearance group gets an eyebrow, through a shared SettingsGroupLabel (#1828) (#1864) (f72afe6)
settings: the guest identity row says something, from the header's shared expressions (#1829) (#1868) (76f5fd4)
settings: the Light/Dark/System control, as one segmented component shared with the menu (#1827) (#1843) (91dee23)
settings: the two row descriptions 14a asks for, and the four it does not (#1831) (#1909) (696fcb8)
support: seven cards become one column - callout, rows, lists, project, policies, delete (#1726) (#1731) (07ff8ac)
support: the feedback form gets a category for "this helped" (#1614) (#1646) (8d2f71e)
support: the form - radio chips, a counter, a reply-to line, and a Send that returns (#1727) (#1732) (b163aae)
support: the subreddit joins the ways out of the support page (#2121) (11d1c63)
support: the YouTube channel joins the footer, and the project run rather than the inbox (#2132) (91040dc)
ui: all seven policy routes take the 672px column (#2148) (#2157) (ce5b0c4)
ui: Section's eyebrow takes a heading level, defaulting to 3 (#2142) (#2155) (42584b2)
user-menu: the palette collapses to one row and opens as a pane (#1774) (#1792) (7b8324f)
Bug Fixes
a11y: /security stops skipping a heading level (#2133) (#2141) (f04f292)
a11y: CBT route-screen links activate on Enter on web - self-care's sleep and gratitude doors, new goal's values link (#1736) (#1740) (9706daf)
a11y: shared link components activate on Enter on web - Show all, shared tools, breadcrumb, donate, colophon (#1734) (#1738) (96af133)
a11y: the guest heading outline is flat, and a guest is warned before typing (#1801, #1865) (#2037) (eda2a91)
a11y: tool-screen links activate on Enter on web - habits, meditation, journal, mood (#1735) (#1739) (272493f)
act: the archives page each finished status, say when a later page fails, and paint details from the cache the lists fill (#2247) (23e6111)
act: the spec describes the programme that shipped, and the graduation states the record and stops (#2011, #2013) (#2038) (a35ce00)
act: two ACT list hooks shared one cache entry across limits (#1540) (4caf47d)
analytics: the module table reports usage, and never reads enabled_modules (#1672) (#1687) (41577a3)
audio: English-only again, and the two voices were transposed (#1580) (#1585) (f4335ee)
audio: the seam gate measures the master, and its head/tail half becomes a report (#1571) (#1596) (5b850e0)
audio: the shipped bytes get a ceiling, and .m4a joins the binary list (#1607) (#1608) (#1642) (a7dace5)
audio: voice-check must ask the Library, not just the account (#1579) (#1583) (f1605a5)
auth: a paused preferences read is an unknown verdict, and its timeout is reportable (#2271) (6921256)
auth: an unknown age verdict fails closed, with a retry (#2200) (#2224) (b4e2bf2)
auth: Denmark's floor follows the Danish statute, at 15 (#1921) (#1937) (8211d6d)
auth: one predicate decides what a guest is, and three surfaces stop lying in the stale-flag window (#1896) (#2047) (d6d661c)
auth: the age gate reaches 0.17.0-first accounts, and never strands crisis (#2227, #2229, #2228) (#2235) (29cc8c2)
auth: the age gate stops trusting a failure count TanStack resets (#2274) (353c817)
auth: the guest content notice joins the shared predicate, and the flag stops being passable (#1896) (#2049) (047d0b6)
auth: the under-floor block erases only the account it judged, and only on confirmation (#2195, #2193) (#2223) (3363954)
auth: the under-floor exit stops promising work it no longer does (#2232) (#2234) (19f0159)
bughunt: seven defects in the fixes landed today (#2272) (6ea4e25)
cbt: completion copy ends done, and the practice boundary is written and guarded (#1664) (#1666) (#1667) (#1673) (15e05c5)
cbt: the conditions table is softened for a 13+ readership (#1867) (#2042) (7299bcd)
cbt: the recovery-plan hint stops naming the punishment it withholds (#1342) (#1587) (2ee7fe0)
cbt: the weekly review's reflection prompt stops rotating by the week-start date (#1689) (#1690) (43cb808)
consent: a recorded policy version never moves backwards (#2217) (#2226) (f4376b7)
copy: safety, legal-boundary and policy copy name the current category noun (#1957, #1772) (#2036) (102fdad)
coverage: restore the ratchet floor #2114 lowered on a false rationale (#2140) (04d2501)
dbt: the coping plan refuses an empty list before the database does, names every candidate chip, and keeps a draft through a failed or paused refetch (#2245) (badad75)
dbt: the coping-plan builder waits for the stored plan before it seeds (#2204) (#2222) (4d0a9a7)
dbt: the coping-plan editor says so when there is no network to read over (#2231) (#2233) (23f8763)
dbt: the record screens save what they show, skip what they say they skip, and climb the whole ladder (#2248) (41ffc43)
docs: the banned compound leaves contributor prose, and the guard follows it there (#1644) (#1653) (b5bcbc3)
doors: a hand-off never overwrites an open draft, and never becomes one (#2269) (fbaa358)
errors: a paused read is neither an empty history nor an offline one (#2276) (1a59261)
errors: an online focus-pause keeps its Retry, and the invariant says so (#2277) (4b3cfdc)
handoff: a cross-module hand-off lives for one navigation, and four surfaces stop blanking held rows (#2275) (08ae13c)
header: the account actions move above the preference sections (#1862) (#2035) (7528fa9)
home: the arrange row's longest Bulgarian name gets a second line (#1592) (#1593) (cf758cc)
home: the longest Bulgarian tool name gets a second line (#1590) (#1591) (811ca4e)
home: the module mark gets a column wide enough for it, and the wrap gets a test that can see it (#2059) (#2069) (5681d72)
i18n: bg addressed the reader formally in eight strings (#2163) (#2166) (6dca608)
i18n: the house style stops being about one word (#1639) (#1652) (29a8ba9)
i18n: the market category word stops being spelled two ways (#1651) (#1654) (d3d91c6)
meditation: stage-1 mastery describes the default, not the perfection (#1670) (#1681) (f2dccb6)
meditation: the Reflect card stops advertising that it does not grade you (#1588) (#1595) (988fbdc)
notifications: the longest Bulgarian reminder name gets a second line (#1248) (#1589) (1d76301)
onboarding: panel 3 calls the tools what panel 1 just called them (#1775) (#1796) (f2ecfa0)