Skip to content

Releases: Cod-e-Codes/marchat

v0.9.0-beta.4

08 Nov 18:48

Choose a tag to compare

v0.9.0-beta.4
Released: 8 Nov 2025
Commit: 2f92970

Major Changes:

  • Fixed Total Messages metric in the web admin dashboard
  • Restored plugin command support for non-admin users in encrypted sessions
  • Updated github.com/charmbracelet/x/term to 0.2.2

Admin Experience:

  • Web admin metrics now display accurate Total Messages counts
  • Release notes and contributor acknowledgments refreshed for the new beta

Client Improvements:

  • Plugin commands now work for non-admin users in encrypted sessions while preserving server-side permission checks

Documentation Updates:

  • README, installers, and build scripts now reference v0.9.0-beta.4 assets
  • Release documentation refreshed for the new version

Technical Changes:

  • Adjusted command handling so server messages bypass encryption regardless of client admin flag
  • Updated build-release pipeline and install scripts with the new version string

Assets:

  • marchat-v0.9.0-beta.4-linux-amd64.zip
  • marchat-v0.9.0-beta.4-darwin-amd64.zip
  • marchat-v0.9.0-beta.4-windows-amd64.zip
  • marchat-v0.9.0-beta.4-android-arm64.zip

Full Changelog: v0.9.0-beta.3...v0.9.0-beta.4

Breaking Changes:

  • None

Migration Guide:

  • No configuration changes required
  • Ensure plugin commands are tested in encrypted sessions to confirm permission behavior

v0.9.0-beta.3

22 Oct 16:30

Choose a tag to compare

v0.9.0-beta.3
Released: 22 Oct 2025
Commit: fdc79bd

Major Changes:

  • Added vim-style :q quit command for safer application exit
  • Fixed theme system bugs for better user experience
  • Updated ESC key behavior to prevent accidental quits

New Features:

Client Improvements:

  • :q Command: Added vim-style quit command for explicit application exit
  • ESC Key Behavior: ESC now only closes menus/dialogs, no longer quits application
  • Safer Navigation: Prevents accidental application exits while preserving menu functionality

Theme System Fixes:

  • Case-Insensitive Themes: :theme Nord now works even when JSON key is "nord"
  • Theme Persistence: Custom themes now persist across logins by updating profiles.json
  • UI Redraw: Message viewport and user list now update immediately when themes change
  • Profile Integration: Theme changes are properly saved to the current profile

Documentation Updates:

  • README.md: Updated with :q command documentation and corrected ESC behavior
  • Download Links: Updated all installation links to v0.9.0-beta.3
  • Version References: Updated build scripts and installers to new version

Technical Changes:

  • Added GetCustomThemeByName() function for case-insensitive theme lookup
  • Enhanced model struct with profile name tracking
  • Improved theme change handlers with proper viewport redraw
  • Updated Ctrl+T and :theme command handlers for better theme management

Assets:

  • marchat-v0.9.0-beta.3-linux-amd64.zip
  • marchat-v0.9.0-beta.3-darwin-amd64.zip
  • marchat-v0.9.0-beta.3-windows-amd64.zip
  • marchat-v0.9.0-beta.3-android-arm64.zip

Full Changelog: v0.9.0-beta.2...v0.9.0-beta.3

Breaking Changes:

  • ESC key no longer quits the application - use :q command instead

Migration Guide:

  • No configuration changes required
  • Existing themes and profiles will work unchanged
  • Important: Use :q command to quit the application (ESC only closes menus)
  • ESC key behavior change prevents accidental exits but requires using :q to quit

v0.9.0-beta.2

20 Oct 16:21

Choose a tag to compare

v0.9.0-beta.2
Released: 20 Oct 2025
Commit: 6151641

Major Changes:

  • SQLite WAL mode implementation for improved database performance and concurrency
  • Enhanced documentation with comprehensive architecture improvements
  • Updated dependencies for security and performance
  • Plugin system improvements for non-admin users

New Features:

