From cfd9a9e4cfbb17d0fdfdaebc29af2d764e2d2e79 Mon Sep 17 00:00:00 2001 From: Junjun Zhang Date: Thu, 22 Oct 2026 03:35:24 +0800 Subject: [PATCH] chore(deadcode): remove 3 unreachable funcs in internal/agent (r80) New-wave symbols surfaced by r80 fresh scan vs r79 baseline (all double-mode unreachable: deadcode + deadcode -test, zero repo refs): - agent_tool.go: simStripAllLineNumberPrefixes (11 lines; sibling sim* helpers keep 3 other callers - no orphan cascade) - model_cascade.go: Agent.cascadeTurnProvider (comment claimed "exposed for tests" but no test references it; provider import dropped with it) - tool_fallback_hints.go: isEmptyToolResult (superseded by isZeroMatchSuccess per #3673; only comment mentions remain, kept) agentruntime domain (50 hits, first single-listed scan): ALL reachable in -test mode (test-kept) - deferred per methodology, none touched. Verified: go build -tags goolm ./... OK; go vet ./internal/agent/ OK; go test ./internal/agent/ OK (38s); post-scan = 1004 lines, diff vs r79-after baseline IDENTICAL, zero new orphans. Co-Authored-By: ggcode --- internal/agent/agent_tool.go | 12 ------------ internal/agent/model_cascade.go | 6 ------ internal/agent/tool_fallback_hints.go | 10 ---------- 3 files changed, 28 deletions(-) diff --git a/internal/agent/agent_tool.go b/internal/agent/agent_tool.go index 1814a7e17..eeada9b04 100644 --- a/internal/agent/agent_tool.go +++ b/internal/agent/agent_tool.go @@ -1639,18 +1639,6 @@ func simStripPaddedLineNumberPrefixes(text, content string) string { return strings.Join(lines, "\n") } -func simStripAllLineNumberPrefixes(text string) string { - lines := simTrimDanglingReadFileLineNumberOnlyLines(strings.Split(text, "\n")) - for i, l := range lines { - if simReadFileLineNumberOnlyRE.MatchString(l) { - lines[i] = "" - continue - } - lines[i] = simLineNumberPrefixRE.ReplaceAllString(l, "") - } - return strings.Join(lines, "\n") -} - func simTrimDanglingReadFileLineNumberOnlyLines(lines []string) []string { if len(lines) == 0 { return lines diff --git a/internal/agent/model_cascade.go b/internal/agent/model_cascade.go index 5d13f196d..07f59d42d 100644 --- a/internal/agent/model_cascade.go +++ b/internal/agent/model_cascade.go @@ -33,7 +33,6 @@ package agent import ( "github.com/topcheer/ggcode/internal/debug" - "github.com/topcheer/ggcode/internal/provider" ) // cascadeMinLowBatches is how many consecutive all-read-only, error-free @@ -149,8 +148,3 @@ func (a *Agent) restoreModelCascade() { a.cascadeSavedProvider = nil debug.Log("model-cascade", "restored main model provider") } - -// cascadeTurnProvider is the provider a NEW agent-level request would use; -// exposed for tests to assert swap/restore behavior without racing the -// loop. -func (a *Agent) cascadeTurnProvider() provider.Provider { return a.provider } diff --git a/internal/agent/tool_fallback_hints.go b/internal/agent/tool_fallback_hints.go index 330363a1e..c897e6a3e 100644 --- a/internal/agent/tool_fallback_hints.go +++ b/internal/agent/tool_fallback_hints.go @@ -141,16 +141,6 @@ func lspFallbackHint(lowerErr string) string { return "" } -// isEmptyToolResult checks if the error indicates no results were found. -// #3673-A: "not found" and "empty" removed - a successful search result's -// content IS the searched file's content, and ordinary source lines carry -// those words constantly ("// err is not found here", "// list is empty"). -// Kept phrases are the explicit no-match sentinels only. -func isEmptyToolResult(s string) bool { - return strings.Contains(s, "no match") || strings.Contains(s, "no result") || - strings.Contains(s, "no symbol") -} - // isZeroMatchSuccess reports whether a SUCCESS (non-error) tool result is a // zero-match outcome for a search-class tool (#3641). grep/search_files // render "No matches found" as a successful empty result, so IsError-gated