Skip to content

feat(tool): make repo_search portable#39

Closed
AetherAI3 wants to merge 1 commit into
mainfrom
codex/aa-loop-03-repo-search-portable-20260709
Closed

feat(tool): make repo_search portable#39
AetherAI3 wants to merge 1 commit into
mainfrom
codex/aa-loop-03-repo-search-portable-20260709

Conversation

@AetherAI3

Copy link
Copy Markdown
Owner

Summary

  • Replace shell-based repo_search with a Node-native literal search that works without grep/head.
  • Keep searches inside the workspace, skip .git/node_modules/dist, ignore symlinks and binary files, and preserve the existing 40-hit cap/output envelope.
  • Harden run_shell spawn-error reporting and stabilize a heartbeat timing test exposed by the Windows sandbox.

AA-LOOP-03 audit artifact

  • Shortlist considered: portable repo_search, /doctor --json, MCP config export, and slash-command help export. Chosen: portable repo_search, because it fixes a real cross-platform tool gap without new privilege or dependencies.
  • Concept mutation: narrowed from a new user command to a backend tool reliability fix; kept literal substring semantics so model behavior does not change unexpectedly.
  • Adversarial review: PASS. Risks checked: workspace escape, symlink traversal, binary noise, dependency drift, output floods, and shell portability.
  • Build/review/simplify: UI unchanged by design; backend change lives in ToolExecutor; tests cover recursive hits, ignored dirs/binary files, and cap behavior. File hygiene reviewed; implementation file is 189 lines and touched oversized test suites were already shared fixtures.

Tests

  • npm run build
  • node --test --test-isolation=none "dist/test/**/*.test.js" (470 pass)

Refs #36.

@AetherAI3 AetherAI3 closed this Jul 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant