feat: versioned releases — vault-gated tag, image build, and deploy #112
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
Agents run from a bind-mounted host repo (
./:/home/agent/disinto:ro). The host repo drifts behind Forgejo main — currently 38+ commits behind. Agents run stale factory code while implementing changes on top of new code. This causes subtle bugs and confusion.Proposed solution
Two changes:
1. Bake code into Docker image (remove bind mount)
./:/home/agent/disinto:rofrom agents and agents-llama services in docker-compose.ymlCOPY . /home/agent/disintotodocker/agents/Dockerfilebin/disinto(generate_compose()) must also be updated2. Vault-gated release workflow
Create
formulas/release.toml— a formula the runner executes when a release vault PR is approved.Trigger: Human creates and merges a vault PR:
The release formula does:
POST /api/v1/repos/johba/disinto/tagsmirror_push(already pushes--tags)docker compose build --no-cache agentsdocker tag disinto-agents disinto-agents:<version>docker compose up -d agents agents-llamaRunner container needs:
/var/run/docker.sock).ssh:/home/agent/.ssh:ro).env)What
disinto releaselooks like (optional CLI shortcut)Equivalent to creating the vault PR manually. Convenience wrapper that:
lib/vault.sh:vault_request("release-v1.2.0", toml_content)Affected files
docker/agents/Dockerfile(update — add COPY)docker-compose.yml/bin/disintogenerate_compose (update — remove bind mount)formulas/release.toml(new)bin/disinto(update — addreleasesubcommand)vault/examples/release.toml(new — example for schema docs)Acceptance criteria
formulas/release.tomltags, builds, and restarts via vault-gated flowdisinto release v1.2.0creates vault PRDependencies
Depends on dispatcher (#76) being operational — vault PRs must be executable.
The vault TOML schema (#74) and lib/vault.sh (#75) are already merged.