Releases: BP602/KickTalk
2.0.2
KickTalk v2.0.2 Release Notes
🚨 Critical Hotfix for v2.0.1
🐛 Bug Fixes & Improvements
- Fixed telemetry configuration in packaged builds: Resolved issue where OTEL (OpenTelemetry) environment variables were not properly embedded in production AppImages, causing telemetry to fail when running outside the project directory
- Improved GitHub Actions workflow: Combined build and packaging steps to ensure consistent environment variable availability during the build process
This release ensures that telemetry and monitoring work correctly in production builds distributed via GitHub releases, resolving the "Missing endpoint or headers" error that prevented proper application monitoring.
🚀 Major Features from v2.0.0 (Now with Fixed Telemetry)
🚀 Major New Features
- 🎉 Support Events System: Complete overhaul of event handling with comprehensive subscription, donation, and gift tracking - bringing the full Kick experience directly into your chat
- 📺 Streamlink Integration: External player integration with quality selection, path configuration, and availability checking for enhanced viewing
- 🎭 Enhanced Emote Support: Subscriber emotes now show in every chatroom, Unified emote logic with shared hooks for better performance and consistency across all chatrooms
- ⚙️ Granular Chat Controls: Per-event visibility toggles allowing users to customize exactly which events they want to see
🔧 Technical Improvements
- Updated environment variable handling: Replaced
process.envwithimport.meta.envforMAIN_VITE_*prefixed variables to properly embed build-time configuration in packaged applications - Enhanced fallback chain: Maintained backward compatibility by preserving fallback from build-time embedded variables to runtime environment variables
- Workflow optimization: Streamlined CI/CD pipeline to reduce potential environment variable gaps between build and packaging phases
This release ensures that telemetry and monitoring work correctly in production builds distributed via GitHub releases, resolving the "Missing endpoint or headers" error that prevented proper application monitoring.
Full Changelog: v2.0.1...v2.0.2
2.0.1
KickTalk v2.0.1 Release Notes
🚨 Critical Hotfix for v2.0.0
🐛 Bug Fixes
- Fixed empty Kick emotes panel in production builds - Resolves issue where the Kick emotes panel would appear empty when opened in production builds, while 7TV emotes continued to work normally
- Added automatic emote loading when missing for active chatrooms to ensure proper functionality across all build environments
This patch release addresses a timing issue in production builds where Kick emote data wasn't being loaded when the emote panel was first opened. The fix maintains all existing functionality including subscriber emotes from multiple channels.
🚀 Major Features from v2.0.0 (Now with Fixed Binaries)
🚀 Major New Features
- 🎉 Support Events System: Complete overhaul of event handling with comprehensive subscription, donation, and gift tracking - bringing the full Kick experience directly into your chat
- 📺 Streamlink Integration: External player integration with quality selection, path configuration, and availability checking for enhanced viewing
- 🎭 Enhanced Emote Support: Subscriber emotes now show in every chatroom, Unified emote logic with shared hooks for better performance and consistency across all chatrooms
- ⚙️ Granular Chat Controls: Per-event visibility toggles allowing users to customize exactly which events they want to see
Full Changelog: v2.0.0...v2.0.1
2.0.0
KickTalk v2.0.0 Release Notes
🚀 Major New Features
- 🎉 Support Events System: Complete overhaul of event handling with comprehensive subscription, donation, and gift tracking - bringing the full Kick experience directly into your chat
- 📺 Streamlink Integration: External player integration with quality selection, path configuration, and availability checking for enhanced viewing
- 🎭 Enhanced Emote Support: Subscriber emotes now show in every chatrrom, Unified emote logic with shared hooks for better performance and consistency across all chatrooms
- ⚙️ Granular Chat Controls: Per-event visibility toggles allowing users to customize exactly which events they want to see
🐛 Bug Fixes & Improvements
- Fixed UI issue with arrow direction in ReplyMessage component
- Prevented duplicate subscription events with unified deduplication
- Improved Kick gift formatting and tracking
- Enhanced chat mode detection for better event handling
- Fixed Streamlink terminal window visibility on Windows
- Improved Streamlink command verification and PATH detection
🔧 Technical Improvements
- Added WebSocket dependency and event collection scripts for better data analysis
- Replaced custom SVG assets with Phosphor React icon library for consistency
- Implemented quality fallback system for Streamlink launches
- Enhanced error handling and user feedback systems
- Improved reactive UI updates for settings changes
📊 Issues Resolved
Upstream Repository (KickTalkOrg/KickTalk) - CLOSED ✅
- #56 Kick added KICKs (tips) into the chat
- #54 feat: Add Streamlink integration for external stream playback
Origin Repository (BP602/KickTalk) - CLOSED ✅
- #36 Replace SVG assets with Phosphor React icon library
- #25 feat: Add Streamlink integration for external stream playback
- #14 @ mention notifications not working - missing username detection logic
- #12 Reply messages show '@' instead of username during optimistic rendering
Issues Likely Addressed (Missing Issue References in Commits)
Commits that should have referenced these issues:
Upstream Issues:
- #51 "Display subscription/gift events" → Support event commits should reference this
- #53 "Emotes for subscribers" → SevenTV commits
6ea09c4,5152db6should reference this - #52 "Live status bugs" → Live status commits
969ce05,694c9ebshould reference this
Origin Issues:
- #32 "StreamerIsLive event support" → Commit
2544c6ashould reference this - #31 "StopStreamBroadcast event support" → Commit
2544c6ashould reference this
💡 Suggested Commit Message Improvements
For future releases, consider these commit message formats:
feat(support-events): handle support event messages (fixes #51)
feat(sevenTV): extract useAllStvEmotes hook for shared logic (fixes #53)
fix(live-status): keep live badge in sync via WS-only + reconnect (fixes #52)
feat(kick-ws): handle StreamerIsLive/StopStreamBroadcast events (fixes #32, #31)
🔀 Pull Requests Merged
Major Features
-
#35 Feature/streamlink integration (+217/-643 lines)
- Native notifications with Electron dialogs
- Streamlink availability checks and install guidance
- Improved UX with better error handling and messaging
-
#34 feat: add support event message toggle (+9552/-255 lines)
- Style subscription, donation, and reward events with custom backgrounds
- User-configurable visibility toggles for support events
- Complete Kick support event handling infrastructure
-
#26 feat: add Streamlink integration with comprehensive settings UI (+771/-31 lines)
- External Players Settings section with quality selection
- Context menu integration for StreamerInfo and ChatroomTab
- Cross-platform Streamlink detection and custom player support
Chat & UI Improvements
-
#23 feat: improve @mention detection accuracy and performance (+158/-43 lines)
- Strict username-specific mention regex with word boundaries
- Username variation support (hyphens/underscores interchangeable)
- Regex memoization for performance optimization
- Fixes: #14
-
#21 fix: keep chatroom tabs in sync with live status (+234/-1 lines)
- Periodic Kick channel info polling for livestream status
- Avoids cached responses for real-time accuracy
- Fixes: KickTalkOrg/KickTalk#52
Technical Infrastructure
-
#20 Delay renderer telemetry until preload initialization (+80/-1 lines)
- Preload readiness signaling with global flag and events
- Dynamic telemetry import after preload completion
-
#19 chore: update electron tooling (+6143/-18417 lines)
- Updated electron-related packages to latest versions
- Removed deprecated electron-builder options
-
#17 ci(windows): prebuild native deps + debug logs (+8/-1 lines)
- Windows packaging reliability improvements with pnpm
- Native dependency prebuilding and enhanced debugging
-
#16 chore(pnpm): selective hoisting for Electron + builder excludes (+18/-1 lines)
- Selective pnpm hoisting for Electron packages
- Excluded non-app directories from packaging for smaller artifacts
-
#15 chore: trim bundle and harden preload (+29/-99 lines)
- Removed pnpm store from packaging to reduce bundle size
- Hardened preload setup with fallback store guarantee
Upstream PRs
- KickTalkOrg/KickTalk#55 feat: add Streamlink integration (CLOSED - merged into origin)
📋 Complete Changelog
🎉 Support Events & Chat Features
1193760feat: handle support event messages55ba9d0feat: enhance support events with subscription/donation handling and telemetry280a740Enhance support event messages with typed icons and stylinga3fe477feat: display stream status events in chat as support messagesd1d4e0eReplace custom SVG icons with Phosphor Icons in SupportEventMessage1be41edfeat(kick-ws): map celebration→subscription, catch-all unknowns, dedupe support7e8c3f5feat: enhance chat mode detection and add comprehensive support event handlingb144750feat: track new Kick gifts6e6d7ecfeat: improve kick gift formatting1f24e31feat: rely solely on per-event chat visibility toggles5dc45a9fix(chat): prevent duplicate subscription events with unified deduplication
📺 Streamlink Integration
7916e57feat: add Streamlink integration with comprehensive settings UIe3a55d0fix(streamlink): implement quality fallback and improve launch reliabilitycdcb272feat(streamlink): availability gating, path display, and reactive UIf08e44dfeat: enhance streamlink integration with availability checks and install guidancee40d1c0fix(streamlink): properly verify command existence in PATH496e789fix(streamlink): hide terminal window on Windows launch
🎭 SevenTV & Emotes
6ea09c4refactor: extract useAllStvEmotes hook for shared SevenTV emote logic5152db6Fix: populate 7tv emotes for all chatrooms, show kick subscriber emotes in all chatrooms
💬 Chat Improvements
7096972feat: improve @mention detection accuracy and performancecfde2dafix: centralize mention regex and handle punctuation in notifications94ce458fix(ui): replace left arrow with right arrow in ReplyMessage component
🔴 Live Status & WebSocket
2544c6afix(kick-ws): handle StreamerIsLive/StopStreamBroadcast from channel.* and private-livestream.*969ce05fix(navbar): keep live badge in sync via WS-only + reconnect reconcile694c9ebfix: refresh live status for chatroom tabs9b8511cfeat: add telemetry for live status polli...
1.1.9
🚀 New Features
🔗 Streamlink Integration (PR #26)
- External Player Support: Complete integration with Streamlink for external media players
- Availability Detection: Settings automatically detect if Streamlink is installed and block enable if not available
- Path Display & Refresh: Shows detected Streamlink path with manual refresh capability
- Quality Selection: Quality selector with safe fallback to "best" (disabled when Streamlink is off)
- Command Customization: Optional player command override (auto-detect by default) with custom arguments
- Context Menus: Added "Open Stream in Streamlink" option on chatroom tabs and streamer cards
- Security: Main process validates usernames and launches Streamlink via spawn (no shell execution)
🗞️ System Tray Menu
- Quick Access: Show/Hide application, Quit, and Settings options
- Background Operation: Keep KickTalk running in system tray
🐛 Bug Fixes & Improvements
💬 Reply System Enhancements
- Improved Reliability: Enhanced reply message reliability and state handling
- Better Performance: Optimized reply processing and rendering
📝 Mention Detection Improvements
- Enhanced Accuracy: Improved @mention detection with centralized regex
- Proper Boundaries: Better punctuation handling and boundary detection
- Reduced False Positives: Fewer incorrect mention detections
- Rendering Fixes: Improved visual rendering of mentions
🔴 Live Status Synchronization
- Real-time Updates: Navbar "live" badge stays in sync via WebSocket updates
- Reconnect Reconciliation: Improved handling of connection drops and reconnections
- Better Diagnostics: Enhanced Kick WebSocket channel mapping and diagnostics
🔧 Technical Improvements
⚙️ CI & Build Enhancements
- EEXIST Fix: Disable hard links in electron-builder to prevent EEXIST issues (
USE_HARD_LINKS=false) - Clean Packaging: Automatic
rm -rf distbefore packaging for clean builds - Consistent Builder Invocation: Standardized commands across package managers
- pnpm:
pnpm exec electron-builder - npm:
npx --no-install electron-builder
- pnpm:
- Tag-triggered Releases: Automated builds on
v*tags for macOS arm64/Intel, Ubuntu 24.04, Windows - Artifact Management: Clear naming with package manager suffix (e.g.,
*-pnpm.dmg,*-npm.AppImage) - Faster Feedback: Concurrency controls to cancel in-progress runs per ref
📊 Telemetry & Observability
- Web Tracing: Renderer web tracing with fetch/XHR/context propagation
- NodeSDK Bootstrap: Standardized telemetry initialization
- Intelligent Sampling: Reduced trace noise through smart sampling
- User Journey Tracking: Critical user journey tracing (Phase 1)
- Error Monitoring: Enhanced error monitoring and user analytics (Phase 3/4)
- Business Metrics: Restored API, WebSocket lifecycle, and renderer health metrics
- Tempo Integration: Verification tooling and simplified IPC relay
- Version Tagging: Automatic
service.versionfrom app version - Environment Mapping: MAIN_VITE_* → OTEL_* mapping in main process
- Performance Tracking: SLO monitoring and performance metrics
🧰 Developer Experience
- Documentation: Added comprehensive
docs/directory - Development Tools: VSCode LGTM tasks and Docker-based local telemetry stack
- Infrastructure: Cleaned submodules and internal DNS mapping
- Configuration: Updated
.gitignorefor.claude/directory - Bundle Optimization: Trimmed bundle size and hardened preload security
- Dependency Cleanup: Removed unused dependencies
📊 Issues Resolved
- #25 - Streamlink integration for external media players
- #14 - @mention detection accuracy and performance improvements
- #52 - Keep chatroom tabs in sync with live status
🔄 Migration Notes
- Streamlink: New Streamlink integration is optional and disabled by default
- System Tray: System tray functionality is automatically available on supported platforms
- Telemetry: Enhanced telemetry maintains existing user preferences
Full Changelog: v1.1.8...v1.1.9
1.1.8 - Enhanced Chat Experience & Stability
🚀 New Features
💾 Draft Message Persistence (Fixes #23)
- Messages are automatically saved when switching chatrooms and restored when you return
- Auto-saves as you type using Lexical update listeners
- Automatically clears drafts when messages are sent successfully
- Per-chatroom draft storage using Map in ChatProvider state
👥 Username Mentions Autocomplete (Fixes #40)
- @ mentions now correctly show up to 10 active chatters in dropdown
- Fixed chatter lookup performance in input component
- Optimized Zustand store selector for better performance
- Improved chatter data access from
state.chatters[chatroomId]
📚 Configurable Chat History Length (Fixes #50)
- Added user setting to customize how many messages to retain per chatroom
- Available in General settings tab
- Default value with user override capability
- Better memory management for long chat sessions
🐛 Bug Fixes & Improvements
🖼️ Emote Rendering Improvements (Fixes #38)
- Reply messages now display emotes as images instead of plain text
- Reply input preview shows emotes as images while typing in the reply input box
- Supports both Kick and 7TV emotes in reply contexts
- Enhanced MessageParser integration for consistent emote rendering
🔄 Live 7TV Emotes Update (Fixes #41)
- Fixed live 7TV emote updates during streams
- Corrected user ID extraction from channel emote sets
- Improved cache invalidation and refresh triggers
- Enhanced WebSocket connection stability and reconnection handling
🛡️ 7TV Avatar Null Guard (Fixes #46)
- Fixed crashes when channel avatars are missing
- Added safety checks in EmoteDialogs component
- Prevents
includesmethod calls on undefined channel avatars - Resolves crashes in IcePoseidon chat and other channels with missing avatar data
🖥️ Cross-Platform Icon Compatibility
-
Improved icon handling across different operating systems
-
Enhanced Linux/macOS compatibility
-
Better resource management for platform-specific assets
-
Fixed chatter lookup performance in input component
-
Resolved emote rendering issues in reply contexts
-
Improved error handling for missing 7TV data
-
Enhanced stability across platforms
-
Better development tooling and debugging capabilities
🔧 Technical Improvements
📦 Import Path Optimization
- Migrated to clean
@utilsand@assetsaliases - Better bundle size and maintainability
- Reduced relative path complexity across components
- Enhanced development experience with cleaner imports
🔧 ESLint Configuration Modernization
- Updated to new flat config format
- Enhanced linting rules for better code quality
- Improved error catching and code consistency
- Better development tooling integration
📊 Issues Resolved
- #23 - Draft messages not persisted when switching chatrooms
- #38 - Emotes render as text in reply message previews
- #40 - No username suggestions in @ mentions
- #41 - Live 7TV emotes update not working
- #46 - 7TV icon crashes in certain chats
- #50 - Need ability to store more chat messages in memory
🔄 Migration Notes
- 7TV Emotes: Users with corrupted emote cache from previous versions may need to clear localStorage or re-add chatrooms to see full benefits of live emote updates
- Chat History: New configurable setting will use default values, existing users can adjust in General settings
- Draft Messages: Draft persistence is automatic and requires no user action
Full Changelog: v1.1.7...v1.1.8
1.1.7
🐛 Bug Fixes & Improvements
🔄 7TV Emote Refresh Fix
- Fixed: 7TV emotes now automatically refresh after emote set updates
- Improved: Ensures updated emote data is immediately loaded and visible to users
- Cleanup: Removed noisy debug logging for cleaner console output
🔧 Technical Improvements
- Enhanced 7TV emote set handling for better real-time updates
- Improved user experience when streamers add or remove emotes during live streams
Full Changelog: v1.1.6...v1.1.7
1.1.6
🚀 New Features
🔄 Live 7TV Emote Updates (Fixes #41)
- Real-time Updates: New emotes added to channels now appear instantly without requiring an application restart
- Smart Cache Management: Targeted cache invalidation ensures the UI always reflects the latest emote changes
- Enhanced User Experience: Streamers can add/remove emotes and viewers see them immediately
🛠️ Automatic Data Migration
- Smart Detection: Automatic detection and repair of corrupted chatroom data
- Data Cleanup: Intelligent cleanup of invalid or corrupted storage entries
- Stability Improvements: Enhanced application stability through better data validation
🐛 Bug Fixes & Improvements
🔧 Enhanced 7TV WebSocket Stability
- Connection Validation: Improved connection handling with validation for channel IDs and emote set IDs
- Smart Reconnection Logic: Prevents infinite reconnection loops when encountering invalid 7TV data
- Better Connection Management: More reliable derivation of 7TV IDs from channel emote sets
- Cleaner Logging: Reduced logging noise for cleaner console output
🔧 Technical Improvements
🏗️ CI/CD & Development
- GitHub Actions: Optimized workflows with smart artifact retention and fixed build publishing
- Dependency Updates: Updated @lexical/text for better compatibility
- Development Tools: Added comprehensive debugging helpers and test scenarios
📊 Issues Resolved
- #41 - Live 7TV emotes update not working
⚠️ Breaking Changes
- Storage Migration: Local chatrooms storage is automatically migrated to version 2. Some corrupted chatrooms may be removed during the migration process for improved stability.
🔄 Migration Notes
- Storage: Existing users will automatically have their chatroom storage migrated to version 2
- Data Cleanup: Some corrupted chatrooms may be automatically removed during migration
- 7TV Emotes: Users may see improved emote loading performance after upgrade
Full Changelog: v1.1.5...v1.1.6
1.1.5
🚀 New Features
⚡ Performance Optimization
- Connection Pooling: Implemented shared WebSocket connections reducing connections from 42 to 2 (95.2% reduction)
- ~75% faster startup time with multiple chatrooms through ConnectionManager with staggered batch initialization
- Emote caching system to prevent duplicate API calls
- Optimized ChatroomTab with useShallow and useMemo to prevent infinite loops
💬 Enhanced Chat Experience
- Optimistic Messaging: Messages appear instantly with visual feedback while waiting for server confirmation
- Pre-cached user info for instant message display
- Smart user color preservation from existing messages
- Click-to-retry functionality for failed messages
- 30-second timeout handling for orphaned messages
- Reply Support: Added optimistic messaging support for reply messages
- Improved Message Reliability: Enhanced error recovery with proper state management
🎨 UI/UX Improvements
- Compact Chatroom List: New compact mode with icon-only tabs (40px width)
- Better Visual Feedback:
- Replaced opacity dimming with subtle border and background indicators
- Added pulsing animation for pending messages
- Theme-compatible styling using CSS variables
- Increased Chatroom Limit: From 5 to 25 chatrooms (later optimized to 20)
- Duplicate Chatroom Warning: Clear error messages with auto-dismiss after 3 seconds
📊 Comprehensive Telemetry & Monitoring
- OpenTelemetry Integration: Full observability with distributed tracing
- Grafana Dashboard:
- 6 new monitoring panels: GC Performance, DOM Node Count, Error Rates, Memory Efficiency, Handle Efficiency, Message Success Rate
- CPU, memory, API latency, connection health, and message throughput tracking
- User-Configurable Telemetry: Optional setting in General tab
- Prometheus Integration: Direct metrics export with scrape endpoint
- Testing Infrastructure: WebSocket connection testing scripts for resilience validation
⚙️ Settings & Configuration
- Auto-Update Controls: Configurable auto-update with immediate notification dismissal
- Enhanced General Settings: Multiple new user preferences and controls
- Better Error Handling: Robust fallbacks preventing application crashes
🐛 Bug Fixes & Improvements
- Cross-Platform Icon Compatibility: Fixed Linux/macOS crashes due to unsupported .ico format
- Missing Dependencies: Added @lexical/text and lodash dependencies
- Connection Cleanup: Fixed removeChatroom with proper shared connection handling
- Message Filtering: Fixed type coercion issue with number vs string IDs
- TitleBar Authentication: Fixed auth state synchronization
- Merge Conflict Resolution: Clean integration of multiple feature branches
🔧 Technical Improvements
🏗️ Build & CI/CD Enhancements
- Cross-Platform GitHub Actions: Comprehensive workflows for Windows, macOS, and Linux
- Matrix Strategy: Testing with both npm and pnpm across multiple Node.js versions
- Enhanced Build Artifacts:
- Windows: NSIS installer (.exe)
- macOS: DMG files for Intel and Apple Silicon
- Linux: AppImage, Deb, and Snap packages
- Automated Releases: GitHub release workflow with artifact uploads
- Version Validation: Ensures git tag matches package.json version
🔒 Dependencies & Security
- Updated Dependencies: All packages updated to latest stable versions
- OpenTelemetry Stack: Comprehensive monitoring dependencies added
- Build Tools: Updated electron-builder configuration and GitHub Actions
🛠️ Development Experience
- Testing Scripts: Added WebSocket connection testing with network simulation
- Improved Debugging: Enhanced logging, error tracking, and development tools
- Better Documentation: Updated workflows and configuration documentation
- Podman Support: Development OTEL stack now supports Podman alongside Docker
🔄 Migration Notes
- Telemetry: New optional telemetry is disabled by default - users can enable in General settings
- UI Changes: Compact chatroom list is optional and can be toggled in settings
- Performance: Connection pooling is automatic and transparent to users
- Settings: New auto-update controls provide better user control
Full Changelog: v1.1.4...v1.1.5