Releases: blubskye/himiko
v1.8.0 - Source-Based Hot-Reload for BSD
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 pullandgo buildwhen 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
- Check:
git fetchto check for new commits - Stash: Saves any local changes automatically
- Pull:
git pullto get latest code - Build:
go buildto compile new binary - Replace: Swaps old binary with new one
- 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 versionThe 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 - Bug Fix: Ban Command Display
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 IDunban- Fetches and displays username instead of mention formatbotban- Displays username/server name for user/server bansbotunban- 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 - Field-Level Encryption
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 - Live Stats Dashboard
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.gowith 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 - Performance Optimizations
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 binaryhimiko-v1.6.1-windows-amd64.zip- Windows x64 binary
v1.6.0 - Full Web Dashboard Configuration
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
Changes
- Fix Discord 100 slash command limit error by making
updatecommand 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
What's New
π Web Dashboard
- New web server for managing servers and settings
<prefix>webserver on/<prefix>webserver offcommands to toggle<prefix>webserver statusto check server status<prefix>webserver configto 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
What's New
π Debug Mode
- Added
debug_modeconfig 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
Fixes
- Fixed prefix commands not working: Commands like
!codeblock ballsnow 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 textmock- CoNvErT tExT tO mOcK sTyLeowo- OwOify your textvaporwave- Convert to ο½ο½ο½ο½ο½ο½ο½ο½ο½leet- Convert to 1337 speakspace- 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.