Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
39892e2
refactor: eliminate LiveView anti-patterns in dashboard_v2_live
mjc Sep 26, 2025
a62c56d
feat: complete LiveView anti-pattern elimination and broadcast cleanup
mjc Sep 27, 2025
01d2c27
fix: update service status in periodic dashboard refresh
mjc Sep 27, 2025
e241c04
Fix FunctionClauseError and improve service status handling
mjc Sep 27, 2025
e1936f3
Fix: Add missing batch_analysis_completed handler and enhance analyze…
mjc Oct 1, 2025
a62c5c5
Fix: Handle null seriesId/movieId in refresh_operations to prevent AP…
mjc Oct 1, 2025
b6f21ac
chore: remove PostgreSQL migration artifacts
mjc Oct 1, 2025
b4f9e28
refactor: remove legacy test wrappers and unused files
mjc Oct 1, 2025
9f2e7ae
refactor: remove unused dashboard components and telemetry events
mjc Oct 1, 2025
bcdcef9
Remove unused telemetry execute calls and metrics
mjc Oct 1, 2025
5afa7f8
Update copilot instructions and remove empty components directory
mjc Oct 1, 2025
458f042
Remove legacy Analyzer.QueueManager dead code
mjc Oct 1, 2025
5343010
Fix crash: Remove unused crf_search_queue_changed event broadcast
mjc Oct 1, 2025
b8f095b
Remove unused explain_path_location debugging function and helpers
mjc Oct 1, 2025
f5a0e8a
Remove duplicate resolution parser test file
mjc Oct 1, 2025
a8f236d
Remove unused Utils module, ErrorHelpers functions, and 11 empty files
mjc Oct 1, 2025
8e6ca2c
Remove unused Media.Clean and Media.BulkOperations modules
mjc Oct 1, 2025
1c6a757
Remove unused backward compatibility functions from Media module
mjc Oct 1, 2025
8642c9e
Fix PerformanceMonitor crash when calling get_storage_performance_tier
mjc Oct 1, 2025
6b85d25
Remove unused debug_status and related functions from Analyzer Producer
mjc Oct 1, 2025
00e1c48
Remove 5 unused query functions from SharedQueries module
mjc Oct 1, 2025
cb3aca3
Remove 13 unused test helper functions from TestHelpers
mjc Oct 1, 2025
4231add
Migrate FailuresLive to Dashboard V2 patterns
mjc Oct 1, 2025
135054e
Add Failures page link to Dashboard V2 header
mjc Oct 1, 2025
f963f95
Complete FailuresLive UI redesign to match Dashboard V2 style
mjc Oct 1, 2025
f507c2f
Increase database retry attempts and prevent marking videos as failed…
mjc Oct 4, 2025
0e03f71
Fix: Broadcast actual service status from producers to dashboard
mjc Oct 4, 2025
258b7bd
refactor: fix Broadway pipeline pause/resume state management
mjc Oct 23, 2025
81f074c
test: add comprehensive tests for pause/resume state management
mjc Oct 23, 2025
8eef922
refactor: rename DashboardV2Live to DashboardLive
mjc Oct 23, 2025
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
8 changes: 4 additions & 4 deletions .githooks/pre-commit
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
#!/bin/sh

# Save current staged changes
git stash push --keep-index --include-untracked -m "pre-commit-stash"
#git stash push --keep-index --include-untracked -m "pre-commit-stash"

# Function to cleanup on exit
cleanup() {
EXIT_CODE=$?
# Only pop stash if we created one
if [ -n "$(git stash list | grep "pre-commit-stash")" ]; then
git stash pop
fi
#if [ -n "$(git stash list | grep "pre-commit-stash")" ]; then
# git stash pop
#fi
exit $EXIT_CODE
}

Expand Down
2 changes: 1 addition & 1 deletion .github/copilot-instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ Pre-commit hooks automatically enforce code quality:
When adding new pipelines:
1. Create producer that checks GenServer availability (`crf_search_available?()` pattern)
2. Implement single concurrency to respect external tool limitations
3. Add telemetry events for dashboard updates
3. Use `Reencodarr.Dashboard.Events` to broadcast state changes to Dashboard V2
4. Update `application.ex` with test environment considerations

### Database Query Patterns
Expand Down
2 changes: 1 addition & 1 deletion .iex.exs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ alias Reencodarr.Media.{Video, Library, Vmaf}

# Broadway pipelines and workers
alias Reencodarr.{Analyzer, CrfSearcher, Encoder}
alias Reencodarr.Analyzer.{Broadway, QueueManager}
alias Reencodarr.Analyzer.Broadway
alias Reencodarr.AbAv1.{CrfSearch, Encode}

# State management
Expand Down
3 changes: 0 additions & 3 deletions assets/css/app.css
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,6 @@
@import "tailwindcss/components";
@import "tailwindcss/utilities";

/* LCARS Interface Styling */
@import "./lcars.css";

/* This file is for your main application CSS */

/* Text shadow utility for better button text readability */
Expand Down
218 changes: 0 additions & 218 deletions assets/css/lcars.css

This file was deleted.

21 changes: 4 additions & 17 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,28 +6,15 @@ services:
ports:
- "4000:4000"
environment:
- DATABASE_URL=ecto://postgres:postgres@db:5432/reencodarr_prod
# SQLite database - file stored in mounted volume
- DATABASE_PATH=/app/data/reencodarr_prod.db
- SECRET_KEY_BASE=your-secret-key-base-here-change-this-in-production
- PHX_SERVER=true
- PORT=4000
depends_on:
- db
volumes:
- ./media:/app/media # Mount for media files processing
restart: unless-stopped

db:
image: postgres:15
environment:
- POSTGRES_DB=reencodarr_prod
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
volumes:
- postgres_data:/var/lib/postgresql/data
- ./priv/repo/structure.sql:/docker-entrypoint-initdb.d/structure.sql
ports:
- "5432:5432"
- ./data:/app/data # SQLite database storage
restart: unless-stopped

volumes:
postgres_data:
# No database service needed - SQLite is embedded
14 changes: 12 additions & 2 deletions docs/distributed_architecture.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,14 @@
# Reencodarr Distributed Architecture
# Reencodarr Distributed Architecture (Future Design)

> **⚠️ NOTE**: This document describes a **future architectural vision** for Reencodarr, not the current implementation.
>
> **Current Architecture (as of October 2025)**:
> - Single monolithic application
> - SQLite database with WAL mode for concurrency
> - Broadway pipelines for processing coordination
> - All services run on a single node
>
> **This Document**: Outlines a proposed distributed client-server architecture for future scalability.

## Overview

Expand All @@ -13,7 +23,7 @@ Currently, Reencodarr runs as a single application with three main pipelines:
3. **Encoder** - Re-encodes videos with chosen parameters

All components share:
- Database (PostgreSQL with video metadata, VMAF results)
- Database (SQLite with video metadata, VMAF results)
- File system (original videos, temporary files)
- Web interface (Phoenix LiveView dashboard)
- Service integrations (Sonarr/Radarr APIs)
Expand Down
Empty file.
Empty file removed lib/mix/tasks/restore.ex
Empty file.
Loading