Commit graph

1501 commits

Author SHA1 Message Date
Claude
f700c33a1b fix: bug: local-model agents reuse FORGE_TOKEN of main agent — wrong Forgejo identity (#563)
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
ci/woodpecker/pr/smoke-init Pipeline was successful
This fixes the issue where agents-llama containers were using the main
FORGE_TOKEN (dev-bot) instead of dedicated credentials for the llama bot user.

Changes:
- forge-setup.sh: Added generation of FORGE_TOKEN_LLAMA and FORGE_PASS_LLAMA
  for local-model bot users (dev-qwen, dev-qwen-nightly). These are created
  as Forgejo users with their own API tokens and passwords for git push.
- generators.sh: Updated agents-llama service to use FORGE_TOKEN_LLAMA and
  FORGE_PASS_LLAMA instead of falling back to dev-bot's credentials.
  Fixed escaping to defer variable resolution to docker-compose runtime.
- docker-compose.yml: Updated to use FORGE_TOKEN_LLAMA and FORGE_PASS_LLAMA
  (renamed from FORGE_TOKEN_DEVQWEN for consistency).
- .env.example: Added documentation for all per-bot tokens and passwords.
- projects/disinto.toml.example: Documented the auto-credential generation.

When a project TOML configures [agents.llama] with forge_user = dev-qwen:
1. disinto init creates the dev-qwen Forgejo user
2. Generates FORGE_TOKEN_LLAMA and FORGE_PASS_LLAMA
3. Adds dev-qwen as write collaborator on the project repo
4. The agents-llama container uses these credentials for all Forgejo API calls

This ensures issues and PRs created by the llama agent are correctly
attributed to dev-qwen instead of dev-bot.
2026-04-10 10:49:23 +00:00
42d4367fe1 Merge pull request 'fix: feat: disinto agent enable/disable commands for guard control (#556)' (#592) from fix/issue-556 into main
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
2026-04-10 10:26:40 +00:00
Claude
934bf9876c fix: feat: disinto agent enable/disable commands for guard control (#556)
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
ci/woodpecker/pr/smoke-init Pipeline was successful
2026-04-10 10:20:00 +00:00
56f21b0362 Merge pull request 'fix: bug: dispatcher reproduce/triage/verify dispatch fails — no project TOML at /opt/disinto/projects/ in edge container (#554)' (#579) from fix/issue-554 into main
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
2026-04-10 10:13:33 +00:00
afeaffbeae Merge pull request 'fix: bug: edge container supervisor loop never runs (and /opt/disinto-logs not created) (#555)' (#580) from fix/issue-555 into main
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
2026-04-10 10:07:38 +00:00
Claude
fde7d1170e fix: bug: dispatcher reproduce/triage/verify dispatch fails — no project TOML at /opt/disinto/projects/ in edge container (#554)
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
2026-04-10 09:35:50 +00:00
Claude
098c19cb3a fix: bug: edge container supervisor loop never runs (and /opt/disinto-logs not created) (#555)
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
Two fixes:
- Create /opt/disinto-logs before supervisor loop starts (tee was failing)
- Replace exec caddy with background caddy + wait -n pattern so the
  supervisor loop subshell isn't orphaned when the parent shell exec's away

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 09:32:47 +00:00
Claude
37c44d7ac4 fix: bug: dispatcher reproduce/triage/verify dispatch fails — no project TOML at /opt/disinto/projects/ in edge container (#554)
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
2026-04-10 09:23:29 +00:00
8dca5c7eb3 Merge pull request 'fix: bug: edge container missing claude binary and OAuth credentials mount (#553)' (#573) from fix/issue-553 into main
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
2026-04-10 09:18:39 +00:00
Claude
f38e3e0d0d fix: bug: edge container missing claude binary and OAuth credentials mount (#553)
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 09:13:11 +00:00
06eb806566 Merge pull request 'fix: tech-debt: rewrite AD-002 — concurrency is bounded per LLM backend, not per project (#550)' (#571) from fix/issue-550 into main
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
2026-04-10 09:07:25 +00:00
Claude
0a5b54ff4f fix: tech-debt: rewrite AD-002 — concurrency is bounded per LLM backend, not per project (#550)
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
2026-04-10 09:03:52 +00:00
b7e8fdc9ac Merge pull request 'fix: tech-debt: sweep cron-isms from code comments, helpers, lib, and public site copy (#548)' (#568) from fix/issue-548 into main
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
2026-04-10 09:00:36 +00:00
Claude
f0c3c773ff fix: tech-debt: sweep cron-isms from code comments, helpers, lib, and public site copy (#548)
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
ci/woodpecker/pr/smoke-init Pipeline was successful
- Rename acquire_cron_lock → acquire_run_lock in lib/formula-session.sh
  and all five *-run.sh call sites
- Update all *-run.sh file headers: "Cron wrapper" → "Polling-loop wrapper"
- Rewrite docs/updating-factory.md: replace crontab check with pgrep,
  replace "Crontab empty after restart" section with polling-loop equivalent
- Update docs/EVAL-MCP-SERVER.md to reflect polling-loop reality
- Update lib/guard.sh, lib/AGENTS.md, lib/ci-setup.sh comments
- Update formulas/*.toml comments (cron → polling loop)
- Update dev/dev-poll.sh usage comment
- Update tests/smoke-init.sh to handle compose vs bare-metal scheduling
- Update .woodpecker/agent-smoke.sh comments
- Update site HTML: architecture.html, quickstart.html, index.html
- Clarify _install_cron_impl is bare-metal only (compose uses polling loop)
- Keep site/collect-engagement.sh and site/collect-metrics.sh cron refs
  (genuinely cron-driven on the website host, separate from factory loop)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 08:54:11 +00:00
da4d9077dd Merge pull request 'fix: docs: per-agent AGENTS.md files still describe cron triggers (#547)' (#567) from fix/issue-547 into main
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
2026-04-10 08:42:02 +00:00
Claude
6a6d2d0774 fix: docs: per-agent AGENTS.md files still describe cron triggers (#547)
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
2026-04-10 08:35:19 +00:00
84ab6ef0a8 Merge pull request 'fix: docs: architecture docs still describe cron scheduling — factory runs from while-true polling loop (#546)' (#566) from fix/issue-546 into main
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
2026-04-10 08:30:23 +00:00
Claude
3f76b3495a fix: docs: architecture docs still describe cron scheduling — factory runs from while-true polling loop (#546)
Some checks failed
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline failed
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 08:26:24 +00:00
a8b96d8211 Merge pull request 'fix: bug: supervisor hardcodes ops repo expectation — fails silently on deployments without one (#544)' (#564) from fix/issue-544 into main
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
2026-04-10 08:19:07 +00:00
Claude
f299bae77b fix: bug: supervisor hardcodes ops repo expectation — fails silently on deployments without one (#544)
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
Add OPS repo presence detection in supervisor-run.sh with degraded mode support:
- Detect if OPS_REPO_ROOT is missing and log WARNING message
- Set OPS_REPO_DEGRADED=1 flag and configure fallback paths
- Bundle minimal knowledge files as fallback for degraded mode
- Update formula to use OPS_KNOWLEDGE_ROOT, OPS_JOURNAL_ROOT, OPS_VAULT_ROOT
- Support local vault destination and journal fallback when ops repo absent

Knowledge files bundled: disk.md, memory.md, ci.md, git.md, dev-agent.md,
review-agent.md, forge.md

The supervisor now runs with full functionality when ops repo is available,
or gracefully degrades to local paths when absent, making the failure mode
explicit rather than silent.
2026-04-10 08:16:03 +00:00
be5957f127 Merge pull request 'fix: bug: edge entrypoint defaults FORGE_REPO to disinto-admin/disinto — footgun for non-disinto deployments (#543)' (#562) from fix/issue-543 into main
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
2026-04-10 08:07:05 +00:00
Claude
58fd3cbde1 fix: remove disinto-specific TOML fallback and fix load-project.sh path in edge entrypoint
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
- Remove hardcoded `disinto.toml` as default TOML search path; scan
  projects/ directory for any .toml instead
- Fix load-project.sh path: use FACTORY_ROOT (consistent with the rest
  of the block) instead of SCRIPT_ROOT/BASH_SOURCE which resolves to
  /usr/local/bin in the container — wrong for /opt/disinto/lib/

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 08:03:55 +00:00
Claude
fe043f4368 fix: bug: edge entrypoint defaults FORGE_REPO to disinto-admin/disinto — footgun for non-disinto deployments (#543)
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
2026-04-10 07:58:10 +00:00
596875de3c Merge pull request 'fix: bug: edge entrypoint hardcodes projects/disinto.toml as supervisor argument (#542)' (#561) from fix/issue-542 into main
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
2026-04-10 07:54:25 +00:00
Claude
dba3adf1bb fix: bug: edge entrypoint hardcodes projects/disinto.toml as supervisor argument (#542)
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 07:48:58 +00:00
a844350609 Merge pull request 'fix: bug: supervisor preflight uses direct wpdb SQL — should use existing woodpecker_api() helper (#541)' (#560) from fix/issue-541 into main
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
2026-04-10 07:43:31 +00:00
Claude
2a1c974c92 fix: bug: supervisor preflight uses direct wpdb SQL — should use existing woodpecker_api() helper (#541)
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
2026-04-10 07:36:58 +00:00
5115c9fef9 Merge pull request 'fix: bug: supervisor P1 disk auto-fix uses docker system prune -f — too weak for real disk pressure (#539)' (#559) from fix/issue-539 into main
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
2026-04-10 07:32:18 +00:00
Claude
48c97a9b09 fix: bug: supervisor P1 disk auto-fix uses docker system prune -f — too weak for real disk pressure (#539)
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 07:29:01 +00:00
3a9ee5dc55 Merge pull request 'fix: Add bash quick-exit guard to planner-run.sh to enable 10-minute cadence (#537)' (#552) from fix/issue-537 into main
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
2026-04-10 07:23:59 +00:00
Claude
af9b8134d9 fix: Add bash quick-exit guard to planner-run.sh to enable 10-minute cadence (#537)
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 07:18:51 +00:00
ad77edd207 Merge pull request 'fix: bug: agents-llama entrypoint writes to dev-poll log path before creating parent directory (#533)' (#551) from fix/issue-533 into main
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
2026-04-10 07:12:45 +00:00
Claude
a0280aa454 fix: bug: agents-llama entrypoint writes to dev-poll log path before creating parent directory (#533)
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 07:07:24 +00:00
bba7585ce1 Merge pull request 'fix: bug: tracked docker-compose.yml mounts forgejo at /var/lib/forgejo instead of /data (#532)' (#549) from fix/issue-532 into main
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
2026-04-10 07:02:51 +00:00
Claude
c419768871 fix: bug: tracked docker-compose.yml mounts forgejo at /var/lib/forgejo instead of /data (#532)
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 06:57:46 +00:00
ec950f1a78 Merge pull request 'fix: bug: dispatcher should use docker run, not docker compose run — compose context unavailable in edge container (#529)' (#538) from fix/issue-529 into main
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
2026-04-10 06:52:18 +00:00
Claude
ff25e5a084 fix: bug: dispatcher should use docker run, not docker compose run — compose context unavailable in edge container (#529)
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 06:49:09 +00:00
31fde3d471 Merge pull request 'fix: feat: vault actions should support mount declarations for credentials like SSH keys (#528)' (#536) from fix/issue-528 into main
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
2026-04-10 06:40:51 +00:00
Claude
3a4f2c0101 fix: keep GITHUB_TOKEN/CODEBERG_TOKEN secrets in release vault action
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
formulas/release.sh still uses API tokens for mirror pushes. Add mounts
alongside secrets rather than replacing them, so both the .sh (token) and
.toml (SSH) formula paths work.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 06:36:59 +00:00
Claude
43af38046c fix: feat: vault actions should support mount declarations for credentials like SSH keys (#528)
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 06:30:08 +00:00
91fcf70889 Merge pull request 'fix: bug: generate_compose() agents-llama missing Claude binary and credential volume mounts (#527)' (#531) from fix/issue-527 into main
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
2026-04-10 06:22:34 +00:00
Claude
33f1eebd64 fix: move _generate_local_model_services before CLAUDE_BIN_PLACEHOLDER sed pass
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
ci/woodpecker/pr/smoke-init Pipeline was successful
The placeholder substitution ran before local-model services were appended,
leaving a literal CLAUDE_BIN_PLACEHOLDER in the compose file. Reorder so
the sed pass runs after all services (including local-model) are in place.

Also adds the `g` flag to the sed substitution so it replaces all occurrences,
and aligns the .ssh volume mount escaping with the other ${HOME} references.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 06:16:40 +00:00
Claude
000ccb17c2 fix: bug: generate_compose() agents-llama missing Claude binary and credential volume mounts (#527)
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
ci/woodpecker/pr/smoke-init Pipeline was successful
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 06:09:19 +00:00
cb832f5bf6 Merge pull request 'fix: feat: hire-an-agent should support local models (--local-model flag) (#521)' (#530) from fix/issue-521 into main
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
2026-04-10 06:03:32 +00:00
Claude
35885fa30c fix: separate poll_interval from compact_pct in local-model agent TOML config
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
ci/woodpecker/pr/smoke-init Pipeline was successful
--poll-interval was incorrectly written as compact_pct in the project TOML,
misconfiguring CLAUDE_AUTOCOMPACT_PCT_OVERRIDE instead of polling behavior.
Now compact_pct is hardcoded to 60 (the correct default) and poll_interval
is a separate TOML field emitted as POLL_INTERVAL in the compose service.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 05:56:18 +00:00
Claude
1e4754675d fix: feat: hire-an-agent should support local models (--local-model flag) (#521)
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
ci/woodpecker/pr/smoke-init Pipeline was successful
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 05:47:34 +00:00
aeaef880ec Merge pull request 'fix: feat: generate_compose() should support local-model agent containers (#520)' (#525) from fix/issue-520 into main
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
2026-04-09 20:25:09 +00:00
b26c5e6400 Merge pull request 'fix: bug: dev-poll marks issues assigned to other agents as stale (#522)' (#526) from fix/issue-522 into main
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
2026-04-09 20:17:31 +00:00
Claude
1e23362721 fix: bug: dev-poll marks issues assigned to other agents as stale (#522)
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 20:10:17 +00:00
Claude
3e9ac2b261 fix: feat: generate_compose() should support local-model agent containers (#520)
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
ci/woodpecker/pr/smoke-init Pipeline was successful
2026-04-09 20:09:38 +00:00