Blog · release
Latch 0.11.0
The coach. The Handler does not only want you locked; it wants you to be the best pup you can be, and that takes consistent practice. Habits are now judged, rewarded and — when you slack — called out.
- One judgement, three consumers.
habits/coach.pycomputes a verdict per habit (fresh · consistent · on track · slipping · slacking · idle), and the Handler's line, the events in the log and the Insight observations all read the same verdicts. The sentence on the card is the sentence in the log. - Judged against the rhythm you declared. A weekly habit by weeks and the days left in this one (three-a-week done once on a Tuesday is on track); a daily one by the gap since the last log; an every-N-days one by that gap against N. 🔴 A habit in its first week with fewer than three logs is fresh and nothing is said about it.
- Consistency is rewarded: a Consistency rewarded event (🏆) when a weekly target is hit
and at every seventh day of a daily streak — XP (
habits.streak_xp, 15) and minutes off the clock while locked (habits.streak_minutes, 10). Once per period. - Slacking earns a word: A word from your Handler (😤), once per lapse, words by default;
habits.slack_penalty_minutes(0) makes it minutes on the clock too, withheld on a recovery day with the reason in the event, exactly as health penalties are. - 🔴 Only the last two weeks are ever reviewed, so a feed that arrives with a year of history mints at most one reward and no scolding for 2025.
- The Handler reads it: once the day's duties are done its line turns to the work; unlocked,
slacking is still called out (Not locked — but you're still my pup). New On your habits
card on the Handler page with every verdict.
/api/v1/handler/todaycarries the verdicts as facts and strips every line of prose, including the new ones. - Insight: per habit, a four-week trend, locked-vs-unlocked frequency, and headspace/mood on days it was done — under the same floors as the rest of the block.
- Verdict chips on the habits board; the dashboard badge reads slacking when it is. 568 tests.