Jarian
|
061a3bdeb3
|
fix: replace greedy episode matcher with DP-based optimal assignment
- Replace greedy _precise_duration_match with O(n*m) DP for minimum-cost
duration matching, ensuring globally optimal file-to-episode assignment
- Fix _dp_match_episodes: remove buggy new_cost2 transition that could
double-assign episodes, fix backtracking logic
- Add _fallback_sequential helper for clean sequential fallback path
- All 8 mock episodes now match with 0-min duration difference,
disc ordering preserved (D1=[1-3], D2=[4-6], D3=[7-8])
|
2026-07-05 17:27:59 +00:00 |
|
Jarian
|
0536496b8c
|
feat: add DP-based episode matcher, add module architecture doc
- Add _dp_match_episodes: O(n*m) DP for minimum-cost file→episode assignment
considering disc size, episode deltas, and TVDB duration (Issue #1)
- Wire DP matcher as primary strategy in _match_by_duration_and_order
- Add comprehensive module docstring with architecture overview (Issue #10)
|
2026-07-05 12:03:36 +00:00 |
|
Jarian
|
cedc0fd51e
|
fix: address security and ops issues (#2-#8)
- Fix path traversal vulnerability in TVDB cache (CWE-22)
- Support TVDB_API_KEY env var to avoid hardcoded secrets
- Add config.json to .gitignore, remove from git history
- Add pyproject.toml for proper packaging, remove sys.path.insert
- Add file hash to duplicate detection (reduce false positives)
- Require --force flag for --auto-delete-duplicates deletion
- Log deletions to recovery manifest
- Create .env.example template
|
2026-07-05 08:07:05 +00:00 |
|
Jarian Cottingham
|
73dd3f261e
|
Updated Episode Matcher to take hints about episodes on disc and delete flags
|
2025-08-09 12:09:52 -05:00 |
|
Jarian Cottingham
|
03b03d676f
|
Initial Commit
|
2025-08-07 21:15:00 -05:00 |
|