Database Performance Enhancements:

  • WAL Mode: Enabled SQLite Write-Ahead Logging for improved concurrency
  • Performance Optimizations: Added synchronous=NORMAL, cache_size=10000, temp_store=MEMORY
  • Better Concurrency: Multiple clients can read while one writes without blocking
  • Crash Recovery: Improved database recovery with WAL files
  • Verification Logging: Database startup now logs actual journal mode for confirmation
  • Cross-Platform: WAL mode works on all supported platforms (Linux, macOS, Windows, Android)

Documentation Improvements:

  • ARCHITECTURE.md: Enhanced with WAL mode documentation and performance tuning details
  • Data Flow Diagrams: Improved clarity and accuracy of system architecture diagrams
  • Alternative Frontends: Added comprehensive section for web, desktop, and mobile client development
  • Database Schema: Updated with WAL mode benefits and performance optimizations
  • ROADMAP.md: Marked WAL mode as completed in Phase 4

Dependency Updates:

  • golang.org/x/crypto: Updated to v0.43.0 for latest security improvements
  • modernc.org/sqlite: Updated to v1.39.1 for better performance and bug fixes

Plugin System Fixes:

  • Non-Admin Plugin Commands: Fixed issue where non-admin users couldn't run plugins with AdminOnly=false
  • Command Execution: Improved plugin command routing and permission handling

Configuration Improvements:

  • Environment Variables: Corrected MARCHAT_BAN_HISTORY_GAPS variable name in env.example
  • Documentation: Fixed configuration examples and variable references

Code Quality:

  • Formatting: Applied go fmt across entire codebase for consistent formatting
  • Linting: Resolved all linter warnings and improved code consistency

Technical Changes:

  • Modified server/db.go to enable WAL mode with verification
  • Added performance pragmas for optimal SQLite configuration
  • Enhanced error handling and logging for database operations
  • Updated build and install scripts for v0.9.0-beta.2
  • Improved release notes accuracy based on actual commit history

Documentation:

  • ARCHITECTURE.md: Added WAL mode to database optimization section
  • ROADMAP.md: Marked Phase 4 WAL mode as completed
  • README.md: Updated with accurate release notes and feature highlights
  • Enhanced database performance documentation

Assets:

  • marchat-v0.9.0-beta.2-linux-amd64.zip
  • marchat-v0.9.0-beta.2-darwin-amd64.zip
  • marchat-v0.9.0-beta.2-windows-amd64.zip
  • marchat-v0.9.0-beta.2-android-arm64.zip

Full Changelog: v0.9.0-beta.1...v0.9.0-beta.2

Breaking Changes: None

Migration Guide:

  • WAL mode is automatically enabled on database startup - no configuration required
  • Existing databases will be upgraded to WAL mode seamlessly
  • All existing functionality remains unchanged
  • Performance improvements are automatic and transparent

Performance Benefits:

  • Concurrent Reads: Multiple clients can read messages simultaneously without blocking writes
  • Faster Writes: Message insertion no longer blocks concurrent read operations
  • Reduced Contention: Perfect for chat applications with multiple active users
  • Better Crash Recovery: WAL files provide improved database integrity
  • Optimized Caching: Increased cache size and memory-based temporary storage

Platform Compatibility:

  • All Platforms: WAL mode works on Linux, macOS, Windows, and Android
  • File System: Creates .db-wal and .db-shm files alongside main database
  • Backup Safe: Existing backup procedures work correctly with WAL mode
  • Docker Compatible: No issues with mounted volumes or containerized deployments

v0.9.0-beta.1

12 Oct 02:54

Choose a tag to compare

v0.9.0-beta.1
Released: 12 Oct 2025
Commit: 51d396f

Major Changes:

  • Enhanced notification system with desktop notifications and smart features
  • Custom theme support via JSON configuration files
  • Expanded plugin ecosystem with weather and githooks plugins

New Features:

