Skip to content

Releases: PabloViniegra/win_opt

v1.2.1

Choose a tag to compare

@PabloViniegra PabloViniegra released this 17 Jan 09:53

🎉 win_opt v1.2.1 - Release Notes

Release Date: January 17, 2025
Release Type: Stability and UX Enhancement


📋 Executive Summary

This version resolves critical visual issues with the TUI interface and adds comprehensive support for background operations with improved visual feedback. Important security and stability fixes have been implemented following Rust best practices.

🎯 Objectives Achieved

  • Clean UI: Windows commands no longer corrupt the TUI interface
  • Responsiveness: Application remains interactive during long operations
  • Visual Feedback: Animated spinner indicates real-time progress
  • Stability: Worker threads with robust resource management
  • Code Quality: Meets professional Rust standards

🐛 Critical Bugs Fixed

1. TUI Visual Corruption ⚠️ CRITICAL

Problem Identified:

  • "System Repair" (DISM + SFC) and "Windows Update Cleanup" operations displayed their output directly to the terminal
  • This completely corrupted the TUI interface, making it unreadable
  • UI froze for 5-30+ minutes without visual feedback

Root Cause:

// ❌ Problematic code (v1.2.0)
Command::new("cmd")
    .args(["/C", "DISM /Online /Cleanup-Image /RestoreHealth"])
    .status(); // Displays output directly on screen

Solution Implemented:

// ✅ Fixed code (v1.2.1)
Command::new("cmd")
    .args(["/C", "DISM /Online /Cleanup-Image /RestoreHealth"])
    .output(); // Captures output without displaying

Files Modified:

  • src/optimization.rs:65-90 - execute_repair()
  • src/optimization.rs:244-268 - execute_windows_update_cleanup()

Impact: 🔴 High - Affected core user experience


2. Frozen UI During Long Operations

Problem:

  • Main thread blocked during 5-30+ minute commands
  • User couldn't navigate, cancel, or see progress
  • No visual feedback that application was working

Solution:

  • Worker thread system using std::thread and mpsc::channel
  • Main thread processes messages without blocking
  • Animated spinner indicates real-time progress

Architecture Implemented:

┌─────────────────────────────────────────────────────────────┐
│                     MAIN THREAD (UI)                        │
│                                                             │
│  ┌──────────────────────────────────────────────────────┐  │
│  │  Event Loop (100ms)                                  │  │
│  │  ├─ process_worker_messages()  ◄────┐              │  │
│  │  ├─ draw() - Render UI               │              │  │
│  │  │  └─ render_spinner() (if running) │              │  │
│  │  └─ handle_events()                  │              │  │
│  └──────────────────────────────────────┼───────────────┘  │
│                                          │                  │
└──────────────────────────────────────────┼──────────────────┘
                                           │
                                  mpsc::channel
                                           │
┌──────────────────────────────────────────┼──────────────────┐
│                   WORKER THREAD           │                 │
│                                           │                 │
│  ┌──────────────────────────────────────▼──────────────┐   │
│  │  spawn_repair_worker()                              │   │
│  │  ├─ Execute DISM (5-30 min) ─────────┐             │   │
│  │  │  └─ send_log() ──────────────────┼─────────────►│   │
│  │  ├─ Check cancellation flag          │             │   │
│  │  ├─ Execute SFC (5-30 min) ──────────┘             │   │
│  │  └─ send_state(Completed)                          │   │
│  └─────────────────────────────────────────────────────┘   │
│                                                             │
└─────────────────────────────────────────────────────────────┘

New Modules:

  • src/executor.rs (259 lines) - Complete worker system
  • src/types.rs:37-75 - Messaging types and handles

✨ New Features

1. Worker Thread System

File: src/executor.rs (NEW)

Public Functions:

  • spawn_repair_worker() - Execute DISM + SFC in background
  • spawn_windows_update_worker() - Windows Update cleanup
  • spawn_command_worker() - Generic worker for custom commands

