Skip to content

Latest commit

 

History

History
503 lines (387 loc) · 31.2 KB

File metadata and controls

503 lines (387 loc) · 31.2 KB

CHANGELOG

Repositioning as Personal Knowledge Training Platform with multi-language documentation and enhanced metadata, #v.0.1.5 - 2026.04.15

Added

  • Complete Russian translation of documentation (DocsContentRu.md) with 550+ lines
  • Complete Spanish translation of documentation (DocsContentEs.md) with 550+ lines
  • Multi-language support for docs page (en, ru, es) via locale-aware content loading
  • "Read Documentation" button to landing page PromoCTASection with BookOpen icon
  • Translation keys for docs button in all three locales (en, ru, es)
  • Technology stack keywords to package.json (Next.js, React, TypeScript, Prisma, PostgreSQL, Vercel, LangChain, Cloudflare AI, Tailwind CSS, Radix UI)

Changed

  • Complete repositioning from "Memory Training Application" to "Personal Knowledge Training Platform"
  • Updated README.md with new value proposition: "Turn your own knowledge into repeatable trainings"
  • Rewrote DocsContentEn.md from 200 to 500+ lines with comprehensive creation workflow documentation
  • Enhanced documentation structure with Getting Started guide, data hierarchy explanation, and detailed feature descriptions
  • Updated all project metadata (package.json, env.ts, locale files) to reflect new positioning
  • Reformatted documentation examples using pseudographic tree symbols for better visual clarity
  • Updated Pages.RootTitle, RootDescription, and RootKeywords in all three locales (en, ru, es)
  • Improved FAQ section with 15 creation-focused questions covering duplicate detection, privacy, and AI generation

Fixed

  • Removed outdated Redis reference from technology stack documentation
  • Corrected product naming consistency: "MindStack" instead of "Mind Stack Trainer"
  • Aligned all public-facing messaging with approved positioning document
  • Fixed documentation example formatting to match hierarchy diagram style

Documentation

  • Added comprehensive "Getting Started" guide with step-by-step instructions
  • Documented data hierarchy: Categories → Topics → Questions → Answers
  • Explained key features: HeadlessEditor, duplicate detection (beta), generation review loop, privacy control
  • Added user roles and permissions breakdown (Guest, Basic, Pro, Premium)
  • Documented authentication options (OAuth: Google, GitHub, Yandex; OTP: Email, Telegram)
  • Added payment systems documentation (Stripe for international, YooMoney for Russia)
  • Expanded troubleshooting guide with common issues and solutions
  • Added privacy and security information detailing what is/isn't stored
  • Created completion summaries for Steps 6 and 7 in project-description directory

Technical

  • Updated DocsPage.tsx to support dynamic locale-based content imports

  • Added docsAliasRoute import to PromoCTASection component

  • Maintained consistent variable placeholders across all translations ({siteTitle}, {contactEmail}, etc.)

  • Preserved markdown structure and code block formatting in all translations

  • Ensured all route links remain functional across language versions

  • Issue #83: Reposition project as personal knowledge training platform

  • Compare versions

Implemented headless editor system for batch editing Q&A with AI generation improvements, #v.0.1.4 - 2026.04.14

Added

  • Headless editor system for batch editing questions and answers with drag-n-drop support
  • New AnswersEditor and QuestionsEditor components with unified state management
  • AI generation status badge and detailed information display on welcome page
  • Multilingual stemmer support for text comparison (WebAssembly modules)
  • Cosmos UI librarian with default test fixtures
  • Language selection dialog component with 'any' and 'current' language options
  • Add new item buttons (topics, questions, answers) with success notifications
  • Vercel analytics integration

Changed

  • Refactored generate questions/answers pages from modals to dedicated pages
  • Updated all react-query hooks to properly support unmounts and request aborts
  • Improved language filtering: defaults to current locale, supports 'any' language option
  • Enhanced category filtering with improved 'ANY' status handling
  • Optimized logging: important data first, non-blocking async calls

Fixed

  • URL filter parameters creation/parsing (resolved ?langCode=-&langCustom=undefined bug)
  • User avatar icon display on mobile panel
  • Topic count in categories info (now counts only public topics)
  • Scrollbar visibility in add question/answer modals
  • Not-found pages server-client props handling

Technical

  • Added useHeadlessEditorState custom hook for editor state management

  • Implemented text comparison with multilingual stemming

  • Added drag-n-drop sorting with visual feedback for reordered items

  • Extracted BusySplash component for loading states

  • Created MediumCategoriesListByCategoryIds for enhanced category display

  • Issue #80: Refactor questions (answers) adding procedure

  • Compare versions

