Enhance project structure and add new files for enrichment and analysis

- Updated AGENTS.md to reflect changes in CLI commands and module organization, including the addition of an enrichment step and new functional modules.
- Introduced analysis.json, identities.json, inventory.csv, and plan.json to support enriched metadata and execution planning.
- Added CODE_IMPROVEMENTS.md to document identified code issues and proposed solutions for future enhancements.
- Updated README.md to include new enrichment features and configuration options.
- Removed unused dependency on ffmpeg-python from pyproject.toml.

These changes improve the overall functionality and maintainability of the Video Library Manager project.
This commit is contained in:
windyboy
2026-02-10 16:56:17 +08:00
parent f0c951ad7f
commit dcd87754cf
39 changed files with 145509 additions and 642 deletions
+8 -7
View File
@@ -16,6 +16,7 @@ from uuid import uuid4
from .logging_config import get_logger, log_operation
from .models import ExecutionPlan, FileOperation, OperationResult, RollbackLog
from .utils import ensure_utc, utc_now
class ExecutionEngine:
@@ -86,7 +87,7 @@ class ExecutionEngine:
rollback_log = RollbackLog(
log_id=str(uuid4()),
execution_plan_id=plan.plan_id,
executed_at=datetime.now(),
executed_at=utc_now(),
operations=successful_operations
)
@@ -116,8 +117,8 @@ class ExecutionEngine:
Returns:
OperationResult with success status and any error message
"""
executed_at = datetime.now()
executed_at = utc_now()
# Handle no-op operations
if operation.operation_type == "no-op":
log_operation(
@@ -385,19 +386,19 @@ class ExecutionEngine:
conflict_reason=None
)
# Reconstruct OperationResult
# Reconstruct OperationResult (normalize naive datetime to UTC)
op_result = OperationResult(
operation=file_op,
success=op_data["success"],
error_message=op_data["error_message"],
executed_at=datetime.fromisoformat(op_data["executed_at"])
executed_at=ensure_utc(datetime.fromisoformat(op_data["executed_at"]))
)
operations.append(op_result)
rollback_log = RollbackLog(
log_id=log_data["log_id"],
execution_plan_id=log_data["execution_plan_id"],
executed_at=datetime.fromisoformat(log_data["executed_at"]),
executed_at=ensure_utc(datetime.fromisoformat(log_data["executed_at"])),
operations=operations
)
@@ -468,7 +469,7 @@ class ExecutionEngine:
OperationResult indicating success or failure of the rollback
"""
operation = original_result.operation
executed_at = datetime.now()
executed_at = utc_now()
# Skip no-op operations
if operation.operation_type == "no-op":