# Stash Development Notes ## Project Status (as of last update) ### Version - Current Version: 0.1.0-alpha.1 ### Core Components 1. Main Script - Location: `stash.scm` - Status: Functional with recursive stashing support - Features: Command-line interface, recursive mode, help system 2. Modules - Location: `modules/stash/` - Components: - help.scm: Help text and command documentation - colors.scm: Terminal color support - log.scm: Logging functionality - paths.scm: Path manipulation utilities - conflict.scm: Conflict resolution - file-ops.scm: File operations - package.scm: Package information - tree.scm: Directory tree handling ### Guix Integration 1. Channel Configuration - Location: `.guix-channel/` - Status: Configured for distribution - URL: - Branch: main 2. Package Definition - Location: `.guix-channel/stash/packages/stash.scm` - Build System: GNU Build System - Dependencies: guile-3.0 ### Documentation 1. README.md - Basic installation instructions - Key features - Usage examples - Recently updated with Guix installation method 2. USER_GUIDE.md - Comprehensive installation guide - Shell configuration (Fish, Bash, Zsh) - Usage examples - Troubleshooting - Recently added with detailed setup instructions 3. channels.scm.example - Example Guix channel configuration - Updated to use Codeberg repository ### Development Environment - Build System: Copy Build System (for local development) - Test Environment: Created test-source/ directory with sample files - Shell Integration: Configured for Fish, Bash, and Zsh ### Recent Changes 1. Documentation Updates - Added USER_GUIDE.md with comprehensive setup instructions - Updated README.md with Guix installation method - Improved markdown formatting in documentation - Updated repository links to Codeberg 2. Package System - Configured proper Guix channel distribution - Updated package definition for channel distribution - Added minimal-package.scm for local development 3. Testing Improvements - Implemented comprehensive test suite for paths and tree modules - Fixed fold-tree implementation in tree module - Resolved module import conflicts - Fixed declarative module warnings - Added proper test coverage for path normalization - Improved test organization and clarity ### Next Steps 1. Documentation - Add API documentation for modules - Include more advanced usage examples 2. Features - Enhance conflict resolution - Add backup functionality - Improve error reporting ### Known Issues No major issues currently. All previous warnings have been resolved: - Fixed warning about canonicalize-path override by renaming to normalize-path - Fixed read-string import conflict in conflict module - Fixed declarative module warning in test runner - Auto-compilation messages resolved with GUILE_AUTO_COMPILE=0 ### Repository Structure 1. Root Directory - stash.scm: Main executable - run-tests.sh: Test runner script - .dev-notes.md: Development notes and tracking - README.md: Project overview - USER_GUIDE.md: Detailed user documentation 2. Modules - modules/stash/: Core functionality modules - tests/: Test suite and helpers - .guix-channel/: Guix distribution configuration