← Back to Blog

Benchmark: GitButler

Testing loct on GitButler (Rust + Svelte)

Use Case: gitbutlerapp/gitbutler - Git Client

Repository: https://github.com/gitbutlerapp/gitbutler Stack: Rust + Svelte Test Date: 2025-12-08 Loctree Version: 0.6.2-dev


Overview

Testing loctree on GitButler - a modern Git client built with Tauri (Rust + Svelte).

Repository Scale

MetricValue
Files Scanned1,726
Analysis Time21.27 seconds
Throughput81 files/sec

Findings

Dead Code Detection

  • High Confidence: 111 candidates
  • False Positive Rate: 25-33%

Known Regression

Svelte component method references not detected:

<!-- ChatInput.svelte -->
<script>
export function focusInput() {
    richText.richTextEditor?.focus();
}
</script>

<!-- Usage in parent - NOT DETECTED -->
<ChatInput bind:this={chatInput} />
{chatInput?.focusInput()}

Version History

VersionFP RateStatus
0.5.1640-50%Default imports broken
0.5.178.4%Major improvement
0.6.1-dev0%PERFECT
0.6.2-dev25-33%REGRESSION

Commands Used

cd GitButler
loct                              # Create snapshot
loct dead --confidence high       # Dead code analysis
loct twins                        # Duplicate detection

Verdict

REGRESSION - Svelte component method refs need fixing.

Key Insights

  1. Svelte Components: Method refs via bind:this not tracked
  2. Rust Analysis: Works well
  3. Tauri Integration: Command bridges functional

Workaround

Until fixed, manually verify Svelte component exports:

loct dead --confidence high | grep ".svelte" | while read line; do
    symbol=$(echo "$line" | awk -F: '{print $NF}')
    rg "\\.$symbol\\(" . --type svelte
done

πš…πš’πš‹πšŽπšŒπš›πšŠπšπšπšŽπš. with AI Agents by VetCoders (c)2024-2026 LibraxisAI