9 Commits
Author SHA1 Message Date
admin db080a7c2c Merge pull request '修正 tea 包裝的 TLS 誤判(0.1.0)' (#14) from fix-tls-false-positive into master
Reviewed-on: #14
Reviewed-by: 系統管理員 <1+admin@noreply.localhost>
2026-10-09 06:17:14 +00:00
rootandClaude Sonnet 5.5 c4230e7232 chore: 版號改為 0.1.0
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-09 14:16:15 +08:00
rootandClaude Sonnet 5.5 232a950732 fix: tea 成功時不再因輸出含 TLS 字樣而誤判重試(0.0.10)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-09 14:15:00 +08:00
admin 82b54f8165 Merge pull request '忽略所有 TLS 檢查(0.0.9)' (#13) from ignore-tls-checks into master
Reviewed-on: #13
Reviewed-by: 系統管理員 <1+admin@noreply.localhost>
2026-10-09 05:59:28 +00:00
rootandClaude Sonnet 5.5 b9a00c8a8a feat: 忽略所有 TLS 檢查(tea insecure、git sslVerify=false,0.0.9)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-09 13:56:50 +08:00
admin 6d25c6fb94 Merge pull request 'agent 改用 Sonnet 並移除 implement skill(0.0.8)' (#12) from sonnet-model-no-implement into master
Reviewed-on: #12
Reviewed-by: 系統管理員 <1+admin@noreply.localhost>
2026-10-08 06:01:27 +00:00
rootandClaude Sonnet 5.5 f4b54641b2 chore: bump plugin manifests to 0.0.8
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-08 14:00:09 +08:00
rootandClaude Sonnet 5.5 a736e40adc fix: 提示詞不再使用 /mattpocock-skills:implement
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-08 14:00:09 +08:00
rootandClaude Sonnet 5.5 0ccf2666f1 feat: agent 預設模型改為 claude-sonnet-5-5
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-08 14:00:09 +08:00
7 changed files with 19 additions and 10 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "herdr-issue",
"version": "0.0.7",
"version": "0.1.0",
"description": "透過 Herdr 讓 Claude agent 逐一實作 Gitea 議題(每個議題一個 worktree 與 tab)。",
"skills": "./skills",
"author": {
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "herdr-issue",
"version": "0.0.7",
"version": "0.1.0",
"description": "透過 Herdr 讓 Claude agent 逐一實作 Gitea 議題(每個議題一個 worktree 與 tab)。",
"skills": "./skills"
}
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "herdr-issue",
"version": "0.0.7",
"version": "0.1.0",
"description": "透過 Herdr 讓 Claude agent 逐一實作 Gitea 議題(每個議題一個 worktree 與 tab)。",
"skills": "./skills/"
}
+2 -2
View File
@@ -59,6 +59,6 @@ Gitea 一律以 tea 的預設 login(`tea login list` 中 default 為 true 的
| `tick.sh` | 子 agent | 勾議題內文第 k 個核取方塊 |
| `pr-wait.sh` | 子 agent(背景) | 等 PR 衝突、關閉或合併 |
TLS/憑證錯誤:`lib.sh` 的 tea 包裝會自動重試(預設 5 次、間隔 3 秒),輪詢中的 `watch-issue.sh`、`pr-wait.sh` 因此不會被一次性的連線問題打斷;不會關閉憑證驗證。若憑證長期有問題,請修正伺服器或系統 CA,而不是略過驗證。
TLS/憑證錯誤:`lib.sh` 的 tea 包裝會自動重試(預設 5 次、間隔 3 秒),輪詢中的 `watch-issue.sh`、`pr-wait.sh` 因此不會被一次性的連線問題打斷;另外**一律忽略 TLS 憑證檢查**:`lib.sh` 會把 tea 設定檔(`~/.config/tea/config.yml`)所有 login 的 `insecure` 設為 `true`,git 則用 `GIT_SSL_NO_VERIFY` 與 worktree 的 `http.sslVerify=false`。
環境變數:`HERDR_ISSUE_TLS_RETRIES`(TLS 重試次數,預設 5)、`HERDR_ISSUE_INTERVAL`(pr-wait 輪詢秒數,預設 300)、`HERDR_ISSUE_WATCH_INTERVAL`(watch-issue 輪詢秒數,預設 5)、`HERDR_ISSUE_BLOCKED_AFTER`(blocked 多久才通知,預設 60 秒)、`HERDR_ISSUE_MODEL`(預設 `claude-opus-5-5`)。
環境變數:`HERDR_ISSUE_TLS_RETRIES`(TLS 重試次數,預設 5)、`HERDR_ISSUE_INTERVAL`(pr-wait 輪詢秒數,預設 300)、`HERDR_ISSUE_WATCH_INTERVAL`(watch-issue 輪詢秒數,預設 5)、`HERDR_ISSUE_BLOCKED_AFTER`(blocked 多久才通知,預設 60 秒)、`HERDR_ISSUE_MODEL`(預設 `claude-sonnet-5-5`)。
+12 -4
View File
@@ -6,7 +6,7 @@ LABEL="in-progress"
LABEL_COLOR="0e8a16"
LABEL_DESC="Herdr 的 agent 正在實作"
INTERVAL="${HERDR_ISSUE_INTERVAL:-300}"
MODEL="${HERDR_ISSUE_MODEL:-claude-opus-5-5}"
MODEL="${HERDR_ISSUE_MODEL:-claude-sonnet-5-5}"
SCRIPTS="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
die() { echo "herdr-issue: $*" >&2; exit 1; }
@@ -20,17 +20,25 @@ fi
[ -n "$HERDR_ISSUE_LOGIN" ] || { echo "herdr-issue: tea 沒有預設 login,請先 tea login default <name>" >&2; exit 1; }
export HERDR_ISSUE_LOGIN
# 忽略所有 TLS 檢查:tea 的 insecure 只能寫在設定檔(沒有環境變數),所以把所有 login 設成 insecure: true(冪等);
# git 用 GIT_SSL_NO_VERIFY。agent 的 tea/git 也會吃到同一份設定。
TEA_CONFIG="${XDG_CONFIG_HOME:-$HOME/.config}/tea/config.yml"
if [ -f "$TEA_CONFIG" ] && grep -qE '^\s*insecure:\s*false' "$TEA_CONFIG"; then
sed -i -E 's/^(\s*insecure:\s*)false/\1true/' "$TEA_CONFIG"
fi
export GIT_SSL_NO_VERIFY=true
# git 走 HTTPS 時沒有帳密又不能互動輸入會失敗,所以腳本內的 git 一律用 tea 預設 login 的 token(git-credential.sh)。
export GIT_TERMINAL_PROMPT=0
git() { command git -c credential.helper= -c "credential.helper=$SCRIPTS/git-credential.sh" "$@"; }
git() { command git -c http.sslVerify=false -c credential.helper= -c "credential.helper=$SCRIPTS/git-credential.sh" "$@"; }
# TLS/憑證錯誤多半是暫時的(連線被重置、代理、時鐘),遇到就重試幾次,不要讓輪詢中的腳本因此中斷;
# 其他錯誤原樣回傳。不關閉憑證驗證。重試次數 HERDR_ISSUE_TLS_RETRIES(預設 5),間隔 3 秒。
# 其他錯誤原樣回傳。(憑證驗證已關閉,仍保留重試以處理連線被重置等暫時性錯誤。)重試次數 HERDR_ISSUE_TLS_RETRIES(預設 5),間隔 3 秒。
tea() {
local out err rc=0 try max="${HERDR_ISSUE_TLS_RETRIES:-5}" ef; ef="$(mktemp)"
for ((try = 1; try <= max; try++)); do
out="$(command tea "$1" --login "$HERDR_ISSUE_LOGIN" "${@:2}" 2>"$ef")" && rc=0 || rc=$?
err="$(cat "$ef")"
if ! grep -qiE 'tls|x509|certificate|handshake' <<<"$out$err"; then break; fi
if [ "$rc" -eq 0 ] || ! grep -qiE 'tls|x509|certificate|handshake' <<<"$out$err"; then break; fi
echo "herdr-issue: tea 遇到 TLS/憑證錯誤(第 $try/$max 次),3 秒後重試" >&2
rc=${rc/#0/1}; sleep 3
done
+1 -1
View File
@@ -1,4 +1,4 @@
/mattpocock-skills:implement {LINK}
請實作這個 Gitea 議題:{LINK}(先用 tea issues 讀完整內文與留言,依 Acceptance criteria 逐項完成)。
你在分支 issue-{N} 的 worktree 裡,從 origin/main 建立,請在這裡實作,不要另外建 worktree。
{RESUME}
+1
View File
@@ -65,6 +65,7 @@ GIT_HOST_URL="$(command tea login list --output json | jq_py "print(next((l['url
if [ -n "$GIT_HOST_URL" ]; then
git -C "$CLONE" config --local --replace-all "credential.$GIT_HOST_URL.helper" "$SCRIPTS/git-credential.sh"
fi
git -C "$WT" config --worktree http.sslVerify false
git -C "$WT" config --worktree user.name "$GIT_USER"
[ -z "$GIT_EMAIL" ] || git -C "$WT" config --worktree user.email "$GIT_EMAIL"