Skip to content

v0.10.0

Choose a tag to compare

@github-actions github-actions released this 11 Jun 23:21
v0.10.0
902619c

Added

  • Add codesage index --batch-size <N> to override embedding batch size.
  • Add target, acceleration, and embedding-device details to codesage --version.
  • Add CoreML embedding and reranker support on Apple Silicon via device = "coreml".
  • Add codesage index --verbose for per-phase indexing progress.
  • Add stale-file metadata to MCP responses via _meta.stale_files.
  • Add tree-sitter query validation to codesage doctor.
  • Add codesage install / codesage uninstall support for Codex and opencode.
  • Add default project injection with codesage mcp --project <root>.
  • Add optional line numbers to export_context and feature_bundle.
  • Add repo-size-based token budgets for export_context and feature_bundle.
  • Add Laravel route-handler references for impact_analysis and find_references.

Changed

  • Default Apple embedding batch size is now 10.
  • macOS builds now link ONNX Runtime with CoreML support at compile time.
  • The MCP daemon now exits after 30 minutes without clients; set CODESAGE_DAEMON_IDLE_TIMEOUT_SECS=0 to keep it alive.
  • Semantic indexing now writes changed files in bounded batches and reports structural and semantic failures separately.
  • MCP tool handlers now run off the async runtime worker threads.

Fixed

  • codesage cleanup no longer treats every vec table as orphaned when the active semantic table is missing.
  • codesage cleanup --dry-run no longer loads the embedder.
  • codesage mcp --project, codesage install, and codesage install-hooks reject non-UTF-8 paths instead of writing lossy values.
  • codesage index now prunes excluded directories, skips unreadable or deleted files, and fails when trust-boundary backfill fails.
  • Chunk merging and overlap now respect chunk_size.
  • impact_analysis rejects ambiguous bare symbols; callee export prefers imported symbols over homonyms.
  • Parser extraction now handles PHP multi-namespace files, Java nested types, and nested functions with correct qualified names and kinds.
  • Feature mapping now drops excluded files before trust-boundary aggregation, deduplicates entry files, includes Rust library files under src/, and ignores disabled PHP extension macros.
  • list_features tag filters now escape SQL LIKE metacharacters.
  • serde_json imports now map to the serialization trust boundary.
  • list_dependencies now reports reverse file importers.
  • ReferenceKind JSON now uses snake_case names and still accepts the legacy spellings.
  • --version handling no longer intercepts subcommand arguments or panics on non-UTF-8 argv.
  • codesage init rejects a non-directory .codesage path.
  • CODESAGE_NVIDIA_LIBS can point directly at CUDA library directories.
  • Unknown device values are rejected instead of falling back to CPU.
  • Search ranking no longer promotes weak matches with negative KNN scores.
  • Reranker score extraction handles rank-1 logits and malformed tensor lengths without panicking.
  • Custom embedding models with already-pooled ONNX output now fail with an actionable error.
  • MCP tool panics now return errors instead of hanging clients.
  • MCP semantic tools now fail on malformed project config instead of creating a default semantic table.
  • The MCP daemon survives transient accept() errors.
  • codesage daemon status and codesage daemon stop can find daemons from previous builds.
  • codesage daemon status and codesage daemon stop use a stable /tmp/codesage-$UID fallback across TMPDIR changes.
  • session-start and session-end validate snapshot paths and loaded session IDs.
  • session-end flushes its report before exiting nonzero.
  • codesage map now takes the project index lock.
  • Generated git hooks shell-quote the codesage binary path.

Security

  • codesage daemon status and codesage daemon stop validate runtime dirs and pid identity before trusting pid files.
  • codesage daemon refuses a symlinked or foreign-owned /tmp/codesage-$UID runtime dir.
  • Non-Linux codesage daemon status / stop no longer trust a stale pid unless the daemon socket is reachable.
  • list_features --since and MCP since reject option-like git refs.