CardShark v3.8
Release Notes: Post-PR #39 Update
This release brings significant enhancements to Context Management, a major Media Infrastructure Refactor, and several UI/UX Polishments (lol wtf? Polishments? What? Haha) to improve the immersion and stability of the CardShark experience.
✨ New Features
🚀 Advanced Context Compression Modes: Users can now choose how CardShark manages long conversations to stay within token limits:
No Compression: Keep full history until limits are reached.
Chat Only: Automatically summarizes old messages to preserve recent context.
Chat + Dialogue: Compresses both chat history and example dialogues.
Aggressive: Maximizes space by compacting everything except the core system prompt.
🖼️ Inline Lore Images: When lore keys are triggered during a conversation, associated images now display directly within the chat bubbles, enhancing visual storytelling.
🧮 Token Estimation: Improved token count estimation (~4 characters per token) to provide more accurate feedback on context usage.
🛠️ Improvements & Refinement
🎴 Compact Side Navigation: Replaced the large image preview with a sleek Selected Character Chip, freeing up vertical space for better readability of token usage and navigation.
🎭 Enhanced Animations: Refined transition animations for the SideNav and SidePanels for a more responsive and premium feel.
🤖 AI Stability:
Appended {characterName} to the end of outgoing payloads to help LLMs maintain character perspective and avoid "speaking for the user."
Successfully removed the {{char}}: prefix from AI responses for cleaner dialogue.
📜 Streamlined Logging: Reduced terminal verbosity during startup and character synchronization to focus on critical information.
🐛 Bug Fixes
📸 Image Upload Routing: Fixed the "Add Image" functionality to correctly utilize the specialized PNGUpload component, ensuring metadata is handled properly.
🧹 AI Cleanup: Resolved issues where the model would sometimes include its own name or identifier as a prefix in responses.
🏗️ Technical Core Updates
🏗️ Unified ImageStorageService:
Consolidated all media handling (Lore, Backgrounds, World Assets) into a single, robust service.
Eliminated duplicate path resolution logic across the backend.
📦 PyInstaller Compatibility: Standardized path resolution using get_application_base_path(), ensuring consistent behavior between development and bundled executable environments.
🗑️ Safe Deletions: Integrated send2trash for all image deletions, providing a safer alternative to permanent file removal.
🔧 Dependency Management: Updated build.py with the latest hidden imports to ensure standalone builds remain functional after core service refactors.
Planned Functionality:
- Switch to pixi.js library for all card combat and provide a robust "more gamey" experience
- "Write for me" functionality to impersonate user. (Including continuing on from what user has written if anything)