Skip to content

Releases: blubskye/himiko

v1.8.0 - Source-Based Hot-Reload for BSD

03 Jan 13:32

Choose a tag to compare

What's New

πŸ”„ Source-Based Hot-Reload Updates

Perfect for BSD systems and custom builds! No more running VMs just to compile binaries.

New Features:

  • Build from Source: Automatically git pull and go build when updating
  • BSD Compatible: Works on FreeBSD, OpenBSD, NetBSD, and other Unix-like systems
  • Progress Updates: See each step of the build process in Discord
  • Safe Updates: Stashes local changes and restores old binary if build fails
  • No VM Required: Build natively on your BSD system

Configuration

Add to your config.json:

{
  "features": {
    "update_from_source": true
  }
}

Requirements for Source-Based Updates

  • Git must be installed
  • Go 1.21+ must be installed
  • Must be running from a cloned git repository
  • GCC required (for go-sqlite3 compilation)

How It Works

  1. Check: git fetch to check for new commits
  2. Stash: Saves any local changes automatically
  3. Pull: git pull to get latest code
  4. Build: go build to compile new binary
  5. Replace: Swaps old binary with new one
  6. Relaunch: Restarts bot automatically

Usage

# Check for source updates
/update check

# Pull and rebuild from source  
/update apply

# View current version and update method
/update version

The update method will show "Build from Source" when enabled.

Traditional Binary Updates Still Work

If update_from_source is false (default), the bot will continue to download pre-compiled binaries as before. This is the recommended method for Linux and Windows systems.

πŸ“‹ Full Changelog

v1.7.2...v1.8.0

v1.7.2 - Bug Fix: Ban Command Display

03 Jan 12:55

Choose a tag to compare

Bug Fixes

πŸ”§ Ban Commands Display Names Correctly

Fixed an issue where ban-by-ID commands would show asterisks (*****) or the raw user ID instead of the actual username in confirmation messages.

Affected Commands:

  • hackban - Now displays "Username (ID)" instead of just the ID
  • unban - Fetches and displays username instead of mention format
  • botban - Displays username/server name for user/server bans
  • botunban - Shows proper username/server name

How it works:
The bot now uses Discord's API (s.User() / s.Guild()) to fetch the username or server name when you ban by ID. If the fetch fails, it gracefully falls back to showing just the ID.

Example:

  • Before: User * has been banned
  • After: Username (123456789012345678) has been banned

πŸ“‹ Full Changelog

v1.7.1...v1.7.2

v1.7.1 - Field-Level Encryption

22 Dec 11:28

Choose a tag to compare

What's New

πŸ” Field-Level Encryption

  • AES-256-GCM: Industry-standard authenticated encryption for sensitive database fields
  • Automatic Migration: Seamlessly encrypts existing data when enabled
  • Selective Encryption: Only encrypts sensitive fields (messages, reasons, etc.)
  • Backwards Compatible: Works with legacy unencrypted data
  • PBKDF2 Key Derivation: 100,000 iterations for secure key stretching

Protected Data

  • Welcome messages and join DM content
  • Warning reasons
  • Deleted message content (snipe)
  • AFK messages, reminders, scheduled messages
  • Custom command responses and tags
  • Mod action reasons
  • Bot ban reasons
  • Mention responses

Configuration

{
  "encryption": {
    "enabled": true,
    "key": "your-strong-passphrase-here"
  }
}

πŸ“‹ Full Changelog

v1.7.0...v1.7.1

v1.7.0 - Live Stats Dashboard

16 Dec 03:22

Choose a tag to compare

What's New

πŸ“ˆ Live Stats & Monitoring

  • Real-Time Dashboard: New "Live Stats" tab in web dashboard
  • Memory Monitoring: Track Alloc, Sys memory, GC runs, and Goroutines
  • Discord Stats: View guilds, members, channels, and heartbeat latency
  • Activity Metrics: Commands processed, messages seen, rates per minute
  • Interactive Charts: Memory and activity graphs powered by Chart.js
  • Database Stats: File size and table row counts
  • SSE Updates: Server-Sent Events for instant 5-second auto-updates
  • Live Uptime: Real-time uptime counter

πŸ€– New Commands

  • botstats - View bot statistics in Discord (Owner only)

πŸ”§ Technical Details

  • New internal/webserver/stats.go with StatsCollector and RingBuffer
  • Ring buffers store 720 samples (hourly at 5-sec intervals) and 1440 samples (daily at 1-min intervals)
  • Minimal performance impact (~432 KB memory, 5-sec runtime.ReadMemStats() calls)
  • No additional Discord API calls (uses cached state)

