active-infinity 2.0.4

Active Infinity (Active ∞) — binary, zero-copy, content-addressable, graph-native, unit-aware and secret-safe data language for Active modules and AI agents
Documentation
name: CI

on:
  push:
    branches: [main]
  pull_request:
    branches: [main]

jobs:
  gates:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: dtolnay/rust-toolchain@stable
        with:
          components: rustfmt, clippy
      - name: Format
        run: cargo fmt --all -- --check
      - name: Clippy (all targets, all features)
        run: cargo clippy --locked --all-targets --all-features -- -D warnings
      - name: Clippy (no default features)
        run: cargo clippy --locked --all-targets --no-default-features -- -D warnings
      - name: Tests
        run: cargo test --locked --all-features
      - name: Tests (no default features)
        run: cargo test --locked --no-default-features
      - name: Documentation
        env:
          # A broken intra-doc link is a documentation defect, not a warning.
          RUSTDOCFLAGS: -D warnings
        run: cargo doc --locked --no-deps --all-features

  msrv:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: dtolnay/rust-toolchain@1.85.0
      # The committed lockfile is the tested graph: time 0.3.44 and proptest
      # 1.9.0 are the newest releases that still build on 1.85.
      - name: MSRV check (every feature, every target)
        run: cargo check --locked --all-targets --all-features
      - name: MSRV check (no default features)
        run: cargo check --locked --no-default-features

  api-surface:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: dtolnay/rust-toolchain@nightly
      # The authoritative check: the resolved public API, not a text scan.
      - name: Generate rustdoc JSON
        run: cargo +nightly rustdoc --lib --all-features -- -Zunstable-options --output-format json
      - name: No public secret accessor
        run: python3 scripts/api_surface.py target/doc/active_infinity.json

  package:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: dtolnay/rust-toolchain@stable
      - name: Package (the tarball must build on its own)
        run: cargo package --locked

  fuzz:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: dtolnay/rust-toolchain@nightly
      - name: Install clang (libFuzzer runtime)
        run: sudo apt-get update && sudo apt-get install -y clang
      - name: Install cargo-fuzz
        run: cargo install cargo-fuzz --locked
      - name: Seed the corpus with the conformance vectors
        run: |

          mkdir -p fuzz/corpus/decode
          cp tests/vectors/valid/*.ainf tests/vectors/invalid/*.ainf fuzz/corpus/decode/
      - name: Bounded fuzz campaign
        run: cargo fuzz run decode -- -runs=20000