Commit graph

494 commits

Author SHA1 Message Date
openhands
382228e31a chore: add issue templates (bug, feature, refactor) 2026-03-21 11:50:03 +00:00
johba
bb8b3e92fb Merge pull request 'fix: CI fix counter can be wasted by guard hits — consider check_only mode (#377)' (#481) from fix/issue-377 into main 2026-03-21 12:39:05 +01:00
openhands
85fffd9fb7 fix: CI fix counter can be wasted by guard hits — consider check_only mode (#377)
Orphan and stuck-PR CI-failure paths in dev-poll.sh called
handle_ci_exhaustion without check_only, incrementing the fix counter on
every poll cycle even when guards (session checks, is_blocked) prevented
an actual agent launch. This could exhaust the 3-attempt budget without
any real fix attempts.

Now both paths use the same two-phase pattern as the backlog scan:
1. check_only during the scan (no counter increment)
2. Increment atomically at actual launch time

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 11:22:07 +00:00
johba
00c16d6251 Merge pull request 'fix: phase-handler.sh DELETE backlog label uses string 'backlog' not numeric ID (#375)' (#477) from fix/issue-375 into main 2026-03-21 12:14:02 +01:00
johba
2259c7d343 Merge pull request 'fix: fix: revert PR #474 — gardener must run from cron, not through action issues (#476)' (#478) from action/issue-476 into main 2026-03-21 12:09:02 +01:00
openhands
38f9b29867 Revert "Merge pull request 'fix: gardener-poll.sh needs to file action issues (not call gardener-agent.sh directly) (#367)' (#474) from fix/issue-367 into main"
This reverts commit cbd52972f3, reversing
changes made to 0dd607c1bb.
2026-03-21 11:00:48 +00:00
openhands
21489c1a17 fix: phase-handler.sh DELETE backlog label uses string 'backlog' not numeric ID (#375)
Replace string 'backlog' with $BACKLOG_LABEL_ID in the DELETE label API call
at dev-agent.sh:370. The Gitea API expects a numeric label ID in that path
segment. The variable is already resolved at the top of the script (line 46-48)
and used correctly elsewhere.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 10:59:46 +00:00
johba
d7ca59dd2f Merge pull request 'chore: planner run journal 2026-03-21' (#471) from chore/planner-20260321-0906 into main 2026-03-21 11:54:33 +01:00
johba
b8b92a8996 Merge pull request 'fix: Two parallel dust-bundling codepaths need consolidation (#368)' (#475) from fix/issue-368 into main 2026-03-21 11:54:02 +01:00
openhands
4c7baff05d fix: Two parallel dust-bundling codepaths need consolidation (#368)
Remove the orphaned post-session dust accumulator from gardener-agent.sh
(no longer reached after #367 moved gardener-poll.sh to action issues).
Add a dedicated dust-bundling formula step to run-gardener.toml that
handles the full lifecycle: dedup, timestamps, 30-day TTL expiry, and
bundling groups with 3+ items into backlog issues.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 10:41:31 +00:00
johba
cbd52972f3 Merge pull request 'fix: gardener-poll.sh needs to file action issues (not call gardener-agent.sh directly) (#367)' (#474) from fix/issue-367 into main 2026-03-21 11:29:41 +01:00
openhands
8193e7bc96 fix: extract build_formula_issue_body to eliminate duplicate code blocks
Move TOML frontmatter construction into a shared helper in
lib/file-action-issue.sh, used by both gardener-poll.sh and
gardener-run.sh. Fixes CI duplicate-detection failure.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 10:23:00 +00:00
openhands
1782cbd610 fix: gardener-poll.sh needs to file action issues (not call gardener-agent.sh directly) (#367)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 10:19:27 +00:00
johba
0dd607c1bb Merge pull request 'fix: fix: action formulas must not contain secrets in issue body (#291)' (#473) from fix/issue-291 into main 2026-03-21 11:08:54 +01:00
openhands
1c8c6a8caf fix: add AKIA and 0x private key redaction, preserve scan diagnostics
- redact_secrets now covers AWS AKIA keys and 0x-prefixed private keys,
  matching all patterns that scan_for_secrets detects
- file-action-issue.sh no longer suppresses stderr from scan_for_secrets,
  so blocked-issue diagnostics reach the caller's log

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 10:00:13 +00:00
openhands
2cc538d4fc fix: register lib/secret-scan.sh in CI smoke test function resolution
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 09:55:58 +00:00
openhands
0b453fdab0 fix: fix: action formulas must not contain secrets in issue body (#291)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 09:54:21 +00:00
johba
3793339da5 Merge pull request 'fix: fix: gardener creates investigation issues for already-closed escalations (#289)' (#472) from fix/issue-289 into main 2026-03-21 10:44:03 +01:00
openhands
082a472b9e fix: gardener creates investigation issues for already-closed escalations (#289)
Filter stale escalation entries in gardener-poll.sh before passing them
to the agent session. For each escalation reply line, extract referenced
issue numbers (#NNN) and check their current state via the API. Discard
entries where all referenced issues are already closed, preventing the
gardener from creating investigation issues for resolved problems.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 09:27:31 +00:00
johba
214b925d95 Merge pull request 'fix: feat: planner journal pattern — daily raw files + periodic summarization (#361)' (#470) from fix/issue-361 into main 2026-03-21 10:14:02 +01:00
openhands
16c41a0b03 chore: planner run 2026-03-21 2026-03-21 09:06:49 +00:00
openhands
83ec300c0e fix: feat: planner journal pattern — daily raw files + periodic summarization (#361)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 08:57:06 +00:00
johba
a698b8e540 Merge pull request 'fix: No relabeling on DISMISS: closed dismissed predictions retain prediction/unreviewed label (#360)' (#468) from fix/issue-360 into main 2026-03-21 09:49:02 +01:00
johba
ecb03ead8e Merge pull request 'chore: planner run journal 2026-03-21' (#467) from chore/planner-20260321-0833 into main
Reviewed-on: https://codeberg.org/johba/disinto/pulls/467
Reviewed-by: Disinto_bot <disinto_bot@noreply.codeberg.org>
2026-03-21 09:42:24 +01:00
openhands
d0e40ead22 chore: planner run 2026-03-21 2026-03-21 09:42:06 +01:00
openhands
33656048f8 fix: No relabeling on DISMISS: closed dismissed predictions retain prediction/unreviewed label (#360)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 08:41:30 +00:00
johba
ffabfa3984 Merge pull request 'fix: fix: action-agent runtime isolation, logging, and cleanup (#357)' (#464) from fix/issue-357 into main 2026-03-21 09:34:02 +01:00
openhands
67481fec9e fix: action-agent runtime isolation, logging, and cleanup (#357)
The action-agent now creates an isolated git worktree before each run
and destroys it unconditionally on exit. The formula must push results
before signaling done — unpushed work is lost when the worktree is nuked.

Changes:
- WORKTREE now points to /tmp/action-{issue}-{timestamp} instead of
  PROJECT_REPO_ROOT
- cleanup_worktree() properly removes the worktree + Claude session history
- cleanup() kills child processes, stops docker, then destroys the worktree
- Claude session runs inside the worktree (not FACTORY_ROOT)
- Prompt warns about push-before-done in both Path A and Path B

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 08:23:31 +00:00
johba
1ba22ca750 Merge pull request 'fix: feat: stream dev-agent Claude output to Matrix thread (extend #293 to dev-agent) (#355)' (#463) from fix/issue-355 into main 2026-03-21 09:18:22 +01:00
openhands
33a92c3fee fix: feat: stream dev-agent Claude output to Matrix thread (extend #293 to dev-agent) (#355)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 08:11:45 +00:00
johba
db325c4415 Merge pull request 'fix: fix: formula agents run in isolated git worktrees — no session collisions (#460)' (#461) from fix/issue-460 into main 2026-03-21 09:01:28 +01:00
openhands
d19160a658 ci: retrigger — push pipeline #651 flaked (PR pipeline #652 passed same commit)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 07:53:29 +00:00
openhands
a2fe3ecb83 fix: formula agents run in isolated git worktrees — no session collisions (#460)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 07:51:27 +00:00
johba
1ad1fdfaa1 Merge pull request 'fix: fix: matrix_listener.sh drops dev/review injections — PROJECT_NAME is unset (#354)' (#459) from fix/issue-354 into main 2026-03-21 08:44:55 +01:00
openhands
02f483ff71 fix: matrix_listener.sh drops dev/review injections — PROJECT_NAME is unset (#354)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 07:38:39 +00:00
johba
ccc8845642 Merge pull request 'fix: dev-poll.sh contains heavy judgment-in-bash not captured in the Current State table (#250)' (#456) from fix/issue-250 into main 2026-03-21 08:29:02 +01:00
openhands
d63a7402df fix: dev-poll.sh contains heavy judgment-in-bash not captured in the Current State table (#250)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 07:20:12 +00:00
johba
a48596e9ae Merge pull request 'fix: Architecture diagram should acknowledge claude -p as a valid judgment layer alongside tmux (#249)' (#453) from fix/issue-249 into main 2026-03-21 08:14:02 +01:00
openhands
304bbdd775 fix: Architecture diagram should acknowledge claude -p as a valid judgment layer alongside tmux (#249)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 07:05:34 +00:00
johba
3bc6abff74 Merge pull request 'fix: Smoke test has no coverage for inline-sourced lib files beyond the four listed (#180)' (#452) from fix/issue-180 into main 2026-03-21 07:59:53 +01:00
openhands
20c02944c0 fix: address review — add check_script for lib/env.sh, fix comment alignment
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 06:49:34 +00:00
openhands
e69ceddeb3 fix: Smoke test has no coverage for inline-sourced lib files beyond the four listed (#180)
- Add check_script calls for all inline-sourced lib files (agent-session.sh,
  ci-helpers.sh, file-action-issue.sh, formula-session.sh, load-project.sh)
  so their internal function calls are verified
- Add check_script calls for standalone lib scripts (ci-debug.sh,
  matrix_listener.sh, parse-deps.sh) and legacy prediction scripts
- Add documentation comment on LIB_FUNS listing included/excluded lib files
  with rationale for each

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 06:41:48 +00:00
johba
36326a46b1 Merge pull request 'fix: load-project.sh does not re-derive CODEBERG_WEB on TOML-based repo override (#147)' (#451) from fix/issue-147 into main 2026-03-21 07:34:02 +01:00
openhands
60d7920aa1 fix: load-project.sh does not re-derive CODEBERG_WEB on TOML-based repo override (#147)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 06:24:41 +00:00
johba
9ac839a98d Merge pull request 'fix: dev-poll.sh: redundant manual state exclusions alongside ci_passed (#113)' (#450) from fix/issue-113 into main 2026-03-21 07:19:02 +01:00
openhands
d29c6ad1c9 fix: dev-poll.sh: redundant manual state exclusions alongside ci_passed (#113)
Add ci_failed() helper to lib/ci-helpers.sh and replace three compound
`! ci_passed && CI_STATE != "" && != "pending" && != "unknown"` patterns
in dev/dev-poll.sh with the cleaner ci_failed() call.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 06:10:39 +00:00
johba
4dc29d2393 Merge pull request 'fix: refactor: replace escalation JSONL with blocked label + diagnostic comment (#352)' (#445) from fix/issue-352 into main 2026-03-21 07:04:02 +01:00
openhands
7b6b56d761 fix: address review — restore +x, guard double comment, update stale docs (#352)
- Restore executable bit on gardener/gardener-poll.sh (cron invokes it directly)
- Add _BLOCKED_POSTED guard to prevent duplicate diagnostic comments when
  both _on_phase_change(PHASE:crashed) and the belt-and-suspenders exit
  handler both call post_blocked_diagnostic()
- Update stale documentation:
  - gardener-run.sh: remove "CI escalation recipes" from issue body
  - AGENTS.md: update directory layout comment for gardener-poll.sh
  - gardener-poll.sh: remove recipe engine description from header

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 05:55:27 +00:00
openhands
e9447051fa supervisor: learned — Race Condition: Review Posted Before PHASE:awaiting_review Transitions 2026-03-21 05:54:34 +00:00
openhands
bda9240268 refactor: extract ensure_blocked_label_id to lib/ci-helpers.sh (#352)
Move ensure_blocked_label_id() from dev/phase-handler.sh into
lib/ci-helpers.sh to eliminate the duplicate blocked-label creation
curl block that existed in both phase-handler.sh and dev-poll.sh.

Both dev-agent.sh and action-agent.sh now source lib/ci-helpers.sh
so the function is available when phase-handler.sh calls it.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 05:06:12 +00:00