Skip to content

Releases: linuxmobile/oxicord

v0.1.7

26 Jan 13:52
v0.1.7
a7d073f

Choose a tag to compare

Overview

Focus: Platform Stability and Packaging Fixes

Oxicord v0.1.7 focuses on resolving critical packaging and environment issues. We have overhauled the Nix flake configuration to align with recent nixpkgs deprecations and hardened the Gateway payload handling to prevent crashes on malformed API responses. Additionally, this release fixes the binary distribution pipeline, ensuring pre-built assets are correctly attached to GitHub releases.

Detailed Changelog

Stability & Gateway

  • Resilient Deserialization: Fixed a critical crash where the Discord API returned integer 0 for optional string fields (last_message_id, parent_id, guild_id) instead of null. The gateway parser now gracefully handles these cases.

Packaging & Build

  • Nix Flake Modernization:
    • Removed references to the deprecated darwin.apple_sdk.frameworks, fixing build failures on recent Nixpkgs channels.
    • Relies on the default SDK for macOS framework dependencies, ensuring broader compatibility.
    • Fixed glib dependency issues and ensured tests run correctly within the Nix build sandbox.
  • CI/Release Pipeline:
    • Fixed an issue where binary assets were not correctly attached to GitHub releases.
    • Automated artifact renaming for clear platform identification (e.g., oxicord-x86_64-unknown-linux-gnu).

Documentation

  • TOS Clarity: Updated the README to prominently highlight Terms of Service warnings with improved visual styling.
  • Roadmap Update: Reflected recent feature completions and adjusted upcoming priorities in the project roadmap.
  • Auth Guide: Added clearer instructions for authentication and build dependencies.

Installation

Cargo

cargo install --git https://github.com/linuxmobile/oxicord --tag v0.1.7

Nix

nix profile install github:linuxmobile/oxicord
# or run directly
nix run github:linuxmobile/oxicord

What's Next

  • Navigation: Ctrl+K fuzzy finder for channels and DM users.
  • Configuration: Full config.toml support for custom keybinds and behavior.
  • Privacy: Option to hide messages from blocked users.
  • Media Interaction:
    • 'Y' keybinding to copy images to clipboard.
    • 'o' keybinding to open images in a High-Res modal.

v0.1.6

25 Jan 19:32
v0.1.6
bc8ce5f

Choose a tag to compare

Overview

Focus: Stability and Visual Fidelity

Oxicord v0.1.6 represents a significant leap in visual presentation and network resilience. This release transitions the rendering pipeline to a high-fidelity architecture using ratatui-image and chafa, enabling inline image previews with proper aspect ratio preservation. On the backend, we have hardened the "Stealth Transport" layer, ensuring that gateway identification and HTTP headers perfectly mimic official client behavior to prevent fingerprinting.

Detailed Changelog

Visuals

  • Inline Image Rendering: Replaced the legacy rendering with a robust integration of ratatui-image.
    • Chafa ANSI Previews: Leverages chafa for high-resolution ANSI image approximations in terminals that lack native graphical protocols.
    • Protocol Support: Automatic detection and support for Sixel, Kitty, and iTerm2 protocols where available.
  • Message Pane Refinements:
    • Message Grouping: Consecutive messages from the same author (within a 7-minute window) are now visually grouped, reducing clutter.
    • Reply Resolution: Replies now correctly resolve and display the referenced username instead of raw user IDs.
    • Rich Embeds: Added support for rendering rich embeds with Markdown fidelity.
  • Theming & Identity:
    • User Coloring: Implemented role-based coloring for usernames, with deterministic fallback for consistency.
    • Native Sidebar: A custom native tree implementation for the Guild/Channel list, removing reliance on emoji hacks.

Networking

  • Stealth Transport: Implemented ClientIdentity to strictly enforce User-Agent, Referer, and Locale headers across all HTTP and Gateway requests.
  • Gateway Stability:
    • Heartbeat ACK: Resolved deadlocks in the heartbeat loop to prevent phantom disconnections.
    • DM-to-Guild Transitions: Fixed navigation state persistence to ensure channel lists load correctly when switching between contexts.
    • Header Sync: Gateway IDENTIFY payloads are now perfectly synchronized with HTTP client properties.