Enhanced Notification System:

  • Multiple Notification Modes: None, Bell, Desktop, Both
  • Desktop Notifications: Cross-platform support using notify-send (Linux), osascript (macOS), PowerShell (Windows)
  • Quiet Hours: Disable notifications during specified hours (:quiet 22 8)
  • Focus Mode: Temporarily mute notifications (:focus 1h, :focus 2h30m)
  • Mention-Only Mode: Get notified only for @mentions (:bell-mention)
  • Smart Features: Rate limiting (500ms bell, 2s desktop), message truncation (100 chars), async execution
  • New Commands: :notify-mode <mode>, :notify-desktop, :notify-status, :quiet <start> <end>, :quiet-off, :focus [duration], :focus-off
  • Hotkey: Alt+N to toggle desktop notifications
  • Thread-safe: Mutex-protected notification manager with atomic config updates

Custom Theme System:

  • JSON Theme Support: Define custom color schemes in themes.json
  • Built-in Themes: system, patriot, retro, modern
  • Example Themes: cyberpunk, forest, dracula, solarized-dark, nord included in themes.example.json
  • 23 Color Properties: Full customization of all UI elements (user, time, message, banner, borders, backgrounds, etc.)
  • Theme Commands: :theme <name> to switch, :themes to list all available themes
  • Auto-loading: Themes load from current directory, ~/.config/marchat/, %APPDATA%\marchat\, or ~/Library/Application Support/marchat/
  • Persistence: Theme selection saved to config and restored on restart

Plugin Ecosystem:

  • weather (v1.0.0): Weather information and forecasts using wttr.in (:weather [location], :forecast [location])
  • githooks (v1.0.0): Git repository management (:git-status, :git-log, :git-branch, :git-diff, :git-watch admin-only)
  • echo (v2.0.1): Updated in registry (existing plugin)

Bug Fixes:

  • Fixed :cleardb command detection - :clear no longer incorrectly matches :cleardb
  • Fixed ineffectual assignment in :bell-mention command (linter error)
  • Fixed test environment isolation issues
  • Improved :themes command output (now displays as system message instead of banner)

Technical Changes:

  • Added notification_manager.go with NotificationManager implementation
  • Added theme_loader.go for custom theme loading from JSON
  • Enhanced notification config structure with mode, desktop settings, quiet hours, and focus mode
  • Platform detection for desktop notification support on startup
  • Test environment improvements with proper cleanup and isolation

Documentation:

  • NOTIFICATIONS.md: Complete guide to notification system features and configuration
  • THEMES.md: Comprehensive custom theme creation guide with examples
  • Updated README with new features, commands, and plugin listings
  • Enhanced command reference with notification and theme commands

Assets:

  • marchat-v0.9.0-beta.1-linux-amd64.zip
  • marchat-v0.9.0-beta.1-darwin-amd64.zip
  • marchat-v0.9.0-beta.1-windows-amd64.zip
  • marchat-v0.9.0-beta.1-android-arm64.zip

Full Changelog: v0.8.0-beta.11...v0.9.0-beta.1

Breaking Changes: None

Migration Guide:

  • All notification settings are opt-in - default behavior unchanged (bell mode)
  • Custom themes are optional - built-in themes continue to work
  • New config fields added automatically with sensible defaults
  • Existing configs are fully compatible and will be migrated seamlessly

Platform Requirements for Desktop Notifications:

  • Linux: Requires notify-send command (provided by libnotify package: libnotify-bin on Ubuntu/Debian, libnotify on Fedora/Arch)
  • macOS: No additional requirements (uses built-in osascript)
  • Windows: No additional requirements (uses built-in PowerShell)

v0.8.0-beta.9

10 Oct 16:15

Choose a tag to compare

v0.8.0-beta.9
Released: 10 Oct 2025
Commit: 636ffe2

Critical Security Release

This release fixes critical security vulnerabilities in the plugin system.

Security Fixes:

  • Fixed path traversal vulnerability in plugin name handling
  • Fixed command injection vulnerability via malicious plugin names
  • Added input validation for all plugin operations
  • Resolved 18 CodeQL security alerts (1 Critical, 17 High severity)

Technical Changes:

  • Added validatePluginName() function in plugin manager and host
  • Plugin names restricted to lowercase letters, numbers, hyphens, underscores
  • Maximum length 64 characters
  • Blocks .. sequences and path separators
  • Validation applied to: InstallPlugin, UninstallPlugin, EnablePlugin, DisablePlugin, StartPlugin, StopPlugin, LoadPlugin, GetPlugin, GetPluginManifest, ExecuteCommand

