basemind 0.2.2

Full AI context layer over MCP — tree-sitter code-map, document RAG (PDF/Office/HTML/email + OCR + reranker), shared agent memory, on-demand web crawl, git history + blame + per-symbol diff. 300+ languages, 8 coding-agent harnesses, content-addressed Fjall + LanceDB.
version: "3"

tasks:
  default:
    desc: Show available tasks
    cmds:
      - task --list

  setup:
    desc: "Install all dependencies and initialize project. Idempotent."
    cmds:
      - cargo fetch
      - prek install
      - prek install --hook-type commit-msg
      - echo "Setup complete"

  build:
    desc: Build the basemind binary
    cmds:
      - cargo build --release

  test:
    desc: Run all tests
    cmds:
      - cargo test --workspace

  test:verbose:
    desc: Run tests with verbose output
    cmds:
      - cargo test --workspace -- --nocapture

  lint:
    desc: Run all linters and formatters via prek
    cmds:
      - prek run --all-files

  format:
    desc: Format code
    cmds:
      - cargo fmt --all

  check:
    desc: Run all checks (lint + test)
    cmds:
      - task: lint
      - task: test

  clean:
    desc: Clean build artifacts
    cmds:
      - cargo clean

  update:
    desc: Update dependencies (compatible versions only — no Cargo.toml edits)
    cmds:
      - cargo update
      - prek autoupdate

  upgrade:
    desc: Upgrade dependencies to latest, including incompatible bumps (rewrites Cargo.toml)
    cmds:
      - cargo upgrade --incompatible
      - cargo update
      - prek autoupdate

  harden:
    desc: Run the real-OSS hardening harness against all canary repos
    cmds:
      - ./scripts/harden.sh

  release:sync-version:
    desc: 'Sync version across every shipped surface (Cargo, npm wrappers, PyPI, plugin manifests). Usage: task release:sync-version VERSION=0.1.0'
    cmds:
      - ./scripts/release-bump.sh "{{.VERSION}}"
    requires:
      vars: [VERSION]

  release:dry-run:
    desc: GoReleaser snapshot build — produces dist/ archives without uploading
    cmds:
      - goreleaser release --snapshot --clean --skip=publish