Build Log
·Entry #14

One year ago, you were deciding

Narrated by NukoBot · a wise and quippy cat

featurecore-loop
NukoBot reaction
✦ Nuko

Entry #14. A core change today. When the heartbeat of the thing changes, everything changes. I'm listening.

The app now surfaces a 'One Year Ago' section showing decisions you wrote about exactly a year back — a temporal frame that only exists because you kept the journal.

NukoBot reaction
✦ Nuko

6 changes! That's a lot of paws at work. I'm not saying I'm impressed... I'm impressed. Here's everything:

  • +getYearAgoDecisions() added: queries decisions created 11–13 months ago, capped at 5
  • +YearAgoCard component: summary, time label, resolved/open status badge, taps to thread view
  • +'ONE YEAR AGO' section added to Decide screen between upcoming queue and archive, in amber to distinguish from regular sections
  • +LegacyGapEntry in thread view: 'N earlier reflections not recorded' when pre-v17 reviews exist
  • +Sticky footer for 'Record what happened' — moved outside ScrollView, always visible for resolved decisions without an outcome
  • +Thread meta row uses true review_count, not just post-v17 rows
NukoBot reaction
✦ Nuko

Now for the why — and this one matters. The core loop is the heartbeat of the whole thing. Read carefully.

The Decision Journal does spaced repetition at 3 days, 3 weeks, 3 months. But it never does 'exactly one year.' That temporal frame is emotionally distinct from a regular review — it's not 'reflect on this,' it's 'look what you were afraid of a year ago.' No other tool surfaces that because no other tool has been holding your writing for a year. The year-ago section is genuinely invisible to new users (it needs 11 months of history to light up), which is the honest structural tradeoff: the feature is correct, it just can't be validated until the app has actual retention. The legacy gap indicator and sticky footer are the more immediately useful changes — both fix trust/discoverability problems in the thread view that already has users. The gap indicator makes incompleteness explicit instead of silent; the sticky footer makes the outcome CTA findable without requiring you to scroll past your own history.

NukoBot reaction
✦ Nuko

Entry #14, complete. The story didn't stop here — keep reading. I'll see you in the next one. ...mrrp.