Features:

  • ✅ Bidirectional communication via mpsc::channel
  • ✅ Complete stdout/stderr capture
  • ✅ UTF-8 conversion with from_utf8_lossy (Windows output compatible)
  • ✅ Cancellation support with AtomicBool
  • ✅ Automatic resource cleanup with Drop trait

Usage Example:

// Spawn worker
app.worker_handle = Some(spawn_repair_worker());

// Worker sends messages to main thread
while let Ok(msg) = handle.receiver.try_recv() {
    match msg {
        WorkerMessage::Log(text) => app.operation_logs.push(text),
        WorkerMessage::StateChange(state) => app.operation_state = state,
        WorkerMessage::Completed => { /* Operation completed */ }
    }
}

2. Animated Spinner

File: src/app.rs:993-1014

Implementation:

fn render_spinner(&self, frame: &mut Frame, area: Rect) {
    let spinner_text = Line::from(vec![
        Span::raw(self.spinner.frame())  // ⠋ ⠙ ⠹ ⠸ ⠼ ⠴ ⠦ ⠧ ⠇ ⠏
            .fg(colors.brand_accent)
            .bold(),
        Span::raw(" Operation in progress..."),
    ]);
    // ... render
}

Available Animations:

  • Default spinner: ⠋ ⠙ ⠹ ⠸ ⠼ ⠴ ⠦ ⠧ ⠇ ⠏
  • Dots spinner: ⣾ ⣽ ⣻ ⢿ ⡿ ⣟ ⣯ ⣷
  • Blocks spinner: ▁ ▂ ▃ ▄ ▅ ▆ ▇ █
  • Circle spinner: ◐ ◓ ◑ ◒

Features:

  • Automatic time-based updates
  • No performance impact (calculated during render)
  • Adaptive based on operation state

3. Extended Operation States

File: src/types.rs:21-27

New States:

pub enum OperationState {
    Idle,
    Starting,    // NEW - Preparing worker
    Running,     // Operation executing
    Completed,   // Finished successfully
    Failed,      // NEW - Operation error
}

Transitions:

Idle → Starting → Running → Completed
                          ↘ Failed

4. Inter-Thread Messaging System

File: src/types.rs:37-50

Message Types:

pub enum WorkerMessage {
    Log(String),                  // Log line
    StateChange(OperationState),  // State change
    StatsUpdate(CleanStats),      // Statistics update
    Error(String),                // Error occurred
    Completed,                    // Operation completed
}

Worker Handle:

pub struct WorkerHandle {
    pub receiver: mpsc::Receiver<WorkerMessage>,
    pub thread_handle: Option<JoinHandle<()>>,
    pub cancel_flag: Arc<AtomicBool>,
}

🔒 Security and Stability Improvements

1. Drop Implementation for WorkerHandle 🛡️

Problem: Worker threads weren't joined when dropped, causing resource leaks.

Solution:

impl Drop for WorkerHandle {
    fn drop(&mut self) {
        // Signal cancellation to worker
        self.cancel_flag.store(true, Ordering::Relaxed);

        // Join thread to release resources
        if let Some(handle) = self.thread_handle.take() {
            let _ = handle.join();
        }
    }
}

Benefit: Prevents memory leaks and ensures resource cleanup.


2. Cancellation Support with AtomicBool

Implementation:

// Create shared flag
let cancel_flag = Arc::new(AtomicBool::new(false));
let cancel_flag_clone = cancel_flag.clone();

// In worker, check before each long command
if cancel_flag_clone.load(Ordering::Relaxed) {
    send_log(&sender, "Operation cancelled by user".to_string());
    return;
}

Usage:

  • User navigates away → Drop sets flag → Worker terminates
  • Avoids wasting resources on operations user cancelled

3. Robust Channel Error Handling

Previous Problem:

// ❌ Silently ignored errors
fn send_log(sender: &Sender<WorkerMessage>, message: String) {
    let _ = sender.send(WorkerMessage::Log(message));
}

Current Solution:

