Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/security-policy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:
fi

# Block HTTP URLs (except localhost)
HTTP_URLS=$(grep -rE 'https://[^l][^o][^c]' --include="*.py" --include="*.js" --include="*.ts" --include="*.go" --include="*.rs" --include="*.yaml" --include="*.yml" . 2>/dev/null | grep -v 'localhost\|127.0.0.1\|example\|test\|spec' | head -5 || true)
HTTP_URLS=$(grep -rE 'http://[^l][^o][^c]' --include="*.py" --include="*.js" --include="*.ts" --include="*.go" --include="*.rs" --include="*.yaml" --include="*.yml" . 2>/dev/null | grep -v 'localhost\|127.0.0.1\|example\|test\|spec' | head -5 || true)
if [ -n "$HTTP_URLS" ]; then
echo "⚠️ HTTP URLs found. Use HTTPS:"
echo "$HTTP_URLS"
Expand Down
100 changes: 51 additions & 49 deletions ROADMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,99 +5,99 @@

This document outlines the planned development direction for Panoptes.

## Current Status: v1.0.0 (Stable)

The initial stable release provides:

- **Image analysis & renaming** - JPG, PNG, WebP, GIF, BMP, TIFF
- **Moondream vision model** - Local AI via Ollama (~1.6GB)
- **Graceful operation** - Signal handling, health checks
- **Undo support** - History log with `panoptes-undo` tool
- **Dry-run mode** - Preview changes before committing
- **RSR Gold compliance** - Full documentation suite

## Immediate Fixes (v1.0.x)

### v1.0.1 - Polish
## Current Status: v3.0.0 (Stable)

Panoptes v3.0.0 includes comprehensive file analysis capabilities:

### Core Features (Completed)
- [x] **Image analysis & renaming** - JPG, PNG, WebP, GIF, BMP, TIFF
- [x] **Moondream vision model** - Local AI via Ollama (~1.6GB)
- [x] **Graceful operation** - Signal handling, health checks
- [x] **Undo support** - History log with `panoptes-undo` tool
- [x] **Dry-run mode** - Preview changes before committing
- [x] **RSR Gold compliance** - Full documentation suite
- [x] **Web UI** - `panoptes-web` binary for browser-based interface
- [x] **PDF processing** - Text extraction via `pdf-extract` and `lopdf`
- [x] **Audio metadata** - ID3 tags, MP3 metadata via `symphonia`
- [x] **Archive inspection** - ZIP, TAR, GZIP support
- [x] **Code analysis** - Tree-sitter parsing for Rust, Python, JavaScript
- [x] **Document parsing** - XML and Excel via `quick-xml` and `calamine`
- [x] **Deduplication** - BLAKE3 hashing for file deduplication
- [x] **SQLite database** - Tags and categories storage

## Immediate Fixes (v3.0.x)

### v3.0.1 - Polish
- [ ] Improve file stability detection (check file handle locks)
- [ ] Add retry logic for transient Ollama failures
- [ ] Systemd service file for daemon operation
- [ ] Man page generation

### v1.0.2 - Robustness
### v3.0.2 - Robustness
- [ ] Better handling of very large files
- [ ] Configurable debounce timing
- [ ] Log rotation support
- [ ] Prometheus metrics endpoint (optional)

## Short-term Goals (v1.x)
## Short-term Goals (v3.x)

### v1.1.0 - PDF Support
- [ ] PDF first-page rasterization via `pdfium`
- [ ] Text extraction fallback via `pdf-extract`
- [ ] Document type detection
- [ ] Configurable page selection for multi-page PDFs

### v1.2.0 - Extended Image Formats
### v3.1.0 - Extended Image Formats
- [ ] HEIC/HEIF support (Apple photos)
- [ ] RAW format support (CR2, NEF, ARW, DNG)
- [ ] SVG thumbnail generation
- [ ] AVIF support

### v1.3.0 - Enhanced AI
### v3.2.0 - Enhanced AI
- [ ] Multiple model support (LLaVA, BakLLaVA, Phi-3)
- [ ] Model auto-selection based on file size/type
- [ ] Custom prompt templates via config
- [ ] Confidence scoring (skip low-confidence renames)

### v1.4.0 - Audio Files
### v3.3.0 - Audio Transcription
- [ ] Whisper integration for speech-to-text
- [ ] Audio file naming from transcription
- [ ] Music file metadata extraction
- [ ] Podcast episode detection

