From b210952de8a82b00a61c0990d1a8607a3012f2ed Mon Sep 17 00:00:00 2001 From: ezl-keygraph Date: Wed, 11 Feb 2026 00:03:02 +0530 Subject: [PATCH] fix: ensure deliverables directory is writable by container user (#116) Pre-create the deliverables directory with proper permissions on the host before starting containers, and surface permission errors instead of silently swallowing them in save_deliverable. --- mcp-server/src/utils/file-operations.ts | 2 +- shannon | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/mcp-server/src/utils/file-operations.ts b/mcp-server/src/utils/file-operations.ts index 8f718b1..150c38d 100644 --- a/mcp-server/src/utils/file-operations.ts +++ b/mcp-server/src/utils/file-operations.ts @@ -29,7 +29,7 @@ export function saveDeliverableFile(targetDir: string, filename: string, content try { mkdirSync(deliverablesDir, { recursive: true }); } catch { - // Directory might already exist, ignore + throw new Error(`Cannot create deliverables directory at ${deliverablesDir}`); } // Write file (atomic write - single operation) diff --git a/shannon b/shannon index 0c4cf9b..96f04dd 100755 --- a/shannon +++ b/shannon @@ -194,6 +194,12 @@ cmd_start() { mkdir -p ./audit-logs chmod 777 ./audit-logs + # Ensure repo deliverables directory is writable by container user (UID 1001) + if [ -d "./repos/$REPO" ]; then + mkdir -p "./repos/$REPO/deliverables" + chmod 777 "./repos/$REPO/deliverables" + fi + # Ensure containers are running (starts them if needed) ensure_containers