Skip to content

Releases: ForgottenHistory/Cupid-AI

V1.4.1 - Much needed bug fixes

Choose a tag to compare

@ForgottenHistory ForgottenHistory released this 08 Jun 10:25

[1.4.1] - 2026-06-08

Added

  • Character Goal Tracking: Decision LLM now generates a short-form private goal (what the character wants from the conversation) on the same triggers as mood, injected into the chat prompt and editable via the Mood & Goal modal
  • Hide Images from Carousel: Toggle individual images out of the chat image carousel with an eye button in the gallery
  • Reset Swipes Debug Command: window.resetSwipes() console helper clears today's swipe count for testing

Changed

  • Dark Mode Only: Removed the light mode toggle; the app is now always dark
  • Removed Left-on-Read Follow-ups: Retired the unused left-on-read proactive feature
  • Longer Login: JWT tokens now effectively never expire, so no more periodic re-login
  • Description Editor: Auto-growing textarea that fits the content, with Save/Cancel buttons at the top of the Overview tab
  • Freer Swipe Cards: Discover cards lift and rotate outside the frame while dragging instead of being clipped to a square

Fixed

  • Character mood and goal not resetting on 30+ minute time gaps
  • Chat sidebar not re-sorting or refreshing when new messages arrive
  • Duplicate background mood system messages when the mood was unchanged
  • Memory not being wiped on user-initiated unmatch or by the clear-all button
  • Sidebar avatar not updating after a portrait change
  • Chat image carousel not syncing when swiping image messages
  • Proactive consecutive count getting stuck (empty conversations and trailing system/time-gap messages) and falsely flagging characters as capped
  • Stale Library search results when typing during an in-flight load
  • Deleting a TIME GAP marker leaving an orphaned message on reload

V1.4.0 - Activities & Attributes

Choose a tag to compare

@ForgottenHistory ForgottenHistory released this 13 Mar 19:27

[1.4.0] - 2026-03-13

Added

Activities System

  • Icebreaker: Character asks a personality-driven question with 10 randomized styles, answer to start a timed chat
  • Two Truths & A Lie: Character generates 3 statements (2 truths, 1 lie), guess the lie then chat about it
  • This or That: 7 rounds of rapid-fire preference pairs, then timed chat discussing choices
  • Would You Rather: 5 rounds of fun dilemma scenarios, then timed chat about decisions
  • Activity Game Context Persistence: Game results (answers, choices, guesses) now stored on conversations and injected into every chat prompt, so the AI remembers what happened during the game
  • Activity-Specific Chat Prompts: Each activity mode gets a unique chat context instead of generic "random chat"
  • Activities Hub: Designed with cards for all activity types
  • Activities Settings Page: Configure character selection options (include away/busy characters)
  • Character First Message Chance: Configurable probability for who messages first in activities

Random Chat & Matching

  • Random Chat Feature: Timed chat with random unmatched characters, option to match after timer
  • Blind Date Mode: Hidden identity chat where only first initial is shown
  • Proactive First Message: Characters can send the first message in activity chats

Character Attributes

  • Configurable Attribute System: Replaced Big Five personality with fully customizable character attributes
  • Attribute-Driven Behavior: Character attributes included in schedule generation and chat prompts

LLM Configuration

  • Proactive LLM Config: Independent LLM settings for proactive message generation
  • Random Model Pool: Configure a pool of random models for any LLM type
  • Double Text Chance: Configurable probability for characters to send follow-up messages

Chat Improvements

  • Image Gallery: View all images in a conversation with navigation
  • Early Reactions: Characters can react to messages earlier in the conversation
  • Typing Indicator Alignment: Improved positioning of typing indicators

Fixed

  • Avatar rotation and gallery not updating when messages with images are deleted
  • Asterisk words being incorrectly removed (e.g., "I really like that" losing the word)
  • Stale model selector in LLM settings after switching providers
  • Daily auto-match enable not working
  • Smiley/emoji stripping in messages
  • Image rotation not showing images from older paginated messages
  • Message pagination being reset during conversation
  • Autoscroll reliability improvements
  • Double text when response already has multiple messages
  • Several performance optimizations

V1.3.0 - Even more QoL

Choose a tag to compare

@ForgottenHistory ForgottenHistory released this 07 Jan 16:21

[1.3.0] - 2025-01-07

Added

Prompts System

  • Prompt Presets: Save, load, and delete prompt configurations as named presets
  • Current Preset Indicator: Shows which preset is active with unsaved changes warning
  • Export/Import: Download prompts as JSON file or import from file
  • Character Wizard Prompts: New configurable prompts for wizard (description, appearance, image tags)
  • Schedule Day Prompt: Generate single day schedules with dedicated prompt

Chat Features

  • Horizontal Images as Background: Display landscape images as chat background instead of sidebar
  • Library Card from Chat: Access character's library card directly from chat menu
  • Character State Modal: Click state pill in chat to manually edit character state

LLM Settings

  • Reasoning Effort: Configure reasoning effort for OpenRouter models (low/medium/high)
  • Retry on Invalid Response: Toggle automatic retry when AI returns invalid/empty response
  • Request Timeout: Configure timeout duration for all LLM types
  • Use Name Primer: Toggle character name priming at end of prompts

Behavior Settings

  • Unlimited Proactive Messages: Set daily limit to 0 for unlimited proactive messages
  • Dynamic Character States: States loaded from config file for easy customization

Discover Page

  • Persistent Daily Randomization: Same random order maintained throughout the day
  • Swipe Limit UI: Visual indicator for remaining daily swipes

Changed

  • Refactored aiService.js into focused single-responsibility services
  • Refactored backend routes (chat.js, users.js) into modular structure
  • Refactored decision engine and proactive message services into smaller modules
  • Refactored ChatHeader component with cleaner organization
  • Character mood & state now included in decision context for smarter AI choices
  • Improved proactive messaging with better decision context
  • Improved character state handling and image tag generation
  • Character wizard now uses configurable prompts instead of hardcoded ones

Fixed

  • Library card modal not updating after generating content when accessed from chat
  • Schedule parsing broken by chat-specific timestamp stripping
  • Horizontal background controls positioning and visibility state
  • Randomize orientation setting not being applied to generated images
  • Thinking model output leaking into responses (reasoning tags now stripped)
  • Sidebar not updating when character schedule is changed
  • Library sorting for newly imported characters
  • Library sorting by newest/oldest not working correctly
  • Revert button not showing in Overview tab
  • Auto-unmatch setting being ignored (added safeguards)
  • Message counting for character state updates
  • Image message editing now shows image during edit mode
  • Advanced settings panel for NanoGPT provider
  • Standalone timestamps in AI responses now stripped

V1.2.0 - Character States

Choose a tag to compare

@ForgottenHistory ForgottenHistory released this 12 Dec 21:09

V1.2.0 - Character States - 2025-12-12

Added

Character Mood & State System

  • Character Mood: Dynamic emotional state displayed as purple pill in chat header (e.g., "feeling flirty and playful")
  • Clickable Mood UI: Click mood pill to manually edit character's mood
  • Character States: Special behavior states (drunk, showering, etc.) shown as orange pill
  • State Instructions: Character states inject special behavior instructions into chat prompts
  • Mood/state triggers on TIME GAP or every 25 messages via Decision LLM
  • Background mood updates with 25-message cooldown

AI Providers & Settings

  • NanoGPT Provider: Third AI provider option alongside OpenRouter and Featherless
  • Extended Sampling Parameters: OpenRouter models now support top_k, repetition_penalty, min_p when model supports them
  • Include Full Schedule: New behavior setting to include complete weekly schedule in chat prompts
  • Proactive When Online: Configure probability of proactive messages when character is online (0-100%)

Storage & Multi-Device

  • Backend-Only Storage: All character data now stored in backend SQLite (no more IndexedDB)
  • Multi-Device Support: Login from any browser/device and all characters are available
  • Per-User Config Files: Each user has isolated prompt and tag library configurations

Library & Settings

  • Sort Dropdown: Sort characters by Newest, Oldest, or Random in Library
  • SD Resolution Settings: Configure width/height for Stable Diffusion image generation
  • Account Deletion: Delete your account and all associated data from Danger Zone in Profile

Changed

  • Renamed "Content LLM" to "Chat LLM" in UI for clarity
  • Proactive message generation now uses Metadata LLM (better for complex reasoning tasks)
  • Character service refactored to use API calls instead of local storage
  • Simplified ImageTab and CharacterProfile components (removed dual-save logic)

Fixed

  • Character Rename: Now properly updates name in prompts and syncs to backend
  • Empty Response Detection: Detect and retry when AI returns just "Character Name:" with no content
  • RP Action Stripping: Strip asterisk roleplay actions (system prompt forbids this formatting)
  • Schedule in Prompts: Full schedule now placed correctly after system prompt
  • Delete-From Messages: Now removes correct message instead of all messages with same timestamp
  • Typing Indicator: Added server-side pending request tracking to prevent stuck indicators
  • Memory Degradation: Apply degradation once per compaction session, add safeguards against memory loss
  • UI Lock on No Response: Frontend now unlocks when character decides not to engage (30% chance)
  • User Created Date: Migration fixes users with invalid created_at timestamp

Removed

  • IndexedDB storage (frontend/src/services/db.js, characterStorage.js)
  • Character sync utilities (no longer needed with backend-only storage)

V1.1.0 - QoL features

Choose a tag to compare

