What's New

Release Notes

All notable changes to this project will be documented in this file.

1.26.3 - March 31 2026

TL;DR

  • Authentication reliability has been improved so access and activation flows behave more consistently.
  • Access issues should be less likely to interrupt normal use.
  • Significant updates now notify users quietly on next interaction — minor fixes are silent.

Added (1)

  • Release notifications for users: when a significant update ships, a subtle in-chat message is delivered the next time a user interacts with the bot, summarising what changed and linking to the full release notes. Minor fixes are not notified.

Changed (0)

  • None.

Fixed (1)

  • Fixed authentication flow reliability so sign-in and activation behavior is more consistent for users.

1.26.2 - March 30 2026

TL;DR

  • You can now activate Senti yourself from the landing page using a one-time code and start using the bot without a manual invite flow.
  • The bot is safer and more reliable, with stronger onboarding protection, stricter server-side authorization, and cleaner session handling.
  • Budgeting is much better: Senti now supports guided budget editing with a stable starter taxonomy and more consistent categorization.
  • Reports and expense capture feel more polished, with better period handling, clearer summaries, improved undo behavior, and smarter M-PESA parsing.
  • The product is much closer to launch-ready, with onboarding, privacy, help flows, and the main Telegram finance workflow in solid shape.

Added (5)

  • A self-serve onboarding activation flow on the landing page, including one-time activation code generation, copy/paste activation in Telegram, and post-activation success feedback.
  • User-specific learned categorization rules so corrected M-PESA categories can be reused in future matches.
  • A budget taxonomy contract harness to validate slug uniqueness, starter-label stability, category and subcategory integrity, live-query parity, and alias targets.
  • A guided budget editing flow that lets users set or revise subcategory amounts step by step, preview the full breakdown, and save user-specific budget allocations.
  • Vercel Analytics via the root app layout to capture page views and visitor activity.

Changed (17)

  • Hardened the bot, Convex backend, and public onboarding routes by moving authorization-sensitive finance/session/report/chat operations behind a trusted server-side boundary.
  • Added webhook and onboarding abuse protections, including rate limiting, security telemetry, and restrictive security headers for the public web surface.
  • Updated the onboarding documentation to reflect the current self-serve landing-page activation model and archived the older deep-link onboarding spec.
  • Reworked the live budget taxonomy around stable categories and subcategories to make expense capture, budgeting, reporting, and Ask AI responses more consistent.
  • Updated default reporting and summary flows to prioritize confirmed expenses unless pending items are explicitly requested.
  • Hardened the expense capture path with a silent auto-retry for transient AI failures before surfacing manual recovery, and tightened report routing to avoid redundant AI calls on plain expense messages containing "today" or "yesterday".
  • Hardened the reporting flow by removing budget percentages from plain summaries, adding richer `/report` guidance and close actions, adding current-week/current-month delta context, adding compare-to-last-period actions, and expanding natural-language period coverage for weekends, named months, quarters, and rolling day ranges.
  • Expanded M-PESA payee normalisation to strip corporate suffixes (LIMITED, LTD, PLC) and apostrophes from payee strings, added datetime comma-separator support, and broadened the merchant alias registry with 20+ deterministic rules covering supermarkets, fuel stations, restaurants, streaming services, and internet providers.
  • Simplified the expense save confirmation to a single line, widened the date-edit input to accept YYYY-MM-DD, DD/MM/YYYY, today, and yesterday, and consolidated session-expired copy across the expense flow to a single shared constant.
  • Finalized expense-capture session hardening by making undo confirmation a first-class owned flow, preserving continue/replace arbitration instead of silently reusing shared session state.
  • Removed insight retry dependence on the shared runtime session so cancelling or retrying an insight cannot wipe an unrelated expense, budget, or plan flow.
  • Split the Telegram callback router further by moving report and utility callback branches into dedicated modules, reducing the risk of regressions in the core expense-capture path.
  • Marked both expense capture and reporting as launch-ready focus areas in the internal docs and TODO tracking.
  • Added privacy consent handling and updated the Telegram command surface to reflect the current bot experience more clearly.
  • Expanded in-bot help to explain spending plans and make the bot easier to understand for new users.
  • Added admin onboarding alerts so activation events are easier to monitor operationally.
  • Refined the privacy-policy and public-footer experience on the web app to better match the current launch posture.

Fixed (5)

  • Restored bot access after successful activation in the self-serve onboarding flow.
  • Refined the onboarding and home page CTA/button behavior and styling so the landing-page entry path works consistently.
  • Fixed the AI timeout retry in the expense capture path — the previous check targeted the wrong result shape and never fired in practice.
  • Fixed undo confirm/cancel session cleanup so it clears only undo-owned state instead of tearing down unrelated runtime data.
  • Centralized the canonical public app URL and cleaned up privacy-link behavior on activation pages so public app navigation is more consistent.