- Fixed TypeError: fs.existsSync is not a function error by using fsPromises instead of fs
- Updated version to 2.0.10
- Updated README with changelog
- Added better error handling for git repository checks
- Improved file system operations for update detection
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Skip Transmission daemon installation prompt when in update mode
- Properly detect remote/local status from existing config file
- Add better logging for Transmission configuration detection
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Fixed a critical installation issue where server.js and server-endpoints.js were not being
copied to the install directory. This caused the service to fail with 'Cannot find module'
errors when trying to start.
Changes:
- Updated copy_module_files in file-creator-module.sh to also copy main server files
- Added error handling if server.js is missing
- Added better logging during file copying
💡 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Fixed multiple syntax errors in utils-module.sh:
- Replaced compound commands with syntax with clearer if statements
- This addresses issues with bash syntax in older versions of bash
- Improved error handling with explicit 2 checks
💡 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Fixed a syntax error on line 134 in utils-module.sh that was causing installation to fail when setting up with a remote Transmission server.
💡 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
This commit addresses multiple code consistency and reliability issues across the codebase:
1. Version consistency - use package.json version (2.0.9) throughout
2. Improved module loading with better error handling and consistent symlinks
3. Enhanced data directory handling with better error checking
4. Fixed redundant code in main-installer.sh
5. Improved error handling in transmission-client.js
6. Added extensive module symlink creation
7. Better file path handling and permission checks
8. Enhanced API response handling
💡 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Created reusable ensure_npm_packages function for consistency
- Fixed npm install being called in wrong directory during installation
- Added proper directory context preservation for npm operations
- Ensured package.json file is always copied to installation directory
- Added checks to prevent redundant npm installations
- Improved error handling and reporting for npm operations
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Added robust module loading in server.js with multiple fallback paths
- Created bidirectional symlinks for modules with different naming styles
- Added extension-less symlinks for Node.js CommonJS compatibility
- Updated file copying logic to create all necessary symlinks
- Added symlink creation script that runs on startup
- Improved module error reporting with detailed path information
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Updated test-and-start.sh to work with systemd services
- Added proper node executable path detection
- Fixed issue with shebang line in startup script
- Updated service module to use absolute paths correctly
- Improved robustness of startup script with better error handling
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Added improved data directory handling in RSSFeedManager
- Added synchronous creation of data directory in constructor
- Created test-and-start.sh script to ensure data directory exists
- Updated service module to use the startup script
- Added fallback methods for data directory creation
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Updated TransmissionClient to use correct method names from transmission-promise
- Changed sessionGet to session() and sessionSet to sessionUpdate()
- Added robust error handling in connection test
- Improved logging for connection debugging
- Fixed error handling in TransmissionClient constructor
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Prevent remote host from defaulting to localhost
- Preserve remote connection settings during config updates
- Handle empty values correctly to avoid overriding good config
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Ensure server.js uses consistent .js extensions for module imports
- Create compatibility symlinks for different module naming styles
- Update file-creator-module.sh to handle module paths correctly
- Bump version to 2.0.8
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Added create_directories function to properly set up directory structure
- Added copy_module_files function to ensure JS modules are copied correctly
- Updated server.js to handle module imports more resiliently
- Fixed imports to work with both .js and no extension module references
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Fixed bootstrap-installer to prompt for installation directory with /opt/trans-install as default
- Updated main-installer to detect and use existing installation path from service file
- Modified config-module to use installation directory from environment or default to /opt/trans-install
- Updated README with clear information about the default installation path
- Bumped version to 2.0.7
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Added robust error handling for dynamic version retrieval in the server.js template:
- Added try/catch block around package.json require
- Added fallback version if package.json can't be loaded
- Ensures server will start even if there's an issue loading the version
This prevents connection errors related to the version check functionality.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Instead of hardcoding the version number in the server.js template,
this change reads the version dynamically from package.json.
This ensures that the dashboard always displays the correct version
number without requiring manual updates to the template file.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
The server.js template in file-creator-module.sh had a hardcoded version of 1.2.0,
causing fresh installations to display the wrong version number on the dashboard.
Updated to display 2.0.6.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Fix version inconsistencies in server.js API status endpoint
- Update User-Agent string in RSS feed manager
- Update version in config file templates
- Update dashboard display with version 2.0.6
- Add version 2.0.6 to version history with changelog
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Ensure CONFIG_DIR exists during installation
- Create proper symlink from INSTALL_DIR/config.json to CONFIG_DIR/config.json
- Use CONFIG_DIR instead of INSTALL_DIR for configuration files
- Add code to move existing config file to CONFIG_DIR if needed
This fixes the issue where the config.json file was not being created in /etc/transmission-rss-manager, even though the directory was created.
This commit addresses an issue where the Transmission remote setting wasn't properly preserved between install scripts.
Major changes:
- Fixed environment variable sharing between install-script.sh and main-installer.sh
- Added multiple methods to locate and load the .env.install file
- Removed duplicate log message in dependencies-module.sh
- Improved permission handling for the environment file
- Directly export TRANSMISSION_REMOTE variable before launching main-installer.sh
This ensures the user's choice of remote or local Transmission is correctly honored throughout the installation process.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add direct prompt for remote Transmission as fallback in dependencies module
- Save choice to environment file for other scripts
- Add additional logging to show which path was taken
- Ensures remote transmission is always asked about, regardless of execution path
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add direct remote Transmission prompt in install-script.sh
- Pass TRANSMISSION_REMOTE environment variable to main-installer.sh
- Add clarifying message when asking about installing Transmission daemon
- This fixes execution path when using install-script.sh instead of bootstrap-installer.sh
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Move the remote Transmission prompt to main installer before config module is called
- Modify config module to use the already-set TRANSMISSION_REMOTE variable
- Remove existing logic in config module that was causing issues
- Clean up environment variables when invoking installer from bootstrap
- Remove emergency fallback since we now handle it in the right order
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add emergency fallback to ask about remote Transmission if config step was skipped
- Add CONFIG_GATHERED flag to track if config step was run
- Improve bootstrap installer with clear explanation of what to expect
- Explicitly check for gather_configuration success and output debug info
- Add additional variable initialization to ensure consistent behavior
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Move SCRIPT_DIR initialization before its usage
- Ensure TRANSMISSION_REMOTE is initialized with default value
- Add logging to show whether remote or local Transmission is being used
- Initialize TRANSMISSION_REMOTE at the start of gather_configuration
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Fix bug where installer doesn't ask if Transmission is remote
- Fix missing configuration directory in /etc/transmission-rss-manager
- Create symlink between config locations to ensure app always finds config
- Ensure CONFIG_DIR is properly exported in the environment
- Update version to 2.0.4
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Changed config location to /etc/transmission-rss-manager/config.json
- Added fallback to maintain backward compatibility
- Updated installers to create and use the new location
- Added installPath property to configuration for updates
- Enhanced documentation with new config location
- Bumped version to 2.0.3
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Fix bug in dependencies-module.sh that would prompt to install transmission-daemon for remote installations
- Add checks for TRANSMISSION_REMOTE flag to correctly handle remote vs local installations
- Update version to 2.0.2
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Update version in server.js
- Update version in installer scripts
- Update version in utility modules
- Update version in file creator module
- Ensure consistent 2.0.0 version across codebase
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add system status card to dashboard with uptime and version display
- Implement version checking against git repository
- Add one-click update functionality
- Update footer and version references to 2.0.0
- Add server endpoints for status, update checking, and update application
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>