// ✅ Detects disconnection and terminates worker
fn send_log(sender: &Sender<WorkerMessage>, message: String) -> bool {
    sender.send(WorkerMessage::Log(message)).is_ok()
}

// In execute_command:
if !send_log(sender, "Executing command...".to_string()) {
    return false; // Channel closed, stop work
}

Benefit: Workers terminate immediately if receiver is dropped, saving CPU.


4. Windows Command Error Handling

Improvements:

  • Error-tolerant UTF-8 conversion with from_utf8_lossy
  • Separate stdout and stderr capture
  • Exit code logging
  • Clear error propagation to user

📊 Performance Improvements

1. Dead Code Elimination

Removed:

  • last_spinner_update: Instant - Unused field
  • Unnecessary std::time::Instant import

Benefit: Cleaner code and less confusion.


2. Optimized Event Loop

Configuration:

// Optimized main loop
while !self.should_quit {
    self.process_worker_messages();  // Non-blocking with try_recv()
    terminal.draw(|frame| self.draw(frame))?;
    self.handle_events()?;  // Poll with 100ms timeout
}

Features:

  • try_recv() doesn't block main thread
  • All available messages processed each iteration
  • Allows responsive UI during long operations

3. Dynamic Layout Based on State

let chunks = if show_spinner {
    Layout::default()
        .constraints([
            Constraint::Length(3), // Title
            Constraint::Length(3), // Spinner
            Constraint::Min(7),    // Logs
            Constraint::Length(3), // Footer
        ])
} else {
    Layout::default()
        .constraints([
            Constraint::Length(3),  // Title
...
Read more

v1.2.0

Choose a tag to compare

@PabloViniegra PabloViniegra released this 05 Jan 21:29

Release Notes - win_opt

v1.2.0 (2026-01-05)

🎉 Major Features

🌍 Internationalization (i18n)

  • Dual Language Support: Complete Spanish and English translations
  • Runtime Language Switching: Press L to toggle between languages instantly
  • 100+ Translated Strings: All UI elements, messages, and descriptions
  • Persistent Preference: Language choice saved in configuration file

📝 Structured Logging System

  • Multi-Level Logging: Debug, Info, Warning, and Error levels
  • Dual Output:
    • File logging with daily rotation in %APPDATA%\win_opt\logs\
    • Real-time UI feedback during operations
  • Tracing Integration: Built on tracing ecosystem for structured events
  • Configurable Retention: Automatic log cleanup based on retention policy

⚙️ Configuration System

  • TOML-Based Settings: User preferences stored in %APPDATA%\win_opt\config.toml
  • Auto-Save: Configuration persists automatically on exit
  • Configurable Options:
    • Appearance: Theme selection (Dark/Light) with memory
    • Language: Preferred language with persistence
    • Logging: Level, file logging toggle, retention days
  • Example Configuration: Included config.example.toml with documentation

🎨 Modern UI Redesign

Color Palettes
  • Dark Theme: Cyberpunk neon aesthetic

    • Vibrant purple (#8B5CF6), pink (#EC4899), and emerald (#34D399) accents
    • Deep dark blue background (#0F172A)
    • High contrast for better readability
  • Light Theme: Modern vibrant design

    • Saturated colors on pure white background
    • Blue (#2563EB), orange (#F97316), and teal (#14B8A6) palette
    • Clean and professional appearance
Visual Components
  • Modern ASCII Banner: Block character logo with decorative borders

  • Categorized Menu:

    • 3 visual categories: CLEANUP, OPTIMIZATION, SYSTEM
    • Colored category headers with separator lines
    • Selection indicator (▶) for better UX
  • Horizontal Stats Cards:

    • Replaced vertical lists with 3 side-by-side cards
    • Bordered containers with centered icons
    • Underlined numbers for emphasis
    • Shows: Files Deleted, Skipped, Space Freed
Animation System
  • Progress Indicators: Unicode-based animated progress bars

    • Smooth gradient with characters: █ ▉ ▊ ▋ ▌ ▍ ▎ ▏ ░
    • Percentage display with color-coded visualization
  • Spinners: Multiple animation styles

    • Rotating characters for operations in progress
    • Dots animation using Braille patterns
    • Block-based loading indicators
    • Circular progress animations
  • Visual Graphs:

    • Memory Usage: Animated progress bars showing RAM utilization
    • Disk Usage: Visual bars for each drive's space consumption
    • Sparklines: Mini line graphs using characters ▁▂▃▄▅▆▇█
    • Bar Charts: Vertical bars for data visualization
  • Pulse Effects: Smooth opacity animations for attention-grabbing elements

🔧 Technical Improvements

New Dependencies

tracing = "0.1"                    # Structured logging
tracing-subscriber = "0.3"         # Log formatting and filtering
tracing-appender = "0.2"           # File appender with rotation
serde = { version = "1.0" }        # Serialization
toml = "0.8"                       # Configuration format
directories = "5.0"                # Cross-platform paths

Code Architecture

  • Modular Design: New modules for clear separation of concerns

    • src/logger.rs: Logging infrastructure
    • src/i18n.rs: Translation system
    • src/config.rs: Configuration management
    • src/animation.rs: Animation utilities
  • Type-Safe Translations: Enum-based i18n keys prevent typos

  • Centralized Configuration: Single source of truth for user preferences

  • Testable Animations: Complete unit test coverage for animation functions

📊 Testing

  • 37 Total Tests: All passing
  • New Test Coverage:
    • Animation functions (progress bars, spinners, sparklines)
    • Configuration serialization/deserialization
    • i18n language switching and translations
    • Theme consistency and color palettes
    • Logger initialization and formatting

🐛 Bug Fixes

  • Fixed Unicode character byte length calculation in sparkline tests
  • Removed unused imports flagged by clippy
  • Improved error handling in file operations with structured logging

📝 Documentation

  • Added config.example.toml with comprehensive comments
  • Updated CLAUDE.md with new architecture details
  • Improved inline documentation for public APIs
  • Added RELEASE_NOTES.md (this file)

🚀 Performance

  • Optimized UI rendering with efficient widget reuse
  • Minimal allocation in hot paths (animation frame generation)
  • Lazy loading of system information to reduce startup time

🔄 Migration Guide

From v1.1.0 to v1.2.0

No breaking changes - v1.2.0 is fully backward compatible.

New Features to Explore:

  1. Press L in any view to switch languages
  2. Press T in any view to toggle theme (Dark/Light)
  3. Configuration file created automatically at %APPDATA%\win_opt\config.toml
  4. Logs available at %APPDATA%\win_opt\logs\win_opt.log with daily rotation

Optional Configuration:
Copy config.example.toml to %APPDATA%\win_opt\config.toml and customize:

[appearance]
theme = "Dark"              # or "Light"
remember_theme = true

[language]
language = "Spanish"        # or "English"
remember_language = true

[logging]
level = "info"              # debug, info, warn, error
file_logging = true
retention_days = 7

v1.1.0 (Previous Release)

Features

  • Windows 11 optimization CLI tool
  • System maintenance utilities:
    • Clean temporary files
    • Flush DNS and reset Winsock
    • System file verification (SFC/DISM)
    • System information display
  • TUI interface with ratatui
  • Basic theme support
  • Administrator privilege detection
  • Spanish language interface

Technical Stack

  • Rust 2024 edition
  • ratatui 0.29 for TUI
  • crossterm 0.28 for terminal control
  • sysinfo 0.30 for system information
  • Optimized release profile for minimal binary size

Contributing

Found a bug or have a feature request? Please open an issue at:
https://github.com/PabloViniegra/win_opt/issues

License

MIT License - See LICENSE file for details

v1.1.0

Choose a tag to compare

@PabloViniegra PabloViniegra released this 05 Jan 02:13

Release Notes - win_opt

[1.1.0] - 2025-01-05

🎉 Resumen

Esta versión incluye 5 nuevas herramientas de optimización, una refactorización completa de la arquitectura, mejoras críticas de seguridad, y un aumento significativo en la cobertura de tests. La aplicación ahora sigue las mejores prácticas de Rust y está lista para producción.


✨ Nuevas Características

Liberación de Espacio en Disco

🌐 Limpieza de Caché de Navegadores

  • Limpia automáticamente la caché de Google Chrome, Microsoft Edge y Mozilla Firefox
  • Permite recuperar cientos de MB de espacio en disco
  • Muestra estadísticas detalladas de archivos eliminados

📋 Limpieza de Logs del Sistema

  • Elimina archivos .log, .txt, .etl y .tmp de directorios del sistema
  • Limpia C:\Windows\Logs, C:\Windows\Temp, y C:\Windows\Prefetch
  • Proceso seguro con manejo de permisos de administrador

🗑️ Vaciado de Papelera de Reciclaje

  • Vacía completamente la papelera de reciclaje con un solo clic
  • Usa PowerShell para garantizar eliminación completa
  • Libera espacio instantáneamente

Optimización de Rendimiento

🚀 Optimizador de Programas de Inicio

  • Lista todos los programas que se ejecutan al iniciar Windows
  • Utiliza WMIC para obtener información detallada
  • Proporciona recomendaciones para mejorar el tiempo de arranque
  • Muestra ruta de ejecución de cada programa

🎨 Optimización de Efectos Visuales

  • Deshabilita animaciones innecesarias de Windows
  • Desactiva transparencias y efectos de sombra
  • Ajusta el sistema para máximo rendimiento
  • Ideal para equipos con recursos limitados

Interfaz de Usuario

🌓 Sistema de Temas Dinámico

  • Alterna entre modo claro (pasteles) y modo oscuro (vibrantes)
  • Tecla Tab para cambiar de tema en tiempo real
  • Paletas de colores cuidadosamente diseñadas
  • Soporte completo en todas las vistas

🔧 Mejoras Técnicas

Arquitectura del Código

📦 Modularización Completa

  • Refactorizado de un archivo monolítico (1890 líneas) a 8 módulos especializados
  • Separación clara de responsabilidades:
    • lib.rs - Biblioteca principal y exports públicos
    • main.rs - Punto de entrada minimalista (8 líneas)
    • app.rs - Lógica de aplicación y UI
    • cleanup.rs - Operaciones de limpieza
    • optimization.rs - Operaciones de optimización
    • theme.rs - Sistema de temas y colores
    • types.rs - Definiciones de tipos de dominio
    • utils.rs - Utilidades compartidas
    • error.rs - Sistema de errores tipados

🎯 Patrón de Diseño Mejorado

  • Eliminado anti-patrón de trait extension
  • Uso de funciones libres en lugar de traits innecesarios
  • Código más idiomático y fácil de mantener
  • Mejor testabilidad y modularidad

Sistema de Errores

⚠️ Manejo de Errores Tipado

  • Implementado con thiserror para errores robustos
  • Tipos de error personalizados:
    • AdminRequired - Permisos insuficientes
    • Io - Errores de I/O con contexto
    • CommandFailed - Fallos en comandos del sistema
    • InvalidPath - Rutas no válidas
    • InvalidService - Servicios no permitidos
  • Alias Result<T> para simplificar firmas

🔒 Seguridad

Correcciones Críticas

🛡️ Eliminada Vulnerabilidad de Command Injection

  • ANTES: Uso de cmd.exe con formato de strings para eliminar archivos
  • AHORA: Uso directo de APIs de std::fs con validación estricta
  • Protección contra path traversal en limpieza de Prefetch
  • Validación de que todas las rutas están dentro del directorio esperado

🔐 Validación con Whitelists

  • Servicios de Windows validados contra lista permitida
  • Solo servicios seguros pueden ser modificados:
    • DiagTrack (telemetría)
    • SysMain (SuperFetch)
    • dmwappushservice (telemetría)
    • WerSvc (informes de error)
  • Previene modificaciones accidentales de servicios críticos

🚨 Seguridad de Rutas

  • Validación estricta de variables de entorno (USERPROFILE)
  • Verificación de que las rutas comienzan con el directorio base esperado
  • Protección contra TOCTOU (Time-of-Check Time-of-Use)

✅ Testing

Cobertura Significativamente Mejorada

Antes: 3 tests (~5% cobertura)
Ahora: 18 tests (~30% cobertura) - +500% de aumento

Tests Agregados:

theme.rs - 4 tests:

  • Verificación de igualdad y copia de temas
  • Diferenciación entre paletas clara y oscura
  • Consistencia de from_theme()
  • Validación de campos de color

types.rs - 6 tests:

  • Verificación de traits Copy y PartialEq
  • Unicidad de variantes de View
  • Transiciones de OperationState
  • Creación y clonación de CleanStats

utils.rs - 5 tests mejorados:

  • Formateo de tiempo (segundos, minutos, horas, días)
  • Validación con valores grandes (30+ días)
  • Consistencia de verificación de permisos admin

app.rs - 1 test:

  • Inicialización correcta del estado por defecto

Todos los tests pasan: ✅ 18/18


🐛 Correcciones de Bugs

  • Navegación de menú: Corregido límite máximo de 8 a 13 items
  • Imports no utilizados: Eliminado import Color no usado en app.rs
  • Consistencia de nombres: Unificados prefijos render_* para funciones de UI
  • Formato de código: 100% conforme a rustfmt

📊 Rendimiento

  • Tamaño de binario: Optimizado con opt-level = "z" y LTO
  • Link-time optimization: Habilitado para mejor rendimiento
  • Strip symbols: Eliminados símbolos de debug en release
  • Panic strategy: abort para menor tamaño de binario

📚 Documentación

Archivos Actualizados

  • README.md - Actualizado con nuevas características y versión 1.1.0
  • SECURITY.md - Políticas de seguridad y reporte de vulnerabilidades
  • CLAUDE.md - Guía de desarrollo y estándares de código
  • Cargo.toml - Metadatos actualizados a v1.1.0

Nueva Documentación

  • src/error.rs - Documentación de tipos de error
  • Tests con comentarios explicativos
  • Comentarios de seguridad en código crítico

🔄 Cambios Incompatibles

⚠️ Cambios en la API Interna:

Si estabas usando win_opt como biblioteca (poco probable para una TUI):

Antes:

use win_opt::cleanup::CleanupOperations;
app.execute_clean(); // Método de trait

Ahora:

use win_opt::cleanup;
cleanup::execute_clean(&mut app); // Función libre

Nota: Esto solo afecta si usabas win_opt como biblioteca. El binario ejecutable funciona exactamente igual.


📦 Dependencias

Nuevas

  • thiserror = "2.0.17" - Manejo de errores tipados

Existentes (sin cambios)

  • ratatui = "0.29" - Framework de UI terminal
  • crossterm = "0.28" - Manipulación de terminal
  • sysinfo = "0.30" - Información del sistema

🛠️ Compilación y Build

Requisitos

  • Rust 2024 edition o posterior
  • Windows 7/8/10/11 (64-bit)
  • Permisos de administrador para operaciones avanzadas

Comandos de Build

# Development
cargo build

# Release optimizado
cargo build --release

# Ejecutar tests
cargo test

# Linter
cargo clippy

# Formato
cargo fmt

Scripts de Build

Linux/macOS:

./build_release.sh
./build_release.sh --clean

Windows:

.\build_release.ps1
.\build_release.ps1 -Clean
.\build_release.ps1 -Sign -CertPath .\cert.pfx

🎯 Métricas de Calidad

Métrica v1.0.0 v1.1.0 Mejora
Líneas de código ~1890 (1 archivo) ~2100 (8 módulos) Mejor organización
Tests 3 18 +500%
Cobertura ~5% ~30% +600%
Clippy warnings 0 0 Mantenido
Vulnerabilidades 1 crítica 0 ✅ Resuelto
Rust idiomático 7/10 9/10 +28%
Seguridad 7/10 9/10 +28%

🚀 Instalación

Descarga

Descarga win_opt.exe desde la página de Releases.

Verificación SHA256

# Windows
Get-FileHash -Algorithm SHA256 win_opt.exe

# Linux
sha256sum win_opt.exe

Compara el hash con el publicado en el release.

Build desde Código Fuente

git clone https://github.com/PabloViniegra/win_opt.git
cd win_opt
git checkout v1.1.0
cargo build --release

⚠️ Notas Importantes

Antivirus

Algunos antivirus pueden mostrar falsos positivos debido a las operaciones que realiza la herramienta (limpieza de archivos, modificación de servicios, etc.). Esto es normal para herramientas de optimización de sistema.

Soluciones:

  1. Agregar excepción en Windows Defender:
    Add-MpPreference -ExclusionPath "C:\ruta\a\win_opt.exe"
  2. Compilar desde código fuente
  3. Revisar el código (es open source)
  4. Ver documentación completa en SECURITY.md

Permisos de Administrador

Las siguientes operaciones requieren ejecutar como administrador:

  • ✅ Reparación del sistema (DISM/SFC)
  • ✅ Optimización avanzada (servicios, prefetch)
  • ✅ Limpieza de Windows Update
  • ✅ Configuración de privacidad (telemetría)
  • ✅ Optimización de efectos visuales

Las operaciones de limpieza básica no requieren permisos elevados.


🙏 Agradecimientos

  • Comunidad de Rust por las excelentes herramientas
  • ratatui - Framework TUI
  • crossterm - Terminal library
  • sysinfo - System information
  • thiserror - Error handling

📝 Changelog Técnico Completo

Añadido

  • Limpieza de caché de navegadores (Chrome, Edge, Firefox)
  • Limpieza de logs del sistema (Windows\Logs, Windows\Temp)
  • Vaciado de papelera de recic...
Read more

v1.0.0

Choose a tag to compare

@PabloViniegra PabloViniegra released this 04 Jan 15:11

Version 1.0.0 - Initial Release (2026-01-04)

Overview

This is the initial stable release of win_opt, a modern Windows 11 optimization and maintenance tool built with Rust. The application features a complete Terminal User Interface (TUI) powered by ratatui, providing an intuitive and efficient way to perform system maintenance tasks.

Features

System Maintenance Operations

Temporary Files Cleanup
  • Removes all files from the Windows temporary directory (%TEMP%)
  • Gracefully handles locked files (skips files in use)
  • Provides real-time feedback on deletion operations
  • Displays total files processed and deleted
Windows Update Cleanup
  • Executes Disk Cleanup utility (cleanmgr) with automated settings
  • Runs DISM component store cleanup (/StartComponentCleanup)
  • Frees up space consumed by Windows Update cache
  • Requires administrator privileges
Network Utilities
  • Flushes DNS resolver cache (ipconfig /flushdns)
  • Resets Winsock catalog (netsh winsock reset)
  • Resolves common network connectivity issues
  • Provides status feedback for each operation
System Repair
  • Runs DISM image health check and repair (/RestoreHealth)
  • Executes System File Checker (sfc /scannow)
  • Verifies and repairs corrupted system files
  • Requires administrator privileges
  • Displays detailed operation progress

Performance Optimization

Advanced Optimization
  • Cleans Windows Prefetch directory
  • Activates high-performance power plan
  • Disables telemetry services:
    • DiagTrack (Connected User Experiences and Telemetry)
    • SysMain (SuperFetch - recommended for SSD users)
  • Provides detailed feedback for each optimization step
  • Requires administrator privileges

Privacy & Security

Privacy Configuration
  • Disables telemetry services:
    • DiagTrack (Diagnostics Tracking Service)
    • dmwappushservice (WAP Push Message Routing Service)
    • WerSvc (Windows Error Reporting Service)
  • Disables telemetry-related scheduled tasks:
    • Microsoft Compatibility Appraiser
    • Program Data Updater
    • Autochk Proxy
    • Customer Experience Improvement Program tasks
  • Reduces data collection and improves privacy
  • Requires administrator privileges

System Information

Hardware & OS Details
  • Operating System name and version
  • CPU information and core count
  • Total and available RAM
  • Disk usage statistics
  • Real-time system metrics
  • Color-coded information display

User Interface

Design

  • Modern Terminal User Interface with color-coded elements
  • ASCII art banner with gradient simulation
  • Rounded borders using Unicode characters
  • Tailwind CSS-inspired color palette:
    • Brand colors: Indigo, Purple, Pink
    • Semantic colors: Green (success), Amber (warning), Red (error), Blue (info)
    • UI colors: Slate variants for optimal readability

Navigation

  • Keyboard-driven interface (no mouse required)
  • Arrow keys for menu navigation
  • Vim-style navigation support (j/k keys)
  • Enter key for selection/execution
  • q or Esc for exit/back navigation

Features

  • Main menu with 8 operations
  • Icon-enhanced menu items with descriptions
  • Operation-specific views with real-time feedback
  • Scrollable log output with automatic color coding
  • Progress indicators for long-running operations
  • Footer with keyboard shortcut hints

Technical Specifications

Technology Stack

  • Language: Rust (Edition 2024)
  • TUI Framework: ratatui 0.29
  • Terminal Backend: crossterm 0.28
  • System Info: sysinfo 0.30

Architecture

  • Single-binary executable (5.4 MB)
  • Event-driven architecture with state machine
  • View-based navigation system
  • Widget composition pattern
  • Windows API integration via Command execution

Code Quality

  • Zero clippy warnings (-D warnings policy)
  • Standard rustfmt formatting
  • Comprehensive error handling
  • No unsafe code blocks
  • No unwrap() calls in production code

Platform Support

  • Windows 7/8/10/11 (64-bit)
  • PE32+ executable format
  • Compatible with modern Windows systems

Administrator Requirements

The following operations require administrator privileges:

  • System Repair (DISM/SFC)
  • Advanced Optimization (service management, power plan)
  • Privacy Configuration (service and task management)

Users will be notified if administrator privileges are required but not available.

Build & Deployment

Compilation

  • Built with Rust 2024 edition
  • Optimized release build with --release flag
  • Cross-compilation support for Windows targets
  • Docker-based cross-compilation via cross tool

Dependencies

All dependencies are statically linked into the binary:

  • ratatui: Terminal UI rendering
  • crossterm: Cross-platform terminal manipulation
  • sysinfo: System information gathering

Known Limitations

  1. Windows-only: The application is designed specifically for Windows systems
  2. Language: User interface text is in Spanish (internationalization planned for future releases)
  3. Administrator Detection: Uses net session heuristic which may have edge cases
  4. File Locking: Temporary file cleanup skips files locked by running processes
  5. No Undo: Operations are executed immediately without confirmation dialogs

Security Notes

  • All system commands are executed via Windows Command Processor
  • No network communication or data transmission
  • All operations are performed locally
  • Telemetry disabling is optional and reversible
  • Log output provides transparency for all operations

Installation

No installation required. The application is a standalone executable:

  1. Download win_opt.exe from releases
  2. Run directly or execute as administrator (recommended)
  3. Navigate using keyboard controls

Future Considerations

This initial release provides a solid foundation for Windows system optimization. Future versions may include:

  • Internationalization (English UI option)
  • Configuration file support
  • Operation confirmation prompts
  • Undo/rollback functionality
  • Extended system diagnostics
  • Custom optimization profiles

Acknowledgments

Built with modern Rust ecosystem tools and libraries:

  • ratatui community for the excellent TUI framework
  • crossterm for cross-platform terminal support
  • sysinfo for system information gathering

Release Date: January 4, 2026
Build Target: x86_64-pc-windows-gnu
Binary Size: 5.4 MB
Rust Version: 1.83+ (Edition 2026)