mirror of
https://github.com/cexll/myclaude.git
synced 2026-02-11 03:23:50 +08:00
Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3fd3c67749 | ||
|
|
156a072a0b |
23
.github/workflows/release.yml
vendored
23
.github/workflows/release.yml
vendored
@@ -97,11 +97,6 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
path: artifacts
|
path: artifacts
|
||||||
|
|
||||||
- name: Setup Node.js
|
|
||||||
uses: actions/setup-node@v4
|
|
||||||
with:
|
|
||||||
node-version: '20'
|
|
||||||
|
|
||||||
- name: Prepare release files
|
- name: Prepare release files
|
||||||
run: |
|
run: |
|
||||||
mkdir -p release
|
mkdir -p release
|
||||||
@@ -109,26 +104,10 @@ jobs:
|
|||||||
cp install.sh install.bat release/
|
cp install.sh install.bat release/
|
||||||
ls -la release/
|
ls -la release/
|
||||||
|
|
||||||
- name: Generate release notes with git-cliff
|
|
||||||
run: |
|
|
||||||
# Install git-cliff via npx
|
|
||||||
npx git-cliff@latest --current --strip all -o release_notes.md
|
|
||||||
|
|
||||||
# Fallback if generation failed
|
|
||||||
if [ ! -s release_notes.md ]; then
|
|
||||||
echo "⚠️ Failed to generate release notes with git-cliff" > release_notes.md
|
|
||||||
echo "" >> release_notes.md
|
|
||||||
echo "## What's Changed" >> release_notes.md
|
|
||||||
echo "See commits in this release for details." >> release_notes.md
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "--- Generated Release Notes ---"
|
|
||||||
cat release_notes.md
|
|
||||||
|
|
||||||
- name: Create Release
|
- name: Create Release
|
||||||
uses: softprops/action-gh-release@v2
|
uses: softprops/action-gh-release@v2
|
||||||
with:
|
with:
|
||||||
files: release/*
|
files: release/*
|
||||||
body_path: release_notes.md
|
generate_release_notes: true
|
||||||
draft: false
|
draft: false
|
||||||
prerelease: false
|
prerelease: false
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ func (ClaudeBackend) BuildArgs(cfg *Config, targetArg string) []string {
|
|||||||
|
|
||||||
const maxClaudeSettingsBytes = 1 << 20 // 1MB
|
const maxClaudeSettingsBytes = 1 << 20 // 1MB
|
||||||
|
|
||||||
// loadMinimalEnvSettings 从 ~/.claude/setting.json 只提取 env 配置。
|
// loadMinimalEnvSettings 从 ~/.claude/settings.json 只提取 env 配置。
|
||||||
// 只接受字符串类型的值;文件缺失/解析失败/超限都返回空。
|
// 只接受字符串类型的值;文件缺失/解析失败/超限都返回空。
|
||||||
func loadMinimalEnvSettings() map[string]string {
|
func loadMinimalEnvSettings() map[string]string {
|
||||||
home, err := os.UserHomeDir()
|
home, err := os.UserHomeDir()
|
||||||
@@ -45,7 +45,7 @@ func loadMinimalEnvSettings() map[string]string {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
settingPath := filepath.Join(home, ".claude", "setting.json")
|
settingPath := filepath.Join(home, ".claude", "settings.json")
|
||||||
info, err := os.Stat(settingPath)
|
info, err := os.Stat(settingPath)
|
||||||
if err != nil || info.Size() > maxClaudeSettingsBytes {
|
if err != nil || info.Size() > maxClaudeSettingsBytes {
|
||||||
return nil
|
return nil
|
||||||
|
|||||||
@@ -167,7 +167,7 @@ func TestLoadMinimalEnvSettings(t *testing.T) {
|
|||||||
if err := os.MkdirAll(dir, 0o755); err != nil {
|
if err := os.MkdirAll(dir, 0o755); err != nil {
|
||||||
t.Fatalf("MkdirAll: %v", err)
|
t.Fatalf("MkdirAll: %v", err)
|
||||||
}
|
}
|
||||||
path := filepath.Join(dir, "setting.json")
|
path := filepath.Join(dir, "settings.json")
|
||||||
data := []byte(`{"env":{"ANTHROPIC_API_KEY":"secret","FOO":"bar"}}`)
|
data := []byte(`{"env":{"ANTHROPIC_API_KEY":"secret","FOO":"bar"}}`)
|
||||||
if err := os.WriteFile(path, data, 0o600); err != nil {
|
if err := os.WriteFile(path, data, 0o600); err != nil {
|
||||||
t.Fatalf("WriteFile: %v", err)
|
t.Fatalf("WriteFile: %v", err)
|
||||||
@@ -181,7 +181,7 @@ func TestLoadMinimalEnvSettings(t *testing.T) {
|
|||||||
|
|
||||||
t.Run("non-string values are ignored", func(t *testing.T) {
|
t.Run("non-string values are ignored", func(t *testing.T) {
|
||||||
dir := filepath.Join(home, ".claude")
|
dir := filepath.Join(home, ".claude")
|
||||||
path := filepath.Join(dir, "setting.json")
|
path := filepath.Join(dir, "settings.json")
|
||||||
data := []byte(`{"env":{"GOOD":"ok","BAD":123,"ALSO_BAD":true}}`)
|
data := []byte(`{"env":{"GOOD":"ok","BAD":123,"ALSO_BAD":true}}`)
|
||||||
if err := os.WriteFile(path, data, 0o600); err != nil {
|
if err := os.WriteFile(path, data, 0o600); err != nil {
|
||||||
t.Fatalf("WriteFile: %v", err)
|
t.Fatalf("WriteFile: %v", err)
|
||||||
@@ -201,7 +201,7 @@ func TestLoadMinimalEnvSettings(t *testing.T) {
|
|||||||
|
|
||||||
t.Run("oversized file returns empty", func(t *testing.T) {
|
t.Run("oversized file returns empty", func(t *testing.T) {
|
||||||
dir := filepath.Join(home, ".claude")
|
dir := filepath.Join(home, ".claude")
|
||||||
path := filepath.Join(dir, "setting.json")
|
path := filepath.Join(dir, "settings.json")
|
||||||
data := bytes.Repeat([]byte("a"), maxClaudeSettingsBytes+1)
|
data := bytes.Repeat([]byte("a"), maxClaudeSettingsBytes+1)
|
||||||
if err := os.WriteFile(path, data, 0o600); err != nil {
|
if err := os.WriteFile(path, data, 0o600); err != nil {
|
||||||
t.Fatalf("WriteFile: %v", err)
|
t.Fatalf("WriteFile: %v", err)
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
version = "5.2.7"
|
version = "5.2.8"
|
||||||
defaultWorkdir = "."
|
defaultWorkdir = "."
|
||||||
defaultTimeout = 7200 // seconds (2 hours)
|
defaultTimeout = 7200 // seconds (2 hours)
|
||||||
codexLogLineLimit = 1000
|
codexLogLineLimit = 1000
|
||||||
|
|||||||
@@ -3017,7 +3017,7 @@ func TestVersionFlag(t *testing.T) {
|
|||||||
t.Errorf("exit = %d, want 0", code)
|
t.Errorf("exit = %d, want 0", code)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
want := "codeagent-wrapper version 5.2.7\n"
|
want := "codeagent-wrapper version 5.2.8\n"
|
||||||
if output != want {
|
if output != want {
|
||||||
t.Fatalf("output = %q, want %q", output, want)
|
t.Fatalf("output = %q, want %q", output, want)
|
||||||
}
|
}
|
||||||
@@ -3031,7 +3031,7 @@ func TestVersionShortFlag(t *testing.T) {
|
|||||||
t.Errorf("exit = %d, want 0", code)
|
t.Errorf("exit = %d, want 0", code)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
want := "codeagent-wrapper version 5.2.7\n"
|
want := "codeagent-wrapper version 5.2.8\n"
|
||||||
if output != want {
|
if output != want {
|
||||||
t.Fatalf("output = %q, want %q", output, want)
|
t.Fatalf("output = %q, want %q", output, want)
|
||||||
}
|
}
|
||||||
@@ -3045,7 +3045,7 @@ func TestVersionLegacyAlias(t *testing.T) {
|
|||||||
t.Errorf("exit = %d, want 0", code)
|
t.Errorf("exit = %d, want 0", code)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
want := "codex-wrapper version 5.2.7\n"
|
want := "codex-wrapper version 5.2.8\n"
|
||||||
if output != want {
|
if output != want {
|
||||||
t.Fatalf("output = %q, want %q", output, want)
|
t.Fatalf("output = %q, want %q", output, want)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user