Skip to content

v0.16.0

Choose a tag to compare

@vasilyoshev vasilyoshev released this 27 Aug 17:28
a6372ef

0.16.0 (2026-08-27)

Features

  • act: ACT overview gets real headings and three lifetime stats (#1378) (#1404) (b183f35)
  • act: converge the Also try chips onto SharedToolsRow (#1216) (#1487) (6bdb351)
  • act: defuse a thought becomes one column with a labelled rail (#1380) (#1412) (1630d30)
  • act: fold the alignment check-in onto the values screen (#1379) (#1407) (f85ef90)
  • act: one shared defusion log row for home and the full list (#1388) (#1462) (ae53575)
  • act: the committed action's target date is picked, not typed (#1303) (#1410) (5faea2f)
  • app: every visible modal reports into one overlay-count registry (#1473) (#1477) (2ae87b2)
  • app: the update popup replaces the banner (#1475) (#1479) (801eadc)
  • app: the update trigger hoists to the shell, with per-platform timing and suppression (#1474) (#1478) (c5ef519)
  • audio: Round B gets an audition, a zero-lead gate, and a record in the repo (#1210) (#1393) (d409774)
  • audio: the size budget gets an instrument, and each voice its own file (#1210) (#1405) (522c63b)
  • auth: a guest signing in over data gets one calm warning (#1444) (#1469) (2f99159)
  • auth: a native cold start with no session becomes a guest (#1440) (#1454) (168e63d)
  • auth: a returning cleaned-up device gets one calm fresh-start notice (#1450) (#1468) (708a7e8)
  • auth: email and password convert the guest in place (#1443) (#1463) (307a439)
  • auth: Google and Apple convert the guest by linking, never by sign-in (#1445) (#1471) (bdb6a54)
  • auth: quiet settings card and wizard line invite the guest to register (#1446) (#1465) (eb13707)
  • auth: sign-out and the verify banner do not exist for a guest (#1442) (#1464) (3bea2cb)
  • auth: the landing Start-now CTA creates a guest and enters the app (#1441) (#1466) (3448eec)
  • cbt: a thought record rates the same belief twice (#1376) (#1398) (0ce8dbb)
  • cbt: shared-tool chips open the tool, not a guide that closes back (#1192) (36ece46)
  • cbt: speaking to yourself, on the Self-care log (#1283) (#1306) (2e0a3a1)
  • cbt: the overview takes the shared section grammar and one history door (#1386) (#1459) (05f58de)
  • cbt: the record detail shows only the rows you filled (#1384) (#1457) (0cc9922)
  • cbt: the thought record becomes one scrolling column (#1381) (#1455) (176233b)
  • cbt: three header stats and this-month thinking-pattern bars on the overview (#1387) (#1461) (86b8032)
  • cbt: widen Be's kicker to Wellbeing and rewrite its description (#1285) (#1322) (944dd51)
  • db: dormant guests are purged after 12 months of inactivity (#1449) (#1460) (a5ba4f9)
  • db: factor account deletion into a shared purge helper (#1448) (#1456) (37ce2c9)
  • errors: errors raised inside a native modal go inline (#1335) (#1365) (1e3e735)
  • escape: shared components record where they were reached from (#1265) (#1403) (9a7e89e)
  • escape: the first-run gate's Escape wears the word (#1258) (#1418) (ce58aa4)
  • escape: the focus sessions carry an Escape of their own (#1256) (#1422) (5c21b50)
  • escape: the six (auth) screens get an Escape (#1254) (#1420) (5dd0532)
  • escape: the three chrome-less screens reach chrome (#1255) (#1423) (0e8960a)
  • escape: therapy modules navigate through the Origin helper (#1266) (#1406) (d94faca)
  • escape: tools and policy pages navigate through the Origin helper (#1267) (#1424) (20b4552)
  • feedback: mirror submissions to the private #feedback-inbox Discord channel (#1489) (#1490) (0af334f)
  • goals: pick a guiding value when setting a goal (#1289) (#1343) (a9feba6)
  • goals: show a goal's value on its detail view and list row (#1291) (#1354) (472be22)
  • goals: store an encrypted value key on a goal (#1287) (#1329) (f991ef7)
  • home: arrange chips carry the module they come from (#1246) (#1275) (8b85d0a)
  • i18n: fold the JSON-indent repair into the Weblate pass (#1105) (#1498) (183bed1)
  • i18n: script the Weblate component pass and pin its config (#1105) (#1394) (404b194)
  • inset: the layered inset model replaces the flat banner inset (#1339) (#1366) (07b1e5e)
  • lint: a bare router.push is banned outside the Origin helper (#1269) (#1436) (ad3964d)
  • lint: a raw Modal import is now an error outside the frozen five (#1260) (#1426) (237c3b6)
  • meditation: the bells can be turned down, and off (#1188) (#1244) (6bce0b0)
  • nav: every full-screen modal gets a pinned Escape row (#1252) (#1323) (ecaf6cf)
  • nav: leaving Reminders returns you to CBT (#1261) (#1350) (4aa4b94)
  • nav: one shared Show all door, and the strings that baked the arrow in (#1375) (#1402) (ddacb3b)
  • nav: the Escape becomes a slot of its own, present on every screen (#1250) (#1294) (9977812)
  • nav: the Escape says where it goes (#1253) (#1341) (bc0a36e)
  • pickers: a typed HH:MM control replaces the browser time input (#1299) (#1400) (f4b302f)
  • pickers: check-in picker on the shared sheet, localized, draft-until-Done (#1298) (#1324) (cef8ee4)
  • pickers: extract a shared PickerSheet and ThemedCalendar (#1311) (6c63428)
  • pickers: the calendar grid becomes legible to a screen reader (#1301) (#1408) (332fb7d)
  • pickers: the calendar grid becomes operable by keyboard (#1305) (#1434) (7f320c9)
  • pickers: the web check-in picker shows date and time in one view (#1302) (#1419) (67a5dfc)
  • scripts: beds render natively looping, and the fold becomes the seam-gate fallback (#1359) (#1361) (8b8b0e9)
  • scripts: probe what loop: true actually returns (#1347) (#1357) (cdb3e63)
  • scripts: render grades every take and re-rolls the silent ones (#1320) (#1331) (fbbbd29)
  • scripts: the audio post-processor and a calibrated seam gate (#1296) (#1307) (b4d73da)
  • scripts: the audition — hear a candidate before picking it (#1346) (#1349) (ac9a5c9)
  • scripts: the ElevenLabs render pass for the audio replacement set (#1159) (#1214) (8b3607c)
  • scripts: the voice render path, raw-PCM handling, and a pre-flight guard (#1210, #1316) (#1317) (9c31211)
  • seed: the ACT practice logs on the demo account (#1284) (#1330) (a630306)
  • seed: the ACT values, bulls-eye history and committed actions (#1286) (#1345) (a70ff09)
  • seed: the CBT structured work on the demo account (#1282) (#1325) (04ea762)
  • seed: the CBT thinking spine on the demo account (#1281) (#1318) (ef9da70)
  • seed: two CBT/ACT-backed routines and the seed close-out docs (#1290) (#1356) (02036f3)
  • seed: UTC day helper, derived offsets, and the CBT/ACT teardown contract (#1280) (#1308) (8fea069)
  • support: a guest can ask for a reply - optional reply-to on feedback (#1447) (#1467) (fab3afe)
  • toast: the store becomes a queue with a per-tone policy (#1336) (#1351) (d5c7b11)
  • toast: the toast gets its X, its accent bar and its fade (#1337) (#1358) (1c99f15)
  • toast: the toast moves to the bottom and steps over the furniture (#1340) (#1392) (ae87a8e)
  • toast: the toast rides above iOS modals (#1338) (#1360) (8af399d)

Bug Fixes

  • a11y: give every loading and not-found branch a way out (#1328) (#1496) (03e097d)
  • a11y: the popover's web entrance respects reduce motion (#1326) (#1416) (a44d17a)
  • act: the Also try row leaves singularity to the layout (#1309) (1f26bf8)
  • act: the before/after pair stops claiming the number "stayed at" (#1367) (#1397) (39c546c)
  • cbt: three delete confirmations show their failure inside the dialog (#1364) (#1417) (36af62b)
  • cbt: Up from a saved thought record no longer lands on a 404 (#1315) (#1491) (bddc50a)
  • ci: cache keys must hash patches/, or patch-package never runs (#1411) (5559fdd)
  • ci: the node_modules cache key must see patches/, or a new patch never applies (#1409) (5bb3076)
  • e2e: await the toast settling instead of sampling one frame of it (#1396) (#1399) (344ec84)
  • escape: each modal keeps exactly one close affordance (#1257) (#1425) (03cc684)
  • i18n: Bulgarian ACT kicker goes Latin, and two dead category keys go (#1208) (#1413) (a5b9c18)
  • i18n: crisis-guidance link has one Bulgarian name matching its page title (#1102) (fe84f15)
  • i18n: five drawn CBT strings move to British spelling, their keys do not (#1377) (#1415) (eeee9fd)
  • i18n: rename act's four bare-plural keys to canonical _one (#1101) (#1121) (c5fe303)
  • i18n: sweep Bulgarian terminology drift onto the #1096 glossary and conventions (#1062) (#1123) (ead85dd)
  • meditation: the Today card remembers both of its controls (#1190) (#1237) (c81567f)
  • nav: every route declares whether it is single-instance (#1313) (efd40b0)
  • nav: the auth screens stop double-mounting each other (#1355) (6f2e6ae)
  • nav: the shared-tool chips stop double-mounting their tools (#1279) (8fd83e9)
  • nav: the trail names what Up hops to, and stops swallowing segments (#1251) (#1312) (507562f)
  • scripts: fit Sound Effects prompts under the 450-character API cap (#1159) (#1241) (c7b146d)
  • scripts: rewrite the thirteen prompts positively, and re-concept two (#1316) (#1321) (bc720a0)
  • scripts: the guided voice's spoken intro (#1264) (#1277) (780fbdc)
  • scripts: the ocean bed separates by content, not by distance (#1262) (#1272) (5269931)
  • ui: the popover's TW4 classes get their TW3 spelling, and a gate (#1327) (#1414) (eed7a53)
  • web: a press during a modal's slide-in hits a shield, never the moving control (#1108) (#1115) (ae1ca81)