You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
--lock-wait <secs> on codesage index and git-index; installed hooks pass --lock-wait 60. Rerun codesage install-hooks to refresh existing hooks.
found boolean on export_context, feature_bundle, and find_coupling results.
Migration runner refuses to open an index carrying an unknown breaking_-prefixed migration.
Changed
Parser captures Rust grouped/glob/renamed use, PHP group-use, and Python relative imports as import edges; import-cycle detection, assess_risk, and trust boundaries now see them.
Parser captures TypeScript abstract classes, JS/TS generators and top-level var, JS/TS re-exports / extends / new, Rust trait method signatures, Go package-level var, C double-pointer returns, and Java enum constants.
assess_risk / codesage risk give structure-aware cycle-breaking guidance (ring: lowest-weight break edge; hub: top decoupling targets).
CLI --json for find-symbol / find-references / search / similar wraps results in {"results": [...]}.
MCP kind / language filter params are typed enums; an unknown value errors instead of returning unfiltered results.
The daemon reloads .codesage/config.toml per project on change without codesage daemon stop.
Search: BM25-fused scores rescale onto the semantic span; reranking skipped only when fusion contributed; single English words don't take the identifier rerank weight.
MCP budget truncation preserves assess_risk_diff.files and records dropped entries in _meta.dropped_files.
codesage doctor fails a non-allowlisted model or reranker, naming CODESAGE_ALLOW_ANY_MODEL.
codesage export --format rejects an unknown value instead of rendering markdown.
codesage cleanup reports failed vec-table drops and exits non-zero when any drop fails.
codesage watch run resolves the project root by walking up, matching watch status / stop / start.
Fixed
Chunk end_line no longer counts the chunk's trailing newline, fixing symbol misattribution at chunk boundaries.
The filesystem watcher retains and retries reindex / removal work under index-lock contention, cancels a pending removal when a file is re-created, respawns after a panic, avoids duplicate spawns, and no longer pins pooled models against idle eviction.
A structural-only reindex no longer leaves a deleted file's chunks, FTS rows, or feature refs in the index; remove_file purges them.
Non-Linux daemon startup no longer SIGTERMs a recycled pid; siblings are validated against their own socket.
assess_risk / review_rehearsal flag Python os.system / os.popen / os.exec / os.spawn / pty.spawn as process-exec; <system_error> no longer tags C++ as process-exec.
Feature mapper: Laravel prefix()->group() inner routes inherit the prefix; # in a CMake string no longer truncates targets; Rust workspace-member bins stay out of library slices; Next.js pages-router skips _app / _document / middleware; crates monorepo members don't cross-attach sibling tests.
codesage overview / project_overview surface a query error instead of a false zero-risk result.
Drift detection classifies a commit-less repository as never-indexed, not "not a git repository".
Security
Embedding/reranker model names from repo config are allowlisted before download or load; CODESAGE_ALLOW_ANY_MODEL=1 overrides.
The leak-check pre-commit hook is opt-in via codesage install-hooks --with-leak-check, not auto-installed.
scripts/leak-check.sh scans staged files with non-ASCII names instead of reading them as empty.