Minor changes: Enhanced UI, filtering, and content management features - 2026.02.10

  • Updated logging to display important data first
  • Added a new 'Settings' menu to the top navigation
  • Implemented default topic filtering using the current locale language
  • Added a special dash ("-") filter value to search across all languages
  • Improved the handling of the 'ANY' status for category filters
  • Added "Add new" buttons to the topics, questions, and answers management pages
  • Optimized various translation strings
  • Added a final confirmation modal splash for the add topic process
  • Added a button to navigate directly to a newly created topic
  • Refactored the layout of the topic properties page (ViewTopicContentSummary)
  • Added the AddCategoryBlock to the ManageCategoriesList
  • Updated the adaptive layout of the AIGenerationsStatusInfo component
  • Extracted a reusable BusySplash waiting component
  • Added a more functional MediumCategoriesListByCategoryIds block (with icons and links)

Minor changes - 2026.02.08

  • Issue #77: Fixed a sticky mobile layout issue: now it's truly adaptive and leaving a room for a dynamic virtual keyboard with a interactiveWidget: 'resizes-content' viewport parameter. Updated styles for sign-in form. Added logging of user sign-in event.

Changes

  • Created TextSimilarity class for text preprocessing and comparison
  • Implemented compareNGrams (histogram intersection) and compareTokens (cosine similarity) algorithms
  • Added comprehensive test suite and benchmark scripts
  • Added detailed README with performance analysis and usage guidelines

Core Features

  • Two algorithms: n-gram histogram intersection and cosine similarity.
  • Multi-language support: Optimized and tested for English, Russian, and Spanish.
  • Fully supports languages: de, en, es, fr, it, nl, ru. The resulting list depends on the intersection of the languages supported by stemmers (ar, da, nl, en, fi, fr, de, el, hu, it, pt, ro, ru, es, sw, ta, tr) and stopwords (de, en, es, fr, it, nl, ru) modules.
  • Performance optimized: Benchmarks show 0.1-3ms for n-gram and 0.2-8ms for token comparisons.
  • Configurable: Adjustable n-gram sizes and preprocessing options.

For full details on algorithms, performance characteristics, and usage recommendations, see the README at src/packages/text-similarity/README.md.

  • Updated telegram logger to send debugging data as attached JSON files.

  • Updated recent topics getter on the landing page

  • Updated layout for landing page categories and topics lists

  • Fixed layouts and updated navigation buttons

  • Updated landing page cards with icons style

  • Updated some translations

  • Added language name/code translations (via LanguageName)

  • Updated sort logic for getRecentTopics server action: records with existing locale go first

  • Minor changes: warning instead of error on unmounted react-query in useAvailableCategories

  • Increased brightness effect for gradient buttons (brightness-120) in tailwind.config.ts

  • Compare versions

Minor fixes, #v.0.1.2 - 2026.02.04

  • Issue #67: Added complementary and triadic colors to theme. Added extra colors to the landing page, navbar & footer, some other components.

  • Updated AvailableCategoriesListItem layout.

  • Added recent topics landing page section.

  • Compare versions

