refactor: parametric llama bots via LLAMA_BOTS env list #831
Labels
No labels
action
backlog
blocked
bug-report
cannot-reproduce
in-progress
in-triage
needs-triage
prediction/actioned
prediction/dismissed
prediction/unreviewed
priority
rejected
reproduced
tech-debt
underspecified
vision
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: disinto-admin/disinto#831
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
lib/forge-setup.sh:362-367hardcodes the llama bot registry:Adding a new llama-backed dev agent (dev-qwen2, dev-qwen3, ...) currently requires editing
lib/forge-setup.shfor each new entry. Cumbersome and invites drift with.env,docker-compose.yml, andbin/disinto:813.Planned follow-up: scale dev throughput with additional llama containers (GPU <1% utilized on current single llama dev, so parallelism is the lever). Parametric setup is the foundation.
Proposed solution
Introduce
LLAMA_BOTSenv var in.env— a space-separated list:Replace hardcoded arrays with a loop that derives env var names by convention:
Migration: current
.envhasFORGE_TOKEN_LLAMA/FORGE_TOKEN_LLAMA_NIGHTLY. Rename in-place duringdisinto inittoFORGE_TOKEN_DEV_QWEN/FORGE_TOKEN_DEV_QWEN_NIGHTLYso values (and existing Forgejo tokens) are preserved — no rotation. Alternative: maintain a legacy-alias map in forge-setup; migration is simpler.Acceptance criteria
LLAMA_BOTSenv var controls which llama bots are provisionedLLAMA_BOTS="dev-qwen dev-qwen-nightly"preserves current behaviorLLAMA_BOTS="dev-qwen dev-qwen2"creates dev-qwen2 user + token + password idempotently.env.exampleupdated to documentLLAMA_BOTSandFORGE_TOKEN_<SUFFIX>/FORGE_PASS_<SUFFIX>conventiondisinto initremains idempotent (per #800)bin/disinto:813summary message derives fromLLAMA_BOTSinstead of hardcoded countAffected files
lib/forge-setup.sh— replace lines 362-367 and callers with loopbin/disinto:813— derive ensure-message from list.env.example— documentLLAMA_BOTSNon-goals
dev-botis unchanged; it continues to use sharedFORGE_TOKENDependencies
Depends on: #830 (issue_claim race fix) — must land first so multi-bot parallel poll is safe.
Context
Second of three issues to enable operational scaling of llama dev agents. Sequence: #830 → this → compose generator refactor. After all three land, adding dev-qwen2 is an
.envedit +disinto up, no code change.Superseded by #834. The existing
disinto hire-an-agent+ project-TOML[agents.*]pattern already provides the parametric structure proposed here; #834 addresses the actual narrow defects (token var naming, FORGE_PASS persistence, per-agent compose token lookup, per-agent project-repos volume). Closing unpicked.