Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
1b6ff00
docs: add design spec for probe install + refresh-before-search
dilawarm Apr 18, 2026
3613ae7
docs: add implementation plan for probe install + refresh-before-search
dilawarm Apr 18, 2026
12cd450
chore: ignore .worktrees/
dilawarm Apr 18, 2026
8d4e7f2
feat(store): add mtime_ns and size columns to files table for refresh…
dilawarm Apr 18, 2026
d4c72a1
refactor(indexer): extract _index_file() helper from IndexPipeline.in…
dilawarm Apr 18, 2026
003878b
feat(indexer): add RefreshGate debounce primitive for refresh-before-…
dilawarm Apr 18, 2026
0bf3b70
refactor(indexer): address code review for RefreshGate
dilawarm Apr 18, 2026
2d4693c
feat(indexer): add refresh_changed() phase 1 (stat sweep + deletion)
dilawarm Apr 18, 2026
5efbbe2
feat(indexer): implement refresh_changed() phase 2 (hash confirm + re…
dilawarm Apr 18, 2026
f1f15be
refactor: address Task 5 code review (stale comment + exact path asse…
dilawarm Apr 18, 2026
2e3b5ae
feat(cli): wire refresh-before-search into search command
dilawarm Apr 18, 2026
bd2c7dc
refactor(cli): escape rich markup in refresh warning; document double…
dilawarm Apr 18, 2026
3a489b4
feat(mcp): wire refresh-before-search into probe_search and add refre…
dilawarm Apr 18, 2026
def85a7
fix(mcp): persist RefreshGate on _ServerState; record elapsed_ms on r…
dilawarm Apr 18, 2026
b6b0cc7
feat(cli): add probe install command skeleton with claude-CLI detection
dilawarm Apr 18, 2026
e62fa47
feat(cli): probe install — API key resolution and claude mcp add invo…
dilawarm Apr 18, 2026
51889f6
test(cli): cover --no-embed-key, already-installed, and --force insta…
dilawarm Apr 18, 2026
a79a5bb
feat(cli): add probe uninstall command with --purge
dilawarm Apr 18, 2026
0040b1e
docs: update README for probe install flow and refresh-before-search
dilawarm Apr 18, 2026
0cdd603
chore: bump version to 0.2.0 and add CHANGELOG
dilawarm Apr 18, 2026
90b98c1
style: clean up pre-existing ruff violations in tests/
dilawarm Apr 18, 2026
3d44afe
fix(cli): use claude mcp add-json to avoid variadic -e arg parsing bug
dilawarm Apr 18, 2026
9301cab
feat(cli): auto-enable probe in all projects during install
dilawarm Apr 18, 2026
6c76a43
fix(tests): patch time.monotonic in gate-persistence test; tighten en…
dilawarm Apr 18, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,4 @@ __pycache__/
*.egg-info/
dist/
build/
.worktrees/
17 changes: 17 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Changelog

All notable changes to probe are documented here.

## 0.2.0 — 2026-04-17

### Added
- `probe install` / `probe uninstall` for one-command Claude Code integration via `claude mcp add --scope user`.
- Refresh-before-search: the index incrementally updates when files change, driven by a two-phase (stat → hash) algorithm with a TTL debounce (`PROBE_REFRESH_TTL`, default 5s).
- `refreshed` field on every `probe_search` MCP response with counts of added/changed/removed files.

### Changed
- MCP `probe_search` no longer needs a separate `probe_index` call — auto-index is subsumed into the unified refresh path.
- `files` table schema gains `mtime_ns` and `size` columns (migration is automatic and backwards-compatible).

### Removed
- The "File system watcher" roadmap item (refresh-before-search covers the same UX need without a daemon).
26 changes: 17 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,25 +21,31 @@ probe makes this instant. It indexes everything -- markdown docs, code, PDFs, pl
# 2. Install
pip install probe-search

# 3. Set your API key
export ZEROENTROPY_API_KEY="ze_xxx"
# 3. Register probe with Claude Code (one-time, machine-wide)
probe install

# 4. Index and search
probe index .
probe search "how does authentication work"
# Now open any project in Claude Code and ask a question —
# probe will auto-index on first search and refresh on subsequent ones.
```

Or run without installing:
For CLI-only use:

```bash
uvx probe-search search "how does authentication work"
export ZEROENTROPY_API_KEY="ze_xxx"
probe index .
probe search "how does authentication work"
```

The index auto-refreshes before each search; set `PROBE_REFRESH_TTL=0` to
force refresh every time, or `-1` to disable refresh.

---

## MCP Server Setup (Claude Code, Cursor)

Add a `.mcp.json` file to your project root:
**Claude Code users**: `probe install` (see Quick Start) does this automatically.

**For Cursor or advanced use**: add a `.mcp.json` file to your project root:

```json
{
Expand Down Expand Up @@ -120,6 +126,7 @@ One query returns the design spec, the implementation code, and the architectura
|---------|-------------|
| `probe index [paths...]` | Index project files for semantic search |
| `probe index --full` | Force full re-index (ignore file hashes) |
| `probe install` | Register probe as a user-scope MCP server in Claude Code |
| `probe search "query"` | Search project knowledge with natural language |
| `probe search --top-k N` | Limit number of results (default: 10) |
| `probe search --type code` | Filter by file type (markdown, code, pdf, text) |
Expand All @@ -130,6 +137,7 @@ One query returns the design spec, the implementation code, and the architectura
| `probe config` | Show current provider configuration |
| `probe init` | Auto-detect provider and save config |
| `probe mcp` | Start MCP server (stdio transport) |
| `probe uninstall [--purge]` | Unregister probe; `--purge` also deletes `.probe/` in cwd |

---

Expand Down Expand Up @@ -181,7 +189,7 @@ Documents are chunked and stored locally in `.probe/` (SQLite + numpy). Only chu

## What's NOT in v1

- File system watcher for auto-reindexing on changes
- Real-time filesystem watcher (refresh-before-search handles typical edit volumes fine)
- Web sources (Notion, Confluence, Google Docs)
- Git-aware context (commit history, blame)
- Image/diagram understanding within PDFs
Expand Down
Loading
Loading