mirror of
https://github.com/lukaszraczylo/filepuff-mcp.git
synced 2026-10-11 04:47:58 +00:00
perf(file_read): compact line-number prefix by default
The default line prefix was the padded ' 42| ' form; the compact '42|' form existed only as opt-in (compact_line_numbers). The padding and trailing space carry no information an LLM needs, costing ~3 chars/line — ~300 tokens on a 400-line read, the highest-volume path in the server. Flip the default to compact; compact_line_numbers=false, mode/line_numbers=full, and the session 'full' pref all still restore the padded alignment (explicit override wins). Updates the two tests that pinned the old default and refreshes stale comments.
This commit is contained in:
@@ -326,9 +326,13 @@ type lineNumberOpts struct {
|
||||
// resolveLineNumberOpts resolves per-call vs session-pref line-number options.
|
||||
func (s *Server) resolveLineNumberOpts(request mcp.CallToolRequest) lineNumberOpts {
|
||||
opts := lineNumberOpts{
|
||||
noLineNumbers: request.GetBool("no_line_numbers", false),
|
||||
lineInterval: request.GetInt("line_number_interval", 1),
|
||||
compactLineNums: request.GetBool("compact_line_numbers", false),
|
||||
noLineNumbers: request.GetBool("no_line_numbers", false),
|
||||
lineInterval: request.GetInt("line_number_interval", 1),
|
||||
// Compact prefix ("12│content") is the default — it drops the 4-wide
|
||||
// padding and trailing space of the legacy " 12│ " form, saving ~3
|
||||
// chars/line with no information loss. Pass compact_line_numbers=false
|
||||
// (or mode/line_numbers="full") to restore the padded alignment.
|
||||
compactLineNums: request.GetBool("compact_line_numbers", true),
|
||||
}
|
||||
|
||||
// Apply session line_numbers pref when no explicit per-call override was supplied.
|
||||
|
||||
@@ -589,19 +589,23 @@ func TestCompactLineNumbers(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestCompactLineNumbersOffByDefault(t *testing.T) {
|
||||
func TestCompactLineNumbersDefaultAndOptOut(t *testing.T) {
|
||||
tmpDir := t.TempDir()
|
||||
srv := newTestServer(t, tmpDir)
|
||||
|
||||
content := "line one\nline two\n"
|
||||
f := writeFile(t, tmpDir, "test.txt", content)
|
||||
|
||||
// Default: no compact_line_numbers
|
||||
out := callRead(t, srv, map[string]interface{}{"path": f})
|
||||
// Default is now the compact prefix (token-saving): "1│line one".
|
||||
def := callRead(t, srv, map[string]interface{}{"path": f})
|
||||
if !strings.Contains(def, "1│line one") || strings.Contains(def, " 1│ line one") {
|
||||
t.Errorf("default should use compact prefix, got:\n%s", def)
|
||||
}
|
||||
|
||||
// Should have padded format
|
||||
if !strings.Contains(out, " 1│ line one") {
|
||||
t.Errorf("default should have padded format, got:\n%s", out)
|
||||
// Explicit opt-out restores the padded alignment.
|
||||
padded := callRead(t, srv, map[string]interface{}{"path": f, "compact_line_numbers": false})
|
||||
if !strings.Contains(padded, " 1│ line one") {
|
||||
t.Errorf("compact_line_numbers=false should restore padded format, got:\n%s", padded)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -679,9 +683,9 @@ func Hello() {
|
||||
if !strings.Contains(out, `println("hello")`) {
|
||||
t.Errorf("full mode missing body, got:\n%s", out)
|
||||
}
|
||||
// Padded line numbers
|
||||
if !strings.Contains(out, " 1│ package main") {
|
||||
t.Errorf("default should have padded line numbers, got:\n%s", out)
|
||||
// Default line numbers use the compact prefix.
|
||||
if !strings.Contains(out, "1│package main") {
|
||||
t.Errorf("default should have compact line numbers, got:\n%s", out)
|
||||
}
|
||||
// etag present
|
||||
if !strings.Contains(out, "[etag:") {
|
||||
|
||||
@@ -206,7 +206,7 @@ func (s *Server) registerTools() {
|
||||
mcp.Description("Print line numbers only every N lines (default: 1 = every line). E.g. 10 = anchor every 10th line plus first/last. 0 = no line numbers."),
|
||||
),
|
||||
mcp.WithBoolean("compact_line_numbers",
|
||||
mcp.Description("Use compact line prefix '12\u2502' instead of ' 12\u2502 ' (no padding, no trailing space). Works with line_number_interval. Default off."),
|
||||
mcp.Description("Use compact line prefix '12\u2502' instead of padded ' 12\u2502 ' (no padding, no trailing space). Works with line_number_interval. Default true; set false to restore padded alignment."),
|
||||
),
|
||||
mcp.WithBoolean("collapse_blank_lines",
|
||||
mcp.Description("Collapse runs of consecutive blank lines to a single blank line. Useful for token savings on heavily-spaced code."),
|
||||
|
||||
@@ -48,7 +48,7 @@ func TestSessionPrefsFileReadLineNumbersNone(t *testing.T) {
|
||||
t.Fatalf("handleFileRead: %v", err)
|
||||
}
|
||||
text := result.Content[0].(mcp.TextContent).Text
|
||||
// Standard line-number format is " 1│ "; with no_line_numbers it's absent.
|
||||
// line_numbers=none suppresses the prefix entirely (no "│" gutter at all).
|
||||
if strings.Contains(text, " 1│") {
|
||||
t.Errorf("session line_numbers=none: expected no line-number prefix, got:\n%s", text)
|
||||
}
|
||||
@@ -87,7 +87,7 @@ func TestSessionPrefsFileReadLineNumbersCompact(t *testing.T) {
|
||||
req.Params.Arguments = map[string]interface{}{"path": testFile}
|
||||
result, _ := srv.handleFileRead(ctx, req)
|
||||
text := result.Content[0].(mcp.TextContent).Text
|
||||
// Standard padded prefix is " 1│ "; compact is "1│".
|
||||
// Padded prefix is " 1│ "; compact is "1│".
|
||||
if strings.Contains(text, " 1\u2502") {
|
||||
t.Errorf("session line_numbers=compact should use compact prefix, got:\n%s", text)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user