Fixed Alerts:

  • #5: Command built from user-controlled sources (Critical)
  • #6-#22: Uncontrolled data used in path expression (High)

Breaking Changes:
Plugin names must conform to validation rules. Existing plugins with non-conforming names will fail to load.

Assets:

  • marchat-v0.8.0-beta.9-linux-amd64.zip
  • marchat-v0.8.0-beta.9-darwin-amd64.zip
  • marchat-v0.8.0-beta.9-windows-amd64.zip
  • marchat-v0.8.0-beta.9-android-arm64.zip

Full Changelog: v0.8.0-beta.8...v0.8.0-beta.9

v0.8.0-beta.8

10 Oct 16:01

Choose a tag to compare

v0.8.0-beta.8
Released: 10 Oct 2025
Commit: 51dc87e

Major Changes:

  • Added Alt+key hotkeys for plugin management (admin-only)
  • Implemented proper debug log file management with config directory compliance
  • Added automatic log rotation to prevent infinite file growth
  • Fully implemented plugin management in both terminal and web admin panels
  • Fixed plugin host deadlock issues and TUI log bleeding
  • Enhanced plugin display with table component and proper selection handling

New Features:

  • Plugin Hotkeys (Admin Only): Fast keyboard shortcuts for plugin operations
    • Alt+P: List installed plugins
    • Alt+S: Show available plugins in store
    • Alt+R: Refresh plugin store
    • Alt+I: Install plugin (prompts for name)
    • Alt+U: Uninstall plugin (prompts for name)
    • Alt+E: Enable plugin (prompts for name)
    • Alt+D: Disable plugin (prompts for name)
    • Hotkeys send admin commands that bypass E2E encryption
  • Debug Log Management: Separate client and server debug logs
    • Client: marchat-client-debug.log
    • Server: marchat-debug.log
    • Both respect MARCHAT_CONFIG_DIR environment variable
  • Log Rotation: Automatic rotation at 10MB threshold
    • Keeps one backup file (.old)
    • Prevents disk space exhaustion
  • Full Plugin Management: Complete functionality in admin panels
    • Enable/disable plugins
    • Install/uninstall from registry
    • Refresh plugin store
    • Works in both terminal (TUI) and web interfaces
  • Plugin Table UI: Professional table display for plugins
    • Name, Status, Version columns
    • Arrow indicator for selected plugin
    • Keyboard navigation (↑/↓)
    • Shows available, installed, active, and disabled states
  • Plugin Logging: Operations now visible in admin panel logs at INFO level

Bug Fixes:

  • Fixed :store command returning "not yet implemented" - now lists available plugins
  • Fixed debug logs creating files in project root instead of config directory
  • Fixed log rotation not checking error returns (errcheck lint)
  • Fixed plugin enable/disable deadlock in plugin host
  • Fixed debug log statements bleeding into client TUI
  • Fixed admin panel plugin tab not displaying available plugins from store
  • Fixed plugin operations showing "not yet implemented" messages
  • Fixed plugin table column ordering and alignment issues
  • Fixed plugin selection not working reliably in terminal admin panel
  • Fixed hotkey conflicts (Ctrl+Shift not working on Windows, switched to Alt+)

Technical Changes:

  • Added plugin management hotkeys to client keymap with Alt+ combinations
  • Implemented executePluginCommand() to send admin commands bypassing E2E encryption
  • Added pendingPluginAction state for prompting plugin names
  • Modified handleStore() to list available plugins from registry with install status
  • Added getClientConfigDir() function to determine proper config directory
  • Modified LogToFile() to include rotation logic with 10MB threshold
  • Added debugFile global variable for structured log output
  • Implemented enablePlugin(), disablePlugin(), installPlugin(), uninstallPlugin() in admin panels
  • Added refreshPluginStore() functionality to both admin interfaces
  • Replaced log.Printf with structured logging in plugin/host/host.go
  • Changed plugin command logging from DEBUG to INFO level in server/client.go
  • Added pluginTable component using charmbracelet/bubbles/table
  • Modified loadPlugins() to fetch from store and show all plugin states
  • Fixed mutex handling in EnablePlugin() and DisablePlugin() to prevent deadlocks
  • Added "Refresh Store" button to web admin panel
  • Updated README with comprehensive plugin hotkey documentation