@ForgottenHistory ForgottenHistory released this 30 Nov 18:35

[1.1.0] - 2025-11-30

Added

Library Improvements

  • Search: Search characters by name and tags with debounced input
  • Pagination: 24 items per page (grid), 50 items per page (compact)
  • Compact View: Toggle between grid and list views
  • Lazy Loading: Images only load when scrolled into view

Sidebar Improvements

  • Search: Click "Matches" title to search matches by name
  • Thumbnails: Auto-generated thumbnails for faster sidebar loading

Chat Features

  • Message Swipes: Navigate between message variants with arrow buttons
  • Image Regeneration: Regenerate image messages with new SD generation
  • Conversation Export: Export chat history as JSON from header menu
  • Persistent UI States: Avatar visibility and banner collapsed states saved
  • TIME GAP Combining: Consecutive time gap markers merged into single marker

Character System

  • V1 Card Support: Import JanitorAI and other V1 format character cards
  • Character-Specific Image Prompts: Override main/negative prompts per character
  • Post Instructions: Custom instructions for character social media posts

Memory System

  • Memory Management UI: Add, edit, delete memories from chat header
  • Remove All: Bulk delete all memories with confirmation
  • Memory in Prompts: Memories now included in all AI prompts
  • Memory Degradation: Configurable point-based memory decay system
  • User Name in Memories: Display actual username instead of "User"

LLM Configuration

  • Metadata LLM: Fourth LLM type for character generation (profiles, schedules, personality)
  • Token Counter: View token usage in Overview tab

Settings

  • Max Matches Limit: Set maximum number of active matches (0-50)
  • Thought Frequency: Configure how often characters share internal thoughts

Changed

  • Proactive message opener now randomly selects one variety instead of listing all
  • Proactive check interval range extended to 5 minutes - 5 hours
  • Message edit window now matches bubble size exactly
  • Character profile layout changed to side-by-side

Fixed

  • Multi-line message ordering (messages with same timestamp now sort by ID)
  • Duplicate AI responses now rejected and trigger retry
  • Incomplete think tags detected and rejected
  • LLM settings validation for OpenRouter provider
  • Max matches limit now only counts characters with active conversations
  • Duplicate TIME GAP markers prevented
  • EM DASH replacement now properly uppercases next letter
  • Character-specific image prompt overrides now properly applied
  • Proactive message timing enforces interval between consecutive messages

Removed

  • Deprecated maxEmojisPerMessage setting
  • Left-on-read settings (will reimplement later)

Cupid AI v1.0.0 - Release

Choose a tag to compare

@ForgottenHistory ForgottenHistory released this 01 Nov 12:34

Cupid AI v1.0.0 - Initial Release

Initial release of Cupid AI

Highlights

Triple LLM Architecture

  • Content LLM: Generates character responses and conversations
  • Decision LLM: Makes behavioral decisions (reactions, moods, unmatch, voice/image)
  • Image Tag LLM: Generates Danbooru tags for Stable Diffusion

AI Characters

  • Import character cards from PNG v2 format
  • Character Wizard for AI-generated characters (4-step process)
  • Dating profiles with interests, fun facts, and preferences
  • Weekly schedules with online/away/busy/offline patterns
  • Big Five (OCEAN) personality traits that influence behavior
  • Tinder-style swipe interface (like/pass with undo)

Realistic Chat System

  • Proactive Messaging: Characters initiate conversations after time gaps
  • Schedule-Based Engagement: Characters respond differently based on their current status
  • Memory System: AI extracts and stores up to 100 important facts per character (configurable 0-100)
  • Conversation Compacting: Automatic AI summarization to manage context window efficiently
  • Mood Effects: Dynamic chat backgrounds and message reactions based on conversation tone

Image Generation

  • Stable Diffusion WebUI integration
  • Context-aware image generation during conversations
  • Smart AI decisions (can send, tease, or refuse requests)

Extensive Customization

  • Behavior settings (proactive messaging, memory, compaction, swipe limits)
  • LLM configuration (3 independent systems with separate providers)
  • Stable Diffusion settings (sampling, CFG, resolution, ADetailer)
  • AI prompt customization (system prompts, decision engine, memory extraction)
  • Tag library management for image generation

Tech Stack

Frontend: React + Vite, Tailwind CSS, IndexedDB, Socket.IO
Backend: Node.js + Express, SQLite, JWT Authentication, Socket.IO
External Services: OpenRouter / Featherless (LLM providers), Stable Diffusion WebUI (optional)

Getting Started

Prerequisites

  • Node.js 18+

One LLM provider:

Optional:

  • Stable Diffusion WebUI (for image generation)

Documentation

  • README.md: Complete feature documentation
  • CHANGELOG.md: Version history
  • backend/.env.example: Environment configuration guide

License

MIT License - see LICENSE file for details