disinto/lib
Claude 43dc86d84c
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
ci/woodpecker/pr/secret-scan Pipeline was successful
ci/woodpecker/pr/smoke-init Pipeline was successful
fix: fix: disinto hire-an-agent + compose generator defects blocking multi-llama-dev parallel operation (#834)
Hiring a second llama-backed dev agent (e.g. `dev-qwen2`) alongside
`dev-qwen` tripped four defects that prevented safe parallel operation.

Gap 1 — hire-agent keyed per-agent token as FORGE_<ROLE>_TOKEN, so two
dev-role agents overwrote each other's token in .env. Re-key by agent
name via `tr 'a-z-' 'A-Z_'`: FORGE_TOKEN_<AGENT_UPPER>.

Gap 2 — hire-agent generated a random FORGE_PASS but never wrote it to
.env. The container's git credential helper needs both token and pass
to push over HTTPS (#361). Persist FORGE_PASS_<AGENT_UPPER> with the
same update-in-place idempotency as the token.

Gap 3 — _generate_local_model_services hardcoded FORGE_TOKEN_LLAMA for
every local-model service, forcing all hired llama agents to share one
Forgejo identity. Derive USER_UPPER from the TOML's `forge_user` field
and emit \${FORGE_TOKEN_<USER_UPPER>:-} per service.

Gap 4 — every local-model service mounted the shared `project-repos`
volume, so concurrent llama devs collided on /_factory worktree and
state/.dev-active. Switch to per-agent `project-repos-<service_name>`
and emit the matching top-level volume. Also escape embedded newlines
in `$all_vols` before the sed insertion so multi-agent volume lists
don't unterminate the substitute command.

.env.example documents the new FORGE_TOKEN_<AGENT> / FORGE_PASS_<AGENT>
naming convention (and preserves the legacy FORGE_TOKEN_LLAMA path used
by the ENABLE_LLAMA_AGENT=1 singleton build).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-16 08:55:48 +00:00
..
hooks fix: Remove Matrix integration — notifications move to forge + OpenClaw (#732) 2026-03-26 14:53:56 +00:00
init/nomad fix: dedupe cluster-up.sh polling via poll_until_healthy helper (#824) 2026-04-16 07:26:54 +00:00
action-vault.sh fix: [nomad-prep] P0 — rename lib/vault.sh + vault/ to action-vault namespace (#792) 2026-04-15 18:16:32 +00:00
agent-sdk.sh fix: bug: architect-run.sh empty pitch — pitch_output=$(agent_run …) captures stdout but new agent_run writes to side-channels (#716) 2026-04-12 00:04:42 +00:00
AGENTS.md chore: gardener housekeeping 2026-04-16 2026-04-16 08:38:31 +00:00
branch-protection.sh fix: bug: init branch-protection setup gives up after 3 short retries — forgejo needs more time to index freshly-created branches (#588) 2026-04-10 15:41:55 +00:00
build-graph.py fix: use undirected reachability for reviewer affected-objectives tracing 2026-03-24 21:31:55 +00:00
ci-debug.sh fix: SECURITY: Unquoted curl URLs with variables in API calls (#60) 2026-03-31 18:48:29 +00:00
ci-helpers.sh fix: fix: duplicated label ID lookup — ensure_blocked_label_id vs _ilc_ensure_label_id (#282) 2026-04-06 10:05:04 +00:00
ci-log-reader.py fix: feat: CI log access — disinto ci-logs + dev-agent CI failure context (#136) 2026-04-02 08:20:21 +00:00
ci-setup.sh fix: vision(#623): Forgejo OAuth gate for disinto-chat (#708) 2026-04-12 01:52:16 +00:00
claude-config.sh fix: disinto init: bootstrap shared CLAUDE_CONFIG_DIR for OAuth lock coherence (#641) 2026-04-10 20:15:35 +00:00
env.sh fix: [nomad-prep] P3 — add load_secret() abstraction to lib/env.sh (#793) 2026-04-15 19:15:50 +00:00
forge-push.sh fix: fix: stop baking credentials into git remote URLs — use clean URLs + existing credential helper everywhere (#604) 2026-04-10 17:04:10 +00:00
forge-setup.sh fix: [nomad-prep] P7 — make disinto init idempotent + add --dry-run (#800) 2026-04-15 22:37:22 +00:00
formula-session.sh fix: bug: architect pitch prompt guardrail is prose-only — model bypasses "NEVER call Forgejo API" via Bash tool; fix via permission scoping + PR-driven sub-issue filing (#764) 2026-04-15 07:41:16 +00:00
generators.sh fix: fix: disinto hire-an-agent + compose generator defects blocking multi-llama-dev parallel operation (#834) 2026-04-16 08:55:48 +00:00
git-creds.sh fix: bug: credential helper race on every cold boot — configure_git_creds() silently falls back to wrong username when Forgejo is not yet ready (#741) 2026-04-13 11:37:23 +00:00
guard.sh fix: tech-debt: sweep cron-isms from code comments, helpers, lib, and public site copy (#548) 2026-04-10 08:54:11 +00:00
hire-agent.sh fix: fix: disinto hire-an-agent + compose generator defects blocking multi-llama-dev parallel operation (#834) 2026-04-16 08:55:48 +00:00
hvault.sh fix: address review — jq-safe JSON construction in hvault.sh 2026-04-15 21:27:34 +00:00
issue-lifecycle.sh fix: issue_claim race — verify assignee after PATCH to prevent duplicate work (#830) 2026-04-16 08:35:18 +00:00
load-project.sh fix: bug: architect-run.sh existing-PR check builds malformed URL — ${FORGE_API}/repos/… duplicates the repos segment (#717) 2026-04-12 00:21:55 +00:00
mirrors.sh fix: use FORGE_API_BASE for /repos/migrate endpoint, build payload with jq 2026-04-15 20:29:27 +00:00
ops-setup.sh fix: fix: stop baking credentials into git remote URLs — use clean URLs + existing credential helper everywhere (#604) 2026-04-10 17:04:10 +00:00
parse-deps.sh fix: parse-deps.sh inline regex matches every line — awk /pattern/i flag is invalid (#600) 2026-03-23 10:59:47 +00:00
pr-lifecycle.sh fix: fix: standardize logging across all agents — capture errors, log exit codes, consistent format (#367) 2026-04-07 21:15:36 +00:00
release.sh fix: [nomad-prep] P0 — rename lib/vault.sh + vault/ to action-vault namespace (#792) 2026-04-15 18:16:32 +00:00
secret-scan.sh fix: add last-reviewed watermark SHA to secret-scan safe patterns 2026-04-16 08:46:00 +00:00
sprint-filer.sh fix: reuse forge_api_all from env.sh in sprint-filer.sh to avoid duplicate pagination code 2026-04-15 07:59:56 +00:00
stack-lock.sh fix: feat: stack lock protocol for singleton project stack access (#255) 2026-04-06 07:09:26 +00:00
tea-helpers.sh fix: tea_relabel uses edit subcommand, add sha256 checksum for tea binary (#666) 2026-03-25 13:34:58 +00:00
worktree.sh fix: Extract lib/worktree.sh — create, recover, cleanup (#797) 2026-03-27 19:06:31 +00:00