Improvements:

  • Plugin management is now fast and efficient with keyboard shortcuts
  • Hotkeys work even in E2E encrypted sessions (use admin command type)
  • Debug logs now properly organized in config directory alongside other config files
  • Log files won't grow infinitely - automatic cleanup at 10MB
  • Admin panels provide full plugin lifecycle management
  • Plugin display is clean, organized, and easy to navigate
  • No more TUI corruption from debug logs
  • Plugin operations are properly logged and visible to admins
  • Better separation between client and server logging
  • :store command now shows which plugins are available, installed, or enabled

Assets:

  • marchat-v0.8.0-beta.8-linux-amd64.zip
  • marchat-v0.8.0-beta.8-darwin-amd64.zip
  • marchat-v0.8.0-beta.8-windows-amd64.zip
  • marchat-v0.8.0-beta.8-android-arm64.zip

Full Changelog: v0.8.0-beta.7...v0.8.0-beta.8

Breaking Changes: None - fully backward compatible

Migration Guide:

  • Debug logs will automatically move to config directory on next run
  • Set MARCHAT_CONFIG_DIR environment variable to customize location
  • Old marchat-debug.log files in project root can be safely deleted
  • Plugin management now fully functional - use hotkeys or text commands
  • Admin users can now use Alt+key combinations for quick plugin operations

Improvements from v0.8.0-beta.7:

  • Added 7 new plugin management hotkeys for faster workflows
  • Plugin hotkeys work in encrypted sessions (bypass E2E for admin commands)
  • Debug logging is now production-ready with proper file management
  • Admin panels transformed from placeholder to fully functional plugin management
  • Plugin operations are seamless and properly logged
  • TUI remains clean without log bleeding
  • Better disk space management with automatic log rotation
  • :store command is now fully functional and shows plugin availability

v0.8.0-beta.11

10 Oct 19:49

Choose a tag to compare

v0.8.0-beta.11
Released: 10 Oct 2025
Commit: 11a9d36

Major Changes:

  • Fixed admin/plugin commands to work in E2E encrypted sessions
  • Added hotkey alternatives for common commands
  • Implemented username validation and allowlist support
  • Improved plugin disable performance (5s to 1s)

New Features:

  • Encryption Status Indicator: Footer now shows 🔒 E2E Encrypted or 🔓 Unencrypted
  • Hotkey Alternatives: Alt+F (send file), Alt+C (code snippet), Alt+T (time format), Ctrl+T (cycle themes), Ctrl+L (clear chat)
  • Command Encryption Fix: All admin/plugin text commands now sent as AdminCommandType to bypass encryption
  • Username Validation: Usernames limited to 32 chars, alphanumeric + _-., prevents injection attacks
  • Username Allowlist: Optional MARCHAT_ALLOWED_USERS env var for restricting server access
  • Dynamic Plugin Commands: Plugin-provided commands (e.g., :echo) automatically work in encrypted sessions

Bug Fixes:

  • Fixed admin commands being encrypted and unreadable by server
  • Fixed inconsistent command handling between text and hotkeys
  • Fixed plugin commands not working in encrypted sessions

Technical Changes:

  • Added validateUsername() in server/client.go and server/handlers.go
  • Refactored command detection to use client-side allowlist instead of server-side blocklist
  • Changed plugin disable timeout from 5 seconds to 1 second
  • Added encryption status to UI footer and help text
  • Updated help documentation with clear command organization

Improvements:

  • Faster plugin disable operations
  • Better UX in encrypted sessions with clear status indication
  • More secure username handling across all commands
  • Cleaner help documentation with logical grouping

Assets:

  • marchat-v0.8.0-beta.11-linux-amd64.zip
  • marchat-v0.8.0-beta.11-darwin-amd64.zip
  • marchat-v0.8.0-beta.11-windows-amd64.zip
  • marchat-v0.8.0-beta.11-android-arm64.zip

