Claude
3f8c0321ed
fix: tech-debt: close_vision_issue state=closed PATCH swallows errors — stuck-open vision issues after idempotency guard ( #737 )
...
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
ci/woodpecker/push/ci Pipeline was successful
2026-04-12 05:37:08 +00:00
Claude
0c4f00a86c
chore: gardener housekeeping 2026-04-12
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
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 )
...
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
ci/woodpecker/push/ci Pipeline was successful
2026-04-12 04:14:34 +00:00
Claude
aeda17a601
chore: gardener housekeeping 2026-04-12
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
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
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
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 )
...
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
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 )
...
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
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
ci/woodpecker/push/ci Pipeline was successful
2026-04-12 02:48:55 +00:00
Claude
0bc027a25a
chore: gardener housekeeping 2026-04-12
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 )
...
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 )
...
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
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 )
...
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
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
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 )
...
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
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 )
...
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
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
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 )
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 )
...
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
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 )
...
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
ci/woodpecker/push/ci Pipeline was successful
2026-04-12 00:16:05 +00:00
545ccf9199
Merge pull request 'chore: gardener housekeeping' ( #715 ) from chore/gardener-20260411-2343 into main
ci/woodpecker/push/ci Pipeline was successful
2026-04-12 00:13:13 +00:00
13fe475cf8
Merge pull request 'fix: vision( #623 ): Caddy subpath routing skeleton + Forgejo/Woodpecker host reconfig ( #704 )' ( #719 ) from fix/issue-704 into main
ci/woodpecker/push/ci Pipeline was successful
2026-04-12 00:08:08 +00:00
Claude
cb9381f1e4
fix: bug: architect-run.sh empty pitch — pitch_output=$(agent_run …) captures stdout but new agent_run writes to side-channels ( #716 )
...
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
Three fixes:
1. architect-run.sh:722 — extract `.result` not `.content` from claude JSON
output. All other callers (dev-agent, formula-session) use `.result`;
this was the direct cause of every pitch being empty.
2. lib/agent-sdk.sh — reset `_AGENT_LAST_OUTPUT=""` at the top of each
`agent_run` call so stale data from a prior invocation can't bleed
into the next caller when claude crashes or returns empty.
3. lib/agent-sdk.sh — scope the diagnostics file by `$LOG_AGENT` instead
of hardcoding `dev/`. Concurrent agents (architect, gardener, planner,
predictor) no longer clobber each other's diag output.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-12 00:04:42 +00:00
Claude
bfdf252239
fix: vision( #623 ): Caddy subpath routing skeleton + Forgejo/Woodpecker host reconfig ( #704 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
ci/woodpecker/pr/smoke-init Pipeline was successful
2026-04-11 23:48:54 +00:00
Claude
0cd20e8eea
chore: gardener housekeeping 2026-04-11
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
2026-04-11 23:43:09 +00:00
a1da3d5c52
Merge pull request 'fix: bug: disinto-edge crashes on cold disinto up — clones from forgejo before forgejo HTTP is ready ( #665 )' ( #714 ) from fix/issue-665 into main
ci/woodpecker/push/ci Pipeline was successful
2026-04-11 23:39:22 +00:00
Claude
7dc03523d6
fix: bug: disinto-edge crashes on cold disinto up — clones from forgejo before forgejo HTTP is ready ( #665 )
...
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-11 23:28:01 +00:00
c51cc9dba6
Merge pull request 'fix: bug: profile journal digestion can hang for hours on local Qwen with many journals — blocks dev-agent ( #702 )' ( #703 ) from fix/issue-702 into main
ci/woodpecker/push/ci Pipeline was successful
2026-04-11 23:24:25 +00:00
Claude
9aeef51d9d
fix: rename digested_files to batchfiles to pass agent-smoke function resolution
...
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
The CI smoke test's get_candidates awk pattern falsely matches
underscore-containing variable names (like digested_files+=) as
unresolved function calls. Rename to batchfiles to avoid the match.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 23:17:47 +00:00
Claude
e1cdc78da0
fix: bug: profile journal digestion can hang for hours on local Qwen with many journals — blocks dev-agent ( #702 )
...
- Add digest-specific timeout (PROFILE_DIGEST_TIMEOUT, default 300s) instead
of relying on the global 2h CLAUDE_TIMEOUT
- Cap journals per digest run (PROFILE_DIGEST_MAX_BATCH, default 5) to bound
prompt size and let remaining journals drain over subsequent runs
- Only archive the journals that were actually included in the batch, not all
- On timeout/failure, preserve previous lessons-learned.md instead of leaving
a near-empty file — journals stay unarchived for retry on next run
- Detect suspiciously small output (<=16 bytes) as failed digestion
- Add PROFILE_DIGEST_THRESHOLD env var (default 10) for digest trigger
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 23:17:47 +00:00
fb7f7aa7db
Merge pull request 'fix: edge-control register.sh: pubkey comment field corrupts key in authorized_keys ( #649 )' ( #701 ) from fix/issue-649 into main
ci/woodpecker/push/ci Pipeline was successful
2026-04-11 23:17:36 +00:00
Claude
20d8877546
fix: edge-control register.sh: pubkey comment field corrupts key in authorized_keys ( #649 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
2026-04-11 23:11:55 +00:00
4aac315119
Merge pull request 'fix: docs/CLAUDE-AUTH-CONCURRENCY.md and smoke-init.sh reference credentials.json without leading dot ( #680 )' ( #700 ) from fix/issue-680 into main
ci/woodpecker/push/ci Pipeline was successful
2026-04-11 22:52:54 +00:00
Claude
de4a37b1fa
fix: docs/CLAUDE-AUTH-CONCURRENCY.md and smoke-init.sh reference credentials.json without leading dot ( #680 )
...
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-11 22:41:34 +00:00
c8113633af
Merge pull request 'chore: gardener housekeeping' ( #699 ) from chore/gardener-20260411-2228 into main
ci/woodpecker/push/ci Pipeline was successful
2026-04-11 22:32:10 +00:00
Claude
9acd0a2bc4
chore: gardener housekeeping 2026-04-11
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
2026-04-11 22:28:49 +00:00