Files
project-orchestrator/scripts/update-project.sh
autonomic-bot 346ed31acb feat: project-orchestrator — engine@v0.1.0 submodule, PO config, fleet.toml registry, mgmt scripts, docs, Nix
The PO is itself a project using the agent-orchestrator harness (engine/ submodule pinned at
v0.1.0). Adds: agents.toml (one persistent fleet-management agent) + prompts/; fleet.toml (the
sole project<->harness<->ref registry) + docs/fleet-registry.md; scripts/ (fleet.py +
create/start/stop/update-project.sh); docs/manage-projects.md + docs/bootstrap.md; flake.nix/.lock
devShell (python311+tmux+git); README.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-13 19:15:47 +00:00

22 lines
1.4 KiB
Bash
Executable File

#!/usr/bin/env bash
# update-project.sh <name> <new-ref> — bump a fleet project's harness submodule to a new ref.
#
# Updating the engine for a project = checkout a new ref of its `engine/` submodule + commit, IN
# THAT PROJECT'S REPO ONLY. It touches no other project (each pins its own copy). Afterwards, update
# the project's `ref` in this PO's fleet.toml so the registry stays accurate.
set -euo pipefail
[ $# -ge 2 ] || { echo "usage: update-project.sh <name> <new-ref>" >&2; exit 1; }
NAME="$1"; NEWREF="$2"
source "$(dirname "$0")/_resolve.sh"
IFS=$'\t' read -r LOCATION CONFIG HARNESS < <(resolve_project "$NAME")
[ -d "$LOCATION" ] || { echo "update-project: location not a local dir: $LOCATION" >&2; exit 1; }
[ "$HARNESS" = "agent-orchestrator" ] || { echo "update-project: harness '$HARNESS' not agent-orchestrator — update by hand per its docs." >&2; exit 2; }
echo "update-project: $NAME engine → $NEWREF (in $LOCATION)"
( cd "$LOCATION/engine" && git fetch -q --tags origin && git checkout -q "$NEWREF" )
( cd "$LOCATION" && git add engine \
&& git -c user.name="project-orchestrator" -c user.email="po@localhost" \
commit -q -m "chore: bump engine to $NEWREF" )
echo "update-project: project committed. Now update fleet.toml: set ref = \"$NEWREF\" for '$NAME'."
echo " (edit $(cd "$(dirname "$0")/.." && pwd)/fleet.toml, then: python3 scripts/fleet.py validate)"