summaryrefslogtreecommitdiff
path: root/Omni/Agent/sync-tasks.sh
diff options
context:
space:
mode:
authorBen Sima <ben@bsima.me>2025-11-20 16:23:29 -0500
committerBen Sima <ben@bsima.me>2025-11-20 16:23:29 -0500
commitb6334da771d764b7c29b33522db06b6cc716c6cb (patch)
tree644805fb7f3276ea6a5a8af022f4b1f67c316a6f /Omni/Agent/sync-tasks.sh
parent9ab85c33379f98229235a30dbf5108ad31a01d1f (diff)
feat: implement multi-agent workflow infrastructure
- Add 'Review' status to Task tool - Add Omni/Agent/ directory with setup and sync scripts - Add WORKER_AGENT_GUIDE.md - Configure custom merge driver for tasks.jsonl
Diffstat (limited to 'Omni/Agent/sync-tasks.sh')
-rwxr-xr-xOmni/Agent/sync-tasks.sh46
1 files changed, 46 insertions, 0 deletions
diff --git a/Omni/Agent/sync-tasks.sh b/Omni/Agent/sync-tasks.sh
new file mode 100755
index 0000000..f4669b7
--- /dev/null
+++ b/Omni/Agent/sync-tasks.sh
@@ -0,0 +1,46 @@
+#!/usr/bin/env bash
+set -e
+
+# Omni/Ide/sync-tasks.sh
+# Synchronizes the task database with the live branch safely.
+# Usage: sync-tasks.sh [--commit]
+
+COMMIT=0
+if [[ "$1" == "--commit" ]]; then
+ COMMIT=1
+fi
+
+REPO_ROOT="$(git rev-parse --show-toplevel)"
+cd "$REPO_ROOT"
+
+echo "Syncing tasks..."
+
+# 1. Import latest tasks from 'live' branch
+# We use git show to get the file content from the reference branch without checking it out
+mkdir -p .tasks
+git show live:.tasks/tasks.jsonl > .tasks/live-tasks.jsonl
+
+# 2. Merge logic: Import live tasks into our local DB
+# The 'task import' command uses timestamps to resolve conflicts (last write wins)
+if [ -s .tasks/live-tasks.jsonl ]; then
+ echo "Importing tasks from live branch..."
+ "$REPO_ROOT/_/bin/task" import -i .tasks/live-tasks.jsonl
+fi
+
+# 3. Clean up
+rm .tasks/live-tasks.jsonl
+
+# 4. Export current state to ensure it's clean/deduplicated
+"$REPO_ROOT/_/bin/task" export --flush
+
+# 5. Commit changes to .tasks/tasks.jsonl if requested and there are changes
+if [[ "$COMMIT" -eq 1 ]]; then
+ if [[ -n $(git status --porcelain .tasks/tasks.jsonl) ]]; then
+ echo "Committing task updates..."
+ git add .tasks/tasks.jsonl
+ git commit -m "task: sync database" || true
+ echo "Task updates committed to current branch."
+ else
+ echo "No task changes to commit."
+ fi
+fi