Code quality fixes from review

toolsrv:
- Remove dead 'var _ = os.Args' in sandbox/native_linux.go
- Fix stale comment in server.go (said 'spec.go')
- Fix misleading test comment in proc_test.go
- Add outputLimit constant in exec.go (was magic number)
- Handle error from registry.New() in main.go
- Change startup log from Warn to Info

olliesrv:
- Remove duplicate normalizeWorkflow() call in tool_match.go
- Consolidate duplicate nil checks in runtime.go
- Remove reimplemented stdlib functions in toolclient/toolsrv.go
- Simplify cacheSummary() - remove unused variable capture

-27 lines
This commit is contained in:
Levi Neely 2026-08-21 19:16:44 +02:00
parent 9b9c1a9539
commit 67edfdf58b
9 changed files with 17 additions and 44 deletions

View File

@ -469,10 +469,7 @@ func (s *History) cacheSummary(key, summary string) {
if len(summary) > maxSummaryCacheBytes { if len(summary) > maxSummaryCacheBytes {
return return
} }
if old, ok := s.summaryCache[key]; ok { delete(s.summaryCache, key) // Remove old entry if exists
delete(s.summaryCache, key)
_ = old
}
s.summaryCache[key] = summary s.summaryCache[key] = summary
bytes := 0 bytes := 0
for k, value := range s.summaryCache { for k, value := range s.summaryCache {

View File

@ -163,13 +163,11 @@ func (rt *Runtime) PreambleString() string {
func BuildRuntime(cfg *AgentConfig, srv *toolclient.ToolsrvConn, cwd string, env []string, systemPrompt, envBlock string) *Runtime { func BuildRuntime(cfg *AgentConfig, srv *toolclient.ToolsrvConn, cwd string, env []string, systemPrompt, envBlock string) *Runtime {
var allToolInfos []protocol.ToolInfo var allToolInfos []protocol.ToolInfo
var allTools []backend.Tool var allTools []backend.Tool
var toolRevision uint64
if srv != nil { if srv != nil {
allToolInfos, _ = srv.ListTools() allToolInfos, _ = srv.ListTools()
allTools = toolInfosToBackend(allToolInfos) allTools = toolInfosToBackend(allToolInfos)
}
var toolRevision uint64
if srv != nil {
toolRevision = srv.ToolRegistryRevision() toolRevision = srv.ToolRegistryRevision()
} }

View File

@ -68,8 +68,8 @@ func matchTools(input string, tools []protocol.ToolInfo) string {
return "" return ""
} }
workflowText := normalizeWorkflow(input).SearchText()
workflow := normalizeWorkflow(input) workflow := normalizeWorkflow(input)
workflowText := workflow.SearchText()
searchInput := input searchInput := input
if workflowText != "" { if workflowText != "" {
searchInput += " Workflow: " + workflowText searchInput += " Workflow: " + workflowText

View File

@ -313,8 +313,8 @@ func (c *ToolsrvConn) HostInfo() (HostInfo, error) {
} }
info := HostInfo{} info := HostInfo{}
for _, line := range splitLines(string(data)) { for _, line := range strings.Split(string(data), "\n") {
if idx := indexOf(line, '='); idx >= 0 { if idx := strings.IndexByte(line, '='); idx >= 0 {
key := line[:idx] key := line[:idx]
val := line[idx+1:] val := line[idx+1:]
switch key { switch key {
@ -423,8 +423,8 @@ func (c *ToolsrvConn) readProcInfo(name string) map[string]any {
} }
info := make(map[string]any) info := make(map[string]any)
for _, line := range splitLines(string(data)) { for _, line := range strings.Split(string(data), "\n") {
if idx := indexOf(line, '='); idx >= 0 { if idx := strings.IndexByte(line, '='); idx >= 0 {
key := line[:idx] key := line[:idx]
val := line[idx+1:] val := line[idx+1:]
switch key { switch key {
@ -514,30 +514,6 @@ func randomSecret() (string, error) {
return hex.EncodeToString(b), nil return hex.EncodeToString(b), nil
} }
func splitLines(s string) []string {
var lines []string
start := 0
for i := 0; i < len(s); i++ {
if s[i] == '\n' {
lines = append(lines, s[start:i])
start = i + 1
}
}
if start < len(s) {
lines = append(lines, s[start:])
}
return lines
}
func indexOf(s string, c byte) int {
for i := 0; i < len(s); i++ {
if s[i] == c {
return i
}
}
return -1
}
func escapeValue(s string) string { func escapeValue(s string) string {
// Escape newlines and backslashes // Escape newlines and backslashes
result := make([]byte, 0, len(s)) result := make([]byte, 0, len(s))

View File

@ -21,6 +21,8 @@ import (
"ollie/util" "ollie/util"
) )
const outputLimit = 10 * 1024 * 1024 // 10 MiB
// StartResult reports whether an external command started. // StartResult reports whether an external command started.
type StartResult struct { type StartResult struct {
Process *os.Process Process *os.Process
@ -194,7 +196,7 @@ func executeSandboxed(ctx context.Context, toolPath, stdinData, cwd string, envE
} }
lw := &limitedWriter{ lw := &limitedWriter{
w: w, w: w,
limit: 10 * 1024 * 1024, limit: outputLimit,
} }
cmd.Stdout = lw cmd.Stdout = lw
cmd.Stderr = lw cmd.Stderr = lw

View File

@ -6,7 +6,6 @@ import (
"encoding/base64" "encoding/base64"
"encoding/json" "encoding/json"
"fmt" "fmt"
"os"
"os/exec" "os/exec"
"strings" "strings"
"syscall" "syscall"
@ -129,5 +128,3 @@ func restrict(cfg *Config, cwd string, env map[string]string) error {
} }
return nil return nil
} }
var _ = os.Args

View File

@ -273,7 +273,7 @@ func TestGcProcs(t *testing.T) {
t.Error("proc 1 should have been GC'd (exited, read >10min ago)") t.Error("proc 1 should have been GC'd (exited, read >10min ago)")
} }
if _, ok := st.procs[2]; ok { if _, ok := st.procs[2]; ok {
t.Error("proc 2 should NOT be GC'd (never read)") t.Error("proc 2 should be GC'd (exited, never read, timed out)")
} }
if _, ok := st.procs[3]; !ok { if _, ok := st.procs[3]; !ok {
t.Error("proc 3 should NOT be GC'd (recently read)") t.Error("proc 3 should NOT be GC'd (recently read)")

View File

@ -1,4 +1,4 @@
// spec.go - virtfs-based namespace specification for toolsrvclient. // server.go - virtfs-based namespace specification for toolsrv.
package server package server
import ( import (

View File

@ -90,7 +90,10 @@ func main() {
// Native Landlock is applied by the sandbox-exec child; no external wrapper is required. // Native Landlock is applied by the sandbox-exec child; no external wrapper is required.
// Create tool registry // Create tool registry
toolReg, _ := registry.New() toolReg, err := registry.New()
if err != nil {
logger.Warn("tool registry: %v", err)
}
// Create server state // Create server state
srv := server.NewServer() srv := server.NewServer()
@ -153,7 +156,7 @@ func main() {
defer ln.Close() defer ln.Close()
defer os.Remove(*listenPath) defer os.Remove(*listenPath)
logger.Warn("listening on %s", *listenPath) logger.Info("listening on %s", *listenPath)
// Accept connections // Accept connections
go func() { go func() {