feat: Add little-rascal laptop config and lab-tool auto-update system

## 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>
This commit is contained in:
Geir Okkenhaug Jerstad 2025-06-27 22:03:54 +02:00
parent 5e1061382c
commit 6eac143f57
19 changed files with 1287 additions and 559 deletions

View file

@ -13,7 +13,8 @@
(utils logging)
(lab core)
(lab machines)
(lab deployment))
(lab deployment)
(lab auto-update))
;; Initialize logging
(set-log-level! 'info)
@ -32,6 +33,8 @@ COMMANDS:
Available modes: boot (default), test, switch
deploy-all Deploy to all machines
update Update flake inputs
auto-update Perform automatic system update with health checks
auto-update-status Show auto-update service status and logs
health [machine] Check machine health (all if no machine specified)
ssh <machine> SSH to machine
test-modules Test modular implementation
@ -45,6 +48,8 @@ EXAMPLES:
lab deploy congenital-optimist test # Deploy temporarily for testing
lab deploy-all
lab update
lab auto-update # Perform automatic update with reboot
lab auto-update-status # Show auto-update logs and status
lab health
lab health sleeper-service
lab ssh sleeper-service
@ -202,6 +207,18 @@ Home lab root: ~a
(format #t " ~a: ~a\n" machine status)))
results)))))
(define (cmd-auto-update)
"Perform automatic system update"
(log-info "Starting automatic system update...")
(let ((result (auto-update-system '((auto-reboot . #t)))))
(if result
(log-success "Automatic update completed successfully")
(log-error "Automatic update failed"))))
(define (cmd-auto-update-status)
"Show auto-update status and logs"
(auto-update-status))
;; Main command dispatcher
(define (dispatch-command command args)
"Dispatch command with appropriate handler"
@ -228,6 +245,12 @@ Home lab root: ~a
('update
(cmd-update))
('auto-update
(cmd-auto-update))
('auto-update-status
(cmd-auto-update-status))
('health
(cmd-health args))