All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Rustup Multi-Phase Support - Added CHECK → EXECUTE pattern for rustup plugin
get_phase_commands()- Returns phase-specific commands (CHECK:rustup check, EXECUTE:rustup update --no-self-update)get_interactive_command()- Returns interactive mode commands- Note: DOWNLOAD phase not supported by rustup (download and install are interleaved per component)
docs/research-rustup-three-phase-update.md- Research document for rustup three-phase update investigation- Pipx Three-Step Upgrade - Implemented CHECK → DOWNLOAD → EXECUTE pattern for pipx plugin
check_for_updates()- Identifies outdated main/injected packages using pipx_metadata.jsondownload_updates()- Downloads packages to cache (~/.cache/updateall/pipx/)install_updates()- Installs from cache using offline mode (--no-index --find-links)- New data structures:
OutdatedPackage,VenvMetadata - 50 new tests in
plugins/tests/test_pipx_three_step.py
docs/pipx-three-step-upgrade-research.md- Research document for pipx three-step upgradeui/ui/models.py- New module for data models (extracted from interactive_tabbed_run.py)ui/ui/messages.py- New module for Textual message classes (extracted from interactive_tabbed_run.py)ui/tests/test_regression_bugs.py- Consolidated regression tests for bug fixesdocs/README.md- Documentation index with categorized document listingdocs/archive/- Archive directory for completed implementation plansplugins/plugins/mocks/- Dedicated subpackage for mock plugins
-
UI Module Architecture Refactoring
- Extracted
InteractiveTabDatatoui/ui/models.py - Extracted
AllPluginsCompletedmessage toui/ui/messages.py - Expanded
ui/ui/progress.pywithProgressBarwidget - Expanded
ui/ui/metrics.pywith all metrics classes (MetricsCollector,MetricsSnapshot,PhaseMetrics,PhaseStats,RunningProgress) - Reduced
ui/ui/phase_status_bar.pyto contain only thePhaseStatusBarwidget - Added comprehensive docstrings to
phase_controller.pyandtabbed_run.py
- Extracted
-
Core Module Cleanup
- Added comprehensive docstrings to
orchestrator.pyandparallel_orchestrator.pyexplaining when to use each - Added comprehensive docstrings to
core/metrics.pydistinguishing it fromui/metrics.py - Enhanced
core/__init__.pywith module overview documentation
- Added comprehensive docstrings to
-
Plugins Module Cleanup
- Moved mock plugins (
mock_alpha.py,mock_beta.py) toplugins/plugins/mocks/subpackage - Enhanced docstrings for apt, atuin, cargo, flatpak, npm, pipx, r, snap plugins
- Enhanced
registry.pywith usage examples and entry point documentation
- Moved mock plugins (
-
Test Suite Rationalization
- Consolidated bug verification tests into
test_regression_bugs.py - Updated test docstrings with clear categorization (unit, integration, E2E, regression)
- Fixed flaky timing test in
test_e2e_phase_stats_preservation.py
- Consolidated bug verification tests into
-
Cross-Module Consistency
- Standardized
pytest-asyncioversion to^1.3.0across all subprojects - Added
asyncio_mode = "auto"to ui and stats pyproject.toml - Renamed
DownloadErrortoPluginDownloadErrorin plugins/repository.py to avoid naming conflict
- Standardized
-
Documentation Consolidation
- Archived 5 completed implementation plans to
docs/archive/ - Updated
bug-investigation-report.mdstatus to RESOLVED - Created
docs/README.mdwith documentation index
- Archived 5 completed implementation plans to
- Debug scripts from
scripts/directory:add_debug_logging.pydebug_app.pydebug_metrics_preservation.pydebug_phase_reset.pydebug_phase_stats.pypoc_bug_verification.pytrace_phase_stats.py
- Bug 1: CPU statistics not updating - Metrics now properly aggregate child process metrics
- Bug 2: Phase counters reset - Phase statistics are preserved across phase transitions
- Bug 3: Scrolling not working - Scrolling now responds immediately without waiting for update interval
- Initial release with core functionality
- Plugin system with support for apt, flatpak, snap, pipx, cargo, npm, rustup
- Interactive tabbed UI with PTY terminal emulation
- Multi-phase plugin execution (check, download, execute)
- Statistics tracking with DuckDB integration
- Configuration management via YAML
- Update history tracking