release notes · v0.6.0
skylakegrep 0.6.0 — faster indexing and authoritative agent evidence
0.6.0 is a performance-and-accuracy release for agent workflows. It removes per-file embedding request overhead, keeps repeated daemon calls responsive, and makes the evidence behind agent confidence and synthesized answers more explicit.
The speed work does not relax retrieval quality. Closed-loop fixtures now enforce path-only locate semantics, retrieval-only queries cannot claim lexical confidence they did not earn, and local answer synthesis keeps current policy/reference documents separate from unrelated plans or version snapshots.
What changed
- Full, incremental, explicit-file, and watch indexing batch chunks across
file boundaries before requesting embeddings. The default batch is 64 and
is clamped to 1..512 through
SKYGREP_INDEX_BATCH_SIZE. - Watch mode refreshes file embeddings and removes stale chunks when a tracked file becomes empty.
skygrep doctorchecks optional dependencies without importing heavyweight reranker modules.skygrep servebinds before optional reranker initialization. Reranker warming is explicit and asynchronous through--warm-reranker.- Agent summaries expose
confidence_basisas eitherlexical-and-retrievalorretrieval-only; non-lexical queries receive no synthetic lexical coverage credit. - Candidate-recall and source-prior handling are shared across the agent path, including a decisive but reversible prior against unnamed historical version snapshots.
--answerfilters unrelated snapshots, roadmaps, and planning notes when a current living policy/reference document leads. Exact-version queries and explicitly named supporting documents remain available.- The closed-loop benchmark contract now represents locate tasks as path-only tasks and preserves numeric fixture evidence.
- GitHub Actions use Node 24-compatible
actions/checkout@v5andactions/setup-python@v6.
Measured performance
All comparisons below were run on the same repository and codebase family. Indexing, hot CLI operations, and closed-loop agent quality are reported as separate receipts.
| Metric | Previous behavior | 0.6.0 | Result |
|---|---|---|---|
| Fresh index elapsed | 624.44 s | 74.71 s | 8.36x faster, about 88% lower elapsed |
doctor median |
heavyweight dependency import path | 0.216 s | lightweight discovery |
Hot daemon --agent-context median |
optional reranker on startup path | 0.372 s | server binds first |
| Medium closed-loop completion | contract contained path-task mismatches | 8 / 8 | no failed tasks |
| Medium path coverage | - | 100% | all target paths recovered |
| Medium evidence coverage | - | 100% | all evidence targets recovered |
| Medium sufficiency | - | 100% | all tasks sufficient |
| Medium work quality | - | 95.7% | bounded context retained |
The adaptive comparison also used 9.82x less context and had 3.34x lower
estimated agent elapsed than the raw-rg policy. Raw rg remains the correct
tool for exact regex and exhaustive raw lexical output.
Accuracy and evidence boundaries
The release treats speed and correctness as independent gates:
- deterministic file/chunk ordering is preserved across embedding batches;
- exact-version queries retain their matching historical document while other versions of the same document are excluded from current-policy synthesis;
- historical tasks remain unchanged when no living authority leads;
confidence_basisstates which evidence family supports the summary;- a live release-policy answer cited only
docs/RELEASING.md:106-121after unrelated version and planning documents were filtered; - original ranked sources remain visible below synthesized answers.
Compatibility
- Existing indexes are byte-compatible; no rebuild is required.
- The top-level agent JSON value remains a list of result objects. New fields are optional.
- Daemon startup no longer warms the optional reranker by default. Workloads
that rely on later reranked queries can opt in with
skygrep serve --warm-reranker. - Exact regex/raw-output workflows should continue to call
rgdirectly.
Verification
- Full implementation suite:
383 passed, 20 subtests passedwith two existing Click deprecation warnings; the isolated Python 3.9 release environment also completed383 passedwith one environment-only LibreSSL warning. - Targeted answer/document-policy suite:
7 passed; the Python 3.9 enrichment lifecycle regression suite completed4 passed. - Pull-request CI: Python 3.10, 3.11, and 3.12 all passed.
- Post-merge
masterCI: Python 3.10, 3.11, and 3.12 all passed. - Medium closed-loop benchmark: 8/8 complete, 100% path coverage, 100% evidence coverage, 100% sufficiency, no failures.
- Live
--answerrelease query completed with the canonical release document as its only source.
Privacy
Source, documentation, and the actual GitHub PR diff passed the privacy gate. Public examples use fictional paths and generic prompts. No real local prompt, private filename or folder, absolute local path, screenshot, document category, name, email, credential, token, or machine-specific identifier is included. Wheel and sdist artifacts are scanned again after the release build.
Known follow-ups
- PyPI Trusted Publishing still needs the one-time project-side publisher
registration for owner
danielchen26, repositoryskylakegrep, workflowrelease.yml, and environmentpypi. Until that account setting is added, releases use the existing authenticatedtwinepath after the same build, metadata, artifact, and privacy gates. This affects automation only, not the package contents or availability.