Skip to content

Releases: oaklensart/fixxer

v1.2.0 - Multi-Provider Vision API Support

Choose a tag to compare

@BandwagonVibes BandwagonVibes released this 05 Jan 00:38

✅ Added
OpenAI-compatible API provider adapter - Support for llama.cpp, vLLM, LocalAI, Jan, and any OpenAI-compatible vision API (#8)
Provider abstraction layer - Clean architecture with VisionProvider base class
OllamaProvider - Default provider (backward compatible, zero config changes required)
OpenAICompatProvider - Handles OpenAI /v1/chat/completions format with automatic payload translation
Environment variable configuration - FIXXER_API_PROVIDER and FIXXER_API_ENDPOINT for runtime provider selection
Config file API section - [api] section in ~/.fixxer.conf for provider settings
Configuration priority system - Environment Variables > Config File > Defaults
🔄 Changed
Vision API calls now use provider abstraction instead of direct Ollama integration
Connection checking is now provider-agnostic
Default behavior unchanged - Ollama remains the zero-config default
Fixed
Improved error handling for vision API failures across different providers
✍️ Technical Details
New vision_providers/ module with factory pattern for provider instantiation
Payload translation from Ollama format to OpenAI multi-modal content structure
Graceful fallback for connection checks (tries /v1/models then base URL)
Maintains full backward compatibility with existing Ollama workflows

FIXXER v1.1.0 - Modular Architecture Refactor

Choose a tag to compare

@BandwagonVibes BandwagonVibes released this 14 Dec 17:42
2bf7199

FIXXER v1.1.0 - Modular Architecture Refactor

🏗️ Major Refactor

Split monolithic engine.py into focused, maintainable modules:

  • config.py - Configuration management and app settings
  • security.py - SHA256 hash verification & sidecar file generation
  • vision.py - AI/Ollama integration & RAW processing (rawpy)
  • engine.py - Workflow orchestration (now focused & clean)

🔧 Improvements

  • Cross-platform defaults - Default destination now ~/Pictures/FIXXER_Output (works on macOS/Linux/Windows)
  • Case-insensitive file matching - Finds both .jpg and .JPG files
  • Removed deprecated tools - Replaced dcraw with rawpy (Python-native, cross-platform)
  • Cleaned up dead code - Removed MockSessionTracker, check_dcraw(), etc.
  • Fixed Easy Button workflow - Simple Sort now works correctly

📚 Documentation

  • Updated README with modular project structure
  • Clarified system requirements (rawpy/exifread via pip)
  • Cleaned up .gitignore duplicates
  • Version metadata synced across all files

🎯 Type

Architecture refactor + documentation sync - backward compatible


Built with precision. Secured with cryptography. Powered by AI.

FIXXER ✞ v1.0.1 - SRC Layout & Homebrew Support

Choose a tag to compare

@BandwagonVibes BandwagonVibes released this 05 Dec 01:43

What's New

  • Migrated to professional src/ package layout for reliable pip/Homebrew installation
  • Added Homebrew tap support: brew tap bandwagonvibes/fixxer
  • Improved CSS asset loading via importlib.resources
  • Added python -m fixxer module entry point

Install

   brew tap bandwagonvibes/fixxer
   brew install fixxer

Or via pip:

   pip install git+https://github.com/BandwagonVibes/fixxer.git

FIXXER ✞ v1.0 - "CHAOS PATCHED // LOGIC INJECTED

Choose a tag to compare

@BandwagonVibes BandwagonVibes released this 21 Nov 03:15

🎯 FIXXER v1.0 - Professional Photography Workflow Automation

Evolved from photosort to FIXXER ✞ PRO

A major upgrade bringing professional-grade features, cryptographic integrity verification, and dual UI modes for serious photographers who demand both speed and safety in their digital asset management.


✨ What's New in v1.0

🔐 Hash-Verified File Operations

  • SHA256 integrity checking on every file move operation
  • Halt-on-mismatch protection prevents silent corruption
  • JSON sidecar files (.fixxer.json) create permanent audit trails
  • Production-tested: 120+ files, zero corruption events

🎨 Pro Mode - "Phantom Redline"

  • Toggle with F12 for tactical precision dashboard
  • Milestone HUD with real-time workflow stats (BURSTS, TIER A/B/C, HEROES, ARCHIVED, TIME)
  • Redline sparklines for system monitoring (RAM/CPU)
  • Minimal, professional aesthetic for focused work

📷 120+ RAW Format Support

  • Python-native RAW processing via rawpy (no external dependencies)
  • Cross-platform: Linux, macOS, Windows
  • Supports: RW2, CR2, CR3, NEF, ARW, DNG, RAF, ORF, PEF, SRW, and 100+ more
  • Zero temp files - pure in-memory processing

🤖 AI Vision Integration

  • Ollama-powered naming (qwen2.5vl, llava, bakllava)
  • Semantic burst detection using CLIP embeddings
  • AI session naming from visual analysis
  • Creative critique mode for artistic feedback

📊 Quality Analysis Pipeline

  • BRISQUE quality scoring for sharpness assessment
  • Exposure analysis (crushed blacks, blown highlights)
  • Automated culling into Tier A/B/C folders
  • Smart burst grouping based on visual similarity, not timestamps

🔧 Bug Fixes & Improvements

Fixed:

  • ✅ Unicode corruption in photosort_engine.py (emojis/symbols now render correctly)
  • ✅ Pro Mode logo display in TUI
  • ✅ Cross-platform RAW file handling (replaced macOS-only sips)
  • ✅ Thread safety in logging and progress updates

Improved:

  • ✅ Professional README with architecture diagrams
  • ✅ Modern Python packaging (pyproject.toml)
  • ✅ Comprehensive dependency documentation
  • ✅ Smart .gitignore (protects user photos and config)

📦 Installation

Requirements:

  • Python 3.10+
  • Ollama (for AI vision features)

Quick Start:

# Clone the repository
git clone https://github.com/BandwagonVibes/fixxer.git
cd fixxer

# Create virtual environment
python3 -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# Install dependencies
pip install -r requirements.txt

# Pull an AI vision model
ollama pull qwen2.5vl:3b

# Launch FIXXER
python3 photosort_tui_styled.py

📚 Documentation

  • README.md - Complete feature guide
  • requirements.txt - Dependencies with platform notes
  • Configuration - Stored in ~/.photosort.conf

🎯 Workflows Included

Workflow Description
Auto Complete pipeline: burst stack → cull → AI name → archive
Bursts CLIP-based semantic grouping + AI naming of best picks
Cull Quality analysis → Tier A/B/C sorting
Stats EXIF insights (cameras, lenses, lighting conditions)
Critique AI creative feedback (composition, mood, suggestions)
Easy Archive Simple AI naming + keyword folders (no culling)

🔒 Security & Integrity

Every file operation is protected by:

  • SHA256 hash calculation before move
  • SHA256 hash verification after move
  • Automatic sidecar file generation (.fixxer.json)
  • Workflow halts on corruption detection (RuntimeError)

Example sidecar file:

{
  "fixxer_version": "1.0",
  "filename": "golden-hour-cityscape.jpg",
  "sha256_source": "a1b2c3d4...",
  "verified": true,
  "timestamp": "2024-11-20T14:35:22.123456"
}

🎨 UI Modes

Toggle between two aesthetics with F12:

Standard Mode (Warez):

  • Red/white/black color scheme
  • ASCII art branding
  • Motivational progress phrases
  • High-contrast buttons

Pro Mode (Phantom Redline):

  • Tactical black aesthetic
  • Clean typography
  • Real-time HUD dashboard
  • Minimal, professional design

🙏 Acknowledgments

Built with:


📄 License

MIT License - See LICENSE for details.


🚀 What's Next

Future roadmap considerations:

  • Native Windows support (non-WSL)
  • GPU acceleration for CLIP embeddings
  • Lightroom Classic plugin integration
  • Additional AI vision models
  • Batch processing optimizations

Built with precision. Secured with cryptography. Powered by AI.

FIXXER PRO - From chaos to order, one hash at a time.