Changelog

Everything that changes in Orbitly. Newest first.

  1. v0.5.0

    Landing redesign + Telegram bot UX

    #

    What's new

    Landing

    • Full redesign of /ru and /en. 10 sections: Hero, HowItWorks (3 steps), SocialProof, Features, UseCases, WhyUs, PricingTeaser, FAQ, FinalCTA, Footer.
    • New positioning: "Voice-first AI assistant for your whole life" (instead of generic "productivity tool").
    • Tone unified to informal across all landing strings.

    Telegram bot

    • "My Data" now covers all 9 orbits: tasks, notes, journal, habits, events, goals, finance, health, bookmarks.
    • Rich "My Day": time-aware greeting + events + top tasks + habits + recent health + today's spending.
    • Quick-log shortcuts under "My Day": 💧 +Glass of water (instant), 🔄 Refresh.
    • /help rewritten with workflow examples (voice/photo/forward/url/commands).
    • New /language command — switch interface between RU/EN.

    Language sync

    • users.language is now the single source of truth: web, JWT, Telegram bot.
    • Login redirect uses stored locale (was Accept-Language header).
    • Profile change → DB + session update + URL navigation in one call.

    Fixed

    • HowItWorks grid overlap (grid-template-areas missing for desktop).
    • Header transparent overlay — text from sections was bleeding through. Replaced with solid color.
    • Features bento layout (5 cards on a 4×2 grid → empty cells, uneven heights). Replaced with equal auto-fit grid.
    • Pricing page for anonymous visitors now uses marketing shell (Header+Footer), not app sidebar.
  2. v0.4.0

    Telegram bot QA round

    #

    What's new

    Telegram bot — fast paths

    • Regex extractors for obvious commands: "slept 7 hours", "weight 75", "8000 steps", "mood 7". Bypass LLM entirely, save AI quota, fire in <100ms.
    • Journal pre-route: "Записать в дневник: ...", "Dear diary", "End of day" — instant write without brain LLM.
    • Brain Undo button — after a voice message that creates tasks/notes/events, an "↶ Undo" button appears (5-minute TTL).

    DB

    • health_entries.value migrated from INTEGER to REAL — decimal support (sleep 7.5h, weight 75.3kg).

    Fixed

    • HMR double-registration of Telegraf handlers — root cause of duplicated tasks. Each dev hot-reload was appending another full set of bot.on('message', ...) subscriptions on top of the old ones. Fixed via globalThis singleton (same pattern as the DB client).
    • /start greeting: linked users now get "Welcome back, Pavel!" instead of "link your account" instructions.
    • /help: dropped dead commands /morning and /ask (never registered).
    • Health prompt in stt-service: stronger few-shot examples + hard rule "keyword + number → ALWAYS log_metric, never unknown".
    • Brain prompt in stt-service: anti-context-leak rules — context is an RO snapshot, not an actions source. No more "Lose 2kg" / "Work at Yandex" zombies from user memory.
  3. v0.3.0

    Profile re-architect + Memory facts

    #

    What's new

    Profile (4 tabs)

    • Full re-architect of /app/profile: 4 tabs (Profile, Activity, AI, Settings) instead of one long list.
    • Sticky tab nav under the header — stays visible when scrolling.
    • "Timezone" field is now a select from ~22 IANA TZs (was a freeform input).
    • "Username" shows placeholder "Not set" instead of literal @—.

    AI Memory

    • Confidence filter for trait facts: AI-extracted traits below 80% confidence are hidden (previously everything was shown, including false-positive "Hasn't completed tasks for weeks" at 75%).
    • Inline editing for preference facts (✎ → ✓/✕, Enter/Escape).
    • confidenceStars(): 60→1⭐, 90+→5⭐ as a visual indicator.

    Achievements → "Milestones"

    • The old 7/19 grid felt demotivating. Now showing only unlocked + "N more ahead — keep going" label.
    • 4 tiers: bronze/silver/gold/diamond with a colored dot.

    Fixed

    • Pro mismatch in admin: dashboard and table counted differently (one with expiry, one without).
    • Mood chips in insights rendered Journal.moodGood ×3 literally — i18n namespace mismatch.
    • Goal cards invisible (var(--card) undefined) — added shadcn alias in globals.scss.
    • DB connection accumulation in dev (43 idle connections after a few hours) — HMR-safe globalThis singleton for postgres-js client.
  4. v0.2.0

    Insights, rich dashboard, admin analytics

    #

    What's new

    Insights (Stage 1-4)

    • Cross-orbit weekly digest on /app/insights: AI-generated week recap from pre-computed facts (sleep avg, tasks completed, mood distribution, finance summary).
    • 4 stages: facts engine → narrative → predictive nudges → memory facts auto-extract.
    • On top — JS correlations (Pearson, mean comparison) — pure stats, no AI.

    Dashboard (Stages 0-3)

    • Time-aware greeting by name, AI suggestions from memory facts, Today hero with events/tasks/habits/health, sparklines on overview cards (7-day daily counts), AI Chat shortcut.
    • Daily roundup card — time-aware (evening or activity).

    Admin (Stage A+B)

    • Analytics sections: signups time-series, DAU/WAU/MAU, top AI users, conversion funnel.
    • Confirm dialogs for destructive actions.

    Fixed

    • Mood chips in insights used wrong i18n namespace.
    • Orbit badges in sidebar showed raw EN keys (JOURNAL/FINANCE) — added ORBIT_I18N_KEYS map.
    • Tags page right panel empty — fixed with sticky positioning.
    • Habits heatmap invisible on light theme — replaced hardcoded rgba with theme-aware var.
  5. v0.1.0

    First release

    #

    What's inside

    First public release of Orbitly — a Personal OS for one user.

    Modules

    • Time — tasks, calendar, events
    • Wealth — finance, budgets, categories, accounts
    • Vitality — sleep, weight, steps, mood, energy, water
    • Mind — notes, journal, AI Chat
    • Identity — goals, habits, achievements

    Telegram bot

    • Voice message → STT → AI parsing → DB record
    • Receipt photo → OCR → transaction
    • Forward message → note
    • URL → bookmark with preview

    Web app

    • Dashboard with overview of all modules
    • Sidebar navigation across orbits
    • Dedicated page per module

    Stack

    • Next.js 16 (App Router) + React 19
    • Drizzle 0.45 + Postgres
    • NextAuth credentials
    • Yandex SpeechKit for STT
    • Yandex GPT for intent classification
    • next-intl for i18n (RU + EN)