fix(infra): release builds all 17 registry images; pg_dump backup sidecar (#461)

* fix(infra): release builds all 17 registry images; pg_dump backup sidecar

release.yml was missing roboco-agent-grok-prompter and
roboco-agent-grok-secretary (both FROM the bare local roboco-agent-grok
tag, so agent-grok now builds explicitly ahead of the loop, mirroring
the agent-base special case) — a fresh registry pull could never
succeed. Both compose files gain a backup sidecar on the data network:
pg_dump -Fc on start and every 24h, crash-safe tmp+rename, newest-14
rotation, restore walkthrough in docs/backend/ops/database-backups.md.

* chore(docs): reflow hard-wrapped prose inherited from the six-PR merge train

* chore(foundation): regenerate lifecycle artifacts; reflow inherited prose

---------

Co-authored-by: Renn F <rennf93@users.noreply.github.com>
This commit is contained in:
Renzo F
2026-07-11 09:20:57 +02:00
committed by GitHub
co-authored by Renn F
parent 6e57066bd6
commit f7f411e112
11 changed files with 514 additions and 398 deletions
+16 -2
View File
@@ -85,6 +85,16 @@ jobs:
-t roboco-agent-base $(regtags roboco-agent-base) .
echo "::endgroup::"
# roboco-agent-grok MUST build next, ahead of the loop: the two
# interactive Grok roles (prompter, secretary) build `FROM
# roboco-agent-grok` — a local tag that has to exist in the daemon
# before they build, and bash associative-array iteration order is
# unspecified, so it can't just be another entry in IMAGES below.
echo "::group::build roboco-agent-grok"
docker build -f docker/agent-grok.Dockerfile \
-t roboco-agent-grok $(regtags roboco-agent-grok) .
echo "::endgroup::"
# Every other image → its Dockerfile. Names mirror docker-compose's
# `image:` values exactly, so compose can later pull instead of build.
declare -A IMAGES=(
@@ -101,7 +111,8 @@ jobs:
[roboco-agent-prompter]=docker/agent-prompter.Dockerfile
[roboco-agent-secretary]=docker/agent-secretary.Dockerfile
[roboco-agent-pr-reviewer]=docker/agent-pr-reviewer.Dockerfile
[roboco-agent-grok]=docker/agent-grok.Dockerfile
[roboco-agent-grok-prompter]=docker/agent-grok-prompter.Dockerfile
[roboco-agent-grok-secretary]=docker/agent-grok-secretary.Dockerfile
)
for name in "${!IMAGES[@]}"; do
echo "::group::build ${name}"
@@ -114,10 +125,13 @@ jobs:
echo "::group::push roboco-agent-base"
pushall roboco-agent-base
echo "::endgroup::"
echo "::group::push roboco-agent-grok"
pushall roboco-agent-grok
echo "::endgroup::"
for name in "${!IMAGES[@]}"; do
echo "::group::push ${name}"
pushall "${name}"
echo "::endgroup::"
done
echo "Published roboco-agent-base + ${#IMAGES[@]} more images to GHCR + Docker Hub at :${VERSION} and :latest"
echo "Published roboco-agent-base + roboco-agent-grok + ${#IMAGES[@]} more images to GHCR + Docker Hub at :${VERSION} and :latest"