leankg 0.19.2

Lightweight Knowledge Graph for AI-Assisted Development
Documentation
# Plan §"Part B Option 1" — dedicated offline embed job.
#
# Use this when you want to force a one-shot full rebuild while MCP is
# stopped. CozoDB RocksDB is single-writer per process per path, so the
# canonical "safe" sequence is:
#
#   docker compose -f docker-compose.rocksdb.yml stop leankg
#   docker compose -f docker-compose.rocksdb.yml -f docker-compose.embed.yml \
#     --profile embed run --rm leankg-embed
#   docker compose -f docker-compose.rocksdb.yml start leankg
#
# Cold offline job: INT8 fast path. Needs ≥6g so batch 128 fits.
# Default: cpus="6", mem_reservation=3g, mem_limit=10g (multi-project /
# mega-graph cold embed envelope — see docs/reports/embed-3-workspaces-2026-07-17.md).
# Prefer BACKGROUND=1 on the main MCP service for day-2 so MCP stays up during rebuild.

services:
  leankg-embed:
    profiles: ["embed"]
    image: leankg-leankg:latest
    entrypoint: ["leankg"]
    # LEANKG_MCP_PROJECT selects which mounted root to embed (override per run).
    # Side mounts (e.g. /workspace-other) come from docker-compose.override.yml
    # under services.leankg-embed.volumes — same binds as the MCP service.
    command:
      [
        "embed",
        "--wait",
        "--project",
        "${LEANKG_MCP_PROJECT:-/workspace}",
        "--workers",
        "8",
        "--batch-size",
        "128",
        "--types",
        "function,method",
      ]
    environment:
      LEANKG_DB_ENGINE: rocksdb
      LEANKG_ROCKSDB_ROOT: /data/leankg-rocksdb
      LEANKG_MCP_PROJECT: ${LEANKG_MCP_PROJECT:-/workspace}
      LEANKG_MMAP_SIZE: "67108864"
      LEANKG_EMBED_FAST: "1"
      LEANKG_EMBED_MODEL: "bge-q"
      LEANKG_EMBED_MAX_SEQ: "128"
      LEANKG_EMBED_MAX_BLOB_CHARS: "500"
      # Offline job: disable soft pause (0). 8×INT8 sessions sit ~5.5g RSS and
      # never shrink; a tight MAX_MB stalls the whole run.
      LEANKG_EMBED_MAX_MB: "0"
      OMP_NUM_THREADS: "1"
      RUST_LOG: leankg=info
    volumes:
      - leankg-rocksdb:/data/leankg-rocksdb
      - leankg_models:/root/.cache/leankg
      # Primary project mount. Extra repos: docker-compose.override.yml →
      # services.leankg-embed.volumes (mirror services.leankg.volumes).
      - ${HOST_PROJECT_PATH:-./}:${CONTAINER_PROJECT_PATH:-/workspace}
    working_dir: ${CONTAINER_PROJECT_PATH:-/workspace}
    cpus: "6"
    mem_reservation: 3g
    mem_limit: 10g
    restart: "no"