Minor fixes - 2026.02.03

  • Added fixes for the malformed Cloudflare response (with "```json" tags and some preceding text).
  • Fixed an issue with blocked scroll (and touch) events in the nested Popover radix component (eg, if it's been wrapped in a popup dialog, like CategorySelect in the AddTopicModal -- preventing default events on the PopoverContent node), fixed (in a weird way) a bug with stuck categories loader in the useAvailableCategories react-query hook (with several workaround -- stale mount hook (withStableMount) and extra state and edge cases monitoring in the useAvailableCategories itself.
  • Fixed possible AI-generated data issues by adding the jsonrepair library to handle missed closing square brackets in JSON
  • Resolved a NextJS routing error by correcting the route from ${topicRoutePath}/add to ${topicRoutePath}/questions/add
  • Added constants for GigaChat model selection (GigaChat, GigaChat-Pro, GigaChat-Max)
  • Updated the project license to MIT
  • Reorganized AI server actions and type modules for better maintainability
  • Enhanced the cacheable AI provider generator (getAiClient) to support a temperature parameter
  • Introduced clientType and temperature parameters to AI generation forms for more precise control:
    • Added to TextQueryForm
    • Added to GenerateQuestionsForm
    • Added to GenerateAnswersForm
  • Set a default temperature value via environment variables
  • Removed prop-drilled handlers (handleDeleteQuestion, handleEditQuestion, handleAddQuestion, handleEditAnswers) from topics, questions, and answers manage list pages
  • Updated actions and layouts in management list pages for improved UX

Minor related issues:

  • Fixed other possible ai generated data issues (missed closing square brackets in json).

  • Fixed an error with too strict expectations for generated answers (categoryIds and isCorrect flags became optional).

  • Added a function to send logs to the telegram bot (logData).

  • Added demo data with problematic generation results (questions-query-data-02).

  • Updated questions and answers count to generate constants.

  • Added an alternative way to start nextjs dev server from vscode launch (direct nodejs command).

  • Added splitting large telegram messages.

  • Compare versions

  • Updated app logo images
  • Minor changes include: updated broken translations, used unified rich text translation data on pricingchoosepage, fixed remaining text-overflow issues
  • Updated prices calculation on the PricingChoosePage
  • Added dynamic redirect for /prices/choose (without tariff id) to /prices
  • Updated base price (proSubscriptionMonthlyBasePrice) and price multipliers for derived currencies (RUB, TGSTAR)

Issued v.0.1.0, the first public version.

  • Implements comprehensive updates to the landing page with new splash images, translated content, and UI improvements
  • Created getRecentCategories server action to retrieve public categories sorted by popularity and update time
  • Created getAvailableCategories server action with corresponding tests
  • Updated LandingPageContext with proper React Query invalidation on category operations
  • Renamed components for better clarity: InfoScreenAppInfoScreen, InfoVisualBlockAppInfoVisualBlock
  • Refactored CSS classes to avoid Tailwind conflicts: text-contentcontent-text, text-truncatecontent-truncate
  • Added translations for landing blocks, FAQ section, and app components
  • Updated layout and content on Welcome and About pages
  • Added category display in the CategoriesSection sorted by popularity
  • Improved landing page styles and images
  • Fixed various tests and React Query invalidation logic

See also:

  • This implements the Available Workouts feature allowing users to view and filter a list of trainings (UserTopicWorkout model)
  • Refactored the workout feature to use IndexedDB instead of Local Storage for local data persistence
  • Created a server action (getAvailableWorkouts.ts) to retrieve workout data from the server
  • Implemented a React Query hook (useAvailableWorkouts) for fetching an infinite list of workouts, with support for offline data retrieval from IndexedDB
  • Built a filter component (AvailableWorkoutsFilters) with state persistence in Local Storage, mirroring the pattern used in category and topic filters
  • Added a new page to display the list of available workouts
  • Integrated the feature with the application's sidebar and navigation
  • Added necessary internationalization texts for the new filters
  • Fixed various styling, layout, and logic issues across the workout components
  • Implemented comprehensive category management system with multi-language support, image handling, and topic integration
  • Added Category database model with Prisma migration, using createdBy/updatedBy fields instead of direct user relation
  • Implemented server actions, type definitions, constants, and comprehensive tests for all category operations
  • Integrated Vercel Blob storage and Sharp dependency for category image upload, processing, and management
  • Created full CRUD interface for categories with management pages, modals, and public "Available categories" page
  • Added multi-language translation support for category names and descriptions
  • Established many-to-many relationship between Topics and Categories
  • Implemented filter, sort, and search functionality for categories and topics
  • Added category suggestion feature with rate-limiting logic
  • Refactored form components including shared ImageUpload with drag-and-drop support
  • Fixed parallel/intercepting route handling for modals with skeleton loading states
  • Updated numerous translations and fixed layout/styling issues
  • Added and updated extensive test suites
  • Implements core paid subscriptions system with multi-currency pricing and payment processing
  • Added Currency Prisma model with migration for storing exchange rates
  • Created dynamic price calculation logic supporting multiple currencies with React Query hooks (useCurrencyRatios)
  • Implemented payment infrastructure with UserPayment database model and server actions
  • Integrated Yookassa payments using @a2seven/yoo-checkout library and custom hooks
  • Integrated Stripe payments with environment constants and checkout flow
  • Built complete user subscription flow: pricing plans page, payment method selection, success/cancel pages
  • Added subscription upgrade/downgrade logic with price difference calculations
  • Updated user model with subscriptionPeriod and subscriptionStartedAt fields
  • Enhanced auth flows with redirect URL propagation and "Delete Account" feature
  • Applied extensive routing reorganization with Next.js route aliases
  • Added static "Contacts" page and updated "Offer" (oferta) page
  • Updated navbar adaptive styles and numerous translations
  • Replaced all remaining instances of getTranslations() with getT() from centralized i@/i18n module
  • Added substantial volume of translations for numerous domains and UI components
  • Refactored content loading and rendering:
    • Converted all MDX pages to dynamically loaded Markdown-based pages, removing MDX support
    • Implemented server-side content loading helpers with React Query caching
    • Refactored Docs, Privacy, Cookies, and Terms pages to use Static Site Generation (SSG)
  • Updated infrastructure and tooling:
    • Replaced external json-sort-cli with local script (src/packages/sort-json) for JSON sorting
    • Updated Prisma from version 6 to 7
    • Bumped application version to 0.0.4
  • Performed code and style refactoring across various components and pages
  • Fixed various bugs and minor issues including layout problems and deprecated routes
  • Added MDX support to enable rich content pages
  • Created legal pages: /privacy, /terms, and /cookies with multi-language translations
  • Added basic /documentation page with template content
  • Implemented cookie consent popup with local storage cleansing on sign-in
  • Updated config constants for privacy and contacts settings
  • Implemented shared variables for consistent content management
  • Local storage data is now cleansed on successful sign-in
  • Created a project landing page based on the Evil Martians devtool landing page template
  • Added comprehensive filtering functionality for both available topics and management pages
  • Created AvailableTopicsFilters component with react-hook-form's FormProvider
  • Implemented filter persistence with default values from settings and reset to defaults option
  • Added filter context management and proper react query data clearing on filters update
  • Enhanced ThreeStateField component (later replaced with Select components) for better value handling
  • Extended filtering to management pages (ManageTopicsListCard) with dark table header
  • Improved navigation styles and added adaptive FormSection groups in filters
  • Added sort by parameter and extracted text strings to TopicsFiltersTexts module
  • Updated related pages including Questions and Answers management with consistent table styles
  • Fixed data editing issues for question and answer pages and added user retrieving hook
  • Enhanced UI with better form field styling, user interaction feedback, and welcome page improvements
  • Introduces comprehensive improvements to workout system, UI/UX, and topic management
  • Workout System Enhancements: Automatic workout start, finish button, stats handling, next question prefetching
  • UI/UX Improvements: Layout fixes, color scheme updates, progress component enhancements, navigation improvements
  • Authentication & Error Handling: Enhanced error processing, new error types, cache cleaning on logout
  • Topic Management: Public/private toggle, bulk operations, access control improvements
  • Internationalization & Settings: Locale fixes, select component improvements, Telegram integration fixes
  • Structural Changes: New landing page, layout optimizations, resource cleanup

MindStack Brand has been Launched.

This release introduces the new identity and important backend improvements:

  • Rebranded as "MindStack" with all new logos and favicons
  • Updated navbar and sign-in form layouts to match the new branding
  • Database migration consolidation: Replaced multiple legacy migrations with a single baseline migration
  • Streamlined migration history for better maintainability
  • Version bump to 0.0.3

Impact Areas:

  • All visual assets (logos, favicons)
  • Authentication UI flows
  • Database schema management
  • Brand consistency across the application
  • New Features:
    • AI Generation System: Toggleable "Generated" columns, AI badges, generation tracking, and usage limits
    • Workout Statistics: Comprehensive stats and historical data with expanded/short forms
    • Enhanced Workout Flow: Refactored lifecycle with React Query for improved performance
    • Translation Debug Mode: Added 'xx' locale to display translation IDs directly in UI
  • Improvements:
    • Upgraded user grade system (MEMBER→BASIC, PREMIUM→PRO, added PREMIUM)
    • Updated UI components: headers, gradients, modals, and splash art
    • Fixed workout starting logic and question presentation
    • Improved error handling and syntax highlighting for markdown
  • Cleanup:
    • Removed unused code and redundant components
    • Refactored constants and hooks for better maintainability

The changes prepare the foundation for AI-powered features while modernizing the workout experience with better state management and user interface.

  • Added comprehensive AI generation features to the platform
  • Created admin panel pages for TG bot control and AI test queries
  • Implemented server functions, routines, queries, and modal UI for question/answer generation
  • Added UserGrade column field and converted role to UserRole enum
  • Limited question and answer generation for regular users based on grade and role fields
  • Debug output temporarily retained for AI generation functionality
  • Multiple refactors including adaptive layouts, react query mutations, table rows selection, and mass deleting
  • Updated layout and react query usage on multiple pages: EditTopicPage, ViewTopic, ManageTopicQuestionsPage, and more
  • Fixed behavior of 'Add topic/question/answer' modals (deactivate when entity already added) and added breadcrumbs
  • Added react query parent entities invalidations for add/delete operations and useMutation approaches for modals
  • Added actions for deleting multiple entities (topics, questions, answers) with tests
  • Added settings field jumpToNewEntities and updated settings type, edit page, and modal behavior
  • Added invalidation of entities after editing
  • Added ability to mass delete answers on multiple management pages
  • Updated style and code according to the next-ai-helper-chat playground project
  • Split workout page into two pieces: workout review and workout go
  • Comprehensive migration to React Query for data fetching and state management
  • Replaced context providers with React Query hooks (e.g., useAvailableTopicsByScope, useAvailableQuestions)
  • Implemented infinite query for paginated data loading (available topics, questions, answers)
  • Added Zod schemas for data validation and type safety
  • Refactored API routes and server actions for better separation of concerns
  • Created new hooks for data invalidation and cache management
  • Replaced direct server function calls with API route fetching where appropriate
  • Fixed various bugs in data fetching, error handling, and component rendering
  • Cleaned up unused code and refactored components for better maintainability
  • Improved error logging and debugging capabilities with standardized patterns
  • Added comprehensive workout system: components, context, API routes, and logic
  • Updated Prisma data models to support workout functionality
  • Added workout question page with markdown support
  • Created workout pages and API routes for topic training
  • Implemented summary sections for topic, question, and answer management pages
  • Used zod-prisma-types provider for Prisma ORM integration
  • Added component to resume/start/restart workout sessions
  • Finished core topic workout logic implementation
  • Fixed layout bugs in WelcomeScreen gradient splash
  • Updated workout topic UI with skeletons, placeholders, and improved buttons
  • Fixed modals for adding/deleting topics, questions, and answers
  • Added workout update logic when questions are created or removed
  • Implemented useGoBack() hook and standardized workout routes
  • Created statistics calculation system with updated data models
  • Added brief statistics display in the WorkoutTopicControl component
  • Updated inner state management in WorkoutQuestionContainer to rely more on WorkoutContext data
  • Refactored useWorkout state management: divided methods into data-updating and data saving/loading functions
  • Temporarily kept debug logging for state management refactoring
  • Created new AvailableTopics page for public topic display
  • Fixed toolbar ref issues on settings page and updated available topics list appearance
  • Refactored topic cards & headers view/actions, added basic topic card for manage topic page
  • Updated sidebar code with state memoizing and fixed dashboard sidebar issues
  • Added incremental (partial/parameterized) data loading for available topics
  • Added welcome page gradient and updated visual size/behavior
  • Defined all theme colors as CSS variables
  • Updated top menu and made minor utility refactoring
  • Fixed add entities (topics, questions, answers) modals issues
  • Added predefined Tailwind colors to theme colors list
  • Changed data models to use string IDs for topics, questions, and answers
  • Fixed server function for topic update
  • Updated page layouts: moved ManageTopicsPageWrapper and PageHeader to pages instead of layouts
  • Added generateMetadata functions for proper window titles and metadata
  • Added client hooks to update window titles from modals
  • Implemented comprehensive answer management features with modal handling
  • Added cascading breadcrumbs for topic and question management panels
  • Added custom events for count changes (on add/delete/reload of answers, questions, topics)
  • Created ViewAnswerCard component for answer display
  • Resolved modal opening and server data action issues
  • Created core settings page layout with form and data management
  • Added SettingsContext for state management with local and server settings initialization
  • Implemented edit settings page with form validation and data persistence
  • Fixed settings form & context non-memoizing issues for better performance
  • Added user settings database schema and server-side save/load functionality
  • Created shared language selector component from refactored topic's language selector modal
  • Added comprehensive color theme support with theme, theme color, and application language settings
  • Implemented toast notifications for settings loading/saving status
  • Replaced hardcoded primary colors with dynamic theme-based colors across the application
  • Added early theme color update using server-side settings and beforeInteractive scripts
  • Updated all ghost button styles from ghostOnPrimary to ghostOnTheme for consistency
  • Implemented comprehensive questions managing subsystem
  • Added functionality to add and edit questions for topics
  • Created necessary UI components and backend logic for question management
  • Established the foundation for question-answer relationships in the system
  • Refactored manage topic page components (modals and cards) to be independent and reusable
  • Added cached user feature for 'all pages' mode in topics list: displays topic's owner information
  • Enabled admin functionality to edit all topics across the platform
  • Improved component reusability for topic management interfaces
  • Fixed processing of user roles, added admin indications, routes for all topics page and other.
  • Created and connected google and yandex oauth applications.
  • Created full my topics functional: list, add, delte, edit, language selector, using parallel and intercepting routes.
  • Create basic layout, updated project configuration, added my topics add & delete features (via parallel & intercepting route modals).

See also:

v.0.0.0 - 2025.07.05

  • Created initial project.