- Split complex nested functions into focused, single-responsibility helpers
- Created io/ directory with pure command builders and impure executors
- Eliminated parentheses complexity that was causing compilation errors
- SSH module now compiles and runs successfully with cleaner architecture
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add 'user' field mapping in get-ssh-config for compatibility
- Add default identity-file (~/.ssh/id_ed25519_admin) for sma user
- Fix update-flake function syntax error in deployment.scm
- All SSH operations (deploy, status, health, ssh command) now use sma user consistently
- Extract deploy-rs code into separate module (lab/deploy-rs.scm)
- Create new SSH + rsync deployment module (lab/ssh-deploy.scm)
- Make SSH + rsync the default deployment method
- Update help text and examples
- Add options: --boot, --test, --use-deploy-rs
- Supports same workflow as manual: rsync + nixos-rebuild --flake
This provides a faster, simpler deployment method that matches
the manual workflow: sudo nixos-rebuild --flake /path#machine
- Use incus-lts (6.0.4) instead of latest incus to avoid cowsql build issues
- Re-enable incus on congenital-optimist with LTS version
- Restore incus-admin group membership for users
- Fix missing parentheses in lab-tool SSH module
- This provides stable containerization without build failures
- Fix claude-code.el quelpa installation with correct Git URL
- Make auto-compile and flycheck conditional for little-rascal
- Auto-skip checks for local machines in lab-tool for faster deployments
- Prevent emacs "Cannot load auto-compile" and "arrayp, nil" errors
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Reorganized emacs configuration with profiles in modules/development/emacs.nix
- Updated machine configurations to use new emacs module structure
- Cleaned up lab-tool project by removing archive, research, testing, and utils directories
- Streamlined lab-tool to focus on core deployment functionality with deploy-rs
- Added DEVELOPMENT.md documentation for lab-tool
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add sma user module to little-rascal configuration for passwordless deployment
- Replace cosmic-greeter with greetd on both congenital-optimist and little-rascal
- Implement staggered auto-update system that updates remote machines first
- Add proper SSH user configuration for secure deployments
- Fix deployment permission issues by configuring admin user access
- Ensure orchestrator machine (congenital-optimist) reboots last to prevent SSH disconnection
- Add comprehensive error handling and update reporting
- Successfully tested lab tool deployment and auto-update on all machines
Fixes the critical issue where orchestrator reboot could break SSH connections
during multi-machine updates.
- Add little-rascal to lab-tool configuration with proper attributes
- Include little-rascal in machine management, SSH connectivity, and deployment targets
- Update README.md with examples including little-rascal
- Verify full integration: machines listing, status monitoring, SSH access, deployment ready
The little-rascal laptop is now fully managed through the unified lab-tool interface
alongside other Home Lab machines (congenital-optimist, sleeper-service, grey-area, reverse-proxy).
## New Machine: little-rascal
- Add Lenovo Yoga Slim 7 14ARE05 configuration (AMD Ryzen 7 4700U)
- Niri desktop with CLI login (greetd + tuigreet)
- zram swap configuration (25% of RAM with zstd)
- AMD-optimized hardware support and power management
- Based on congenital-optimist structure with laptop-specific additions
## Lab Tool Auto-Update System
- Implement Guile Scheme auto-update module (lab/auto-update.scm)
- Add health checks, logging, and safety features
- Integrate with existing deployment and machine management
- Update main CLI with auto-update and auto-update-status commands
- Create NixOS service module for automated updates
- Document complete implementation in simple-auto-update-plan.md
## MCP Integration
- Configure Task Master AI and Context7 MCP servers
- Set up local Ollama integration for AI processing
- Add proper environment configuration for existing models
## Infrastructure Updates
- Add little-rascal to flake.nix with deploy-rs support
- Fix common user configuration issues
- Create missing emacs.nix module
- Update package integrations
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Updated cmd-deploy function to accept and parse mode arguments
- Added validation for deployment modes with helpful error messages
- Updated command dispatcher to pass all arguments to deploy function
- Enhanced help text with mode documentation and examples
- Fixes issue where deploy always used 'boot' mode regardless of flags
Examples now working:
- lab deploy machine switch # Deploy and activate immediately
- lab deploy machine test # Deploy temporarily for testing
- lab deploy machine boot # Deploy for next boot (default)
- Optimize Ollama service configuration for maximum CPU performance
- Increase OLLAMA_NUM_PARALLEL from 2 to 4 workers
- Increase OLLAMA_CONTEXT_LENGTH from 4096 to 8192 tokens
- Add OLLAMA_KV_CACHE_TYPE=q8_0 for memory efficiency
- Set OLLAMA_LLM_LIBRARY=cpu_avx2 for optimal CPU performance
- Configure OpenMP threading with 8 threads and core binding
- Add comprehensive systemd resource limits and CPU quotas
- Remove incompatible NUMA policy setting
- Upgrade TaskMaster AI model ecosystem
- Main model: qwen3:4b → qwen2.5-coder:7b (specialized coding model)
- Research model: deepseek-r1:1.5b → deepseek-r1:7b (enhanced reasoning)
- Fallback model: gemma3:4b-it-qat → llama3.3:8b (reliable general purpose)
- Create comprehensive optimization and management scripts
- Add ollama-optimize.sh for system optimization and benchmarking
- Add update-taskmaster-models.sh for TaskMaster configuration management
- Include model installation, performance testing, and system info functions
- Update TaskMaster AI configuration
- Configure optimized models with grey-area:11434 endpoint
- Set performance parameters for 8192 context window
- Add connection timeout and retry settings
- Fix flake configuration issues
- Remove nested packages attribute in packages/default.nix
- Fix package references in modules/users/geir.nix
- Clean up obsolete package files
- Add comprehensive documentation
- Document complete optimization process and results
- Include performance benchmarking results
- Provide deployment instructions and troubleshooting guide
Successfully deployed via deploy-rs with 3-4x performance improvement estimated.
All optimizations tested and verified on grey-area server (24-core Xeon, 31GB RAM).
- Add lab/ module structure (core, machines, deployment, monitoring)
- Add mcp/ server stub for future MCP integration
- Update main.scm to use new modular architecture
- Fix utils/config.scm to export get-current-config function
- Create comprehensive test suite with all modules passing
- Update TODO.md with completed high priority tasks
Key improvements:
- Modular design following K.I.S.S principles
- Working CLI interface for status, machines, deploy commands
- Infrastructure status checking functional
- All module tests passing
- Clean separation of pure/impure functions
CLI now works: ./main.scm status, ./main.scm machines, ./main.scm deploy <machine>