Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 8 additions & 4 deletions containers/forge/forge-entrypoint.sh
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,17 @@ for secret in github_token gmail_user gmail_app_password; do
fi
done

# Specify CLI (spec-kit) — install as forge on first boot if uv is present.
# Specify CLI (spec-kit) — install on first boot (root, before dropping to forge).
# spec-kit enables spec-driven development for Codex jobs (/speckit.* skills).
# uv needs a writable cache; the image root is read-only, so point it at /tmp.
if command -v uv >/dev/null 2>&1; then
SPECIFY_TAG="${BARBAROSSA_SPECIFY_TAG:-v0.12.11}"
su - forge -c "uv tool install specify-cli \
--from 'git+https://github.com/github/spec-kit.git@${SPECIFY_TAG}'" \
>/dev/null 2>&1 || true
UV_CACHE_DIR=/tmp/uv-cache \
UV_TOOL_DIR=/usr/local/share/barbarossa/tools \
UV_TOOL_BIN_DIR=/usr/local/bin \
uv tool install specify-cli \
--from "git+https://github.com/github/spec-kit.git@${SPECIFY_TAG}" \
>/dev/null 2>&1 || true
fi

auth_source="${CODEX_AUTH_SOURCE_FILE:-/run/secrets/codex_auth_json}"
Expand Down
2 changes: 2 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ services:
volumes:
- forge-workspace:/workspace
- forge-codex-home:/home/forge/.codex
- forge-home:/home/forge
- forge-host-keys:/ssh-host-keys
- ./config/codex/config.toml:/usr/local/share/barbarossa/codex/config.toml:ro
- ./skills/codex/barbarossa-artifacts/SKILL.md:/usr/local/share/barbarossa/codex/SKILL.md:ro
Expand Down Expand Up @@ -191,6 +192,7 @@ volumes:
hermes-state:
forge-workspace:
forge-codex-home:
forge-home:
forge-host-keys:
recon-workspace:
recon-tor-state:
Expand Down
12 changes: 11 additions & 1 deletion tests/infra-regression.sh
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,14 @@ assert "ports" not in services["forge"]
assert "ports" not in services["recon"]
assert services["forge"]["read_only"] is True
assert services["recon"]["read_only"] is True
assert any(
"forge-home:/home/forge" in volume
for volume in services["forge"]["volumes"]
)
assert any(
"forge-codex-home:/home/forge/.codex" in volume
for volume in services["forge"]["volumes"]
)
assert services["hermes"]["env_file"] == [
"${BARBAROSSA_HERMES_ENV_FILE:?set BARBAROSSA_HERMES_ENV_FILE}"
]
Expand Down Expand Up @@ -166,7 +174,9 @@ grep -Fq 'install -d -o forge -g forge -m 0700 /run/barbarossa-secrets' \
containers/forge/forge-entrypoint.sh
grep -Fq 'for secret in github_token gmail_user gmail_app_password; do' \
containers/forge/forge-entrypoint.sh
grep -Fq '"uv tool install specify-cli' \
grep -Fq 'uv tool install specify-cli' \
containers/forge/forge-entrypoint.sh
grep -Fq 'UV_TOOL_BIN_DIR=/usr/local/bin' \
containers/forge/forge-entrypoint.sh
grep -Fq 'npm install --global vercel' containers/forge/Dockerfile
grep -Fq 'npm install --global supabase' containers/forge/Dockerfile
Expand Down