From 2c4f5ee5510e04b11bdc03ae871a0188fa537e3d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maple=EF=BC=81?= Date: Mon, 6 Jul 2026 14:23:46 +0800 Subject: [PATCH 1/2] fix: resolve path format on Windows and evaluate symlinks in DetectCallerSession on macOS --- cmd/cc-session/main_test.go | 3 +++ internal/summarizer/summarizer.go | 2 +- internal/tracker/tracker.go | 3 +++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/cmd/cc-session/main_test.go b/cmd/cc-session/main_test.go index 78ffcbe..91ba94f 100644 --- a/cmd/cc-session/main_test.go +++ b/cmd/cc-session/main_test.go @@ -1340,6 +1340,9 @@ func TestLogUsageAsync_GivenCallerSession_ThenWritesToLog(t *testing.T) { if err != nil { t.Fatalf("os.Getwd: %v", err) } + if resolved, err := filepath.EvalSymlinks(cwd); err == nil { + cwd = resolved + } projectDir := filepath.Join(root, ".claude", "projects", strings.ReplaceAll(cwd, "/", "-")) if err := os.MkdirAll(projectDir, 0o755); err != nil { t.Fatalf("MkdirAll: %v", err) diff --git a/internal/summarizer/summarizer.go b/internal/summarizer/summarizer.go index 6dc9964..50ffc67 100644 --- a/internal/summarizer/summarizer.go +++ b/internal/summarizer/summarizer.go @@ -21,7 +21,7 @@ func cleanPath(path string, cwd string) string { } if cwd != "" { if rel, err := filepath.Rel(cwd, path); err == nil && !strings.HasPrefix(rel, "..") { - return rel + return filepath.ToSlash(rel) } } parts := strings.Split(filepath.ToSlash(path), "/") diff --git a/internal/tracker/tracker.go b/internal/tracker/tracker.go index 5ddc77d..41b0ef3 100644 --- a/internal/tracker/tracker.go +++ b/internal/tracker/tracker.go @@ -176,6 +176,9 @@ func DetectCallerSession(cwd string) string { // DetectCallerSessionWithBase is the testable variant of DetectCallerSession // that accepts an explicit projectsDir. func DetectCallerSessionWithBase(cwd string, projectsDir string) string { + if resolved, err := filepath.EvalSymlinks(cwd); err == nil { + cwd = resolved + } // Claude Code maps an absolute path to a project dir by replacing every // "/" with "-", e.g. /Users/maple/Desktop -> -Users-maple-Desktop. projectDir := filepath.Join(projectsDir, strings.ReplaceAll(cwd, "/", "-")) From fd00fb4a06005a1205f9c70e2d88035a12eb3d86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maple=EF=BC=81?= Date: Mon, 6 Jul 2026 14:32:20 +0800 Subject: [PATCH 2/2] fix(ci): bump Go to 1.23 to fix macOS 15 dyld LC_UUID abort trap Go 1.22's external linker produces binaries missing LC_UUID on the macos-latest runner (now macOS 15 / Xcode 16), causing dyld to abort the test binaries with a signal: abort trap. Bumping to 1.23 resolves it. Co-Authored-By: Claude Opus 4.8 (1M context) Claude-Session: https://claude.ai/code/session_015AjK9TU7cRMbLTJGGJgpkB --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 336d3e7..9a8da0f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -18,7 +18,7 @@ jobs: - uses: actions/setup-go@v5 with: - go-version: "1.22" + go-version: "1.23" - name: Build run: go build ./...