fix: refactor: extract setup_forge() from bin/disinto into lib/forge-setup.sh (#298) #307

Closed
dev-bot wants to merge 17 commits from fix/issue-298 into main

17 commits

Author SHA1 Message Date
Claude
74088c5aba fix: refactor: extract setup_forge() from bin/disinto into lib/forge-setup.sh (#298)
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 Sonnet 4.6 <noreply@anthropic.com>
2026-04-06 18:26:30 +00:00
Claude
bbc1c21930 fix: fix: disinto init re-run silently drops HUMAN_TOKEN when token already exists (#275)
Apply delete-then-recreate pattern for human token (matching admin token in PR #274).
Forge/Forgejo only returns sha1 at creation time; listing returns no sha1, causing
HUMAN_TOKEN to be silently empty on re-runs when token name already exists.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-06 18:26:30 +00:00
Agent
cddf0dea88 fix: fix: review/review-pr.sh uses hardcoded 'origin' for project repo fetch (#288) 2026-04-06 18:26:30 +00:00
Claude
62ad6a9eee chore: gardener housekeeping 2026-04-06 2026-04-06 18:26:30 +00:00
Claude
8bc216a27e fix: feat: gardener should enrich bug-report issues with context, reproduction plan, and verification checklist (#285)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-06 18:26:30 +00:00
Agent
7a9ebade64 fix: chore: remove dead lib files — profile.sh, file-action-issue.sh, CODEBERG_* exports (#283) 2026-04-06 18:26:30 +00:00
Claude
332f7c158c fix: fix: duplicated label ID lookup — ensure_blocked_label_id vs _ilc_ensure_label_id (#282)
Remove ensure_blocked_label_id() from ci-helpers.sh; _ilc_ensure_label_id()
in issue-lifecycle.sh is the canonical, general implementation. Update the
stale comment that referenced the removed function.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-06 18:26:30 +00:00
Agent
175b0b9510 fix: fix: gardener-run.sh uses manual worktree setup instead of formula_worktree_setup() (#281) 2026-04-06 18:26:30 +00:00
Claude
d1b9d54693 fix: fix: agent identity resolution copy-pasted 5 times — use resolve_agent_identity() (#280)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-06 18:26:30 +00:00
Agent
67d11631cc fix: fix: duplicated memory guard — memory_guard() in env.sh vs check_memory() in formula-session.sh (#279)
Remove check_memory() from lib/formula-session.sh and update all *-run.sh scripts
to use memory_guard() from lib/env.sh.

Changes:
- lib/formula-session.sh: Removed check_memory() function and its documentation
- gardener/gardener-run.sh: Replaced check_memory(2000) with memory_guard(2000)
- planner/planner-run.sh: Replaced check_memory(2000) with memory_guard(2000)
- architect/architect-run.sh: Replaced check_memory(2000) with memory_guard(2000)
- predictor/predictor-run.sh: Replaced check_memory(2000) with memory_guard(2000)
- supervisor/supervisor-run.sh: Replaced check_memory(2000) with memory_guard(2000)

Benefits:
- Only one memory check function exists now
- All agents use the same function
- No dependency on free command - uses /proc/meminfo which is more portable
2026-04-06 18:26:30 +00:00
Claude
ea8050d5cf fix: fix: agent_run swallows all Claude failures silently via || true (#277)
Capture exit code from claude invocations instead of suppressing with || true.
Log timeout (rc=124) and non-zero exits distinctly. Skip nudge when output is
empty (claude crashed or failed). Log empty output as a clear diagnostic message.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-06 18:26:30 +00:00
Agent
6181e4349a fix: fix: cron agents (gardener, planner, architect, predictor) never set FORGE_REMOTE (#278) 2026-04-06 18:26:30 +00:00
Agent
59b10e27de fix: feat: add triage workflow labels (needs-triage, reproduced, cannot-reproduce) to disinto init (#268) 2026-04-06 18:26:30 +00:00
Claude
44b645ee00 fix: fix: disinto init fails on re-run — admin token name collision (#266)
Delete any existing token with the same name before creating a fresh one,
so that sha1 is always returned by the create response. The list API does
not return sha1 (Forgejo redacts it for security), making the old fallback
unreliable.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-06 18:26:30 +00:00
Agent
cff90e927d fix: fix: disinto init change-password triggers must_change_password despite --must-change-password=false (#267) 2026-04-06 18:26:30 +00:00
Claude
5faa86956b fix: fix: disinto init can produce duplicate keys in projects/*.toml (#269)
Export actual_ops_slug from setup_ops_repo via _ACTUAL_OPS_SLUG global,
then update ops_repo in the TOML in-place using Python re.sub after TOML
creation or detection. Falls back to inserting after the repo line if the
key is missing. This prevents duplicate TOML keys on repeated init runs.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-06 18:26:30 +00:00
Claude
de7a1d3bc6 fix: feat: extend edge container with Playwright and docker compose for bug reproduction (#256)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-06 18:26:30 +00:00