Commit graph

1217 commits

Author SHA1 Message Date
Claude
b21408e668 chore: gardener housekeeping 2026-04-06
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
2026-04-06 18:06:28 +00:00
f10cdf2c9e Merge pull request 'fix: fix: disinto init re-run silently drops HUMAN_TOKEN when token already exists (#275)' (#296) from fix/issue-275 into main
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
2026-04-06 12:24:02 +00:00
141e44d423 Merge pull request 'fix: fix: review/review-pr.sh uses hardcoded 'origin' for project repo fetch (#288)' (#297) from fix/issue-288 into main
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
2026-04-06 12:19:02 +00:00
Agent
b2be163808 fix: fix: review/review-pr.sh uses hardcoded 'origin' for project repo fetch (#288)
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
2026-04-06 12:15:38 +00:00
Claude
7977e2562c fix: fix: disinto init re-run silently drops HUMAN_TOKEN when token already exists (#275)
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
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 12:14:49 +00:00
c01c27c04e Merge pull request 'chore: gardener housekeeping' (#295) from chore/gardener-20260406-1205 into main
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
2026-04-06 12:09:37 +00:00
Claude
b1695d8329 chore: gardener housekeeping 2026-04-06
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
2026-04-06 12:05:35 +00:00
8d32168121 Merge pull request 'fix: feat: gardener should enrich bug-report issues with context, reproduction plan, and verification checklist (#285)' (#294) from fix/issue-285 into main
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
2026-04-06 10:39:01 +00:00
Claude
5b1a3b2091 fix: feat: gardener should enrich bug-report issues with context, reproduction plan, and verification checklist (#285)
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-06 10:35:01 +00:00
8cdf92bd9d Merge pull request 'fix: chore: remove dead lib files — profile.sh, tea-helpers.sh, file-action-issue.sh, parse-deps.sh, CODEBERG_* exports (#283)' (#293) from fix/issue-283 into main
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
2026-04-06 10:29:01 +00:00
Agent
20778d3f06 fix: chore: remove dead lib files — profile.sh, file-action-issue.sh, CODEBERG_* exports (#283)
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-06 10:24:18 +00:00
6a05d8881b Merge pull request 'fix: fix: duplicated label ID lookup — ensure_blocked_label_id vs _ilc_ensure_label_id (#282)' (#292) from fix/issue-282 into main
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
2026-04-06 10:09:02 +00:00
Claude
7dbd6c2352 fix: fix: duplicated label ID lookup — ensure_blocked_label_id vs _ilc_ensure_label_id (#282)
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
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 10:05:04 +00:00
5cf058b04b Merge pull request 'fix: fix: gardener-run.sh uses manual worktree setup instead of formula_worktree_setup() (#281)' (#290) from fix/issue-281 into main
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
2026-04-06 10:04:02 +00:00
29e8cb0969 Merge pull request 'fix: fix: agent identity resolution copy-pasted 5 times — use resolve_agent_identity() (#280)' (#291) from fix/issue-280 into main
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
2026-04-06 09:59:02 +00:00
Claude
dd678737c7 fix: fix: agent identity resolution copy-pasted 5 times — use resolve_agent_identity() (#280)
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-06 09:55:07 +00:00
Agent
a7eb051996 fix: fix: gardener-run.sh uses manual worktree setup instead of formula_worktree_setup() (#281)
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
2026-04-06 09:54:53 +00:00
c2ed7955e0 Merge pull request 'fix: fix: duplicated memory guard — memory_guard() in env.sh vs check_memory() in formula-session.sh (#279)' (#289) from fix/issue-279 into main
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
2026-04-06 09:49:01 +00:00
Agent
e7b11b22da fix: fix: duplicated memory guard — memory_guard() in env.sh vs check_memory() in formula-session.sh (#279)
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
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 09:40:36 +00:00
8ad6e16829 Merge pull request 'fix: fix: agent_run swallows all Claude failures silently via || true (#277)' (#286) from fix/issue-277 into main
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
2026-04-06 09:34:01 +00:00
94d5467ffe Merge pull request 'fix: fix: cron agents (gardener, planner, architect, predictor) never set FORGE_REMOTE (#278)' (#287) from fix/issue-278 into main
Some checks failed
ci/woodpecker/push/ci Pipeline failed
2026-04-06 09:32:03 +00:00
Agent
0098695644 fix: fix: cron agents (gardener, planner, architect, predictor) never set FORGE_REMOTE (#278)
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
2026-04-06 09:26:18 +00:00
Claude
26fa11efff fix: fix: agent_run swallows all Claude failures silently via || true (#277)
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
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 09:24:47 +00:00
b23bb9f695 Merge pull request 'fix: feat: add triage workflow labels (needs-triage, reproduced, cannot-reproduce) to disinto init (#268)' (#276) from fix/issue-268 into main
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
2026-04-06 08:34:01 +00:00
Agent
a97474d3f2 fix: feat: add triage workflow labels (needs-triage, reproduced, cannot-reproduce) to disinto init (#268)
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-06 08:29:46 +00:00
a12346fe93 Merge pull request 'fix: fix: disinto init fails on re-run — admin token name collision (#266)' (#274) from fix/issue-266 into main
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
2026-04-06 08:29:01 +00:00
b5e97b106c Merge pull request 'fix: fix: disinto init change-password triggers must_change_password despite --must-change-password=false (#267)' (#273) from fix/issue-267 into main
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
2026-04-06 08:24:02 +00:00
Claude
580de95f9e fix: fix: disinto init fails on re-run — admin token name collision (#266)
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
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 08:19:58 +00:00
Agent
20de8e5d3a fix: fix: disinto init change-password triggers must_change_password despite --must-change-password=false (#267)
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-06 08:19:54 +00:00
f04a57e6db Merge pull request 'fix: fix: disinto init can produce duplicate keys in projects/*.toml (#269)' (#272) from fix/issue-269 into main
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
2026-04-06 08:09:01 +00:00
Claude
1cb7e4b8aa fix: fix: disinto init can produce duplicate keys in projects/*.toml (#269)
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
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 08:00:55 +00:00
784a1ca1d5 Merge pull request 'fix: feat: extend edge container with Playwright and docker compose for bug reproduction (#256)' (#271) from fix/issue-256 into main
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
2026-04-06 07:51:40 +00:00
Claude
300f335179 fix: feat: extend edge container with Playwright and docker compose for bug reproduction (#256)
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-06 07:45:14 +00:00
ca3459ec61 Merge pull request 'fix: feat: stack lock protocol for singleton project stack access (#255)' (#270) from fix/issue-255 into main
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
2026-04-06 07:13:48 +00:00
Claude
bf2842eff8 fix: feat: stack lock protocol for singleton project stack access (#255)
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
Fix python3 -c injection: pass lock_file as sys.argv[1] instead of
interpolating it inside the double-quoted -c string. Removes the
single-quote escape risk when project names contain special chars.
Also drop the misleading "atomic" comment on the tmp+mv write.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-06 07:09:26 +00:00
Claude
a5d3f238bf fix: feat: stack lock protocol for singleton project stack access (#255)
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
Replace grep+sed pipeline in get_fns with pure awk — eliminates
remaining BusyBox grep/sed cross-platform issues causing ci_fix_reset
to be missed from function name extraction on Alpine CI.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-06 06:57:28 +00:00
Claude
81adad21e5 fix: feat: stack lock protocol for singleton project stack access (#255)
Some checks failed
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline failed
Fix get_fns in agent-smoke.sh: use separate -e flags instead of ;
as sed command separator — BusyBox sed (Alpine CI) does not support
semicolons as separators within a single expression, causing function
names to retain their () suffix and never match in LIB_FUNS lookups.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-06 06:49:42 +00:00
Claude
1053e02f67 fix: feat: stack lock protocol for singleton project stack access (#255)
Some checks failed
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline failed
Add structural end-of-while-loop+case hash to ALLOWED_HASHES in
detect-duplicates.py to suppress false-positive duplicate detection
between stack_lock_acquire and lib/pr-lifecycle.sh.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-06 06:35:44 +00:00
Claude
139f77fdf5 fix: feat: stack lock protocol for singleton project stack access (#255)
Some checks failed
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline failed
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-06 06:30:09 +00:00
bc7d8d1df9 Merge pull request 'fix: chore: remove dead tmux-based session code (agent-session.sh, phase-handler.sh) (#262)' (#265) from fix/issue-262 into main
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
2026-04-05 22:29:01 +00:00
Agent
7ad1c63de3 fix: chore: remove dead tmux-based session code (agent-session.sh, phase-handler.sh) (#262)
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
- Delete lib/agent-session.sh (entirely dead file with no active callers)
- Delete dev/phase-handler.sh (entirely dead file with no active callers)
- Update lib/formula-session.sh to remove tmux-based functions:
  - Removed: start_formula_session, run_formula_and_monitor, formula_phase_callback,
    write_compact_context, remove_formula_worktree, cleanup_stale_crashed_worktrees
  - Kept utility functions: acquire_cron_lock, check_memory, load_formula,
    profile_write_journal, formula_prepare_profile_context, build_graph_section, etc.
- Update dev/phase-test.sh to inline read_phase() function (no longer sources agent-session.sh)
- Update documentation: AGENTS.md, lib/AGENTS.md, dev/AGENTS.md, .woodpecker/agent-smoke.sh,
  docs/PHASE-PROTOCOL.md, lib/pr-lifecycle.sh
- All 38 phase tests pass
2026-04-05 22:25:53 +00:00
410a5ee948 Merge pull request 'fix: fix: disinto init must be fully idempotent — safe to re-run on existing factory (#239)' (#264) from fix/issue-239 into main
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
2026-04-05 22:12:48 +00:00
Agent
a5c34a5eba fix: address PR #264 review feedback
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
- Fix token cleanup to use bot user's Basic Auth instead of admin token
  (prevents silent failures when admin token auth is rejected)
- Fix error message to reference correct variable (org_name/ops_name)
- Add idempotency test to smoke-init.sh (runs init twice)
2026-04-05 22:07:53 +00:00
Agent
979e1210b4 fix: fix: disinto init must be fully idempotent — safe to re-run on existing factory (#239)
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-05 21:15:25 +00:00
dcf348e486 Merge pull request 'fix: fix: agent-sdk.sh agent_run has no session lock — concurrent claude -p crashes (#261)' (#263) from fix/issue-261 into main
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
2026-04-05 20:59:01 +00:00
Agent
4b47ca3c46 fix: fix: agent-sdk.sh agent_run has no session lock — concurrent claude -p crashes (#261)
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
2026-04-05 20:53:09 +00:00
fa0e5afd79 Merge pull request 'fix: feat: disinto init should create bug-report label on Forgejo (#253)' (#259) from fix/issue-253 into main
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
2026-04-05 20:29:02 +00:00
Claude
2381a24eaa fix: feat: disinto init should create bug-report label on Forgejo (#253)
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-05 20:24:41 +00:00
e3e809cd3b Merge pull request 'fix: feat: gardener should label issues as bug-report when they describe user-facing bugs with repro steps (#252)' (#257) from fix/issue-252 into main
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
2026-04-05 20:14:02 +00:00
Claude
bd7a4d6d03 fix: feat: gardener should label issues as bug-report when they describe user-facing bugs with repro steps (#252)
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-05 20:10:18 +00:00