Commit graph

1753 commits

Author SHA1 Message Date
Claude
6af8f002f5 fix: bug: entrypoint.sh wait (no-args) serializes polling loop behind long-lived dev-agent/gardener — causes system-wide deadlock (#753)
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-14 22:37:24 +00:00
c5b0b1dc23 Merge pull request 'fix: investigation: CI exhaustion pattern on chat sub-issues #707 and #712 — 3+ failures each (#742)' (#754) from fix/issue-742 into main
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
2026-04-14 22:05:36 +00:00
Claude
a08d87d0f3 fix: investigation: CI exhaustion pattern on chat sub-issues #707 and #712 — 3+ failures each (#742)
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
Two bugs in agent-smoke.sh caused non-deterministic CI failures:

1. SIGPIPE race with pipefail: `printf | grep -q` fails when grep closes
   the pipe early after finding a match, causing printf to get SIGPIPE
   (exit 141). With pipefail, the pipeline returns non-zero even though
   grep succeeded — producing false "undef" failures. Fixed by using
   here-strings (<<<) instead of pipes for all grep checks.

2. Incomplete LIB_FUNS: hand-maintained REQUIRED_LIBS list (11 files)
   didn't cover all 26 lib/*.sh files, silently producing a partial
   function list. Fixed by enumerating all lib/*.sh in stable
   lexicographic order (LC_ALL=C sort), excluding only standalone
   scripts (ci-debug.sh, parse-deps.sh).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 22:04:43 +00:00
59717558d4 Merge pull request 'fix: fix: format-detection guard in collect-engagement.sh — fail loudly on non-JSON logs (#746)' (#752) from fix/issue-746 into main
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
2026-04-14 21:52:18 +00:00
409a796556 Merge pull request 'chore: gardener housekeeping' (#751) from chore/gardener-20260414-2024 into main
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
2026-04-14 21:50:15 +00:00
Claude
7f2198cc76 fix: format-detection guard in collect-engagement.sh — fail loudly on non-JSON logs (#746)
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-14 20:25:53 +00:00
Claude
de8243b93f chore: gardener housekeeping 2026-04-14
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
2026-04-14 20:24:38 +00:00
38713ab030 Merge pull request 'fix: bug: dev-poll.sh post-crash deadlock — self-assigned in-progress issue never recovered when no lock/branch/PR (#749)' (#750) from fix/issue-749 into main
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
2026-04-14 20:21:39 +00:00
Claude
2979580171 fix: bug: dev-poll.sh post-crash deadlock — self-assigned in-progress issue never recovered when no lock/branch/PR (#749)
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-14 20:15:21 +00:00
4e53f508d9 Merge pull request 'fix: bug: credential helper race on every cold boot — configure_git_creds() silently falls back to wrong username when Forgejo is not yet ready (#741)' (#744) from fix/issue-741 into main
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
2026-04-14 19:38:24 +00:00
4200cb13c6 Merge pull request 'chore: gardener housekeeping' (#743) from chore/gardener-20260413-1136 into main
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
2026-04-14 19:28:32 +00:00
Claude
02915456ae fix: bug: credential helper race on every cold boot — configure_git_creds() silently falls back to wrong username when Forgejo is not yet ready (#741)
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-13 11:37:23 +00:00
Claude
05bc926906 chore: gardener housekeeping 2026-04-13
All checks were successful
ci/woodpecker/pr/ci Pipeline was successful
ci/woodpecker/pr/smoke-init Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-04-13 11:36:50 +00:00
c4ca1e930d Merge pull request 'chore: gardener housekeeping' (#740) from chore/gardener-20260412-0628 into main
Some checks failed
ci/woodpecker/push/ci Pipeline failed
2026-04-13 10:27:47 +00:00
Claude
246ed9050d chore: gardener housekeeping 2026-04-12
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
2026-04-12 06:28:02 +00:00
4fcbca1bef Merge pull request 'fix: tech-debt: close_vision_issue state=closed PATCH swallows errors — stuck-open vision issues after idempotency guard (#737)' (#739) from fix/issue-737 into main
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
2026-04-12 06:12:47 +00:00
Claude
3f8c0321ed fix: tech-debt: close_vision_issue state=closed PATCH swallows errors — stuck-open vision issues after idempotency guard (#737)
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-12 06:06:25 +00:00
79346fd501 Merge pull request 'chore: gardener housekeeping' (#738) from chore/gardener-20260412-0519 into main
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
2026-04-12 05:37:08 +00:00
Claude
0c4f00a86c chore: gardener housekeeping 2026-04-12
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
2026-04-12 05:19:57 +00:00
ec7dff854a Merge pull request 'fix: bug: architect close-vision lifecycle matches unrelated sub-issues — spams false completion comments (#735)' (#736) from fix/issue-735 into main
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
2026-04-12 04:52:30 +00:00
Claude
e275c35fa8 fix: bug: architect close-vision lifecycle matches unrelated sub-issues — spams false completion comments (#735)
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-12 04:41:12 +00:00
12d9f52903 Merge pull request 'chore: gardener housekeeping' (#734) from chore/gardener-20260412-0408 into main
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
2026-04-12 04:14:34 +00:00
Claude
aeda17a601 chore: gardener housekeeping 2026-04-12
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
2026-04-12 04:08:10 +00:00
9d778f6fd6 Merge pull request 'fix: vision(#623): disinto-chat conversation history persistence (#710)' (#730) from fix/issue-710 into main
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
2026-04-12 03:49:54 +00:00
Claude
6d148d669b fix: address AI review feedback - early-return guard and unused volume
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-12 03:38:46 +00:00
Claude
dae15410ab fix: vision(#623): disinto-chat conversation history persistence (#710) 2026-04-12 03:38:46 +00:00
eaf0f724fa Merge pull request 'fix: vision(#623): per-project subdomain fallback path (contingency) (#713)' (#732) from fix/issue-713 into main
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
2026-04-12 03:38:24 +00:00
Claude
d367c9d258 fix: vision(#623): per-project subdomain fallback path (contingency) (#713)
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-12 03:27:05 +00:00
d5e823771b Merge pull request 'fix: vision(#623): disinto-chat cost caps + rate limiting (#711)' (#731) from fix/issue-711 into main
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
2026-04-12 03:22:28 +00:00
Claude
3b4238d17f fix: vision(#623): disinto-chat cost caps + rate limiting (#711)
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-12 03:06:06 +00:00
1ea5346c91 Merge pull request 'chore: gardener housekeeping' (#729) from chore/gardener-20260412-0243 into main
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
2026-04-12 03:05:03 +00:00
99becf027e Merge pull request 'fix: vision(#623): Caddy Remote-User forwarding + chat-side validation (defense-in-depth) (#709)' (#728) from fix/issue-709 into main
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
2026-04-12 02:48:55 +00:00
Claude
0bc027a25a chore: gardener housekeeping 2026-04-12
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
2026-04-12 02:43:22 +00:00
Claude
ff79e64fc8 fix: exempt /chat/login and /chat/oauth/callback from forward_auth (#709)
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
Caddy forward_auth on /chat/* blocked unauthenticated users from
reaching the OAuth login/callback routes (401 instead of redirect).
Add explicit handle blocks for these public routes before the
forward_auth catch-all.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-12 02:37:43 +00:00
Claude
f8ac1d2ae2 fix: vision(#623): Caddy Remote-User forwarding + chat-side validation (defense-in-depth) (#709)
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-12 02:21:02 +00:00
34d4136f2e Merge pull request 'fix: vision(#623): Forgejo OAuth gate for disinto-chat (#708)' (#727) from fix/issue-708 into main
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
2026-04-12 02:12:19 +00:00
Claude
30e19f71e2 fix: vision(#623): Forgejo OAuth gate for disinto-chat (#708)
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
Gate /chat/* behind Forgejo OAuth2 authorization-code flow.

- Extract generic _create_forgejo_oauth_app() helper in lib/ci-setup.sh;
  Woodpecker OAuth becomes a thin wrapper, chat gets its own app.
- bin/disinto init now creates TWO OAuth apps (woodpecker-ci + disinto-chat)
  and writes CHAT_OAUTH_CLIENT_ID / CHAT_OAUTH_CLIENT_SECRET to .env.
- docker/chat/server.py: new routes /chat/login (→ Forgejo authorize),
  /chat/oauth/callback (code→token exchange, user allowlist check, session
  cookie). All other /chat/* routes require a valid session or redirect to
  /chat/login. Session store is in-memory with 24h TTL.
- lib/generators.sh: pass FORGE_URL, CHAT_OAUTH_CLIENT_ID,
  CHAT_OAUTH_CLIENT_SECRET, EDGE_TUNNEL_FQDN, DISINTO_CHAT_ALLOWED_USERS
  to the chat container environment.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-12 01:52:16 +00:00
cf4e9983c2 Merge pull request 'fix: vision(#623): disinto-chat sandbox hardening (#706)' (#724) from fix/issue-706 into main
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
2026-04-12 01:41:00 +00:00
4536c2addf Merge pull request 'chore: gardener housekeeping' (#725) from chore/gardener-20260412-0116 into main
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
2026-04-12 01:39:05 +00:00
Claude
0c5bb09e16 fix: address review — move LOGFILE to tmpfs, add CapDrop check (#706)
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
LOGFILE=/var/chat/chat.log is unwritable on read-only rootfs; move to
/tmp/chat.log (tmpfs-backed). Add CapDrop=ALL assertion to verify script
so removing cap_drop from compose is caught.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-12 01:19:42 +00:00
Claude
a8bf40d100 chore: gardener housekeeping 2026-04-12
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
2026-04-12 01:16:08 +00:00
Claude
e74fc29b82 fix: vision(#623): disinto-chat sandbox hardening (#706)
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-12 01:08:23 +00:00
3e65878093 Merge pull request 'fix: vision(#623): disinto-chat container scaffold (no auth) (#705)' (#722) from fix/issue-705 into main
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
2026-04-12 01:03:23 +00:00
013cf7b449 Merge pull request 'fix: bug: architect-run.sh has_responses_to_process only checks comments, ignores formal APPROVED reviews (#718)' (#723) from fix/issue-718 into main
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
2026-04-12 00:49:06 +00:00
Claude
938cd319aa fix: address AI review feedback for disinto-chat (#705)
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-12 00:46:57 +00:00
Claude
eada673493 fix: vision(#623): disinto-chat container scaffold (no auth) (#705) 2026-04-12 00:46:57 +00:00
Claude
1e3862d24b fix: bug: architect-run.sh has_responses_to_process only checks comments, ignores formal APPROVED reviews (#718)
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-12 00:37:49 +00:00
2006125ade Merge pull request 'fix: bug: architect-run.sh existing-PR check builds malformed URL — ${FORGE_API}/repos/… duplicates the repos segment (#717)' (#721) from fix/issue-717 into main
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
2026-04-12 00:33:16 +00:00
Claude
627496b6f2 fix: bug: architect-run.sh existing-PR check builds malformed URL — ${FORGE_API}/repos/… duplicates the repos segment (#717)
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
Introduce FORGE_API_BASE (bare API root without repo path) in lib/env.sh
and lib/load-project.sh. Replace all cross-repo curl calls in
architect-run.sh that incorrectly used ${FORGE_API}/repos/${FORGE_OPS_REPO}
(which expanded to .../repos/owner/repo/repos/owner/ops-repo) with
${FORGE_API_BASE}/repos/${FORGE_OPS_REPO}.

Also fix a same-repo label URL that duplicated the repos segment.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-12 00:21:55 +00:00
2f75478aab Merge pull request 'fix: bug: architect-run.sh empty pitch — pitch_output=$(agent_run …) captures stdout but new agent_run writes to side-channels (#716)' (#720) from fix/issue-716 into main
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
2026-04-12 00:16:05 +00:00