Claude
cb8c131bc4
fix: clear EXIT trap before return to avoid unbound $tmpdir under set -u
...
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/nomad-validate Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
ci/woodpecker/pr/nomad-validate 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-19 20:29:44 +00:00
Claude
c287ec0626
fix: tool: disinto backup create — export Forgejo issues + disinto-ops git bundle ( #1057 )
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-19 20:29:44 +00:00
449611e6df
Merge pull request 'fix: bug: disinto-woodpecker-agent unhealthy; step logs truncated on short-duration failures ( #1044 )' ( #1061 ) from fix/issue-1044 into main
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/nomad-validate Pipeline was successful
2026-04-19 20:19:27 +00:00
9f365e40c0
Merge pull request 'fix: bug: claude_run_with_watchdog leaks orphan bash children — review-pr.sh lock stuck for 47 min when Claude Bash-tool command hangs ( #1055 )' ( #1056 ) from fix/issue-1055 into main
ci/woodpecker/push/ci Pipeline was successful
2026-04-19 20:12:19 +00:00
Agent
e90ff4eb7b
fix: bug: disinto-woodpecker-agent unhealthy; step logs truncated on short-duration failures ( #1044 )
...
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/nomad-validate Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
ci/woodpecker/pr/nomad-validate Pipeline was successful
ci/woodpecker/pr/secret-scan Pipeline was successful
ci/woodpecker/pr/smoke-init Pipeline was successful
Add gRPC keepalive settings to maintain stable connections between
woodpecker-agent and woodpecker-server:
- WOODPECKER_GRPC_KEEPALIVE_TIME=10s: Send ping every 10s to detect
stale connections before they timeout
- WOODPECKER_GRPC_KEEPALIVE_TIMEOUT=20s: Allow 20s for ping response
before marking connection dead
- WOODPECKER_GRPC_KEEPALIVE_PERMIT_WITHOUT_CALLS=true: Keep connection
alive even during idle periods between workflows
Also reduce Nomad healthcheck interval from 15s to 10s for faster
detection of agent failures.
These settings address the "queue: task canceled" and "wait(): code:
Unknown" gRPC errors that were causing step logs to be truncated when
the agent-server connection dropped mid-stream.
2026-04-19 20:09:04 +00:00
441e2a366d
Merge pull request 'fix: Compose generator should detect duplicate service names at generate-time ( #850 )' ( #1053 ) from fix/issue-850-4 into main
ci/woodpecker/push/ci Pipeline was successful
2026-04-19 20:02:27 +00:00
dev-qwen2
f878427866
fix: bug: claude_run_with_watchdog leaks orphan bash children — review-pr.sh lock stuck for 47 min when Claude Bash-tool command hangs ( #1055 )
...
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
ci/woodpecker/pr/smoke-init Pipeline was successful
Fixes orphan process issue by:
1. lib/agent-sdk.sh: Use setsid to run claude in a new process group
- All children of claude inherit this process group
- Changed all kill calls to target the process group with -PID syntax
- Affected lines: setsid invocation, SIGTERM kill, SIGKILL kill, watchdog cleanup
2. review/review-pr.sh: Add defensive cleanup trap
- Added cleanup_on_exit() trap that removes lockfile if we own it
- Kills any residual children (e.g., bash -c from Claude's Bash tool)
- Added explicit lockfile removal on all early-exit paths
- Added lockfile removal on successful completion
3. tests/test-watchdog-process-group.sh: New test to verify orphan cleanup
- Creates fake claude stub that spawns sleep 3600 child
- Verifies all children are killed when watchdog fires
Acceptance criteria met:
- [x] setsid is used for the Claude invocation
- [x] All three kill call sites target the process group (-PID)
- [x] review/review-pr.sh has EXIT/INT/TERM trap for lockfile removal
- [x] shellcheck clean on all modified files
2026-04-19 19:54:07 +00:00
Agent
0f91efc478
fix: reset duplicate detection state between compose generation runs
...
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
ci/woodpecker/pr/smoke-init Pipeline was successful
Reset _seen_services and _service_sources arrays at the start of
_generate_compose_impl to prevent state bleeding between multiple
invocations. This fixes the test-duplicate-service-detection.sh test
which fails when run due to global associative array state persisting
between test cases.
Fixes : #850
2026-04-19 19:53:29 +00:00
Agent
1170ecb2f0
fix: Compose generator should detect duplicate service names at generate-time ( #850 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
ci/woodpecker/pr/smoke-init Pipeline was successful
2026-04-19 19:12:40 +00:00
e9aed747b5
fix: feat: per-workflow/per-step CI diagnostics in agent fix prompts (implements #1050 ) ( #1051 ) ( #1052 )
...
ci/woodpecker/push/ci Pipeline was successful
Closes #1051 . Implements the fix sketched in #1050 .
2026-04-19 19:08:16 +00:00
Claude
d1c7f4573a
ci: retrigger after flaky failure
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/nomad-validate Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
2026-04-19 18:49:43 +00:00
Claude
42807903ef
ci: retrigger after flaky failure
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/nomad-validate Pipeline was successful
ci/woodpecker/pr/ci Pipeline failed
2026-04-19 18:37:03 +00:00
Claude
1e1acd50ab
fix: feat: per-workflow/per-step CI diagnostics in agent fix prompts (implements #1050 ) ( #1051 )
...
ci/woodpecker/push/ci Pipeline failed
ci/woodpecker/pr/ci Pipeline was successful
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-19 18:33:44 +00:00
9cc12f2303
Merge pull request 'chore: gardener housekeeping 2026-04-19' ( #1048 ) from chore/gardener-20260419-1702 into main
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/nomad-validate Pipeline was successful
2026-04-19 17:14:22 +00:00
072d352c1c
Merge pull request 'fix: bug: dev-poll skips CI-fix on re-claimed issues — blocked label not cleared on re-claim, starves new PRs at 0 attempts ( #1047 )' ( #1049 ) from fix/issue-1047 into main
ci/woodpecker/push/ci Pipeline was successful
2026-04-19 17:11:07 +00:00
dev-qwen2
78f4966d0c
fix: bug: dev-poll skips CI-fix on re-claimed issues — blocked label not cleared on re-claim, starves new PRs at 0 attempts ( #1047 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
2026-04-19 17:05:10 +00:00
Claude
ca8079ae70
chore: gardener housekeeping 2026-04-19
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/nomad-validate Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
ci/woodpecker/pr/nomad-validate Pipeline was successful
ci/woodpecker/pr/secret-scan Pipeline was successful
2026-04-19 17:03:00 +00:00
5ba18c8f80
Merge pull request 'fix: bug: disinto-edge hard-fails on missing age key / secrets even when collect-engagement feature is not configured ( #1038 )' ( #1045 ) from fix/issue-1038 into main
ci/woodpecker/push/ci Pipeline was successful
2026-04-19 15:43:12 +00:00
dev-qwen2
1c0ec3c7ec
fix: bug: disinto-edge hard-fails on missing age key / secrets even when collect-engagement feature is not configured ( #1038 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
2026-04-19 15:39:57 +00:00
eb19aa6c84
Merge pull request 'chore: gardener housekeeping 2026-04-19' ( #1042 ) from chore/gardener-20260419-1056 into main
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/nomad-validate Pipeline was successful
2026-04-19 11:01:56 +00:00
Claude
86793c4c00
chore: gardener housekeeping 2026-04-19
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/nomad-validate Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
ci/woodpecker/pr/nomad-validate Pipeline was successful
ci/woodpecker/pr/secret-scan Pipeline was successful
2026-04-19 10:56:38 +00:00
0bb04545d4
Merge pull request 'fix: [nomad-step-5] edge dispatcher task: Missing vault.read(kv/data/disinto/bots/vault) on fresh init ( #1035 )' ( #1041 ) from fix/issue-1035 into main
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/nomad-validate Pipeline was successful
2026-04-19 10:08:47 +00:00
1de3b0d560
Merge pull request 'fix: [nomad-step-5] edge caddy task fails to clone Forgejo from 127.0.0.1:3000 under bridge network ( #1034 )' ( #1039 ) from fix/issue-1034 into main
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/nomad-validate Pipeline was successful
2026-04-19 09:56:50 +00:00
Agent
d1e535696a
detect-duplicates: add allowed hashes for vault-seed-ops-repo duplicate patterns
...
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
ci/woodpecker/pr/nomad-validate Pipeline was successful
ci/woodpecker/pr/secret-scan Pipeline was successful
ci/woodpecker/pr/smoke-init Pipeline was successful
The new vault-seed-ops-repo.sh script intentionally follows the same
pattern as vault-seed-forgejo.sh. Add 13 allowed hashes to prevent
false positives in duplicate detection CI.
2026-04-19 09:56:11 +00:00
dev-qwen2
ada27759de
fix: [nomad-step-5] edge caddy task fails to clone Forgejo from 127.0.0.1:3000 under bridge network ( #1034 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/nomad-validate Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
ci/woodpecker/pr/nomad-validate Pipeline was successful
ci/woodpecker/pr/secret-scan Pipeline was successful
2026-04-19 09:45:06 +00:00
dev-qwen2
2648c401f4
fix: [nomad-step-5] edge caddy task fails to clone Forgejo from 127.0.0.1:3000 under bridge network ( #1034 )
2026-04-19 09:45:06 +00:00
b09463b162
Merge pull request 'fix: [nomad-step-5] deploy.sh 240s healthy_deadline too tight for chat cold-start ( #1036 )' ( #1040 ) from fix/issue-1036 into main
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/nomad-validate Pipeline was successful
2026-04-19 09:41:12 +00:00
Agent
72f981528d
test: add test cases for edge service ops-repo seed ( #1035 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/nomad-validate Pipeline was successful
ci/woodpecker/pr/ci Pipeline failed
ci/woodpecker/pr/nomad-validate Pipeline was successful
ci/woodpecker/pr/secret-scan Pipeline was successful
ci/woodpecker/pr/smoke-init Pipeline was successful
2026-04-19 09:40:19 +00:00
Agent
cd778c4775
fix: [nomad-step-5] edge dispatcher task: Missing vault.read(kv/data/disinto/bots/vault) on fresh init ( #1035 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/nomad-validate Pipeline was successful
ci/woodpecker/pr/ci Pipeline failed
ci/woodpecker/pr/nomad-validate Pipeline was successful
ci/woodpecker/pr/secret-scan Pipeline was successful
ci/woodpecker/pr/smoke-init Pipeline failed
2026-04-19 09:35:27 +00:00
Claude
bf3d16e8b3
fix: [nomad-step-5] deploy.sh 240s healthy_deadline too tight for chat cold-start ( #1036 )
...
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/nomad-validate Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
ci/woodpecker/pr/nomad-validate Pipeline was successful
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-19 09:32:46 +00:00
7c543c9a16
Merge pull request 'fix: fix: edge.hcl uses Docker hostname routing — forgejo/woodpecker/chat upstreams unreachable in Nomad ( #1031 )' ( #1032 ) from fix/issue-1031 into main
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/nomad-validate Pipeline was successful
2026-04-19 04:50:57 +00:00
b5fe756d7a
Merge pull request 'chore: gardener housekeeping' ( #1030 ) from chore/gardener-20260419-0434 into main
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/nomad-validate Pipeline was successful
2026-04-19 04:45:09 +00:00
Claude
47046ead2e
fix: add network_mode=host to dispatcher task — FORGE_URL unreachable from bridge namespace
...
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/nomad-validate Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
ci/woodpecker/pr/nomad-validate Pipeline was successful
ci/woodpecker/pr/secret-scan Pipeline was successful
The dispatcher task's FORGE_URL was changed to 127.0.0.1:3000 but the
task was still in bridge networking mode, making the host's loopback
unreachable. Add network_mode = "host" to match the caddy task.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-19 04:44:10 +00:00
Claude
7fd8a0cbba
fix: edge.hcl uses Docker hostname routing — forgejo/woodpecker/chat upstreams unreachable in Nomad ( #1031 )
...
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/nomad-validate Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
ci/woodpecker/pr/nomad-validate Pipeline was successful
ci/woodpecker/pr/secret-scan Pipeline was successful
Add network_mode = "host" to the caddy task docker config (matching
woodpecker-agent.hcl pattern) and replace all bare Docker hostnames
with 127.0.0.1:<port>:
- forgejo:3000 → 127.0.0.1:3000
- woodpecker:8000 → 127.0.0.1:8000
- chat:8080 → 127.0.0.1:8080
- FORGE_URL env in both caddy and dispatcher tasks
Staging route already uses nomadService discovery (S5-fix-7, #1018 ).
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-19 04:36:32 +00:00
Claude
cf8a4b51ed
chore: gardener housekeeping 2026-04-19
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/nomad-validate Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
ci/woodpecker/pr/nomad-validate Pipeline was successful
ci/woodpecker/pr/secret-scan Pipeline was successful
2026-04-19 04:34:16 +00:00
a467d613a4
Merge pull request 'chore: gardener housekeeping' ( #1029 ) from chore/gardener-20260418-2226 into main
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/nomad-validate Pipeline was successful
2026-04-18 22:29:55 +00:00
Claude
2fd5bf2192
chore: gardener housekeeping 2026-04-18
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/nomad-validate Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
ci/woodpecker/pr/nomad-validate Pipeline was successful
ci/woodpecker/pr/secret-scan Pipeline was successful
2026-04-18 22:26:40 +00:00
3fb2de4a8a
Merge pull request 'fix: tech-debt: no-op sed in generate_compose --build mode (lib/generators.sh) ( #915 )' ( #1024 ) from fix/issue-915 into main
ci/woodpecker/push/ci Pipeline was successful
2026-04-18 16:39:30 +00:00
Agent
c24d204b0f
fix: tech-debt: no-op sed in generate_compose --build mode (lib/generators.sh) ( #915 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
ci/woodpecker/pr/smoke-init Pipeline was successful
2026-04-18 16:29:59 +00:00
58a4ce4e0c
Merge pull request 'chore: gardener housekeeping' ( #1020 ) from chore/gardener-20260418-1620 into main
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/nomad-validate Pipeline was successful
2026-04-18 16:28:06 +00:00
Claude
b475f99873
chore: gardener housekeeping 2026-04-18
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/nomad-validate Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
ci/woodpecker/pr/nomad-validate Pipeline was successful
ci/woodpecker/pr/secret-scan Pipeline was successful
2026-04-18 16:20:53 +00:00
b05a31197c
Merge pull request 'fix: [nomad-step-5] S5-fix-7 — staging port 80 collides with edge; staging should use dynamic port ( #1018 )' ( #1019 ) from fix/issue-1018 into main
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/nomad-validate Pipeline was successful
2026-04-18 13:48:25 +00:00
Claude
e6dcad143d
fix: [nomad-step-5] S5-fix-7 — staging port 80 collides with edge; staging should use dynamic port ( #1018 )
...
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/nomad-validate Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
ci/woodpecker/pr/nomad-validate Pipeline was successful
ci/woodpecker/pr/secret-scan Pipeline was successful
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-18 13:39:30 +00:00
a35d6e7848
Merge pull request 'fix: [nomad-step-5] S5-fix-6 — chat Dockerfile must bake Claude CLI (same as agents #984 ) ( #1016 )' ( #1017 ) from fix/issue-1016 into main
ci/woodpecker/push/ci Pipeline was successful
2026-04-18 13:10:10 +00:00
Agent
38b55e1855
fix: [nomad-step-5] S5-fix-6 — chat Dockerfile must bake Claude CLI (same as agents #984 ) ( #1016 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
2026-04-18 13:08:01 +00:00
Agent
4f5e546c42
fix: [nomad-step-5] S5-fix-6 — chat Dockerfile must bake Claude CLI (same as agents #984 ) ( #1016 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
2026-04-18 13:01:12 +00:00
85969ad42d
Merge pull request 'fix: [nomad-step-5] S5-fix-5 — chat.hcl tmpfs syntax: use mount block not tmpfs argument ( #1012 )' ( #1015 ) from fix/issue-1012-2 into main
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/nomad-validate Pipeline was successful
2026-04-18 12:47:29 +00:00
Claude
31e2f63f1b
fix: [nomad-step-5] S5-fix-5 — chat.hcl tmpfs syntax: use mount block not tmpfs argument ( #1012 )
...
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/nomad-validate Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
ci/woodpecker/pr/nomad-validate Pipeline was successful
ci/woodpecker/pr/secret-scan Pipeline was successful
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-18 12:43:08 +00:00
f98338cec7
Merge pull request 'fix: [nomad-step-5] S5-fix-4 — staging health check 404: host volume empty, needs content seeded ( #1010 )' ( #1011 ) from fix/issue-1010 into main
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/nomad-validate Pipeline was successful
2026-04-18 11:35:45 +00:00
Agent
fa7fb60415
fix: [nomad-step-5] S5-fix-4 — staging health check 404: host volume empty, needs content seeded ( #1010 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/nomad-validate Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
ci/woodpecker/pr/nomad-validate Pipeline was successful
ci/woodpecker/pr/smoke-init Pipeline was successful
2026-04-18 11:22:39 +00:00