diff --git a/.gitignore b/.gitignore
index cd38da8..d051fa6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,7 +2,7 @@ target/
.env
.DS_Store
tmp/
-libraries/
+/libraries/
node_modules/
.next/
data/thumbnails
diff --git a/apps/backoffice/app/api/libraries/[id]/monitoring/route.ts b/apps/backoffice/app/api/libraries/[id]/monitoring/route.ts
new file mode 100644
index 0000000..0522326
--- /dev/null
+++ b/apps/backoffice/app/api/libraries/[id]/monitoring/route.ts
@@ -0,0 +1,18 @@
+import { NextRequest, NextResponse } from "next/server";
+import { updateLibraryMonitoring } from "@/lib/api";
+
+export async function PATCH(
+ request: NextRequest,
+ { params }: { params: Promise<{ id: string }> }
+) {
+ const { id } = await params;
+ try {
+ const { monitor_enabled, scan_mode, watcher_enabled } = await request.json();
+ const data = await updateLibraryMonitoring(id, monitor_enabled, scan_mode, watcher_enabled);
+ return NextResponse.json(data);
+ } catch (error) {
+ const message = error instanceof Error ? error.message : "Failed to update monitoring settings";
+ console.error("[monitoring PATCH]", message);
+ return NextResponse.json({ error: message }, { status: 500 });
+ }
+}
diff --git a/apps/backoffice/app/components/LibraryActions.tsx b/apps/backoffice/app/components/LibraryActions.tsx
index 186836c..6317c19 100644
--- a/apps/backoffice/app/components/LibraryActions.tsx
+++ b/apps/backoffice/app/components/LibraryActions.tsx
@@ -20,6 +20,7 @@ export function LibraryActions({
}: LibraryActionsProps) {
const [isOpen, setIsOpen] = useState(false);
const [isPending, startTransition] = useTransition();
+ const [saveError, setSaveError] = useState