Full Changelog: v0.8.0-beta.10...v0.8.0-beta.11

Breaking Changes: None

Migration Guide:

  • Username allowlist is optional - existing deployments work unchanged
  • New username validation rules may reject previously valid usernames with special characters
  • Existing configs and data are fully compatible

v0.8.0-beta.10

10 Oct 17:13

Choose a tag to compare

v0.8.0-beta.10
Released: 10 Oct 2025
Commit: 6d29a3b

Major Changes:

  • Implemented plugin state persistence across server restarts
  • Added automatic plugin discovery and loading on startup
  • Fixed plugin uninstall file handle issues on Windows
  • Fixed deadlock during plugin initialization failures
  • Updated Docker image to Alpine 3.22

New Features:

  • Plugin Persistence: Installed plugins automatically load on server startup
  • State Management: Plugin enabled/disabled status saved to plugin_state.json
  • Auto-Discovery: Server scans plugin directory and loads all installed plugins
  • Unload Mechanism: Added UnloadPlugin() to properly release file handles

Bug Fixes:

  • Fixed plugins requiring reinstall after server restart
  • Fixed disabled plugins starting as enabled after restart
  • Fixed "Access is denied" error when uninstalling plugins on Windows
  • Fixed deadlock when plugin initialization fails during startup
  • Fixed test timeout in TestUninstallPlugin

Technical Changes:

  • Added PluginState struct with enabled status map
  • Implemented loadPluginState() and savePluginState() methods
  • Added discoverInstalledPlugins() to scan and load plugins on startup
  • Modified EnablePlugin/DisablePlugin to persist state after changes
  • Added UnloadPlugin() method to release plugin from host registry
  • Changed StartPlugin cleanup to handle errors inline instead of calling StopPlugin
  • Updated Dockerfile base image from Alpine 3.21 to Alpine 3.22

Improvements:

  • Plugins persist across server restarts without reinstallation
  • Plugin state (enabled/disabled) remembered between sessions
  • Cleaner uninstall process without file locking issues
  • More reliable plugin initialization with proper error handling
  • Better handling of plugin lifecycle during auto-discovery

Assets:

  • marchat-v0.8.0-beta.10-linux-amd64.zip
  • marchat-v0.8.0-beta.10-darwin-amd64.zip
  • marchat-v0.8.0-beta.10-windows-amd64.zip
  • marchat-v0.8.0-beta.10-android-arm64.zip

Full Changelog: v0.8.0-beta.9...v0.8.0-beta.10

Breaking Changes: None

Migration Guide:

  • Existing plugins will be auto-discovered on next server startup
  • Plugin state file will be created automatically
  • No manual migration required

v0.8.0-beta.7

09 Oct 15:42

Choose a tag to compare

v0.8.0-beta.7
Released: 09 Oct 2025
Commit: 804d89c

Major Changes:

  • Implemented real-time log capture system for both admin panels (TUI and web)
  • Admin panels now display live server logs from in-memory buffer (200 entries)
  • Added OS-specific log export functionality with proper directory handling
  • Fixed connection and disconnect metrics tracking to show accurate totals
  • Converted critical server and hub events to structured logging

New Features:

  • Live Log Display: Admin panels show real server logs that update as events occur
  • Log Buffer: Circular buffer captures last 200 structured log entries in memory
  • OS-Specific Export: Logs export to platform-appropriate directories:
    • Windows: %APPDATA%\marchat\logs
    • macOS: ~/Library/Application Support/marchat/logs
    • Linux: ~/.config/marchat/logs
    • Android/Termux: $PREFIX/var/log/marchat
  • Metrics Tracking: Hub now tracks total connections and disconnections with thread-safe counters

Bug Fixes:

  • Fixed "Total Connections: 0" and "Total Disconnects: 0" in metrics panel
  • Log export now creates actual files instead of returning placeholder success messages
  • Admin panel logs no longer show static mock data
  • Web admin panel logs populate from real server events

