From 9085b2e0bcc7ea334206f5734d828891f05d2c45 Mon Sep 17 00:00:00 2001 From: toller892 Date: Tue, 2 Jun 2026 03:44:14 +0800 Subject: [PATCH] fix: show symlinked files under their own name instead of target's name stripAbsolutePath called filepath.EvalSymlinks on the full path, which resolved symlinks and caused symlinked files to display under their target's name. For example, AGENTS.md -> CLAUDE.md would appear as two CLAUDE.md entries in the document list. Use the original path for display while still resolving cwd symlinks. Fixes #965 --- ui/ui.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/ui/ui.go b/ui/ui.go index 3537d3f..b253666 100644 --- a/ui/ui.go +++ b/ui/ui.go @@ -432,7 +432,11 @@ func localFileToMarkdown(cwd string, res gitcha.SearchResult) *markdown { } func stripAbsolutePath(fullPath, cwd string) string { - fp, _ := filepath.EvalSymlinks(fullPath) + // Don't resolve symlinks on fullPath — use the original path so that + // symlinked files display under their own name (e.g. AGENTS.md) instead + // of their target's name (e.g. CLAUDE.md). + // We still resolve cwd in case the working directory itself is a symlink. + fp := fullPath cp, _ := filepath.EvalSymlinks(cwd) return strings.ReplaceAll(fp, cp+string(os.PathSeparator), "") }