Releases: flolibio/tailr
Releases · flolibio/tailr
v0.5.1
Migration
- Repository moved from
wunamessttoflolibio - Updated all GitHub URLs in code, docs, and frontend
- Updated self-upgrade endpoint to new repository
Full Changelog: v0.5.0...v0.5.1
v0.5.0
[v0.5.0] - 2026-06-23
Security
- Path traversal protection: all file endpoints validate paths against configured
log_dirsandlog_filesviacanonicalize()+ allowlist check - Token authentication: optional Bearer token via
config.toml,TAILR_TOKENenv var, or Settings UI - CSRF protection: restricted CORS headers +
X-Requested-Withcheck on POST endpoints - Config write protection:
POST /api/config/log-levelsrequires authentication when token is set - Error sanitization: generic error messages to client, detailed errors logged server-side
- Search parameter limits:
contextcapped at 50,limitcapped at 10000
Features
- Token input dialog: auto-popup on 401, auto-reload file list after authentication
- Token setting in Settings dialog (persisted to localStorage)
Full Changelog: v0.4.0...v0.5.0
v0.4.0
Features
- Settings dialog: modal design (VS Code style) replacing sidebar panel, with left navigation (General, Log Levels, About)
- Configurable log levels: 7 presets (General, Java, Python, PHP, Go, Rust, syslog), web UI for editing levels/keywords/colors with drag-and-drop reorder
- Font customization: font family dropdown (JetBrains Mono, Hack, Cascadia Code, Fira Code, Consolas, Monaco, Menlo, System Monospace) and font size (10–24px)
- Theme modes: Light, Dark, and System (follows OS preference), persisted across sessions
- Page title dynamically shows selected log file name (
tailr - <filename>) - About page with project logo, version, and GitHub link
- Warp-inspired dark theme color palette
- Full i18n support for all settings strings (en-US, zh-CN)
Fixes
- Selection toolbar scoped to log viewer area only (no longer appears on other UI elements)
- Font size input uses
@changeto avoid fighting user keystrokes during typing - Theme mode persisted to localStorage, restored on dialog reopen
setTimeouttimers properly cleared on component unmount
Infrastructure
frontend/distremoved from git tracking, added to.gitignore
New Contributors
- @godwinjavaee made their first contribution in #2
- @wunamesst made their first contribution in #3
Full Changelog: v0.3.1...v0.4.0
v0.3.1
Performance
- Reverse-read tail: LineIndex::tail_start() reads backwards from EOF in 8KB chunks instead of scanning entire file (440MB log: 1.4s → 43ms)
- Wrap blocking tail I/O in spawn_blocking to avoid async executor stalls
Fixes
- Dark mode text selection contrast (yellow → blue)
- Clippy derivable_impls lint: derive Default for DaemonConfig
Infrastructure
- CONTRIBUTING.md, PR/Issue templates, CI workflow
Full Changelog: v0.3.0...v0.3.1
v0.3.0
What's New in v0.3.0
📄 Config File Support
- Add
~/.config/tailr/config.tomlconfig file with auto-initialization - Priority: CLI args > Config file > Env vars > Defaults
tailr init— create config file (prompt to confirm if exists)tailr config— print config file contents- Default config includes
log = ["/var/log"]andbind = "0.0.0.0:7700"
🔧 CLI Subcommand Refactoring
tailr init— initialize config filetailr config— print config file contentstailr stop— stop daemon (was--stop)tailr status— show daemon status (was--status)tailr systemd— generate systemd service file (was--systemd)tailr launchd— generate launchd plist file (was--launchd)tailr upgrade— unchanged
🐛 Bug Fixes
- Upgrade now jumps directly to the latest version regardless of version gap (
self_update's compatibility check restricted 0.x versions to same-minor patch bumps only) - Fixed sidebar overlapping statusbar in the grid layout
⚠️ Breaking Changes
CLI flags changed to subcommands:
tailr --stop → tailr stop
tailr --status → tailr status
tailr --systemd → tailr systemd
tailr --launchd → tailr launchd
Full Changelog: v0.2.0...v0.3.0
v0.2.0
Full Changelog: v0.1.5...v0.2.0
v0.1.5
v0.1.5 - File Truncation Fix
Fixes
- Fixed empty entries after file truncation: When a log file is truncated (e.g., via logrotate
copytruncate), the cached LineIndex had stale offsets from the larger file. Now detects truncation (file_size < idx.file_size) and rebuilds the index from scratch.
Full Changelog: v0.1.4...v0.1.5
Full Changelog: v0.1.4...v0.1.5
v0.1.4
v0.1.4 - Daemon Mode
Features
- Daemon mode: Run tailr in background with
--daemon, replacingnohupapproach - Process management:
--stopto stop running daemon,--statusto check status - System service integration:
--systemdgenerates systemd service file (Linux),--launchdgenerates launchd plist (macOS) - PID file management: Automatic PID file handling with custom path support via
--pid-file - Log redirection: stdout/stderr redirected to log file in daemon mode, customizable with
--log-file - Signal handling: Graceful shutdown on SIGINT/SIGTERM/SIGHUP
- Version display: Show current version and GitHub link in settings panel footer
Usage
# Start in background
tailr --daemon --log /var/log/app /var/log/nginx
# Check status
tailr --status
# Stop daemon
tailr --stop
# Generate systemd service file
tailr --systemd --log /var/log/app | sudo tee /etc/systemd/system/tailr.service
# Generate launchd plist (macOS)
tailr --launchd --log /var/log/app > ~/Library/LaunchAgents/com.tailr.plistDependencies
- Added
daemonize = "0.5"- Unix daemonization - Added
dirs = "5.0"- Cross-platform data directories
Fixes
- Fixed empty entries after file truncation: When a log file is truncated (e.g., via logrotate
copytruncate), the cached LineIndex had stale offsets from the larger file. Now detects truncation and rebuilds the index. - Fixed daemon mode failing to serve HTTP (fork must happen before tokio runtime)
- Fixed
test_filter_by_pattern_regextest failure (use builder pattern to compile regex) - Fixed settings footer hidden behind status bar
Full Changelog: v0.1.3...v0.1.4
v0.1.3
What's New in v0.1.3
🚀 Self-Upgrade
# Check for updates
tailr upgrade --check
# Upgrade to latest version
tailr upgrade- Supports Linux x86_64 and aarch64
- Atomic binary replacement with progress display
🌍 Multi-language UI
- English (default) and Chinese support
- Switch language in Settings → Language
- Browser language auto-detection
📥 Downloads
| Platform | File |
|---|---|
| Linux x86_64 | tailr-x86_64-linux-musl.tar.gz |
| Linux aarch64 | tailr-aarch64-linux-musl.tar.gz |
Full Changelog: v0.1.2...v0.1.3
v0.1.2
Full Changelog: v0.1.1...v0.1.2