cog
5c6aa648 - Refactor cogpack to Single Phase List Architecture

Commit
241 days ago
Refactor cogpack to Single Phase List Architecture This is a major architectural improvement that unifies the build system's phase organization by replacing separate buildPhases and exportPhases slices with a single ordered phases list. ## Key Changes ### Architecture Improvements - **Unified Phase Storage**: Combined separate buildPhases/exportPhases slices in Composer into single 'phases' slice - **Simplified Traversal**: previousPhase() now works naturally across all phases, eliminating artificial build/export boundary - **Natural Cross-Phase References**: Export phases can now reference build phases without special handling ### Core Implementation - **Composer**: Replaced dual phase lists with unified architecture - **Plan**: Added single 'Stages' slice with PhaseKey metadata - **Phase Resolution**: Streamlined resolvePhaseInputStage() and resolvePhaseOutputStage() methods - **Error Handling**: Added proper error types for phase/stage resolution ### Backward Compatibility - **Helper Methods**: Plan.BuildStages() and Plan.ExportStages() maintain existing API compatibility - **Migration Path**: Existing code continues to work while enabling gradual migration to unified approach ### UV Block Enhancement - **Cross-Phase Copy**: UV block's PhaseBuildComplete → ExportPhaseRuntime pattern now works naturally without special handling - **Simplified Logic**: Removed complex cross-phase reference resolution ## Test Updates - **Comprehensive Coverage**: All 840+ plan package tests passing - **Cross-Phase Validation**: Tests now verify export phases can reference build phases naturally - **UV Integration**: Updated UV test to demonstrate unified architecture - **Error Scenarios**: Added proper error handling test coverage ## Benefits Realized - **Cleaner Architecture**: Eliminated duplicate phase traversal logic - **Better Maintainability**: Single source of truth for phase ordering - **Enhanced Functionality**: Cross-phase references work seamlessly - **Preserved Compatibility**: No breaking changes to existing APIs This refactor provides a more elegant and maintainable foundation for the cogpack build system while enabling more natural cross-phase relationships in blocks like the UV virtual environment handler. Files modified: - pkg/cogpack/plan/composer.go: Unified phase architecture - pkg/cogpack/plan/plan.go: Single stage list with PhaseKey metadata - pkg/cogpack/plan/composer_test.go: Updated for unified behavior - pkg/cogpack/stacks/python/uv_test.go: Demonstrates unified usage - devlog/2025-07-17-single-phase-list-architecture.md: Detailed documentation 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
Author
Parents
Loading