weavatrix-git 0.3.1

Fast, bounded, evidence-carrying Git reader with an optional read-only MCP server
Documentation
name: CI

on:
  push:
  pull_request:

permissions:
  contents: read

jobs:
  test:
    strategy:
      fail-fast: false
      matrix:
        os: [ubuntu-latest, windows-latest, macos-latest]
    runs-on: ${{ matrix.os }}
    steps:
      - uses: actions/checkout@v6
      - uses: dtolnay/rust-toolchain@stable
        with:
          toolchain: "1.88"
          components: rustfmt, clippy
      - uses: actions/setup-node@v6
        with:
          node-version: 24
      - run: cargo fmt --all --check
      - run: cargo clippy --all-targets --all-features -- -D warnings
      - run: cargo test --all-targets --all-features
      - run: cargo doc --no-deps --all-features
      - run: cargo package --locked --allow-dirty
      - run: npm test
      - run: npm pack --dry-run --ignore-scripts
      - shell: pwsh
        run: ./scripts/check-lines.ps1

  coverage:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
      - uses: dtolnay/rust-toolchain@stable
        with:
          toolchain: "1.88"
          components: llvm-tools-preview
      - uses: taiki-e/install-action@cargo-llvm-cov
      - run: >-
          cargo llvm-cov --workspace --fail-under-lines 85
          --ignore-filename-regex 'src[/\\]bin[/\\]'

  audit:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
      - uses: taiki-e/install-action@cargo-audit
      - run: cargo audit

  competitor-harness:
    strategy:
      fail-fast: false
      matrix:
        os: [ubuntu-latest, windows-latest]
    runs-on: ${{ matrix.os }}
    steps:
      - uses: actions/checkout@v6
      - uses: dtolnay/rust-toolchain@stable
        with:
          toolchain: "1.88"
      - run: >-
          cargo run --release --example create_fixture --
          target/competitor-ci 100
      - run: >-
          cargo run --release --locked
          --manifest-path tools/competitor-bench/Cargo.toml --
          "${{ github.workspace }}/target/competitor-ci" 50 5
      - run: >-
          cargo run --release --locked
          --manifest-path tools/competitor-bench/Cargo.toml --
          --cross-repo 50 5
          "${{ github.workspace }}/target/competitor-ci"
          "${{ github.workspace }}/target/competitor-ci"