Releases
v0.16.0
Compare
Sorry, something went wrong.
No results found
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 )
You can’t perform that action at this time.