v0.1.13.0
·
19 commits
to master
since this release
Release Notes - v0.1.13.0
v0.1.13.0 released on pypi
python -m pip install --upgrade aria2tui
New Features
Multiple Instance Support
- Connect to multiple aria2 daemons simultaneously - Run multiple aria2c daemons and switch between them in aria2tui using
{and}. - New
instancesarray configuration format inconfig.toml- define multiple aria2 connections with different settingsREADME.mdupdated with new config format. But if you go toedit aria2tui configin the main menu and then click save it will automatically save your config in the newer format.
- Individual picker states for each instance with proper naming and state management
- Improved connection testing and error recovery for multi-instance setups
- Most of the work for this was done in (listpick)[https://github.com/grimandgreedy/listpick] which underwent a major upgrade to the internal state management and now supports the creation of arbitrary PickerState objects which we use here to setup each instance.
# Aria2TUI: config.toml
[[instances]]
name = "Default"
url = "http://localhost"
port = 6800
token = "1234"
startup_commands = ["aria2c"]
restart_commands = ["pkill aria2c && sleep 1 && aria2c"]
aria2_config_path = "~/.config/aria2/aria2.conf"
[[instances]]
name = "Torrents"
url = "http://localhost"
port = 6805
token = "1234"
startup_commands = ["aria2c --conf-path=~/.config/aria2/torrents.conf"]
restart_commands = ["pkill aria2c && sleep 1 && aria2c"]
aria2_config_path = "~/.config/aria2/torrents.conf"
[general]
terminal_file_manager = "yazi"
...
New form-handler
- New form handler for structured data input and editing. Replaces hacky entry via mutable picker.
- Add download form interface with better validation & true/false toggles
- Change download/global options through forms
- Form-based config editing - edit aria2tui configuration through an interactive form interface
- First-time startup wizard - generates default config in a form
- Retry download and change options form
- Usecase: if you have
allow-overwrite=falseas the default but want to overwrite partial progress for this one failed download on retry
- Usecase: if you have
Improvements
UI Enhancements
- Improved progress bar display
- Menu refactoring--both main menu and downloads menu have been cleaned up
- Better logging throughout the application
- Redirected stderr messages at app launch to prevent TUI distortion
- Use checkboxes for torrent file selection with progress indicators
Internal Config Management
- Created a new ConfigManager class which allows:
- switching between configs (for multiple instance support)
- hot reload after changing config
- Updated config structure to allow multiple connections to be specified via the instances array
- Removed
launch_commandandpaginatefrom config options. - Config can now be modified from the main menu in a form.
Logging
- Improved logging support
Bug Fixes
- Prevent crash if connection goes down - added try/catch in
getAll()andgetGlobalStats() - Fixed config editing with multiple instances
- Fixed config reload functionality
- Properly close
/dev/nullfile handle usingcontextlib.redirect_stderr()with atexit cleanup - Fixed bug where editing config would automatically save config
- Fix bitstring to download pieces display in right pane.
Testing
- Added end-to-end testing framework using Kitty with IPC
- Still need to implement some key tests (probably need to mock aria endpoints). But the setup is there.
