- AGENTS.md: project-specific agent instructions
- PLAN.md: task checklist (includes semantic editing phases)
- SEMANTIC_EDITING_PLAN.md: full architecture plan for symbol-level editing, hashlines, and LSP integration
- RULES.md: non-negotiable project rules
- CODE_MINIMAP.md: overview of important files and their purpose
- .gitignore: ignored paths for build outputs and local indexes
- .jjignore: jj ignore patterns (avoids tracking Zig cache)
- README.md: usage, build, and configuration overview
- LICENSE: MIT license
- tests/integration/test-integration: end-to-end integration suite (requires Ollama + fixtures)
- tests/cli/test-cli: CLI black-box test suite (uses mk_test_db fixture; covers docs/comments/scope filters, command-specific help, and stdin JSON request mode)
- tests/http/test-http: HTTP API black-box test suite (uses mk_test_db fixture)
- tests/unit/test-unit: Zig unit-test runner (wraps
zig build test-unitaggregated suite in nix dev shell) - fixtures/manifest.toml: pinned fixture repos for integration tests
- .github/workflows/build.yml: CI build + release artifacts workflow
- scripts/ci-setup-nix: CI helper to install Nix (used by GitHub Actions)
- scripts/ci-build: CI build/package wrapper (ReleaseFast per target)
- scripts/ci-local: run the CI build job locally via act (Linux only)
- flake.lock: pinned Nix inputs for reproducible dev shell
- ZIG_RECENT_API_CHANGES_2025.md: Zig 0.14–0.15 API quick reference
- flake.nix: Nix flake providing dev dependencies (zig_0_15) + sqlite amalgamation env vars
- build.zig.zon: Zig package metadata + git dependency on sqlite-vec fork
- build.zig: Zig build script for CLI + unit tests (
test-unitaggregated fast step + legacyteststep) - test: master test runner script (unit/cli/http/integration)
- PROJECT_STATE.md: working notes for future contributors/LLMs (build/run/config details)
- src/all_tests.zig: aggregated unit-test root importing all source modules with test blocks (single binary for faster unit runs)
- src/main.zig: CLI entrypoint wiring config (show/edit), root discovery, index/search, command-specific help topics, stdin JSON request envelope parsing (JSON->CLI args), and HTTP server
- src/cli.zig: CLI argument parsing (including default-to-search behavior, docs/comments flags, unified
--scope, and hybrid weights) + tests - src/config.zig: config parsing/loading for .codescan/config (including weights) + tests
- src/weights.zig: parser/loader for
.codescan/weights.toml([default]+ per-language weights for vector/lexical + metadata boosts) and runtime weight resolution with explicit-override precedence + tests - src/storage.zig: sqlite + sqlite-vec schema init (static vec init, optional FTS5), schema v3 migration support (
symbol_kind/symbol_visibility/symbol_scope/symbol_aritycolumns auto-added for older DBs), mismatch detection for embedding model/dim without clobbering stored metadata, index reset, insert symbol/embedding, tests - src/ollama.zig: Ollama embed + model availability check (
/api/tags) + HTTP transport + tests - src/embedding.zig: embedder interface + Ollama adapter + tests
- src/model.zig: core data model for extracted symbols (includes optional metadata fields:
symbol_kind,symbol_visibility,symbol_scope,symbol_arity) - src/kind.zig: type/category enum for plugins and filters (code/doc/text/log)
- src/plugin.zig: extractor interface, registry, and tests
- src/plugins/zig/mod.zig: Zig plugin defaults (language, extensions, ignore globs)
- src/plugins/elixir/mod.zig: Elixir plugin defaults (language, extensions, ignore globs)
- src/plugins/c/mod.zig: C plugin defaults (language, extensions, ignore globs)
- src/plugins/typescript/mod.zig: TypeScript plugin defaults
- src/plugins/rust/mod.zig: Rust plugin defaults
- src/plugins/lean/mod.zig: Lean plugin defaults
- src/plugins/idris/mod.zig: Idris plugin defaults
- src/plugins/nix/mod.zig: Nix plugin defaults
- src/plugins/nim/mod.zig: Nim plugin defaults
- src/plugins/bash/mod.zig: Bash plugin defaults
- src/plugins/lua/mod.zig: Lua plugin defaults
- src/plugins/haskell/mod.zig: Haskell plugin defaults
- src/plugins/markdown/mod.zig: Markdown plugin defaults + README matcher
- src/plugins/text/mod.zig: Text plugin defaults (.txt)
- src/plugins/log/mod.zig: Log plugin defaults (.log)
- src/extract_zig.zig: Zig AST-based extractor + tests
- src/extract_elixir.zig: Elixir function extractor + tests (lightweight parser)
- src/extract_c.zig: C extractor using tree-sitter + tests
- src/extract_typescript.zig: TypeScript/TSX extractor using tree-sitter + tests
- src/extract_rust.zig: Rust extractor using tree-sitter + tests
- src/extract_lean.zig: Lean4 extractor using tree-sitter + tests
- src/extract_idris.zig: Idris2 extractor (line-based fallback) + tests
- src/extract_nix.zig: Nix extractor using tree-sitter + tests
- src/extract_nim.zig: Nim extractor using tree-sitter + tests
- src/extract_bash.zig: Bash extractor using tree-sitter + tests
- src/extract_lua.zig: Lua extractor using tree-sitter + tests
- src/extract_haskell.zig: Haskell extractor using tree-sitter + tests
- src/extract_markdown.zig: Markdown heading-based chunk extractor + tests
- src/extract_text.zig: Plain text paragraph/line/sentence extractor + tests
- src/extract_log.zig: Log line extractor + tests
- src/extract_util.zig: shared helpers for doc comments + line splitting
- src/scan.zig: file walker + ignore matching (built-in + global + per-language globs,
.gitignoreparity via git allowlist at repo roots, hard ignore for.git/.jj, node_modules opt-in) + shebang detection for extensionless bash/lua scripts + tests - src/indexer.zig: indexing pipeline (scan -> extract -> embed -> store), heuristic symbol metadata enrichment (
symbol_kind/symbol_visibility/symbol_scope/symbol_arity), embedding truncation (sentence/line-aware), TTY progress counter, DEBUG progress logs, large-file warnings + tests - src/search.zig: vector/lexical/hybrid search + weighted_sum/RRF fusion + lower default score dropoff threshold (0.3) + FTS candidate generation + intent-aware natural-language scoring (lookup/navigation/conceptual), local/generic symbol demotion, duplicate signature diversity penalty, metadata-aware scoring boosts from query cues + tests
- src/output.zig: human/json output formatting for results (includes symbol metadata fields in JSON payload) + tests
- src/server.zig: HTTP server with /health, /search, /index endpoints; search weights in request; startup no longer blocks on Ollama model preflight (health/status become available immediately) + tests
- src/filters.zig: shared parsing + filter logic for ext/lang/type and primary language defaults
- src/filter.zig: glob-to-regex compiler + PCRE2 matcher for ignore patterns
- src/pcre2.zig: minimal PCRE2 wrapper used by filter
- src/mk_test_db.zig: generate tiny sqlite index for CLI/HTTP tests (default embedding dim 1024; override via
--embedding-dim) - deps/tree-sitter: vendored tree-sitter runtime (C library + headers)
- deps/tree-sitter-c: vendored tree-sitter C grammar (parser.c)
- deps/tree-sitter-typescript: vendored tree-sitter TypeScript/TSX grammar
- deps/tree-sitter-rust: vendored tree-sitter Rust grammar
- deps/tree-sitter-bash: vendored tree-sitter Bash grammar
- deps/tree-sitter-lua: vendored tree-sitter Lua grammar
- deps/tree-sitter-nix: vendored tree-sitter Nix grammar
- deps/tree-sitter-nim: vendored tree-sitter Nim grammar
- deps/tree-sitter-lean: vendored tree-sitter Lean grammar
- deps/tree-sitter-idris2: vendored tree-sitter Idris2 grammar
- deps/tree-sitter-haskell: vendored tree-sitter Haskell grammar
- .codescan-fixtures/: gitignored fixture repos for integration tests