Technical Changes:

  • Added LogBuffer struct with thread-safe operations for log capture
  • Implemented GetEntries() and GetRecentEntries() methods for log retrieval
  • Added totalConnections and totalDisconnects fields to Hub struct with mutex protection
  • Created GetTotalConnections() and GetTotalDisconnects() getter methods on Hub
  • Modified logger.log() to capture entries in global buffer before output
  • Updated updateMetrics() in both admin interfaces to read from Hub counters
  • Converted hub registration/unregistration to use HubLogger.Info()
  • Converted admin ban/unban/kick operations to use AdminLogger.Info()
  • Added startup logging with ServerLogger.Info() and HubLogger.Info()
  • Replaced mock log generation with real buffer queries in both admin panels

Improvements:

  • Both admin panels now show authentic, growing log histories
  • Log entries include structured data (username, IP, component, etc.)
  • Export functionality saves timestamped log files for debugging
  • Metrics accurately reflect server activity since startup
  • Better observability into server operations through structured logging

Assets:

  • marchat-v0.8.0-beta.7-linux-amd64.zip
  • marchat-v0.8.0-beta.7-darwin-amd64.zip
  • marchat-v0.8.0-beta.7-windows-amd64.zip
  • marchat-v0.8.0-beta.7-android-arm64.zip

Full Changelog: v0.8.0-beta.6...v0.8.0-beta.7

Breaking Changes: None - fully backward compatible

Migration Guide:

  • No migration required - all existing configurations work unchanged
  • Admin panels will now show real logs automatically
  • Log exports will create files in OS-specific directories
  • Metrics will accurately reflect connection counts from server startup

Improvements from v0.8.0-beta.6:

  • Admin panels transformed from mock data to real-time server monitoring
  • Export logs feature now functional with actual file output
  • Metrics panel provides accurate connection statistics
  • Better debugging capability with structured log capture

v0.8.0-beta.6

09 Oct 14:20

Choose a tag to compare

v0.8.0-beta.6
Released: 09 Oct 2025
Commit: 7d83df0

Major Changes:

  • Fixed critical profile selection bug where profile modifications changed sort order
  • Profile selection now returns actual profile object instead of unreliable index
  • Enhanced profile identification using Name+ServerURL+Username composite matching
  • Resolved profile selection mismatches during rename/delete operations

Bug Fixes:

  • Profile selection UI now stores and returns the actual ConnectionProfile object
  • Fixed issue where LastUsed timestamp updates changed profile sort order mid-selection
  • Profile rename/delete operations no longer cause wrong profile to be selected
  • Eliminated index-based selection errors when profiles are modified during UI interaction

Technical Changes:

  • Added selectedProfile *ConnectionProfile field to ProfileSelectionModel struct
  • Updated RunEnhancedProfileSelection() to return (*ConnectionProfile, error) instead of (int, error)
  • Updated RunEnhancedProfileSelectionWithNew() to return (*ConnectionProfile, bool, error) instead of (int, bool, error)
  • Modified profile selection in config.go to match profiles by Name+ServerURL+Username after reload
  • Updated client/main.go to use profile object matching instead of index-based selection
  • Enhanced profile storage to capture selection before any modifications occur

Improvements:

  • Reliable profile selection regardless of sort order changes
  • Better handling of concurrent profile modifications during selection
  • Improved user experience with profile management features (view/rename/delete)
  • More robust profile identification across reload operations
  • Preserved build-release.ps1 in version control to prevent loss

Assets:

  • marchat-v0.8.0-beta.6-linux-amd64.zip
  • marchat-v0.8.0-beta.6-darwin-amd64.zip
  • marchat-v0.8.0-beta.6-windows-amd64.zip
  • marchat-v0.8.0-beta.6-android-arm64.zip

Full Changelog: v0.8.0-beta.5...v0.8.0-beta.6

Breaking Changes: None - fully backward compatible

Migration Guide:

  • No migration required - existing profiles and configurations continue to work unchanged
  • Profile selection is now more reliable when using management features (rename/delete)
  • All profile operations maintain correct selection state

Resolves Issues:

  • Critical bug where modifying profiles during selection caused wrong profile to be used
  • Profile selection index mismatch after sort order changes from timestamp updates