πŸ“‹ Full Changelog

v1.6.1...v1.7.0

v1.6.1 - Performance Optimizations

16 Dec 02:26

Choose a tag to compare

Changes

  • Performance optimizations based on go-perfbook patterns
  • Improved string handling with strings.Builder
  • Better slice pre-allocation
  • Optimized hot paths

Downloads

  • himiko-v1.6.1-linux-amd64.zip - Linux x64 binary
  • himiko-v1.6.1-windows-amd64.zip - Windows x64 binary

v1.6.0 - Full Web Dashboard Configuration

14 Dec 13:39

Choose a tag to compare

Major Web Dashboard Expansion

The web dashboard now includes full configuration for all server settings!

New Tabbed Interface

  • Basic - Prefix, mod log channel, welcome channel/message, join DM
  • Moderation - Logging config, Anti-Raid, Anti-Spam, Spam Filter settings
  • Filters - Regex filter management (add/remove/list)
  • XP & Ranks - Voice XP settings, Level rank rewards
  • Features - Auto-clean channels, Ticket system
  • Commands - Category and individual command enable/disable

Command Enable/Disable

  • Toggle entire command categories on/off
  • Disable individual commands within categories
  • Settings are per-server
  • Both slash commands and prefix commands respect disable settings

Access the Dashboard

Run the bot with webserver enabled in config, then visit http://127.0.0.1:8080

v1.5.7

13 Dec 03:38

Choose a tag to compare

Changes

  • Fix Discord 100 slash command limit error by making update command prefix-only
  • Bot now uses 99 slash commands (under Discord's 100 limit)

Owner-Only Commands Now Prefix-Only

The following owner-only commands are now prefix-only to stay under Discord's 100 slash command limit:

  • webserver - Manage the web dashboard (v1.5.6)
  • update - Check for and apply bot updates (v1.5.7)

Use these commands with your configured prefix (e.g., h!update check)

v1.5.6 - Web Dashboard & Auto-Relaunch

13 Dec 02:20

Choose a tag to compare

What's New

🌐 Web Dashboard

  • New web server for managing servers and settings
  • <prefix>webserver on / <prefix>webserver off commands to toggle
  • <prefix>webserver status to check server status
  • <prefix>webserver config to modify port and settings
  • Beautiful responsive dashboard with server management
  • NGINX-ready (binds to 127.0.0.1 by default for security)

Note: Webserver command is prefix-only (not a slash command) to stay under Discord's 100 command limit.

πŸ”„ Auto-Relaunch After Update

  • Bot automatically restarts with new version after /update apply
  • Auto-update also relaunches automatically
  • No more manual restarts needed!

πŸ“ Config Backup Limit

  • Config backups now limited to 3 most recent
  • Older backups are automatically deleted
  • Prevents disk space issues from accumulated backups

Configuration

New webserver section in config.json:

"webserver": {
  "enabled": false,
  "port": 8080,
  "host": "127.0.0.1",
  "secret_key": "",
  "allow_remote": false
}

Downloads

  • Linux: himiko-v1.5.6-linux-amd64.zip
  • Windows: himiko-v1.5.6-windows-amd64.zip

Both packages include the binary, LICENSE, README.md, and config.example.json.

Himiko v1.5.5

12 Dec 04:15

Choose a tag to compare

What's New

πŸ› Debug Mode

  • Added debug_mode config option to enable full stack tracing
  • Verbose error logging with complete stack traces
  • Memory stats and goroutine tracking
  • Caller info to track exactly where errors originate

πŸ”„ Config Migration

  • Automatic config migration with backup when new fields are added
  • Existing configs will be backed up and migrated automatically

Full Changelog

  • Added DebugLogger utility for enhanced debugging
  • Updated config.example.json with debug_mode field
  • Updated README with debug mode documentation

v1.5.4 - Prefix Command Handlers

12 Dec 03:48

Choose a tag to compare

Fixes

  • Fixed prefix commands not working: Commands like !codeblock balls now work properly
  • Fixed misleading error message: No longer shows "use slash command" for prefix-only commands

New Prefix Handlers

Added working prefix handlers for these text commands:

  • codeblock - Wrap text in a codeblock (!codeblock python print("hello"))
  • reverse - Reverse text
  • mock - CoNvErT tExT tO mOcK sTyLe
  • owo - OwOify your text
  • vaporwave - Convert to vaporwave
  • leet - Convert to 1337 speak
  • space - A d d s p a c e s

Usage

Use your server's prefix (default / or set with /setprefix):

!codeblock hello world
!mock this is some text
!reverse backwards

Other prefix-only commands will show usage help until their handlers are added.