- 品牌替换:OpenCode/opencode → AirCoding/aircoding(16+ 文件) - Logo ASCII art:修复 left/right 行数不匹配导致的启动崩溃 - 启动诊断:添加 OPENCODE_PRINT_TIMING 计时探针 - dev 模式默认 --pure 跳过外部插件加载 - AGENTS.md 模板:追加 AirCoding 多 Agent 专项段落 - architect prompt + plugin:强化 AGENTS.md 产出验证
19 lines
896 B
Diff
19 lines
896 B
Diff
diff --git a/lib/git.js b/lib/git.js
|
|
index 000ee9fc..a2a6cbb7 100644
|
|
--- a/lib/git.js
|
|
+++ b/lib/git.js
|
|
@@ -254,8 +254,11 @@ class GitFetcher extends Fetcher {
|
|
resolved: this.resolved,
|
|
integrity: null, // it'll always be different, if we have one
|
|
}).extract(tmp).then(() => handler(`${tmp}${this.spec.gitSubdir || ''}`), er => {
|
|
- // fall back to ssh download if tarball fails
|
|
- if (er.constructor.name.match(/^Http/)) {
|
|
+ // fall back to clone if the tarball download fails due to an
|
|
+ // HTTP error or if the response is not a valid tarball (e.g.
|
|
+ // a hosted provider returning an HTML sign-in page with 200)
|
|
+ if ((typeof er.statusCode === 'number' && er.statusCode >= 400) ||
|
|
+ /^TAR_/.test(er.code)) {
|
|
return this.#clone(handler, false)
|
|
} else {
|
|
throw er
|