## Medium-term Goals (v2.x)
### v3.4.0 - Video Support
- [ ] FFmpeg integration for keyframe extraction
- [ ] Video thumbnail analysis
- [ ] Audio track transcription
- [ ] Scene detection

## Medium-term Goals (v4.x)

### v2.0.0 - Plugin Architecture
### v4.0.0 - Plugin Architecture
- [ ] Trait-based analyzer plugins
- [ ] Dynamic plugin loading
- [ ] Plugin configuration schema
- [ ] Community plugin registry

### v2.1.0 - Multi-Directory & Remote
### v4.1.0 - Multi-Directory & Remote
- [ ] Multiple watch directories
- [ ] Remote Ollama support (TLS)
- [ ] SSH tunnel support
- [ ] Configuration hot-reload

### v2.2.0 - Video Support
- [ ] FFmpeg integration for keyframe extraction
- [ ] Video thumbnail analysis
- [ ] Audio track transcription
- [ ] Scene detection

### v2.3.0 - Documents & Code
- [ ] Office document text extraction
- [ ] Code file analysis via DeepSeek Coder
- [ ] Archive content inspection
- [ ] Email file parsing
### v4.2.0 - Advanced Documents
- [ ] Office document deep extraction (DOCX, PPTX)
- [ ] Email file parsing (EML, MSG)
- [ ] More archive formats (7z, RAR)

## Long-term Vision (v3.x)
## Long-term Vision (v5.x)

### v3.0.0 - Advanced Features
- [ ] Web UI dashboard
### v5.0.0 - Advanced Features
- [ ] Category-based organization (auto-folders)
- [ ] Tagging system
- [ ] Duplicate detection
- [ ] Advanced tagging system with hierarchies
- [ ] Semantic search over renamed files
- [ ] Machine learning model fine-tuning

### v3.1.0 - Sync & Distribution
### v5.1.0 - Sync & Distribution
- [ ] CRDT-based distributed state
- [ ] Multi-device synchronization
- [ ] Offline-first rename queue
- [ ] Conflict resolution UI

### v3.2.0 - Platform Expansion
### v5.2.0 - Platform Expansion
- [ ] Native macOS app (FSEvents optimization)
- [ ] Windows service
- [ ] Mobile companion app
Expand Down Expand Up @@ -140,7 +140,9 @@ See [CONTRIBUTING.adoc](CONTRIBUTING.adoc) for guidelines.

| Version | Status | Support Until |
|---------|--------|---------------|
| 1.0.x | **Current** | Active development |
| 3.0.x | **Current** | Active development |
| 2.x | Maintenance | Security fixes only |
| 1.x | Legacy | Unsupported |
| 0.x | Legacy | Unsupported |

## Changelog
Expand All @@ -149,4 +151,4 @@ See [CHANGELOG.md](CHANGELOG.md) for detailed version history.

---

*Last updated: 2025-11-27*
*Last updated: 2025-12-17*
2 changes: 1 addition & 1 deletion flake.nix
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@
# Package definition
packages.default = pkgs.rustPlatform.buildRustPackage {
pname = "panoptes";
version = "1.0.0";
version = "3.0.0";

src = ./.;

Expand Down
17 changes: 10 additions & 7 deletions guix.scm
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
;; SPDX-License-Identifier: MIT
;; SPDX-FileCopyrightText: 2025 Jonathan D. A. Jewell <hyperpolymath>

;; Panoptes - Guix Package Definition
;; Run: guix shell -D -f guix.scm

Expand All @@ -10,16 +13,16 @@

(define-public panoptes
(package
(name "Panoptes")
(version "0.1.0")
(source (local-file "." "Panoptes-checkout"
(name "panoptes")
(version "3.0.0")
(source (local-file "." "panoptes-checkout"
#:recursive? #t
#:select? (git-predicate ".")))
(build-system cargo-build-system)
(synopsis "Rust application")
(description "Rust application - part of the RSR ecosystem.")
(home-page "https://github.com/hyperpolymath/Panoptes")
(license license:agpl3+)))
(synopsis "Local AI-powered file scanner and renamer")
(description "Panoptes is a local AI-powered file scanner and renamer that uses the Moondream vision model via Ollama to intelligently rename files based on visual content. Supports images, PDFs, audio, archives, code files, and documents.")
(home-page "https://gitlab.com/hyperpolymath/panoptes")
(license license:expat)))

;; Return package for guix shell
panoptes
Loading