Performance

  • Image Caching: Introduced a three-tier cache architecture (Memory LRU → Disk → Network) to minimize bandwidth and eliminate flickering.
  • Resource Usage: Significant reduction in CPU overhead during image rendering and scrolling.
  • Build Optimization: Pruned heavy dependencies and optimized the build graph, resulting in faster compile times.

Technical Improvements

  • Architecture: Enforced a strict Domain/Infrastructure split. ImageLoader and ClientIdentity are now isolated infrastructure services.
  • Dependencies: Integrated ratatui-image v1.0.2 for superior terminal graphics handling.

Installation

Cargo

cargo install --git https://github.com/linuxmobile/oxicord --tag v0.1.6

Nix

nix profile install github:linuxmobile/oxicord
# or run directly
nix run github:linuxmobile/oxicord

What's Next

  • Navigation: Ctrl+K fuzzy finder for channels and DM users.
  • Configuration: Full config.toml support for custom keybinds and behavior.
  • Privacy: Option to hide messages from blocked users.
  • Media Interaction:
    • 'Y' keybinding to copy images to clipboard.
    • 'o' keybinding to open images in a High-Res modal.
  • Bot Support: Native support for slash commands and bot interactions.
  • Performance: Targeting a further +20% improvement in API response parsing.

v0.1.5 - Oxicord: The Rust Rewrite

18 Jan 22:25
v0.1.5
3060a43

Choose a tag to compare

Oxicord v0.1.5 - Complete Rust Rewrite

This is the first release of Oxicord, a complete rewrite of Discordo in Rust. This represents a ground-up reimplementation with improved performance, safety, and a modern architecture.

Highlights

  • Complete rewrite from Go to Rust using Clean Architecture principles
  • Async runtime with Tokio for superior performance
  • Modern TUI built with Ratatui
  • Secure token storage via system keyring

Features

UI & Navigation

  • Animated splash screen with async data loading
  • Concurrent event loop with render throttling for smooth performance
  • Context-aware @mention autocompletion system
  • Dynamic command registry and help popup (/commands)
  • Modal file explorer with multipart file upload support
  • Smart focus transitions and escape flow navigation
  • Horizontal scrolling and improved keyboard handling
  • Robust unread notification system with eager data loading
  • Server tree view with guild navigation

Messages

  • Real-time message rendering with WebSocket gateway
  • Message editing with TUI navigation
  • Smart scroll with sticky bottom logic
  • Contextual external editing (open in $EDITOR)
  • Reply UI with proper threading
  • Markdown parser with syntax highlighting
  • Local timezone for timestamps
  • Direct message support

Typing & Presence

  • Typing indicators with LazyRequest subscription
  • Connection state management with status indicator

Developer Experience

  • Nix flake for reproducible builds
  • Rust release workflow for CI/CD

Bug Fixes

  • Gateway heartbeat deadlock resolved
  • DM-to-Guild navigation state handling
  • Guild-channel navigation desync and state reset
  • Scrollbar overlap with dynamic visibility
  • Image preview stability and performance improvements
  • Horizontal scroll issues in message view
  • Various warnings and dead code cleanup

Architecture

This release implements Clean Architecture with:

  • Domain layer: Core entities (Token, Message, Guild, Channel)
  • Application layer: Use cases and DTOs
  • Infrastructure layer: Discord API, WebSocket gateway, keyring storage
  • Presentation layer: Ratatui-based TUI

Breaking Changes

  • This is a complete rewrite - no migration path from the Go version
  • Configuration format may differ from the original Discordo
  • The Go codebase is preserved in the discordo-go branch

Installation

From Source

git clone https://github.com/linuxmobile/oxicord
cd oxicord
cargo build --release

With Nix

nix run github:linuxmobile/oxicord

What's Next

  • Voice channel support
  • Image/media preview in terminal
  • Plugin system
  • Improved theming

Full Changelog: https://github.com/linuxmobile/oxicord/commits/v0.1.5