diff --git a/.cargo/config.toml b/.cargo/config.toml index c9b65f3f..4b96dd71 100644 --- a/.cargo/config.toml +++ b/.cargo/config.toml @@ -1,2 +1,4 @@ -[env] -RUST_MIN_STACK = "8388608" +# Temporary coverage config - DO NOT COMMIT +# Replaces project config during coverage runs +[build] +target-dir = "/mnt/nvme-raid0/coverage/forjar" diff --git a/.claude/worktrees/provable-contracts b/.claude/worktrees/provable-contracts new file mode 120000 index 00000000..e8f68f55 --- /dev/null +++ b/.claude/worktrees/provable-contracts @@ -0,0 +1 @@ +/home/noah/src/provable-contracts \ No newline at end of file diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 00000000..7d1fcf74 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,15 @@ +# Dependabot configuration for GitHub Actions SHA pinning +# Generated by machines/clean-room/deploy-workflows.sh — do not edit manually. +# Spec: docs/specifications/sovereign-stack-protected-branch-strategy.md (Phase 4) +version: 2 +updates: + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "weekly" + day: "monday" + commit-message: + prefix: "ci" + labels: + - "dependencies" + - "ci" diff --git a/.github/workflows/book.yml b/.github/workflows/book.yml new file mode 100644 index 00000000..d2c398ba --- /dev/null +++ b/.github/workflows/book.yml @@ -0,0 +1,47 @@ +name: Book + +on: + push: + branches: [main] + paths: ['docs/book/**', '.github/workflows/book.yml'] + workflow_dispatch: + +permissions: + pages: write + id-token: write + +concurrency: + group: pages + cancel-in-progress: false + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Install mdBook + run: | + mkdir -p $HOME/.local/bin + curl -sSL https://github.com/rust-lang/mdBook/releases/download/v0.4.44/mdbook-v0.4.44-x86_64-unknown-linux-gnu.tar.gz \ + | tar -xz -C $HOME/.local/bin + echo "$HOME/.local/bin" >> $GITHUB_PATH + + - name: Build book + run: mdbook build docs/book + + - name: Upload artifact + uses: actions/upload-pages-artifact@v3 + with: + path: docs/book/book + + deploy: + needs: build + runs-on: ubuntu-latest + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2ffc67ad..2f9274d6 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,71 +1,27 @@ +# Per-repo CI workflow — merge gate via clean-room verification +# Generated by machines/clean-room/deploy-workflows.sh — do not edit manually. +# Spec: docs/specifications/sovereign-stack-protected-branch-strategy.md +# +# Calls the centralized reusable gate workflow in paiml/infra. +# Branch protection requires "clean-room / gate" to pass before merge. + name: CI on: + pull_request_target: + branches: [main, master] push: - branches: [main] - pull_request: - branches: [main] + branches: [main, master] -env: - CARGO_TERM_COLOR: always - RUSTFLAGS: -Dwarnings +# One CI run per PR; cancel stale runs +concurrency: + group: ci-${{ github.event.pull_request.number || github.sha }} + cancel-in-progress: true jobs: - test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@stable - - uses: Swatinem/rust-cache@v2 - - run: cargo test --all-targets - - run: cargo clippy --all-targets -- -D warnings - - container-test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@stable - - uses: Swatinem/rust-cache@v2 - - run: docker build -t forjar-test-target -f tests/Dockerfile.test-target . - - run: cargo test --features container-test - - fmt: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@stable - with: - components: rustfmt - - run: cargo fmt --check - - dogfood: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@stable - - uses: Swatinem/rust-cache@v2 - - name: Validate all dogfood configs - run: | - for f in examples/dogfood-*.yaml; do - echo "--- $f ---" - cargo run -- validate -f "$f" - done - - name: Run all examples - run: | - for ex in $(cargo run --example 2>&1 | grep '^\s' | awk '{print $1}'); do - echo "--- $ex ---" - cargo run --example "$ex" - done - - name: Verify MCP schema export - run: cargo run -- mcp --schema | python3 -c "import sys, json; d = json.load(sys.stdin); assert d['tool_count'] == 9" - - bench: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@stable - - uses: Swatinem/rust-cache@v2 - - name: Compile benchmarks - run: cargo bench --no-run - - name: Run inline bench (quick) - run: cargo run -- bench --iterations 10 --json + clean-room: + uses: paiml/infra/.github/workflows/clean-room-gate.yml@main + with: + repo: ${{ github.event.repository.name }} + pr_sha: ${{ github.event.pull_request.head.sha || github.sha }} + secrets: inherit diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 00000000..66635d0d --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,125 @@ +# Per-repo release workflow — tagged releases only +# Generated by machines/clean-room/deploy-workflows.sh — do not edit manually. +# Spec: docs/specifications/sovereign-stack-protected-branch-strategy.md +# +# Flow: tag push → clean-room gate → package verify → trusted publish → GitHub Release +# +# Tag formats: +# v1.0.0 — single-crate repos +# v--1.0.0 — workspace repos (e.g. v-apr-cli-0.4.0) +# +# IMPORTANT: Tags must be pushed with a PAT or deploy key (not GITHUB_TOKEN), +# otherwise this workflow will not trigger (GitHub anti-recursion measure). + +name: Release + +on: + push: + tags: ['v*'] + +permissions: + contents: write # create GitHub Release + id-token: write # OIDC for crates.io Trusted Publishing + +# One release at a time per repo +concurrency: + group: release-${{ github.repository }} + cancel-in-progress: false + +jobs: + # ── Gate: clean-room must pass before publish ─────────── + gate: + uses: paiml/infra/.github/workflows/clean-room-gate.yml@main + with: + repo: ${{ github.event.repository.name }} + pr_sha: ${{ github.sha }} + secrets: inherit + + # ── Verify: tag-version match + package tarball ───────── + verify: + needs: gate + runs-on: [self-hosted, clean-room] + outputs: + crate_name: ${{ steps.parse.outputs.crate_name }} + version: ${{ steps.parse.outputs.version }} + steps: + - name: Checkout + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + + - name: Parse tag and verify version + id: parse + run: | + TAG="${GITHUB_REF_NAME}" + + # Parse tag format: v1.0.0 or v-cratename-1.0.0 + if [[ "$TAG" =~ ^v-([a-z][a-z0-9_-]*)-([0-9]+\..+)$ ]]; then + CRATE_NAME="${BASH_REMATCH[1]}" + TAG_VER="${BASH_REMATCH[2]}" + echo "Workspace release: crate=$CRATE_NAME version=$TAG_VER" + elif [[ "$TAG" =~ ^v([0-9]+\..+)$ ]]; then + CRATE_NAME="" + TAG_VER="${BASH_REMATCH[1]}" + echo "Single-crate release: version=$TAG_VER" + else + echo "::error::Tag '$TAG' does not match expected format (v1.0.0 or v-crate-1.0.0)" + exit 1 + fi + + # Use cargo metadata for reliable version extraction + if [ -n "$CRATE_NAME" ]; then + CARGO_VER=$(cargo metadata --format-version 1 --no-deps \ + | jq -r ".packages[] | select(.name == \"$CRATE_NAME\") | .version") + if [ -z "$CARGO_VER" ] || [ "$CARGO_VER" = "null" ]; then + echo "::error::Crate '$CRATE_NAME' not found in workspace" + exit 1 + fi + else + CARGO_VER=$(cargo metadata --format-version 1 --no-deps \ + | jq -r '.packages[0].version') + fi + + if [ "$TAG_VER" != "$CARGO_VER" ]; then + echo "::error::Tag version $TAG_VER != Cargo.toml version $CARGO_VER" + exit 1 + fi + + echo "crate_name=$CRATE_NAME" >> "$GITHUB_OUTPUT" + echo "version=$TAG_VER" >> "$GITHUB_OUTPUT" + echo "Version verified: $TAG_VER" + + - name: Verify package tarball + run: | + CRATE="${{ steps.parse.outputs.crate_name }}" + if [ -n "$CRATE" ]; then + cargo package --verify -p "$CRATE" + else + cargo package --verify + fi + + # ── Publish: OIDC trusted publishing to crates.io ────── + publish: + needs: verify + runs-on: [self-hosted, clean-room] + steps: + - name: Checkout + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + + - name: Authenticate to crates.io (OIDC) + uses: rust-lang/crates-io-auth-action@b7e9a28eded4986ec6b1fa40eeee8f8f165559ec # v1.0.3 + + - name: Publish + run: | + CRATE="${{ needs.verify.outputs.crate_name }}" + if [ -n "$CRATE" ]; then + cargo publish -p "$CRATE" + else + cargo publish + fi + + - name: Create GitHub Release + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + gh release create "$GITHUB_REF_NAME" \ + --title "$GITHUB_REF_NAME" \ + --generate-notes diff --git a/.pmat-metrics/deny-cache.txt b/.pmat-metrics/deny-cache.txt new file mode 100644 index 00000000..9c4524d2 --- /dev/null +++ b/.pmat-metrics/deny-cache.txt @@ -0,0 +1 @@ +advisories ok, bans ok, licenses FAILED, sources ok diff --git a/.pmat-metrics/lint-cache.txt b/.pmat-metrics/lint-cache.txt new file mode 100644 index 00000000..e43d1d53 --- /dev/null +++ b/.pmat-metrics/lint-cache.txt @@ -0,0 +1 @@ +cargo clippy --all-targets -- -D warnings diff --git a/.pmat-work/PMAT-022/contract.json b/.pmat-work/PMAT-022/contract.json new file mode 100644 index 00000000..eac5ce62 --- /dev/null +++ b/.pmat-work/PMAT-022/contract.json @@ -0,0 +1,5761 @@ +{ + "version": "5.0", + "work_item_id": "PMAT-022", + "created_at": "2026-03-02T15:27:00.769897507Z", + "baseline_commit": "fd0c5a538b70d56ab76dd739bfe67e2f8df113f0", + "baseline_tdg": 0.0, + "baseline_coverage": 0.0, + "baseline_rust_score": 0.0, + "baseline_file_manifest": { + "files": { + "src/core/resolver/tests_data.rs": { + "content_hash": "1f1ae2c8727651048eeff987ddd1cb6b0cd5da5fd1432cf001672485539da462", + "lines": 368, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/store_diff.rs": { + "content_hash": "3604892b9c7259ae2d773fe300b4fb5ab77fb8e982e0188e783e913517c4e5be", + "lines": 161, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/resource_types.rs": { + "content_hash": "68f2bbc06de073e745215d0a5f55ec9b778b8f4296d7acdd81c4279d1c75f059", + "lines": 320, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_queries.rs": { + "content_hash": "4e34a126b8c125dfe51f90a1aafe25a3ccc45747614703985b58203040e5c983", + "lines": 364, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase62.rs": { + "content_hash": "6f95ab39861fa1e10e27bd13cc4bae119d295cd71df5f20f2e8e6a1d3f725603", + "lines": 194, + "functions": 19, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_store_pin.rs": { + "content_hash": "9b1688c31c9ef9884c5450f1b704d487514270fc5f94ade48a1b4e8cade08a4b", + "lines": 178, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase64.rs": { + "content_hash": "d95d5a7569aedecf4c5f7da391965a342aaa6c897069d00986a67b8b41e9a65d", + "lines": 202, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/strategies.rs": { + "content_hash": "47300be7d021d6fa65d12516cfe21bc9efa2b9d4d14a702f668fbda29deb6362", + "lines": 129, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_args_2.rs": { + "content_hash": "e91f9e265dfb772ae8daf143fdc99fc593cdf114e61451e5e0aa1a3f19aa0728", + "lines": 479, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/lock_ops_args.rs": { + "content_hash": "0a0ef2dd6cf1e8a992a644dabcd8fdee6fccda5656aa865cbbd989b0b81d48b9", + "lines": 221, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_show_1.rs": { + "content_hash": "146e30fe694909412f1d8a3157c58e7c8269c41ce0c7f35dc7e817d881833ab4", + "lines": 418, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase101.rs": { + "content_hash": "74758c38fa148996d240fd23b5a951e82edddb5e50b95fd15c449275065a8f57", + "lines": 207, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_plan_1.rs": { + "content_hash": "ee8591122d1888f8a32f1424187ee7ea1750421a8d2ad71729357ad8dd54ca42", + "lines": 184, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_resource_intel.rs": { + "content_hash": "86d33a5d43a4e1f5cbe8e5672e93f066e17fe64dd817f2fe5c014a63696f2557", + "lines": 719, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_status_1.rs": { + "content_hash": "6bec4145c05fa7caaa3d05fdf3515f0782120a8385406fce9df4f4a3c09cd896", + "lines": 467, + "functions": 65, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_8.rs": { + "content_hash": "89614594099be17f2f6a2821b5ad27cd9cf91a944f698a4b769f8f75f7a72c4e", + "lines": 586, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase81.rs": { + "content_hash": "ceeb1be347bdf90a1f6618d662a2ee711df8f8a7eb295889934b5374108f4858", + "lines": 289, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/arch_filtering.rs": { + "content_hash": "0c7b4be49e9498d6b6a8e4277cf7ceb27c84887a8f2dfb8224b20f4cbbe2083c", + "lines": 125, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/event_logging.rs": { + "content_hash": "a824a3e869cc765c381607a296288475026397ea7d5f90a33965d0902109ba22", + "lines": 141, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/check.rs": { + "content_hash": "ea85e4683f4490afc10d126fb3ebcd379b982ae73f1abf8c68380c7c2281f838", + "lines": 299, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/anomaly.rs": { + "content_hash": "239d090e52456c1d1579249311e148080231cd73796da9db0bf333f2fbb0bbf3", + "lines": 331, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_pin_resolve.rs": { + "content_hash": "596670544d1060d16071fcafd8d4e54ee634df83a3d4497145b0206eb29e1446", + "lines": 210, + "functions": 28, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/gc_exec.rs": { + "content_hash": "2af6ad4e5be133d8db7efbc89197594791c8bad9c0c8f8452f6e49244c9b66d4", + "lines": 189, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/kernel_far.rs": { + "content_hash": "bafdeac640d0494aae58e3ae0512cdafacc7b6aacfa43c014bc085e4a238a600", + "lines": 139, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch_misc.rs": { + "content_hash": "61c9068fcada0637c306cbbe559a6d286b298da3521038558f5de778e1e4a8fd", + "lines": 295, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_1.rs": { + "content_hash": "f5ddacf24be97d134f24e95a58e5f1300c3082766da76ad935e1c7e51fc58b77", + "lines": 701, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_observe.rs": { + "content_hash": "acb6154c8558487eee51f8b71d5320750e5c073cc58643ffcd11f53b2e380db0", + "lines": 413, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/tests_purifier.rs": { + "content_hash": "2590f79be5bf58666abe31c1b7294d2a0b87213100b1190097d270ddc6e91915", + "lines": 304, + "functions": 22, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_advanced.rs": { + "content_hash": "577782791494f3a2f1f4701ec33e12fe7381a0ab660dc7601d8879297ce6063c", + "lines": 488, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/show.rs": { + "content_hash": "4538451f83bd09570bbd07e938a5555815cb5362176f88d81c937297579fef92", + "lines": 399, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/store_archive.rs": { + "content_hash": "1e3b5b828ede0561463196455eeaf0ca8e3bcaf7a186e4a7c655a77814be7378", + "lines": 216, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_notify_2.rs": { + "content_hash": "96b1d9717c6957af6517e4297586f248abe8803f8c282001332cd194aeb284ca", + "lines": 529, + "functions": 49, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/store_provider_import.rs": { + "content_hash": "c94d617cd5ae49aac9449b53c444890eb8c33633c747854f23eb18fcaab7490a", + "lines": 154, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/planner/tests_plan.rs": { + "content_hash": "06886b0275b2a61d010df1fc8a9b7e279ab76367b6f2a9bf33e1be767ec6071d", + "lines": 357, + "functions": 18, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_sandbox.rs": { + "content_hash": "53da5a42b62345bc14b3ed96491582b76080d76c3050b9be2fb06315ca9e2fb8", + "lines": 218, + "functions": 22, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_governance.rs": { + "content_hash": "3c3cfe711b4c2caba6a2eb351a7d7fe324589a1e4fbb8f51dc32599f0cbda81a", + "lines": 364, + "functions": 27, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_check_1.rs": { + "content_hash": "c973bc13a84441411cb93e5fd8321693edab02f864f5e042455f368cb350c0a1", + "lines": 482, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/helpers.rs": { + "content_hash": "7cdf36a2f59e6dcf0e334b47db74a7877ba11321c4565a75c68745817abcec35", + "lines": 74, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/mcp/registry.rs": { + "content_hash": "75647eabf9f4d7b78af10988944732a965bec55d05593469767749cd3d54866f", + "lines": 244, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_status_6.rs": { + "content_hash": "7aad92ee7550f4497bbf6ef8c8450ca3107b215fe6091fcd58bd1c1ba3b7ba8a", + "lines": 485, + "functions": 74, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_9.rs": { + "content_hash": "12615ab2ab0e95d47c3c356ba5e0e6667a55ca386a23bbac175113fc13e436b0", + "lines": 528, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/drift/tests_basic.rs": { + "content_hash": "72e4c5883d2c4806dbeaa8ad813c81a7907bac78e696f353897f47343d83412d", + "lines": 325, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_validate_core_1.rs": { + "content_hash": "c1ec0ef1de015b836d47a38cd392d304595682809b6f8abbeeea5e81a8142d05", + "lines": 804, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch_graph.rs": { + "content_hash": "6880907d29ee1e23db3610830ce143e3ce6c1e5d1b9a7d3fa238e5c3d9b98c81", + "lines": 1142, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/mcp_server.rs": { + "content_hash": "b7126d57d09e74f70c23893061f14c2d061bb44f631451544776b412e52d0a98", + "lines": 53, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/planner/tests_helpers.rs": { + "content_hash": "20e2adedc50de5de8155b3f1060372f90561cc39b21bb5bcbfee8b85718daac2", + "lines": 90, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/expansion.rs": { + "content_hash": "36e647edd310f9d8f1f30595e6a50c1b5f5f352a5da67ed77f65fa1f77649fe2", + "lines": 110, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/plan.rs": { + "content_hash": "5bf39e0a42f93bb8d2f7421ce84fbd4d3689bb9573947f04a3edca3ccf85cb8e", + "lines": 399, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_1.rs": { + "content_hash": "3b65e06a29308f5383fc8b645ea2e518932fc2f97a6c4a8ffa4f55bff7eb0626", + "lines": 514, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_b.rs": { + "content_hash": "022ccd86512e794a15c77242c1071530dcb99d24620ee43ccba398d0a79802cb", + "lines": 369, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase73.rs": { + "content_hash": "30cf3a82640c3e614ba7b9dce1f9df02aa4c558dc4f1790f239e8d6c125deb16", + "lines": 283, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/apply_output.rs": { + "content_hash": "a34f54cbc1a73ab2186d7e7d1faaa0fc8d8e0fdaf952f551aaab6200a47d6f8d", + "lines": 404, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_16.rs": { + "content_hash": "f26edc3898c0b3cc4167c24262fd5d6bbe9713971d0bccdb892f27833bd6180f", + "lines": 585, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_health.rs": { + "content_hash": "967ada2de2f50e004169e6e3dfbc2b75807fd3adecdbe8ada6da3ca827a51172", + "lines": 403, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_graph3_b.rs": { + "content_hash": "0b53e9dd56f69e38122e721290cc6e0d3a8415a07e0c460f2a1103a3bdcfc419", + "lines": 499, + "functions": 67, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/mod.rs": { + "content_hash": "30d69f454459c3979acf9916e760d80f3d2467d3095367eec183a476cb93b6b8", + "lines": 113, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase103.rs": { + "content_hash": "cbabee64dc0654ef58d19e26d4037ed79847fdf34d04e3b12d51e9cf56b77028", + "lines": 208, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_compliance.rs": { + "content_hash": "2c77b5f6328ed8db8bdd89c4ef5821f6af04f93116f92c9f8820286a4e5247ab", + "lines": 347, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_fleet_ops.rs": { + "content_hash": "88ab77b4a769be588ba9fed9d48e35d5f7215e7a7476fcc04518e0de5021aaf8", + "lines": 531, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_9_b.rs": { + "content_hash": "3a831a32ac2c14170211c76398f8ca81dda570c83f38df1e7ce7cafc5e3bae24", + "lines": 206, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_analytics.rs": { + "content_hash": "5d5ee17e1dd1549aa2433d189257f59b54b718eafff552913e5e0187de17a1ea", + "lines": 424, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_lock.rs": { + "content_hash": "f7421ffba17f648c183009ee32a2f9f35e75a8e6870b962a25444f517d30c367", + "lines": 492, + "functions": 65, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase70.rs": { + "content_hash": "2a92c7115123b83d8d0b4160f3e9332abbea33cd994106a7e8b93c1fc3e2f376", + "lines": 280, + "functions": 24, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_validate2_b.rs": { + "content_hash": "974a2b402c5e7bfb983b4cc2cba4dc2ad11b7a87639177521a59d8501ece79f9", + "lines": 386, + "functions": 38, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_graph.rs": { + "content_hash": "d6324c03b4c5dcf421b9d0a587e46c4ddd47629af49d78a4ef5351471ce7b727", + "lines": 335, + "functions": 53, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/tests_eventlog_b.rs": { + "content_hash": "34a596c285b3642f888d17dacc616138f36a5c6388391a331485fa09f26c4802", + "lines": 270, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_misc_3.rs": { + "content_hash": "12d7d262f0c2b2c8e449e681dd8f262362e21237040e8da02a8deecf2d527a42", + "lines": 428, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/mod.rs": { + "content_hash": "3534660afbd68852179095bcc91c867aec2e4c43c5a8567ae7ff5a5963553a99", + "lines": 587, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_intelligence_ext.rs": { + "content_hash": "eeb9abf73fbfc962479c96003f7208a7ff1c33a9b00ae21afbc1ce91adcb8d61", + "lines": 759, + "functions": 27, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/tests_container.rs": { + "content_hash": "10063bb3e84f26c0b2c758899d3b5a780c5b3a57d5825702a80f0bcf74bad620", + "lines": 468, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_security_ext.rs": { + "content_hash": "f66fe1fc9ea7278efa07102a67120cb60ec48798452be1d870ebc4394f7fa674", + "lines": 486, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_fleet_reporting.rs": { + "content_hash": "3901fe210760f37694820731b9431fe74558573a333681f17b9da1955f03d19f", + "lines": 86, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/cache_exec.rs": { + "content_hash": "eb1d3d7a584cfc38ebf258302c78b43ec08dfa5eb1c94c809bf5e8f46665f29b", + "lines": 254, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_sandbox_run.rs": { + "content_hash": "5f701b77734afb259e8e1cc39173f67ad8c8e9dfc57ac8abe60544869ed6e3bd", + "lines": 229, + "functions": 18, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/state/tests_helpers.rs": { + "content_hash": "7fc2190767b2cacf33961b927bdfb6be3970becdfd3f787c89fcd4a8e06b95e8", + "lines": 27, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/codegen/tests_completeness.rs": { + "content_hash": "911cabd0471feabd23fc8d140273235e9042a8d8b8f9b6e8759cdc5c579c92d9", + "lines": 280, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_insights.rs": { + "content_hash": "c202889e1711fc0d1c94aa52e338515e5dcb07ecd74e83f12960bce19ffe1f20", + "lines": 350, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_graph_core_b.rs": { + "content_hash": "d02027474bcb89eed4d4fda160b960d2bbae6e561a48fd91412f2dac283ada74", + "lines": 226, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/convert.rs": { + "content_hash": "02a72e67c50e2ff057114ec4d407d4de92e92e5b54ebda75c477862fcbfe930d", + "lines": 221, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_validate_transport.rs": { + "content_hash": "af826465479da479476baf68a2514356e913912de11873d61532a915562a1657", + "lines": 379, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_12.rs": { + "content_hash": "a23683659b99ed53f1d94379a414bb1088617b377ef4d672d3c7523e6330e14b", + "lines": 584, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/lock_core.rs": { + "content_hash": "622ec568ae72b5bd9b6625776af10162ad9ac59d8c8a8d5d8577cd124dace853", + "lines": 453, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_hooks.rs": { + "content_hash": "5509ac1dc580a0c8a13607ab1d807295391f6dced6375f2a05ba4fae6589bde3", + "lines": 316, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/mcp/tests_registry.rs": { + "content_hash": "35bcc9a5dc807b410f61dd2d587efc07135c010102abd0a27ce29ea7a32cfbd6", + "lines": 129, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_1_b.rs": { + "content_hash": "33221eefa354e0482515d3ac44909c8b218d54435078814040b93ddc6f1d6f31", + "lines": 208, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_transport_2.rs": { + "content_hash": "e7e61b26181d06ba30ff3d35cb9b5c6d5212a30db2af157146d8f1f2be051ab5", + "lines": 467, + "functions": 30, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_23.rs": { + "content_hash": "ffcf1444f241cce57ee0d1b35c936fc474b5749af87bdad1c3b5a254773cfa68", + "lines": 260, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/apply_variants.rs": { + "content_hash": "7fb2ff4c429a910521f9baf6668437bca47db6c49ebdc70574e1b38a380731b7", + "lines": 349, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_ownership.rs": { + "content_hash": "8c38dfd3544fd20c954d421e06c76df90cb952ccec3f302d02956b2146096460", + "lines": 610, + "functions": 28, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_operational.rs": { + "content_hash": "c67f575d0b6b37879d87be18a304c51a63b4d127184f0c0b39a4e70ea8c9ce93", + "lines": 529, + "functions": 18, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_plan.rs": { + "content_hash": "5aea601bb36efb618cf588cf6b9e5b0bf6d21064478d68de5b8f7571aea43f5c", + "lines": 475, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_6_b.rs": { + "content_hash": "7e2a14df6b54e692c97b64d08ea54685e4e3cf5ad33a56fe6722ef70de1ede3e", + "lines": 474, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch_validate.rs": { + "content_hash": "940d3a0c38925dd9059f95f3398cb629347873ccaf2c3245cf911a1a2b182f6b", + "lines": 1143, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/recipes.rs": { + "content_hash": "5bf513847e93b5f32beb6ae07e4ae664a42f57ef1693e93b1449c4eb9f3a20ef", + "lines": 138, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/mod.rs": { + "content_hash": "4be4616b935c9a86bd39e95e6310c1c6a1ab7cc607493b9ecd10edf36d2d9325", + "lines": 340, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/migrate.rs": { + "content_hash": "55472d0eb74b18c26e56d523f8416c4d51e258223d5ac29ba47d0094221f64a6", + "lines": 433, + "functions": 19, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_remaining_7.rs": { + "content_hash": "03d4a2bf12817121f557c0251456edbf232593631d66cda7c7ab1747ef609ecb", + "lines": 386, + "functions": 40, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_1_b.rs": { + "content_hash": "d284dc840647a1e7cab3b623de997d50a3263d31ae77db2939044b18a7b096b9", + "lines": 474, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_rolling.rs": { + "content_hash": "cbca7f9c8fa3f645deb82608388fe64e767b9550f3388416630c2d5a233b8aad", + "lines": 261, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_derivation.rs": { + "content_hash": "ca933c0431c5cc9b6f89f0db012202a65a6387207bdb00dd80a8cdd2dd9f5016", + "lines": 293, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch_status_ext.rs": { + "content_hash": "38caa2aed92591fe40388046bd7b21fe3209088d0376b921fca0982e63e37c1f", + "lines": 637, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_destroy.rs": { + "content_hash": "ea1504b5a4cf522a8231e2751484ce9ddba9155fbc0efa29c74f38cc5b7e4941", + "lines": 374, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/sandbox_exec.rs": { + "content_hash": "81497fc856954a8f238808fef3d031046141e36ca6ff229d057d28c8d31addd8", + "lines": 322, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_lock_core.rs": { + "content_hash": "70adbb33a1eadbd8fcd553e18d283c32833e30995e4c32e7614d648c4c708b88", + "lines": 467, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_store_convert.rs": { + "content_hash": "6f07b4719d395fa3ce537d84c5d71facd277223759f6c46e97652f2156689de8", + "lines": 127, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase107.rs": { + "content_hash": "e486299b14d73cd633bb447a4c25ad0e122c296dd1b7bc5d38ad973de7f6df69", + "lines": 225, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_drift.rs": { + "content_hash": "49e2203aa6db0c38af3d2b3a77926090384e38100fc6b951057dfb559567b9b0", + "lines": 458, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase102.rs": { + "content_hash": "28ceaba1ffaf865a6947a081b160e034a05ea8cb3a0969068df6dd7b63d550fc", + "lines": 206, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase95.rs": { + "content_hash": "bf0a5c55af721110cf5d166d463b5925dc6780913ce7fa0a3580884c2f9627b9", + "lines": 215, + "functions": 30, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/drift/tests_full.rs": { + "content_hash": "9c60bf9ae7deb70447f2ee2c8caebe6f0f2edfafe2965f4e7c59add1fd83ad87", + "lines": 455, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_args_3.rs": { + "content_hash": "6fb37cabbcb7b47f98717eb9c3906331482a7e7d0da85209b773dadeb4e6d401", + "lines": 392, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_graph_core_6.rs": { + "content_hash": "5519c2dd3380ae47ec49f8510e654123e544f501bfd99e62cd82b06a809c0aba", + "lines": 312, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/full_stack_deploy.rs": { + "content_hash": "56839d0659adcec2a1d782f0008bbc14a9c272f252bfd46bb5cd7dbe2164032b", + "lines": 185, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_contract_scaffold.rs": { + "content_hash": "0579aec27efbb232895792b359733ae85c571abf51c7e4c5282de8700fa607f1", + "lines": 154, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_remaining_3.rs": { + "content_hash": "db47c0551191717e888422f39d498a0d91007c5eacbb1402db5a9561bff12c48", + "lines": 454, + "functions": 42, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/tests_anomaly.rs": { + "content_hash": "7f8482500d6ec9b32ab2c892b71c8de993c19359baf1bdfc8d3301d9983d2c77", + "lines": 276, + "functions": 26, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_7.rs": { + "content_hash": "b53d80fc3bb932221f9f7ac428f3b0c9e3841a0e908ddae73f407958e5be08fc", + "lines": 703, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase99.rs": { + "content_hash": "3e99a44c3fe4b8c4734bb170b82d7dd8825335c7b3980ef6f7504341aba9e153", + "lines": 237, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_governance.rs": { + "content_hash": "7909756818caadc8ce5782aa8b4993c340675b9502259363f67ea01de304c263", + "lines": 480, + "functions": 22, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/tests_proptest.rs": { + "content_hash": "0eb89718248287a3dfe83e3adb93336309e3831ae0d267cc00b660d9b06e7889", + "lines": 76, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/package.rs": { + "content_hash": "7b78ef2be7d1342bc58259a458f848372a8bd2070cb9a0c77e2baf12070457a5", + "lines": 192, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/mod.rs": { + "content_hash": "9f6044672813dbffe20b724482ecb623a36ec42be35c525f8225de85d60206ac", + "lines": 186, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_recovery.rs": { + "content_hash": "0d4cfff5a848ceaadac787b245e475aff436cf6297353d029a9b79c26e5dc304", + "lines": 677, + "functions": 22, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_graph_core_1.rs": { + "content_hash": "b996492b79f04f8f625bd3b70571a2f5141cc8abb40404afd8256f97d6a1af27", + "lines": 1033, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/tests_secrets.rs": { + "content_hash": "c3e9a7a11caef27d4950768370be2f68d69ed711fb48393ece5eebaecd99fe80", + "lines": 440, + "functions": 39, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch_lock.rs": { + "content_hash": "70b1939da69b07e59f06de53245eff579b01a5a24d775168355cadaf71a1e11a", + "lines": 162, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_profile.rs": { + "content_hash": "5910625e51426f1656aca1054eeabf43b8f0c113b4881fb681e4283363b59bdf", + "lines": 104, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/recipe/tests_validation.rs": { + "content_hash": "61a0c94cfe03eb4f564a727aa353bac5c17c02795165714c76cebb9b4e57ea5a", + "lines": 434, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/recipe/expansion.rs": { + "content_hash": "83036fee9f0a827503f00b1e4f68d826454a9c419914b30c38ae27f23eec05e8", + "lines": 208, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/tests_container_d.rs": { + "content_hash": "711345b985b3ef3ea21c6f626c4fcf835454b7cad6ef9f71d0d94bba04919653", + "lines": 41, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/helpers.rs": { + "content_hash": "8d2c8e5bf247190920e2d8672061d6e3175f74153bb6556d2bbbda48cfff9a64", + "lines": 227, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/planner/mod.rs": { + "content_hash": "7c07701fd6517c704b28c3dc0d946e0cd5adc8ffa371f09449e748734402f036", + "lines": 376, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_kernel_far.rs": { + "content_hash": "0c3f0f3cd5084c953a428b20d2350063bd53140d61bdeece477c2ddd62087356", + "lines": 404, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_validate_core_2_b.rs": { + "content_hash": "22f5f3903a07db1e20a30566d978cdff3aa8f6cd345360996b237c0fce6a88ac", + "lines": 659, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/validation.rs": { + "content_hash": "8346d643a4450c0aa664b04298cd5e3b8483e74ae34344148daa81d625359f30", + "lines": 118, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_mount_b.rs": { + "content_hash": "0dd5ebc9614833d1502b0cabcb8b4c027b9b03da239a7015f2daede897b5d563", + "lines": 249, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/derivation.rs": { + "content_hash": "855ef7ff60508ae454f11cda81341dacf9e9f8081c6da2a07dc9adb8f71d98af", + "lines": 209, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/validate.rs": { + "content_hash": "6233d0994ccaaafc3c9112422e700b7feceb4883f7baff463b6595bd623d2455", + "lines": 131, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_ordering.rs": { + "content_hash": "2e61e35656794b31f7833e65bbe6d59235080a09d4f459242812096e7432f856", + "lines": 675, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_5.rs": { + "content_hash": "824b0d8f75706dbcd9fa8c3b8de4bd7a8d23b17de16c64b462c4fa242d8dcc06", + "lines": 395, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase89.rs": { + "content_hash": "70e540ec4031f62163e0d14d04422bcb6c2fed1e957ee5d70ed2e689b4a6c1b8", + "lines": 308, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_apply.rs": { + "content_hash": "0fe8601283da0f753ed01431e5401bab3b82c7243b495696ba658cb24b9d1766", + "lines": 427, + "functions": 33, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_fleet_insight.rs": { + "content_hash": "9d2c58b613313ecf20a215e5139db11c4cb43f552494b71d4498ddd40fd77e77", + "lines": 706, + "functions": 30, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/store_convert.rs": { + "content_hash": "23f0b48db113dc89fedf82df673db575a7990e0bc2e8e09ea2e90a227fe68b02", + "lines": 96, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_22.rs": { + "content_hash": "bf279a9d6ae125679a585c944782b7210e25699abf2834e397a1242c0378ed0a", + "lines": 588, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/contract_coverage.rs": { + "content_hash": "5daf03a49c3624a4792586195749e18090ccf6d639732dd32efcfc1dd0b59b2e", + "lines": 122, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch.rs": { + "content_hash": "57127062694b8d05fc282807ed5da44ecdcb454a250cb19504e13f39593f38d1", + "lines": 141, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/types/policy.rs": { + "content_hash": "9669a0f635a6090ccb2b222823b3632367cd5c303e24c2f47c33c2430c0114ef", + "lines": 118, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/resource_ops.rs": { + "content_hash": "276472b0a55ffda06dd7a201f583affd113ae6cd5f191f7f0f879650ac1b8134", + "lines": 403, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_reference.rs": { + "content_hash": "c49c2bddda5b11f68be69125f09c88b8cdf5f063de0bc3175c9feb09b9bf0006", + "lines": 123, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase97.rs": { + "content_hash": "74f9386a495bd24f35c4a62484a87edae6082d87a1085c0d5469cf4e2043d0d7", + "lines": 190, + "functions": 26, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_derivation_exec.rs": { + "content_hash": "4b5ee332750b330d1dec8780e7ca966c9d59b0ce17db88a4e0e946fccb94ec6c", + "lines": 281, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_misc2.rs": { + "content_hash": "c8b337c89ad6a10b7594a79b366934c6164ac3057d3325805b2c7e6688d9c6d4", + "lines": 301, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_drift_intel2.rs": { + "content_hash": "6f32e09b223fb4a152deac6b1cdb6b80ef62dc08f2b6da69cc19c4b79649945b", + "lines": 460, + "functions": 18, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_helpers_time.rs": { + "content_hash": "038e90da543fb51cbba559b761d649039ffc84c0aeecab9f9bc0b763aa7efe67", + "lines": 36, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_args.rs": { + "content_hash": "d6ff2578cdef4fb0853e97436d525ab7311339457cbcbd9c0574d2f85ddc7c9b", + "lines": 472, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_cache_exec.rs": { + "content_hash": "c405611445baf436a9ffdf7cfd971286b1a7f20564362a648b2d5775956629eb", + "lines": 235, + "functions": 18, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_status_4.rs": { + "content_hash": "a817b37be5a555e6c08ac2709b878f1ef3d8268461c49a6de30961c7c41fb390", + "lines": 345, + "functions": 43, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_validate_core_3.rs": { + "content_hash": "c94e86e0868d9fd06084bf3fdeb3a05303969bdd50c2ab7dcc054b93cc93b608", + "lines": 246, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_lint.rs": { + "content_hash": "5cb83f7f55532c360a592d010ae54ea7f35787782a84aa139281154a04bba24b", + "lines": 196, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_fleet.rs": { + "content_hash": "0a1e48414bc8db11acbf4507134638e61621e160134e4a6d4d558290a3797a4a", + "lines": 337, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_provider_exec.rs": { + "content_hash": "95360fc2385a6b6ecdc754235766dc7578fb4687d8a30d7333f3fcbdf2ba6990", + "lines": 254, + "functions": 19, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_store_diff.rs": { + "content_hash": "73079617698d552eaa3ce7ba0b6c405be84c718e78eee852ac638fbbea40ed75", + "lines": 192, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_remaining_9.rs": { + "content_hash": "e6392c9f422e76d22599cff1f48d9f31e9b9108407425b644600e96fcaca726f", + "lines": 466, + "functions": 29, + "max_complexity": 0, + "category": "RustSource" + }, + "src/copia/mod.rs": { + "content_hash": "0e23b4a219ca632f3478d22ef3c04c705251af4838bc344c1e7870ef26b8b6db", + "lines": 239, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/service.rs": { + "content_hash": "b196fa1fe260d1ee4fbe5490d9e73fb475310871a762cd9962aa81be2e6bb56b", + "lines": 81, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_failures.rs": { + "content_hash": "e74487d76644f9f54e751d50cd25018b0339d5b274c12a6a051d7f37269313e7", + "lines": 390, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_parallel.rs": { + "content_hash": "f82bb8f72e4d6b25694ffeb7abaa01e6e77934ee96fd2b897ff6845fb18f6582", + "lines": 404, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_core.rs": { + "content_hash": "7b0c3dd5d862930408456a0bb342f7e7b30cc1390732449d6c7402961d8de4a4", + "lines": 448, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/status_args.rs": { + "content_hash": "b2df8deccc2c8cd18bb80be47098e390cb5dbf7cd6a16c74163be10113c56180", + "lines": 676, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/tests_dag.rs": { + "content_hash": "2c13befc9e3d19724bd66f98f9851c85bc9ffad3db5bc12949a471f5be8924cc", + "lines": 287, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/secrets.rs": { + "content_hash": "128f94dbc3f53c2a599e3c0b70b8efdca8b785b4d3303bfe07bead8a30a65ad6", + "lines": 201, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/multi_machine.rs": { + "content_hash": "04b230f6137c1cf850adeb484e49ffe4da9df5899f879ec799441db5ff51d36c", + "lines": 212, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_status_2.rs": { + "content_hash": "aecb4e8084ebe53396f124fe0af98547eeca2473f59238fb6a3ebb5f4ed8ebfe", + "lines": 453, + "functions": 64, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/store_cache.rs": { + "content_hash": "bb3b32ca6993cd0861afe497a977e49b40ab45dc9ff5f32a21da4908019b2dca", + "lines": 223, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_graph3.rs": { + "content_hash": "0964177398f72d99d5ea1f4a213a72dd48aad9df5a22c763d23440ef22e037c6", + "lines": 253, + "functions": 33, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_diagnostics.rs": { + "content_hash": "fca182a3d1a07e39525cece8e8c450bbf6acf6c611e06c98d9db2dba73797794", + "lines": 578, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_fleet_detail.rs": { + "content_hash": "866a7f5e541e1b701ad06df209e70e9849352598fe811a750ac45386f86dd546", + "lines": 483, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_validate_core_1_b.rs": { + "content_hash": "ad46aa69bb5803815a2e8bcc9908c04363ffaed29eb191576d3ac275f1c2d017", + "lines": 647, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_store_cache.rs": { + "content_hash": "bbc8884fec30a6b4be2c5cf2149d76613d22bc4cfe4d996bcd4f92a3d7669580", + "lines": 158, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase94.rs": { + "content_hash": "fff4cfa1c2fb77c8c79f9a7610da253dd0e2aa118e2dd7cb3f01779095bf61b1", + "lines": 425, + "functions": 24, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_13.rs": { + "content_hash": "1110878080dc7f004e5c4b035c9e0242aa4e5192e8023c8c0878e1a7a0b44167", + "lines": 584, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_convert.rs": { + "content_hash": "1559a180fa06b8ddf219469771feadd18f677cd82cdf489331ba3f84dc282300", + "lines": 173, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_localhost2.rs": { + "content_hash": "dd03bc0e3ec79a5fd6befc95bebe05acb5cf0e136166b08ab2906f12b662f2ed", + "lines": 268, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/store_import.rs": { + "content_hash": "73923a58d4425f9f5de2e21d7f506a13c09315c8f7d9610216836829e234cb55", + "lines": 145, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/pin_tripwire.rs": { + "content_hash": "6642a1bbc18f4ff12b66e49e0e7751744ded7a5a4fdfcad6cb8aa991bb6bf3d0", + "lines": 117, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/apply_helpers.rs": { + "content_hash": "f2146aaa4e9defac6876e53922ffe7d317ccdee4285e8658a6fc5368fe1f935b", + "lines": 131, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_score.rs": { + "content_hash": "57a79d5775e1244b3f628ec77fda9295d2c9c2e92cf88ed9a030a9d79f9a1ca2", + "lines": 197, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_8.rs": { + "content_hash": "beab01b1c6f65e33a645fd11c61613674303bf57467816f1f1fe04ee1b898b50", + "lines": 704, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/mcp/types.rs": { + "content_hash": "cb8c7e82ad98e5597f9b9c97533399eaf4a0b6d108470ddf272d4ed74b10bc75", + "lines": 186, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/includes.rs": { + "content_hash": "316b75cb0f563a0b3df5e4e18fb2e5a47283f5b73544559bee00e293f58a117a", + "lines": 51, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/subcmd_args.rs": { + "content_hash": "f30161fb246f830e179318201829d0d887db3d017b98a3d18bc50ec637f33e24", + "lines": 120, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase68.rs": { + "content_hash": "c0484108b3b14c22a09b33edec63ae0643cd1fa2f18068a72f57ca7d172d8468", + "lines": 209, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_operational_ext.rs": { + "content_hash": "f8f39446b9091ae9178dc210d4b1ff97ff6721feea04ed74490ded0d23196f57", + "lines": 212, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase92.rs": { + "content_hash": "cc5bc0612ff315eaa14e960c3bbbf8c0dccd5663df72c514d0362f04fc6df330", + "lines": 310, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/resource.rs": { + "content_hash": "3bdf0233a3df72792c19239fb2e2f6adaa7797176cc84d5978f3cfd797fcaeb8", + "lines": 71, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_substitution.rs": { + "content_hash": "502b1ad43ed11914f569118f091a4569207765359dc2282fa5c95340e026d631", + "lines": 279, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase76.rs": { + "content_hash": "afcd94e8394a4f54034c13db7138510a2d3818b914bc2df917c4a0fedaafc3f2", + "lines": 290, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_structural.rs": { + "content_hash": "cb2f78d1e49b5d1500240a9ffd4cfa464e4130a810b8fc86ec989160cd044c9e", + "lines": 486, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/drift/tests_basic_b.rs": { + "content_hash": "2a5e76b7562ab9156b12f478491a85958c43330dcd8907caaaa876a76177364c", + "lines": 355, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/tests_container_c.rs": { + "content_hash": "3e362db276afe5b00807edd1bb908ab0d43ede1ac1e2380756745d1dcee91e65", + "lines": 360, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_safety.rs": { + "content_hash": "6808aa310a9f54ffe84bf5653e735a0ad600c608a907851396bf8c075d52c9cc", + "lines": 495, + "functions": 22, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/gc.rs": { + "content_hash": "4ee9aa8f03a830997847ee019c423ef14e288ce9345a260316d254cf3c1ab7b1", + "lines": 121, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_filters.rs": { + "content_hash": "2c04e083f7fa64028db31cb2d1a0c8181322a6ab0e715ec3d470d1fd986c4065", + "lines": 400, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_path.rs": { + "content_hash": "28b2dc28f29734d1a759e39bf9b5d9d838b0d0bb23a31fc9c3ec7c9080c36b46", + "lines": 95, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_misc_2.rs": { + "content_hash": "0c72d3e8511ed1c5abac170244cd9ec3a33a39c6fd14f8ce2dacc31e8ed07ac7", + "lines": 391, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/tests_scoring_b.rs": { + "content_hash": "d78bfb4b453e0484eeccc3c859cf0a4217d77e1200e70fd2b947d9f7fc5ab5f3", + "lines": 488, + "functions": 32, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/planner/tests_hash.rs": { + "content_hash": "fa0a25c1be61ccf3f6830d992e536963e5be7dedfd6fbed0980df66e659ba8df", + "lines": 503, + "functions": 26, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_9.rs": { + "content_hash": "1453de79861b5d7e0baa50ac8f399af82c2084516d79817a7db1cd1002cad9e6", + "lines": 621, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_meta.rs": { + "content_hash": "9f59758cea8e4a8dcc203505a580502736d6f22804d7b695352b0c2795cd307e", + "lines": 130, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_4.rs": { + "content_hash": "17f18eefc5dd9b6f13a4e6173a4f78c90284e9b4f98b0d95038f4ef4d0fa8717", + "lines": 521, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/recipe/validation.rs": { + "content_hash": "ffaa1f188e22ad0d1fa3d77f17273174eddae18e8e62cdeef3cc7272b34a6dce", + "lines": 36, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/sandbox.rs": { + "content_hash": "935b1ae7b717149c9f30c52e6859ac131dd16e0d25ededda34f1405405180873", + "lines": 184, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_remaining_8.rs": { + "content_hash": "c08ba05a5d14178049fc610d8bed82023ae2f09ba65b276812c6c6df1431e7da", + "lines": 486, + "functions": 45, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase69.rs": { + "content_hash": "2f2bcf585b5143f5b20d41afab3af4b82173d27fc481a5586adc2e418465110d", + "lines": 280, + "functions": 24, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_quality.rs": { + "content_hash": "2c94ea204e4a115133bc709888f1e82c24e6253e59a85578bdf7c289a74d90c9", + "lines": 272, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_audit.rs": { + "content_hash": "635bd8f48d74fd82be82f519bad6521032b68127a73aea0816941feac68f0417", + "lines": 460, + "functions": 19, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_store_ops.rs": { + "content_hash": "4304c34553bdf342cd25e89995504181bc8f0cfbb8b0ddf6aa64e290d7e248ce", + "lines": 160, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/tests_scoring.rs": { + "content_hash": "7a4fddcf8dc5af786a9dbe5148c85780476095ce1c582b13e4cf2f864d017062", + "lines": 367, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/codegen/dispatch.rs": { + "content_hash": "b0cef52bfba28729d54b320d8a05c52915033e03dbd896d1f0eaca06f6b41b5b", + "lines": 79, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_7_b.rs": { + "content_hash": "bd7f7b8ac3b3ac62a3c27a9211af78ca6cd5ced4eb5cdcbe1d807fa6f3eb28c7", + "lines": 476, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_predictive.rs": { + "content_hash": "2f34cbe8058c7aaa467db4ced6efa82498cd3c825067615f25616ee8f8f4f381", + "lines": 489, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/profile.rs": { + "content_hash": "f9e15c83686dfd5b0bff531913bd671911c4954ed06050b596785e6a84f6a110", + "lines": 117, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_dispatch.rs": { + "content_hash": "6358cf318479593cf597f419d64a74af27bac5f881755714a645d7abd9f4e972", + "lines": 466, + "functions": 29, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/plan_args.rs": { + "content_hash": "9a317401d68dba54b512ebdb9bda678819a39a4d05243b89030a37bca0f46683", + "lines": 85, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_operational_ext2.rs": { + "content_hash": "fdeba2e3ad4a85d5d5aeb8d0718440d13adc7c090c8cd91276ecb23f210bc43e", + "lines": 556, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/codegen/test_fixtures.rs": { + "content_hash": "3efa8147df7d4144bdabb3ea06f747bc99c10d77ff6f78b5e405342c5724a99d", + "lines": 331, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/blake3_hashing.rs": { + "content_hash": "ccf6727357b9f7774670eba775bfb4ef8ae608dcff6acbf70a4616e73d90f2d4", + "lines": 36, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_2.rs": { + "content_hash": "b299404221428f44c430c474ff6684c540df14375ce9b1b68d648bc864bf0dc8", + "lines": 426, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase77.rs": { + "content_hash": "69145b26c382ffe4ef2045d6d4ef57b1170bfc14a8e7916f93ed8f5018edfa22", + "lines": 291, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/conda.rs": { + "content_hash": "92a0b3d6e29c245f814f7e4b524dfab625f49ab2b6b2f4374a5fc1c445a96d55", + "lines": 307, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/fleet_reporting.rs": { + "content_hash": "0f004041c55291e5130d6b8762217ae7bc3121a309e9f8912ffed6c5ca1b4853", + "lines": 368, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_notify_4.rs": { + "content_hash": "131d6aa2f1ff7d1305bac3fc8a1ae4e0c08aa179853dd625dce26fdb85c50d12", + "lines": 504, + "functions": 36, + "max_complexity": 0, + "category": "RustSource" + }, + "tests/container_transport.rs": { + "content_hash": "5eaf35999f82182fc8ffcfa7bba3084e607fcd733f8af0ecaf9e2088926e4e9e", + "lines": 105, + "functions": 0, + "max_complexity": 0, + "category": "TestCode" + }, + "benches/core_bench.rs": { + "content_hash": "2641736063b138182417b8a848286f6f69435d00049397df49c750ecaf7b736b", + "lines": 610, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_core.rs": { + "content_hash": "6b23213ebaebf35c315cc8c8b6b36d574434ec9561e378484c287df2ad967f09", + "lines": 378, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/score.rs": { + "content_hash": "697e597617672776bac2976841e12e91e9b8b040ebbd77b776d0e82c1078754f", + "lines": 51, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase98.rs": { + "content_hash": "3ef40d8eb024410a388a63b957bcbd8b4b2de79e9bcf915cbc13ee6c14666cb7", + "lines": 251, + "functions": 33, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_misc_2b.rs": { + "content_hash": "d5b42c215c27b1e08c7756f65bb265500ba10cd24bed9da74ed294ce1cde1ba7", + "lines": 452, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_dispatch_2.rs": { + "content_hash": "1fc985791b0269cc12e0d0e2b0cfd4e157aca99b943ad9e9dd9427e475d5caab", + "lines": 483, + "functions": 30, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_transport.rs": { + "content_hash": "9be38f2f8c563b82f6df823e7f47e1000f238d7883f930e1b32f8cf3a36b9a5d", + "lines": 487, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/secret_scan.rs": { + "content_hash": "6845f4704ed66bd435c620e0dd83b5e3f8bacb65571ee33d76ec9e16d9a89e5b", + "lines": 200, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_11.rs": { + "content_hash": "0f99be1bbe1377b6ab724baf304431a900a7361d15b4b82d7d52a43a2dfea94b", + "lines": 584, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_args_4.rs": { + "content_hash": "2b82c0fb253b1f675d92841e3e329bb18b18c582fc8fdbd01eb3a72070fcf9e7", + "lines": 373, + "functions": 32, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/planner/tests_advanced.rs": { + "content_hash": "b622cf123d06945e5dcd11ece3b4c8a67d1add1b535c4d2f3cc4dd14c11b9805", + "lines": 265, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_topology_ext.rs": { + "content_hash": "5ea63a1384c82f316ef7448e73c80696167583f8a22b868509dd6cef478c5afb", + "lines": 124, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/recipe/tests_integration.rs": { + "content_hash": "76bdc5f3c0d88749442c9f0438bd278b9c9a65f76aa3ad2210ec0162b1f773ec", + "lines": 453, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/history.rs": { + "content_hash": "b71f21a1943143a0694336ed32053d28a4bea1275320430367ba14fa3e64977b", + "lines": 268, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase67.rs": { + "content_hash": "ec27a9281d427d21d74d40932e78ec67830df492548a4b4cb808f5b48abd75af", + "lines": 191, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch_apply.rs": { + "content_hash": "a18773bc1739ead60e53676aa95f738ff93001233d0d113214c56a20231e944b", + "lines": 568, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/pepita/mod.rs": { + "content_hash": "352fa33729052c5810ec9130601b9a9be2e8209fd368f98431faa67d1b9abebd", + "lines": 218, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/policy.rs": { + "content_hash": "1d649aa9ec5345b621a76ea085fba62cae11b53987b1986c7bef281d1c0a49bf", + "lines": 106, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/state/tests_basic.rs": { + "content_hash": "26773ead1c2a4f5649bafbf9fb0ae4903aa075f74a18d6023262ad0dd7c1071f", + "lines": 354, + "functions": 24, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_3.rs": { + "content_hash": "2ddf48816c11aede0141eddc648728528b6c55f6e532638c37db7a9e3ef97482", + "lines": 705, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/recipe/tests_expansion.rs": { + "content_hash": "08d5f5a86bead9b806f586ce55375a912d51dd14e8ef67cb04c5ac1bcb228d30", + "lines": 448, + "functions": 22, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_compliance.rs": { + "content_hash": "fe4dc8afed79cac5f9f1ec0a300860a17b11571a8e284bce1c599435fd73b546", + "lines": 327, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_5_b.rs": { + "content_hash": "ae7798e2a3827d2d0946147ea00340787a86e191f15d4b98237d7b4bdd74b75c", + "lines": 207, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/infra.rs": { + "content_hash": "7251b32b2e6046c6473ce1a8606134553996abc1a2419a0c1188f5a0bb622e61", + "lines": 483, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/state/tests_edge.rs": { + "content_hash": "c646c7abf8bf3248333d1de9795e41797d94b5d9398818088aa75b104691ff62", + "lines": 334, + "functions": 18, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_package_b.rs": { + "content_hash": "e00b5572eb5f2d0f5b2a128668f2e109598a73534c7df084869c90b43ba34840", + "lines": 289, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_doctor.rs": { + "content_hash": "24fbc7d8a065ff4bd1bd7380595e8cc5e5cbc9db2c0fb91e1a2a2ae8a3ae1455", + "lines": 178, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_9.rs": { + "content_hash": "9595bb38a7b853a08bef9958a0dc8652676b31974accc7cd153953e064f65ec2", + "lines": 585, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_validate_core.rs": { + "content_hash": "a5ab48338111aa7ee34630a1a0dd623d6cd650ed57cd04b4724c88abac46be67", + "lines": 507, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_20.rs": { + "content_hash": "ff9041e68cce47cc5cf528994fd0679b0d7ec933d98b9e618a6a95b35f79512f", + "lines": 591, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase86.rs": { + "content_hash": "153172f7ef3c5139c3921114f76cfc53f40a54d98910d6b36f9f6dbbd6a91413", + "lines": 160, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/codegen/mod.rs": { + "content_hash": "98e75556969ea2b3ab90bc22de30fcbfd8a303426fb88845768c65bee0a7e51a", + "lines": 15, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_lifecycle.rs": { + "content_hash": "e2aa32b5d86669dacd3372184338375a61d4a42d0359a6e206aee5bb0c1bd8f0", + "lines": 285, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase65.rs": { + "content_hash": "7becd26ed753087000d41cb0848a75dd670d9590ada04d710b194e0fde1b6d92", + "lines": 188, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_5.rs": { + "content_hash": "1ee9123ad83ec56284041bdc2e895062a51b76ef3fd764d0a72a64adbfacbbd7", + "lines": 703, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/planner/tests_lifecycle.rs": { + "content_hash": "011ee350e3430b19f9132cdf7b8a760c3e5ff254697a5d5c04abfa2d7ea2746f", + "lines": 224, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_snapshot.rs": { + "content_hash": "c2a2e43628b0107466662faec0816f1055639d40663df4b04855941969b1a437", + "lines": 176, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase106.rs": { + "content_hash": "ab55ebf79c9fc973a5a13a5bc5836d5690ad4f085c37fcf797aace755acfea91", + "lines": 207, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/tests_dispatch_b.rs": { + "content_hash": "b198ec9a4f125510c39152ba9dd89b831861c481ea5d387a987171a7d88c04c7", + "lines": 309, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_init.rs": { + "content_hash": "552cdc1d8ac19333528fbeed665afedce64d44441cbb2926f85b32aad32f032f", + "lines": 551, + "functions": 26, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase105.rs": { + "content_hash": "125e47bdfb4e5632a1352a9f73348469d2a113c4dff77b4ae71919315fd0c640", + "lines": 206, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/substitution.rs": { + "content_hash": "066e4f1a9d041be568ba6528659f4d869d71368af226e0fc99dfefcb717fc79d", + "lines": 279, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/gpu_container_transport.rs": { + "content_hash": "d23eca486eb1020410cd6f894b19be747524b4552a22ebb07ce5b5e8fe03e84a", + "lines": 220, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_validate3_b.rs": { + "content_hash": "72d2a8a790bcd923af56a5cdf391ac7b36fb20e6165bb3ef0ebf7392dcd45131", + "lines": 366, + "functions": 45, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_intelligence_ext2.rs": { + "content_hash": "f1d0f601b3f665c3dc7dc2314caf87827e1ac030ddf81de17aad5e156b307ff6", + "lines": 624, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_graph_core.rs": { + "content_hash": "cdbc15670c287d28cf372460cf34fc03c5a8680b0953cc697279d7774bb53605", + "lines": 423, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_resources.rs": { + "content_hash": "86864584590b7104eb79dfd942dadbf2edf0539ab749e174a78d2419452cd311", + "lines": 376, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/planner/tests_determine.rs": { + "content_hash": "518d489ffb309fa04912d0603043e3a493a8dd735d627d930d2dafa8e267a504", + "lines": 159, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/sandbox_run.rs": { + "content_hash": "58ce624ed70496af87745f25b27f09c3c4d9cff9638123ea2ec63299c5c4f592", + "lines": 148, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_cross.rs": { + "content_hash": "fc8522c2858d35b0f01007c86b2e33dc65f53517580b36cc757545ad72217855", + "lines": 362, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_19.rs": { + "content_hash": "7babc191553334c61ad1b42c509be4cf31542c903bcda395d58fa75e49d903cb", + "lines": 589, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/drift/tests_lifecycle.rs": { + "content_hash": "eaa542320d4c1728a3863d206050c808e1f22af47284c1d7489cbadb8c42c872", + "lines": 146, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/parse_and_plan.rs": { + "content_hash": "e02dd5813db8ce9426d3038a24a8cbd129e753de4e57630fbaa872b686c7a10b", + "lines": 95, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/tests_dispatch.rs": { + "content_hash": "f8aeeb82af4295c3640425dc973d3fe86cb45df833613c5d243f5bc976cf4cdb", + "lines": 394, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/lock_repair.rs": { + "content_hash": "5df1a01c6d3e651a03ce69af2bce43587e0caae153bdb9650250bab85e85548e", + "lines": 122, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/purity.rs": { + "content_hash": "be7d1125758a0e3432bd47eb70ebc52484130c0c556fd02d9397638aaf500790", + "lines": 113, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/lint.rs": { + "content_hash": "79fea5af0fb5cb75e072206a20820d9dc06e3fe34e3e626d9992bf84c86fb4f4", + "lines": 259, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_remaining_6.rs": { + "content_hash": "102b940279a20a22ba9708ccccc70260cbb63e747a363dd12a2d0b62c9a704c2", + "lines": 492, + "functions": 40, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/tests_resource.rs": { + "content_hash": "3ea3003b8291fdab8bfb152d49db42e4c45dab1bf916a89bf2e1650f71aff822", + "lines": 560, + "functions": 26, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_cost.rs": { + "content_hash": "7d4433d13d433d859f8ce786d2dac6d8d4b61318e2972f685f94da84327f86b9", + "lines": 258, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/pepita.rs": { + "content_hash": "ba21671a08f546817c14a58857d4dfd8e893e2b7a10f1c1d5d187beb0d0e2635", + "lines": 385, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_conda.rs": { + "content_hash": "5207a8413f19d7d566942ea05c1b24b717e9273ae0da195c95e8fc4dd68e186b", + "lines": 318, + "functions": 19, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/helpers_time.rs": { + "content_hash": "3cc6c787859c42c701962a8943fb8d48c502416c59af9add56c40b500a1b278e", + "lines": 82, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase75.rs": { + "content_hash": "bf07a1a67b718dbbfa557d46495d3bd2da898466891f5526bcd817db3e3e390d", + "lines": 292, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_4.rs": { + "content_hash": "daf747d1945c7b4cc9fdcd35cae653abb2446da79354f4d1ace15a885b27bf08", + "lines": 585, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/types/tests_config.rs": { + "content_hash": "62f198f513cd6611e7b3746054fbb8f7280ed719277043d12fa10e5729e5586f", + "lines": 447, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_trends.rs": { + "content_hash": "64ba6ab06691fb40befafabba07c1ca9f42ef1b040dd8a5fc6949d7a03bd9aef", + "lines": 412, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/container.rs": { + "content_hash": "45a546877c6bdbd441e67802d0eae4567010e93f57f048487a15c690b71c234d", + "lines": 168, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_convergence.rs": { + "content_hash": "b634cfdcc2e5968ec6f0de4b3047422ebc5496d1a13d9800add776150d37f093", + "lines": 495, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_validate3_c.rs": { + "content_hash": "9fd07efa885746790d5b0da5015a316ac1314ea36c23c6a81f5da3174a60d922", + "lines": 454, + "functions": 57, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase88.rs": { + "content_hash": "cfa8ab8cf5825d7e35be208707abdc2be25b856612f93fb9945ad1990a248240", + "lines": 313, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/destroy.rs": { + "content_hash": "99e2446766c777d132f7a0fd113bcc5f077e937b9642ae77f67b35523b02a902", + "lines": 275, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_fleet_ops_1.rs": { + "content_hash": "5db177b33104bf4e9c9a6ae3060e9aebfef6341175f3f69727b3c8c0a51acfbb", + "lines": 50, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/copia/tests.rs": { + "content_hash": "99945b226f51c6816a3dd07f49ca4740319bf41000f379e06f00bc7560602e1c", + "lines": 307, + "functions": 0, + "max_complexity": 0, + "category": "TestCode" + }, + "src/core/executor/tests_converge.rs": { + "content_hash": "c714edb89b5d6c1a1f63e42aab552d00fc1dfe4c523a43f514862c6c8f3d8320", + "lines": 339, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_gc.rs": { + "content_hash": "845a11f64740c6ad1c7a6b37bcb8768950f678b431f3ef7942dea10ea5718375", + "lines": 160, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_8_b.rs": { + "content_hash": "9d0b1701b10b92390265cf41b623c1234fafd0e600e7fedb75a70a73de503993", + "lines": 474, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_package.rs": { + "content_hash": "d4b770875ea35b767d9c9a4d14e1a6bc544930f4414f48114f6dc11c1472f532", + "lines": 281, + "functions": 22, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/user_management.rs": { + "content_hash": "778853f748c4e51e356d3964dc284e1644806b380bda3393d2d02dd0ac2137d6", + "lines": 120, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_graph_core_2.rs": { + "content_hash": "02f18590f6d10e4b1d939241a15d9bac785ac865c4dd244ab4191b5500576f93", + "lines": 1041, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase100.rs": { + "content_hash": "082e88670a307c41e4461619ea486580bab5efcf8b32a2645101677f689fb04c", + "lines": 204, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_policy.rs": { + "content_hash": "ab672e6d66b48bd9914016ecddf58ca50752c06d0c40579e5679cf4b3869576f", + "lines": 218, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase84.rs": { + "content_hash": "33863ec3fca34a46d4f8ba2b7c3949438640899e7793463ed3dd93627d48d6ef", + "lines": 289, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_security.rs": { + "content_hash": "5d1b6687847ae9c6e7a567c84429575f5119a37a59e1efd0c0a38291e62cd054", + "lines": 523, + "functions": 28, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch_notify_custom.rs": { + "content_hash": "f8037c4ca348c06dc50eb5ee323d77e9412fb370cf0c5299f5b9716b334488d8", + "lines": 427, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase80.rs": { + "content_hash": "e267ae411af084f1442b0496b55e22ff991b270d68e7642f4846bef5f10c9bb7", + "lines": 289, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/codegen_scripts.rs": { + "content_hash": "1aec4a1f7fbd71e200736351449eb48da43034e7c29c4158c6253d4ec46f47e3", + "lines": 231, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_validate.rs": { + "content_hash": "156fe9a3861bd5c1033ce9408b177b24db65749cb8560640fd3b18b532baebb9", + "lines": 311, + "functions": 42, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/chunker.rs": { + "content_hash": "27d30c5d66393e4c48bf395abe4149e2047aefbb246833baa974b1820adcb437", + "lines": 140, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/tests_helpers.rs": { + "content_hash": "64bebc379fca0c0a1369309d939cc755d17120891ca79b3a9a99971cb7fce950", + "lines": 216, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_2.rs": { + "content_hash": "7f31373720dd7f00b8b0cfc724d9c0eb4ff9cb93c8172527b3899862e2d475bc", + "lines": 707, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/init.rs": { + "content_hash": "b57d142b97eea723fc121ee587788acfd990a51e9422c82d3ee785b2fdb0d2c9", + "lines": 248, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/dag.rs": { + "content_hash": "fd7c4d014b94120319649575e44755cb7f27c8a6c3149910df5b7e766122500c", + "lines": 150, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_17.rs": { + "content_hash": "7c0212f2ea73638a6baab961322bd7d790910205185aebe8a5a5ead6808b3719", + "lines": 586, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_helpers_state.rs": { + "content_hash": "bdaf0fef198566aa4ea317fdf578d0d5676e470962159a2bfe61af922a2af1c0", + "lines": 147, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/store_reproducibility.rs": { + "content_hash": "e1fd38b2cc2ade0444e77a0a2d7310b7ca0d2554f9db3ae5ff1753bbc8ddd969", + "lines": 450, + "functions": 19, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/container_transport.rs": { + "content_hash": "03a9a741dbcb05d75a335dd97099bbcb2021d3b7badd7cec506d15202868b370", + "lines": 120, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_show_2.rs": { + "content_hash": "bd627925118bd47ac5bbbca0b90951c6fae93b5bbf1617a2ab27dd5bc6a8f0ce", + "lines": 225, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_sync_exec.rs": { + "content_hash": "d889f6a4779827c744d4bbce4f87faa6ba8daf84be8284cbfa7f032c394e8923", + "lines": 229, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_resources.rs": { + "content_hash": "c30a9bd72485e2d4669f36919b1e0498e8fc5510d523dc308b2b43fe8b21bcf1", + "lines": 260, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_1.rs": { + "content_hash": "a9585baa58750091b28e6495aebec099df26f3b35db61484f16b32f2c3cfc37e", + "lines": 395, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/repro_score.rs": { + "content_hash": "868b818e86f30358f42e560e49346e66426f57871f68a406006e9028b2fca262", + "lines": 119, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_transport.rs": { + "content_hash": "c33ab3fd3cb1a5bfe41ffd3bfdd4ac703183e6fdfa303857a21aceb497216f7a", + "lines": 276, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/lib.rs": { + "content_hash": "e0b8dc7a5e97c44562a039ac02eb9134596d8ad98973a25080203f32a92e1067", + "lines": 12, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_scoring.rs": { + "content_hash": "4da920733a2851796cfe33fc50b0ddb25b29b090de2c17d63b5da731c61a5014", + "lines": 435, + "functions": 24, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_chunker.rs": { + "content_hash": "f0cc30924b1441600d59602f94906775f5a056ade2dd6f6f4c3c5cb9f412e675", + "lines": 136, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase71.rs": { + "content_hash": "6f4a1d72e31d38a48ab0a78dd51638a39bb062d8e9cdef372efd051c655c0abe", + "lines": 279, + "functions": 24, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/print_helpers.rs": { + "content_hash": "14fab206c24dde8dff130d982296586067b476a1fe46cdb0d4210b463a7bc87e", + "lines": 241, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_validate_core_b.rs": { + "content_hash": "3df112f43b66f2612375b6abe8f737900c689d94c3982a88c75ee02930dd7b65", + "lines": 489, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_transport_3.rs": { + "content_hash": "5db5283ea634c9728bf749c2a68817a5460d41466c4128cea901d7e833dfc87e", + "lines": 496, + "functions": 29, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/diff_cmd.rs": { + "content_hash": "aeca8eb5893d02c7ec86beb7eb0c2f5708d34c497f74ae33047c5d9133ce2a24", + "lines": 378, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_paths.rs": { + "content_hash": "98f7992ab6e2fcf7abb582a9ac94899efba591d83ca50724fb4631a5302d1ddc", + "lines": 337, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/store_args.rs": { + "content_hash": "f9a357e36908ba5f226d1a4cb144b346999bfdb32779aec58cbed28cb4f73360", + "lines": 246, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/cron.rs": { + "content_hash": "484d9fd86bd6cc757e67bd4a7b8eeb0f3a8efd9f1a2550414382c8c43a9d3b3f", + "lines": 464, + "functions": 32, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/drift/tests_edge_fj132.rs": { + "content_hash": "548bc6e30bbf5689453b1ffefda21385743466c3cf7b8baeba29069d569b3d2a", + "lines": 309, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_scoring.rs": { + "content_hash": "ce25d95e9acb6c99e8078bdf1c933597d73c087d711d7f4b17b7146e6f8f28a9", + "lines": 655, + "functions": 29, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_expansion.rs": { + "content_hash": "24c9d29da75808f7c80dc6080ec73de55bf3b681788b8a4d4bbc8ef3a2cc0bde", + "lines": 493, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/types/resource.rs": { + "content_hash": "58e75f542452698f3ff375faebc9fe6e3672dca984bf84404375aa68fbca6d43", + "lines": 438, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_quality.rs": { + "content_hash": "2e47b622070cafeb2e130070cf464fd630b104d8b4a3fed3736403a7628833da", + "lines": 506, + "functions": 38, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/convert_exec.rs": { + "content_hash": "95e217ec1fb25190a3dbf55136ef9ff656e46991df733599b93fab3bdc06861b", + "lines": 180, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_security.rs": { + "content_hash": "534f8faf855d2ebe94871452b0e993c762ba38be7127c95f198d3f6e26dc8c49", + "lines": 436, + "functions": 28, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/planner/tests_when.rs": { + "content_hash": "7d781ca2803bccc31c5a5e4602b67933f9aa421dd2e9f70fa4b5c32eddf38d70", + "lines": 103, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/lockfile.rs": { + "content_hash": "be61e70b63d980a44ccc9a57da9cfc04fc6cf842cea0b3724d756dda6c304caf", + "lines": 98, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/graph_args.rs": { + "content_hash": "1ca088d8da750f957172e6d6fc1fae080a39d0f03c25448ff2136941d70aaec4", + "lines": 496, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_file_b.rs": { + "content_hash": "3bec80020c9d09db1945cb4e43c56c0a623cb27e60da53ad8bf3d31594414363", + "lines": 391, + "functions": 32, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_fleet.rs": { + "content_hash": "1c0159832f389c93c2591da2ee366acf6256f9333c0025cdc581eb4e2f525207", + "lines": 526, + "functions": 51, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/planner/tests_filter.rs": { + "content_hash": "2827ee3bfa4044aa72aee8cb2748a18cf1199839f9ecadd693ae3e599c0207b7", + "lines": 133, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_workspace.rs": { + "content_hash": "6bc034afcb07773cf8fb294368c3d8dd2396f64bfb02ae65d5d524ff35e27605", + "lines": 187, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "build.rs": { + "content_hash": "d68c4b581bc2211c97f952c4cd1aca94426b84e419e52071a421118e381f833c", + "lines": 9, + "functions": 0, + "max_complexity": 0, + "category": "BuildScript" + }, + "src/cli/validate_paths.rs": { + "content_hash": "f744e57ef946a04fa8ab74b4b2a5c04a382e2ec42a7cf6b3a78fb6467babad98", + "lines": 517, + "functions": 19, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/tests_ssh.rs": { + "content_hash": "81604c0180ad81bcfc76902e10c0f90b1737185a18af42ad22b09888aded4d63", + "lines": 358, + "functions": 37, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_maturity.rs": { + "content_hash": "efe035a279d4f04b37e591a91b8b4cf96ce24185fafeb5e967b2a0cff197074e", + "lines": 500, + "functions": 26, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_7.rs": { + "content_hash": "48e11dfaa56f1b1f15ef4370098508f3028969f1a681c328ddb6543c49fc1135", + "lines": 396, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_export.rs": { + "content_hash": "7e4f37f57e8ba466cde502437cdf0bd43eaef2868e103586294a836e10250f3d", + "lines": 517, + "functions": 24, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase61.rs": { + "content_hash": "3c0a05cbc05aeb4276e2c75cd0e8a68e0d2d41b870e7606fc4dddee23df30db1", + "lines": 195, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_bash_provability.rs": { + "content_hash": "fb5b01227d3d1ebf0c4b2b25a9585c3a3314a1dc8e3bb3917bff8ef1c7b6072a", + "lines": 137, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/drift/tests_transport.rs": { + "content_hash": "930114ee44480ef88f9e0c153202ece0072243cf38b04d49f517e598b3dd0809", + "lines": 247, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/drift/mod.rs": { + "content_hash": "b0094bbc32e0db8f94403762405412acca10817454dd12d37a299dadc01c176d", + "lines": 310, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_args_2_b.rs": { + "content_hash": "0738bf02be170c9d3e3e2d41c1a1ce191e7fa56431c68afc9459427c35b02c1f", + "lines": 161, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/drift_detection.rs": { + "content_hash": "6319b9280486dd5580425f9e93df747b1a32d95f0ff06c5bce38f9c0e4ebcd1d", + "lines": 127, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_docker_b.rs": { + "content_hash": "0a11c4be71d555814a46be0622c4e4eec35dde6828a1efcae0c19dab8c274fa8", + "lines": 395, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/codegen/tests_dispatch.rs": { + "content_hash": "5b506a1421a453948b549e4863516566fbb8877a1c38da5119dfcb97ad105c3a", + "lines": 245, + "functions": 22, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/test_fixtures.rs": { + "content_hash": "0b8fda69d8f277e11569288b038ea6261396ff44b72d25b7410150bd2fb19839", + "lines": 149, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_remaining_4.rs": { + "content_hash": "c8529446eb09eb388bd644f5dec34d0a0f65c52a4a3180b6328e168c22ea1313", + "lines": 427, + "functions": 44, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/conditions.rs": { + "content_hash": "834a0e865f4515947593fc5c5327d23504a78579aa8283aa689dfc48e864f1cf", + "lines": 321, + "functions": 26, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_intelligence.rs": { + "content_hash": "5e77edc6f71d2664eddb5d0231eea7a01170920d47241fb2246ac48edc0251fc", + "lines": 656, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase90.rs": { + "content_hash": "e9ec934562b29f5243ff4ce89b3d1c0d5ec5010fa5c8b7b0a10e330c1b86050c", + "lines": 309, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/lock_lifecycle.rs": { + "content_hash": "1a130f12406efe0f6b2b2fbd421fdd729e31df031526144625fa8fe8529848d1", + "lines": 183, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/template_resolution.rs": { + "content_hash": "fed4c713fe1143b4b6015978ba085cfddb3e62bff74fada57d4196edfe34e2b7", + "lines": 89, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_impact.rs": { + "content_hash": "00544fdc7f7188c598c92156eb38e420e1cd832ce406fcb903a977aa350e6d72", + "lines": 360, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_resource_detail.rs": { + "content_hash": "fd5b137527c1c122fe0a93aedd0df549c38cc84ecdf1d8193667b4bcf74012b1", + "lines": 466, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/test_fixtures.rs": { + "content_hash": "51f211f7c40ee50f9a04e7fbec3829c9349a737038a51803046a47e68842fe36", + "lines": 67, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_convert_exec.rs": { + "content_hash": "93221ef970d83b08af899ddb7852f60d67da9a9c797ab714137c268acf194914", + "lines": 267, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_user.rs": { + "content_hash": "948e80757627608afc462218c4f2fc974469f0914f19a5ffe516ca4ac79217d7", + "lines": 473, + "functions": 30, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_pin_tripwire.rs": { + "content_hash": "4b400e9e27207460dfae9a3686e898af1d62f7dca35656618f6438fd860fd7fd", + "lines": 215, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_purity.rs": { + "content_hash": "a41138df84992ce18b83b566c73f0b023343475e6c450a8ea31b09f956d5b6ca", + "lines": 186, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/tests_purifier_b.rs": { + "content_hash": "88ee77a349a942e64af435510638445d0cbde59a2018af5f591f72d4cb56903f", + "lines": 336, + "functions": 19, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/tests_functions.rs": { + "content_hash": "afad07b72fb485caea6cbac2f0efce2b0d3c27d9b73008fa8fb1f55345d5f58a", + "lines": 240, + "functions": 28, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_remaining_2.rs": { + "content_hash": "2e75f5536689c2c76cefac7ebbfa69de9c81e67487ad5f43b3bc21304178843d", + "lines": 379, + "functions": 50, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_contract_coverage.rs": { + "content_hash": "1486025963182ecdc9a8d555929e9d57613dc66463f139225f9f477db4753aa0", + "lines": 293, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_cache.rs": { + "content_hash": "1e4c9ebe04fbde22726ab94687dd01bb3fe069daecfa5777a1108b2f966524bc", + "lines": 252, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase66.rs": { + "content_hash": "0d4492c526b77f8aa5d53713e6a1ef457a203f56bd8742765463fea2cd702256", + "lines": 204, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_15.rs": { + "content_hash": "888dabb060c0a2d85d4e41cf85931912a317a4e27fb8626fc54c8e9ac7c447d9", + "lines": 584, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/lock_ops.rs": { + "content_hash": "3cd3c37af12704bfc3fa891cbc44f7b36fa604d41e3b72cc0ff281c6b782e362", + "lines": 443, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_core.rs": { + "content_hash": "52906653e59d2b705f0221e6d82d69271897aed0864605f1a9fca1c915db5d80", + "lines": 263, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/recipe/types.rs": { + "content_hash": "3fdb12d938b47d6eec1f737f3bec57f30ddcc53e293239feae792dd37d1b8823", + "lines": 65, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch_store.rs": { + "content_hash": "720a29fb4afcc88486a8546648f4a46044d9601fd4000bd25b3387c5938fcecf", + "lines": 115, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_governance_ext.rs": { + "content_hash": "594e07b068c78f44240d180b9da8754d0800db3c1ff3282436bdf07a126dbaf8", + "lines": 487, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_validation.rs": { + "content_hash": "5bf7f82e7efcb46043483e45cf4bb0fe7ca327446b6b8b95f73a24d98a20a383", + "lines": 492, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_3.rs": { + "content_hash": "037b95ee9ddbd52fd27e5076ec61dad745a62a96c65b190dcaed86b54f7a2164", + "lines": 443, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/drift/tests_edge_fj132_b.rs": { + "content_hash": "703679ec24f82db736126262db62b34f04517ff4e038279669c874dbaa646fb4", + "lines": 272, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/tests_hasher_b.rs": { + "content_hash": "f5b697b99c5076d1499ed56d039551e4d573da8e5140ab3199102cdc0ab119a3", + "lines": 265, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_far.rs": { + "content_hash": "24550e8b86ecf27dcd0fcb84087f98b1e20953293c06a573be3d0b28b325a7b8", + "lines": 185, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/types/tests_state.rs": { + "content_hash": "dd2a188c375b0154f75dec150a2cf75406c52e50eae968c3b467146aedef7af5", + "lines": 282, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_show_3.rs": { + "content_hash": "69c523ec10fb607ba10cfb566444444314dd0fcb96954a26dcbfd35a9f72674a", + "lines": 256, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/validation.rs": { + "content_hash": "7a567c913b4d56dad15ebc937c0c47946b485bc508da83a434fa4f3f2bd38232", + "lines": 133, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_import_cmd.rs": { + "content_hash": "ca8678572947c76d895196e76c9ae6f6acb300fcec1481e9b572e38aae0b484e", + "lines": 228, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_4.rs": { + "content_hash": "adfe0851995390d19faae73140f40d2f5b7c70a730026d0a8410ae7eb122672c", + "lines": 707, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_file.rs": { + "content_hash": "b04d499f3404375fc6c01ba7bcf748f8d33f5c515086550b602d3b7f84fe7ec1", + "lines": 308, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_infra.rs": { + "content_hash": "3b716ac33cc323623c1948692f08077c230694186832a2eaba52778daa11c773", + "lines": 306, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_validate_core_2.rs": { + "content_hash": "8da5adc831bc72bfdc709d66f2bc68dbdc13670c62b7832f11eba6e1c463ab38", + "lines": 805, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_validate2_c.rs": { + "content_hash": "4f9cdcb7db8755584f85e8c040c3451d3a69b8672a6c675b2871de7580838277", + "lines": 188, + "functions": 18, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/store_pin.rs": { + "content_hash": "225c1a08bd1f8c92618529ce4bc3214abd0c58b601a7a8c7408170d728e959b5", + "lines": 211, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase79.rs": { + "content_hash": "583375143149ffeb8915a78e7db0cd28738fd9c1fc5769cb620471a90a7c6dcc", + "lines": 289, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/recipe/validation_types.rs": { + "content_hash": "f68276853e785ea6476c231e7aa420e9b9b4d6af0232dc4cf841ac3bb6849b0c", + "lines": 93, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_status_5.rs": { + "content_hash": "e46802b6e6abde362a1f34bfe75deebde6f8320ba58c70c7a279f28bce983f41", + "lines": 361, + "functions": 59, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_remaining_5.rs": { + "content_hash": "67ff6948936e96d24450ec9fd9a80dcba42f9949406834c38922b4ae89286d88", + "lines": 475, + "functions": 37, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase60.rs": { + "content_hash": "0a27a50ad0d44f4d395d055f56642af8b09be805308194ae89d2b76f03ee51c5", + "lines": 133, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_6_b.rs": { + "content_hash": "0ce4c32dfe507762fdacc944cf99a5522bb5f7cd8d80f37128307c3f6f95b46d", + "lines": 207, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_store_archive.rs": { + "content_hash": "bcf1bb0fc5105667e853fbbdf8b7718b9d8dc3f5fcdbbaf525c3a9788bcf7526", + "lines": 143, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_status_4_b.rs": { + "content_hash": "3032f88e69bbee38dc979ff676b6ae8c58e0e085b551bfeafa4b3dec3fdfe768", + "lines": 335, + "functions": 42, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_arch.rs": { + "content_hash": "940ec9891e074aa9fd5d4805cacba1d4c7b0d269c952d37ebfc9aba403f3f26b", + "lines": 152, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_6.rs": { + "content_hash": "22c4fa186d85c509e018a731fd3ccdea1d2ae83cd9152786fbda97376fd55c68", + "lines": 401, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/import_cmd.rs": { + "content_hash": "1aac0167c0c8c6a909b5725d36bb3fd5d92a67f1301fa69897be6117fe507246", + "lines": 295, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/provider.rs": { + "content_hash": "1e14c29a40c634ac83ecfcc1597d908c02069bbd22a23c97d65cf3489226d1cf", + "lines": 206, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/purifier.rs": { + "content_hash": "baa6efd98650a7215e3625953387dee9e5dd2124122d2bdcdc5000da2200c967", + "lines": 91, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/types/mod.rs": { + "content_hash": "03c03d2a2752ede3f9a5d3d56726cc3e448f874db26732c23f6c26f859565256", + "lines": 30, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_weight.rs": { + "content_hash": "67e5cd261fd46b776e6f950d280ec214968c66ceb74a0a906f03327791b9af44", + "lines": 410, + "functions": 28, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_14.rs": { + "content_hash": "50450e6aaa6a7fff6ee109442e4ba0fc71a35ae53f7ea8f0e477cf32234fd1ce", + "lines": 584, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/machine.rs": { + "content_hash": "1016a4470cfb85dfcd868df21fe8086a3b18c842765eab1d22f967aff8f525b2", + "lines": 533, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_hf_config.rs": { + "content_hash": "eb2abc98fdf184aea958e4c5868c7a0f967a227367465aaedd4ad7e992bdb546", + "lines": 373, + "functions": 24, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase85.rs": { + "content_hash": "28b08303ce8370db560ecc840ad1351df4368065f506565bbcc28d4ad917ce58", + "lines": 175, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_advanced.rs": { + "content_hash": "aa590017de84e89d21e22efdecf1d440d2b7ac635bb710769779c6b2955e21d6", + "lines": 551, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/tracer.rs": { + "content_hash": "7ee607dfc9017211051711fad0510f80f7dea80cdb65a7f03528ed64ef39f3cc", + "lines": 488, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/model.rs": { + "content_hash": "b07c57535ce7c047b85d0091cc592536c1bc4ee97e4912f8da242ae71f8514be", + "lines": 329, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/scoring.rs": { + "content_hash": "8171a5ffd79df712ac72d34b151c957979eecbebfad376bdc03a7e311b63859f", + "lines": 619, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_provider.rs": { + "content_hash": "223070fc681c59757242061bce3987209d1f621c4ba1cfe92d0dd9d5a318de0e", + "lines": 263, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/types/state_types.rs": { + "content_hash": "77c870181340cd507179ef384395887fc0b16b2c9cd5c1ebbbfe920576174ba8", + "lines": 298, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_helpers.rs": { + "content_hash": "ac376d55982d7b65a4276da58b6e9d09bf96add09cfa19c92116b5dde0b8548a", + "lines": 246, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_gc_exec.rs": { + "content_hash": "e1fccbbf7f3ada96e33a6782f9c8a65e637f128ec07f668a829743c66fe15bd9", + "lines": 252, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/derivation_exec.rs": { + "content_hash": "c4db2a22e9bd8f74b45f19e88050cbadff336e8b002b8a75d0ebdf8686f0ee0e", + "lines": 352, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/gpu.rs": { + "content_hash": "d0ee4e02e497703403c3dfba64280886e5b4d0ee77164f2c1e7bce15b23293c6", + "lines": 196, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/snapshot.rs": { + "content_hash": "83af1a99813a12ae3c8668c3a8a38bdfd54e5efabdd337cce73502b3aaf41950", + "lines": 168, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_validate3_d.rs": { + "content_hash": "cf497a238c35b728a1c06baf2cd495c83321eb609903fb1a2af4f6ea5f7e9955", + "lines": 410, + "functions": 51, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/trace_provenance.rs": { + "content_hash": "9f8a415a0f1e0c25293ebf2aab2a39d1bf6d9b838e101315eb5dec82348c22d4", + "lines": 119, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/conda_to_far.rs": { + "content_hash": "7734affa568d41f480d8e38788fe151adef95b1a827dce5b24e559ba866fb11a", + "lines": 110, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_notify_3.rs": { + "content_hash": "216bccf19aab69f190b04af25c296385f62577edc54028435be95a11066c2be7", + "lines": 474, + "functions": 51, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_show.rs": { + "content_hash": "c359a181ae6f3ef222eef0553c6d2c97aeb833b8c5cbfcac40da7f46bc9d269f", + "lines": 248, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_quality.rs": { + "content_hash": "28bbc55f377fe73d85db97f42ae7d594ba94ebd2885c2dfe60b640ae93f65fc9", + "lines": 685, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_policy.rs": { + "content_hash": "61be353f6ee2e40b9e535c856ebe1c0de628f50f5c1a4b1750834c72b7b9c874", + "lines": 258, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/mcp/handlers.rs": { + "content_hash": "b3f3ba304fa11f48ee3077275ac09caa416279ee0ce7f5a6cab754f428ee4979", + "lines": 491, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_maturity.rs": { + "content_hash": "86d8871f6417999c5d028f68e3c8eb1a8b837c03d655b8fe91fe5775c4d60b8d", + "lines": 857, + "functions": 37, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_topology.rs": { + "content_hash": "58dbadcd16996501b6d30be61417f9754f426a86fb2ebe6467302c081a8a0bd7", + "lines": 525, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase63.rs": { + "content_hash": "93d3e0b887e81b6e5c2c73b7f8d09f26bc109f8523e25b3a1bc1e0a6a3bafcdc", + "lines": 193, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_core.rs": { + "content_hash": "4d729bb1416b25dbda925c1936253ee3ba2b4f861f3b82d7200ac656a67a1516", + "lines": 223, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_docker.rs": { + "content_hash": "d9dfa934ac8c8bfff1a3761cf5e0b4520fab47fe3f2996b2b10911788bd874fc", + "lines": 285, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/mcp/tests_handlers_more.rs": { + "content_hash": "9f521869e1bf0d3061b2311c7fefcdf4f2d9275188bd5604713e252dcd891ad2", + "lines": 349, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/fleet_ops.rs": { + "content_hash": "4018fc6ea23d2e1faec50b593ceadb32beaefc69a1bf76ef39e3c0c0bad3dbf7", + "lines": 422, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/tests_container_b.rs": { + "content_hash": "3e362db276afe5b00807edd1bb908ab0d43ede1ac1e2380756745d1dcee91e65", + "lines": 360, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_plan_file.rs": { + "content_hash": "18479a77ddfbe1a29914e563331d745113f8800080a19879f28728c00978d59b", + "lines": 224, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/ssh.rs": { + "content_hash": "e7bb315129a19f0cde6b1f62f0dbb48ec900f31d719affa4474ad1812dffe4a3", + "lines": 202, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_10.rs": { + "content_hash": "66d3de64c23cdbdba6cb3d9bdee6971b446e737c2f431691ec0af0c8a62fe023", + "lines": 252, + "functions": 30, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_concurrent.rs": { + "content_hash": "d06fa49b373312851955fe8ac459c25ea1a833b9c29adfbc9fdb160e11bd5be0", + "lines": 356, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_sandbox_exec.rs": { + "content_hash": "8fdfb88e74621caec25f8073fcf3fdbd10edd452448f4b6b265c55ea9b466ffa", + "lines": 248, + "functions": 18, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_resilience_ext.rs": { + "content_hash": "6843520429a2c1c6194e7e26338714bcd0fdb8fc6d348e0eac2a062f07efe26c", + "lines": 352, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/state_args.rs": { + "content_hash": "6cc54d6c4a4cff4af87c3b3abe9772c5ce5be1e2ea9647f5c6f8f72350097dcc", + "lines": 53, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc.rs": { + "content_hash": "f02bd71207dcab0fe85ea7441c1fd9b931aebae6e582ccdca5124707c38b35d4", + "lines": 436, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_validate.rs": { + "content_hash": "7b9db1114d00359a0bc997e5562cfbdc1c2b59b1e95fb423eaae4f35571af7e0", + "lines": 168, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/closure.rs": { + "content_hash": "5fec3b8c5ad2d7118ba1f7757bcbd756b0d424d574d7ca997de51c42ec3e660d", + "lines": 65, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_5_b.rs": { + "content_hash": "f53c35dfbba541b5314c96e465bf4d70f91cfb37dfdb542490648323d960f409", + "lines": 474, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_visualization.rs": { + "content_hash": "2226cd8758d6b12cffe2ccafda43f34104bfe7939d93bcfec710cd07bcc216a3", + "lines": 313, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_extended.rs": { + "content_hash": "b69d7bb4dd1eb9319b0732c2cbae1df057d49234c1eae9cd7423e6c187ee0cea", + "lines": 379, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_service.rs": { + "content_hash": "650c36e857b38efd8b572e3a91b19bed1bf5328d7af68080a5f4f4fb73ef3d38", + "lines": 421, + "functions": 30, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_intelligence_ext.rs": { + "content_hash": "66d86de02b1b24a4732538620580336edb5c501d9a299fdfbe0b122c0e12643e", + "lines": 801, + "functions": 29, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/planner/tests_describe.rs": { + "content_hash": "92b1a9b0f314c99d48ca801380eea19c8d8a97952ee947a29e25e649e48a7c73", + "lines": 77, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/mcp/mod.rs": { + "content_hash": "3201dad7d2470e767c9e463c855586d805719b6af472a51bf914d540e6d92687", + "lines": 21, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase59.rs": { + "content_hash": "d716283070c6018f6228d6aaebe527ce49d4ab8d1f29046af162ad23fccfeca8", + "lines": 120, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_status_7.rs": { + "content_hash": "d3f9cf0e6a16168528c207b05a4896c2a337e3e63097caa895344ea66e8da5e2", + "lines": 380, + "functions": 58, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_gpu.rs": { + "content_hash": "3fef1a4a3c63a750a6410c318f593afe6d2de68169f76c456480671f5ace8852", + "lines": 447, + "functions": 29, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase72.rs": { + "content_hash": "0139d14fca9a40bb4118f91d4fc4ccd9c6a14577494a34ec92f84185ad97add1", + "lines": 279, + "functions": 24, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/misc_args.rs": { + "content_hash": "523094e0263ddeb5241d7d804636081e17fc86d0dd6ebd6fd63222fe7036dc50", + "lines": 349, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_drift.rs": { + "content_hash": "057857ab9c58a347b6da69e3895f2cb9d7c3f93561fdd29858e7fcb4a41b4234", + "lines": 541, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase83.rs": { + "content_hash": "9234ec3986faf13c9d6bd8fe87076bb84caab479f5be32081d2b50e7d74b963d", + "lines": 289, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_3.rs": { + "content_hash": "fa92eb256aacdaa41fd7b5968e61bc3caa011efba331b28f112fa5425904451a", + "lines": 475, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_diff_cmd.rs": { + "content_hash": "e57e4cd9dc1058e813d4dc380a24eab862caa0758b90fcad6d828ce195ee13e5", + "lines": 497, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/contract_scaffold.rs": { + "content_hash": "50996afc43ee2745591ce7b4ff9a3fb25ea0912354f21bed5a0802871357da84", + "lines": 80, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/machine_wave.rs": { + "content_hash": "64b36b0379cd03bbed53ef07d45f7c1dcd8681a58ff7a8fdac5b08fc40bf029a", + "lines": 210, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/template.rs": { + "content_hash": "bb4feaae6011fc97fa6a3444be4ca14a2b32d30bc1da14700669e3066c2d35c7", + "lines": 105, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/mod.rs": { + "content_hash": "c36359c0bbbcead0cc16fb65703c8bfba1fa0dee5dc8dfe9e314454d5eece642", + "lines": 27, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_edge_details.rs": { + "content_hash": "e4b0c31d73409f22aa1213b0376f5e9a02980a317e4ba6670c925afd5f9a51ef", + "lines": 403, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch_notify.rs": { + "content_hash": "11d85393b6340e2410ee2de725015ca7e5779a45570d973fcf24b9a3a18e4fe4", + "lines": 728, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_print_helpers.rs": { + "content_hash": "8ea861672f99ebb214bf16a2f5235442ae438721d22c06efd88d6b4cff1f8c07", + "lines": 183, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/drift.rs": { + "content_hash": "6ff6e37736702b9237f75821c99fe3d39fdb3d9996f61a8dfc750ff94c93320f", + "lines": 331, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_store_import.rs": { + "content_hash": "102b2669a47ca0cb3b214d03010604a50de4d039e80eb4e94b4ba2b92824c7a7", + "lines": 111, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/tests_eventlog.rs": { + "content_hash": "6416f4576acad278ca832883c2cfa1e4330e8f987f1c757a990c8837a0af6c30", + "lines": 263, + "functions": 18, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_dispatch_4.rs": { + "content_hash": "cd7a680a2c785cf0ad6c703f6073369b70160109b5abdbfec4e54cc094312e04", + "lines": 500, + "functions": 18, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/recipe_expansion.rs": { + "content_hash": "86024e836a99cac3432954bd6bb22bf8c5bbeea7ea22e90457ef213ff07ad7dd", + "lines": 118, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_args_extra_b.rs": { + "content_hash": "99a22cd37a5d03d14d7d61e1da4c41677c3c46a45480c43267aa657134d74bdd", + "lines": 420, + "functions": 41, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_history.rs": { + "content_hash": "fbeabf5f857e37748c156384889a1b7ff8e67b4b9ef626077d8e82ffad8bb45d", + "lines": 230, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/hasher.rs": { + "content_hash": "4a099da8167b27b580663b6be81f6964b35d00c5083a52c4396481338077d97e", + "lines": 93, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/mcp/tests_handlers.rs": { + "content_hash": "728f0143b27784c3eb680457f9664a4154a1af6a6662bc44e0abb06f699970b4", + "lines": 228, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_graph3_c.rs": { + "content_hash": "d4d7d08d99de4e8d2d5c7c80c481d2077dbbaee1a84d7cb7a4fb1a8ceb9eed44", + "lines": 267, + "functions": 35, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply.rs": { + "content_hash": "4f1d614e3fb5124e194b4f2c9defe98b4a1f0c9a23d2e088c21dbc919b51c539", + "lines": 416, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_config_quality.rs": { + "content_hash": "f0bb4d6639b69789a74c6fa91155b34ca6600257ca7136f2623ae7e9ab049227", + "lines": 494, + "functions": 26, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase78.rs": { + "content_hash": "51ce6b926ea80c7e21546cef0a5f422ca8135e8087f355155495a039d77cf285", + "lines": 289, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/drift/tests_edge_fj131.rs": { + "content_hash": "c55d3a18a1cadaf071128745394e2cf59de8a5c9806452e07766c38d12490ae6", + "lines": 313, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/sync_exec.rs": { + "content_hash": "00868ef2b5b95b8b2bc37423781dbc15af79f86a12ac2a9acfe4136e50f027a0", + "lines": 189, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/helpers_state.rs": { + "content_hash": "b97c0209fda99a616045bc2553747a1eaf61a365df9d4436d5fd52119094f234", + "lines": 114, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase104.rs": { + "content_hash": "d0db279defc746e4a47f639ad9b51c180869322b81923f9e6111134c8bbf5bd9", + "lines": 213, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_validate3.rs": { + "content_hash": "2cc0d2323726ddf8a93ae63a7590f55ecb15466f0c9176dee6188c589f5d84ab", + "lines": 410, + "functions": 51, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_dispatch_3.rs": { + "content_hash": "100af1705a0d16182fe5a8969d0ca78019e0a877b49569b55e27cc654b33b0c9", + "lines": 501, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/user.rs": { + "content_hash": "94af7591c2ddfc0d695c7055344f255a15e8e7c11e805c5222f6ae6df8b4524f", + "lines": 141, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/drift/tests_fj036.rs": { + "content_hash": "ce89d4858eb542c3e505c8bd744c9ceb7d43ff802fbdf172f084bd088b239aa5", + "lines": 236, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_waves.rs": { + "content_hash": "982bf7d6f02720c27869d8e00dfd8eb3868b492a65bac78750eedbaf380ddbbd", + "lines": 459, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_includes.rs": { + "content_hash": "d112a8cd39fd0b4f6fc2fab1fe30ba65277f6a6bc48787c2560431abdbddcb7c", + "lines": 432, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_closure.rs": { + "content_hash": "53a8fccc979fbf0bc31d2ed0b0fe0b777a91638869dab844daf3c383240db9bf", + "lines": 183, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_notify.rs": { + "content_hash": "c413f83c75c094afe92882c50880cdd8db88af26daeea15890fa9614723e78fb", + "lines": 789, + "functions": 45, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_2_b.rs": { + "content_hash": "a1eaeaa40f75ae55def5722999b1227c8521a27c8218d074cbfd6b5e6c3df93a", + "lines": 476, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/mod.rs": { + "content_hash": "4b7378d6af1834063b09a80e02fd37bbea24ca7aaa934cbd5b0decd9022dcb83", + "lines": 18, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_localhost.rs": { + "content_hash": "954988f33b820310b58963906a52d14efb39fa171ccdce0d5d845e96526d30ca", + "lines": 334, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/secrets.rs": { + "content_hash": "f04e8e8de8dbf25c709ab07f8a237dff5fd923b92956dfcff6f3f44e315a9875", + "lines": 154, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/mod.rs": { + "content_hash": "d6f20aeacf53c77365727163bc1ba6263497103933a855622e5465ded5bd8891", + "lines": 42, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/tests_template.rs": { + "content_hash": "6dc64dac971eaba5ad71d818a09ef20d43bd1a8784af2c8054cdd59506722691", + "lines": 423, + "functions": 30, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_intelligence.rs": { + "content_hash": "7d8eeb261c0ea722ff0134954f29b9742ef87ae24b9bf2ea78290081e5d3aa25", + "lines": 591, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_6.rs": { + "content_hash": "5ad945ac1b08da3090f272806b36e6632baebf13aee0dd6a4de1adceb03395b8", + "lines": 582, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/far.rs": { + "content_hash": "705a31a330e322bc78bba74d76cabb4e90d8cecaf72d126745a70886d0a0edf8", + "lines": 196, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_check_2.rs": { + "content_hash": "90f36300ab8d3ac244bea609b6f03f08247aea096fc30cbf25fb45a8cf6cb6f6", + "lines": 411, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/observe.rs": { + "content_hash": "b9dcc21216e088cebd16c810444f8fd4534ee871fb5097886a30e14f62b83e71", + "lines": 363, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/docker.rs": { + "content_hash": "304c938d197087b019e5ef65b74eca68511002b2e9b60a544344c659ca1dbdc6", + "lines": 88, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/mod.rs": { + "content_hash": "a7103646daa0f2f7c25ce72ec7a06f770c5aadda9b6481f7b58fdf92680da303", + "lines": 131, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_analytics.rs": { + "content_hash": "9e5ee6bf3a334977ca44c02b677f0e56b00a40d97af4c99ffe41ae12d7fab99f", + "lines": 486, + "functions": 28, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/apply.rs": { + "content_hash": "05543a44c4da020489c7a65b8e5ae2e594d3e4036c738ec0a8ee8f3525426352", + "lines": 289, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_destroy_1.rs": { + "content_hash": "3c0d589f84c8a17e42522d5b8be25e711f6344fedb9b7ce31ada530b64ef7f2d", + "lines": 257, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_observability.rs": { + "content_hash": "db0c4b24e95f1e78eb9041308e5bef150b1f4af47d4c9c70afc019edafccdb8c", + "lines": 419, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_7.rs": { + "content_hash": "513e60f3c6deaf043d81e9d38464483ce7cc79d4fb2cf2e6c4b5b26287aead7a", + "lines": 585, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/tests_waves.rs": { + "content_hash": "43c4ea3a7fe427029c0a4eff6b84179b4553297a31a7663010151f43ba226022", + "lines": 144, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_lock_core_1.rs": { + "content_hash": "5a2e2f81c6637643d2c491fdaab1073189f2c26c0ac05cd6e0a267b169a86ad7", + "lines": 457, + "functions": 39, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_transport.rs": { + "content_hash": "1c444c1c80a71de6090374a70fbfae8059293bda45902f8ceda4ba8c6a93f47c", + "lines": 212, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase96.rs": { + "content_hash": "2ca70a55830fa12021b91459cfd36a7fd2f6f70197ead4d6f109dd06abd98902", + "lines": 224, + "functions": 29, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/local.rs": { + "content_hash": "42df3372977903d61a060ee4949826793a11e046b38b022b59743c864b4d4f9a", + "lines": 149, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core.rs": { + "content_hash": "ec2276a149ff2bab435d03b68e2b4cb0e0bf9500014607f887488c339097d43a", + "lines": 359, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_secret_scan.rs": { + "content_hash": "cc073b7a66b7a45c5db160d8c6f5cb20f0b9031ec777e36916d178bcde9eaf0f", + "lines": 263, + "functions": 27, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/recipe/mod.rs": { + "content_hash": "a40beb6014ade2c9c0a635661efaac91105151fa0efc8d077475cff6f6efc4b8", + "lines": 23, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/task.rs": { + "content_hash": "cac6107376b85edd8b7c7a1fc9cbe8772a7508d549a74b183420601ddc15ef37", + "lines": 165, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_intelligence_ext2.rs": { + "content_hash": "ddaa73730c7560e3746b74fc84b6d38345ca14c7d20823cd31db285ba95a7500", + "lines": 643, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/state/mod.rs": { + "content_hash": "e0762e985be68ee38bcbfb5f03e876243ebd68d9184bddca38da517221441a81", + "lines": 335, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_analysis.rs": { + "content_hash": "091ac709f81cbf81016d5afc8919f47ef129402f50c9cd93d069b70a4ffd24ee", + "lines": 315, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_3_b.rs": { + "content_hash": "7f879d507e8f70be38da61e42293acf03bf3025c2efb27a5b2069ac3487c504e", + "lines": 475, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_misc2_b.rs": { + "content_hash": "f18f96451cb4e19cefa0a985dceb3afa1871798d2e3be85141e1685234c17263", + "lines": 298, + "functions": 27, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_mount.rs": { + "content_hash": "5f3ff36a90ea280516cdd7bed4f53353133d7c2d88d79f6eefd3e3fdda931d07", + "lines": 258, + "functions": 19, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/score_cookbook.rs": { + "content_hash": "67ff3d234d87993e17cf72b00da5d0b9c2c3237f7f09ff2a656c19a60459af18", + "lines": 104, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase91.rs": { + "content_hash": "fe1cf071401d8d2bdbb1229b8bc4dda46fc56537d1cb101079980bfc36a4b4fe", + "lines": 309, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/shell_purifier.rs": { + "content_hash": "f94c295e75a0ac051d88da44468ba898864eb937bfd8edc2409f61e7d0081fc0", + "lines": 125, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/file.rs": { + "content_hash": "a1facfe1a21635b0eadcf7b24ee4d0bcedb30312b957a665cf5c87ab03c3ea8b", + "lines": 127, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/tests_hasher.rs": { + "content_hash": "d631ad2b887ce07688a8a0e87a5aff2d55bddd83d2217fb5b8203aac76552631", + "lines": 276, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_health.rs": { + "content_hash": "0f9113539d8a95272807eab2218080651daf1ddf3b8cce14a28b3d2a4daeaa4e", + "lines": 480, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/path.rs": { + "content_hash": "e29f0f409a8c4e2af98e7e4a0af071d9b72d16b0cb7c93187f14a57956f5db66", + "lines": 33, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/eventlog.rs": { + "content_hash": "66aa015f1b02ccd27b6e8e9b78b013e6cd3c873ebe2ac8087030588a90185897", + "lines": 105, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/pepita/tests.rs": { + "content_hash": "a91a0df7f18b27ee5d840ace7036d0e7b75870bcd26749fc7078087f5aaca17f", + "lines": 365, + "functions": 0, + "max_complexity": 0, + "category": "TestCode" + }, + "src/cli/tests_misc_7_b.rs": { + "content_hash": "c3a4d11488b362056db0044cb00a679d032a6055d5b07e23560563ead2f5bec0", + "lines": 204, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/hf_config.rs": { + "content_hash": "69473bae90f1e31f7888afc480eceba0ce62a3188f44f2727bde0830c0767bab", + "lines": 293, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_10.rs": { + "content_hash": "41a6a087a804c30a8cef520b38a978dbc8e73705209cfc23cb9cee7bb37d630c", + "lines": 660, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_hygiene.rs": { + "content_hash": "96676f26059702286ab9a5351f1c895c82a76c22dc3aee5661d13b9308f80174", + "lines": 497, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_counts.rs": { + "content_hash": "03cf2179bffbb3dd1c257375fab494bc5d968154375c543492c255fcd99b0f76", + "lines": 97, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_21.rs": { + "content_hash": "d73aa2e0be9902490354a498842a6e26f671c12bed8542dac30f82c03ea056cb", + "lines": 591, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_check.rs": { + "content_hash": "8feb321d977d51fbfcbef8a625c807ddb8fd7c32c56c45bb712ab39423578c64", + "lines": 461, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_compliance_ext.rs": { + "content_hash": "52a51378bc98cdc284777bcdcf3966d365b46e33ec9efe10dd2881a3529cca75", + "lines": 430, + "functions": 26, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/meta.rs": { + "content_hash": "ee76198a36d480e2f1147085306b65a8f851e26665bb42fe1f443aaa38095326", + "lines": 125, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_graph_core_4.rs": { + "content_hash": "d32b0a6227cd5c5b044c1af69d88b0f1c82c74a32e2a87ffa5304291f1e9512f", + "lines": 92, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/state_management.rs": { + "content_hash": "f59be77c50f3a54522dee4c421f271bba4e36033ec2c0013173368733f33d7a6", + "lines": 125, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_5.rs": { + "content_hash": "bb5a8f1e67984283ab1d11ed7eaa56c715f6b8f760bcc0efc73792349be31b8a", + "lines": 585, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/apply_args.rs": { + "content_hash": "d8a4ea7b767a9afa7d1ef57e7de87dd0a3d3e9247f7822262c6e2084026c0e7a", + "lines": 680, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_18.rs": { + "content_hash": "5cc232e1bbdfa286c5f61b9dcf404152c154bf83e9c19bc49543fbb7df7a75f4", + "lines": 585, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_graph2.rs": { + "content_hash": "dc3b9470ab3298589ff28ee972bfde94c64a3a4f54cfd2f5d3fa54dc7a6f8f03", + "lines": 378, + "functions": 53, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_10.rs": { + "content_hash": "e7a843ea9f0d533ffb309415b24a45c3132dcf8e4b48d21e4850628571201583", + "lines": 583, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_validate2.rs": { + "content_hash": "de5ed195297c91cbf1e4853a368f389e6d9471e6e9fae63e7f4820f5dbbaff77", + "lines": 396, + "functions": 30, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/types/tests_resource.rs": { + "content_hash": "c51b45db69f9f9d83857727f88999433664a2ce42bba11070ccea4235c79fd7f", + "lines": 298, + "functions": 29, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_misc_4.rs": { + "content_hash": "a60982c4decfc1da5d2ed6e906ab84833f3c067340e77250c8498f93b290409a", + "lines": 282, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_6.rs": { + "content_hash": "d66062ef8be94fefd1417d960a820e1f1adf09e2cb1410ada5d04a465cf66300", + "lines": 705, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_compliance.rs": { + "content_hash": "189ea51340b3381cae608da38eeac89e569cc1f7f918b75cfb66d82a9dff6499", + "lines": 208, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_resilience.rs": { + "content_hash": "dcea006a4ac80083d38f24c48919388010b334fd0287642546d62f75efb34c93", + "lines": 268, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_status_4_c.rs": { + "content_hash": "3cb668f82e29559aeee7bf75908f8190621ef88a0bcbf38ab26222f450152862", + "lines": 476, + "functions": 56, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/store_ops.rs": { + "content_hash": "05061ff9a5ea8c8518a15918e79c25604f2cb8da0002b7bff0641ce1f67d0f1b", + "lines": 244, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_apply_b.rs": { + "content_hash": "eaf6a58fdb7433433dc3f4414708a46af1b614fd5e7566fbd5aa37aa2169f917", + "lines": 361, + "functions": 26, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_misc.rs": { + "content_hash": "5b2ad6d320371f06b95d99256f679fc0820a723116b8bd52fed4a90751bb7498", + "lines": 463, + "functions": 19, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_drift_intel.rs": { + "content_hash": "a1e382537802f1d90981b5a9d78b08857ec2e3f418dd56826c87e5fec3424b36", + "lines": 393, + "functions": 22, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase87.rs": { + "content_hash": "1e84fc118324487ca1d725601d4484cb4ffd00a7ae1757a99e8f754fee9da4ac", + "lines": 301, + "functions": 24, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/data.rs": { + "content_hash": "e38af36163c68498a96ab1edbb077a08efcad8e2a2e86cea14eba74590b70dbb", + "lines": 139, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_resilience.rs": { + "content_hash": "c6fe3613bcb0c1d81ea3370da4237e88a3e0ecb46066f5c9de84aefde1a8acd6", + "lines": 252, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_analytics.rs": { + "content_hash": "8190e30cea38bb3474e443956876f16a86b1b6670f8b7adf1ace5e5745f99b05", + "lines": 450, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/main.rs": { + "content_hash": "031362bf1ad257336bf8080cd66c53ebbdb5641dba93aef10f20443af6541acb", + "lines": 33, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/state/tests_encrypt.rs": { + "content_hash": "07bccfcf40e2b5ad38e718da89204a331512f0c74e8c13dce22e6864e30bc5ac", + "lines": 61, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/check_test.rs": { + "content_hash": "7ad5988d22f832718573ae82a76be7f2b607c9ec3e1cb2cc6d18c0b7da596da6", + "lines": 254, + "functions": 0, + "max_complexity": 0, + "category": "TestCode" + }, + "src/core/codegen/tests_coverage.rs": { + "content_hash": "34d3b6fcc4fea7cb616e7538af6d6b508f6ce6933d7a900b3cb70b717d473c61", + "lines": 269, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/workspace.rs": { + "content_hash": "d8b9e8bfa055def6a3546c6467ca5c956337bd0df23c6a27449ce14553cc410d", + "lines": 159, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_converge2.rs": { + "content_hash": "7687b3a9b2fadbb90b1b12c193058eb20f332f8b79000265df647d579eb41d30", + "lines": 325, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/functions.rs": { + "content_hash": "31f6358703727288eb835d958f8c712ce3b97f031239d2569e58f9e9aee33c8a", + "lines": 165, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/cache.rs": { + "content_hash": "b0a9420e9c7cad743ca5ee26f5b366e3f64a3599499f83e5dc8d7f526c2570ed", + "lines": 175, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_2.rs": { + "content_hash": "51da364a4e98525cd2a85ea0e759b0faaadfb012bcadb4a4c2518dc10a0aae53", + "lines": 515, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "tests/gpu_container_transport.rs": { + "content_hash": "e3d8b4c7070eb3503b55daa7f013bba02d0a22096beb13eb7002df5d41404b62", + "lines": 226, + "functions": 0, + "max_complexity": 0, + "category": "TestCode" + }, + "examples/store_executors.rs": { + "content_hash": "d6911852f2850e6b65bf84434172400be03adf5be7d3dc8a870cb7dba6caef28", + "lines": 385, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/lock_merge.rs": { + "content_hash": "b4b7097556494d0affa4ecd89af8c3030b55570d213b020fa71d89b534392c9e", + "lines": 210, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_repro_score.rs": { + "content_hash": "eb5c877d15c0d4f003c3474c7eaf429919bd55df6a4fd3805415817953193540", + "lines": 183, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/mod.rs": { + "content_hash": "8d9bb67095febd89ec5e0a9a6e0f1bc97a1454c28d674f36dc5357cdc8f8eeae", + "lines": 240, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_edge_apply.rs": { + "content_hash": "eed737476c55bb2a27aa55e9ab9172157c484deb7a587f0755efd51c74e71c44", + "lines": 465, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_triggers.rs": { + "content_hash": "43a2d5e86ff679568c74904081e8bb08984e92df2ad7426961767c3999e3bb68", + "lines": 106, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_advanced.rs": { + "content_hash": "67ed06aaadd80dfd88bebac0074a53446643ab1885cb62fdc3a31b750fb9dbaa", + "lines": 372, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/provider_exec.rs": { + "content_hash": "22bd322b3e15973153ef36478aaa44d5e01f8b09f40617154bae97860dd3f400", + "lines": 244, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/reference.rs": { + "content_hash": "c2e29b14ebf4b4fa1e516a86b4a0b8dd7913e73d566f27d15a9fc571f9b3ecc9", + "lines": 80, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_remaining.rs": { + "content_hash": "b3ddd352bd2e84334ae283aad442cc30f6509aea1a6951c618413b5bc39a37a9", + "lines": 412, + "functions": 36, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_ordering_ext.rs": { + "content_hash": "59e95baf8c83c9aa4e209c27a5513debdfb64a4e08693d245d77735b0bfc9100", + "lines": 270, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_graph_core_5.rs": { + "content_hash": "ae3424a2cefb17bb1f2ad298a20b261cbd415c077b7bb9d0706e74ef8fa24479", + "lines": 313, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/lock_audit.rs": { + "content_hash": "781e7c728c7a0b8a9b2204000a53f1fd58ed33aad63202aa5020e3f39e7f3bbd", + "lines": 382, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/mount.rs": { + "content_hash": "c2a3832d37383b154b7771f9a943d0ff31758f4dd6f7367ce8f83bfef994dfd2", + "lines": 72, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_alerts.rs": { + "content_hash": "5c22a3e00b7ba28ba72eafefabc0e7450e12428873514882f634d0ec56ce8127", + "lines": 377, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/pin_resolve.rs": { + "content_hash": "fe3ca39b83bf797a137d51ed529695127231448405f7044be43ce3474db6ed75", + "lines": 205, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/resource_scripts.rs": { + "content_hash": "bd107a90d40cfa4b2fd7abf5f8793d9414f9e7c1f1894e594d7ea640b68b8ed3", + "lines": 189, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase74.rs": { + "content_hash": "769ca19a23eeea8da2e900c8ab4dca4d1ffcfd0b29c03f9133b8396ef000131a", + "lines": 281, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_4_b.rs": { + "content_hash": "b7d3a7a8f368bf6584a0d85fc9da929de145f1f5900bf30202a16af31b0a4f3a", + "lines": 476, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_graph_core_3.rs": { + "content_hash": "6a6e4b1bf89ede7219bbbb1b88aa7d259acf7bafacbae1b432de0948fa4a0f7b", + "lines": 757, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_args_extra.rs": { + "content_hash": "7b4da3d7345f30e8e6a1bf7fae6e84e3c3fbf5979f1a015fc41f4094f5af94f6", + "lines": 538, + "functions": 52, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/doctor.rs": { + "content_hash": "ff075849846d7cf2678962e124a8ec7d24b3f842ad9282193d05b1f7e83c1bd3", + "lines": 447, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_analytics_ext.rs": { + "content_hash": "dfd639fb7a3e67c66eea82ed922c7883b45f7f00b94dd0659cf56d48b6cd8ac2", + "lines": 383, + "functions": 28, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_status_3.rs": { + "content_hash": "d953ba308efe6509163a04d8d0ab9b18b59435efe88b5d09bfa8ef2a72a18e10", + "lines": 411, + "functions": 72, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/network.rs": { + "content_hash": "b1b8abdffb20b6563eb80db130032e0cc1f92f3e86c28f8917d6082e6e211807", + "lines": 535, + "functions": 37, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/state/tests_process_lock.rs": { + "content_hash": "41e861f0d13f2c40d1aaeab5a594b62f02b39da9652be90c3991aa573016dc0a", + "lines": 85, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch_status.rs": { + "content_hash": "2ce47fd7c3525a87d5bf3fc9b4b0eeb71adca86bd4870322292cd259efd1a4f1", + "lines": 1448, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/anomaly_detection.rs": { + "content_hash": "7df1ddb35aa1377af77266b5b10313781ecdd0b715bb78fefaa28d4b1dc9a2b0", + "lines": 123, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_resilience.rs": { + "content_hash": "b3bc5904cb1ebdcab05ac2b3d4466bc50fb7f3b7a4e77b83ad1e9058c1f888d8", + "lines": 699, + "functions": 27, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/mod.rs": { + "content_hash": "a531550613b6809bd1819e24a0825160f11c2ce53bcfd7a5ed0749070a530b55", + "lines": 36, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/validate_args.rs": { + "content_hash": "32835cd4dd4e68473c6129851893b5f0a099d01eb8848c2b3a00fe18325db0b5", + "lines": 494, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "benches/store_bench.rs": { + "content_hash": "f97b1e48cff71ae15f2c3474dd36a52df9abe546882c8efc6b4d7b5b37833906", + "lines": 401, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/lock_core_args.rs": { + "content_hash": "273fd1b5632fc1d2d997ccd6f3b94aea533dd79c2845ebe5abdb246aa7769c80", + "lines": 254, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_edge_record.rs": { + "content_hash": "06e43c61e6982f518304ef15053cec6c917db1fceffc74e05ea068d9923ed59a", + "lines": 420, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_transport.rs": { + "content_hash": "e6020dc225f3929dbf93a9fa1c4abc21bc9b5c0fe089f62c1e0772014bfec906", + "lines": 208, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_lockfile.rs": { + "content_hash": "0365f4c715e27d76c55d45058286cec808c70729a2d965ced366f4d3549f19a1", + "lines": 200, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_topology.rs": { + "content_hash": "7a8a8a0e3dec311df91ea693be873441b2d0db8b81dd09e33ab3d94521411888", + "lines": 484, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase82.rs": { + "content_hash": "fa4cef482998707dd19209834ba250b6a3dea79eb38120b118e29795c01b861b", + "lines": 289, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_core.rs": { + "content_hash": "32b268ebe8b7fdcf7fe1782dec7f04469c435abe99547311182d5e3f5afdfbe8", + "lines": 299, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/misc_ops_args.rs": { + "content_hash": "4434ae1f9bacf8084c3ed92d01ce6ec57fc591152957ee1cdcced543d7eafb7d", + "lines": 289, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/types/config.rs": { + "content_hash": "273ef42049338b1bcb6eab93232ef065b5848a195af8686dcfa58019bfc7fbb0", + "lines": 373, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_fleet_b.rs": { + "content_hash": "079ef5be1709818426bf9b485cfa249617ca2acaf46c0dfbceca1dff39fdcc22", + "lines": 314, + "functions": 30, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_queries.rs": { + "content_hash": "fc435d443a5715aba50557e2b267a94ddda0a11233fbdc0376662b99d8f9cec1", + "lines": 250, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/lock_security.rs": { + "content_hash": "8018b5a7797f5483703a32671e476ecbc4f8afe01eb6a727a39679dedb706be6", + "lines": 392, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_helpers.rs": { + "content_hash": "f2c5aee07158277b5539833a90498b0755ffe6f1c50d16256a3f0989016bc7b5", + "lines": 150, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_8.rs": { + "content_hash": "1185e4f85d857d6ec63ecca39b7da844e29f93bc3fd9db14722ca67d425278a5", + "lines": 620, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_drift.rs": { + "content_hash": "5f34e558d5b53c082a28d43579f18cd4962307695c2e9fa782d4c2362399c302", + "lines": 381, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + } + }, + "coverage_required": [ + "src/core/tests_secrets.rs", + "src/core/recipe/tests_expansion.rs", + "src/core/recipe/tests_integration.rs", + "src/core/recipe/mod.rs", + "src/core/recipe/tests_validation.rs", + "src/core/recipe/validation.rs", + "src/core/recipe/types.rs", + "src/core/recipe/expansion.rs", + "src/core/recipe/validation_types.rs", + "src/core/mod.rs", + "src/core/scoring.rs", + "src/core/tests_scoring_b.rs", + "src/core/executor/strategies.rs", + "src/core/executor/tests_edge_record.rs", + "src/core/executor/tests_edge_apply.rs", + "src/core/executor/tests_advanced.rs", + "src/core/executor/mod.rs", + "src/core/executor/resource_ops.rs", + "src/core/executor/tests_converge2.rs", + "src/core/executor/tests_parallel.rs", + "src/core/executor/machine_wave.rs", + "src/core/executor/tests_filters.rs", + "src/core/executor/test_fixtures.rs", + "src/core/executor/tests_rolling.rs", + "src/core/executor/tests_waves.rs", + "src/core/executor/helpers.rs", + "src/core/executor/tests_localhost.rs", + "src/core/executor/tests_localhost2.rs", + "src/core/executor/tests_hooks.rs", + "src/core/executor/tests_drift.rs", + "src/core/executor/tests_converge.rs", + "src/core/executor/tests_core.rs", + "src/core/executor/tests_edge_details.rs", + "src/core/executor/tests_concurrent.rs", + "src/core/executor/machine.rs", + "src/core/parser/tests_misc_2b.rs", + "src/core/parser/tests_expansion.rs", + "src/core/parser/tests_arch.rs", + "src/core/parser/mod.rs", + "src/core/parser/tests_misc_2.rs", + "src/core/parser/tests_includes.rs", + "src/core/parser/resource_types.rs", + "src/core/parser/tests_validation.rs", + "src/core/parser/tests_misc.rs", + "src/core/parser/policy.rs", + "src/core/parser/includes.rs", + "src/core/parser/validation.rs", + "src/core/parser/tests_misc_3.rs", + "src/core/parser/expansion.rs", + "src/core/parser/tests_core.rs", + "src/core/parser/tests_triggers.rs", + "src/core/parser/recipes.rs", + "src/core/parser/tests_misc_4.rs", + "src/core/parser/tests_policy.rs", + "src/core/migrate.rs", + "src/core/planner/tests_when.rs", + "src/core/planner/tests_advanced.rs", + "src/core/planner/mod.rs", + "src/core/planner/tests_helpers.rs", + "src/core/planner/tests_hash.rs", + "src/core/planner/tests_lifecycle.rs", + "src/core/planner/tests_determine.rs", + "src/core/planner/tests_describe.rs", + "src/core/planner/tests_plan.rs", + "src/core/planner/tests_filter.rs", + "src/core/tests_purifier.rs", + "src/core/purifier.rs", + "src/core/resolver/resource.rs", + "src/core/resolver/mod.rs", + "src/core/resolver/tests_functions.rs", + "src/core/resolver/tests_helpers.rs", + "src/core/resolver/tests_dag.rs", + "src/core/resolver/tests_waves.rs", + "src/core/resolver/dag.rs", + "src/core/resolver/template.rs", + "src/core/resolver/data.rs", + "src/core/resolver/tests_data.rs", + "src/core/resolver/tests_template.rs", + "src/core/resolver/functions.rs", + "src/core/resolver/tests_proptest.rs", + "src/core/resolver/tests_resource.rs", + "src/core/state/tests_edge.rs", + "src/core/state/mod.rs", + "src/core/state/tests_helpers.rs", + "src/core/state/tests_process_lock.rs", + "src/core/state/tests_encrypt.rs", + "src/core/state/tests_basic.rs", + "src/core/tests_scoring.rs", + "src/core/secrets.rs", + "src/core/codegen/tests_completeness.rs", + "src/core/codegen/mod.rs", + "src/core/codegen/test_fixtures.rs", + "src/core/codegen/dispatch.rs", + "src/core/codegen/tests_coverage.rs", + "src/core/codegen/tests_dispatch.rs", + "src/core/conditions.rs", + "src/core/store/tests_sync_exec.rs", + "src/core/store/tests_lockfile.rs", + "src/core/store/convert.rs", + "src/core/store/conda.rs", + "src/core/store/gc.rs", + "src/core/store/tests_convert_exec.rs", + "src/core/store/tests_path.rs", + "src/core/store/store_diff.rs", + "src/core/store/sandbox_exec.rs", + "src/core/store/tests_pin_resolve.rs", + "src/core/store/tests_chunker.rs", + "src/core/store/mod.rs", + "src/core/store/tests_cache.rs", + "src/core/store/substitution.rs", + "src/core/store/far.rs", + "src/core/store/profile.rs", + "src/core/store/path.rs", + "src/core/store/tests_hf_config.rs", + "src/core/store/tests_sandbox.rs", + "src/core/store/secret_scan.rs", + "src/core/store/repro_score.rs", + "src/core/store/contract_scaffold.rs", + "src/core/store/pin_resolve.rs", + "src/core/store/tests_purity.rs", + "src/core/store/tests_substitution.rs", + "src/core/store/validate.rs", + "src/core/store/tests_profile.rs", + "src/core/store/tests_store_diff.rs", + "src/core/store/cache.rs", + "src/core/store/tests_convert.rs", + "src/core/store/sandbox.rs", + "src/core/store/contract_coverage.rs", + "src/core/store/tests_closure.rs", + "src/core/store/lockfile.rs", + "src/core/store/gc_exec.rs", + "src/core/store/meta.rs", + "src/core/store/tests_gc_exec.rs", + "src/core/store/chunker.rs", + "src/core/store/kernel_far.rs", + "src/core/store/tests_conda.rs", + "src/core/store/convert_exec.rs", + "src/core/store/pin_tripwire.rs", + "src/core/store/tests_derivation_exec.rs", + "src/core/store/tests_far.rs", + "src/core/store/tests_secret_scan.rs", + "src/core/store/provider_exec.rs", + "src/core/store/sync_exec.rs", + "src/core/store/purity.rs", + "src/core/store/tests_repro_score.rs", + "src/core/store/reference.rs", + "src/core/store/tests_provider.rs", + "src/core/store/tests_validate.rs", + "src/core/store/derivation_exec.rs", + "src/core/store/tests_contract_coverage.rs", + "src/core/store/tests_contract_scaffold.rs", + "src/core/store/hf_config.rs", + "src/core/store/tests_cache_exec.rs", + "src/core/store/tests_sandbox_run.rs", + "src/core/store/tests_pin_tripwire.rs", + "src/core/store/tests_derivation.rs", + "src/core/store/derivation.rs", + "src/core/store/sandbox_run.rs", + "src/core/store/tests_kernel_far.rs", + "src/core/store/tests_meta.rs", + "src/core/store/tests_reference.rs", + "src/core/store/cache_exec.rs", + "src/core/store/tests_sandbox_exec.rs", + "src/core/store/tests_gc.rs", + "src/core/store/tests_provider_exec.rs", + "src/core/store/tests_bash_provability.rs", + "src/core/store/closure.rs", + "src/core/store/provider.rs", + "src/core/tests_purifier_b.rs", + "src/core/types/resource.rs", + "src/core/types/mod.rs", + "src/core/types/tests_state.rs", + "src/core/types/policy.rs", + "src/core/types/config.rs", + "src/core/types/tests_config.rs", + "src/core/types/tests_resource.rs", + "src/core/types/state_types.rs", + "src/mcp/tests_handlers.rs", + "src/mcp/registry.rs", + "src/mcp/mod.rs", + "src/mcp/handlers.rs", + "src/mcp/tests_handlers_more.rs", + "src/mcp/types.rs", + "src/mcp/tests_registry.rs", + "src/cli/tests_misc_5.rs", + "src/cli/tests_phase71.rs", + "src/cli/tests_snapshot.rs", + "src/cli/status_drift_intel.rs", + "src/cli/tests_graph_core_2.rs", + "src/cli/graph_scoring.rs", + "src/cli/validate_maturity.rs", + "src/cli/validate_safety.rs", + "src/cli/status_resource_intel.rs", + "src/cli/status_operational.rs", + "src/cli/tests_misc_1_b.rs", + "src/cli/validate_resources.rs", + "src/cli/snapshot.rs", + "src/cli/tests_misc_9_b.rs", + "src/cli/graph_governance.rs", + "src/cli/drift.rs", + "src/cli/tests_diff_cmd.rs", + "src/cli/tests_phase79.rs", + "src/cli/tests_apply_10.rs", + "src/cli/tests_status_core_6.rs", + "src/cli/status_security.rs", + "src/cli/dispatch_notify.rs", + "src/cli/commands/mod.rs", + "src/cli/commands/misc_ops_args.rs", + "src/cli/commands/status_args.rs", + "src/cli/commands/validate_args.rs", + "src/cli/commands/misc_args.rs", + "src/cli/commands/plan_args.rs", + "src/cli/commands/lock_core_args.rs", + "src/cli/commands/apply_args.rs", + "src/cli/commands/state_args.rs", + "src/cli/commands/store_args.rs", + "src/cli/commands/lock_ops_args.rs", + "src/cli/commands/subcmd_args.rs", + "src/cli/commands/graph_args.rs", + "src/cli/tests_graph_core.rs", + "src/cli/tests_status_core_3_b.rs", + "src/cli/tests_misc_1.rs", + "src/cli/tests_infra.rs", + "src/cli/status_fleet_insight.rs", + "src/cli/tests_validate_core_2.rs", + "src/cli/tests_cov_validate3_d.rs", + "src/cli/tests_phase86.rs", + "src/cli/validate_advanced.rs", + "src/cli/tests_cov_status_1.rs", + "src/cli/dispatch_validate.rs", + "src/cli/tests_status_core_2.rs", + "src/cli/observe.rs", + "src/cli/score.rs", + "src/cli/tests_plan_file.rs", + "src/cli/lock_core.rs", + "src/cli/tests_graph_core_4.rs", + "src/cli/graph_impact.rs", + "src/cli/graph_transport.rs", + "src/cli/tests_validate_core_b.rs", + "src/cli/tests_status_core_5_b.rs", + "src/cli/validate_analytics.rs", + "src/cli/status_fleet.rs", + "src/cli/tests_cov_status_6.rs", + "src/cli/status_compliance.rs", + "src/cli/tests_status_core_8_b.rs", + "src/cli/tests_show_2.rs", + "src/cli/tests_cov_args_4.rs", + "src/cli/print_helpers.rs", + "src/cli/status_intelligence.rs", + "src/cli/dispatch_graph.rs", + "src/cli/tests_apply_9.rs", + "src/cli/tests_score.rs", + "src/cli/mod.rs", + "src/cli/tests_misc_2.rs", + "src/cli/tests_phase88.rs", + "src/cli/validate_quality.rs", + "src/cli/dispatch_misc.rs", + "src/cli/graph_extended.rs", + "src/cli/tests_cov_fleet_b.rs", + "src/cli/tests_show_1.rs", + "src/cli/tests_helpers_state.rs", + "src/cli/tests_phase77.rs", + "src/cli/tests_apply_11.rs", + "src/cli/status_alerts.rs", + "src/cli/validate_hygiene.rs", + "src/cli/status_diagnostics.rs", + "src/cli/tests_helpers.rs", + "src/cli/graph_lifecycle.rs", + "src/cli/tests_misc_6.rs", + "src/cli/tests_apply_1.rs", + "src/cli/store_pin.rs", + "src/cli/tests_misc_10.rs", + "src/cli/tests_check.rs", + "src/cli/tests_store_archive.rs", + "src/cli/store_import.rs", + "src/cli/tests_cov_notify.rs", + "src/cli/tests_status_core_5.rs", + "src/cli/tests_validate_core.rs", + "src/cli/graph_intelligence_ext.rs", + "src/cli/tests_workspace.rs", + "src/cli/validate_compliance.rs", + "src/cli/tests_apply_20.rs", + "src/cli/tests_cov_remaining_3.rs", + "src/cli/helpers_state.rs", + "src/cli/tests_cov_notify_2.rs", + "src/cli/graph_quality.rs", + "src/cli/store_archive.rs", + "src/cli/tests_cov_fleet.rs", + "src/cli/tests_lock_core.rs", + "src/cli/tests_graph_core_3.rs", + "src/cli/tests_cov_graph3_c.rs", + "src/cli/status_convergence.rs", + "src/cli/tests_cov_status_4.rs", + "src/cli/status_resources.rs", + "src/cli/tests_show.rs", + "src/cli/status_operational_ext.rs", + "src/cli/tests_cov_dispatch_3.rs", + "src/cli/history.rs", + "src/cli/graph_analysis.rs", + "src/cli/tests_cov_status_5.rs", + "src/cli/status_drift_intel2.rs", + "src/cli/test_fixtures.rs", + "src/cli/tests_cov_lock.rs", + "src/cli/tests_show_3.rs", + "src/cli/graph_weight.rs", + "src/cli/validate_paths.rs", + "src/cli/tests_cov_validate3_c.rs", + "src/cli/tests_cov_args.rs", + "src/cli/tests_cov_validate2_b.rs", + "src/cli/tests_graph_core_5.rs", + "src/cli/tests_apply_21.rs", + "src/cli/tests_cov_remaining_2.rs", + "src/cli/graph_cross.rs", + "src/cli/status_core.rs", + "src/cli/helpers.rs", + "src/cli/dispatch_status.rs", + "src/cli/tests_status_core_7.rs", + "src/cli/status_maturity.rs", + "src/cli/validate_compliance_ext.rs", + "src/cli/tests_phase94.rs", + "src/cli/tests_phase100.rs", + "src/cli/status_transport.rs", + "src/cli/store_cache.rs", + "src/cli/tests_phase99.rs", + "src/cli/tests_phase81.rs", + "src/cli/tests_cov_notify_3.rs", + "src/cli/tests_cov_args_2.rs", + "src/cli/tests_apply_18.rs", + "src/cli/tests_phase68.rs", + "src/cli/tests_phase106.rs", + "src/cli/tests_phase85.rs", + "src/cli/tests_status_queries.rs", + "src/cli/tests_status_core_1.rs", + "src/cli/tests_phase87.rs", + "src/cli/tests_phase65.rs", + "src/cli/tests_validate_core_3.rs", + "src/cli/status_resource_detail.rs", + "src/cli/tests_phase105.rs", + "src/cli/tests_misc.rs", + "src/cli/doctor.rs", + "src/cli/tests_apply_19.rs", + "src/cli/tests_cov_validate3_b.rs", + "src/cli/tests_phase90.rs", + "src/cli/tests_import_cmd.rs", + "src/cli/tests_phase83.rs", + "src/cli/tests_cov_status_2.rs", + "src/cli/tests_phase73.rs", + "src/cli/lock_lifecycle.rs", + "src/cli/status_failures.rs", + "src/cli/tests_phase59.rs", + "src/cli/tests_phase62.rs", + "src/cli/tests_phase96.rs", + "src/cli/tests_apply_3.rs", + "src/cli/tests_status_core_b.rs", + "src/cli/tests_phase98.rs", + "src/cli/tests_fleet_ops_1.rs", + "src/cli/tests_phase76.rs", + "src/cli/workspace.rs", + "src/cli/tests_misc_7_b.rs", + "src/cli/plan.rs", + "src/cli/tests_cov_dispatch_4.rs", + "src/cli/tests_misc_8.rs", + "src/cli/check.rs", + "src/cli/tests_phase82.rs", + "src/cli/tests_apply_7.rs", + "src/cli/tests_apply_5.rs", + "src/cli/tests_cov_status_4_c.rs", + "src/cli/status_recovery.rs", + "src/cli/graph_topology.rs", + "src/cli/status_insights.rs", + "src/cli/tests_phase72.rs", + "src/cli/tests_status_core_4_b.rs", + "src/cli/tests_status_core_4.rs", + "src/cli/fleet_ops.rs", + "src/cli/infra.rs", + "src/cli/validate_security.rs", + "src/cli/tests_store_import.rs", + "src/cli/apply_output.rs", + "src/cli/validate_structural.rs", + "src/cli/tests_phase91.rs", + "src/cli/tests_apply.rs", + "src/cli/tests_check_2.rs", + "src/cli/tests_status_core_10.rs", + "src/cli/tests_cov_transport_3.rs", + "src/cli/init.rs", + "src/cli/tests_phase95.rs", + "src/cli/tests_phase63.rs", + "src/cli/tests_phase66.rs", + "src/cli/tests_apply_15.rs", + "src/cli/tests_fleet_ops.rs", + "src/cli/apply_helpers.rs", + "src/cli/tests_cov_remaining_6.rs", + "src/cli/tests_cov_remaining.rs", + "src/cli/tests_phase84.rs", + "src/cli/tests_phase97.rs", + "src/cli/tests_cov_transport_2.rs", + "src/cli/validate_core.rs", + "src/cli/tests_phase67.rs", + "src/cli/graph_topology_ext.rs", + "src/cli/graph_analytics_ext.rs", + "src/cli/validate_ordering.rs", + "src/cli/graph_intelligence_ext2.rs", + "src/cli/tests_destroy.rs", + "src/cli/tests_fleet_reporting.rs", + "src/cli/tests_cov_dispatch_2.rs", + "src/cli/dispatch.rs", + "src/cli/dispatch_store.rs", + "src/cli/tests_phase89.rs", + "src/cli/tests_status_core_3.rs", + "src/cli/tests_validate_core_1.rs", + "src/cli/tests_helpers_time.rs", + "src/cli/tests_status_core_9.rs", + "src/cli/tests_store_convert.rs", + "src/cli/tests_cov_apply.rs", + "src/cli/graph_resilience_ext.rs", + "src/cli/validate_ordering_ext.rs", + "src/cli/tests_cov_status_3.rs", + "src/cli/tests_status_core_6_b.rs", + "src/cli/graph_intelligence.rs", + "src/cli/dispatch_notify_custom.rs", + "src/cli/tests_drift.rs", + "src/cli/tests_apply_23.rs", + "src/cli/tests_cov_args_3.rs", + "src/cli/tests_apply_16.rs", + "src/cli/tests_misc_3.rs", + "src/cli/validate_ownership.rs", + "src/cli/secrets.rs", + "src/cli/tests_cov_args_extra_b.rs", + "src/cli/status_counts.rs", + "src/cli/status_observability.rs", + "src/cli/helpers_time.rs", + "src/cli/tests_cov_graph2.rs", + "src/cli/lock_security.rs", + "src/cli/tests_apply_8.rs", + "src/cli/tests_cov_args_extra.rs", + "src/cli/tests_apply_6.rs", + "src/cli/tests_store_pin.rs", + "src/cli/tests_apply_2.rs", + "src/cli/tests_cov_remaining_7.rs", + "src/cli/graph_export.rs", + "src/cli/tests_cov_args_2_b.rs", + "src/cli/tests_phase101.rs", + "src/cli/graph_resilience.rs", + "src/cli/lock_merge.rs", + "src/cli/dispatch_status_ext.rs", + "src/cli/tests_apply_helpers.rs", + "src/cli/tests_check_1.rs", + "src/cli/validate_policy.rs", + "src/cli/tests_validate_core_2_b.rs", + "src/cli/tests_apply_12.rs", + "src/cli/tests_cov_remaining_8.rs", + "src/cli/status_intelligence_ext2.rs", + "src/cli/status_intelligence_ext.rs", + "src/cli/tests_doctor.rs", + "src/cli/tests_history.rs", + "src/cli/tests_validate_transport.rs", + "src/cli/status_quality.rs", + "src/cli/tests_status_core.rs", + "src/cli/validate_governance.rs", + "src/cli/graph_analytics.rs", + "src/cli/tests_cov_graph3.rs", + "src/cli/tests_destroy_1.rs", + "src/cli/tests_plan.rs", + "src/cli/tests_apply_17.rs", + "src/cli/status_cost.rs", + "src/cli/tests_observe.rs", + "src/cli/tests_cov_remaining_9.rs", + "src/cli/tests_print_helpers.rs", + "src/cli/status_resilience.rs", + "src/cli/dispatch_lock.rs", + "src/cli/graph_paths.rs", + "src/cli/tests_cov_misc2_b.rs", + "src/cli/status_fleet_detail.rs", + "src/cli/graph_visualization.rs", + "src/cli/status_drift.rs", + "src/cli/tests_cov_dispatch.rs", + "src/cli/tests_phase107.rs", + "src/cli/tests_phase74.rs", + "src/cli/diff_cmd.rs", + "src/cli/tests_cov_status_4_b.rs", + "src/cli/tests_cov_remaining_4.rs", + "src/cli/validate_governance_ext.rs", + "src/cli/validate_security_ext.rs", + "src/cli/tests_status_core_7_b.rs", + "src/cli/tests_apply_13.rs", + "src/cli/tests_phase104.rs", + "src/cli/tests_cov_misc2.rs", + "src/cli/tests_apply_6_b.rs", + "src/cli/status_queries.rs", + "src/cli/tests_phase60.rs", + "src/cli/destroy.rs", + "src/cli/status_trends.rs", + "src/cli/validate_transport.rs", + "src/cli/store_ops.rs", + "src/cli/tests_validate_core_1_b.rs", + "src/cli/tests_misc_5_b.rs", + "src/cli/validate_audit.rs", + "src/cli/tests_graph_core_b.rs", + "src/cli/tests_cov_transport.rs", + "src/cli/validate_topology.rs", + "src/cli/lint.rs", + "src/cli/fleet_reporting.rs", + "src/cli/import_cmd.rs", + "src/cli/tests_phase61.rs", + "src/cli/tests_cov_validate2.rs", + "src/cli/tests_cov_validate.rs", + "src/cli/status_analytics.rs", + "src/cli/lock_audit.rs", + "src/cli/tests_cov_status_7.rs", + "src/cli/validate_scoring.rs", + "src/cli/graph_advanced.rs", + "src/cli/status_operational_ext2.rs", + "src/cli/tests_misc_9.rs", + "src/cli/tests_status_core_2_b.rs", + "src/cli/tests_phase70.rs", + "src/cli/tests_cov_graph.rs", + "src/cli/graph_compliance.rs", + "src/cli/tests_graph_core_1.rs", + "src/cli/tests_phase64.rs", + "src/cli/status_health.rs", + "src/cli/graph_core.rs", + "src/cli/show.rs", + "src/cli/tests_init.rs", + "src/cli/status_predictive.rs", + "src/cli/tests_phase69.rs", + "src/cli/tests_phase103.rs", + "src/cli/tests_phase92.rs", + "src/cli/tests_cov_apply_b.rs", + "src/cli/tests_cov_remaining_5.rs", + "src/cli/validate_config_quality.rs", + "src/cli/tests_cov_notify_4.rs", + "src/cli/tests_apply_14.rs", + "src/cli/tests_phase78.rs", + "src/cli/tests_misc_4.rs", + "src/cli/dispatch_apply.rs", + "src/cli/tests_phase80.rs", + "src/cli/tests_store_ops.rs", + "src/cli/tests_phase102.rs", + "src/cli/tests_lock_core_1.rs", + "src/cli/graph_health.rs", + "src/cli/tests_plan_1.rs", + "src/cli/tests_graph_core_6.rs", + "src/cli/lock_ops.rs", + "src/cli/store_convert.rs", + "src/cli/tests_cov_validate3.rs", + "src/cli/tests_misc_7.rs", + "src/cli/tests_store_cache.rs", + "src/cli/tests_apply_4.rs", + "src/cli/tests_lint.rs", + "src/cli/tests_status_core_1_b.rs", + "src/cli/lock_repair.rs", + "src/cli/tests_status_core_8.rs", + "src/cli/tests_cov_validate2_c.rs", + "src/cli/validate_resilience.rs", + "src/cli/tests_cov_graph3_b.rs", + "src/cli/tests_phase75.rs", + "src/cli/apply.rs", + "src/cli/apply_variants.rs", + "src/cli/tests_apply_22.rs", + "src/main.rs", + "src/copia/mod.rs", + "src/transport/container.rs", + "src/transport/tests_dispatch_b.rs", + "src/transport/tests_ssh.rs", + "src/transport/tests_container_b.rs", + "src/transport/tests_container.rs", + "src/transport/mod.rs", + "src/transport/tests_container_c.rs", + "src/transport/pepita.rs", + "src/transport/ssh.rs", + "src/transport/tests_dispatch.rs", + "src/transport/tests_container_d.rs", + "src/transport/local.rs", + "src/resources/gpu.rs", + "src/resources/tests_user.rs", + "src/resources/mod.rs", + "src/resources/task.rs", + "src/resources/cron.rs", + "src/resources/pepita/mod.rs", + "src/resources/tests_file.rs", + "src/resources/tests_mount_b.rs", + "src/resources/mount.rs", + "src/resources/tests_docker.rs", + "src/resources/docker.rs", + "src/resources/user.rs", + "src/resources/tests_mount.rs", + "src/resources/model.rs", + "src/resources/network.rs", + "src/resources/tests_service.rs", + "src/resources/tests_docker_b.rs", + "src/resources/tests_file_b.rs", + "src/resources/file.rs", + "src/resources/tests_package.rs", + "src/resources/tests_package_b.rs", + "src/resources/package.rs", + "src/resources/tests_gpu.rs", + "src/resources/service.rs", + "src/lib.rs", + "src/tripwire/tests_anomaly.rs", + "src/tripwire/mod.rs", + "src/tripwire/anomaly.rs", + "src/tripwire/eventlog.rs", + "src/tripwire/drift/tests_fj036.rs", + "src/tripwire/drift/mod.rs", + "src/tripwire/drift/tests_lifecycle.rs", + "src/tripwire/drift/tests_edge_fj132_b.rs", + "src/tripwire/drift/tests_basic_b.rs", + "src/tripwire/drift/tests_edge_fj131.rs", + "src/tripwire/drift/tests_transport.rs", + "src/tripwire/drift/tests_edge_fj132.rs", + "src/tripwire/drift/tests_full.rs", + "src/tripwire/drift/tests_basic.rs", + "src/tripwire/tests_hasher_b.rs", + "src/tripwire/tests_eventlog_b.rs", + "src/tripwire/hasher.rs", + "src/tripwire/tests_eventlog.rs", + "src/tripwire/tracer.rs", + "src/tripwire/tests_hasher.rs", + "benches/core_bench.rs", + "benches/store_bench.rs", + "examples/mcp_server.rs", + "examples/multi_machine.rs", + "examples/arch_filtering.rs", + "examples/store_provider_import.rs", + "examples/parse_and_plan.rs", + "examples/store_executors.rs", + "examples/state_management.rs", + "examples/template_resolution.rs", + "examples/gpu_container_transport.rs", + "examples/blake3_hashing.rs", + "examples/full_stack_deploy.rs", + "examples/validation.rs", + "examples/codegen_scripts.rs", + "examples/resource_scripts.rs", + "examples/trace_provenance.rs", + "examples/anomaly_detection.rs", + "examples/score_cookbook.rs", + "examples/conda_to_far.rs", + "examples/store_reproducibility.rs", + "examples/recipe_expansion.rs", + "examples/container_transport.rs", + "examples/shell_purifier.rs", + "examples/event_logging.rs", + "examples/user_management.rs", + "examples/drift_detection.rs" + ], + "manifest_hash": "c9c59a776e468c317c06ca8c3b62af56d7306a290b445bcfa6e80e616a430ff8" + }, + "thresholds": { + "min_coverage_pct": 95.0, + "min_per_file_coverage_pct": 95.0, + "max_tdg_regression": 0.0, + "max_function_complexity": 20, + "max_file_lines": 500, + "min_spec_score": 95, + "require_github_sync": true, + "require_spec_update": true, + "require_roadmap_update": true, + "block_on_new_satd": true, + "block_on_new_dead_code": true, + "require_lint_pass": true, + "max_fix_chain": 3, + "block_on_untested_variants": true, + "block_on_cross_crate_failure": false, + "block_on_regression": false, + "require_proof_verification": false, + "max_sorry_count": 0, + "min_theorem_coverage": 0.0, + "block_on_file_size": true + }, + "claims": [ + { + "hypothesis": "All baseline files still exist", + "falsification_method": "ManifestIntegrity", + "evidence_required": { + "FileList": [] + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "The falsifier is active and detecting (Meta-Check)", + "falsification_method": "MetaFalsification", + "evidence_required": { + "CounterExample": { + "details": "" + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "No coverage exclusion gaming", + "falsification_method": "CoverageGaming", + "evidence_required": { + "FileList": [] + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "All changed lines are covered", + "falsification_method": "DifferentialCoverage", + "evidence_required": { + "NumericComparison": { + "actual": 0.0, + "threshold": 100.0 + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "Total coverage >= 95%", + "falsification_method": "AbsoluteCoverage", + "evidence_required": { + "NumericComparison": { + "actual": 0.0, + "threshold": 95.0 + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "TDG score >= baseline", + "falsification_method": "TdgRegression", + "evidence_required": { + "NumericComparison": { + "actual": 0.0, + "threshold": 0.0 + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "No function exceeds complexity 20", + "falsification_method": "ComplexityRegression", + "evidence_required": { + "NumericComparison": { + "actual": 0.0, + "threshold": 20.0 + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "No vulnerable dependencies added", + "falsification_method": "SupplyChainIntegrity", + "evidence_required": { + "CounterExample": { + "details": "" + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "No file exceeds 500 lines", + "falsification_method": "FileSizeRegression", + "evidence_required": { + "NumericComparison": { + "actual": 0.0, + "threshold": 500.0 + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "Spec & Roadmap Quality", + "falsification_method": "SpecQuality", + "evidence_required": { + "NumericComparison": { + "actual": 0.0, + "threshold": 95.0 + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "All changes pushed", + "falsification_method": "GitHubSync", + "evidence_required": { + "GitState": { + "unpushed_commits": 0, + "dirty_files": 0 + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "All examples compile and run", + "falsification_method": "ExamplesCompile", + "evidence_required": { + "CounterExample": { + "details": "" + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "pmat-book validation passes", + "falsification_method": "BookValidation", + "evidence_required": { + "CounterExample": { + "details": "" + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "No new SATD markers (TODO/FIXME/HACK)", + "falsification_method": "SatdDetection", + "evidence_required": { + "FileList": [] + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "No new dead code introduced", + "falsification_method": "DeadCodeDetection", + "evidence_required": { + "FileList": [] + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "All files have >= 95% coverage", + "falsification_method": "PerFileCoverage", + "evidence_required": { + "FileList": [] + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "make lint passes", + "falsification_method": "LintPass", + "evidence_required": { + "BooleanCheck": false + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "All match arm variants have test coverage", + "falsification_method": "VariantCoverage", + "evidence_required": { + "FileList": [] + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "No fix-after-fix chains exceed limit", + "falsification_method": "FixChainLimit", + "evidence_required": { + "NumericComparison": { + "actual": 0.0, + "threshold": 3.0 + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "Cross-crate integration tests pass", + "falsification_method": "CrossCrateParity", + "evidence_required": { + "BooleanCheck": false + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "No performance regressions detected", + "falsification_method": "RegressionGate", + "evidence_required": { + "NumericComparison": { + "actual": 0.0, + "threshold": 0.0 + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "No incomplete proofs (sorry) introduced", + "falsification_method": "FormalProofVerification", + "evidence_required": { + "NumericComparison": { + "actual": 0.0, + "threshold": 0.0 + } + }, + "result": null, + "override_info": null + } + ], + "profile": "Pmat", + "require": [ + { + "id": "require.compiles", + "kind": "Require", + "description": "Project builds successfully", + "falsification_method": "ManifestIntegrity", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "require.tests_exist", + "kind": "Require", + "description": "At least one test exists", + "falsification_method": "MetaFalsification", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "require.manifest_integrity", + "kind": "Require", + "description": "FileManifest anti-gaming check", + "falsification_method": "ManifestIntegrity", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "require.meta_falsification", + "kind": "Require", + "description": "Falsifier self-check active", + "falsification_method": "MetaFalsification", + "threshold": null, + "blocking": true, + "source": "Default" + } + ], + "ensure": [ + { + "id": "ensure.tests_pass", + "kind": "Ensure", + "description": "All tests pass", + "falsification_method": "MetaFalsification", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.git_sync", + "kind": "Ensure", + "description": "All changes pushed to remote", + "falsification_method": "GitHubSync", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.no_regression", + "kind": "Ensure", + "description": "No previously-passing test now fails", + "falsification_method": "MetaFalsification", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.coverage", + "kind": "Ensure", + "description": "Coverage >= 95%", + "falsification_method": "AbsoluteCoverage", + "threshold": { + "Numeric": { + "metric": "coverage_pct", + "op": "Gte", + "value": 95.0 + } + }, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.differential_coverage", + "kind": "Ensure", + "description": "Changed lines must be covered", + "falsification_method": "DifferentialCoverage", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.supply_chain", + "kind": "Ensure", + "description": "No vulnerable dependencies", + "falsification_method": "SupplyChainIntegrity", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.examples_compile", + "kind": "Ensure", + "description": "All examples compile and run", + "falsification_method": "ExamplesCompile", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.tdg_regression", + "kind": "Ensure", + "description": "TDG score >= baseline", + "falsification_method": "TdgRegression", + "threshold": { + "Delta": { + "metric": "tdg_score", + "op": "Gte", + "value": 0.0 + } + }, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.coverage_gaming", + "kind": "Ensure", + "description": "No coverage exclusion gaming", + "falsification_method": "CoverageGaming", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.spec_quality", + "kind": "Ensure", + "description": "Spec score meets threshold", + "falsification_method": "SpecQuality", + "threshold": { + "Numeric": { + "metric": "spec_score", + "op": "Gte", + "value": 95.0 + } + }, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.book_validation", + "kind": "Ensure", + "description": "pmat-book validation passes", + "falsification_method": "BookValidation", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.per_file_coverage", + "kind": "Ensure", + "description": "All files >= 95% coverage", + "falsification_method": "PerFileCoverage", + "threshold": { + "Numeric": { + "metric": "per_file_coverage_pct", + "op": "Gte", + "value": 95.0 + } + }, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.variant_coverage", + "kind": "Ensure", + "description": "All match arm variants tested", + "falsification_method": "VariantCoverage", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.cross_crate_parity", + "kind": "Ensure", + "description": "Cross-crate integration tests pass", + "falsification_method": "CrossCrateParity", + "threshold": null, + "blocking": false, + "source": "Default" + } + ], + "invariant": [ + { + "id": "invariant.compiles", + "kind": "Invariant", + "description": "Project compiles at every checkpoint", + "falsification_method": "ManifestIntegrity", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "invariant.file_size", + "kind": "Invariant", + "description": "No file exceeds 500 lines", + "falsification_method": "FileSizeRegression", + "threshold": { + "Numeric": { + "metric": "max_file_lines", + "op": "Lte", + "value": 500.0 + } + }, + "blocking": true, + "source": "Default" + }, + { + "id": "invariant.lint", + "kind": "Invariant", + "description": "cargo clippy passes", + "falsification_method": "LintPass", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "invariant.complexity", + "kind": "Invariant", + "description": "No function exceeds complexity 20", + "falsification_method": "ComplexityRegression", + "threshold": { + "Numeric": { + "metric": "max_complexity", + "op": "Lte", + "value": 20.0 + } + }, + "blocking": true, + "source": "Default" + }, + { + "id": "invariant.satd", + "kind": "Invariant", + "description": "No new SATD markers", + "falsification_method": "SatdDetection", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "invariant.dead_code", + "kind": "Invariant", + "description": "No new dead code introduced", + "falsification_method": "DeadCodeDetection", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "invariant.fix_chain", + "kind": "Invariant", + "description": "Fix-after-fix chains within limit", + "falsification_method": "FixChainLimit", + "threshold": { + "Numeric": { + "metric": "fix_chain_count", + "op": "Lte", + "value": 3.0 + } + }, + "blocking": true, + "source": "Default" + } + ], + "excluded_claims": [], + "iteration": 1, + "inherited_postconditions": [], + "contract_quality": { + "active_claims": 25, + "applicable_claims": 25, + "score": 1.0, + "rating": "Full" + } +} \ No newline at end of file diff --git a/.pmat-work/PMAT-022/falsification/receipt-2026-03-02T15-31-02.421563273+00-00.json b/.pmat-work/PMAT-022/falsification/receipt-2026-03-02T15-31-02.421563273+00-00.json new file mode 100644 index 00000000..74ca4d56 --- /dev/null +++ b/.pmat-work/PMAT-022/falsification/receipt-2026-03-02T15-31-02.421563273+00-00.json @@ -0,0 +1,196 @@ +{ + "id": "019caf2c-9c95-7dd3-a8cb-9f3fd43c6d37", + "git_sha": "84433302ec6739ce35f65c2d1ca8986767549141", + "timestamp": "2026-03-02T15:31:02.421563273+00:00", + "trigger": "WorkComplete", + "work_item_id": "PMAT-022", + "verdicts": [ + { + "hypothesis": "All baseline files still exist", + "method": "ManifestIntegrity", + "falsified": false, + "is_blocking": true, + "explanation": "All 651 files present", + "evidence_summary": null + }, + { + "hypothesis": "The falsifier is active and detecting (Meta-Check)", + "method": "MetaFalsification", + "falsified": false, + "is_blocking": true, + "explanation": "Detected dummy gaming pattern correctly", + "evidence_summary": null + }, + { + "hypothesis": "No coverage exclusion gaming", + "method": "CoverageGaming", + "falsified": false, + "is_blocking": true, + "explanation": "No gaming patterns found in 651 files", + "evidence_summary": null + }, + { + "hypothesis": "All changed lines are covered", + "method": "DifferentialCoverage", + "falsified": false, + "is_blocking": true, + "explanation": "4 changed files (coverage check requires llvm-cov data)", + "evidence_summary": null + }, + { + "hypothesis": "Total coverage >= 95%", + "method": "AbsoluteCoverage", + "falsified": false, + "is_blocking": true, + "explanation": "No coverage data (run 'make coverage' to establish baseline), threshold: 95.0%", + "evidence_summary": null + }, + { + "hypothesis": "TDG score >= baseline", + "method": "TdgRegression", + "falsified": false, + "is_blocking": true, + "explanation": "No TDG data (baseline: 0.0)", + "evidence_summary": null + }, + { + "hypothesis": "No function exceeds complexity 20", + "method": "ComplexityRegression", + "falsified": false, + "is_blocking": true, + "explanation": "Complexity check passed", + "evidence_summary": null + }, + { + "hypothesis": "No vulnerable dependencies added", + "method": "SupplyChainIntegrity", + "falsified": true, + "is_blocking": true, + "explanation": "No deny cache. Run 'cargo deny check' first (O(1) requirement)", + "evidence_summary": "BooleanCheck(false)" + }, + { + "hypothesis": "No file exceeds 500 lines", + "method": "FileSizeRegression", + "falsified": true, + "is_blocking": true, + "explanation": "90 file(s) exceed 500 lines: src/core/scoring.rs (619 lines), src/core/executor/machine.rs (533 lines), src/core/planner/tests_hash.rs (503 lines), src/core/resolver/tests_resource.rs (560 lines), src/cli/tests_graph_core_2.rs (1041 lines), src/cli/graph_scoring.rs (655 lines), src/cli/status_resource_intel.rs (719 lines), src/cli/status_operational.rs (529 lines), src/cli/tests_apply_10.rs (583 lines), src/cli/tests_status_core_6.rs (705 lines), src/cli/status_security.rs (523 lines), src/cli/dispatch_notify.rs (728 lines), src/cli/commands/status_args.rs (676 lines), src/cli/commands/apply_args.rs (680 lines), src/cli/status_fleet_insight.rs (706 lines), src/cli/tests_validate_core_2.rs (805 lines), src/cli/dispatch_validate.rs (1143 lines), src/cli/tests_status_core_2.rs (707 lines), src/cli/status_intelligence.rs (656 lines), src/cli/dispatch_graph.rs (1142 lines), src/cli/tests_apply_9.rs (585 lines), src/cli/mod.rs (587 lines), src/cli/tests_misc_2.rs (515 lines), src/cli/tests_apply_11.rs (584 lines), src/cli/status_diagnostics.rs (578 lines), src/cli/tests_misc_6.rs (582 lines), src/cli/tests_apply_1.rs (514 lines), src/cli/tests_misc_10.rs (660 lines), src/cli/tests_cov_notify.rs (789 lines), src/cli/tests_status_core_5.rs (703 lines), src/cli/tests_validate_core.rs (507 lines), src/cli/graph_intelligence_ext.rs (759 lines), src/cli/tests_apply_20.rs (591 lines), src/cli/tests_cov_notify_2.rs (529 lines), src/cli/graph_quality.rs (506 lines), src/cli/tests_cov_fleet.rs (526 lines), src/cli/tests_graph_core_3.rs (757 lines), src/cli/tests_cov_dispatch_3.rs (501 lines), src/cli/validate_paths.rs (517 lines), src/cli/tests_apply_21.rs (591 lines), src/cli/dispatch_status.rs (1448 lines), src/cli/tests_status_core_7.rs (703 lines), src/cli/status_maturity.rs (857 lines), src/cli/tests_apply_18.rs (585 lines), src/cli/tests_status_core_1.rs (701 lines), src/cli/tests_apply_19.rs (589 lines), src/cli/tests_misc_8.rs (620 lines), src/cli/tests_apply_7.rs (585 lines), src/cli/tests_apply_5.rs (585 lines), src/cli/status_recovery.rs (677 lines), src/cli/graph_topology.rs (525 lines), src/cli/tests_status_core_4.rs (707 lines), src/cli/tests_apply_15.rs (584 lines), src/cli/tests_fleet_ops.rs (531 lines), src/cli/validate_ordering.rs (675 lines), src/cli/graph_intelligence_ext2.rs (643 lines), src/cli/tests_status_core_3.rs (705 lines), src/cli/tests_validate_core_1.rs (804 lines), src/cli/tests_status_core_9.rs (528 lines), src/cli/graph_intelligence.rs (591 lines), src/cli/tests_drift.rs (541 lines), src/cli/tests_apply_16.rs (585 lines), src/cli/validate_ownership.rs (610 lines), src/cli/tests_apply_8.rs (586 lines), src/cli/tests_cov_args_extra.rs (538 lines), src/cli/graph_export.rs (517 lines), src/cli/dispatch_status_ext.rs (637 lines), src/cli/tests_validate_core_2_b.rs (659 lines), src/cli/tests_apply_12.rs (584 lines), src/cli/status_intelligence_ext2.rs (624 lines), src/cli/status_intelligence_ext.rs (801 lines), src/cli/status_quality.rs (685 lines), src/cli/tests_apply_17.rs (586 lines), src/cli/status_resilience.rs (699 lines), src/cli/tests_apply_13.rs (584 lines), src/cli/tests_validate_core_1_b.rs (647 lines), src/cli/graph_advanced.rs (551 lines), src/cli/status_operational_ext2.rs (556 lines), src/cli/tests_misc_9.rs (621 lines), src/cli/tests_graph_core_1.rs (1033 lines), src/cli/tests_init.rs (551 lines), src/cli/tests_cov_notify_4.rs (504 lines), src/cli/tests_apply_14.rs (584 lines), src/cli/tests_misc_4.rs (521 lines), src/cli/dispatch_apply.rs (568 lines), src/cli/tests_apply_4.rs (585 lines), src/cli/tests_status_core_8.rs (704 lines), src/cli/tests_apply_22.rs (588 lines), src/resources/network.rs (535 lines), benches/core_bench.rs (610 lines)", + "evidence_summary": "FileList([\"src/core/scoring.rs\", \"src/core/executor/machine.rs\", \"src/core/planner/tests_hash.rs\", \"src/core/resolver/tests_resource.rs\", \"src/cli/tests_graph_core_2.rs\", \"src/cli/graph_scoring.rs\", \"src/cli/status_resource_intel.rs\", \"src/cli/status_operational.rs\", \"src/cli/tests_apply_10.rs\", \"src/cli/tests_status_core_6.rs\", \"src/cli/status_security.rs\", \"src/cli/dispatch_notify.rs\", \"src/cli/commands/status_args.rs\", \"src/cli/commands/apply_args.rs\", \"src/cli/status_fleet_insight.rs\", \"src/cli/tests_validate_core_2.rs\", \"src/cli/dispatch_validate.rs\", \"src/cli/tests_status_core_2.rs\", \"src/cli/status_intelligence.rs\", \"src/cli/dispatch_graph.rs\", \"src/cli/tests_apply_9.rs\", \"src/cli/mod.rs\", \"src/cli/tests_misc_2.rs\", \"src/cli/tests_apply_11.rs\", \"src/cli/status_diagnostics.rs\", \"src/cli/tests_misc_6.rs\", \"src/cli/tests_apply_1.rs\", \"src/cli/tests_misc_10.rs\", \"src/cli/tests_cov_notify.rs\", \"src/cli/tests_status_core_5.rs\", \"src/cli/tests_validate_core.rs\", \"src/cli/graph_intelligence_ext.rs\", \"src/cli/tests_apply_20.rs\", \"src/cli/tests_cov_notify_2.rs\", \"src/cli/graph_quality.rs\", \"src/cli/tests_cov_fleet.rs\", \"src/cli/tests_graph_core_3.rs\", \"src/cli/tests_cov_dispatch_3.rs\", \"src/cli/validate_paths.rs\", \"src/cli/tests_apply_21.rs\", \"src/cli/dispatch_status.rs\", \"src/cli/tests_status_core_7.rs\", \"src/cli/status_maturity.rs\", \"src/cli/tests_apply_18.rs\", \"src/cli/tests_status_core_1.rs\", \"src/cli/tests_apply_19.rs\", \"src/cli/tests_misc_8.rs\", \"src/cli/tests_apply_7.rs\", \"src/cli/tests_apply_5.rs\", \"src/cli/status_recovery.rs\", \"src/cli/graph_topology.rs\", \"src/cli/tests_status_core_4.rs\", \"src/cli/tests_apply_15.rs\", \"src/cli/tests_fleet_ops.rs\", \"src/cli/validate_ordering.rs\", \"src/cli/graph_intelligence_ext2.rs\", \"src/cli/tests_status_core_3.rs\", \"src/cli/tests_validate_core_1.rs\", \"src/cli/tests_status_core_9.rs\", \"src/cli/graph_intelligence.rs\", \"src/cli/tests_drift.rs\", \"src/cli/tests_apply_16.rs\", \"src/cli/validate_ownership.rs\", \"src/cli/tests_apply_8.rs\", \"src/cli/tests_cov_args_extra.rs\", \"src/cli/graph_export.rs\", \"src/cli/dispatch_status_ext.rs\", \"src/cli/tests_validate_core_2_b.rs\", \"src/cli/tests_apply_12.rs\", \"src/cli/status_intelligence_ext2.rs\", \"src/cli/status_intelligence_ext.rs\", \"src/cli/status_quality.rs\", \"src/cli/tests_apply_17.rs\", \"src/cli/status_resilience.rs\", \"src/cli/tests_apply_13.rs\", \"src/cli/tests_validate_core_1_b.rs\", \"src/cli/graph_advanced.rs\", \"src/cli/status_operational_ext2.rs\", \"src/cli/tests_misc_9.rs\", \"src/cli/tests_graph_core_1.rs\", \"src/cli/tests_init.rs\", \"src/cli/tests_cov_notify_4.rs\", \"src/cli/tests_apply_14.rs\", \"src/cli/tests_misc_4.rs\", \"src/cli/dispatch_apply.rs\", \"src/cli/tests_apply_4.rs\", \"src/cli/tests_status_core_8.rs\", \"src/cli/tests_apply_22.rs\", \"src/resources/network.rs\", \"benches/core_bench.rs\"])" + }, + { + "hypothesis": "Spec & Roadmap Quality", + "method": "SpecQuality", + "falsified": false, + "is_blocking": true, + "explanation": "No spec file found (optional)", + "evidence_summary": null + }, + { + "hypothesis": "All changes pushed", + "method": "GitHubSync", + "falsified": true, + "is_blocking": true, + "explanation": "7 uncommitted file(s)", + "evidence_summary": "GitState { unpushed_commits: 0, dirty_files: 7 }" + }, + { + "hypothesis": "All examples compile and run", + "method": "ExamplesCompile", + "falsified": false, + "is_blocking": true, + "explanation": "No examples cache (run 'cargo build --examples' to populate)", + "evidence_summary": null + }, + { + "hypothesis": "pmat-book validation passes", + "method": "BookValidation", + "falsified": false, + "is_blocking": true, + "explanation": "pmat-book not found (skipping validation)", + "evidence_summary": null + }, + { + "hypothesis": "No new SATD markers (TODO/FIXME/HACK)", + "method": "SatdDetection", + "falsified": false, + "is_blocking": true, + "explanation": "No new SATD markers (0 existing)", + "evidence_summary": null + }, + { + "hypothesis": "No new dead code introduced", + "method": "DeadCodeDetection", + "falsified": false, + "is_blocking": true, + "explanation": "No dead code detected", + "evidence_summary": null + }, + { + "hypothesis": "All files have >= 95% coverage", + "method": "PerFileCoverage", + "falsified": false, + "is_blocking": true, + "explanation": "No per-file coverage data (run 'make coverage'), threshold: 95.0%", + "evidence_summary": null + }, + { + "hypothesis": "make lint passes", + "method": "LintPass", + "falsified": true, + "is_blocking": true, + "explanation": "No lint cache. Run 'make lint' first (O(1) requirement)", + "evidence_summary": "BooleanCheck(false)" + }, + { + "hypothesis": "All match arm variants have test coverage", + "method": "VariantCoverage", + "falsified": true, + "is_blocking": true, + "explanation": "20 untested match variant(s): src/cli/dispatch_misc.rs::Fmt(FmtArgs { file, check, src/cli/dispatch_misc.rs::Migrate(MigrateArgs { file, output, src/cli/dispatch_misc.rs::Bench(BenchArgs { iterations, json, src/cli/dispatch_misc.rs::Output(OutputArgs { file, key, json, src/cli/dispatch_misc.rs::Policy(PolicyArgs { file, json, src/cli/dispatch_misc.rs::Workspace(sub, src/cli/dispatch_misc.rs::Secrets(sub, src/cli/dispatch_misc.rs::Completion(CompletionArgs { shell, src/cli/dispatch_misc.rs::Schema, src/cli/dispatch_misc.rs::Env(EnvArgs { file, json", + "evidence_summary": "FileList([\"src/cli/dispatch_misc.rs\", \"src/cli/dispatch_misc.rs\", \"src/cli/dispatch_misc.rs\", \"src/cli/dispatch_misc.rs\", \"src/cli/dispatch_misc.rs\", \"src/cli/dispatch_misc.rs\", \"src/cli/dispatch_misc.rs\", \"src/cli/dispatch_misc.rs\", \"src/cli/dispatch_misc.rs\", \"src/cli/dispatch_misc.rs\", \"src/cli/dispatch_misc.rs\", \"src/cli/dispatch_misc.rs\", \"src/cli/dispatch_misc.rs\", \"src/cli/dispatch_misc.rs\", \"src/cli/dispatch_misc.rs\", \"src/cli/dispatch_misc.rs\", \"src/cli/dispatch_misc.rs\", \"src/cli/dispatch_misc.rs\", \"src/cli/dispatch_misc.rs\", \"src/cli/dispatch_misc.rs\"])" + }, + { + "hypothesis": "No fix-after-fix chains exceed limit", + "method": "FixChainLimit", + "falsified": false, + "is_blocking": true, + "explanation": "No fix chains > 3 consecutive commits", + "evidence_summary": null + }, + { + "hypothesis": "Cross-crate integration tests pass", + "method": "CrossCrateParity", + "falsified": false, + "is_blocking": false, + "explanation": "No cross-crate config (create .pmat-work/cross-crate.json to enable)", + "evidence_summary": null + }, + { + "hypothesis": "No performance regressions detected", + "method": "RegressionGate", + "falsified": false, + "is_blocking": false, + "explanation": "No benchmark cache (run benchmarks to populate .pmat-metrics/benchmark-status.json)", + "evidence_summary": null + }, + { + "hypothesis": "No incomplete proofs (sorry) introduced", + "method": "FormalProofVerification", + "falsified": false, + "is_blocking": false, + "explanation": "No .lean files with sorry found", + "evidence_summary": null + } + ], + "overrides": [], + "summary": { + "total": 22, + "passed": 17, + "failed": 5, + "warnings": 0, + "overridden": 0, + "allows_completion": false, + "health_score": 0.7727272727272727 + }, + "content_hash": "c7cdae7ee85938fcf9340b9af632068a30842a1e479fb19a429658b6115427b6" +} \ No newline at end of file diff --git a/.pmat-work/PMAT-022/rescue/rescue-2ba4b846-288a-49b3-92cb-b797d84e8294.json b/.pmat-work/PMAT-022/rescue/rescue-2ba4b846-288a-49b3-92cb-b797d84e8294.json new file mode 100644 index 00000000..8cb37989 --- /dev/null +++ b/.pmat-work/PMAT-022/rescue/rescue-2ba4b846-288a-49b3-92cb-b797d84e8294.json @@ -0,0 +1,21 @@ +{ + "rescue_id": "2ba4b846-288a-49b3-92cb-b797d84e8294", + "work_item_id": "PMAT-022", + "timestamp": "2026-03-02T15:31:02.421792931Z", + "violated_clause": "No vulnerable dependencies added", + "strategy": { + "ManualIntervention": { + "guidance": "Run `cargo audit` to identify vulnerable dependencies, then update or replace them." + } + }, + "diagnosis": { + "summary": "Manual intervention required: Run `cargo audit` to identify vulnerable dependencies, then update or replace them.", + "suggested_actions": [ + "Run `cargo audit` to identify vulnerable dependencies, then update or replace them.", + "Re-run: pmat work complete " + ], + "generated_artifacts": [] + }, + "outcome": "ManualActionRequired", + "retry_allowed": true +} \ No newline at end of file diff --git a/.pmat-work/PMAT-022/rescue/rescue-71c216f2-abef-4c2b-b72f-091d2ddb25d5.json b/.pmat-work/PMAT-022/rescue/rescue-71c216f2-abef-4c2b-b72f-091d2ddb25d5.json new file mode 100644 index 00000000..805f2092 --- /dev/null +++ b/.pmat-work/PMAT-022/rescue/rescue-71c216f2-abef-4c2b-b72f-091d2ddb25d5.json @@ -0,0 +1,21 @@ +{ + "rescue_id": "71c216f2-abef-4c2b-b72f-091d2ddb25d5", + "work_item_id": "PMAT-022", + "timestamp": "2026-03-02T15:31:02.421864490Z", + "violated_clause": "All changes pushed", + "strategy": { + "ManualIntervention": { + "guidance": "Push all local commits: `git push origin HEAD`" + } + }, + "diagnosis": { + "summary": "Manual intervention required: Push all local commits: `git push origin HEAD`", + "suggested_actions": [ + "Push all local commits: `git push origin HEAD`", + "Re-run: pmat work complete " + ], + "generated_artifacts": [] + }, + "outcome": "ManualActionRequired", + "retry_allowed": true +} \ No newline at end of file diff --git a/.pmat-work/PMAT-022/rescue/rescue-d146298c-e504-474c-99fb-878b4fd1edab.json b/.pmat-work/PMAT-022/rescue/rescue-d146298c-e504-474c-99fb-878b4fd1edab.json new file mode 100644 index 00000000..93c31867 --- /dev/null +++ b/.pmat-work/PMAT-022/rescue/rescue-d146298c-e504-474c-99fb-878b4fd1edab.json @@ -0,0 +1,21 @@ +{ + "rescue_id": "d146298c-e504-474c-99fb-878b4fd1edab", + "work_item_id": "PMAT-022", + "timestamp": "2026-03-02T15:31:02.421841746Z", + "violated_clause": "No file exceeds 500 lines", + "strategy": { + "ManualIntervention": { + "guidance": "Split large files using extract-module refactoring. Target files exceeding the line limit." + } + }, + "diagnosis": { + "summary": "Manual intervention required: Split large files using extract-module refactoring. Target files exceeding the line limit.", + "suggested_actions": [ + "Split large files using extract-module refactoring. Target files exceeding the line limit.", + "Re-run: pmat work complete " + ], + "generated_artifacts": [] + }, + "outcome": "ManualActionRequired", + "retry_allowed": true +} \ No newline at end of file diff --git a/.pmat-work/PMAT-023/contract.json b/.pmat-work/PMAT-023/contract.json new file mode 100644 index 00000000..b21bdccb --- /dev/null +++ b/.pmat-work/PMAT-023/contract.json @@ -0,0 +1,5761 @@ +{ + "version": "5.0", + "work_item_id": "PMAT-023", + "created_at": "2026-03-02T15:31:21.235874107Z", + "baseline_commit": "84433302ec6739ce35f65c2d1ca8986767549141", + "baseline_tdg": 0.0, + "baseline_coverage": 0.0, + "baseline_rust_score": 0.0, + "baseline_file_manifest": { + "files": { + "src/cli/tests_status_core_10.rs": { + "content_hash": "66d3de64c23cdbdba6cb3d9bdee6971b446e737c2f431691ec0af0c8a62fe023", + "lines": 252, + "functions": 30, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/planner/tests_filter.rs": { + "content_hash": "2827ee3bfa4044aa72aee8cb2748a18cf1199839f9ecadd693ae3e599c0207b7", + "lines": 133, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/purifier.rs": { + "content_hash": "baa6efd98650a7215e3625953387dee9e5dd2124122d2bdcdc5000da2200c967", + "lines": 91, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_sandbox_exec.rs": { + "content_hash": "8fdfb88e74621caec25f8073fcf3fdbd10edd452448f4b6b265c55ea9b466ffa", + "lines": 248, + "functions": 18, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/recipes.rs": { + "content_hash": "5bf513847e93b5f32beb6ae07e4ae664a42f57ef1693e93b1449c4eb9f3a20ef", + "lines": 138, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/tracer.rs": { + "content_hash": "7ee607dfc9017211051711fad0510f80f7dea80cdb65a7f03528ed64ef39f3cc", + "lines": 488, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/machine.rs": { + "content_hash": "1016a4470cfb85dfcd868df21fe8086a3b18c842765eab1d22f967aff8f525b2", + "lines": 533, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_4.rs": { + "content_hash": "adfe0851995390d19faae73140f40d2f5b7c70a730026d0a8410ae7eb122672c", + "lines": 707, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/mod.rs": { + "content_hash": "3534660afbd68852179095bcc91c867aec2e4c43c5a8567ae7ff5a5963553a99", + "lines": 587, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_alerts.rs": { + "content_hash": "5c22a3e00b7ba28ba72eafefabc0e7450e12428873514882f634d0ec56ce8127", + "lines": 377, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_derivation.rs": { + "content_hash": "ca933c0431c5cc9b6f89f0db012202a65a6387207bdb00dd80a8cdd2dd9f5016", + "lines": 293, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_edge_record.rs": { + "content_hash": "06e43c61e6982f518304ef15053cec6c917db1fceffc74e05ea068d9923ed59a", + "lines": 420, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_validate3_c.rs": { + "content_hash": "9fd07efa885746790d5b0da5015a316ac1314ea36c23c6a81f5da3174a60d922", + "lines": 454, + "functions": 57, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_check_2.rs": { + "content_hash": "90f36300ab8d3ac244bea609b6f03f08247aea096fc30cbf25fb45a8cf6cb6f6", + "lines": 411, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_compliance.rs": { + "content_hash": "189ea51340b3381cae608da38eeac89e569cc1f7f918b75cfb66d82a9dff6499", + "lines": 208, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_misc2_b.rs": { + "content_hash": "f18f96451cb4e19cefa0a985dceb3afa1871798d2e3be85141e1685234c17263", + "lines": 298, + "functions": 27, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_governance.rs": { + "content_hash": "7909756818caadc8ce5782aa8b4993c340675b9502259363f67ea01de304c263", + "lines": 480, + "functions": 22, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase70.rs": { + "content_hash": "2a92c7115123b83d8d0b4160f3e9332abbea33cd994106a7e8b93c1fc3e2f376", + "lines": 280, + "functions": 24, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/tests_dispatch_b.rs": { + "content_hash": "b198ec9a4f125510c39152ba9dd89b831861c481ea5d387a987171a7d88c04c7", + "lines": 309, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_lock.rs": { + "content_hash": "f7421ffba17f648c183009ee32a2f9f35e75a8e6870b962a25444f517d30c367", + "lines": 492, + "functions": 65, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/recipe/mod.rs": { + "content_hash": "a40beb6014ade2c9c0a635661efaac91105151fa0efc8d077475cff6f6efc4b8", + "lines": 23, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_security_ext.rs": { + "content_hash": "f66fe1fc9ea7278efa07102a67120cb60ec48798452be1d870ebc4394f7fa674", + "lines": 486, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/conditions.rs": { + "content_hash": "834a0e865f4515947593fc5c5327d23504a78579aa8283aa689dfc48e864f1cf", + "lines": 321, + "functions": 26, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase66.rs": { + "content_hash": "0d4492c526b77f8aa5d53713e6a1ef457a203f56bd8742765463fea2cd702256", + "lines": 204, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/far.rs": { + "content_hash": "705a31a330e322bc78bba74d76cabb4e90d8cecaf72d126745a70886d0a0edf8", + "lines": 196, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/conda.rs": { + "content_hash": "92a0b3d6e29c245f814f7e4b524dfab625f49ab2b6b2f4374a5fc1c445a96d55", + "lines": 307, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/workspace.rs": { + "content_hash": "d8b9e8bfa055def6a3546c6467ca5c956337bd0df23c6a27449ce14553cc410d", + "lines": 159, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/includes.rs": { + "content_hash": "316b75cb0f563a0b3df5e4e18fb2e5a47283f5b73544559bee00e293f58a117a", + "lines": 51, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_history.rs": { + "content_hash": "fbeabf5f857e37748c156384889a1b7ff8e67b4b9ef626077d8e82ffad8bb45d", + "lines": 230, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/recipe/validation_types.rs": { + "content_hash": "f68276853e785ea6476c231e7aa420e9b9b4d6af0232dc4cf841ac3bb6849b0c", + "lines": 93, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase92.rs": { + "content_hash": "cc5bc0612ff315eaa14e960c3bbbf8c0dccd5663df72c514d0362f04fc6df330", + "lines": 310, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/types/config.rs": { + "content_hash": "273ef42049338b1bcb6eab93232ef065b5848a195af8686dcfa58019bfc7fbb0", + "lines": 373, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/parse_and_plan.rs": { + "content_hash": "e02dd5813db8ce9426d3038a24a8cbd129e753de4e57630fbaa872b686c7a10b", + "lines": 95, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_concurrent.rs": { + "content_hash": "d06fa49b373312851955fe8ac459c25ea1a833b9c29adfbc9fdb160e11bd5be0", + "lines": 356, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_remaining_3.rs": { + "content_hash": "db47c0551191717e888422f39d498a0d91007c5eacbb1402db5a9561bff12c48", + "lines": 454, + "functions": 42, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/helpers_time.rs": { + "content_hash": "3cc6c787859c42c701962a8943fb8d48c502416c59af9add56c40b500a1b278e", + "lines": 82, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase59.rs": { + "content_hash": "d716283070c6018f6228d6aaebe527ce49d4ab8d1f29046af162ad23fccfeca8", + "lines": 120, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_9_b.rs": { + "content_hash": "3a831a32ac2c14170211c76398f8ca81dda570c83f38df1e7ce7cafc5e3bae24", + "lines": 206, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_7.rs": { + "content_hash": "b53d80fc3bb932221f9f7ac428f3b0c9e3841a0e908ddae73f407958e5be08fc", + "lines": 703, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_12.rs": { + "content_hash": "a23683659b99ed53f1d94379a414bb1088617b377ef4d672d3c7523e6330e14b", + "lines": 584, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_7_b.rs": { + "content_hash": "bd7f7b8ac3b3ac62a3c27a9211af78ca6cd5ced4eb5cdcbe1d807fa6f3eb28c7", + "lines": 476, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_path.rs": { + "content_hash": "28b2dc28f29734d1a759e39bf9b5d9d838b0d0bb23a31fc9c3ec7c9080c36b46", + "lines": 95, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_contract_coverage.rs": { + "content_hash": "1486025963182ecdc9a8d555929e9d57613dc66463f139225f9f477db4753aa0", + "lines": 293, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_validate2.rs": { + "content_hash": "de5ed195297c91cbf1e4853a368f389e6d9471e6e9fae63e7f4820f5dbbaff77", + "lines": 396, + "functions": 30, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/lock_audit.rs": { + "content_hash": "781e7c728c7a0b8a9b2204000a53f1fd58ed33aad63202aa5020e3f39e7f3bbd", + "lines": 382, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/anomaly_detection.rs": { + "content_hash": "7df1ddb35aa1377af77266b5b10313781ecdd0b715bb78fefaa28d4b1dc9a2b0", + "lines": 123, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_7_b.rs": { + "content_hash": "c3a4d11488b362056db0044cb00a679d032a6055d5b07e23560563ead2f5bec0", + "lines": 204, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/lockfile.rs": { + "content_hash": "be61e70b63d980a44ccc9a57da9cfc04fc6cf842cea0b3724d756dda6c304caf", + "lines": 98, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch_notify_custom.rs": { + "content_hash": "f8037c4ca348c06dc50eb5ee323d77e9412fb370cf0c5299f5b9716b334488d8", + "lines": 427, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/state/mod.rs": { + "content_hash": "e0762e985be68ee38bcbfb5f03e876243ebd68d9184bddca38da517221441a81", + "lines": 335, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_resilience.rs": { + "content_hash": "b3bc5904cb1ebdcab05ac2b3d4466bc50fb7f3b7a4e77b83ad1e9058c1f888d8", + "lines": 699, + "functions": 27, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/shell_purifier.rs": { + "content_hash": "f94c295e75a0ac051d88da44468ba898864eb937bfd8edc2409f61e7d0081fc0", + "lines": 125, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/tests_template.rs": { + "content_hash": "6dc64dac971eaba5ad71d818a09ef20d43bd1a8784af2c8054cdd59506722691", + "lines": 423, + "functions": 30, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/resource_types.rs": { + "content_hash": "68f2bbc06de073e745215d0a5f55ec9b778b8f4296d7acdd81c4279d1c75f059", + "lines": 320, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/mcp/mod.rs": { + "content_hash": "3201dad7d2470e767c9e463c855586d805719b6af472a51bf914d540e6d92687", + "lines": 21, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase74.rs": { + "content_hash": "769ca19a23eeea8da2e900c8ab4dca4d1ffcfd0b29c03f9133b8396ef000131a", + "lines": 281, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/pin_tripwire.rs": { + "content_hash": "6642a1bbc18f4ff12b66e49e0e7751744ded7a5a4fdfcad6cb8aa991bb6bf3d0", + "lines": 117, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/tests_hasher_b.rs": { + "content_hash": "f5b697b99c5076d1499ed56d039551e4d573da8e5140ab3199102cdc0ab119a3", + "lines": 265, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/planner/tests_helpers.rs": { + "content_hash": "20e2adedc50de5de8155b3f1060372f90561cc39b21bb5bcbfee8b85718daac2", + "lines": 90, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_dispatch_4.rs": { + "content_hash": "cd7a680a2c785cf0ad6c703f6073369b70160109b5abdbfec4e54cc094312e04", + "lines": 500, + "functions": 18, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_22.rs": { + "content_hash": "bf279a9d6ae125679a585c944782b7210e25699abf2834e397a1242c0378ed0a", + "lines": 588, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/store_provider_import.rs": { + "content_hash": "c94d617cd5ae49aac9449b53c444890eb8c33633c747854f23eb18fcaab7490a", + "lines": 154, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_advanced.rs": { + "content_hash": "577782791494f3a2f1f4701ec33e12fe7381a0ab660dc7601d8879297ce6063c", + "lines": 488, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch_status_ext.rs": { + "content_hash": "38caa2aed92591fe40388046bd7b21fe3209088d0376b921fca0982e63e37c1f", + "lines": 637, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_paths.rs": { + "content_hash": "f744e57ef946a04fa8ab74b4b2a5c04a382e2ec42a7cf6b3a78fb6467babad98", + "lines": 517, + "functions": 19, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/recipe/types.rs": { + "content_hash": "3fdb12d938b47d6eec1f737f3bec57f30ddcc53e293239feae792dd37d1b8823", + "lines": 65, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/apply_variants.rs": { + "content_hash": "7fb2ff4c429a910521f9baf6668437bca47db6c49ebdc70574e1b38a380731b7", + "lines": 349, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_graph_core_2.rs": { + "content_hash": "02f18590f6d10e4b1d939241a15d9bac785ac865c4dd244ab4191b5500576f93", + "lines": 1041, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_core.rs": { + "content_hash": "52906653e59d2b705f0221e6d82d69271897aed0864605f1a9fca1c915db5d80", + "lines": 263, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_graph_core_1.rs": { + "content_hash": "b996492b79f04f8f625bd3b70571a2f5141cc8abb40404afd8256f97d6a1af27", + "lines": 1033, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/mod.rs": { + "content_hash": "a531550613b6809bd1819e24a0825160f11c2ce53bcfd7a5ed0749070a530b55", + "lines": 36, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/types/mod.rs": { + "content_hash": "03c03d2a2752ede3f9a5d3d56726cc3e448f874db26732c23f6c26f859565256", + "lines": 30, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_compliance.rs": { + "content_hash": "fe4dc8afed79cac5f9f1ec0a300860a17b11571a8e284bce1c599435fd73b546", + "lines": 327, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/infra.rs": { + "content_hash": "7251b32b2e6046c6473ce1a8606134553996abc1a2419a0c1188f5a0bb622e61", + "lines": 483, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_status_1.rs": { + "content_hash": "6bec4145c05fa7caaa3d05fdf3515f0782120a8385406fce9df4f4a3c09cd896", + "lines": 467, + "functions": 65, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/network.rs": { + "content_hash": "b1b8abdffb20b6563eb80db130032e0cc1f92f3e86c28f8917d6082e6e211807", + "lines": 535, + "functions": 37, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_provider.rs": { + "content_hash": "223070fc681c59757242061bce3987209d1f621c4ba1cfe92d0dd9d5a318de0e", + "lines": 263, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/lock_security.rs": { + "content_hash": "8018b5a7797f5483703a32671e476ecbc4f8afe01eb6a727a39679dedb706be6", + "lines": 392, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/gpu_container_transport.rs": { + "content_hash": "d23eca486eb1020410cd6f894b19be747524b4552a22ebb07ce5b5e8fe03e84a", + "lines": 220, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_6.rs": { + "content_hash": "22c4fa186d85c509e018a731fd3ccdea1d2ae83cd9152786fbda97376fd55c68", + "lines": 401, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/tests_scoring.rs": { + "content_hash": "7a4fddcf8dc5af786a9dbe5148c85780476095ce1c582b13e4cf2f864d017062", + "lines": 367, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/planner/tests_describe.rs": { + "content_hash": "92b1a9b0f314c99d48ca801380eea19c8d8a97952ee947a29e25e649e48a7c73", + "lines": 77, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/recipe/tests_integration.rs": { + "content_hash": "76bdc5f3c0d88749442c9f0438bd278b9c9a65f76aa3ad2210ec0162b1f773ec", + "lines": 453, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_23.rs": { + "content_hash": "ffcf1444f241cce57ee0d1b35c936fc474b5749af87bdad1c3b5a254773cfa68", + "lines": 260, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/tests_functions.rs": { + "content_hash": "afad07b72fb485caea6cbac2f0efce2b0d3c27d9b73008fa8fb1f55345d5f58a", + "lines": 240, + "functions": 28, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/types/resource.rs": { + "content_hash": "58e75f542452698f3ff375faebc9fe6e3672dca984bf84404375aa68fbca6d43", + "lines": 438, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/misc_args.rs": { + "content_hash": "523094e0263ddeb5241d7d804636081e17fc86d0dd6ebd6fd63222fe7036dc50", + "lines": 349, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/planner/mod.rs": { + "content_hash": "7c07701fd6517c704b28c3dc0d946e0cd5adc8ffa371f09449e748734402f036", + "lines": 376, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_sandbox.rs": { + "content_hash": "53da5a42b62345bc14b3ed96491582b76080d76c3050b9be2fb06315ca9e2fb8", + "lines": 218, + "functions": 22, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_transport.rs": { + "content_hash": "e6020dc225f3929dbf93a9fa1c4abc21bc9b5c0fe089f62c1e0772014bfec906", + "lines": 208, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase94.rs": { + "content_hash": "fff4cfa1c2fb77c8c79f9a7610da253dd0e2aa118e2dd7cb3f01779095bf61b1", + "lines": 425, + "functions": 24, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/derivation_exec.rs": { + "content_hash": "c4db2a22e9bd8f74b45f19e88050cbadff336e8b002b8a75d0ebdf8686f0ee0e", + "lines": 352, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_intelligence.rs": { + "content_hash": "7d8eeb261c0ea722ff0134954f29b9742ef87ae24b9bf2ea78290081e5d3aa25", + "lines": 591, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_remaining_4.rs": { + "content_hash": "c8529446eb09eb388bd644f5dec34d0a0f65c52a4a3180b6328e168c22ea1313", + "lines": 427, + "functions": 44, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/task.rs": { + "content_hash": "cac6107376b85edd8b7c7a1fc9cbe8772a7508d549a74b183420601ddc15ef37", + "lines": 165, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_lock_core_1.rs": { + "content_hash": "5a2e2f81c6637643d2c491fdaab1073189f2c26c0ac05cd6e0a267b169a86ad7", + "lines": 457, + "functions": 39, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase99.rs": { + "content_hash": "3e99a44c3fe4b8c4734bb170b82d7dd8825335c7b3980ef6f7504341aba9e153", + "lines": 237, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/tests_scoring_b.rs": { + "content_hash": "d78bfb4b453e0484eeccc3c859cf0a4217d77e1200e70fd2b947d9f7fc5ab5f3", + "lines": 488, + "functions": 32, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/cron.rs": { + "content_hash": "484d9fd86bd6cc757e67bd4a7b8eeb0f3a8efd9f1a2550414382c8c43a9d3b3f", + "lines": 464, + "functions": 32, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_converge.rs": { + "content_hash": "c714edb89b5d6c1a1f63e42aab552d00fc1dfe4c523a43f514862c6c8f3d8320", + "lines": 339, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/planner/tests_when.rs": { + "content_hash": "7d781ca2803bccc31c5a5e4602b67933f9aa421dd2e9f70fa4b5c32eddf38d70", + "lines": 103, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_validate.rs": { + "content_hash": "7b9db1114d00359a0bc997e5562cfbdc1c2b59b1e95fb423eaae4f35571af7e0", + "lines": 168, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_show_1.rs": { + "content_hash": "146e30fe694909412f1d8a3157c58e7c8269c41ce0c7f35dc7e817d881833ab4", + "lines": 418, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_args_3.rs": { + "content_hash": "6fb37cabbcb7b47f98717eb9c3906331482a7e7d0da85209b773dadeb4e6d401", + "lines": 392, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_workspace.rs": { + "content_hash": "6bc034afcb07773cf8fb294368c3d8dd2396f64bfb02ae65d5d524ff35e27605", + "lines": 187, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase81.rs": { + "content_hash": "ceeb1be347bdf90a1f6618d662a2ee711df8f8a7eb295889934b5374108f4858", + "lines": 289, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_intelligence.rs": { + "content_hash": "5e77edc6f71d2664eddb5d0231eea7a01170920d47241fb2246ac48edc0251fc", + "lines": 656, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase96.rs": { + "content_hash": "2ca70a55830fa12021b91459cfd36a7fd2f6f70197ead4d6f109dd06abd98902", + "lines": 224, + "functions": 29, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_validate_transport.rs": { + "content_hash": "af826465479da479476baf68a2514356e913912de11873d61532a915562a1657", + "lines": 379, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/types/policy.rs": { + "content_hash": "9669a0f635a6090ccb2b222823b3632367cd5c303e24c2f47c33c2430c0114ef", + "lines": 118, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase83.rs": { + "content_hash": "9234ec3986faf13c9d6bd8fe87076bb84caab479f5be32081d2b50e7d74b963d", + "lines": 289, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_validate3.rs": { + "content_hash": "2cc0d2323726ddf8a93ae63a7590f55ecb15466f0c9176dee6188c589f5d84ab", + "lines": 410, + "functions": 51, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/tests_dispatch.rs": { + "content_hash": "f8aeeb82af4295c3640425dc973d3fe86cb45df833613c5d243f5bc976cf4cdb", + "lines": 394, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/diff_cmd.rs": { + "content_hash": "aeca8eb5893d02c7ec86beb7eb0c2f5708d34c497f74ae33047c5d9133ce2a24", + "lines": 378, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_15.rs": { + "content_hash": "888dabb060c0a2d85d4e41cf85931912a317a4e27fb8626fc54c8e9ac7c447d9", + "lines": 584, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_file_b.rs": { + "content_hash": "3bec80020c9d09db1945cb4e43c56c0a623cb27e60da53ad8bf3d31594414363", + "lines": 391, + "functions": 32, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/secrets.rs": { + "content_hash": "128f94dbc3f53c2a599e3c0b70b8efdca8b785b4d3303bfe07bead8a30a65ad6", + "lines": 201, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_core.rs": { + "content_hash": "6b23213ebaebf35c315cc8c8b6b36d574434ec9561e378484c287df2ad967f09", + "lines": 378, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_intelligence_ext2.rs": { + "content_hash": "ddaa73730c7560e3746b74fc84b6d38345ca14c7d20823cd31db285ba95a7500", + "lines": 643, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/fleet_ops.rs": { + "content_hash": "4018fc6ea23d2e1faec50b593ceadb32beaefc69a1bf76ef39e3c0c0bad3dbf7", + "lines": 422, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_dispatch.rs": { + "content_hash": "6358cf318479593cf597f419d64a74af27bac5f881755714a645d7abd9f4e972", + "lines": 466, + "functions": 29, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/mod.rs": { + "content_hash": "4be4616b935c9a86bd39e95e6310c1c6a1ab7cc607493b9ecd10edf36d2d9325", + "lines": 340, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_notify_2.rs": { + "content_hash": "96b1d9717c6957af6517e4297586f248abe8803f8c282001332cd194aeb284ca", + "lines": 529, + "functions": 49, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_show.rs": { + "content_hash": "c359a181ae6f3ef222eef0553c6d2c97aeb833b8c5cbfcac40da7f46bc9d269f", + "lines": 248, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_fleet.rs": { + "content_hash": "1c0159832f389c93c2591da2ee366acf6256f9333c0025cdc581eb4e2f525207", + "lines": 526, + "functions": 51, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_fleet_ops_1.rs": { + "content_hash": "5db177b33104bf4e9c9a6ae3060e9aebfef6341175f3f69727b3c8c0a51acfbb", + "lines": 50, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_trends.rs": { + "content_hash": "64ba6ab06691fb40befafabba07c1ca9f42ef1b040dd8a5fc6949d7a03bd9aef", + "lines": 412, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/cache.rs": { + "content_hash": "b0a9420e9c7cad743ca5ee26f5b366e3f64a3599499f83e5dc8d7f526c2570ed", + "lines": 175, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_4.rs": { + "content_hash": "daf747d1945c7b4cc9fdcd35cae653abb2446da79354f4d1ace15a885b27bf08", + "lines": 585, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_helpers.rs": { + "content_hash": "ac376d55982d7b65a4276da58b6e9d09bf96add09cfa19c92116b5dde0b8548a", + "lines": 246, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/copia/tests.rs": { + "content_hash": "99945b226f51c6816a3dd07f49ca4740319bf41000f379e06f00bc7560602e1c", + "lines": 307, + "functions": 0, + "max_complexity": 0, + "category": "TestCode" + }, + "src/cli/check_test.rs": { + "content_hash": "7ad5988d22f832718573ae82a76be7f2b607c9ec3e1cb2cc6d18c0b7da596da6", + "lines": 254, + "functions": 0, + "max_complexity": 0, + "category": "TestCode" + }, + "src/core/executor/tests_localhost.rs": { + "content_hash": "954988f33b820310b58963906a52d14efb39fa171ccdce0d5d845e96526d30ca", + "lines": 334, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/check.rs": { + "content_hash": "ea85e4683f4490afc10d126fb3ebcd379b982ae73f1abf8c68380c7c2281f838", + "lines": 299, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/mod.rs": { + "content_hash": "8d9bb67095febd89ec5e0a9a6e0f1bc97a1454c28d674f36dc5357cdc8f8eeae", + "lines": 240, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_parallel.rs": { + "content_hash": "f82bb8f72e4d6b25694ffeb7abaa01e6e77934ee96fd2b897ff6845fb18f6582", + "lines": 404, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/convert.rs": { + "content_hash": "02a72e67c50e2ff057114ec4d407d4de92e92e5b54ebda75c477862fcbfe930d", + "lines": 221, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_resources.rs": { + "content_hash": "86864584590b7104eb79dfd942dadbf2edf0539ab749e174a78d2419452cd311", + "lines": 376, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_notify.rs": { + "content_hash": "c413f83c75c094afe92882c50880cdd8db88af26daeea15890fa9614723e78fb", + "lines": 789, + "functions": 45, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_status_4_c.rs": { + "content_hash": "3cb668f82e29559aeee7bf75908f8190621ef88a0bcbf38ab26222f450152862", + "lines": 476, + "functions": 56, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_analytics.rs": { + "content_hash": "8190e30cea38bb3474e443956876f16a86b1b6670f8b7adf1ace5e5745f99b05", + "lines": 450, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/drift/tests_edge_fj132_b.rs": { + "content_hash": "703679ec24f82db736126262db62b34f04517ff4e038279669c874dbaa646fb4", + "lines": 272, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/codegen/mod.rs": { + "content_hash": "98e75556969ea2b3ab90bc22de30fcbfd8a303426fb88845768c65bee0a7e51a", + "lines": 15, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/convert_exec.rs": { + "content_hash": "95e217ec1fb25190a3dbf55136ef9ff656e46991df733599b93fab3bdc06861b", + "lines": 180, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_compliance.rs": { + "content_hash": "2c77b5f6328ed8db8bdd89c4ef5821f6af04f93116f92c9f8820286a4e5247ab", + "lines": 347, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_dispatch_3.rs": { + "content_hash": "100af1705a0d16182fe5a8969d0ca78019e0a877b49569b55e27cc654b33b0c9", + "lines": 501, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_governance_ext.rs": { + "content_hash": "594e07b068c78f44240d180b9da8754d0800db3c1ff3282436bdf07a126dbaf8", + "lines": 487, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/score_cookbook.rs": { + "content_hash": "67ff3d234d87993e17cf72b00da5d0b9c2c3237f7f09ff2a656c19a60459af18", + "lines": 104, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/resource.rs": { + "content_hash": "3bdf0233a3df72792c19239fb2e2f6adaa7797176cc84d5978f3cfd797fcaeb8", + "lines": 71, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/eventlog.rs": { + "content_hash": "66aa015f1b02ccd27b6e8e9b78b013e6cd3c873ebe2ac8087030588a90185897", + "lines": 105, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/resource_ops.rs": { + "content_hash": "276472b0a55ffda06dd7a201f583affd113ae6cd5f191f7f0f879650ac1b8134", + "lines": 403, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/docker.rs": { + "content_hash": "304c938d197087b019e5ef65b74eca68511002b2e9b60a544344c659ca1dbdc6", + "lines": 88, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_arch.rs": { + "content_hash": "940ec9891e074aa9fd5d4805cacba1d4c7b0d269c952d37ebfc9aba403f3f26b", + "lines": 152, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_queries.rs": { + "content_hash": "fc435d443a5715aba50557e2b267a94ddda0a11233fbdc0376662b99d8f9cec1", + "lines": 250, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_package_b.rs": { + "content_hash": "e00b5572eb5f2d0f5b2a128668f2e109598a73534c7df084869c90b43ba34840", + "lines": 289, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_5_b.rs": { + "content_hash": "f53c35dfbba541b5314c96e465bf4d70f91cfb37dfdb542490648323d960f409", + "lines": 474, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_resource_detail.rs": { + "content_hash": "fd5b137527c1c122fe0a93aedd0df549c38cc84ecdf1d8193667b4bcf74012b1", + "lines": 466, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase101.rs": { + "content_hash": "74758c38fa148996d240fd23b5a951e82edddb5e50b95fd15c449275065a8f57", + "lines": 207, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/store_reproducibility.rs": { + "content_hash": "e1fd38b2cc2ade0444e77a0a2d7310b7ca0d2554f9db3ae5ff1753bbc8ddd969", + "lines": 450, + "functions": 19, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_18.rs": { + "content_hash": "5cc232e1bbdfa286c5f61b9dcf404152c154bf83e9c19bc49543fbb7df7a75f4", + "lines": 585, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_paths.rs": { + "content_hash": "98f7992ab6e2fcf7abb582a9ac94899efba591d83ca50724fb4631a5302d1ddc", + "lines": 337, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_7.rs": { + "content_hash": "48e11dfaa56f1b1f15ef4370098508f3028969f1a681c328ddb6543c49fc1135", + "lines": 396, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_includes.rs": { + "content_hash": "d112a8cd39fd0b4f6fc2fab1fe30ba65277f6a6bc48787c2560431abdbddcb7c", + "lines": 432, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_16.rs": { + "content_hash": "f26edc3898c0b3cc4167c24262fd5d6bbe9713971d0bccdb892f27833bd6180f", + "lines": 585, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase63.rs": { + "content_hash": "93d3e0b887e81b6e5c2c73b7f8d09f26bc109f8523e25b3a1bc1e0a6a3bafcdc", + "lines": 193, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/codegen/tests_completeness.rs": { + "content_hash": "911cabd0471feabd23fc8d140273235e9042a8d8b8f9b6e8759cdc5c579c92d9", + "lines": 280, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_6_b.rs": { + "content_hash": "7e2a14df6b54e692c97b64d08ea54685e4e3cf5ad33a56fe6722ef70de1ede3e", + "lines": 474, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/codegen/dispatch.rs": { + "content_hash": "b0cef52bfba28729d54b320d8a05c52915033e03dbd896d1f0eaca06f6b41b5b", + "lines": 79, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_6_b.rs": { + "content_hash": "0ce4c32dfe507762fdacc944cf99a5522bb5f7cd8d80f37128307c3f6f95b46d", + "lines": 207, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_purity.rs": { + "content_hash": "a41138df84992ce18b83b566c73f0b023343475e6c450a8ea31b09f956d5b6ca", + "lines": 186, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/fleet_reporting.rs": { + "content_hash": "0f004041c55291e5130d6b8762217ae7bc3121a309e9f8912ffed6c5ca1b4853", + "lines": 368, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/recipe/tests_expansion.rs": { + "content_hash": "08d5f5a86bead9b806f586ce55375a912d51dd14e8ef67cb04c5ac1bcb228d30", + "lines": 448, + "functions": 22, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_misc.rs": { + "content_hash": "5b2ad6d320371f06b95d99256f679fc0820a723116b8bd52fed4a90751bb7498", + "lines": 463, + "functions": 19, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/mod.rs": { + "content_hash": "a7103646daa0f2f7c25ce72ec7a06f770c5aadda9b6481f7b58fdf92680da303", + "lines": 131, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_derivation_exec.rs": { + "content_hash": "4b5ee332750b330d1dec8780e7ca966c9d59b0ce17db88a4e0e946fccb94ec6c", + "lines": 281, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_helpers_time.rs": { + "content_hash": "038e90da543fb51cbba559b761d649039ffc84c0aeecab9f9bc0b763aa7efe67", + "lines": 36, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/tests_purifier_b.rs": { + "content_hash": "88ee77a349a942e64af435510638445d0cbde59a2018af5f591f72d4cb56903f", + "lines": 336, + "functions": 19, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_insights.rs": { + "content_hash": "c202889e1711fc0d1c94aa52e338515e5dcb07ecd74e83f12960bce19ffe1f20", + "lines": 350, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_8_b.rs": { + "content_hash": "9d0b1701b10b92390265cf41b623c1234fafd0e600e7fedb75a70a73de503993", + "lines": 474, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_3.rs": { + "content_hash": "2ddf48816c11aede0141eddc648728528b6c55f6e532638c37db7a9e3ef97482", + "lines": 705, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/types/state_types.rs": { + "content_hash": "77c870181340cd507179ef384395887fc0b16b2c9cd5c1ebbbfe920576174ba8", + "lines": 298, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_policy.rs": { + "content_hash": "ab672e6d66b48bd9914016ecddf58ca50752c06d0c40579e5679cf4b3869576f", + "lines": 218, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_destroy_1.rs": { + "content_hash": "3c0d589f84c8a17e42522d5b8be25e711f6344fedb9b7ce31ada530b64ef7f2d", + "lines": 257, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_infra.rs": { + "content_hash": "3b716ac33cc323623c1948692f08077c230694186832a2eaba52778daa11c773", + "lines": 306, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_2.rs": { + "content_hash": "b299404221428f44c430c474ff6684c540df14375ce9b1b68d648bc864bf0dc8", + "lines": 426, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_reference.rs": { + "content_hash": "c49c2bddda5b11f68be69125f09c88b8cdf5f063de0bc3175c9feb09b9bf0006", + "lines": 123, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_helpers.rs": { + "content_hash": "f2c5aee07158277b5539833a90498b0755ffe6f1c50d16256a3f0989016bc7b5", + "lines": 150, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core.rs": { + "content_hash": "ec2276a149ff2bab435d03b68e2b4cb0e0bf9500014607f887488c339097d43a", + "lines": 359, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_substitution.rs": { + "content_hash": "502b1ad43ed11914f569118f091a4569207765359dc2282fa5c95340e026d631", + "lines": 279, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase80.rs": { + "content_hash": "e267ae411af084f1442b0496b55e22ff991b270d68e7642f4846bef5f10c9bb7", + "lines": 289, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/mcp/tests_handlers.rs": { + "content_hash": "728f0143b27784c3eb680457f9664a4154a1af6a6662bc44e0abb06f699970b4", + "lines": 228, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_lifecycle.rs": { + "content_hash": "e2aa32b5d86669dacd3372184338375a61d4a42d0359a6e206aee5bb0c1bd8f0", + "lines": 285, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_check.rs": { + "content_hash": "8feb321d977d51fbfcbef8a625c807ddb8fd7c32c56c45bb712ab39423578c64", + "lines": 461, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_notify_3.rs": { + "content_hash": "216bccf19aab69f190b04af25c296385f62577edc54028435be95a11066c2be7", + "lines": 474, + "functions": 51, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_intelligence_ext.rs": { + "content_hash": "66d86de02b1b24a4732538620580336edb5c501d9a299fdfbe0b122c0e12643e", + "lines": 801, + "functions": 29, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_scoring.rs": { + "content_hash": "4da920733a2851796cfe33fc50b0ddb25b29b090de2c17d63b5da731c61a5014", + "lines": 435, + "functions": 24, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/ssh.rs": { + "content_hash": "e7bb315129a19f0cde6b1f62f0dbb48ec900f31d719affa4474ad1812dffe4a3", + "lines": 202, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_user.rs": { + "content_hash": "948e80757627608afc462218c4f2fc974469f0914f19a5ffe516ca4ac79217d7", + "lines": 473, + "functions": 30, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_validate3_b.rs": { + "content_hash": "72d2a8a790bcd923af56a5cdf391ac7b36fb20e6165bb3ef0ebf7392dcd45131", + "lines": 366, + "functions": 45, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/state/tests_process_lock.rs": { + "content_hash": "41e861f0d13f2c40d1aaeab5a594b62f02b39da9652be90c3991aa573016dc0a", + "lines": 85, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/drift/tests_fj036.rs": { + "content_hash": "ce89d4858eb542c3e505c8bd744c9ceb7d43ff802fbdf172f084bd088b239aa5", + "lines": 236, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/mod.rs": { + "content_hash": "c36359c0bbbcead0cc16fb65703c8bfba1fa0dee5dc8dfe9e314454d5eece642", + "lines": 27, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/tests_hasher.rs": { + "content_hash": "d631ad2b887ce07688a8a0e87a5aff2d55bddd83d2217fb5b8203aac76552631", + "lines": 276, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_17.rs": { + "content_hash": "7c0212f2ea73638a6baab961322bd7d790910205185aebe8a5a5ead6808b3719", + "lines": 586, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/store_executors.rs": { + "content_hash": "d6911852f2850e6b65bf84434172400be03adf5be7d3dc8a870cb7dba6caef28", + "lines": 385, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/user_management.rs": { + "content_hash": "778853f748c4e51e356d3964dc284e1644806b380bda3393d2d02dd0ac2137d6", + "lines": 120, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase72.rs": { + "content_hash": "0139d14fca9a40bb4118f91d4fc4ccd9c6a14577494a34ec92f84185ad97add1", + "lines": 279, + "functions": 24, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_quality.rs": { + "content_hash": "2e47b622070cafeb2e130070cf464fd630b104d8b4a3fed3736403a7628833da", + "lines": 506, + "functions": 38, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/drift_detection.rs": { + "content_hash": "6319b9280486dd5580425f9e93df747b1a32d95f0ff06c5bce38f9c0e4ebcd1d", + "lines": 127, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_notify_4.rs": { + "content_hash": "131d6aa2f1ff7d1305bac3fc8a1ae4e0c08aa179853dd625dce26fdb85c50d12", + "lines": 504, + "functions": 36, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/planner/tests_determine.rs": { + "content_hash": "518d489ffb309fa04912d0603043e3a493a8dd735d627d930d2dafa8e267a504", + "lines": 159, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/codegen/test_fixtures.rs": { + "content_hash": "3efa8147df7d4144bdabb3ea06f747bc99c10d77ff6f78b5e405342c5724a99d", + "lines": 331, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_security.rs": { + "content_hash": "534f8faf855d2ebe94871452b0e993c762ba38be7127c95f198d3f6e26dc8c49", + "lines": 436, + "functions": 28, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_validate3_d.rs": { + "content_hash": "cf497a238c35b728a1c06baf2cd495c83321eb609903fb1a2af4f6ea5f7e9955", + "lines": 410, + "functions": 51, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/store_args.rs": { + "content_hash": "f9a357e36908ba5f226d1a4cb144b346999bfdb32779aec58cbed28cb4f73360", + "lines": 246, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_core.rs": { + "content_hash": "7b0c3dd5d862930408456a0bb342f7e7b30cc1390732449d6c7402961d8de4a4", + "lines": 448, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/sandbox.rs": { + "content_hash": "935b1ae7b717149c9f30c52e6859ac131dd16e0d25ededda34f1405405180873", + "lines": 184, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/reference.rs": { + "content_hash": "c2e29b14ebf4b4fa1e516a86b4a0b8dd7913e73d566f27d15a9fc571f9b3ecc9", + "lines": 80, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_9.rs": { + "content_hash": "1453de79861b5d7e0baa50ac8f399af82c2084516d79817a7db1cd1002cad9e6", + "lines": 621, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/snapshot.rs": { + "content_hash": "83af1a99813a12ae3c8668c3a8a38bdfd54e5efabdd337cce73502b3aaf41950", + "lines": 168, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_status_4_b.rs": { + "content_hash": "3032f88e69bbee38dc979ff676b6ae8c58e0e085b551bfeafa4b3dec3fdfe768", + "lines": 335, + "functions": 42, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase69.rs": { + "content_hash": "2f2bcf585b5143f5b20d41afab3af4b82173d27fc481a5586adc2e418465110d", + "lines": 280, + "functions": 24, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_analytics_ext.rs": { + "content_hash": "dfd639fb7a3e67c66eea82ed922c7883b45f7f00b94dd0659cf56d48b6cd8ac2", + "lines": 383, + "functions": 28, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_analytics.rs": { + "content_hash": "9e5ee6bf3a334977ca44c02b677f0e56b00a40d97af4c99ffe41ae12d7fab99f", + "lines": 486, + "functions": 28, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/helpers.rs": { + "content_hash": "7cdf36a2f59e6dcf0e334b47db74a7877ba11321c4565a75c68745817abcec35", + "lines": 74, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/pepita.rs": { + "content_hash": "ba21671a08f546817c14a58857d4dfd8e893e2b7a10f1c1d5d187beb0d0e2635", + "lines": 385, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_21.rs": { + "content_hash": "d73aa2e0be9902490354a498842a6e26f671c12bed8542dac30f82c03ea056cb", + "lines": 591, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/recipe/validation.rs": { + "content_hash": "ffaa1f188e22ad0d1fa3d77f17273174eddae18e8e62cdeef3cc7272b34a6dce", + "lines": 36, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase98.rs": { + "content_hash": "3ef40d8eb024410a388a63b957bcbd8b4b2de79e9bcf915cbc13ee6c14666cb7", + "lines": 251, + "functions": 33, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_gc_exec.rs": { + "content_hash": "e1fccbbf7f3ada96e33a6782f9c8a65e637f128ec07f668a829743c66fe15bd9", + "lines": 252, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_graph_core_5.rs": { + "content_hash": "ae3424a2cefb17bb1f2ad298a20b261cbd415c077b7bb9d0706e74ef8fa24479", + "lines": 313, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase90.rs": { + "content_hash": "e9ec934562b29f5243ff4ce89b3d1c0d5ec5010fa5c8b7b0a10e330c1b86050c", + "lines": 309, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_graph_core_6.rs": { + "content_hash": "5519c2dd3380ae47ec49f8510e654123e544f501bfd99e62cd82b06a809c0aba", + "lines": 312, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_helpers_state.rs": { + "content_hash": "bdaf0fef198566aa4ea317fdf578d0d5676e470962159a2bfe61af922a2af1c0", + "lines": 147, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/template.rs": { + "content_hash": "bb4feaae6011fc97fa6a3444be4ca14a2b32d30bc1da14700669e3066c2d35c7", + "lines": 105, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_2.rs": { + "content_hash": "51da364a4e98525cd2a85ea0e759b0faaadfb012bcadb4a4c2518dc10a0aae53", + "lines": 515, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_validate_core_3.rs": { + "content_hash": "c94e86e0868d9fd06084bf3fdeb3a05303969bdd50c2ab7dcc054b93cc93b608", + "lines": 246, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_lockfile.rs": { + "content_hash": "0365f4c715e27d76c55d45058286cec808c70729a2d965ced366f4d3549f19a1", + "lines": 200, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_predictive.rs": { + "content_hash": "2f34cbe8058c7aaa467db4ced6efa82498cd3c825067615f25616ee8f8f4f381", + "lines": 489, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_store_ops.rs": { + "content_hash": "4304c34553bdf342cd25e89995504181bc8f0cfbb8b0ddf6aa64e290d7e248ce", + "lines": 160, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_governance.rs": { + "content_hash": "3c3cfe711b4c2caba6a2eb351a7d7fe324589a1e4fbb8f51dc32599f0cbda81a", + "lines": 364, + "functions": 27, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase91.rs": { + "content_hash": "fe1cf071401d8d2bdbb1229b8bc4dda46fc56537d1cb101079980bfc36a4b4fe", + "lines": 309, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_graph_core_b.rs": { + "content_hash": "d02027474bcb89eed4d4fda160b960d2bbae6e561a48fd91412f2dac283ada74", + "lines": 226, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_docker.rs": { + "content_hash": "d9dfa934ac8c8bfff1a3761cf5e0b4520fab47fe3f2996b2b10911788bd874fc", + "lines": 285, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/migrate.rs": { + "content_hash": "55472d0eb74b18c26e56d523f8416c4d51e258223d5ac29ba47d0094221f64a6", + "lines": 433, + "functions": 19, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_fleet_detail.rs": { + "content_hash": "866a7f5e541e1b701ad06df209e70e9849352598fe811a750ac45386f86dd546", + "lines": 483, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/contract_scaffold.rs": { + "content_hash": "50996afc43ee2745591ce7b4ff9a3fb25ea0912354f21bed5a0802871357da84", + "lines": 80, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/state_management.rs": { + "content_hash": "f59be77c50f3a54522dee4c421f271bba4e36033ec2c0013173368733f33d7a6", + "lines": 125, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/tests_helpers.rs": { + "content_hash": "64bebc379fca0c0a1369309d939cc755d17120891ca79b3a9a99971cb7fce950", + "lines": 216, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_cost.rs": { + "content_hash": "7d4433d13d433d859f8ce786d2dac6d8d4b61318e2972f685f94da84327f86b9", + "lines": 258, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/hf_config.rs": { + "content_hash": "69473bae90f1e31f7888afc480eceba0ce62a3188f44f2727bde0830c0767bab", + "lines": 293, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/profile.rs": { + "content_hash": "f9e15c83686dfd5b0bff531913bd671911c4954ed06050b596785e6a84f6a110", + "lines": 117, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_5_b.rs": { + "content_hash": "ae7798e2a3827d2d0946147ea00340787a86e191f15d4b98237d7b4bdd74b75c", + "lines": 207, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_graph3.rs": { + "content_hash": "0964177398f72d99d5ea1f4a213a72dd48aad9df5a22c763d23440ef22e037c6", + "lines": 253, + "functions": 33, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_sandbox_run.rs": { + "content_hash": "5f701b77734afb259e8e1cc39173f67ad8c8e9dfc57ac8abe60544869ed6e3bd", + "lines": 229, + "functions": 18, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_1.rs": { + "content_hash": "a9585baa58750091b28e6495aebec099df26f3b35db61484f16b32f2c3cfc37e", + "lines": 395, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_score.rs": { + "content_hash": "57a79d5775e1244b3f628ec77fda9295d2c9c2e92cf88ed9a030a9d79f9a1ca2", + "lines": 197, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/strategies.rs": { + "content_hash": "47300be7d021d6fa65d12516cfe21bc9efa2b9d4d14a702f668fbda29deb6362", + "lines": 129, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_19.rs": { + "content_hash": "7babc191553334c61ad1b42c509be4cf31542c903bcda395d58fa75e49d903cb", + "lines": 589, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/sync_exec.rs": { + "content_hash": "00868ef2b5b95b8b2bc37423781dbc15af79f86a12ac2a9acfe4136e50f027a0", + "lines": 189, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_misc2.rs": { + "content_hash": "c8b337c89ad6a10b7594a79b366934c6164ac3057d3325805b2c7e6688d9c6d4", + "lines": 301, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/main.rs": { + "content_hash": "031362bf1ad257336bf8080cd66c53ebbdb5641dba93aef10f20443af6541acb", + "lines": 33, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase86.rs": { + "content_hash": "153172f7ef3c5139c3921114f76cfc53f40a54d98910d6b36f9f6dbbd6a91413", + "lines": 160, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/gc.rs": { + "content_hash": "4ee9aa8f03a830997847ee019c423ef14e288ce9345a260316d254cf3c1ab7b1", + "lines": 121, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/helpers_state.rs": { + "content_hash": "b97c0209fda99a616045bc2553747a1eaf61a365df9d4436d5fd52119094f234", + "lines": 114, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_convert.rs": { + "content_hash": "1559a180fa06b8ddf219469771feadd18f677cd82cdf489331ba3f84dc282300", + "lines": 173, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_plan_1.rs": { + "content_hash": "ee8591122d1888f8a32f1424187ee7ea1750421a8d2ad71729357ad8dd54ca42", + "lines": 184, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/observe.rs": { + "content_hash": "b9dcc21216e088cebd16c810444f8fd4534ee871fb5097886a30e14f62b83e71", + "lines": 363, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/drift/mod.rs": { + "content_hash": "b0094bbc32e0db8f94403762405412acca10817454dd12d37a299dadc01c176d", + "lines": 310, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "build.rs": { + "content_hash": "d68c4b581bc2211c97f952c4cd1aca94426b84e419e52071a421118e381f833c", + "lines": 9, + "functions": 0, + "max_complexity": 0, + "category": "BuildScript" + }, + "src/cli/tests_observe.rs": { + "content_hash": "acb6154c8558487eee51f8b71d5320750e5c073cc58643ffcd11f53b2e380db0", + "lines": 413, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_8.rs": { + "content_hash": "89614594099be17f2f6a2821b5ad27cd9cf91a944f698a4b769f8f75f7a72c4e", + "lines": 586, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_5.rs": { + "content_hash": "bb5a8f1e67984283ab1d11ed7eaa56c715f6b8f760bcc0efc73792349be31b8a", + "lines": 585, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_snapshot.rs": { + "content_hash": "c2a2e43628b0107466662faec0816f1055639d40663df4b04855941969b1a437", + "lines": 176, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/show.rs": { + "content_hash": "4538451f83bd09570bbd07e938a5555815cb5362176f88d81c937297579fef92", + "lines": 399, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase82.rs": { + "content_hash": "fa4cef482998707dd19209834ba250b6a3dea79eb38120b118e29795c01b861b", + "lines": 289, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_remaining_9.rs": { + "content_hash": "e6392c9f422e76d22599cff1f48d9f31e9b9108407425b644600e96fcaca726f", + "lines": 466, + "functions": 29, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/kernel_far.rs": { + "content_hash": "bafdeac640d0494aae58e3ae0512cdafacc7b6aacfa43c014bc085e4a238a600", + "lines": 139, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_misc_2b.rs": { + "content_hash": "d5b42c215c27b1e08c7756f65bb265500ba10cd24bed9da74ed294ce1cde1ba7", + "lines": 452, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_remaining.rs": { + "content_hash": "b3ddd352bd2e84334ae283aad442cc30f6509aea1a6951c618413b5bc39a37a9", + "lines": 412, + "functions": 36, + "max_complexity": 0, + "category": "RustSource" + }, + "src/mcp/handlers.rs": { + "content_hash": "b3f3ba304fa11f48ee3077275ac09caa416279ee0ce7f5a6cab754f428ee4979", + "lines": 491, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/derivation.rs": { + "content_hash": "855ef7ff60508ae454f11cda81341dacf9e9f8081c6da2a07dc9adb8f71d98af", + "lines": 209, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_secret_scan.rs": { + "content_hash": "cc073b7a66b7a45c5db160d8c6f5cb20f0b9031ec777e36916d178bcde9eaf0f", + "lines": 263, + "functions": 27, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase78.rs": { + "content_hash": "51ce6b926ea80c7e21546cef0a5f422ca8135e8087f355155495a039d77cf285", + "lines": 289, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/validate_args.rs": { + "content_hash": "32835cd4dd4e68473c6129851893b5f0a099d01eb8848c2b3a00fe18325db0b5", + "lines": 494, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_validate.rs": { + "content_hash": "156fe9a3861bd5c1033ce9408b177b24db65749cb8560640fd3b18b532baebb9", + "lines": 311, + "functions": 42, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_4_b.rs": { + "content_hash": "b7d3a7a8f368bf6584a0d85fc9da929de145f1f5900bf30202a16af31b0a4f3a", + "lines": 476, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_cache_exec.rs": { + "content_hash": "c405611445baf436a9ffdf7cfd971286b1a7f20564362a648b2d5775956629eb", + "lines": 235, + "functions": 18, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_args_extra_b.rs": { + "content_hash": "99a22cd37a5d03d14d7d61e1da4c41677c3c46a45480c43267aa657134d74bdd", + "lines": 420, + "functions": 41, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_transport.rs": { + "content_hash": "c33ab3fd3cb1a5bfe41ffd3bfdd4ac703183e6fdfa303857a21aceb497216f7a", + "lines": 276, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_7.rs": { + "content_hash": "513e60f3c6deaf043d81e9d38464483ce7cc79d4fb2cf2e6c4b5b26287aead7a", + "lines": 585, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase105.rs": { + "content_hash": "125e47bdfb4e5632a1352a9f73348469d2a113c4dff77b4ae71919315fd0c640", + "lines": 206, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_args_2.rs": { + "content_hash": "e91f9e265dfb772ae8daf143fdc99fc593cdf114e61451e5e0aa1a3f19aa0728", + "lines": 479, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_kernel_far.rs": { + "content_hash": "0c3f0f3cd5084c953a428b20d2350063bd53140d61bdeece477c2ddd62087356", + "lines": 404, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_misc_4.rs": { + "content_hash": "a60982c4decfc1da5d2ed6e906ab84833f3c067340e77250c8498f93b290409a", + "lines": 282, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_validate2_b.rs": { + "content_hash": "974a2b402c5e7bfb983b4cc2cba4dc2ad11b7a87639177521a59d8501ece79f9", + "lines": 386, + "functions": 38, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/policy.rs": { + "content_hash": "1d649aa9ec5345b621a76ea085fba62cae11b53987b1986c7bef281d1c0a49bf", + "lines": 106, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/plan.rs": { + "content_hash": "5bf39e0a42f93bb8d2f7421ce84fbd4d3689bb9573947f04a3edca3ccf85cb8e", + "lines": 399, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/misc_ops_args.rs": { + "content_hash": "4434ae1f9bacf8084c3ed92d01ce6ec57fc591152957ee1cdcced543d7eafb7d", + "lines": 289, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_show_3.rs": { + "content_hash": "69c523ec10fb607ba10cfb566444444314dd0fcb96954a26dcbfd35a9f72674a", + "lines": 256, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_scoring.rs": { + "content_hash": "ce25d95e9acb6c99e8078bdf1c933597d73c087d711d7f4b17b7146e6f8f28a9", + "lines": 655, + "functions": 29, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/validate.rs": { + "content_hash": "6233d0994ccaaafc3c9112422e700b7feceb4883f7baff463b6595bd623d2455", + "lines": 131, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/drift/tests_edge_fj131.rs": { + "content_hash": "c55d3a18a1cadaf071128745394e2cf59de8a5c9806452e07766c38d12490ae6", + "lines": 313, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_operational_ext.rs": { + "content_hash": "f8f39446b9091ae9178dc210d4b1ff97ff6721feea04ed74490ded0d23196f57", + "lines": 212, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/store_diff.rs": { + "content_hash": "3604892b9c7259ae2d773fe300b4fb5ab77fb8e982e0188e783e913517c4e5be", + "lines": 161, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_status_4.rs": { + "content_hash": "a817b37be5a555e6c08ac2709b878f1ef3d8268461c49a6de30961c7c41fb390", + "lines": 345, + "functions": 43, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/validation.rs": { + "content_hash": "7a567c913b4d56dad15ebc937c0c47946b485bc508da83a434fa4f3f2bd38232", + "lines": 133, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/planner/tests_hash.rs": { + "content_hash": "fa0a25c1be61ccf3f6830d992e536963e5be7dedfd6fbed0980df66e659ba8df", + "lines": 503, + "functions": 26, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase88.rs": { + "content_hash": "cfa8ab8cf5825d7e35be208707abdc2be25b856612f93fb9945ad1990a248240", + "lines": 313, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/mod.rs": { + "content_hash": "4b7378d6af1834063b09a80e02fd37bbea24ca7aaa934cbd5b0decd9022dcb83", + "lines": 18, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/arch_filtering.rs": { + "content_hash": "0c7b4be49e9498d6b6a8e4277cf7ceb27c84887a8f2dfb8224b20f4cbbe2083c", + "lines": 125, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch_apply.rs": { + "content_hash": "a18773bc1739ead60e53676aa95f738ff93001233d0d113214c56a20231e944b", + "lines": 568, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase106.rs": { + "content_hash": "ab55ebf79c9fc973a5a13a5bc5836d5690ad4f085c37fcf797aace755acfea91", + "lines": 207, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_diff_cmd.rs": { + "content_hash": "e57e4cd9dc1058e813d4dc380a24eab862caa0758b90fcad6d828ce195ee13e5", + "lines": 497, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_analytics.rs": { + "content_hash": "5d5ee17e1dd1549aa2433d189257f59b54b718eafff552913e5e0187de17a1ea", + "lines": 424, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_convert_exec.rs": { + "content_hash": "93221ef970d83b08af899ddb7852f60d67da9a9c797ab714137c268acf194914", + "lines": 267, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_expansion.rs": { + "content_hash": "24c9d29da75808f7c80dc6080ec73de55bf3b681788b8a4d4bbc8ef3a2cc0bde", + "lines": 493, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/drift.rs": { + "content_hash": "6ff6e37736702b9237f75821c99fe3d39fdb3d9996f61a8dfc750ff94c93320f", + "lines": 331, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_destroy.rs": { + "content_hash": "ea1504b5a4cf522a8231e2751484ce9ddba9155fbc0efa29c74f38cc5b7e4941", + "lines": 374, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_observability.rs": { + "content_hash": "db0c4b24e95f1e78eb9041308e5bef150b1f4af47d4c9c70afc019edafccdb8c", + "lines": 419, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_store_pin.rs": { + "content_hash": "9b1688c31c9ef9884c5450f1b704d487514270fc5f94ade48a1b4e8cade08a4b", + "lines": 178, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/types/tests_config.rs": { + "content_hash": "62f198f513cd6611e7b3746054fbb8f7280ed719277043d12fa10e5729e5586f", + "lines": 447, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_analysis.rs": { + "content_hash": "091ac709f81cbf81016d5afc8919f47ef129402f50c9cd93d069b70a4ffd24ee", + "lines": 315, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_validate_core.rs": { + "content_hash": "a5ab48338111aa7ee34630a1a0dd623d6cd650ed57cd04b4724c88abac46be67", + "lines": 507, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_status_6.rs": { + "content_hash": "7aad92ee7550f4497bbf6ef8c8450ca3107b215fe6091fcd58bd1c1ba3b7ba8a", + "lines": 485, + "functions": 74, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_fleet.rs": { + "content_hash": "0a1e48414bc8db11acbf4507134638e61621e160134e4a6d4d558290a3797a4a", + "lines": 337, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase62.rs": { + "content_hash": "6f95ab39861fa1e10e27bd13cc4bae119d295cd71df5f20f2e8e6a1d3f725603", + "lines": 194, + "functions": 19, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_3.rs": { + "content_hash": "037b95ee9ddbd52fd27e5076ec61dad745a62a96c65b190dcaed86b54f7a2164", + "lines": 443, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_topology.rs": { + "content_hash": "58dbadcd16996501b6d30be61417f9754f426a86fb2ebe6467302c081a8a0bd7", + "lines": 525, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/drift/tests_basic.rs": { + "content_hash": "72e4c5883d2c4806dbeaa8ad813c81a7907bac78e696f353897f47343d83412d", + "lines": 325, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/mcp/registry.rs": { + "content_hash": "75647eabf9f4d7b78af10988944732a965bec55d05593469767749cd3d54866f", + "lines": 244, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/secrets.rs": { + "content_hash": "f04e8e8de8dbf25c709ab07f8a237dff5fd923b92956dfcff6f3f44e315a9875", + "lines": 154, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/drift/tests_lifecycle.rs": { + "content_hash": "eaa542320d4c1728a3863d206050c808e1f22af47284c1d7489cbadb8c42c872", + "lines": 146, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_8.rs": { + "content_hash": "beab01b1c6f65e33a645fd11c61613674303bf57467816f1f1fe04ee1b898b50", + "lines": 704, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase60.rs": { + "content_hash": "0a27a50ad0d44f4d395d055f56642af8b09be805308194ae89d2b76f03ee51c5", + "lines": 133, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_health.rs": { + "content_hash": "967ada2de2f50e004169e6e3dfbc2b75807fd3adecdbe8ada6da3ca827a51172", + "lines": 403, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/tests_proptest.rs": { + "content_hash": "0eb89718248287a3dfe83e3adb93336309e3831ae0d267cc00b660d9b06e7889", + "lines": 76, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_edge_apply.rs": { + "content_hash": "eed737476c55bb2a27aa55e9ab9172157c484deb7a587f0755efd51c74e71c44", + "lines": 465, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/subcmd_args.rs": { + "content_hash": "f30161fb246f830e179318201829d0d887db3d017b98a3d18bc50ec637f33e24", + "lines": 120, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_20.rs": { + "content_hash": "ff9041e68cce47cc5cf528994fd0679b0d7ec933d98b9e618a6a95b35f79512f", + "lines": 591, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_args_2_b.rs": { + "content_hash": "0738bf02be170c9d3e3e2d41c1a1ce191e7fa56431c68afc9459427c35b02c1f", + "lines": 161, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_transport.rs": { + "content_hash": "1c444c1c80a71de6090374a70fbfae8059293bda45902f8ceda4ba8c6a93f47c", + "lines": 212, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase100.rs": { + "content_hash": "082e88670a307c41e4461619ea486580bab5efcf8b32a2645101677f689fb04c", + "lines": 204, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/gc_exec.rs": { + "content_hash": "2af6ad4e5be133d8db7efbc89197594791c8bad9c0c8f8452f6e49244c9b66d4", + "lines": 189, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch_status.rs": { + "content_hash": "2ce47fd7c3525a87d5bf3fc9b4b0eeb71adca86bd4870322292cd259efd1a4f1", + "lines": 1448, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_status_2.rs": { + "content_hash": "aecb4e8084ebe53396f124fe0af98547eeca2473f59238fb6a3ebb5f4ed8ebfe", + "lines": 453, + "functions": 64, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_quality.rs": { + "content_hash": "28bbc55f377fe73d85db97f42ae7d594ba94ebd2885c2dfe60b640ae93f65fc9", + "lines": 685, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/lock_merge.rs": { + "content_hash": "b4b7097556494d0affa4ecd89af8c3030b55570d213b020fa71d89b534392c9e", + "lines": 210, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/container.rs": { + "content_hash": "45a546877c6bdbd441e67802d0eae4567010e93f57f048487a15c690b71c234d", + "lines": 168, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/resource_scripts.rs": { + "content_hash": "bd107a90d40cfa4b2fd7abf5f8793d9414f9e7c1f1894e594d7ea640b68b8ed3", + "lines": 189, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/conda_to_far.rs": { + "content_hash": "7734affa568d41f480d8e38788fe151adef95b1a827dce5b24e559ba866fb11a", + "lines": 110, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_impact.rs": { + "content_hash": "00544fdc7f7188c598c92156eb38e420e1cd832ce406fcb903a977aa350e6d72", + "lines": 360, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase65.rs": { + "content_hash": "7becd26ed753087000d41cb0848a75dd670d9590ada04d710b194e0fde1b6d92", + "lines": 188, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply.rs": { + "content_hash": "4f1d614e3fb5124e194b4f2c9defe98b4a1f0c9a23d2e088c21dbc919b51c539", + "lines": 416, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_provider_exec.rs": { + "content_hash": "95360fc2385a6b6ecdc754235766dc7578fb4687d8a30d7333f3fcbdf2ba6990", + "lines": 254, + "functions": 19, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_safety.rs": { + "content_hash": "6808aa310a9f54ffe84bf5653e735a0ad600c608a907851396bf8c075d52c9cc", + "lines": 495, + "functions": 22, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/doctor.rs": { + "content_hash": "ff075849846d7cf2678962e124a8ec7d24b3f842ad9282193d05b1f7e83c1bd3", + "lines": 447, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_ownership.rs": { + "content_hash": "8c38dfd3544fd20c954d421e06c76df90cb952ccec3f302d02956b2146096460", + "lines": 610, + "functions": 28, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase84.rs": { + "content_hash": "33863ec3fca34a46d4f8ba2b7c3949438640899e7793463ed3dd93627d48d6ef", + "lines": 289, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/lint.rs": { + "content_hash": "79fea5af0fb5cb75e072206a20820d9dc06e3fe34e3e626d9992bf84c86fb4f4", + "lines": 259, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_quality.rs": { + "content_hash": "2c94ea204e4a115133bc709888f1e82c24e6253e59a85578bdf7c289a74d90c9", + "lines": 272, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_config_quality.rs": { + "content_hash": "f0bb4d6639b69789a74c6fa91155b34ca6600257ca7136f2623ae7e9ab049227", + "lines": 494, + "functions": 26, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_edge_details.rs": { + "content_hash": "e4b0c31d73409f22aa1213b0376f5e9a02980a317e4ba6670c925afd5f9a51ef", + "lines": 403, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/mod.rs": { + "content_hash": "9f6044672813dbffe20b724482ecb623a36ec42be35c525f8225de85d60206ac", + "lines": 186, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_bash_provability.rs": { + "content_hash": "fb5b01227d3d1ebf0c4b2b25a9585c3a3314a1dc8e3bb3917bff8ef1c7b6072a", + "lines": 137, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_failures.rs": { + "content_hash": "e74487d76644f9f54e751d50cd25018b0339d5b274c12a6a051d7f37269313e7", + "lines": 390, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/lock_ops.rs": { + "content_hash": "3cd3c37af12704bfc3fa891cbc44f7b36fa604d41e3b72cc0ff281c6b782e362", + "lines": 443, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch_store.rs": { + "content_hash": "720a29fb4afcc88486a8546648f4a46044d9601fd4000bd25b3387c5938fcecf", + "lines": 115, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_validate_core_2_b.rs": { + "content_hash": "22f5f3903a07db1e20a30566d978cdff3aa8f6cd345360996b237c0fce6a88ac", + "lines": 659, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/functions.rs": { + "content_hash": "31f6358703727288eb835d958f8c712ce3b97f031239d2569e58f9e9aee33c8a", + "lines": 165, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_9.rs": { + "content_hash": "9595bb38a7b853a08bef9958a0dc8652676b31974accc7cd153953e064f65ec2", + "lines": 585, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/scoring.rs": { + "content_hash": "8171a5ffd79df712ac72d34b151c957979eecbebfad376bdc03a7e311b63859f", + "lines": 619, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_remaining_5.rs": { + "content_hash": "67ff6948936e96d24450ec9fd9a80dcba42f9949406834c38922b4ae89286d88", + "lines": 475, + "functions": 37, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_args.rs": { + "content_hash": "d6ff2578cdef4fb0853e97436d525ab7311339457cbcbd9c0574d2f85ddc7c9b", + "lines": 472, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_remaining_7.rs": { + "content_hash": "03d4a2bf12817121f557c0251456edbf232593631d66cda7c7ab1747ef609ecb", + "lines": 386, + "functions": 40, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_closure.rs": { + "content_hash": "53a8fccc979fbf0bc31d2ed0b0fe0b777a91638869dab844daf3c383240db9bf", + "lines": 183, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_store_import.rs": { + "content_hash": "102b2669a47ca0cb3b214d03010604a50de4d039e80eb4e94b4ba2b92824c7a7", + "lines": 111, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/lock_core_args.rs": { + "content_hash": "273fd1b5632fc1d2d997ccd6f3b94aea533dd79c2845ebe5abdb246aa7769c80", + "lines": 254, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_check_1.rs": { + "content_hash": "c973bc13a84441411cb93e5fd8321693edab02f864f5e042455f368cb350c0a1", + "lines": 482, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "src/copia/mod.rs": { + "content_hash": "0e23b4a219ca632f3478d22ef3c04c705251af4838bc344c1e7870ef26b8b6db", + "lines": 239, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_validate_core_1.rs": { + "content_hash": "c1ec0ef1de015b836d47a38cd392d304595682809b6f8abbeeea5e81a8142d05", + "lines": 804, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_dispatch_2.rs": { + "content_hash": "1fc985791b0269cc12e0d0e2b0cfd4e157aca99b943ad9e9dd9427e475d5caab", + "lines": 483, + "functions": 30, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/service.rs": { + "content_hash": "b196fa1fe260d1ee4fbe5490d9e73fb475310871a762cd9962aa81be2e6bb56b", + "lines": 81, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_apply.rs": { + "content_hash": "0fe8601283da0f753ed01431e5401bab3b82c7243b495696ba658cb24b9d1766", + "lines": 427, + "functions": 33, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_graph3_c.rs": { + "content_hash": "d4d7d08d99de4e8d2d5c7c80c481d2077dbbaee1a84d7cb7a4fb1a8ceb9eed44", + "lines": 267, + "functions": 35, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/import_cmd.rs": { + "content_hash": "1aac0167c0c8c6a909b5725d36bb3fd5d92a67f1301fa69897be6117fe507246", + "lines": 295, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_lock_core.rs": { + "content_hash": "70adbb33a1eadbd8fcd553e18d283c32833e30995e4c32e7614d648c4c708b88", + "lines": 467, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/tests_container_c.rs": { + "content_hash": "3e362db276afe5b00807edd1bb908ab0d43ede1ac1e2380756745d1dcee91e65", + "lines": 360, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_resilience.rs": { + "content_hash": "c6fe3613bcb0c1d81ea3370da4237e88a3e0ecb46066f5c9de84aefde1a8acd6", + "lines": 252, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/pepita/tests.rs": { + "content_hash": "a91a0df7f18b27ee5d840ace7036d0e7b75870bcd26749fc7078087f5aaca17f", + "lines": 365, + "functions": 0, + "max_complexity": 0, + "category": "TestCode" + }, + "src/cli/tests_status_core_6.rs": { + "content_hash": "d66062ef8be94fefd1417d960a820e1f1adf09e2cb1410ada5d04a465cf66300", + "lines": 705, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_2_b.rs": { + "content_hash": "a1eaeaa40f75ae55def5722999b1227c8521a27c8218d074cbfd6b5e6c3df93a", + "lines": 476, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_store_diff.rs": { + "content_hash": "73079617698d552eaa3ce7ba0b6c405be84c718e78eee852ac638fbbea40ed75", + "lines": 192, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/template_resolution.rs": { + "content_hash": "fed4c713fe1143b4b6015978ba085cfddb3e62bff74fada57d4196edfe34e2b7", + "lines": 89, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/dag.rs": { + "content_hash": "fd7c4d014b94120319649575e44755cb7f27c8a6c3149910df5b7e766122500c", + "lines": 150, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase102.rs": { + "content_hash": "28ceaba1ffaf865a6947a081b160e034a05ea8cb3a0969068df6dd7b63d550fc", + "lines": 206, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase64.rs": { + "content_hash": "d95d5a7569aedecf4c5f7da391965a342aaa6c897069d00986a67b8b41e9a65d", + "lines": 202, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/sandbox_exec.rs": { + "content_hash": "81497fc856954a8f238808fef3d031046141e36ca6ff229d057d28c8d31addd8", + "lines": 322, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_status_7.rs": { + "content_hash": "d3f9cf0e6a16168528c207b05a4896c2a337e3e63097caa895344ea66e8da5e2", + "lines": 380, + "functions": 58, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_validate2_c.rs": { + "content_hash": "4f9cdcb7db8755584f85e8c040c3451d3a69b8672a6c675b2871de7580838277", + "lines": 188, + "functions": 18, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/apply.rs": { + "content_hash": "05543a44c4da020489c7a65b8e5ae2e594d3e4036c738ec0a8ee8f3525426352", + "lines": 289, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/types/tests_state.rs": { + "content_hash": "dd2a188c375b0154f75dec150a2cf75406c52e50eae968c3b467146aedef7af5", + "lines": 282, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase68.rs": { + "content_hash": "c0484108b3b14c22a09b33edec63ae0643cd1fa2f18068a72f57ca7d172d8468", + "lines": 209, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/tests_ssh.rs": { + "content_hash": "81604c0180ad81bcfc76902e10c0f90b1737185a18af42ad22b09888aded4d63", + "lines": 358, + "functions": 37, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/local.rs": { + "content_hash": "42df3372977903d61a060ee4949826793a11e046b38b022b59743c864b4d4f9a", + "lines": 149, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/file.rs": { + "content_hash": "a1facfe1a21635b0eadcf7b24ee4d0bcedb30312b957a665cf5c87ab03c3ea8b", + "lines": 127, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/full_stack_deploy.rs": { + "content_hash": "56839d0659adcec2a1d782f0008bbc14a9c272f252bfd46bb5cd7dbe2164032b", + "lines": 185, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/apply_output.rs": { + "content_hash": "a34f54cbc1a73ab2186d7e7d1faaa0fc8d8e0fdaf952f551aaab6200a47d6f8d", + "lines": 404, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_graph.rs": { + "content_hash": "d6324c03b4c5dcf421b9d0a587e46c4ddd47629af49d78a4ef5351471ce7b727", + "lines": 335, + "functions": 53, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/contract_coverage.rs": { + "content_hash": "5daf03a49c3624a4792586195749e18090ccf6d639732dd32efcfc1dd0b59b2e", + "lines": 122, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_topology_ext.rs": { + "content_hash": "5ea63a1384c82f316ef7448e73c80696167583f8a22b868509dd6cef478c5afb", + "lines": 124, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/tests_secrets.rs": { + "content_hash": "c3e9a7a11caef27d4950768370be2f68d69ed711fb48393ece5eebaecd99fe80", + "lines": 440, + "functions": 39, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_misc_3.rs": { + "content_hash": "12d7d262f0c2b2c8e449e681dd8f262362e21237040e8da02a8deecf2d527a42", + "lines": 428, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/codegen/tests_dispatch.rs": { + "content_hash": "5b506a1421a453948b549e4863516566fbb8877a1c38da5119dfcb97ad105c3a", + "lines": 245, + "functions": 22, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_remaining_6.rs": { + "content_hash": "102b940279a20a22ba9708ccccc70260cbb63e747a363dd12a2d0b62c9a704c2", + "lines": 492, + "functions": 40, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch.rs": { + "content_hash": "57127062694b8d05fc282807ed5da44ecdcb454a250cb19504e13f39593f38d1", + "lines": 141, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_remaining_8.rs": { + "content_hash": "c08ba05a5d14178049fc610d8bed82023ae2f09ba65b276812c6c6df1431e7da", + "lines": 486, + "functions": 45, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/gpu.rs": { + "content_hash": "d0ee4e02e497703403c3dfba64280886e5b4d0ee77164f2c1e7bce15b23293c6", + "lines": 196, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_mount_b.rs": { + "content_hash": "0dd5ebc9614833d1502b0cabcb8b4c027b9b03da239a7015f2daede897b5d563", + "lines": 249, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/types/tests_resource.rs": { + "content_hash": "c51b45db69f9f9d83857727f88999433664a2ce42bba11070ccea4235c79fd7f", + "lines": 298, + "functions": 29, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_1.rs": { + "content_hash": "3b65e06a29308f5383fc8b645ea2e518932fc2f97a6c4a8ffa4f55bff7eb0626", + "lines": 514, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_ordering.rs": { + "content_hash": "2e61e35656794b31f7833e65bbe6d59235080a09d4f459242812096e7432f856", + "lines": 675, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "tests/gpu_container_transport.rs": { + "content_hash": "e3d8b4c7070eb3503b55daa7f013bba02d0a22096beb13eb7002df5d41404b62", + "lines": 226, + "functions": 0, + "max_complexity": 0, + "category": "TestCode" + }, + "src/core/state/tests_edge.rs": { + "content_hash": "c646c7abf8bf3248333d1de9795e41797d94b5d9398818088aa75b104691ff62", + "lines": 334, + "functions": 18, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/lock_lifecycle.rs": { + "content_hash": "1a130f12406efe0f6b2b2fbd421fdd729e31df031526144625fa8fe8529848d1", + "lines": 183, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/sandbox_run.rs": { + "content_hash": "58ce624ed70496af87745f25b27f09c3c4d9cff9638123ea2ec63299c5c4f592", + "lines": 148, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_drift.rs": { + "content_hash": "49e2203aa6db0c38af3d2b3a77926090384e38100fc6b951057dfb559567b9b0", + "lines": 458, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_sync_exec.rs": { + "content_hash": "d889f6a4779827c744d4bbce4f87faa6ba8daf84be8284cbfa7f032c394e8923", + "lines": 229, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_repro_score.rs": { + "content_hash": "eb5c877d15c0d4f003c3474c7eaf429919bd55df6a4fd3805415817953193540", + "lines": 183, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/pin_resolve.rs": { + "content_hash": "fe3ca39b83bf797a137d51ed529695127231448405f7044be43ce3474db6ed75", + "lines": 205, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch_misc.rs": { + "content_hash": "61c9068fcada0637c306cbbe559a6d286b298da3521038558f5de778e1e4a8fd", + "lines": 295, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/lock_core.rs": { + "content_hash": "622ec568ae72b5bd9b6625776af10162ad9ac59d8c8a8d5d8577cd124dace853", + "lines": 453, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/state/tests_helpers.rs": { + "content_hash": "7fc2190767b2cacf33961b927bdfb6be3970becdfd3f787c89fcd4a8e06b95e8", + "lines": 27, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/store_cache.rs": { + "content_hash": "bb3b32ca6993cd0861afe497a977e49b40ab45dc9ff5f32a21da4908019b2dca", + "lines": 223, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_transport_2.rs": { + "content_hash": "e7e61b26181d06ba30ff3d35cb9b5c6d5212a30db2af157146d8f1f2be051ab5", + "lines": 467, + "functions": 30, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_init.rs": { + "content_hash": "552cdc1d8ac19333528fbeed665afedce64d44441cbb2926f85b32aad32f032f", + "lines": 551, + "functions": 26, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_conda.rs": { + "content_hash": "5207a8413f19d7d566942ea05c1b24b717e9273ae0da195c95e8fc4dd68e186b", + "lines": 318, + "functions": 19, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/state_args.rs": { + "content_hash": "6cc54d6c4a4cff4af87c3b3abe9772c5ce5be1e2ea9647f5c6f8f72350097dcc", + "lines": 53, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_fleet_b.rs": { + "content_hash": "079ef5be1709818426bf9b485cfa249617ca2acaf46c0dfbceca1dff39fdcc22", + "lines": 314, + "functions": 30, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_operational_ext2.rs": { + "content_hash": "fdeba2e3ad4a85d5d5aeb8d0718440d13adc7c090c8cd91276ecb23f210bc43e", + "lines": 556, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_status_5.rs": { + "content_hash": "e46802b6e6abde362a1f34bfe75deebde6f8320ba58c70c7a279f28bce983f41", + "lines": 361, + "functions": 59, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_validate_core_2.rs": { + "content_hash": "8da5adc831bc72bfdc709d66f2bc68dbdc13670c62b7832f11eba6e1c463ab38", + "lines": 805, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/recipe/expansion.rs": { + "content_hash": "83036fee9f0a827503f00b1e4f68d826454a9c419914b30c38ae27f23eec05e8", + "lines": 208, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/recipe_expansion.rs": { + "content_hash": "86024e836a99cac3432954bd6bb22bf8c5bbeea7ea22e90457ef213ff07ad7dd", + "lines": 118, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_export.rs": { + "content_hash": "7e4f37f57e8ba466cde502437cdf0bd43eaef2868e103586294a836e10250f3d", + "lines": 517, + "functions": 24, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase77.rs": { + "content_hash": "69145b26c382ffe4ef2045d6d4ef57b1170bfc14a8e7916f93ed8f5018edfa22", + "lines": 291, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/event_logging.rs": { + "content_hash": "a824a3e869cc765c381607a296288475026397ea7d5f90a33965d0902109ba22", + "lines": 141, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_drift_intel.rs": { + "content_hash": "a1e382537802f1d90981b5a9d78b08857ec2e3f418dd56826c87e5fec3424b36", + "lines": 393, + "functions": 22, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_hygiene.rs": { + "content_hash": "96676f26059702286ab9a5351f1c895c82a76c22dc3aee5661d13b9308f80174", + "lines": 497, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/store_convert.rs": { + "content_hash": "23f0b48db113dc89fedf82df673db575a7990e0bc2e8e09ea2e90a227fe68b02", + "lines": 96, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_package.rs": { + "content_hash": "d4b770875ea35b767d9c9a4d14e1a6bc544930f4414f48114f6dc11c1472f532", + "lines": 281, + "functions": 22, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/store_archive.rs": { + "content_hash": "1e3b5b828ede0561463196455eeaf0ca8e3bcaf7a186e4a7c655a77814be7378", + "lines": 216, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "benches/store_bench.rs": { + "content_hash": "f97b1e48cff71ae15f2c3474dd36a52df9abe546882c8efc6b4d7b5b37833906", + "lines": 401, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/mcp/types.rs": { + "content_hash": "cb8c7e82ad98e5597f9b9c97533399eaf4a0b6d108470ddf272d4ed74b10bc75", + "lines": 186, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/closure.rs": { + "content_hash": "5fec3b8c5ad2d7118ba1f7757bcbd756b0d424d574d7ca997de51c42ec3e660d", + "lines": 65, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase85.rs": { + "content_hash": "28b08303ce8370db560ecc840ad1351df4368065f506565bbcc28d4ad917ce58", + "lines": 175, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase95.rs": { + "content_hash": "bf0a5c55af721110cf5d166d463b5925dc6780913ce7fa0a3580884c2f9627b9", + "lines": 215, + "functions": 30, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_resilience_ext.rs": { + "content_hash": "6843520429a2c1c6194e7e26338714bcd0fdb8fc6d348e0eac2a062f07efe26c", + "lines": 352, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase75.rs": { + "content_hash": "bf07a1a67b718dbbfa557d46495d3bd2da898466891f5526bcd817db3e3e390d", + "lines": 292, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/tests_resource.rs": { + "content_hash": "3ea3003b8291fdab8bfb152d49db42e4c45dab1bf916a89bf2e1650f71aff822", + "lines": 560, + "functions": 26, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/graph_args.rs": { + "content_hash": "1ca088d8da750f957172e6d6fc1fae080a39d0f03c25448ff2136941d70aaec4", + "lines": 496, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/trace_provenance.rs": { + "content_hash": "9f8a415a0f1e0c25293ebf2aab2a39d1bf6d9b838e101315eb5dec82348c22d4", + "lines": 119, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_service.rs": { + "content_hash": "650c36e857b38efd8b572e3a91b19bed1bf5328d7af68080a5f4f4fb73ef3d38", + "lines": 421, + "functions": 30, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase97.rs": { + "content_hash": "74f9386a495bd24f35c4a62484a87edae6082d87a1085c0d5469cf4e2043d0d7", + "lines": 190, + "functions": 26, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_visualization.rs": { + "content_hash": "2226cd8758d6b12cffe2ccafda43f34104bfe7939d93bcfec710cd07bcc216a3", + "lines": 313, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_weight.rs": { + "content_hash": "67e5cd261fd46b776e6f950d280ec214968c66ceb74a0a906f03327791b9af44", + "lines": 410, + "functions": 28, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_plan.rs": { + "content_hash": "5aea601bb36efb618cf588cf6b9e5b0bf6d21064478d68de5b8f7571aea43f5c", + "lines": 475, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_mount.rs": { + "content_hash": "5f3ff36a90ea280516cdd7bed4f53353133d7c2d88d79f6eefd3e3fdda931d07", + "lines": 258, + "functions": 19, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/lock_repair.rs": { + "content_hash": "5df1a01c6d3e651a03ce69af2bce43587e0caae153bdb9650250bab85e85548e", + "lines": 122, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_core.rs": { + "content_hash": "4d729bb1416b25dbda925c1936253ee3ba2b4f861f3b82d7200ac656a67a1516", + "lines": 223, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_fleet_insight.rs": { + "content_hash": "9d2c58b613313ecf20a215e5139db11c4cb43f552494b71d4498ddd40fd77e77", + "lines": 706, + "functions": 30, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_convergence.rs": { + "content_hash": "b634cfdcc2e5968ec6f0de4b3047422ebc5496d1a13d9800add776150d37f093", + "lines": 495, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase103.rs": { + "content_hash": "cbabee64dc0654ef58d19e26d4037ed79847fdf34d04e3b12d51e9cf56b77028", + "lines": 208, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/model.rs": { + "content_hash": "b07c57535ce7c047b85d0091cc592536c1bc4ee97e4912f8da242ae71f8514be", + "lines": 329, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_contract_scaffold.rs": { + "content_hash": "0579aec27efbb232895792b359733ae85c571abf51c7e4c5282de8700fa607f1", + "lines": 154, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/mod.rs": { + "content_hash": "30d69f454459c3979acf9916e760d80f3d2467d3095367eec183a476cb93b6b8", + "lines": 113, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/planner/tests_advanced.rs": { + "content_hash": "b622cf123d06945e5dcd11ece3b4c8a67d1add1b535c4d2f3cc4dd14c11b9805", + "lines": 265, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_2.rs": { + "content_hash": "7f31373720dd7f00b8b0cfc724d9c0eb4ff9cb93c8172527b3899862e2d475bc", + "lines": 707, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_graph_core_3.rs": { + "content_hash": "6a6e4b1bf89ede7219bbbb1b88aa7d259acf7bafacbae1b432de0948fa4a0f7b", + "lines": 757, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_apply_b.rs": { + "content_hash": "eaf6a58fdb7433433dc3f4414708a46af1b614fd5e7566fbd5aa37aa2169f917", + "lines": 361, + "functions": 26, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_4.rs": { + "content_hash": "17f18eefc5dd9b6f13a4e6173a4f78c90284e9b4f98b0d95038f4ef4d0fa8717", + "lines": 521, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_5.rs": { + "content_hash": "824b0d8f75706dbcd9fa8c3b8de4bd7a8d23b17de16c64b462c4fa242d8dcc06", + "lines": 395, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_graph3_b.rs": { + "content_hash": "0b53e9dd56f69e38122e721290cc6e0d3a8415a07e0c460f2a1103a3bdcfc419", + "lines": 499, + "functions": 67, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/tests_container_d.rs": { + "content_hash": "711345b985b3ef3ea21c6f626c4fcf835454b7cad6ef9f71d0d94bba04919653", + "lines": 41, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/mcp/tests_registry.rs": { + "content_hash": "35bcc9a5dc807b410f61dd2d587efc07135c010102abd0a27ce29ea7a32cfbd6", + "lines": 129, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_hooks.rs": { + "content_hash": "5509ac1dc580a0c8a13607ab1d807295391f6dced6375f2a05ba4fae6589bde3", + "lines": 316, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_1_b.rs": { + "content_hash": "d284dc840647a1e7cab3b623de997d50a3263d31ae77db2939044b18a7b096b9", + "lines": 474, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_1_b.rs": { + "content_hash": "33221eefa354e0482515d3ac44909c8b218d54435078814040b93ddc6f1d6f31", + "lines": 208, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/tests_container_b.rs": { + "content_hash": "3e362db276afe5b00807edd1bb908ab0d43ede1ac1e2380756745d1dcee91e65", + "lines": 360, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/init.rs": { + "content_hash": "b57d142b97eea723fc121ee587788acfd990a51e9422c82d3ee785b2fdb0d2c9", + "lines": 248, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_plan_file.rs": { + "content_hash": "18479a77ddfbe1a29914e563331d745113f8800080a19879f28728c00978d59b", + "lines": 224, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/test_fixtures.rs": { + "content_hash": "0b8fda69d8f277e11569288b038ea6261396ff44b72d25b7410150bd2fb19839", + "lines": 149, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/path.rs": { + "content_hash": "e29f0f409a8c4e2af98e7e4a0af071d9b72d16b0cb7c93187f14a57956f5db66", + "lines": 33, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_core.rs": { + "content_hash": "32b268ebe8b7fdcf7fe1782dec7f04469c435abe99547311182d5e3f5afdfbe8", + "lines": 299, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_gc.rs": { + "content_hash": "845a11f64740c6ad1c7a6b37bcb8768950f678b431f3ef7942dea10ea5718375", + "lines": 160, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_store_convert.rs": { + "content_hash": "6f07b4719d395fa3ce537d84c5d71facd277223759f6c46e97652f2156689de8", + "lines": 127, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch_lock.rs": { + "content_hash": "70b1939da69b07e59f06de53245eff579b01a5a24d775168355cadaf71a1e11a", + "lines": 162, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_chunker.rs": { + "content_hash": "f0cc30924b1441600d59602f94906775f5a056ade2dd6f6f4c3c5cb9f412e675", + "lines": 136, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/hasher.rs": { + "content_hash": "4a099da8167b27b580663b6be81f6964b35d00c5083a52c4396481338077d97e", + "lines": 93, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/tests_waves.rs": { + "content_hash": "43c4ea3a7fe427029c0a4eff6b84179b4553297a31a7663010151f43ba226022", + "lines": 144, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_ordering_ext.rs": { + "content_hash": "59e95baf8c83c9aa4e209c27a5513debdfb64a4e08693d245d77735b0bfc9100", + "lines": 270, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_advanced.rs": { + "content_hash": "67ed06aaadd80dfd88bebac0074a53446643ab1885cb62fdc3a31b750fb9dbaa", + "lines": 372, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_cross.rs": { + "content_hash": "fc8522c2858d35b0f01007c86b2e33dc65f53517580b36cc757545ad72217855", + "lines": 362, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_fleet_ops.rs": { + "content_hash": "88ab77b4a769be588ba9fed9d48e35d5f7215e7a7476fcc04518e0de5021aaf8", + "lines": 531, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/multi_machine.rs": { + "content_hash": "04b230f6137c1cf850adeb484e49ffe4da9df5899f879ec799441db5ff51d36c", + "lines": 212, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/tests_dag.rs": { + "content_hash": "2c13befc9e3d19724bd66f98f9851c85bc9ffad3db5bc12949a471f5be8924cc", + "lines": 287, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/tests_anomaly.rs": { + "content_hash": "7f8482500d6ec9b32ab2c892b71c8de993c19359baf1bdfc8d3301d9983d2c77", + "lines": 276, + "functions": 26, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_6.rs": { + "content_hash": "5ad945ac1b08da3090f272806b36e6632baebf13aee0dd6a4de1adceb03395b8", + "lines": 582, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc.rs": { + "content_hash": "f02bd71207dcab0fe85ea7441c1fd9b931aebae6e582ccdca5124707c38b35d4", + "lines": 436, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch_graph.rs": { + "content_hash": "6880907d29ee1e23db3610830ce143e3ce6c1e5d1b9a7d3fa238e5c3d9b98c81", + "lines": 1142, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_docker_b.rs": { + "content_hash": "0a11c4be71d555814a46be0622c4e4eec35dde6828a1efcae0c19dab8c274fa8", + "lines": 395, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase79.rs": { + "content_hash": "583375143149ffeb8915a78e7db0cd28738fd9c1fc5769cb620471a90a7c6dcc", + "lines": 289, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/state/tests_encrypt.rs": { + "content_hash": "07bccfcf40e2b5ad38e718da89204a331512f0c74e8c13dce22e6864e30bc5ac", + "lines": 61, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_lint.rs": { + "content_hash": "5cb83f7f55532c360a592d010ae54ea7f35787782a84aa139281154a04bba24b", + "lines": 196, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/recipe/tests_validation.rs": { + "content_hash": "61a0c94cfe03eb4f564a727aa353bac5c17c02795165714c76cebb9b4e57ea5a", + "lines": 434, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_policy.rs": { + "content_hash": "61be353f6ee2e40b9e535c856ebe1c0de628f50f5c1a4b1750834c72b7b9c874", + "lines": 258, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/anomaly.rs": { + "content_hash": "239d090e52456c1d1579249311e148080231cd73796da9db0bf333f2fbb0bbf3", + "lines": 331, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/drift/tests_transport.rs": { + "content_hash": "930114ee44480ef88f9e0c153202ece0072243cf38b04d49f517e598b3dd0809", + "lines": 247, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/mcp_server.rs": { + "content_hash": "b7126d57d09e74f70c23893061f14c2d061bb44f631451544776b412e52d0a98", + "lines": 53, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_10.rs": { + "content_hash": "41a6a087a804c30a8cef520b38a978dbc8e73705209cfc23cb9cee7bb37d630c", + "lines": 660, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_localhost2.rs": { + "content_hash": "dd03bc0e3ec79a5fd6befc95bebe05acb5cf0e136166b08ab2906f12b662f2ed", + "lines": 268, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_args_4.rs": { + "content_hash": "2b82c0fb253b1f675d92841e3e329bb18b18c582fc8fdbd01eb3a72070fcf9e7", + "lines": 373, + "functions": 32, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/secret_scan.rs": { + "content_hash": "6845f4704ed66bd435c620e0dd83b5e3f8bacb65571ee33d76ec9e16d9a89e5b", + "lines": 200, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/destroy.rs": { + "content_hash": "99e2446766c777d132f7a0fd113bcc5f077e937b9642ae77f67b35523b02a902", + "lines": 275, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/tests_eventlog.rs": { + "content_hash": "6416f4576acad278ca832883c2cfa1e4330e8f987f1c757a990c8837a0af6c30", + "lines": 263, + "functions": 18, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_hf_config.rs": { + "content_hash": "eb2abc98fdf184aea958e4c5868c7a0f967a227367465aaedd4ad7e992bdb546", + "lines": 373, + "functions": 24, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_drift.rs": { + "content_hash": "5f34e558d5b53c082a28d43579f18cd4962307695c2e9fa782d4c2362399c302", + "lines": 381, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase71.rs": { + "content_hash": "6f4a1d72e31d38a48ab0a78dd51638a39bb062d8e9cdef372efd051c655c0abe", + "lines": 279, + "functions": 24, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_b.rs": { + "content_hash": "022ccd86512e794a15c77242c1071530dcb99d24620ee43ccba398d0a79802cb", + "lines": 369, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/tests_container.rs": { + "content_hash": "10063bb3e84f26c0b2c758899d3b5a780c5b3a57d5825702a80f0bcf74bad620", + "lines": 468, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_advanced.rs": { + "content_hash": "aa590017de84e89d21e22efdecf1d440d2b7ac635bb710769779c6b2955e21d6", + "lines": 551, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_maturity.rs": { + "content_hash": "86d8871f6417999c5d028f68e3c8eb1a8b837c03d655b8fe91fe5775c4d60b8d", + "lines": 857, + "functions": 37, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_args_extra.rs": { + "content_hash": "7b4da3d7345f30e8e6a1bf7fae6e84e3c3fbf5979f1a015fc41f4094f5af94f6", + "lines": 538, + "functions": 52, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/substitution.rs": { + "content_hash": "066e4f1a9d041be568ba6528659f4d869d71368af226e0fc99dfefcb717fc79d", + "lines": 279, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_pin_tripwire.rs": { + "content_hash": "4b400e9e27207460dfae9a3686e898af1d62f7dca35656618f6438fd860fd7fd", + "lines": 215, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_meta.rs": { + "content_hash": "9f59758cea8e4a8dcc203505a580502736d6f22804d7b695352b0c2795cd307e", + "lines": 130, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_maturity.rs": { + "content_hash": "efe035a279d4f04b37e591a91b8b4cf96ce24185fafeb5e967b2a0cff197074e", + "lines": 500, + "functions": 26, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/helpers.rs": { + "content_hash": "8d2c8e5bf247190920e2d8672061d6e3175f74153bb6556d2bbbda48cfff9a64", + "lines": 227, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_triggers.rs": { + "content_hash": "43a2d5e86ff679568c74904081e8bb08984e92df2ad7426961767c3999e3bb68", + "lines": 106, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_profile.rs": { + "content_hash": "5910625e51426f1656aca1054eeabf43b8f0c113b4881fb681e4283363b59bdf", + "lines": 104, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_10.rs": { + "content_hash": "e7a843ea9f0d533ffb309415b24a45c3132dcf8e4b48d21e4850628571201583", + "lines": 583, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_print_helpers.rs": { + "content_hash": "8ea861672f99ebb214bf16a2f5235442ae438721d22c06efd88d6b4cff1f8c07", + "lines": 183, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_validation.rs": { + "content_hash": "5bf7f82e7efcb46043483e45cf4bb0fe7ca327446b6b8b95f73a24d98a20a383", + "lines": 492, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_structural.rs": { + "content_hash": "cb2f78d1e49b5d1500240a9ffd4cfa464e4130a810b8fc86ec989160cd044c9e", + "lines": 486, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_validate_core_1_b.rs": { + "content_hash": "ad46aa69bb5803815a2e8bcc9908c04363ffaed29eb191576d3ac275f1c2d017", + "lines": 647, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_store_cache.rs": { + "content_hash": "bbc8884fec30a6b4be2c5cf2149d76613d22bc4cfe4d996bcd4f92a3d7669580", + "lines": 158, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/user.rs": { + "content_hash": "94af7591c2ddfc0d695c7055344f255a15e8e7c11e805c5222f6ae6df8b4524f", + "lines": 141, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/drift/tests_basic_b.rs": { + "content_hash": "2a5e76b7562ab9156b12f478491a85958c43330dcd8907caaaa876a76177364c", + "lines": 355, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_intelligence_ext2.rs": { + "content_hash": "f1d0f601b3f665c3dc7dc2314caf87827e1ac030ddf81de17aad5e156b307ff6", + "lines": 624, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_graph_core_4.rs": { + "content_hash": "d32b0a6227cd5c5b044c1af69d88b0f1c82c74a32e2a87ffa5304291f1e9512f", + "lines": 92, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/container_transport.rs": { + "content_hash": "03a9a741dbcb05d75a335dd97099bbcb2021d3b7badd7cec506d15202868b370", + "lines": 120, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/store_pin.rs": { + "content_hash": "225c1a08bd1f8c92618529ce4bc3214abd0c58b601a7a8c7408170d728e959b5", + "lines": 211, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/machine_wave.rs": { + "content_hash": "64b36b0379cd03bbed53ef07d45f7c1dcd8681a58ff7a8fdac5b08fc40bf029a", + "lines": 210, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/data.rs": { + "content_hash": "e38af36163c68498a96ab1edbb077a08efcad8e2a2e86cea14eba74590b70dbb", + "lines": 139, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_status_3.rs": { + "content_hash": "d953ba308efe6509163a04d8d0ab9b18b59435efe88b5d09bfa8ef2a72a18e10", + "lines": 411, + "functions": 72, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_drift.rs": { + "content_hash": "057857ab9c58a347b6da69e3895f2cb9d7c3f93561fdd29858e7fcb4a41b4234", + "lines": 541, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase67.rs": { + "content_hash": "ec27a9281d427d21d74d40932e78ec67830df492548a4b4cb808f5b48abd75af", + "lines": 191, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_resilience.rs": { + "content_hash": "dcea006a4ac80083d38f24c48919388010b334fd0287642546d62f75efb34c93", + "lines": 268, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/drift/tests_full.rs": { + "content_hash": "9c60bf9ae7deb70447f2ee2c8caebe6f0f2edfafe2965f4e7c59add1fd83ad87", + "lines": 455, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_waves.rs": { + "content_hash": "982bf7d6f02720c27869d8e00dfd8eb3868b492a65bac78750eedbaf380ddbbd", + "lines": 459, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/planner/tests_plan.rs": { + "content_hash": "06886b0275b2a61d010df1fc8a9b7e279ab76367b6f2a9bf33e1be767ec6071d", + "lines": 357, + "functions": 18, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/blake3_hashing.rs": { + "content_hash": "ccf6727357b9f7774670eba775bfb4ef8ae608dcff6acbf70a4616e73d90f2d4", + "lines": 36, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/tests_eventlog_b.rs": { + "content_hash": "34a596c285b3642f888d17dacc616138f36a5c6388391a331485fa09f26c4802", + "lines": 270, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase104.rs": { + "content_hash": "d0db279defc746e4a47f639ad9b51c180869322b81923f9e6111134c8bbf5bd9", + "lines": 213, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_5.rs": { + "content_hash": "1ee9123ad83ec56284041bdc2e895062a51b76ef3fd764d0a72a64adbfacbbd7", + "lines": 703, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_cache.rs": { + "content_hash": "1e4c9ebe04fbde22726ab94687dd01bb3fe069daecfa5777a1108b2f966524bc", + "lines": 252, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/test_fixtures.rs": { + "content_hash": "51f211f7c40ee50f9a04e7fbec3829c9349a737038a51803046a47e68842fe36", + "lines": 67, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/planner/tests_lifecycle.rs": { + "content_hash": "011ee350e3430b19f9132cdf7b8a760c3e5ff254697a5d5c04abfa2d7ea2746f", + "lines": 224, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/codegen_scripts.rs": { + "content_hash": "1aec4a1f7fbd71e200736351449eb48da43034e7c29c4158c6253d4ec46f47e3", + "lines": 231, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/codegen/tests_coverage.rs": { + "content_hash": "34d3b6fcc4fea7cb616e7538af6d6b508f6ce6933d7a900b3cb70b717d473c61", + "lines": 269, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_3.rs": { + "content_hash": "fa92eb256aacdaa41fd7b5968e61bc3caa011efba331b28f112fa5425904451a", + "lines": 475, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_show_2.rs": { + "content_hash": "bd627925118bd47ac5bbbca0b90951c6fae93b5bbf1617a2ab27dd5bc6a8f0ce", + "lines": 225, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/mcp/tests_handlers_more.rs": { + "content_hash": "9f521869e1bf0d3061b2311c7fefcdf4f2d9275188bd5604713e252dcd891ad2", + "lines": 349, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "tests/container_transport.rs": { + "content_hash": "5eaf35999f82182fc8ffcfa7bba3084e607fcd733f8af0ecaf9e2088926e4e9e", + "lines": 105, + "functions": 0, + "max_complexity": 0, + "category": "TestCode" + }, + "src/cli/status_security.rs": { + "content_hash": "5d1b6687847ae9c6e7a567c84429575f5119a37a59e1efd0c0a38291e62cd054", + "lines": 523, + "functions": 28, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_graph2.rs": { + "content_hash": "dc3b9470ab3298589ff28ee972bfde94c64a3a4f54cfd2f5d3fa54dc7a6f8f03", + "lines": 378, + "functions": 53, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_doctor.rs": { + "content_hash": "24fbc7d8a065ff4bd1bd7380595e8cc5e5cbc9db2c0fb91e1a2a2ae8a3ae1455", + "lines": 178, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/cache_exec.rs": { + "content_hash": "eb1d3d7a584cfc38ebf258302c78b43ec08dfa5eb1c94c809bf5e8f46665f29b", + "lines": 254, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch_notify.rs": { + "content_hash": "11d85393b6340e2410ee2de725015ca7e5779a45570d973fcf24b9a3a18e4fe4", + "lines": 728, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_file.rs": { + "content_hash": "b04d499f3404375fc6c01ba7bcf748f8d33f5c515086550b602d3b7f84fe7ec1", + "lines": 308, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_gpu.rs": { + "content_hash": "3fef1a4a3c63a750a6410c318f593afe6d2de68169f76c456480671f5ace8852", + "lines": 447, + "functions": 29, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/tests_purifier.rs": { + "content_hash": "2590f79be5bf58666abe31c1b7294d2a0b87213100b1190097d270ddc6e91915", + "lines": 304, + "functions": 22, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_operational.rs": { + "content_hash": "c67f575d0b6b37879d87be18a304c51a63b4d127184f0c0b39a4e70ea8c9ce93", + "lines": 529, + "functions": 18, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_13.rs": { + "content_hash": "1110878080dc7f004e5c4b035c9e0242aa4e5192e8023c8c0878e1a7a0b44167", + "lines": 584, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_filters.rs": { + "content_hash": "2c04e083f7fa64028db31cb2d1a0c8181322a6ab0e715ec3d470d1fd986c4065", + "lines": 400, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_11.rs": { + "content_hash": "0f99be1bbe1377b6ab724baf304431a900a7361d15b4b82d7d52a43a2dfea94b", + "lines": 584, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_intelligence_ext.rs": { + "content_hash": "eeb9abf73fbfc962479c96003f7208a7ff1c33a9b00ae21afbc1ce91adcb8d61", + "lines": 759, + "functions": 27, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_8.rs": { + "content_hash": "1185e4f85d857d6ec63ecca39b7da844e29f93bc3fd9db14722ca67d425278a5", + "lines": 620, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/apply_helpers.rs": { + "content_hash": "f2146aaa4e9defac6876e53922ffe7d317ccdee4285e8658a6fc5368fe1f935b", + "lines": 131, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_validate_core_b.rs": { + "content_hash": "3df112f43b66f2612375b6abe8f737900c689d94c3982a88c75ee02930dd7b65", + "lines": 489, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/provider.rs": { + "content_hash": "1e14c29a40c634ac83ecfcc1597d908c02069bbd22a23c97d65cf3489226d1cf", + "lines": 206, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/drift/tests_edge_fj132.rs": { + "content_hash": "548bc6e30bbf5689453b1ffefda21385743466c3cf7b8baeba29069d569b3d2a", + "lines": 309, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/validation.rs": { + "content_hash": "8346d643a4450c0aa664b04298cd5e3b8483e74ae34344148daa81d625359f30", + "lines": 118, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_counts.rs": { + "content_hash": "03cf2179bffbb3dd1c257375fab494bc5d968154375c543492c255fcd99b0f76", + "lines": 97, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/score.rs": { + "content_hash": "697e597617672776bac2976841e12e91e9b8b040ebbd77b776d0e82c1078754f", + "lines": 51, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_9.rs": { + "content_hash": "12615ab2ab0e95d47c3c356ba5e0e6667a55ca386a23bbac175113fc13e436b0", + "lines": 528, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_drift_intel2.rs": { + "content_hash": "6f32e09b223fb4a152deac6b1cdb6b80ef62dc08f2b6da69cc19c4b79649945b", + "lines": 460, + "functions": 18, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_import_cmd.rs": { + "content_hash": "ca8678572947c76d895196e76c9ae6f6acb300fcec1481e9b572e38aae0b484e", + "lines": 228, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_remaining_2.rs": { + "content_hash": "2e75f5536689c2c76cefac7ebbfa69de9c81e67487ad5f43b3bc21304178843d", + "lines": 379, + "functions": 50, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/lock_ops_args.rs": { + "content_hash": "0a0ef2dd6cf1e8a992a644dabcd8fdee6fccda5656aa865cbbd989b0b81d48b9", + "lines": 221, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_health.rs": { + "content_hash": "0f9113539d8a95272807eab2218080651daf1ddf3b8cce14a28b3d2a4daeaa4e", + "lines": 480, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_store_archive.rs": { + "content_hash": "bcf1bb0fc5105667e853fbbdf8b7718b9d8dc3f5fcdbbaf525c3a9788bcf7526", + "lines": 143, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_graph_core.rs": { + "content_hash": "cdbc15670c287d28cf372460cf34fc03c5a8680b0953cc697279d7774bb53605", + "lines": 423, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_rolling.rs": { + "content_hash": "cbca7f9c8fa3f645deb82608388fe64e767b9550f3388416630c2d5a233b8aad", + "lines": 261, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase89.rs": { + "content_hash": "70e540ec4031f62163e0d14d04422bcb6c2fed1e957ee5d70ed2e689b4a6c1b8", + "lines": 308, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_transport.rs": { + "content_hash": "9be38f2f8c563b82f6df823e7f47e1000f238d7883f930e1b32f8cf3a36b9a5d", + "lines": 487, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "benches/core_bench.rs": { + "content_hash": "2641736063b138182417b8a848286f6f69435d00049397df49c750ecaf7b736b", + "lines": 610, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/lib.rs": { + "content_hash": "e0b8dc7a5e97c44562a039ac02eb9134596d8ad98973a25080203f32a92e1067", + "lines": 12, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/print_helpers.rs": { + "content_hash": "14fab206c24dde8dff130d982296586067b476a1fe46cdb0d4210b463a7bc87e", + "lines": 241, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_3_b.rs": { + "content_hash": "7f879d507e8f70be38da61e42293acf03bf3025c2efb27a5b2069ac3487c504e", + "lines": 475, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_pin_resolve.rs": { + "content_hash": "596670544d1060d16071fcafd8d4e54ee634df83a3d4497145b0206eb29e1446", + "lines": 210, + "functions": 28, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/chunker.rs": { + "content_hash": "27d30c5d66393e4c48bf395abe4149e2047aefbb246833baa974b1820adcb437", + "lines": 140, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_far.rs": { + "content_hash": "24550e8b86ecf27dcd0fcb84087f98b1e20953293c06a573be3d0b28b325a7b8", + "lines": 185, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_audit.rs": { + "content_hash": "635bd8f48d74fd82be82f519bad6521032b68127a73aea0816941feac68f0417", + "lines": 460, + "functions": 19, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_transport_3.rs": { + "content_hash": "5db5283ea634c9728bf749c2a68817a5460d41466c4128cea901d7e833dfc87e", + "lines": 496, + "functions": 29, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_extended.rs": { + "content_hash": "b69d7bb4dd1eb9319b0732c2cbae1df057d49234c1eae9cd7423e6c187ee0cea", + "lines": 379, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_compliance_ext.rs": { + "content_hash": "52a51378bc98cdc284777bcdcf3966d365b46e33ec9efe10dd2881a3529cca75", + "lines": 430, + "functions": 26, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_fleet_reporting.rs": { + "content_hash": "3901fe210760f37694820731b9431fe74558573a333681f17b9da1955f03d19f", + "lines": 86, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/repro_score.rs": { + "content_hash": "868b818e86f30358f42e560e49346e66426f57871f68a406006e9028b2fca262", + "lines": 119, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/status_args.rs": { + "content_hash": "b2df8deccc2c8cd18bb80be47098e390cb5dbf7cd6a16c74163be10113c56180", + "lines": 676, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_misc_2.rs": { + "content_hash": "0c72d3e8511ed1c5abac170244cd9ec3a33a39c6fd14f8ce2dacc31e8ed07ac7", + "lines": 391, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase73.rs": { + "content_hash": "30cf3a82640c3e614ba7b9dce1f9df02aa4c558dc4f1790f239e8d6c125deb16", + "lines": 283, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/package.rs": { + "content_hash": "7b78ef2be7d1342bc58259a458f848372a8bd2070cb9a0c77e2baf12070457a5", + "lines": 192, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_resources.rs": { + "content_hash": "c30a9bd72485e2d4669f36919b1e0498e8fc5510d523dc308b2b43fe8b21bcf1", + "lines": 260, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/history.rs": { + "content_hash": "b71f21a1943143a0694336ed32053d28a4bea1275320430367ba14fa3e64977b", + "lines": 268, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/meta.rs": { + "content_hash": "ee76198a36d480e2f1147085306b65a8f851e26665bb42fe1f443aaa38095326", + "lines": 125, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/expansion.rs": { + "content_hash": "36e647edd310f9d8f1f30595e6a50c1b5f5f352a5da67ed77f65fa1f77649fe2", + "lines": 110, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_topology.rs": { + "content_hash": "7a8a8a0e3dec311df91ea693be873441b2d0db8b81dd09e33ab3d94521411888", + "lines": 484, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase87.rs": { + "content_hash": "1e84fc118324487ca1d725601d4484cb4ffd00a7ae1757a99e8f754fee9da4ac", + "lines": 301, + "functions": 24, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/plan_args.rs": { + "content_hash": "9a317401d68dba54b512ebdb9bda678819a39a4d05243b89030a37bca0f46683", + "lines": 85, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/store_ops.rs": { + "content_hash": "05061ff9a5ea8c8518a15918e79c25604f2cb8da0002b7bff0641ce1f67d0f1b", + "lines": 244, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/pepita/mod.rs": { + "content_hash": "352fa33729052c5810ec9130601b9a9be2e8209fd368f98431faa67d1b9abebd", + "lines": 218, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/state/tests_basic.rs": { + "content_hash": "26773ead1c2a4f5649bafbf9fb0ae4903aa075f74a18d6023262ad0dd7c1071f", + "lines": 354, + "functions": 24, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase76.rs": { + "content_hash": "afcd94e8394a4f54034c13db7138510a2d3818b914bc2df917c4a0fedaafc3f2", + "lines": 290, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase107.rs": { + "content_hash": "e486299b14d73cd633bb447a4c25ad0e122c296dd1b7bc5d38ad973de7f6df69", + "lines": 225, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/tests_data.rs": { + "content_hash": "1f1ae2c8727651048eeff987ddd1cb6b0cd5da5fd1432cf001672485539da462", + "lines": 368, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_14.rs": { + "content_hash": "50450e6aaa6a7fff6ee109442e4ba0fc71a35ae53f7ea8f0e477cf32234fd1ce", + "lines": 584, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/mount.rs": { + "content_hash": "c2a3832d37383b154b7771f9a943d0ff31758f4dd6f7367ce8f83bfef994dfd2", + "lines": 72, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_resource_intel.rs": { + "content_hash": "86d33a5d43a4e1f5cbe8e5672e93f066e17fe64dd817f2fe5c014a63696f2557", + "lines": 719, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_queries.rs": { + "content_hash": "4e34a126b8c125dfe51f90a1aafe25a3ccc45747614703985b58203040e5c983", + "lines": 364, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_diagnostics.rs": { + "content_hash": "fca182a3d1a07e39525cece8e8c450bbf6acf6c611e06c98d9db2dba73797794", + "lines": 578, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/provider_exec.rs": { + "content_hash": "22bd322b3e15973153ef36478aaa44d5e01f8b09f40617154bae97860dd3f400", + "lines": 244, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase61.rs": { + "content_hash": "3c0a05cbc05aeb4276e2c75cd0e8a68e0d2d41b870e7606fc4dddee23df30db1", + "lines": 195, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_converge2.rs": { + "content_hash": "7687b3a9b2fadbb90b1b12c193058eb20f332f8b79000265df647d579eb41d30", + "lines": 325, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/purity.rs": { + "content_hash": "be7d1125758a0e3432bd47eb70ebc52484130c0c556fd02d9397638aaf500790", + "lines": 113, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/store_import.rs": { + "content_hash": "73923a58d4425f9f5de2e21d7f506a13c09315c8f7d9610216836829e234cb55", + "lines": 145, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/apply_args.rs": { + "content_hash": "d8a4ea7b767a9afa7d1ef57e7de87dd0a3d3e9247f7822262c6e2084026c0e7a", + "lines": 680, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_1.rs": { + "content_hash": "f5ddacf24be97d134f24e95a58e5f1300c3082766da76ad935e1c7e51fc58b77", + "lines": 701, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_recovery.rs": { + "content_hash": "0d4cfff5a848ceaadac787b245e475aff436cf6297353d029a9b79c26e5dc304", + "lines": 677, + "functions": 22, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/mod.rs": { + "content_hash": "d6f20aeacf53c77365727163bc1ba6263497103933a855622e5465ded5bd8891", + "lines": 42, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch_validate.rs": { + "content_hash": "940d3a0c38925dd9059f95f3398cb629347873ccaf2c3245cf911a1a2b182f6b", + "lines": 1143, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + } + }, + "coverage_required": [ + "src/core/tests_secrets.rs", + "src/core/recipe/tests_expansion.rs", + "src/core/recipe/tests_integration.rs", + "src/core/recipe/mod.rs", + "src/core/recipe/tests_validation.rs", + "src/core/recipe/validation.rs", + "src/core/recipe/types.rs", + "src/core/recipe/expansion.rs", + "src/core/recipe/validation_types.rs", + "src/core/mod.rs", + "src/core/scoring.rs", + "src/core/tests_scoring_b.rs", + "src/core/executor/strategies.rs", + "src/core/executor/tests_edge_record.rs", + "src/core/executor/tests_edge_apply.rs", + "src/core/executor/tests_advanced.rs", + "src/core/executor/mod.rs", + "src/core/executor/resource_ops.rs", + "src/core/executor/tests_converge2.rs", + "src/core/executor/tests_parallel.rs", + "src/core/executor/machine_wave.rs", + "src/core/executor/tests_filters.rs", + "src/core/executor/test_fixtures.rs", + "src/core/executor/tests_rolling.rs", + "src/core/executor/tests_waves.rs", + "src/core/executor/helpers.rs", + "src/core/executor/tests_localhost.rs", + "src/core/executor/tests_localhost2.rs", + "src/core/executor/tests_hooks.rs", + "src/core/executor/tests_drift.rs", + "src/core/executor/tests_converge.rs", + "src/core/executor/tests_core.rs", + "src/core/executor/tests_edge_details.rs", + "src/core/executor/tests_concurrent.rs", + "src/core/executor/machine.rs", + "src/core/parser/tests_misc_2b.rs", + "src/core/parser/tests_expansion.rs", + "src/core/parser/tests_arch.rs", + "src/core/parser/mod.rs", + "src/core/parser/tests_misc_2.rs", + "src/core/parser/tests_includes.rs", + "src/core/parser/resource_types.rs", + "src/core/parser/tests_validation.rs", + "src/core/parser/tests_misc.rs", + "src/core/parser/policy.rs", + "src/core/parser/includes.rs", + "src/core/parser/validation.rs", + "src/core/parser/tests_misc_3.rs", + "src/core/parser/expansion.rs", + "src/core/parser/tests_core.rs", + "src/core/parser/tests_triggers.rs", + "src/core/parser/recipes.rs", + "src/core/parser/tests_misc_4.rs", + "src/core/parser/tests_policy.rs", + "src/core/migrate.rs", + "src/core/planner/tests_when.rs", + "src/core/planner/tests_advanced.rs", + "src/core/planner/mod.rs", + "src/core/planner/tests_helpers.rs", + "src/core/planner/tests_hash.rs", + "src/core/planner/tests_lifecycle.rs", + "src/core/planner/tests_determine.rs", + "src/core/planner/tests_describe.rs", + "src/core/planner/tests_plan.rs", + "src/core/planner/tests_filter.rs", + "src/core/tests_purifier.rs", + "src/core/purifier.rs", + "src/core/resolver/resource.rs", + "src/core/resolver/mod.rs", + "src/core/resolver/tests_functions.rs", + "src/core/resolver/tests_helpers.rs", + "src/core/resolver/tests_dag.rs", + "src/core/resolver/tests_waves.rs", + "src/core/resolver/dag.rs", + "src/core/resolver/template.rs", + "src/core/resolver/data.rs", + "src/core/resolver/tests_data.rs", + "src/core/resolver/tests_template.rs", + "src/core/resolver/functions.rs", + "src/core/resolver/tests_proptest.rs", + "src/core/resolver/tests_resource.rs", + "src/core/state/tests_edge.rs", + "src/core/state/mod.rs", + "src/core/state/tests_helpers.rs", + "src/core/state/tests_process_lock.rs", + "src/core/state/tests_encrypt.rs", + "src/core/state/tests_basic.rs", + "src/core/tests_scoring.rs", + "src/core/secrets.rs", + "src/core/codegen/tests_completeness.rs", + "src/core/codegen/mod.rs", + "src/core/codegen/test_fixtures.rs", + "src/core/codegen/dispatch.rs", + "src/core/codegen/tests_coverage.rs", + "src/core/codegen/tests_dispatch.rs", + "src/core/conditions.rs", + "src/core/store/tests_sync_exec.rs", + "src/core/store/tests_lockfile.rs", + "src/core/store/convert.rs", + "src/core/store/conda.rs", + "src/core/store/gc.rs", + "src/core/store/tests_convert_exec.rs", + "src/core/store/tests_path.rs", + "src/core/store/store_diff.rs", + "src/core/store/sandbox_exec.rs", + "src/core/store/tests_pin_resolve.rs", + "src/core/store/tests_chunker.rs", + "src/core/store/mod.rs", + "src/core/store/tests_cache.rs", + "src/core/store/substitution.rs", + "src/core/store/far.rs", + "src/core/store/profile.rs", + "src/core/store/path.rs", + "src/core/store/tests_hf_config.rs", + "src/core/store/tests_sandbox.rs", + "src/core/store/secret_scan.rs", + "src/core/store/repro_score.rs", + "src/core/store/contract_scaffold.rs", + "src/core/store/pin_resolve.rs", + "src/core/store/tests_purity.rs", + "src/core/store/tests_substitution.rs", + "src/core/store/validate.rs", + "src/core/store/tests_profile.rs", + "src/core/store/tests_store_diff.rs", + "src/core/store/cache.rs", + "src/core/store/tests_convert.rs", + "src/core/store/sandbox.rs", + "src/core/store/contract_coverage.rs", + "src/core/store/tests_closure.rs", + "src/core/store/lockfile.rs", + "src/core/store/gc_exec.rs", + "src/core/store/meta.rs", + "src/core/store/tests_gc_exec.rs", + "src/core/store/chunker.rs", + "src/core/store/kernel_far.rs", + "src/core/store/tests_conda.rs", + "src/core/store/convert_exec.rs", + "src/core/store/pin_tripwire.rs", + "src/core/store/tests_derivation_exec.rs", + "src/core/store/tests_far.rs", + "src/core/store/tests_secret_scan.rs", + "src/core/store/provider_exec.rs", + "src/core/store/sync_exec.rs", + "src/core/store/purity.rs", + "src/core/store/tests_repro_score.rs", + "src/core/store/reference.rs", + "src/core/store/tests_provider.rs", + "src/core/store/tests_validate.rs", + "src/core/store/derivation_exec.rs", + "src/core/store/tests_contract_coverage.rs", + "src/core/store/tests_contract_scaffold.rs", + "src/core/store/hf_config.rs", + "src/core/store/tests_cache_exec.rs", + "src/core/store/tests_sandbox_run.rs", + "src/core/store/tests_pin_tripwire.rs", + "src/core/store/tests_derivation.rs", + "src/core/store/derivation.rs", + "src/core/store/sandbox_run.rs", + "src/core/store/tests_kernel_far.rs", + "src/core/store/tests_meta.rs", + "src/core/store/tests_reference.rs", + "src/core/store/cache_exec.rs", + "src/core/store/tests_sandbox_exec.rs", + "src/core/store/tests_gc.rs", + "src/core/store/tests_provider_exec.rs", + "src/core/store/tests_bash_provability.rs", + "src/core/store/closure.rs", + "src/core/store/provider.rs", + "src/core/tests_purifier_b.rs", + "src/core/types/resource.rs", + "src/core/types/mod.rs", + "src/core/types/tests_state.rs", + "src/core/types/policy.rs", + "src/core/types/config.rs", + "src/core/types/tests_config.rs", + "src/core/types/tests_resource.rs", + "src/core/types/state_types.rs", + "src/mcp/tests_handlers.rs", + "src/mcp/registry.rs", + "src/mcp/mod.rs", + "src/mcp/handlers.rs", + "src/mcp/tests_handlers_more.rs", + "src/mcp/types.rs", + "src/mcp/tests_registry.rs", + "src/cli/tests_misc_5.rs", + "src/cli/tests_phase71.rs", + "src/cli/tests_snapshot.rs", + "src/cli/status_drift_intel.rs", + "src/cli/tests_graph_core_2.rs", + "src/cli/graph_scoring.rs", + "src/cli/validate_maturity.rs", + "src/cli/validate_safety.rs", + "src/cli/status_resource_intel.rs", + "src/cli/status_operational.rs", + "src/cli/tests_misc_1_b.rs", + "src/cli/validate_resources.rs", + "src/cli/snapshot.rs", + "src/cli/tests_misc_9_b.rs", + "src/cli/graph_governance.rs", + "src/cli/drift.rs", + "src/cli/tests_diff_cmd.rs", + "src/cli/tests_phase79.rs", + "src/cli/tests_apply_10.rs", + "src/cli/tests_status_core_6.rs", + "src/cli/status_security.rs", + "src/cli/dispatch_notify.rs", + "src/cli/commands/mod.rs", + "src/cli/commands/misc_ops_args.rs", + "src/cli/commands/status_args.rs", + "src/cli/commands/validate_args.rs", + "src/cli/commands/misc_args.rs", + "src/cli/commands/plan_args.rs", + "src/cli/commands/lock_core_args.rs", + "src/cli/commands/apply_args.rs", + "src/cli/commands/state_args.rs", + "src/cli/commands/store_args.rs", + "src/cli/commands/lock_ops_args.rs", + "src/cli/commands/subcmd_args.rs", + "src/cli/commands/graph_args.rs", + "src/cli/tests_graph_core.rs", + "src/cli/tests_status_core_3_b.rs", + "src/cli/tests_misc_1.rs", + "src/cli/tests_infra.rs", + "src/cli/status_fleet_insight.rs", + "src/cli/tests_validate_core_2.rs", + "src/cli/tests_cov_validate3_d.rs", + "src/cli/tests_phase86.rs", + "src/cli/validate_advanced.rs", + "src/cli/tests_cov_status_1.rs", + "src/cli/dispatch_validate.rs", + "src/cli/tests_status_core_2.rs", + "src/cli/observe.rs", + "src/cli/score.rs", + "src/cli/tests_plan_file.rs", + "src/cli/lock_core.rs", + "src/cli/tests_graph_core_4.rs", + "src/cli/graph_impact.rs", + "src/cli/graph_transport.rs", + "src/cli/tests_validate_core_b.rs", + "src/cli/tests_status_core_5_b.rs", + "src/cli/validate_analytics.rs", + "src/cli/status_fleet.rs", + "src/cli/tests_cov_status_6.rs", + "src/cli/status_compliance.rs", + "src/cli/tests_status_core_8_b.rs", + "src/cli/tests_show_2.rs", + "src/cli/tests_cov_args_4.rs", + "src/cli/print_helpers.rs", + "src/cli/status_intelligence.rs", + "src/cli/dispatch_graph.rs", + "src/cli/tests_apply_9.rs", + "src/cli/tests_score.rs", + "src/cli/mod.rs", + "src/cli/tests_misc_2.rs", + "src/cli/tests_phase88.rs", + "src/cli/validate_quality.rs", + "src/cli/dispatch_misc.rs", + "src/cli/graph_extended.rs", + "src/cli/tests_cov_fleet_b.rs", + "src/cli/tests_show_1.rs", + "src/cli/tests_helpers_state.rs", + "src/cli/tests_phase77.rs", + "src/cli/tests_apply_11.rs", + "src/cli/status_alerts.rs", + "src/cli/validate_hygiene.rs", + "src/cli/status_diagnostics.rs", + "src/cli/tests_helpers.rs", + "src/cli/graph_lifecycle.rs", + "src/cli/tests_misc_6.rs", + "src/cli/tests_apply_1.rs", + "src/cli/store_pin.rs", + "src/cli/tests_misc_10.rs", + "src/cli/tests_check.rs", + "src/cli/tests_store_archive.rs", + "src/cli/store_import.rs", + "src/cli/tests_cov_notify.rs", + "src/cli/tests_status_core_5.rs", + "src/cli/tests_validate_core.rs", + "src/cli/graph_intelligence_ext.rs", + "src/cli/tests_workspace.rs", + "src/cli/validate_compliance.rs", + "src/cli/tests_apply_20.rs", + "src/cli/tests_cov_remaining_3.rs", + "src/cli/helpers_state.rs", + "src/cli/tests_cov_notify_2.rs", + "src/cli/graph_quality.rs", + "src/cli/store_archive.rs", + "src/cli/tests_cov_fleet.rs", + "src/cli/tests_lock_core.rs", + "src/cli/tests_graph_core_3.rs", + "src/cli/tests_cov_graph3_c.rs", + "src/cli/status_convergence.rs", + "src/cli/tests_cov_status_4.rs", + "src/cli/status_resources.rs", + "src/cli/tests_show.rs", + "src/cli/status_operational_ext.rs", + "src/cli/tests_cov_dispatch_3.rs", + "src/cli/history.rs", + "src/cli/graph_analysis.rs", + "src/cli/tests_cov_status_5.rs", + "src/cli/status_drift_intel2.rs", + "src/cli/test_fixtures.rs", + "src/cli/tests_cov_lock.rs", + "src/cli/tests_show_3.rs", + "src/cli/graph_weight.rs", + "src/cli/validate_paths.rs", + "src/cli/tests_cov_validate3_c.rs", + "src/cli/tests_cov_args.rs", + "src/cli/tests_cov_validate2_b.rs", + "src/cli/tests_graph_core_5.rs", + "src/cli/tests_apply_21.rs", + "src/cli/tests_cov_remaining_2.rs", + "src/cli/graph_cross.rs", + "src/cli/status_core.rs", + "src/cli/helpers.rs", + "src/cli/dispatch_status.rs", + "src/cli/tests_status_core_7.rs", + "src/cli/status_maturity.rs", + "src/cli/validate_compliance_ext.rs", + "src/cli/tests_phase94.rs", + "src/cli/tests_phase100.rs", + "src/cli/status_transport.rs", + "src/cli/store_cache.rs", + "src/cli/tests_phase99.rs", + "src/cli/tests_phase81.rs", + "src/cli/tests_cov_notify_3.rs", + "src/cli/tests_cov_args_2.rs", + "src/cli/tests_apply_18.rs", + "src/cli/tests_phase68.rs", + "src/cli/tests_phase106.rs", + "src/cli/tests_phase85.rs", + "src/cli/tests_status_queries.rs", + "src/cli/tests_status_core_1.rs", + "src/cli/tests_phase87.rs", + "src/cli/tests_phase65.rs", + "src/cli/tests_validate_core_3.rs", + "src/cli/status_resource_detail.rs", + "src/cli/tests_phase105.rs", + "src/cli/tests_misc.rs", + "src/cli/doctor.rs", + "src/cli/tests_apply_19.rs", + "src/cli/tests_cov_validate3_b.rs", + "src/cli/tests_phase90.rs", + "src/cli/tests_import_cmd.rs", + "src/cli/tests_phase83.rs", + "src/cli/tests_cov_status_2.rs", + "src/cli/tests_phase73.rs", + "src/cli/lock_lifecycle.rs", + "src/cli/status_failures.rs", + "src/cli/tests_phase59.rs", + "src/cli/tests_phase62.rs", + "src/cli/tests_phase96.rs", + "src/cli/tests_apply_3.rs", + "src/cli/tests_status_core_b.rs", + "src/cli/tests_phase98.rs", + "src/cli/tests_fleet_ops_1.rs", + "src/cli/tests_phase76.rs", + "src/cli/workspace.rs", + "src/cli/tests_misc_7_b.rs", + "src/cli/plan.rs", + "src/cli/tests_cov_dispatch_4.rs", + "src/cli/tests_misc_8.rs", + "src/cli/check.rs", + "src/cli/tests_phase82.rs", + "src/cli/tests_apply_7.rs", + "src/cli/tests_apply_5.rs", + "src/cli/tests_cov_status_4_c.rs", + "src/cli/status_recovery.rs", + "src/cli/graph_topology.rs", + "src/cli/status_insights.rs", + "src/cli/tests_phase72.rs", + "src/cli/tests_status_core_4_b.rs", + "src/cli/tests_status_core_4.rs", + "src/cli/fleet_ops.rs", + "src/cli/infra.rs", + "src/cli/validate_security.rs", + "src/cli/tests_store_import.rs", + "src/cli/apply_output.rs", + "src/cli/validate_structural.rs", + "src/cli/tests_phase91.rs", + "src/cli/tests_apply.rs", + "src/cli/tests_check_2.rs", + "src/cli/tests_status_core_10.rs", + "src/cli/tests_cov_transport_3.rs", + "src/cli/init.rs", + "src/cli/tests_phase95.rs", + "src/cli/tests_phase63.rs", + "src/cli/tests_phase66.rs", + "src/cli/tests_apply_15.rs", + "src/cli/tests_fleet_ops.rs", + "src/cli/apply_helpers.rs", + "src/cli/tests_cov_remaining_6.rs", + "src/cli/tests_cov_remaining.rs", + "src/cli/tests_phase84.rs", + "src/cli/tests_phase97.rs", + "src/cli/tests_cov_transport_2.rs", + "src/cli/validate_core.rs", + "src/cli/tests_phase67.rs", + "src/cli/graph_topology_ext.rs", + "src/cli/graph_analytics_ext.rs", + "src/cli/validate_ordering.rs", + "src/cli/graph_intelligence_ext2.rs", + "src/cli/tests_destroy.rs", + "src/cli/tests_fleet_reporting.rs", + "src/cli/tests_cov_dispatch_2.rs", + "src/cli/dispatch.rs", + "src/cli/dispatch_store.rs", + "src/cli/tests_phase89.rs", + "src/cli/tests_status_core_3.rs", + "src/cli/tests_validate_core_1.rs", + "src/cli/tests_helpers_time.rs", + "src/cli/tests_status_core_9.rs", + "src/cli/tests_store_convert.rs", + "src/cli/tests_cov_apply.rs", + "src/cli/graph_resilience_ext.rs", + "src/cli/validate_ordering_ext.rs", + "src/cli/tests_cov_status_3.rs", + "src/cli/tests_status_core_6_b.rs", + "src/cli/graph_intelligence.rs", + "src/cli/dispatch_notify_custom.rs", + "src/cli/tests_drift.rs", + "src/cli/tests_apply_23.rs", + "src/cli/tests_cov_args_3.rs", + "src/cli/tests_apply_16.rs", + "src/cli/tests_misc_3.rs", + "src/cli/validate_ownership.rs", + "src/cli/secrets.rs", + "src/cli/tests_cov_args_extra_b.rs", + "src/cli/status_counts.rs", + "src/cli/status_observability.rs", + "src/cli/helpers_time.rs", + "src/cli/tests_cov_graph2.rs", + "src/cli/lock_security.rs", + "src/cli/tests_apply_8.rs", + "src/cli/tests_cov_args_extra.rs", + "src/cli/tests_apply_6.rs", + "src/cli/tests_store_pin.rs", + "src/cli/tests_apply_2.rs", + "src/cli/tests_cov_remaining_7.rs", + "src/cli/graph_export.rs", + "src/cli/tests_cov_args_2_b.rs", + "src/cli/tests_phase101.rs", + "src/cli/graph_resilience.rs", + "src/cli/lock_merge.rs", + "src/cli/dispatch_status_ext.rs", + "src/cli/tests_apply_helpers.rs", + "src/cli/tests_check_1.rs", + "src/cli/validate_policy.rs", + "src/cli/tests_validate_core_2_b.rs", + "src/cli/tests_apply_12.rs", + "src/cli/tests_cov_remaining_8.rs", + "src/cli/status_intelligence_ext2.rs", + "src/cli/status_intelligence_ext.rs", + "src/cli/tests_doctor.rs", + "src/cli/tests_history.rs", + "src/cli/tests_validate_transport.rs", + "src/cli/status_quality.rs", + "src/cli/tests_status_core.rs", + "src/cli/validate_governance.rs", + "src/cli/graph_analytics.rs", + "src/cli/tests_cov_graph3.rs", + "src/cli/tests_destroy_1.rs", + "src/cli/tests_plan.rs", + "src/cli/tests_apply_17.rs", + "src/cli/status_cost.rs", + "src/cli/tests_observe.rs", + "src/cli/tests_cov_remaining_9.rs", + "src/cli/tests_print_helpers.rs", + "src/cli/status_resilience.rs", + "src/cli/dispatch_lock.rs", + "src/cli/graph_paths.rs", + "src/cli/tests_cov_misc2_b.rs", + "src/cli/status_fleet_detail.rs", + "src/cli/graph_visualization.rs", + "src/cli/status_drift.rs", + "src/cli/tests_cov_dispatch.rs", + "src/cli/tests_phase107.rs", + "src/cli/tests_phase74.rs", + "src/cli/diff_cmd.rs", + "src/cli/tests_cov_status_4_b.rs", + "src/cli/tests_cov_remaining_4.rs", + "src/cli/validate_governance_ext.rs", + "src/cli/validate_security_ext.rs", + "src/cli/tests_status_core_7_b.rs", + "src/cli/tests_apply_13.rs", + "src/cli/tests_phase104.rs", + "src/cli/tests_cov_misc2.rs", + "src/cli/tests_apply_6_b.rs", + "src/cli/status_queries.rs", + "src/cli/tests_phase60.rs", + "src/cli/destroy.rs", + "src/cli/status_trends.rs", + "src/cli/validate_transport.rs", + "src/cli/store_ops.rs", + "src/cli/tests_validate_core_1_b.rs", + "src/cli/tests_misc_5_b.rs", + "src/cli/validate_audit.rs", + "src/cli/tests_graph_core_b.rs", + "src/cli/tests_cov_transport.rs", + "src/cli/validate_topology.rs", + "src/cli/lint.rs", + "src/cli/fleet_reporting.rs", + "src/cli/import_cmd.rs", + "src/cli/tests_phase61.rs", + "src/cli/tests_cov_validate2.rs", + "src/cli/tests_cov_validate.rs", + "src/cli/status_analytics.rs", + "src/cli/lock_audit.rs", + "src/cli/tests_cov_status_7.rs", + "src/cli/validate_scoring.rs", + "src/cli/graph_advanced.rs", + "src/cli/status_operational_ext2.rs", + "src/cli/tests_misc_9.rs", + "src/cli/tests_status_core_2_b.rs", + "src/cli/tests_phase70.rs", + "src/cli/tests_cov_graph.rs", + "src/cli/graph_compliance.rs", + "src/cli/tests_graph_core_1.rs", + "src/cli/tests_phase64.rs", + "src/cli/status_health.rs", + "src/cli/graph_core.rs", + "src/cli/show.rs", + "src/cli/tests_init.rs", + "src/cli/status_predictive.rs", + "src/cli/tests_phase69.rs", + "src/cli/tests_phase103.rs", + "src/cli/tests_phase92.rs", + "src/cli/tests_cov_apply_b.rs", + "src/cli/tests_cov_remaining_5.rs", + "src/cli/validate_config_quality.rs", + "src/cli/tests_cov_notify_4.rs", + "src/cli/tests_apply_14.rs", + "src/cli/tests_phase78.rs", + "src/cli/tests_misc_4.rs", + "src/cli/dispatch_apply.rs", + "src/cli/tests_phase80.rs", + "src/cli/tests_store_ops.rs", + "src/cli/tests_phase102.rs", + "src/cli/tests_lock_core_1.rs", + "src/cli/graph_health.rs", + "src/cli/tests_plan_1.rs", + "src/cli/tests_graph_core_6.rs", + "src/cli/lock_ops.rs", + "src/cli/store_convert.rs", + "src/cli/tests_cov_validate3.rs", + "src/cli/tests_misc_7.rs", + "src/cli/tests_store_cache.rs", + "src/cli/tests_apply_4.rs", + "src/cli/tests_lint.rs", + "src/cli/tests_status_core_1_b.rs", + "src/cli/lock_repair.rs", + "src/cli/tests_status_core_8.rs", + "src/cli/tests_cov_validate2_c.rs", + "src/cli/validate_resilience.rs", + "src/cli/tests_cov_graph3_b.rs", + "src/cli/tests_phase75.rs", + "src/cli/apply.rs", + "src/cli/apply_variants.rs", + "src/cli/tests_apply_22.rs", + "src/main.rs", + "src/copia/mod.rs", + "src/transport/container.rs", + "src/transport/tests_dispatch_b.rs", + "src/transport/tests_ssh.rs", + "src/transport/tests_container_b.rs", + "src/transport/tests_container.rs", + "src/transport/mod.rs", + "src/transport/tests_container_c.rs", + "src/transport/pepita.rs", + "src/transport/ssh.rs", + "src/transport/tests_dispatch.rs", + "src/transport/tests_container_d.rs", + "src/transport/local.rs", + "src/resources/gpu.rs", + "src/resources/tests_user.rs", + "src/resources/mod.rs", + "src/resources/task.rs", + "src/resources/cron.rs", + "src/resources/pepita/mod.rs", + "src/resources/tests_file.rs", + "src/resources/tests_mount_b.rs", + "src/resources/mount.rs", + "src/resources/tests_docker.rs", + "src/resources/docker.rs", + "src/resources/user.rs", + "src/resources/tests_mount.rs", + "src/resources/model.rs", + "src/resources/network.rs", + "src/resources/tests_service.rs", + "src/resources/tests_docker_b.rs", + "src/resources/tests_file_b.rs", + "src/resources/file.rs", + "src/resources/tests_package.rs", + "src/resources/tests_package_b.rs", + "src/resources/package.rs", + "src/resources/tests_gpu.rs", + "src/resources/service.rs", + "src/lib.rs", + "src/tripwire/tests_anomaly.rs", + "src/tripwire/mod.rs", + "src/tripwire/anomaly.rs", + "src/tripwire/eventlog.rs", + "src/tripwire/drift/tests_fj036.rs", + "src/tripwire/drift/mod.rs", + "src/tripwire/drift/tests_lifecycle.rs", + "src/tripwire/drift/tests_edge_fj132_b.rs", + "src/tripwire/drift/tests_basic_b.rs", + "src/tripwire/drift/tests_edge_fj131.rs", + "src/tripwire/drift/tests_transport.rs", + "src/tripwire/drift/tests_edge_fj132.rs", + "src/tripwire/drift/tests_full.rs", + "src/tripwire/drift/tests_basic.rs", + "src/tripwire/tests_hasher_b.rs", + "src/tripwire/tests_eventlog_b.rs", + "src/tripwire/hasher.rs", + "src/tripwire/tests_eventlog.rs", + "src/tripwire/tracer.rs", + "src/tripwire/tests_hasher.rs", + "benches/core_bench.rs", + "benches/store_bench.rs", + "examples/mcp_server.rs", + "examples/multi_machine.rs", + "examples/arch_filtering.rs", + "examples/store_provider_import.rs", + "examples/parse_and_plan.rs", + "examples/store_executors.rs", + "examples/state_management.rs", + "examples/template_resolution.rs", + "examples/gpu_container_transport.rs", + "examples/blake3_hashing.rs", + "examples/full_stack_deploy.rs", + "examples/validation.rs", + "examples/codegen_scripts.rs", + "examples/resource_scripts.rs", + "examples/trace_provenance.rs", + "examples/anomaly_detection.rs", + "examples/score_cookbook.rs", + "examples/conda_to_far.rs", + "examples/store_reproducibility.rs", + "examples/recipe_expansion.rs", + "examples/container_transport.rs", + "examples/shell_purifier.rs", + "examples/event_logging.rs", + "examples/user_management.rs", + "examples/drift_detection.rs" + ], + "manifest_hash": "c9c59a776e468c317c06ca8c3b62af56d7306a290b445bcfa6e80e616a430ff8" + }, + "thresholds": { + "min_coverage_pct": 95.0, + "min_per_file_coverage_pct": 95.0, + "max_tdg_regression": 0.0, + "max_function_complexity": 20, + "max_file_lines": 500, + "min_spec_score": 95, + "require_github_sync": true, + "require_spec_update": true, + "require_roadmap_update": true, + "block_on_new_satd": true, + "block_on_new_dead_code": true, + "require_lint_pass": true, + "max_fix_chain": 3, + "block_on_untested_variants": true, + "block_on_cross_crate_failure": false, + "block_on_regression": false, + "require_proof_verification": false, + "max_sorry_count": 0, + "min_theorem_coverage": 0.0, + "block_on_file_size": true + }, + "claims": [ + { + "hypothesis": "All baseline files still exist", + "falsification_method": "ManifestIntegrity", + "evidence_required": { + "FileList": [] + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "The falsifier is active and detecting (Meta-Check)", + "falsification_method": "MetaFalsification", + "evidence_required": { + "CounterExample": { + "details": "" + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "No coverage exclusion gaming", + "falsification_method": "CoverageGaming", + "evidence_required": { + "FileList": [] + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "All changed lines are covered", + "falsification_method": "DifferentialCoverage", + "evidence_required": { + "NumericComparison": { + "actual": 0.0, + "threshold": 100.0 + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "Total coverage >= 95%", + "falsification_method": "AbsoluteCoverage", + "evidence_required": { + "NumericComparison": { + "actual": 0.0, + "threshold": 95.0 + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "TDG score >= baseline", + "falsification_method": "TdgRegression", + "evidence_required": { + "NumericComparison": { + "actual": 0.0, + "threshold": 0.0 + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "No function exceeds complexity 20", + "falsification_method": "ComplexityRegression", + "evidence_required": { + "NumericComparison": { + "actual": 0.0, + "threshold": 20.0 + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "No vulnerable dependencies added", + "falsification_method": "SupplyChainIntegrity", + "evidence_required": { + "CounterExample": { + "details": "" + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "No file exceeds 500 lines", + "falsification_method": "FileSizeRegression", + "evidence_required": { + "NumericComparison": { + "actual": 0.0, + "threshold": 500.0 + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "Spec & Roadmap Quality", + "falsification_method": "SpecQuality", + "evidence_required": { + "NumericComparison": { + "actual": 0.0, + "threshold": 95.0 + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "All changes pushed", + "falsification_method": "GitHubSync", + "evidence_required": { + "GitState": { + "unpushed_commits": 0, + "dirty_files": 0 + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "All examples compile and run", + "falsification_method": "ExamplesCompile", + "evidence_required": { + "CounterExample": { + "details": "" + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "pmat-book validation passes", + "falsification_method": "BookValidation", + "evidence_required": { + "CounterExample": { + "details": "" + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "No new SATD markers (TODO/FIXME/HACK)", + "falsification_method": "SatdDetection", + "evidence_required": { + "FileList": [] + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "No new dead code introduced", + "falsification_method": "DeadCodeDetection", + "evidence_required": { + "FileList": [] + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "All files have >= 95% coverage", + "falsification_method": "PerFileCoverage", + "evidence_required": { + "FileList": [] + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "make lint passes", + "falsification_method": "LintPass", + "evidence_required": { + "BooleanCheck": false + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "All match arm variants have test coverage", + "falsification_method": "VariantCoverage", + "evidence_required": { + "FileList": [] + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "No fix-after-fix chains exceed limit", + "falsification_method": "FixChainLimit", + "evidence_required": { + "NumericComparison": { + "actual": 0.0, + "threshold": 3.0 + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "Cross-crate integration tests pass", + "falsification_method": "CrossCrateParity", + "evidence_required": { + "BooleanCheck": false + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "No performance regressions detected", + "falsification_method": "RegressionGate", + "evidence_required": { + "NumericComparison": { + "actual": 0.0, + "threshold": 0.0 + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "No incomplete proofs (sorry) introduced", + "falsification_method": "FormalProofVerification", + "evidence_required": { + "NumericComparison": { + "actual": 0.0, + "threshold": 0.0 + } + }, + "result": null, + "override_info": null + } + ], + "profile": "Pmat", + "require": [ + { + "id": "require.compiles", + "kind": "Require", + "description": "Project builds successfully", + "falsification_method": "ManifestIntegrity", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "require.tests_exist", + "kind": "Require", + "description": "At least one test exists", + "falsification_method": "MetaFalsification", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "require.manifest_integrity", + "kind": "Require", + "description": "FileManifest anti-gaming check", + "falsification_method": "ManifestIntegrity", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "require.meta_falsification", + "kind": "Require", + "description": "Falsifier self-check active", + "falsification_method": "MetaFalsification", + "threshold": null, + "blocking": true, + "source": "Default" + } + ], + "ensure": [ + { + "id": "ensure.tests_pass", + "kind": "Ensure", + "description": "All tests pass", + "falsification_method": "MetaFalsification", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.git_sync", + "kind": "Ensure", + "description": "All changes pushed to remote", + "falsification_method": "GitHubSync", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.no_regression", + "kind": "Ensure", + "description": "No previously-passing test now fails", + "falsification_method": "MetaFalsification", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.coverage", + "kind": "Ensure", + "description": "Coverage >= 95%", + "falsification_method": "AbsoluteCoverage", + "threshold": { + "Numeric": { + "metric": "coverage_pct", + "op": "Gte", + "value": 95.0 + } + }, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.differential_coverage", + "kind": "Ensure", + "description": "Changed lines must be covered", + "falsification_method": "DifferentialCoverage", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.supply_chain", + "kind": "Ensure", + "description": "No vulnerable dependencies", + "falsification_method": "SupplyChainIntegrity", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.examples_compile", + "kind": "Ensure", + "description": "All examples compile and run", + "falsification_method": "ExamplesCompile", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.tdg_regression", + "kind": "Ensure", + "description": "TDG score >= baseline", + "falsification_method": "TdgRegression", + "threshold": { + "Delta": { + "metric": "tdg_score", + "op": "Gte", + "value": 0.0 + } + }, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.coverage_gaming", + "kind": "Ensure", + "description": "No coverage exclusion gaming", + "falsification_method": "CoverageGaming", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.spec_quality", + "kind": "Ensure", + "description": "Spec score meets threshold", + "falsification_method": "SpecQuality", + "threshold": { + "Numeric": { + "metric": "spec_score", + "op": "Gte", + "value": 95.0 + } + }, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.book_validation", + "kind": "Ensure", + "description": "pmat-book validation passes", + "falsification_method": "BookValidation", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.per_file_coverage", + "kind": "Ensure", + "description": "All files >= 95% coverage", + "falsification_method": "PerFileCoverage", + "threshold": { + "Numeric": { + "metric": "per_file_coverage_pct", + "op": "Gte", + "value": 95.0 + } + }, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.variant_coverage", + "kind": "Ensure", + "description": "All match arm variants tested", + "falsification_method": "VariantCoverage", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.cross_crate_parity", + "kind": "Ensure", + "description": "Cross-crate integration tests pass", + "falsification_method": "CrossCrateParity", + "threshold": null, + "blocking": false, + "source": "Default" + } + ], + "invariant": [ + { + "id": "invariant.compiles", + "kind": "Invariant", + "description": "Project compiles at every checkpoint", + "falsification_method": "ManifestIntegrity", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "invariant.file_size", + "kind": "Invariant", + "description": "No file exceeds 500 lines", + "falsification_method": "FileSizeRegression", + "threshold": { + "Numeric": { + "metric": "max_file_lines", + "op": "Lte", + "value": 500.0 + } + }, + "blocking": true, + "source": "Default" + }, + { + "id": "invariant.lint", + "kind": "Invariant", + "description": "cargo clippy passes", + "falsification_method": "LintPass", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "invariant.complexity", + "kind": "Invariant", + "description": "No function exceeds complexity 20", + "falsification_method": "ComplexityRegression", + "threshold": { + "Numeric": { + "metric": "max_complexity", + "op": "Lte", + "value": 20.0 + } + }, + "blocking": true, + "source": "Default" + }, + { + "id": "invariant.satd", + "kind": "Invariant", + "description": "No new SATD markers", + "falsification_method": "SatdDetection", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "invariant.dead_code", + "kind": "Invariant", + "description": "No new dead code introduced", + "falsification_method": "DeadCodeDetection", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "invariant.fix_chain", + "kind": "Invariant", + "description": "Fix-after-fix chains within limit", + "falsification_method": "FixChainLimit", + "threshold": { + "Numeric": { + "metric": "fix_chain_count", + "op": "Lte", + "value": 3.0 + } + }, + "blocking": true, + "source": "Default" + } + ], + "excluded_claims": [], + "iteration": 1, + "inherited_postconditions": [], + "contract_quality": { + "active_claims": 25, + "applicable_claims": 25, + "score": 1.0, + "rating": "Full" + } +} \ No newline at end of file diff --git a/.pmat-work/PMAT-024/contract.json b/.pmat-work/PMAT-024/contract.json new file mode 100644 index 00000000..a0b51c7d --- /dev/null +++ b/.pmat-work/PMAT-024/contract.json @@ -0,0 +1,5761 @@ +{ + "version": "5.0", + "work_item_id": "PMAT-024", + "created_at": "2026-03-02T15:41:21.175553451Z", + "baseline_commit": "5e3b1b1543108d7aa05f3080acf3d23bbe897ac3", + "baseline_tdg": 0.0, + "baseline_coverage": 0.0, + "baseline_rust_score": 0.0, + "baseline_file_manifest": { + "files": { + "src/cli/commands/status_args.rs": { + "content_hash": "b2df8deccc2c8cd18bb80be47098e390cb5dbf7cd6a16c74163be10113c56180", + "lines": 676, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/sandbox_run.rs": { + "content_hash": "58ce624ed70496af87745f25b27f09c3c4d9cff9638123ea2ec63299c5c4f592", + "lines": 148, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/store_reproducibility.rs": { + "content_hash": "e1fd38b2cc2ade0444e77a0a2d7310b7ca0d2554f9db3ae5ff1753bbc8ddd969", + "lines": 450, + "functions": 19, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/codegen/mod.rs": { + "content_hash": "98e75556969ea2b3ab90bc22de30fcbfd8a303426fb88845768c65bee0a7e51a", + "lines": 15, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_analytics.rs": { + "content_hash": "5d5ee17e1dd1549aa2433d189257f59b54b718eafff552913e5e0187de17a1ea", + "lines": 424, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_policy.rs": { + "content_hash": "61be353f6ee2e40b9e535c856ebe1c0de628f50f5c1a4b1750834c72b7b9c874", + "lines": 258, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/store_cache.rs": { + "content_hash": "ff98f2df641045185025eb5c8c9ed291074b8adcfc95a894c8e1b7aa16cd310e", + "lines": 251, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase97.rs": { + "content_hash": "74f9386a495bd24f35c4a62484a87edae6082d87a1085c0d5469cf4e2043d0d7", + "lines": 190, + "functions": 26, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/network.rs": { + "content_hash": "b1b8abdffb20b6563eb80db130032e0cc1f92f3e86c28f8917d6082e6e211807", + "lines": 535, + "functions": 37, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/tracer.rs": { + "content_hash": "7ee607dfc9017211051711fad0510f80f7dea80cdb65a7f03528ed64ef39f3cc", + "lines": 488, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_20.rs": { + "content_hash": "ff9041e68cce47cc5cf528994fd0679b0d7ec933d98b9e618a6a95b35f79512f", + "lines": 591, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_status_4_b.rs": { + "content_hash": "3032f88e69bbee38dc979ff676b6ae8c58e0e085b551bfeafa4b3dec3fdfe768", + "lines": 335, + "functions": 42, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_args_extra.rs": { + "content_hash": "7b4da3d7345f30e8e6a1bf7fae6e84e3c3fbf5979f1a015fc41f4094f5af94f6", + "lines": 538, + "functions": 52, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_check_2.rs": { + "content_hash": "90f36300ab8d3ac244bea609b6f03f08247aea096fc30cbf25fb45a8cf6cb6f6", + "lines": 411, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/tests_proptest.rs": { + "content_hash": "0eb89718248287a3dfe83e3adb93336309e3831ae0d267cc00b660d9b06e7889", + "lines": 76, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_expansion.rs": { + "content_hash": "24c9d29da75808f7c80dc6080ec73de55bf3b681788b8a4d4bbc8ef3a2cc0bde", + "lines": 493, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_file_b.rs": { + "content_hash": "3bec80020c9d09db1945cb4e43c56c0a623cb27e60da53ad8bf3d31594414363", + "lines": 391, + "functions": 32, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_fleet_reporting.rs": { + "content_hash": "3901fe210760f37694820731b9431fe74558573a333681f17b9da1955f03d19f", + "lines": 86, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/store_args.rs": { + "content_hash": "10d68eaa23db6deeceec6e5a53b97988042941256d1ae44aaaa7a4889e0c4869", + "lines": 250, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/store_executors.rs": { + "content_hash": "d6911852f2850e6b65bf84434172400be03adf5be7d3dc8a870cb7dba6caef28", + "lines": 385, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_18.rs": { + "content_hash": "5cc232e1bbdfa286c5f61b9dcf404152c154bf83e9c19bc49543fbb7df7a75f4", + "lines": 585, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_remaining_4.rs": { + "content_hash": "c8529446eb09eb388bd644f5dec34d0a0f65c52a4a3180b6328e168c22ea1313", + "lines": 427, + "functions": 44, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_mount.rs": { + "content_hash": "5f3ff36a90ea280516cdd7bed4f53353133d7c2d88d79f6eefd3e3fdda931d07", + "lines": 258, + "functions": 19, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_purity.rs": { + "content_hash": "a41138df84992ce18b83b566c73f0b023343475e6c450a8ea31b09f956d5b6ca", + "lines": 186, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase98.rs": { + "content_hash": "3ef40d8eb024410a388a63b957bcbd8b4b2de79e9bcf915cbc13ee6c14666cb7", + "lines": 251, + "functions": 33, + "max_complexity": 0, + "category": "RustSource" + }, + "tests/gpu_container_transport.rs": { + "content_hash": "e3d8b4c7070eb3503b55daa7f013bba02d0a22096beb13eb7002df5d41404b62", + "lines": 226, + "functions": 0, + "max_complexity": 0, + "category": "TestCode" + }, + "src/cli/commands/misc_ops_args.rs": { + "content_hash": "4434ae1f9bacf8084c3ed92d01ce6ec57fc591152957ee1cdcced543d7eafb7d", + "lines": 289, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/codegen/tests_dispatch.rs": { + "content_hash": "5b506a1421a453948b549e4863516566fbb8877a1c38da5119dfcb97ad105c3a", + "lines": 245, + "functions": 22, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_drift.rs": { + "content_hash": "057857ab9c58a347b6da69e3895f2cb9d7c3f93561fdd29858e7fcb4a41b4234", + "lines": 541, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_graph_core_6.rs": { + "content_hash": "5519c2dd3380ae47ec49f8510e654123e544f501bfd99e62cd82b06a809c0aba", + "lines": 312, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/store_pin.rs": { + "content_hash": "225c1a08bd1f8c92618529ce4bc3214abd0c58b601a7a8c7408170d728e959b5", + "lines": 211, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_graph_core_b.rs": { + "content_hash": "d02027474bcb89eed4d4fda160b960d2bbae6e561a48fd91412f2dac283ada74", + "lines": 226, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/tests_container_d.rs": { + "content_hash": "711345b985b3ef3ea21c6f626c4fcf835454b7cad6ef9f71d0d94bba04919653", + "lines": 41, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_1_b.rs": { + "content_hash": "d284dc840647a1e7cab3b623de997d50a3263d31ae77db2939044b18a7b096b9", + "lines": 474, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_store_archive.rs": { + "content_hash": "bcf1bb0fc5105667e853fbbdf8b7718b9d8dc3f5fcdbbaf525c3a9788bcf7526", + "lines": 143, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_4.rs": { + "content_hash": "adfe0851995390d19faae73140f40d2f5b7c70a730026d0a8410ae7eb122672c", + "lines": 707, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/tests_dispatch_b.rs": { + "content_hash": "b198ec9a4f125510c39152ba9dd89b831861c481ea5d387a987171a7d88c04c7", + "lines": 309, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/conditions.rs": { + "content_hash": "834a0e865f4515947593fc5c5327d23504a78579aa8283aa689dfc48e864f1cf", + "lines": 321, + "functions": 26, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/state/tests_process_lock.rs": { + "content_hash": "41e861f0d13f2c40d1aaeab5a594b62f02b39da9652be90c3991aa573016dc0a", + "lines": 85, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/dag.rs": { + "content_hash": "fd7c4d014b94120319649575e44755cb7f27c8a6c3149910df5b7e766122500c", + "lines": 150, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/lock_ops_args.rs": { + "content_hash": "0a0ef2dd6cf1e8a992a644dabcd8fdee6fccda5656aa865cbbd989b0b81d48b9", + "lines": 221, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/codegen_scripts.rs": { + "content_hash": "1aec4a1f7fbd71e200736351449eb48da43034e7c29c4158c6253d4ec46f47e3", + "lines": 231, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/misc_args.rs": { + "content_hash": "523094e0263ddeb5241d7d804636081e17fc86d0dd6ebd6fd63222fe7036dc50", + "lines": 349, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_check.rs": { + "content_hash": "8feb321d977d51fbfcbef8a625c807ddb8fd7c32c56c45bb712ab39423578c64", + "lines": 461, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/recipe/mod.rs": { + "content_hash": "a40beb6014ade2c9c0a635661efaac91105151fa0efc8d077475cff6f6efc4b8", + "lines": 23, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_notify.rs": { + "content_hash": "c413f83c75c094afe92882c50880cdd8db88af26daeea15890fa9614723e78fb", + "lines": 789, + "functions": 45, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/machine_wave.rs": { + "content_hash": "64b36b0379cd03bbed53ef07d45f7c1dcd8681a58ff7a8fdac5b08fc40bf029a", + "lines": 210, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/apply_helpers.rs": { + "content_hash": "f2146aaa4e9defac6876e53922ffe7d317ccdee4285e8658a6fc5368fe1f935b", + "lines": 131, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_9_b.rs": { + "content_hash": "3a831a32ac2c14170211c76398f8ca81dda570c83f38df1e7ce7cafc5e3bae24", + "lines": 206, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/tests_dispatch.rs": { + "content_hash": "f8aeeb82af4295c3640425dc973d3fe86cb45df833613c5d243f5bc976cf4cdb", + "lines": 394, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_drift_intel.rs": { + "content_hash": "a1e382537802f1d90981b5a9d78b08857ec2e3f418dd56826c87e5fec3424b36", + "lines": 393, + "functions": 22, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_7_b.rs": { + "content_hash": "c3a4d11488b362056db0044cb00a679d032a6055d5b07e23560563ead2f5bec0", + "lines": 204, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/recipe/tests_expansion.rs": { + "content_hash": "08d5f5a86bead9b806f586ce55375a912d51dd14e8ef67cb04c5ac1bcb228d30", + "lines": 448, + "functions": 22, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/purifier.rs": { + "content_hash": "baa6efd98650a7215e3625953387dee9e5dd2124122d2bdcdc5000da2200c967", + "lines": 91, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_resources.rs": { + "content_hash": "86864584590b7104eb79dfd942dadbf2edf0539ab749e174a78d2419452cd311", + "lines": 376, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_3.rs": { + "content_hash": "fa92eb256aacdaa41fd7b5968e61bc3caa011efba331b28f112fa5425904451a", + "lines": 475, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_8.rs": { + "content_hash": "beab01b1c6f65e33a645fd11c61613674303bf57467816f1f1fe04ee1b898b50", + "lines": 704, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/mod.rs": { + "content_hash": "4be4616b935c9a86bd39e95e6310c1c6a1ab7cc607493b9ecd10edf36d2d9325", + "lines": 340, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/scoring.rs": { + "content_hash": "8171a5ffd79df712ac72d34b151c957979eecbebfad376bdc03a7e311b63859f", + "lines": 619, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/closure.rs": { + "content_hash": "5fec3b8c5ad2d7118ba1f7757bcbd756b0d424d574d7ca997de51c42ec3e660d", + "lines": 65, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch_notify.rs": { + "content_hash": "11d85393b6340e2410ee2de725015ca7e5779a45570d973fcf24b9a3a18e4fe4", + "lines": 728, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_store_ops.rs": { + "content_hash": "4304c34553bdf342cd25e89995504181bc8f0cfbb8b0ddf6aa64e290d7e248ce", + "lines": 160, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/planner/mod.rs": { + "content_hash": "7c07701fd6517c704b28c3dc0d946e0cd5adc8ffa371f09449e748734402f036", + "lines": 376, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_fleet_ops_1.rs": { + "content_hash": "5db177b33104bf4e9c9a6ae3060e9aebfef6341175f3f69727b3c8c0a51acfbb", + "lines": 50, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/show.rs": { + "content_hash": "4538451f83bd09570bbd07e938a5555815cb5362176f88d81c937297579fef92", + "lines": 399, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/anomaly.rs": { + "content_hash": "239d090e52456c1d1579249311e148080231cd73796da9db0bf333f2fbb0bbf3", + "lines": 331, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/expansion.rs": { + "content_hash": "36e647edd310f9d8f1f30595e6a50c1b5f5f352a5da67ed77f65fa1f77649fe2", + "lines": 110, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_status_3.rs": { + "content_hash": "d953ba308efe6509163a04d8d0ab9b18b59435efe88b5d09bfa8ef2a72a18e10", + "lines": 411, + "functions": 72, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_apply_b.rs": { + "content_hash": "eaf6a58fdb7433433dc3f4414708a46af1b614fd5e7566fbd5aa37aa2169f917", + "lines": 361, + "functions": 26, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_helpers_time.rs": { + "content_hash": "038e90da543fb51cbba559b761d649039ffc84c0aeecab9f9bc0b763aa7efe67", + "lines": 36, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_store_diff.rs": { + "content_hash": "73079617698d552eaa3ce7ba0b6c405be84c718e78eee852ac638fbbea40ed75", + "lines": 192, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/drift/tests_edge_fj132.rs": { + "content_hash": "548bc6e30bbf5689453b1ffefda21385743466c3cf7b8baeba29069d569b3d2a", + "lines": 309, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/mod.rs": { + "content_hash": "c36359c0bbbcead0cc16fb65703c8bfba1fa0dee5dc8dfe9e314454d5eece642", + "lines": 27, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_core.rs": { + "content_hash": "7b0c3dd5d862930408456a0bb342f7e7b30cc1390732449d6c7402961d8de4a4", + "lines": 448, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_security.rs": { + "content_hash": "5d1b6687847ae9c6e7a567c84429575f5119a37a59e1efd0c0a38291e62cd054", + "lines": 523, + "functions": 28, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_4_b.rs": { + "content_hash": "b7d3a7a8f368bf6584a0d85fc9da929de145f1f5900bf30202a16af31b0a4f3a", + "lines": 476, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_drift.rs": { + "content_hash": "49e2203aa6db0c38af3d2b3a77926090384e38100fc6b951057dfb559567b9b0", + "lines": 458, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_diff_cmd.rs": { + "content_hash": "e57e4cd9dc1058e813d4dc380a24eab862caa0758b90fcad6d828ce195ee13e5", + "lines": 497, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_validate2.rs": { + "content_hash": "de5ed195297c91cbf1e4853a368f389e6d9471e6e9fae63e7f4820f5dbbaff77", + "lines": 396, + "functions": 30, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_15.rs": { + "content_hash": "888dabb060c0a2d85d4e41cf85931912a317a4e27fb8626fc54c8e9ac7c447d9", + "lines": 584, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_notify_4.rs": { + "content_hash": "131d6aa2f1ff7d1305bac3fc8a1ae4e0c08aa179853dd625dce26fdb85c50d12", + "lines": 504, + "functions": 36, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_23.rs": { + "content_hash": "ffcf1444f241cce57ee0d1b35c936fc474b5749af87bdad1c3b5a254773cfa68", + "lines": 260, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/recipe/validation_types.rs": { + "content_hash": "f68276853e785ea6476c231e7aa420e9b9b4d6af0232dc4cf841ac3bb6849b0c", + "lines": 93, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_misc.rs": { + "content_hash": "5b2ad6d320371f06b95d99256f679fc0820a723116b8bd52fed4a90751bb7498", + "lines": 463, + "functions": 19, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_rolling.rs": { + "content_hash": "cbca7f9c8fa3f645deb82608388fe64e767b9550f3388416630c2d5a233b8aad", + "lines": 261, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_validate_transport.rs": { + "content_hash": "af826465479da479476baf68a2514356e913912de11873d61532a915562a1657", + "lines": 379, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_validate3_b.rs": { + "content_hash": "72d2a8a790bcd923af56a5cdf391ac7b36fb20e6165bb3ef0ebf7392dcd45131", + "lines": 366, + "functions": 45, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_resource_detail.rs": { + "content_hash": "fd5b137527c1c122fe0a93aedd0df549c38cc84ecdf1d8193667b4bcf74012b1", + "lines": 466, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase69.rs": { + "content_hash": "2f2bcf585b5143f5b20d41afab3af4b82173d27fc481a5586adc2e418465110d", + "lines": 280, + "functions": 24, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase99.rs": { + "content_hash": "3e99a44c3fe4b8c4734bb170b82d7dd8825335c7b3980ef6f7504341aba9e153", + "lines": 237, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_resilience_ext.rs": { + "content_hash": "6843520429a2c1c6194e7e26338714bcd0fdb8fc6d348e0eac2a062f07efe26c", + "lines": 352, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/event_logging.rs": { + "content_hash": "a824a3e869cc765c381607a296288475026397ea7d5f90a33965d0902109ba22", + "lines": 141, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_status_2.rs": { + "content_hash": "aecb4e8084ebe53396f124fe0af98547eeca2473f59238fb6a3ebb5f4ed8ebfe", + "lines": 453, + "functions": 64, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_snapshot.rs": { + "content_hash": "c2a2e43628b0107466662faec0816f1055639d40663df4b04855941969b1a437", + "lines": 176, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_audit.rs": { + "content_hash": "635bd8f48d74fd82be82f519bad6521032b68127a73aea0816941feac68f0417", + "lines": 460, + "functions": 19, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/drift/tests_edge_fj131.rs": { + "content_hash": "c55d3a18a1cadaf071128745394e2cf59de8a5c9806452e07766c38d12490ae6", + "lines": 313, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_extended.rs": { + "content_hash": "b69d7bb4dd1eb9319b0732c2cbae1df057d49234c1eae9cd7423e6c187ee0cea", + "lines": 379, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_args_2_b.rs": { + "content_hash": "0738bf02be170c9d3e3e2d41c1a1ce191e7fa56431c68afc9459427c35b02c1f", + "lines": 161, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_7_b.rs": { + "content_hash": "bd7f7b8ac3b3ac62a3c27a9211af78ca6cd5ced4eb5cdcbe1d807fa6f3eb28c7", + "lines": 476, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/repro_score.rs": { + "content_hash": "868b818e86f30358f42e560e49346e66426f57871f68a406006e9028b2fca262", + "lines": 119, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_compliance.rs": { + "content_hash": "fe4dc8afed79cac5f9f1ec0a300860a17b11571a8e284bce1c599435fd73b546", + "lines": 327, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_6_b.rs": { + "content_hash": "7e2a14df6b54e692c97b64d08ea54685e4e3cf5ad33a56fe6722ef70de1ede3e", + "lines": 474, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_kernel_far.rs": { + "content_hash": "0c3f0f3cd5084c953a428b20d2350063bd53140d61bdeece477c2ddd62087356", + "lines": 404, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/validation.rs": { + "content_hash": "8346d643a4450c0aa664b04298cd5e3b8483e74ae34344148daa81d625359f30", + "lines": 118, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_contract_scaffold.rs": { + "content_hash": "0579aec27efbb232895792b359733ae85c571abf51c7e4c5282de8700fa607f1", + "lines": 154, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_predictive.rs": { + "content_hash": "2f34cbe8058c7aaa467db4ced6efa82498cd3c825067615f25616ee8f8f4f381", + "lines": 489, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_cross.rs": { + "content_hash": "fc8522c2858d35b0f01007c86b2e33dc65f53517580b36cc757545ad72217855", + "lines": 362, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_ownership.rs": { + "content_hash": "8c38dfd3544fd20c954d421e06c76df90cb952ccec3f302d02956b2146096460", + "lines": 610, + "functions": 28, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase106.rs": { + "content_hash": "ab55ebf79c9fc973a5a13a5bc5836d5690ad4f085c37fcf797aace755acfea91", + "lines": 207, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_convert_exec.rs": { + "content_hash": "93221ef970d83b08af899ddb7852f60d67da9a9c797ab714137c268acf194914", + "lines": 267, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/types/tests_resource.rs": { + "content_hash": "c51b45db69f9f9d83857727f88999433664a2ce42bba11070ccea4235c79fd7f", + "lines": 298, + "functions": 29, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_compliance.rs": { + "content_hash": "189ea51340b3381cae608da38eeac89e569cc1f7f918b75cfb66d82a9dff6499", + "lines": 208, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/tests_functions.rs": { + "content_hash": "afad07b72fb485caea6cbac2f0efce2b0d3c27d9b73008fa8fb1f55345d5f58a", + "lines": 240, + "functions": 28, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_queries.rs": { + "content_hash": "4e34a126b8c125dfe51f90a1aafe25a3ccc45747614703985b58203040e5c983", + "lines": 364, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase75.rs": { + "content_hash": "bf07a1a67b718dbbfa557d46495d3bd2da898466891f5526bcd817db3e3e390d", + "lines": 292, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch_status_ext.rs": { + "content_hash": "38caa2aed92591fe40388046bd7b21fe3209088d0376b921fca0982e63e37c1f", + "lines": 637, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase96.rs": { + "content_hash": "2ca70a55830fa12021b91459cfd36a7fd2f6f70197ead4d6f109dd06abd98902", + "lines": 224, + "functions": 29, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/store_provider_import.rs": { + "content_hash": "c94d617cd5ae49aac9449b53c444890eb8c33633c747854f23eb18fcaab7490a", + "lines": 154, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_show_3.rs": { + "content_hash": "69c523ec10fb607ba10cfb566444444314dd0fcb96954a26dcbfd35a9f72674a", + "lines": 256, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_workspace.rs": { + "content_hash": "6bc034afcb07773cf8fb294368c3d8dd2396f64bfb02ae65d5d524ff35e27605", + "lines": 187, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/arch_filtering.rs": { + "content_hash": "0c7b4be49e9498d6b6a8e4277cf7ceb27c84887a8f2dfb8224b20f4cbbe2083c", + "lines": 125, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/cache_exec.rs": { + "content_hash": "eb1d3d7a584cfc38ebf258302c78b43ec08dfa5eb1c94c809bf5e8f46665f29b", + "lines": 254, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_import_cmd.rs": { + "content_hash": "ca8678572947c76d895196e76c9ae6f6acb300fcec1481e9b572e38aae0b484e", + "lines": 228, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_visualization.rs": { + "content_hash": "2226cd8758d6b12cffe2ccafda43f34104bfe7939d93bcfec710cd07bcc216a3", + "lines": 313, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/lock_ops.rs": { + "content_hash": "3cd3c37af12704bfc3fa891cbc44f7b36fa604d41e3b72cc0ff281c6b782e362", + "lines": 443, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/mcp_server.rs": { + "content_hash": "b7126d57d09e74f70c23893061f14c2d061bb44f631451544776b412e52d0a98", + "lines": 53, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply.rs": { + "content_hash": "4f1d614e3fb5124e194b4f2c9defe98b4a1f0c9a23d2e088c21dbc919b51c539", + "lines": 416, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_ordering.rs": { + "content_hash": "2e61e35656794b31f7833e65bbe6d59235080a09d4f459242812096e7432f856", + "lines": 675, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_validate3_d.rs": { + "content_hash": "cf497a238c35b728a1c06baf2cd495c83321eb609903fb1a2af4f6ea5f7e9955", + "lines": 410, + "functions": 51, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase90.rs": { + "content_hash": "e9ec934562b29f5243ff4ce89b3d1c0d5ec5010fa5c8b7b0a10e330c1b86050c", + "lines": 309, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_repro_score.rs": { + "content_hash": "eb5c877d15c0d4f003c3474c7eaf429919bd55df6a4fd3805415817953193540", + "lines": 183, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_misc2.rs": { + "content_hash": "c8b337c89ad6a10b7594a79b366934c6164ac3057d3325805b2c7e6688d9c6d4", + "lines": 301, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_trends.rs": { + "content_hash": "64ba6ab06691fb40befafabba07c1ca9f42ef1b040dd8a5fc6949d7a03bd9aef", + "lines": 412, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_docker.rs": { + "content_hash": "d9dfa934ac8c8bfff1a3761cf5e0b4520fab47fe3f2996b2b10911788bd874fc", + "lines": 285, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/hf_config.rs": { + "content_hash": "69473bae90f1e31f7888afc480eceba0ce62a3188f44f2727bde0830c0767bab", + "lines": 293, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_dispatch_2.rs": { + "content_hash": "1fc985791b0269cc12e0d0e2b0cfd4e157aca99b943ad9e9dd9427e475d5caab", + "lines": 483, + "functions": 30, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/test_fixtures.rs": { + "content_hash": "0b8fda69d8f277e11569288b038ea6261396ff44b72d25b7410150bd2fb19839", + "lines": 149, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/mount.rs": { + "content_hash": "c2a3832d37383b154b7771f9a943d0ff31758f4dd6f7367ce8f83bfef994dfd2", + "lines": 72, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/tests_data.rs": { + "content_hash": "1f1ae2c8727651048eeff987ddd1cb6b0cd5da5fd1432cf001672485539da462", + "lines": 368, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/strategies.rs": { + "content_hash": "47300be7d021d6fa65d12516cfe21bc9efa2b9d4d14a702f668fbda29deb6362", + "lines": 129, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/types/tests_config.rs": { + "content_hash": "62f198f513cd6611e7b3746054fbb8f7280ed719277043d12fa10e5729e5586f", + "lines": 447, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_9.rs": { + "content_hash": "12615ab2ab0e95d47c3c356ba5e0e6667a55ca386a23bbac175113fc13e436b0", + "lines": 528, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/tests_scoring_b.rs": { + "content_hash": "d78bfb4b453e0484eeccc3c859cf0a4217d77e1200e70fd2b947d9f7fc5ab5f3", + "lines": 488, + "functions": 32, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_advanced.rs": { + "content_hash": "577782791494f3a2f1f4701ec33e12fe7381a0ab660dc7601d8879297ce6063c", + "lines": 488, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_compliance.rs": { + "content_hash": "2c77b5f6328ed8db8bdd89c4ef5821f6af04f93116f92c9f8820286a4e5247ab", + "lines": 347, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/init.rs": { + "content_hash": "b57d142b97eea723fc121ee587788acfd990a51e9422c82d3ee785b2fdb0d2c9", + "lines": 248, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch_graph.rs": { + "content_hash": "6880907d29ee1e23db3610830ce143e3ce6c1e5d1b9a7d3fa238e5c3d9b98c81", + "lines": 1142, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_2.rs": { + "content_hash": "51da364a4e98525cd2a85ea0e759b0faaadfb012bcadb4a4c2518dc10a0aae53", + "lines": 515, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_9.rs": { + "content_hash": "9595bb38a7b853a08bef9958a0dc8652676b31974accc7cd153953e064f65ec2", + "lines": 585, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/planner/tests_hash.rs": { + "content_hash": "fa0a25c1be61ccf3f6830d992e536963e5be7dedfd6fbed0980df66e659ba8df", + "lines": 503, + "functions": 26, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_filters.rs": { + "content_hash": "2c04e083f7fa64028db31cb2d1a0c8181322a6ab0e715ec3d470d1fd986c4065", + "lines": 400, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_1.rs": { + "content_hash": "3b65e06a29308f5383fc8b645ea2e518932fc2f97a6c4a8ffa4f55bff7eb0626", + "lines": 514, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_args.rs": { + "content_hash": "d6ff2578cdef4fb0853e97436d525ab7311339457cbcbd9c0574d2f85ddc7c9b", + "lines": 472, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/store_archive.rs": { + "content_hash": "1e3b5b828ede0561463196455eeaf0ca8e3bcaf7a186e4a7c655a77814be7378", + "lines": 216, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_topology.rs": { + "content_hash": "7a8a8a0e3dec311df91ea693be873441b2d0db8b81dd09e33ab3d94521411888", + "lines": 484, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/drift/tests_transport.rs": { + "content_hash": "930114ee44480ef88f9e0c153202ece0072243cf38b04d49f517e598b3dd0809", + "lines": 247, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/cron.rs": { + "content_hash": "484d9fd86bd6cc757e67bd4a7b8eeb0f3a8efd9f1a2550414382c8c43a9d3b3f", + "lines": 464, + "functions": 32, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_scoring.rs": { + "content_hash": "ce25d95e9acb6c99e8078bdf1c933597d73c087d711d7f4b17b7146e6f8f28a9", + "lines": 655, + "functions": 29, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase101.rs": { + "content_hash": "74758c38fa148996d240fd23b5a951e82edddb5e50b95fd15c449275065a8f57", + "lines": 207, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/drift/tests_fj036.rs": { + "content_hash": "ce89d4858eb542c3e505c8bd744c9ceb7d43ff802fbdf172f084bd088b239aa5", + "lines": 236, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/convert_exec.rs": { + "content_hash": "95e217ec1fb25190a3dbf55136ef9ff656e46991df733599b93fab3bdc06861b", + "lines": 180, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_contract_coverage.rs": { + "content_hash": "1486025963182ecdc9a8d555929e9d57613dc66463f139225f9f477db4753aa0", + "lines": 293, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_3.rs": { + "content_hash": "2ddf48816c11aede0141eddc648728528b6c55f6e532638c37db7a9e3ef97482", + "lines": 705, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_paths.rs": { + "content_hash": "f744e57ef946a04fa8ab74b4b2a5c04a382e2ec42a7cf6b3a78fb6467babad98", + "lines": 517, + "functions": 19, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_export.rs": { + "content_hash": "7e4f37f57e8ba466cde502437cdf0bd43eaef2868e103586294a836e10250f3d", + "lines": 517, + "functions": 24, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/apply.rs": { + "content_hash": "05543a44c4da020489c7a65b8e5ae2e594d3e4036c738ec0a8ee8f3525426352", + "lines": 289, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_transport.rs": { + "content_hash": "e6020dc225f3929dbf93a9fa1c4abc21bc9b5c0fe089f62c1e0772014bfec906", + "lines": 208, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_observability.rs": { + "content_hash": "db0c4b24e95f1e78eb9041308e5bef150b1f4af47d4c9c70afc019edafccdb8c", + "lines": 419, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "benches/core_bench.rs": { + "content_hash": "2641736063b138182417b8a848286f6f69435d00049397df49c750ecaf7b736b", + "lines": 610, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/apply_args.rs": { + "content_hash": "d8a4ea7b767a9afa7d1ef57e7de87dd0a3d3e9247f7822262c6e2084026c0e7a", + "lines": 680, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_misc_3.rs": { + "content_hash": "12d7d262f0c2b2c8e449e681dd8f262362e21237040e8da02a8deecf2d527a42", + "lines": 428, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_fleet_detail.rs": { + "content_hash": "866a7f5e541e1b701ad06df209e70e9849352598fe811a750ac45386f86dd546", + "lines": 483, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/conda_to_far.rs": { + "content_hash": "7734affa568d41f480d8e38788fe151adef95b1a827dce5b24e559ba866fb11a", + "lines": 110, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_cache_exec.rs": { + "content_hash": "c405611445baf436a9ffdf7cfd971286b1a7f20564362a648b2d5775956629eb", + "lines": 235, + "functions": 18, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_sandbox_run.rs": { + "content_hash": "5f701b77734afb259e8e1cc39173f67ad8c8e9dfc57ac8abe60544869ed6e3bd", + "lines": 229, + "functions": 18, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_core.rs": { + "content_hash": "6b23213ebaebf35c315cc8c8b6b36d574434ec9561e378484c287df2ad967f09", + "lines": 378, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/lockfile.rs": { + "content_hash": "be61e70b63d980a44ccc9a57da9cfc04fc6cf842cea0b3724d756dda6c304caf", + "lines": 98, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/mod.rs": { + "content_hash": "a531550613b6809bd1819e24a0825160f11c2ce53bcfd7a5ed0749070a530b55", + "lines": 36, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/provider.rs": { + "content_hash": "1e14c29a40c634ac83ecfcc1597d908c02069bbd22a23c97d65cf3489226d1cf", + "lines": 206, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch_misc.rs": { + "content_hash": "61c9068fcada0637c306cbbe559a6d286b298da3521038558f5de778e1e4a8fd", + "lines": 295, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase62.rs": { + "content_hash": "6f95ab39861fa1e10e27bd13cc4bae119d295cd71df5f20f2e8e6a1d3f725603", + "lines": 194, + "functions": 19, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/codegen/tests_completeness.rs": { + "content_hash": "911cabd0471feabd23fc8d140273235e9042a8d8b8f9b6e8759cdc5c579c92d9", + "lines": 280, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/pepita/tests.rs": { + "content_hash": "a91a0df7f18b27ee5d840ace7036d0e7b75870bcd26749fc7078087f5aaca17f", + "lines": 365, + "functions": 0, + "max_complexity": 0, + "category": "TestCode" + }, + "examples/multi_machine.rs": { + "content_hash": "04b230f6137c1cf850adeb484e49ffe4da9df5899f879ec799441db5ff51d36c", + "lines": 212, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_security_ext.rs": { + "content_hash": "f66fe1fc9ea7278efa07102a67120cb60ec48798452be1d870ebc4394f7fa674", + "lines": 486, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_remaining.rs": { + "content_hash": "b3ddd352bd2e84334ae283aad442cc30f6509aea1a6951c618413b5bc39a37a9", + "lines": 412, + "functions": 36, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_infra.rs": { + "content_hash": "3b716ac33cc323623c1948692f08077c230694186832a2eaba52778daa11c773", + "lines": 306, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_notify_2.rs": { + "content_hash": "96b1d9717c6957af6517e4297586f248abe8803f8c282001332cd194aeb284ca", + "lines": 529, + "functions": 49, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_advanced.rs": { + "content_hash": "aa590017de84e89d21e22efdecf1d440d2b7ac635bb710769779c6b2955e21d6", + "lines": 551, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_hygiene.rs": { + "content_hash": "96676f26059702286ab9a5351f1c895c82a76c22dc3aee5661d13b9308f80174", + "lines": 497, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_validate2_b.rs": { + "content_hash": "974a2b402c5e7bfb983b4cc2cba4dc2ad11b7a87639177521a59d8501ece79f9", + "lines": 386, + "functions": 38, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_intelligence_ext.rs": { + "content_hash": "66d86de02b1b24a4732538620580336edb5c501d9a299fdfbe0b122c0e12643e", + "lines": 801, + "functions": 29, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_profile.rs": { + "content_hash": "5910625e51426f1656aca1054eeabf43b8f0c113b4881fb681e4283363b59bdf", + "lines": 104, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/mcp/handlers.rs": { + "content_hash": "b3f3ba304fa11f48ee3077275ac09caa416279ee0ce7f5a6cab754f428ee4979", + "lines": 491, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_user.rs": { + "content_hash": "948e80757627608afc462218c4f2fc974469f0914f19a5ffe516ca4ac79217d7", + "lines": 473, + "functions": 30, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/planner/tests_describe.rs": { + "content_hash": "92b1a9b0f314c99d48ca801380eea19c8d8a97952ee947a29e25e649e48a7c73", + "lines": 77, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_3_b.rs": { + "content_hash": "7f879d507e8f70be38da61e42293acf03bf3025c2efb27a5b2069ac3487c504e", + "lines": 475, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase60.rs": { + "content_hash": "0a27a50ad0d44f4d395d055f56642af8b09be805308194ae89d2b76f03ee51c5", + "lines": 133, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_safety.rs": { + "content_hash": "6808aa310a9f54ffe84bf5653e735a0ad600c608a907851396bf8c075d52c9cc", + "lines": 495, + "functions": 22, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_args_3.rs": { + "content_hash": "6fb37cabbcb7b47f98717eb9c3906331482a7e7d0da85209b773dadeb4e6d401", + "lines": 392, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/user.rs": { + "content_hash": "94af7591c2ddfc0d695c7055344f255a15e8e7c11e805c5222f6ae6df8b4524f", + "lines": 141, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/workspace.rs": { + "content_hash": "d8b9e8bfa055def6a3546c6467ca5c956337bd0df23c6a27449ce14553cc410d", + "lines": 159, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_queries.rs": { + "content_hash": "fc435d443a5715aba50557e2b267a94ddda0a11233fbdc0376662b99d8f9cec1", + "lines": 250, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/derivation.rs": { + "content_hash": "855ef7ff60508ae454f11cda81341dacf9e9f8081c6da2a07dc9adb8f71d98af", + "lines": 209, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_status_4_c.rs": { + "content_hash": "3cb668f82e29559aeee7bf75908f8190621ef88a0bcbf38ab26222f450152862", + "lines": 476, + "functions": 56, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/planner/tests_plan.rs": { + "content_hash": "06886b0275b2a61d010df1fc8a9b7e279ab76367b6f2a9bf33e1be767ec6071d", + "lines": 357, + "functions": 18, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_resource_intel.rs": { + "content_hash": "86d33a5d43a4e1f5cbe8e5672e93f066e17fe64dd817f2fe5c014a63696f2557", + "lines": 719, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase100.rs": { + "content_hash": "082e88670a307c41e4461619ea486580bab5efcf8b32a2645101677f689fb04c", + "lines": 204, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_operational_ext2.rs": { + "content_hash": "fdeba2e3ad4a85d5d5aeb8d0718440d13adc7c090c8cd91276ecb23f210bc43e", + "lines": 556, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_dispatch_4.rs": { + "content_hash": "cd7a680a2c785cf0ad6c703f6073369b70160109b5abdbfec4e54cc094312e04", + "lines": 500, + "functions": 18, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase78.rs": { + "content_hash": "51ce6b926ea80c7e21546cef0a5f422ca8135e8087f355155495a039d77cf285", + "lines": 289, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase73.rs": { + "content_hash": "30cf3a82640c3e614ba7b9dce1f9df02aa4c558dc4f1790f239e8d6c125deb16", + "lines": 283, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/planner/tests_helpers.rs": { + "content_hash": "20e2adedc50de5de8155b3f1060372f90561cc39b21bb5bcbfee8b85718daac2", + "lines": 90, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/tests_container_b.rs": { + "content_hash": "3e362db276afe5b00807edd1bb908ab0d43ede1ac1e2380756745d1dcee91e65", + "lines": 360, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/conda.rs": { + "content_hash": "92a0b3d6e29c245f814f7e4b524dfab625f49ab2b6b2f4374a5fc1c445a96d55", + "lines": 307, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/file.rs": { + "content_hash": "a1facfe1a21635b0eadcf7b24ee4d0bcedb30312b957a665cf5c87ab03c3ea8b", + "lines": 127, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/resource_types.rs": { + "content_hash": "68f2bbc06de073e745215d0a5f55ec9b778b8f4296d7acdd81c4279d1c75f059", + "lines": 320, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/main.rs": { + "content_hash": "031362bf1ad257336bf8080cd66c53ebbdb5641dba93aef10f20443af6541acb", + "lines": 33, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/mcp/tests_registry.rs": { + "content_hash": "35bcc9a5dc807b410f61dd2d587efc07135c010102abd0a27ce29ea7a32cfbd6", + "lines": 129, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/drift.rs": { + "content_hash": "6ff6e37736702b9237f75821c99fe3d39fdb3d9996f61a8dfc750ff94c93320f", + "lines": 331, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_graph_core_3.rs": { + "content_hash": "6a6e4b1bf89ede7219bbbb1b88aa7d259acf7bafacbae1b432de0948fa4a0f7b", + "lines": 757, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_ordering_ext.rs": { + "content_hash": "59e95baf8c83c9aa4e209c27a5513debdfb64a4e08693d245d77735b0bfc9100", + "lines": 270, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch_lock.rs": { + "content_hash": "70b1939da69b07e59f06de53245eff579b01a5a24d775168355cadaf71a1e11a", + "lines": 162, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_dispatch.rs": { + "content_hash": "6358cf318479593cf597f419d64a74af27bac5f881755714a645d7abd9f4e972", + "lines": 466, + "functions": 29, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch.rs": { + "content_hash": "57127062694b8d05fc282807ed5da44ecdcb454a250cb19504e13f39593f38d1", + "lines": 141, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/tests_container.rs": { + "content_hash": "10063bb3e84f26c0b2c758899d3b5a780c5b3a57d5825702a80f0bcf74bad620", + "lines": 468, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/full_stack_deploy.rs": { + "content_hash": "56839d0659adcec2a1d782f0008bbc14a9c272f252bfd46bb5cd7dbe2164032b", + "lines": 185, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/kernel_far.rs": { + "content_hash": "bafdeac640d0494aae58e3ae0512cdafacc7b6aacfa43c014bc085e4a238a600", + "lines": 139, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/tests_eventlog.rs": { + "content_hash": "6416f4576acad278ca832883c2cfa1e4330e8f987f1c757a990c8837a0af6c30", + "lines": 263, + "functions": 18, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_args_extra_b.rs": { + "content_hash": "99a22cd37a5d03d14d7d61e1da4c41677c3c46a45480c43267aa657134d74bdd", + "lines": 420, + "functions": 41, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_closure.rs": { + "content_hash": "53a8fccc979fbf0bc31d2ed0b0fe0b777a91638869dab844daf3c383240db9bf", + "lines": 183, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_transport_3.rs": { + "content_hash": "5db5283ea634c9728bf749c2a68817a5460d41466c4128cea901d7e833dfc87e", + "lines": 496, + "functions": 29, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_1.rs": { + "content_hash": "f5ddacf24be97d134f24e95a58e5f1300c3082766da76ad935e1c7e51fc58b77", + "lines": 701, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_alerts.rs": { + "content_hash": "5c22a3e00b7ba28ba72eafefabc0e7450e12428873514882f634d0ec56ce8127", + "lines": 377, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_converge.rs": { + "content_hash": "c714edb89b5d6c1a1f63e42aab552d00fc1dfe4c523a43f514862c6c8f3d8320", + "lines": 339, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_graph3_c.rs": { + "content_hash": "d4d7d08d99de4e8d2d5c7c80c481d2077dbbaee1a84d7cb7a4fb1a8ceb9eed44", + "lines": 267, + "functions": 35, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_resilience.rs": { + "content_hash": "b3bc5904cb1ebdcab05ac2b3d4466bc50fb7f3b7a4e77b83ad1e9058c1f888d8", + "lines": 699, + "functions": 27, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_misc_4.rs": { + "content_hash": "a60982c4decfc1da5d2ed6e906ab84833f3c067340e77250c8498f93b290409a", + "lines": 282, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/helpers.rs": { + "content_hash": "8d2c8e5bf247190920e2d8672061d6e3175f74153bb6556d2bbbda48cfff9a64", + "lines": 227, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase103.rs": { + "content_hash": "cbabee64dc0654ef58d19e26d4037ed79847fdf34d04e3b12d51e9cf56b77028", + "lines": 208, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/gc_exec.rs": { + "content_hash": "2af6ad4e5be133d8db7efbc89197594791c8bad9c0c8f8452f6e49244c9b66d4", + "lines": 189, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/eventlog.rs": { + "content_hash": "66aa015f1b02ccd27b6e8e9b78b013e6cd3c873ebe2ac8087030588a90185897", + "lines": 105, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/drift/tests_lifecycle.rs": { + "content_hash": "eaa542320d4c1728a3863d206050c808e1f22af47284c1d7489cbadb8c42c872", + "lines": 146, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_init.rs": { + "content_hash": "552cdc1d8ac19333528fbeed665afedce64d44441cbb2926f85b32aad32f032f", + "lines": 551, + "functions": 26, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_converge2.rs": { + "content_hash": "7687b3a9b2fadbb90b1b12c193058eb20f332f8b79000265df647d579eb41d30", + "lines": 325, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/test_fixtures.rs": { + "content_hash": "51f211f7c40ee50f9a04e7fbec3829c9349a737038a51803046a47e68842fe36", + "lines": 67, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_graph_core_4.rs": { + "content_hash": "d32b0a6227cd5c5b044c1af69d88b0f1c82c74a32e2a87ffa5304291f1e9512f", + "lines": 92, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/recipe_expansion.rs": { + "content_hash": "86024e836a99cac3432954bd6bb22bf8c5bbeea7ea22e90457ef213ff07ad7dd", + "lines": 118, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_21.rs": { + "content_hash": "d73aa2e0be9902490354a498842a6e26f671c12bed8542dac30f82c03ea056cb", + "lines": 591, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_edge_apply.rs": { + "content_hash": "eed737476c55bb2a27aa55e9ab9172157c484deb7a587f0755efd51c74e71c44", + "lines": 465, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/mod.rs": { + "content_hash": "9f6044672813dbffe20b724482ecb623a36ec42be35c525f8225de85d60206ac", + "lines": 186, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/recipe/types.rs": { + "content_hash": "3fdb12d938b47d6eec1f737f3bec57f30ddcc53e293239feae792dd37d1b8823", + "lines": 65, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_pin_resolve.rs": { + "content_hash": "596670544d1060d16071fcafd8d4e54ee634df83a3d4497145b0206eb29e1446", + "lines": 210, + "functions": 28, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase84.rs": { + "content_hash": "33863ec3fca34a46d4f8ba2b7c3949438640899e7793463ed3dd93627d48d6ef", + "lines": 289, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/migrate.rs": { + "content_hash": "55472d0eb74b18c26e56d523f8416c4d51e258223d5ac29ba47d0094221f64a6", + "lines": 433, + "functions": 19, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_6.rs": { + "content_hash": "5ad945ac1b08da3090f272806b36e6632baebf13aee0dd6a4de1adceb03395b8", + "lines": 582, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_check_1.rs": { + "content_hash": "c973bc13a84441411cb93e5fd8321693edab02f864f5e042455f368cb350c0a1", + "lines": 482, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/diff_cmd.rs": { + "content_hash": "aeca8eb5893d02c7ec86beb7eb0c2f5708d34c497f74ae33047c5d9133ce2a24", + "lines": 378, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/tests_secrets.rs": { + "content_hash": "c3e9a7a11caef27d4950768370be2f68d69ed711fb48393ece5eebaecd99fe80", + "lines": 440, + "functions": 39, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase68.rs": { + "content_hash": "c0484108b3b14c22a09b33edec63ae0643cd1fa2f18068a72f57ca7d172d8468", + "lines": 209, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/tests_eventlog_b.rs": { + "content_hash": "34a596c285b3642f888d17dacc616138f36a5c6388391a331485fa09f26c4802", + "lines": 270, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/parse_and_plan.rs": { + "content_hash": "e02dd5813db8ce9426d3038a24a8cbd129e753de4e57630fbaa872b686c7a10b", + "lines": 95, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_print_helpers.rs": { + "content_hash": "8ea861672f99ebb214bf16a2f5235442ae438721d22c06efd88d6b4cff1f8c07", + "lines": 183, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/path.rs": { + "content_hash": "e29f0f409a8c4e2af98e7e4a0af071d9b72d16b0cb7c93187f14a57956f5db66", + "lines": 33, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/helpers_state.rs": { + "content_hash": "b97c0209fda99a616045bc2553747a1eaf61a365df9d4436d5fd52119094f234", + "lines": 114, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_show.rs": { + "content_hash": "c359a181ae6f3ef222eef0553c6d2c97aeb833b8c5cbfcac40da7f46bc9d269f", + "lines": 248, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/planner/tests_determine.rs": { + "content_hash": "518d489ffb309fa04912d0603043e3a493a8dd735d627d930d2dafa8e267a504", + "lines": 159, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/tests_resource.rs": { + "content_hash": "3ea3003b8291fdab8bfb152d49db42e4c45dab1bf916a89bf2e1650f71aff822", + "lines": 560, + "functions": 26, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase77.rs": { + "content_hash": "69145b26c382ffe4ef2045d6d4ef57b1170bfc14a8e7916f93ed8f5018edfa22", + "lines": 291, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_lock_core_1.rs": { + "content_hash": "5a2e2f81c6637643d2c491fdaab1073189f2c26c0ac05cd6e0a267b169a86ad7", + "lines": 457, + "functions": 39, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase102.rs": { + "content_hash": "28ceaba1ffaf865a6947a081b160e034a05ea8cb3a0969068df6dd7b63d550fc", + "lines": 206, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/drift_detection.rs": { + "content_hash": "6319b9280486dd5580425f9e93df747b1a32d95f0ff06c5bce38f9c0e4ebcd1d", + "lines": 127, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/infra.rs": { + "content_hash": "7251b32b2e6046c6473ce1a8606134553996abc1a2419a0c1188f5a0bb622e61", + "lines": 483, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/validation.rs": { + "content_hash": "7a567c913b4d56dad15ebc937c0c47946b485bc508da83a434fa4f3f2bd38232", + "lines": 133, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/state_args.rs": { + "content_hash": "6cc54d6c4a4cff4af87c3b3abe9772c5ce5be1e2ea9647f5c6f8f72350097dcc", + "lines": 53, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase59.rs": { + "content_hash": "d716283070c6018f6228d6aaebe527ce49d4ab8d1f29046af162ad23fccfeca8", + "lines": 120, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase63.rs": { + "content_hash": "93d3e0b887e81b6e5c2c73b7f8d09f26bc109f8523e25b3a1bc1e0a6a3bafcdc", + "lines": 193, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/planner/tests_filter.rs": { + "content_hash": "2827ee3bfa4044aa72aee8cb2748a18cf1199839f9ecadd693ae3e599c0207b7", + "lines": 133, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/anomaly_detection.rs": { + "content_hash": "7df1ddb35aa1377af77266b5b10313781ecdd0b715bb78fefaa28d4b1dc9a2b0", + "lines": 123, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_quality.rs": { + "content_hash": "2e47b622070cafeb2e130070cf464fd630b104d8b4a3fed3736403a7628833da", + "lines": 506, + "functions": 38, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_lock.rs": { + "content_hash": "f7421ffba17f648c183009ee32a2f9f35e75a8e6870b962a25444f517d30c367", + "lines": 492, + "functions": 65, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/machine.rs": { + "content_hash": "1016a4470cfb85dfcd868df21fe8086a3b18c842765eab1d22f967aff8f525b2", + "lines": 533, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_status_1.rs": { + "content_hash": "6bec4145c05fa7caaa3d05fdf3515f0782120a8385406fce9df4f4a3c09cd896", + "lines": 467, + "functions": 65, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_derivation.rs": { + "content_hash": "ca933c0431c5cc9b6f89f0db012202a65a6387207bdb00dd80a8cdd2dd9f5016", + "lines": 293, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_plan_file.rs": { + "content_hash": "18479a77ddfbe1a29914e563331d745113f8800080a19879f28728c00978d59b", + "lines": 224, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase67.rs": { + "content_hash": "ec27a9281d427d21d74d40932e78ec67830df492548a4b4cb808f5b48abd75af", + "lines": 191, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/container_transport.rs": { + "content_hash": "03a9a741dbcb05d75a335dd97099bbcb2021d3b7badd7cec506d15202868b370", + "lines": 120, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_path.rs": { + "content_hash": "28b2dc28f29734d1a759e39bf9b5d9d838b0d0bb23a31fc9c3ec7c9080c36b46", + "lines": 95, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_10.rs": { + "content_hash": "66d3de64c23cdbdba6cb3d9bdee6971b446e737c2f431691ec0af0c8a62fe023", + "lines": 252, + "functions": 30, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_resilience.rs": { + "content_hash": "dcea006a4ac80083d38f24c48919388010b334fd0287642546d62f75efb34c93", + "lines": 268, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_lockfile.rs": { + "content_hash": "0365f4c715e27d76c55d45058286cec808c70729a2d965ced366f4d3549f19a1", + "lines": 200, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/sandbox_exec.rs": { + "content_hash": "81497fc856954a8f238808fef3d031046141e36ca6ff229d057d28c8d31addd8", + "lines": 322, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/store_import.rs": { + "content_hash": "34dd7a36e896a8fe1df30d590376cb8ca314cd4479d41d9e1b29bc6177b5b4f5", + "lines": 191, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_plan.rs": { + "content_hash": "5aea601bb36efb618cf588cf6b9e5b0bf6d21064478d68de5b8f7571aea43f5c", + "lines": 475, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase80.rs": { + "content_hash": "e267ae411af084f1442b0496b55e22ff991b270d68e7642f4846bef5f10c9bb7", + "lines": 289, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/user_management.rs": { + "content_hash": "778853f748c4e51e356d3964dc284e1644806b380bda3393d2d02dd0ac2137d6", + "lines": 120, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/gc.rs": { + "content_hash": "4ee9aa8f03a830997847ee019c423ef14e288ce9345a260316d254cf3c1ab7b1", + "lines": 121, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/state/tests_helpers.rs": { + "content_hash": "7fc2190767b2cacf33961b927bdfb6be3970becdfd3f787c89fcd4a8e06b95e8", + "lines": 27, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase94.rs": { + "content_hash": "fff4cfa1c2fb77c8c79f9a7610da253dd0e2aa118e2dd7cb3f01779095bf61b1", + "lines": 425, + "functions": 24, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_recovery.rs": { + "content_hash": "0d4cfff5a848ceaadac787b245e475aff436cf6297353d029a9b79c26e5dc304", + "lines": 677, + "functions": 22, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_paths.rs": { + "content_hash": "98f7992ab6e2fcf7abb582a9ac94899efba591d83ca50724fb4631a5302d1ddc", + "lines": 337, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_helpers_state.rs": { + "content_hash": "bdaf0fef198566aa4ea317fdf578d0d5676e470962159a2bfe61af922a2af1c0", + "lines": 147, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_8.rs": { + "content_hash": "89614594099be17f2f6a2821b5ad27cd9cf91a944f698a4b769f8f75f7a72c4e", + "lines": 586, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase79.rs": { + "content_hash": "583375143149ffeb8915a78e7db0cd28738fd9c1fc5769cb620471a90a7c6dcc", + "lines": 289, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/recipe/tests_validation.rs": { + "content_hash": "61a0c94cfe03eb4f564a727aa353bac5c17c02795165714c76cebb9b4e57ea5a", + "lines": 434, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_transport_2.rs": { + "content_hash": "e7e61b26181d06ba30ff3d35cb9b5c6d5212a30db2af157146d8f1f2be051ab5", + "lines": 467, + "functions": 30, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_17.rs": { + "content_hash": "7c0212f2ea73638a6baab961322bd7d790910205185aebe8a5a5ead6808b3719", + "lines": 586, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_gpu.rs": { + "content_hash": "3fef1a4a3c63a750a6410c318f593afe6d2de68169f76c456480671f5ace8852", + "lines": 447, + "functions": 29, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_destroy_1.rs": { + "content_hash": "3c0d589f84c8a17e42522d5b8be25e711f6344fedb9b7ce31ada530b64ef7f2d", + "lines": 257, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_validate.rs": { + "content_hash": "7b9db1114d00359a0bc997e5562cfbdc1c2b59b1e95fb423eaae4f35571af7e0", + "lines": 168, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_fleet_b.rs": { + "content_hash": "079ef5be1709818426bf9b485cfa249617ca2acaf46c0dfbceca1dff39fdcc22", + "lines": 314, + "functions": 30, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/tests_anomaly.rs": { + "content_hash": "7f8482500d6ec9b32ab2c892b71c8de993c19359baf1bdfc8d3301d9983d2c77", + "lines": 276, + "functions": 26, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase86.rs": { + "content_hash": "153172f7ef3c5139c3921114f76cfc53f40a54d98910d6b36f9f6dbbd6a91413", + "lines": 160, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/tests_scoring.rs": { + "content_hash": "7a4fddcf8dc5af786a9dbe5148c85780476095ce1c582b13e4cf2f864d017062", + "lines": 367, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_14.rs": { + "content_hash": "50450e6aaa6a7fff6ee109442e4ba0fc71a35ae53f7ea8f0e477cf32234fd1ce", + "lines": 584, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/includes.rs": { + "content_hash": "316b75cb0f563a0b3df5e4e18fb2e5a47283f5b73544559bee00e293f58a117a", + "lines": 51, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_show_1.rs": { + "content_hash": "146e30fe694909412f1d8a3157c58e7c8269c41ce0c7f35dc7e817d881833ab4", + "lines": 418, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_analytics_ext.rs": { + "content_hash": "dfd639fb7a3e67c66eea82ed922c7883b45f7f00b94dd0659cf56d48b6cd8ac2", + "lines": 383, + "functions": 28, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_13.rs": { + "content_hash": "1110878080dc7f004e5c4b035c9e0242aa4e5192e8023c8c0878e1a7a0b44167", + "lines": 584, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/recipe/tests_integration.rs": { + "content_hash": "76bdc5f3c0d88749442c9f0438bd278b9c9a65f76aa3ad2210ec0162b1f773ec", + "lines": 453, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/state_management.rs": { + "content_hash": "f59be77c50f3a54522dee4c421f271bba4e36033ec2c0013173368733f33d7a6", + "lines": 125, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_quality.rs": { + "content_hash": "28bbc55f377fe73d85db97f42ae7d594ba94ebd2885c2dfe60b640ae93f65fc9", + "lines": 685, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_score.rs": { + "content_hash": "57a79d5775e1244b3f628ec77fda9295d2c9c2e92cf88ed9a030a9d79f9a1ca2", + "lines": 197, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_7.rs": { + "content_hash": "513e60f3c6deaf043d81e9d38464483ce7cc79d4fb2cf2e6c4b5b26287aead7a", + "lines": 585, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_graph2.rs": { + "content_hash": "dc3b9470ab3298589ff28ee972bfde94c64a3a4f54cfd2f5d3fa54dc7a6f8f03", + "lines": 378, + "functions": 53, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_reference.rs": { + "content_hash": "c49c2bddda5b11f68be69125f09c88b8cdf5f063de0bc3175c9feb09b9bf0006", + "lines": 123, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_8.rs": { + "content_hash": "1185e4f85d857d6ec63ecca39b7da844e29f93bc3fd9db14722ca67d425278a5", + "lines": 620, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_5_b.rs": { + "content_hash": "f53c35dfbba541b5314c96e465bf4d70f91cfb37dfdb542490648323d960f409", + "lines": 474, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase70.rs": { + "content_hash": "2a92c7115123b83d8d0b4160f3e9332abbea33cd994106a7e8b93c1fc3e2f376", + "lines": 280, + "functions": 24, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_triggers.rs": { + "content_hash": "43a2d5e86ff679568c74904081e8bb08984e92df2ad7426961767c3999e3bb68", + "lines": 106, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_quality.rs": { + "content_hash": "2c94ea204e4a115133bc709888f1e82c24e6253e59a85578bdf7c289a74d90c9", + "lines": 272, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_localhost2.rs": { + "content_hash": "dd03bc0e3ec79a5fd6befc95bebe05acb5cf0e136166b08ab2906f12b662f2ed", + "lines": 268, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_graph_core.rs": { + "content_hash": "cdbc15670c287d28cf372460cf34fc03c5a8680b0953cc697279d7774bb53605", + "lines": 423, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase92.rs": { + "content_hash": "cc5bc0612ff315eaa14e960c3bbbf8c0dccd5663df72c514d0362f04fc6df330", + "lines": 310, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/container.rs": { + "content_hash": "45a546877c6bdbd441e67802d0eae4567010e93f57f048487a15c690b71c234d", + "lines": 168, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_governance_ext.rs": { + "content_hash": "594e07b068c78f44240d180b9da8754d0800db3c1ff3282436bdf07a126dbaf8", + "lines": 487, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_intelligence.rs": { + "content_hash": "7d8eeb261c0ea722ff0134954f29b9742ef87ae24b9bf2ea78290081e5d3aa25", + "lines": 591, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase66.rs": { + "content_hash": "0d4492c526b77f8aa5d53713e6a1ef457a203f56bd8742765463fea2cd702256", + "lines": 204, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_health.rs": { + "content_hash": "967ada2de2f50e004169e6e3dfbc2b75807fd3adecdbe8ada6da3ca827a51172", + "lines": 403, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/drift/tests_basic.rs": { + "content_hash": "72e4c5883d2c4806dbeaa8ad813c81a7907bac78e696f353897f47343d83412d", + "lines": 325, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_insights.rs": { + "content_hash": "c202889e1711fc0d1c94aa52e338515e5dcb07ecd74e83f12960bce19ffe1f20", + "lines": 350, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_cache.rs": { + "content_hash": "1e4c9ebe04fbde22726ab94687dd01bb3fe069daecfa5777a1108b2f966524bc", + "lines": 252, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_chunker.rs": { + "content_hash": "f0cc30924b1441600d59602f94906775f5a056ade2dd6f6f4c3c5cb9f412e675", + "lines": 136, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/secret_scan.rs": { + "content_hash": "6845f4704ed66bd435c620e0dd83b5e3f8bacb65571ee33d76ec9e16d9a89e5b", + "lines": 200, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_remaining_2.rs": { + "content_hash": "2e75f5536689c2c76cefac7ebbfa69de9c81e67487ad5f43b3bc21304178843d", + "lines": 379, + "functions": 50, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch_status.rs": { + "content_hash": "2ce47fd7c3525a87d5bf3fc9b4b0eeb71adca86bd4870322292cd259efd1a4f1", + "lines": 1448, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/blake3_hashing.rs": { + "content_hash": "ccf6727357b9f7774670eba775bfb4ef8ae608dcff6acbf70a4616e73d90f2d4", + "lines": 36, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_core.rs": { + "content_hash": "4d729bb1416b25dbda925c1936253ee3ba2b4f861f3b82d7200ac656a67a1516", + "lines": 223, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase85.rs": { + "content_hash": "28b08303ce8370db560ecc840ad1351df4368065f506565bbcc28d4ad917ce58", + "lines": 175, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_store_convert.rs": { + "content_hash": "3cbbbd88556b1bcc0ab649ad3b02c196a85e9992214d22846de5c18ec0731316", + "lines": 127, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/lib.rs": { + "content_hash": "e0b8dc7a5e97c44562a039ac02eb9134596d8ad98973a25080203f32a92e1067", + "lines": 12, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/mod.rs": { + "content_hash": "8d9bb67095febd89ec5e0a9a6e0f1bc97a1454c28d674f36dc5357cdc8f8eeae", + "lines": 240, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/mcp/tests_handlers_more.rs": { + "content_hash": "9f521869e1bf0d3061b2311c7fefcdf4f2d9275188bd5604713e252dcd891ad2", + "lines": 349, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/profile.rs": { + "content_hash": "f9e15c83686dfd5b0bff531913bd671911c4954ed06050b596785e6a84f6a110", + "lines": 117, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_convergence.rs": { + "content_hash": "b634cfdcc2e5968ec6f0de4b3047422ebc5496d1a13d9800add776150d37f093", + "lines": 495, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_history.rs": { + "content_hash": "fbeabf5f857e37748c156384889a1b7ff8e67b4b9ef626077d8e82ffad8bb45d", + "lines": 230, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/reference.rs": { + "content_hash": "c2e29b14ebf4b4fa1e516a86b4a0b8dd7913e73d566f27d15a9fc571f9b3ecc9", + "lines": 80, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/mod.rs": { + "content_hash": "3534660afbd68852179095bcc91c867aec2e4c43c5a8567ae7ff5a5963553a99", + "lines": 587, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_analytics.rs": { + "content_hash": "9e5ee6bf3a334977ca44c02b677f0e56b00a40d97af4c99ffe41ae12d7fab99f", + "lines": 486, + "functions": 28, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_cost.rs": { + "content_hash": "7d4433d13d433d859f8ce786d2dac6d8d4b61318e2972f685f94da84327f86b9", + "lines": 258, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_graph3_b.rs": { + "content_hash": "0b53e9dd56f69e38122e721290cc6e0d3a8415a07e0c460f2a1103a3bdcfc419", + "lines": 499, + "functions": 67, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase95.rs": { + "content_hash": "bf0a5c55af721110cf5d166d463b5925dc6780913ce7fa0a3580884c2f9627b9", + "lines": 215, + "functions": 30, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_meta.rs": { + "content_hash": "9f59758cea8e4a8dcc203505a580502736d6f22804d7b695352b0c2795cd307e", + "lines": 130, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_5.rs": { + "content_hash": "bb5a8f1e67984283ab1d11ed7eaa56c715f6b8f760bcc0efc73792349be31b8a", + "lines": 585, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_observe.rs": { + "content_hash": "acb6154c8558487eee51f8b71d5320750e5c073cc58643ffcd11f53b2e380db0", + "lines": 413, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/service.rs": { + "content_hash": "b196fa1fe260d1ee4fbe5490d9e73fb475310871a762cd9962aa81be2e6bb56b", + "lines": 81, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_config_quality.rs": { + "content_hash": "f0bb4d6639b69789a74c6fa91155b34ca6600257ca7136f2623ae7e9ab049227", + "lines": 494, + "functions": 26, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_lock_core.rs": { + "content_hash": "70adbb33a1eadbd8fcd553e18d283c32833e30995e4c32e7614d648c4c708b88", + "lines": 467, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_helpers.rs": { + "content_hash": "ac376d55982d7b65a4276da58b6e9d09bf96add09cfa19c92116b5dde0b8548a", + "lines": 246, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase61.rs": { + "content_hash": "3c0a05cbc05aeb4276e2c75cd0e8a68e0d2d41b870e7606fc4dddee23df30db1", + "lines": 195, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/recipe/expansion.rs": { + "content_hash": "83036fee9f0a827503f00b1e4f68d826454a9c419914b30c38ae27f23eec05e8", + "lines": 208, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase88.rs": { + "content_hash": "cfa8ab8cf5825d7e35be208707abdc2be25b856612f93fb9945ad1990a248240", + "lines": 313, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/types/mod.rs": { + "content_hash": "03c03d2a2752ede3f9a5d3d56726cc3e448f874db26732c23f6c26f859565256", + "lines": 30, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/policy.rs": { + "content_hash": "1d649aa9ec5345b621a76ea085fba62cae11b53987b1986c7bef281d1c0a49bf", + "lines": 106, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_apply.rs": { + "content_hash": "0fe8601283da0f753ed01431e5401bab3b82c7243b495696ba658cb24b9d1766", + "lines": 427, + "functions": 33, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_status_7.rs": { + "content_hash": "d3f9cf0e6a16168528c207b05a4896c2a337e3e63097caa895344ea66e8da5e2", + "lines": 380, + "functions": 58, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/planner/tests_when.rs": { + "content_hash": "7d781ca2803bccc31c5a5e4602b67933f9aa421dd2e9f70fa4b5c32eddf38d70", + "lines": 103, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "benches/store_bench.rs": { + "content_hash": "f97b1e48cff71ae15f2c3474dd36a52df9abe546882c8efc6b4d7b5b37833906", + "lines": 401, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_resilience.rs": { + "content_hash": "c6fe3613bcb0c1d81ea3370da4237e88a3e0ecb46066f5c9de84aefde1a8acd6", + "lines": 252, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/template_resolution.rs": { + "content_hash": "fed4c713fe1143b4b6015978ba085cfddb3e62bff74fada57d4196edfe34e2b7", + "lines": 89, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_arch.rs": { + "content_hash": "940ec9891e074aa9fd5d4805cacba1d4c7b0d269c952d37ebfc9aba403f3f26b", + "lines": 152, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/tests_dag.rs": { + "content_hash": "2c13befc9e3d19724bd66f98f9851c85bc9ffad3db5bc12949a471f5be8924cc", + "lines": 287, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_compliance_ext.rs": { + "content_hash": "52a51378bc98cdc284777bcdcf3966d365b46e33ec9efe10dd2881a3529cca75", + "lines": 430, + "functions": 26, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_5.rs": { + "content_hash": "824b0d8f75706dbcd9fa8c3b8de4bd7a8d23b17de16c64b462c4fa242d8dcc06", + "lines": 395, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_lifecycle.rs": { + "content_hash": "e2aa32b5d86669dacd3372184338375a61d4a42d0359a6e206aee5bb0c1bd8f0", + "lines": 285, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase105.rs": { + "content_hash": "125e47bdfb4e5632a1352a9f73348469d2a113c4dff77b4ae71919315fd0c640", + "lines": 206, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_validate3.rs": { + "content_hash": "2cc0d2323726ddf8a93ae63a7590f55ecb15466f0c9176dee6188c589f5d84ab", + "lines": 410, + "functions": 51, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/tests_container_c.rs": { + "content_hash": "3e362db276afe5b00807edd1bb908ab0d43ede1ac1e2380756745d1dcee91e65", + "lines": 360, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/plan.rs": { + "content_hash": "5bf39e0a42f93bb8d2f7421ce84fbd4d3689bb9573947f04a3edca3ccf85cb8e", + "lines": 399, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_transport.rs": { + "content_hash": "9be38f2f8c563b82f6df823e7f47e1000f238d7883f930e1b32f8cf3a36b9a5d", + "lines": 487, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_maturity.rs": { + "content_hash": "efe035a279d4f04b37e591a91b8b4cf96ce24185fafeb5e967b2a0cff197074e", + "lines": 500, + "functions": 26, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_derivation_exec.rs": { + "content_hash": "4b5ee332750b330d1dec8780e7ca966c9d59b0ce17db88a4e0e946fccb94ec6c", + "lines": 281, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_remaining_9.rs": { + "content_hash": "e6392c9f422e76d22599cff1f48d9f31e9b9108407425b644600e96fcaca726f", + "lines": 466, + "functions": 29, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/mod.rs": { + "content_hash": "a7103646daa0f2f7c25ce72ec7a06f770c5aadda9b6481f7b58fdf92680da303", + "lines": 131, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/chunker.rs": { + "content_hash": "27d30c5d66393e4c48bf395abe4149e2047aefbb246833baa974b1820adcb437", + "lines": 140, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/pin_tripwire.rs": { + "content_hash": "6642a1bbc18f4ff12b66e49e0e7751744ded7a5a4fdfcad6cb8aa991bb6bf3d0", + "lines": 117, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/check.rs": { + "content_hash": "ea85e4683f4490afc10d126fb3ebcd379b982ae73f1abf8c68380c7c2281f838", + "lines": 299, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_drift_intel2.rs": { + "content_hash": "6f32e09b223fb4a152deac6b1cdb6b80ef62dc08f2b6da69cc19c4b79649945b", + "lines": 460, + "functions": 18, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_topology.rs": { + "content_hash": "58dbadcd16996501b6d30be61417f9754f426a86fb2ebe6467302c081a8a0bd7", + "lines": 525, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch_store.rs": { + "content_hash": "eff09a6186bc91bdc9a003eced9d2fc95ccd29d85d6fd753c98bb269ec29030a", + "lines": 116, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/helpers_time.rs": { + "content_hash": "3cc6c787859c42c701962a8943fb8d48c502416c59af9add56c40b500a1b278e", + "lines": 82, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase74.rs": { + "content_hash": "769ca19a23eeea8da2e900c8ab4dca4d1ffcfd0b29c03f9133b8396ef000131a", + "lines": 281, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/store_ops.rs": { + "content_hash": "8f1c09ef38818d37d499deae48880fce98e537ec88ed2f717a18775b67cd1f72", + "lines": 311, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/model.rs": { + "content_hash": "b07c57535ce7c047b85d0091cc592536c1bc4ee97e4912f8da242ae71f8514be", + "lines": 329, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/snapshot.rs": { + "content_hash": "83af1a99813a12ae3c8668c3a8a38bdfd54e5efabdd337cce73502b3aaf41950", + "lines": 168, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/contract_coverage.rs": { + "content_hash": "5daf03a49c3624a4792586195749e18090ccf6d639732dd32efcfc1dd0b59b2e", + "lines": 122, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_9.rs": { + "content_hash": "1453de79861b5d7e0baa50ac8f399af82c2084516d79817a7db1cd1002cad9e6", + "lines": 621, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_bash_provability.rs": { + "content_hash": "fb5b01227d3d1ebf0c4b2b25a9585c3a3314a1dc8e3bb3917bff8ef1c7b6072a", + "lines": 137, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/mod.rs": { + "content_hash": "4b7378d6af1834063b09a80e02fd37bbea24ca7aaa934cbd5b0decd9022dcb83", + "lines": 18, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_remaining_8.rs": { + "content_hash": "c08ba05a5d14178049fc610d8bed82023ae2f09ba65b276812c6c6df1431e7da", + "lines": 486, + "functions": 45, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/tests_hasher.rs": { + "content_hash": "d631ad2b887ce07688a8a0e87a5aff2d55bddd83d2217fb5b8203aac76552631", + "lines": 276, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "build.rs": { + "content_hash": "d68c4b581bc2211c97f952c4cd1aca94426b84e419e52071a421118e381f833c", + "lines": 9, + "functions": 0, + "max_complexity": 0, + "category": "BuildScript" + }, + "src/cli/tests_cov_remaining_7.rs": { + "content_hash": "03d4a2bf12817121f557c0251456edbf232593631d66cda7c7ab1747ef609ecb", + "lines": 386, + "functions": 40, + "max_complexity": 0, + "category": "RustSource" + }, + "tests/container_transport.rs": { + "content_hash": "5eaf35999f82182fc8ffcfa7bba3084e607fcd733f8af0ecaf9e2088926e4e9e", + "lines": 105, + "functions": 0, + "max_complexity": 0, + "category": "TestCode" + }, + "src/core/store/tests_pin_tripwire.rs": { + "content_hash": "4b400e9e27207460dfae9a3686e898af1d62f7dca35656618f6438fd860fd7fd", + "lines": 215, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/codegen/tests_coverage.rs": { + "content_hash": "34d3b6fcc4fea7cb616e7538af6d6b508f6ce6933d7a900b3cb70b717d473c61", + "lines": 269, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_core.rs": { + "content_hash": "52906653e59d2b705f0221e6d82d69271897aed0864605f1a9fca1c915db5d80", + "lines": 263, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/store_diff.rs": { + "content_hash": "3604892b9c7259ae2d773fe300b4fb5ab77fb8e982e0188e783e913517c4e5be", + "lines": 161, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_helpers.rs": { + "content_hash": "f2c5aee07158277b5539833a90498b0755ffe6f1c50d16256a3f0989016bc7b5", + "lines": 150, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/resource_scripts.rs": { + "content_hash": "bd107a90d40cfa4b2fd7abf5f8793d9414f9e7c1f1894e594d7ea640b68b8ed3", + "lines": 189, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_edge_details.rs": { + "content_hash": "e4b0c31d73409f22aa1213b0376f5e9a02980a317e4ba6670c925afd5f9a51ef", + "lines": 403, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_show_2.rs": { + "content_hash": "bd627925118bd47ac5bbbca0b90951c6fae93b5bbf1617a2ab27dd5bc6a8f0ce", + "lines": 225, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase65.rs": { + "content_hash": "7becd26ed753087000d41cb0848a75dd670d9590ada04d710b194e0fde1b6d92", + "lines": 188, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_graph.rs": { + "content_hash": "d6324c03b4c5dcf421b9d0a587e46c4ddd47629af49d78a4ef5351471ce7b727", + "lines": 335, + "functions": 53, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/lock_repair.rs": { + "content_hash": "5df1a01c6d3e651a03ce69af2bce43587e0caae153bdb9650250bab85e85548e", + "lines": 122, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_weight.rs": { + "content_hash": "67e5cd261fd46b776e6f950d280ec214968c66ceb74a0a906f03327791b9af44", + "lines": 410, + "functions": 28, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/lock_core_args.rs": { + "content_hash": "273fd1b5632fc1d2d997ccd6f3b94aea533dd79c2845ebe5abdb246aa7769c80", + "lines": 254, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/task.rs": { + "content_hash": "cac6107376b85edd8b7c7a1fc9cbe8772a7508d549a74b183420601ddc15ef37", + "lines": 165, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_sandbox_exec.rs": { + "content_hash": "8fdfb88e74621caec25f8073fcf3fdbd10edd452448f4b6b265c55ea9b466ffa", + "lines": 248, + "functions": 18, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_intelligence_ext.rs": { + "content_hash": "eeb9abf73fbfc962479c96003f7208a7ff1c33a9b00ae21afbc1ce91adcb8d61", + "lines": 759, + "functions": 27, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_localhost.rs": { + "content_hash": "954988f33b820310b58963906a52d14efb39fa171ccdce0d5d845e96526d30ca", + "lines": 334, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/derivation_exec.rs": { + "content_hash": "c4db2a22e9bd8f74b45f19e88050cbadff336e8b002b8a75d0ebdf8686f0ee0e", + "lines": 352, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_5_b.rs": { + "content_hash": "ae7798e2a3827d2d0946147ea00340787a86e191f15d4b98237d7b4bdd74b75c", + "lines": 207, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_scoring.rs": { + "content_hash": "4da920733a2851796cfe33fc50b0ddb25b29b090de2c17d63b5da731c61a5014", + "lines": 435, + "functions": 24, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/plan_args.rs": { + "content_hash": "9a317401d68dba54b512ebdb9bda678819a39a4d05243b89030a37bca0f46683", + "lines": 85, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/copia/tests.rs": { + "content_hash": "99945b226f51c6816a3dd07f49ca4740319bf41000f379e06f00bc7560602e1c", + "lines": 307, + "functions": 0, + "max_complexity": 0, + "category": "TestCode" + }, + "src/resources/tests_file.rs": { + "content_hash": "b04d499f3404375fc6c01ba7bcf748f8d33f5c515086550b602d3b7f84fe7ec1", + "lines": 308, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_convert.rs": { + "content_hash": "1559a180fa06b8ddf219469771feadd18f677cd82cdf489331ba3f84dc282300", + "lines": 173, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/lint.rs": { + "content_hash": "79fea5af0fb5cb75e072206a20820d9dc06e3fe34e3e626d9992bf84c86fb4f4", + "lines": 259, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/docker.rs": { + "content_hash": "304c938d197087b019e5ef65b74eca68511002b2e9b60a544344c659ca1dbdc6", + "lines": 88, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_core.rs": { + "content_hash": "32b268ebe8b7fdcf7fe1782dec7f04469c435abe99547311182d5e3f5afdfbe8", + "lines": 299, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_substitution.rs": { + "content_hash": "502b1ad43ed11914f569118f091a4569207765359dc2282fa5c95340e026d631", + "lines": 279, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_fleet_ops.rs": { + "content_hash": "88ab77b4a769be588ba9fed9d48e35d5f7215e7a7476fcc04518e0de5021aaf8", + "lines": 531, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_sandbox.rs": { + "content_hash": "53da5a42b62345bc14b3ed96491582b76080d76c3050b9be2fb06315ca9e2fb8", + "lines": 218, + "functions": 22, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc.rs": { + "content_hash": "f02bd71207dcab0fe85ea7441c1fd9b931aebae6e582ccdca5124707c38b35d4", + "lines": 436, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/apply_variants.rs": { + "content_hash": "7fb2ff4c429a910521f9baf6668437bca47db6c49ebdc70574e1b38a380731b7", + "lines": 349, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_impact.rs": { + "content_hash": "00544fdc7f7188c598c92156eb38e420e1cd832ce406fcb903a977aa350e6d72", + "lines": 360, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_fleet.rs": { + "content_hash": "0a1e48414bc8db11acbf4507134638e61621e160134e4a6d4d558290a3797a4a", + "lines": 337, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/far.rs": { + "content_hash": "705a31a330e322bc78bba74d76cabb4e90d8cecaf72d126745a70886d0a0edf8", + "lines": 196, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/drift/tests_edge_fj132_b.rs": { + "content_hash": "703679ec24f82db736126262db62b34f04517ff4e038279669c874dbaa646fb4", + "lines": 272, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_provider.rs": { + "content_hash": "223070fc681c59757242061bce3987209d1f621c4ba1cfe92d0dd9d5a318de0e", + "lines": 263, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/data.rs": { + "content_hash": "e38af36163c68498a96ab1edbb077a08efcad8e2a2e86cea14eba74590b70dbb", + "lines": 139, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/state/tests_edge.rs": { + "content_hash": "c646c7abf8bf3248333d1de9795e41797d94b5d9398818088aa75b104691ff62", + "lines": 334, + "functions": 18, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_provider_exec.rs": { + "content_hash": "95360fc2385a6b6ecdc754235766dc7578fb4687d8a30d7333f3fcbdf2ba6990", + "lines": 254, + "functions": 19, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_8_b.rs": { + "content_hash": "9d0b1701b10b92390265cf41b623c1234fafd0e600e7fedb75a70a73de503993", + "lines": 474, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_1_b.rs": { + "content_hash": "33221eefa354e0482515d3ac44909c8b218d54435078814040b93ddc6f1d6f31", + "lines": 208, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch_apply.rs": { + "content_hash": "a18773bc1739ead60e53676aa95f738ff93001233d0d113214c56a20231e944b", + "lines": 568, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/tests_hasher_b.rs": { + "content_hash": "f5b697b99c5076d1499ed56d039551e4d573da8e5140ab3199102cdc0ab119a3", + "lines": 265, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/drift/mod.rs": { + "content_hash": "b0094bbc32e0db8f94403762405412acca10817454dd12d37a299dadc01c176d", + "lines": 310, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/codegen/dispatch.rs": { + "content_hash": "b0cef52bfba28729d54b320d8a05c52915033e03dbd896d1f0eaca06f6b41b5b", + "lines": 79, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_doctor.rs": { + "content_hash": "24fbc7d8a065ff4bd1bd7380595e8cc5e5cbc9db2c0fb91e1a2a2ae8a3ae1455", + "lines": 178, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_7.rs": { + "content_hash": "b53d80fc3bb932221f9f7ac428f3b0c9e3841a0e908ddae73f407958e5be08fc", + "lines": 703, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/resource.rs": { + "content_hash": "3bdf0233a3df72792c19239fb2e2f6adaa7797176cc84d5978f3cfd797fcaeb8", + "lines": 71, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_11.rs": { + "content_hash": "0f99be1bbe1377b6ab724baf304431a900a7361d15b4b82d7d52a43a2dfea94b", + "lines": 584, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_6.rs": { + "content_hash": "22c4fa186d85c509e018a731fd3ccdea1d2ae83cd9152786fbda97376fd55c68", + "lines": 401, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_19.rs": { + "content_hash": "7babc191553334c61ad1b42c509be4cf31542c903bcda395d58fa75e49d903cb", + "lines": 589, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_security.rs": { + "content_hash": "534f8faf855d2ebe94871452b0e993c762ba38be7127c95f198d3f6e26dc8c49", + "lines": 436, + "functions": 28, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/pin_resolve.rs": { + "content_hash": "fe3ca39b83bf797a137d51ed529695127231448405f7044be43ce3474db6ed75", + "lines": 205, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/state/mod.rs": { + "content_hash": "e0762e985be68ee38bcbfb5f03e876243ebd68d9184bddca38da517221441a81", + "lines": 335, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/hasher.rs": { + "content_hash": "4a099da8167b27b580663b6be81f6964b35d00c5083a52c4396481338077d97e", + "lines": 93, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_sync_exec.rs": { + "content_hash": "d889f6a4779827c744d4bbce4f87faa6ba8daf84be8284cbfa7f032c394e8923", + "lines": 229, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/validate.rs": { + "content_hash": "6233d0994ccaaafc3c9112422e700b7feceb4883f7baff463b6595bd623d2455", + "lines": 131, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_validation.rs": { + "content_hash": "5bf7f82e7efcb46043483e45cf4bb0fe7ca327446b6b8b95f73a24d98a20a383", + "lines": 492, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/sync_exec.rs": { + "content_hash": "00868ef2b5b95b8b2bc37423781dbc15af79f86a12ac2a9acfe4136e50f027a0", + "lines": 189, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_topology_ext.rs": { + "content_hash": "5ea63a1384c82f316ef7448e73c80696167583f8a22b868509dd6cef478c5afb", + "lines": 124, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/destroy.rs": { + "content_hash": "99e2446766c777d132f7a0fd113bcc5f077e937b9642ae77f67b35523b02a902", + "lines": 275, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_edge_record.rs": { + "content_hash": "06e43c61e6982f518304ef15053cec6c917db1fceffc74e05ea068d9923ed59a", + "lines": 420, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_operational.rs": { + "content_hash": "c67f575d0b6b37879d87be18a304c51a63b4d127184f0c0b39a4e70ea8c9ce93", + "lines": 529, + "functions": 18, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/score.rs": { + "content_hash": "697e597617672776bac2976841e12e91e9b8b040ebbd77b776d0e82c1078754f", + "lines": 51, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/types/tests_state.rs": { + "content_hash": "dd2a188c375b0154f75dec150a2cf75406c52e50eae968c3b467146aedef7af5", + "lines": 282, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_graph_core_5.rs": { + "content_hash": "ae3424a2cefb17bb1f2ad298a20b261cbd415c077b7bb9d0706e74ef8fa24479", + "lines": 313, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_lint.rs": { + "content_hash": "5cb83f7f55532c360a592d010ae54ea7f35787782a84aa139281154a04bba24b", + "lines": 196, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/mod.rs": { + "content_hash": "d6f20aeacf53c77365727163bc1ba6263497103933a855622e5465ded5bd8891", + "lines": 42, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_misc_2.rs": { + "content_hash": "0c72d3e8511ed1c5abac170244cd9ec3a33a39c6fd14f8ce2dacc31e8ed07ac7", + "lines": 391, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_args_4.rs": { + "content_hash": "2b82c0fb253b1f675d92841e3e329bb18b18c582fc8fdbd01eb3a72070fcf9e7", + "lines": 373, + "functions": 32, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/functions.rs": { + "content_hash": "31f6358703727288eb835d958f8c712ce3b97f031239d2569e58f9e9aee33c8a", + "lines": 165, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch_notify_custom.rs": { + "content_hash": "f8037c4ca348c06dc50eb5ee323d77e9412fb370cf0c5299f5b9716b334488d8", + "lines": 427, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_validate_core_2_b.rs": { + "content_hash": "22f5f3903a07db1e20a30566d978cdff3aa8f6cd345360996b237c0fce6a88ac", + "lines": 659, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_22.rs": { + "content_hash": "bf279a9d6ae125679a585c944782b7210e25699abf2834e397a1242c0378ed0a", + "lines": 588, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/drift/tests_full.rs": { + "content_hash": "9c60bf9ae7deb70447f2ee2c8caebe6f0f2edfafe2965f4e7c59add1fd83ad87", + "lines": 455, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_status_4.rs": { + "content_hash": "a817b37be5a555e6c08ac2709b878f1ef3d8268461c49a6de30961c7c41fb390", + "lines": 345, + "functions": 43, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_advanced.rs": { + "content_hash": "67ed06aaadd80dfd88bebac0074a53446643ab1885cb62fdc3a31b750fb9dbaa", + "lines": 372, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/copia/mod.rs": { + "content_hash": "0e23b4a219ca632f3478d22ef3c04c705251af4838bc344c1e7870ef26b8b6db", + "lines": 239, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/mcp/registry.rs": { + "content_hash": "75647eabf9f4d7b78af10988944732a965bec55d05593469767749cd3d54866f", + "lines": 244, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_validate_core_3.rs": { + "content_hash": "c94e86e0868d9fd06084bf3fdeb3a05303969bdd50c2ab7dcc054b93cc93b608", + "lines": 246, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_validate_core_1_b.rs": { + "content_hash": "ad46aa69bb5803815a2e8bcc9908c04363ffaed29eb191576d3ac275f1c2d017", + "lines": 647, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_health.rs": { + "content_hash": "0f9113539d8a95272807eab2218080651daf1ddf3b8cce14a28b3d2a4daeaa4e", + "lines": 480, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/trace_provenance.rs": { + "content_hash": "9f8a415a0f1e0c25293ebf2aab2a39d1bf6d9b838e101315eb5dec82348c22d4", + "lines": 119, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_drift.rs": { + "content_hash": "5f34e558d5b53c082a28d43579f18cd4962307695c2e9fa782d4c2362399c302", + "lines": 381, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_1.rs": { + "content_hash": "a9585baa58750091b28e6495aebec099df26f3b35db61484f16b32f2c3cfc37e", + "lines": 395, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_16.rs": { + "content_hash": "f26edc3898c0b3cc4167c24262fd5d6bbe9713971d0bccdb892f27833bd6180f", + "lines": 585, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_graph_core_1.rs": { + "content_hash": "b996492b79f04f8f625bd3b70571a2f5141cc8abb40404afd8256f97d6a1af27", + "lines": 1033, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_analysis.rs": { + "content_hash": "091ac709f81cbf81016d5afc8919f47ef129402f50c9cd93d069b70a4ffd24ee", + "lines": 315, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/resource_ops.rs": { + "content_hash": "276472b0a55ffda06dd7a201f583affd113ae6cd5f191f7f0f879650ac1b8134", + "lines": 403, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_conda.rs": { + "content_hash": "5207a8413f19d7d566942ea05c1b24b717e9273ae0da195c95e8fc4dd68e186b", + "lines": 318, + "functions": 19, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/validate_args.rs": { + "content_hash": "32835cd4dd4e68473c6129851893b5f0a099d01eb8848c2b3a00fe18325db0b5", + "lines": 494, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/graph_args.rs": { + "content_hash": "1ca088d8da750f957172e6d6fc1fae080a39d0f03c25448ff2136941d70aaec4", + "lines": 496, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_status_6.rs": { + "content_hash": "7aad92ee7550f4497bbf6ef8c8450ca3107b215fe6091fcd58bd1c1ba3b7ba8a", + "lines": 485, + "functions": 74, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_far.rs": { + "content_hash": "24550e8b86ecf27dcd0fcb84087f98b1e20953293c06a573be3d0b28b325a7b8", + "lines": 185, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_2_b.rs": { + "content_hash": "a1eaeaa40f75ae55def5722999b1227c8521a27c8218d074cbfd6b5e6c3df93a", + "lines": 476, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase82.rs": { + "content_hash": "fa4cef482998707dd19209834ba250b6a3dea79eb38120b118e29795c01b861b", + "lines": 289, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_gc_exec.rs": { + "content_hash": "e1fccbbf7f3ada96e33a6782f9c8a65e637f128ec07f668a829743c66fe15bd9", + "lines": 252, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/lock_merge.rs": { + "content_hash": "b4b7097556494d0affa4ecd89af8c3030b55570d213b020fa71d89b534392c9e", + "lines": 210, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_10.rs": { + "content_hash": "e7a843ea9f0d533ffb309415b24a45c3132dcf8e4b48d21e4850628571201583", + "lines": 583, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase89.rs": { + "content_hash": "70e540ec4031f62163e0d14d04422bcb6c2fed1e957ee5d70ed2e689b4a6c1b8", + "lines": 308, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_hooks.rs": { + "content_hash": "5509ac1dc580a0c8a13607ab1d807295391f6dced6375f2a05ba4fae6589bde3", + "lines": 316, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/print_helpers.rs": { + "content_hash": "14fab206c24dde8dff130d982296586067b476a1fe46cdb0d4210b463a7bc87e", + "lines": 241, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/store_convert.rs": { + "content_hash": "9a4f53e95baf8df5a52f8585341337d69fe3b1b7e1586abae21419e9525fdabd", + "lines": 131, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/types/resource.rs": { + "content_hash": "58e75f542452698f3ff375faebc9fe6e3672dca984bf84404375aa68fbca6d43", + "lines": 438, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_failures.rs": { + "content_hash": "e74487d76644f9f54e751d50cd25018b0339d5b274c12a6a051d7f37269313e7", + "lines": 390, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/lock_security.rs": { + "content_hash": "8018b5a7797f5483703a32671e476ecbc4f8afe01eb6a727a39679dedb706be6", + "lines": 392, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/lock_audit.rs": { + "content_hash": "781e7c728c7a0b8a9b2204000a53f1fd58ed33aad63202aa5020e3f39e7f3bbd", + "lines": 382, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/observe.rs": { + "content_hash": "b9dcc21216e088cebd16c810444f8fd4534ee871fb5097886a30e14f62b83e71", + "lines": 363, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_args_2.rs": { + "content_hash": "e91f9e265dfb772ae8daf143fdc99fc593cdf114e61451e5e0aa1a3f19aa0728", + "lines": 479, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_destroy.rs": { + "content_hash": "ea1504b5a4cf522a8231e2751484ce9ddba9155fbc0efa29c74f38cc5b7e4941", + "lines": 374, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/template.rs": { + "content_hash": "bb4feaae6011fc97fa6a3444be4ca14a2b32d30bc1da14700669e3066c2d35c7", + "lines": 105, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_waves.rs": { + "content_hash": "982bf7d6f02720c27869d8e00dfd8eb3868b492a65bac78750eedbaf380ddbbd", + "lines": 459, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_4.rs": { + "content_hash": "daf747d1945c7b4cc9fdcd35cae653abb2446da79354f4d1ace15a885b27bf08", + "lines": 585, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase64.rs": { + "content_hash": "d95d5a7569aedecf4c5f7da391965a342aaa6c897069d00986a67b8b41e9a65d", + "lines": 202, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/tests_ssh.rs": { + "content_hash": "81604c0180ad81bcfc76902e10c0f90b1737185a18af42ad22b09888aded4d63", + "lines": 358, + "functions": 37, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/package.rs": { + "content_hash": "7b78ef2be7d1342bc58259a458f848372a8bd2070cb9a0c77e2baf12070457a5", + "lines": 192, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_status_5.rs": { + "content_hash": "e46802b6e6abde362a1f34bfe75deebde6f8320ba58c70c7a279f28bce983f41", + "lines": 361, + "functions": 59, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/secrets.rs": { + "content_hash": "f04e8e8de8dbf25c709ab07f8a237dff5fd923b92956dfcff6f3f44e315a9875", + "lines": 154, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/pepita.rs": { + "content_hash": "ba21671a08f546817c14a58857d4dfd8e893e2b7a10f1c1d5d187beb0d0e2635", + "lines": 385, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_governance.rs": { + "content_hash": "3c3cfe711b4c2caba6a2eb351a7d7fe324589a1e4fbb8f51dc32599f0cbda81a", + "lines": 364, + "functions": 27, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_misc_2b.rs": { + "content_hash": "d5b42c215c27b1e08c7756f65bb265500ba10cd24bed9da74ed294ce1cde1ba7", + "lines": 452, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_intelligence_ext2.rs": { + "content_hash": "f1d0f601b3f665c3dc7dc2314caf87827e1ac030ddf81de17aad5e156b307ff6", + "lines": 624, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_structural.rs": { + "content_hash": "cb2f78d1e49b5d1500240a9ffd4cfa464e4130a810b8fc86ec989160cd044c9e", + "lines": 486, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/history.rs": { + "content_hash": "b71f21a1943143a0694336ed32053d28a4bea1275320430367ba14fa3e64977b", + "lines": 268, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase83.rs": { + "content_hash": "9234ec3986faf13c9d6bd8fe87076bb84caab479f5be32081d2b50e7d74b963d", + "lines": 289, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_validate2_c.rs": { + "content_hash": "4f9cdcb7db8755584f85e8c040c3451d3a69b8672a6c675b2871de7580838277", + "lines": 188, + "functions": 18, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/helpers.rs": { + "content_hash": "7cdf36a2f59e6dcf0e334b47db74a7877ba11321c4565a75c68745817abcec35", + "lines": 74, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_gc.rs": { + "content_hash": "845a11f64740c6ad1c7a6b37bcb8768950f678b431f3ef7942dea10ea5718375", + "lines": 160, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_2.rs": { + "content_hash": "7f31373720dd7f00b8b0cfc724d9c0eb4ff9cb93c8172527b3899862e2d475bc", + "lines": 707, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_intelligence_ext2.rs": { + "content_hash": "ddaa73730c7560e3746b74fc84b6d38345ca14c7d20823cd31db285ba95a7500", + "lines": 643, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_operational_ext.rs": { + "content_hash": "f8f39446b9091ae9178dc210d4b1ff97ff6721feea04ed74490ded0d23196f57", + "lines": 212, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/subcmd_args.rs": { + "content_hash": "f30161fb246f830e179318201829d0d887db3d017b98a3d18bc50ec637f33e24", + "lines": 120, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/doctor.rs": { + "content_hash": "ff075849846d7cf2678962e124a8ec7d24b3f842ad9282193d05b1f7e83c1bd3", + "lines": 447, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase87.rs": { + "content_hash": "1e84fc118324487ca1d725601d4484cb4ffd00a7ae1757a99e8f754fee9da4ac", + "lines": 301, + "functions": 24, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_5.rs": { + "content_hash": "1ee9123ad83ec56284041bdc2e895062a51b76ef3fd764d0a72a64adbfacbbd7", + "lines": 703, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/codegen/test_fixtures.rs": { + "content_hash": "3efa8147df7d4144bdabb3ea06f747bc99c10d77ff6f78b5e405342c5724a99d", + "lines": 331, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/types/state_types.rs": { + "content_hash": "77c870181340cd507179ef384395887fc0b16b2c9cd5c1ebbbfe920576174ba8", + "lines": 298, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/substitution.rs": { + "content_hash": "066e4f1a9d041be568ba6528659f4d869d71368af226e0fc99dfefcb717fc79d", + "lines": 279, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/tests_purifier.rs": { + "content_hash": "2590f79be5bf58666abe31c1b7294d2a0b87213100b1190097d270ddc6e91915", + "lines": 304, + "functions": 22, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_fleet_insight.rs": { + "content_hash": "9d2c58b613313ecf20a215e5139db11c4cb43f552494b71d4498ddd40fd77e77", + "lines": 706, + "functions": 30, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_10.rs": { + "content_hash": "41a6a087a804c30a8cef520b38a978dbc8e73705209cfc23cb9cee7bb37d630c", + "lines": 660, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase76.rs": { + "content_hash": "afcd94e8394a4f54034c13db7138510a2d3818b914bc2df917c4a0fedaafc3f2", + "lines": 290, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_misc2_b.rs": { + "content_hash": "f18f96451cb4e19cefa0a985dceb3afa1871798d2e3be85141e1685234c17263", + "lines": 298, + "functions": 27, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/fleet_reporting.rs": { + "content_hash": "0f004041c55291e5130d6b8762217ae7bc3121a309e9f8912ffed6c5ca1b4853", + "lines": 368, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/check_test.rs": { + "content_hash": "7ad5988d22f832718573ae82a76be7f2b607c9ec3e1cb2cc6d18c0b7da596da6", + "lines": 254, + "functions": 0, + "max_complexity": 0, + "category": "TestCode" + }, + "src/cli/tests_phase72.rs": { + "content_hash": "0139d14fca9a40bb4118f91d4fc4ccd9c6a14577494a34ec92f84185ad97add1", + "lines": 279, + "functions": 24, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_governance.rs": { + "content_hash": "7909756818caadc8ce5782aa8b4993c340675b9502259363f67ea01de304c263", + "lines": 480, + "functions": 22, + "max_complexity": 0, + "category": "RustSource" + }, + "src/mcp/types.rs": { + "content_hash": "cb8c7e82ad98e5597f9b9c97533399eaf4a0b6d108470ddf272d4ed74b10bc75", + "lines": 186, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_policy.rs": { + "content_hash": "ab672e6d66b48bd9914016ecddf58ca50752c06d0c40579e5679cf4b3869576f", + "lines": 218, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase104.rs": { + "content_hash": "d0db279defc746e4a47f639ad9b51c180869322b81923f9e6111134c8bbf5bd9", + "lines": 213, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/recipes.rs": { + "content_hash": "5bf513847e93b5f32beb6ae07e4ae664a42f57ef1693e93b1449c4eb9f3a20ef", + "lines": 138, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/tests_waves.rs": { + "content_hash": "43c4ea3a7fe427029c0a4eff6b84179b4553297a31a7663010151f43ba226022", + "lines": 144, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/score_cookbook.rs": { + "content_hash": "67ff3d234d87993e17cf72b00da5d0b9c2c3237f7f09ff2a656c19a60459af18", + "lines": 104, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_dispatch_3.rs": { + "content_hash": "100af1705a0d16182fe5a8969d0ca78019e0a877b49569b55e27cc654b33b0c9", + "lines": 501, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/shell_purifier.rs": { + "content_hash": "f94c295e75a0ac051d88da44468ba898864eb937bfd8edc2409f61e7d0081fc0", + "lines": 125, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/tests_purifier_b.rs": { + "content_hash": "88ee77a349a942e64af435510638445d0cbde59a2018af5f591f72d4cb56903f", + "lines": 336, + "functions": 19, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/types/policy.rs": { + "content_hash": "9669a0f635a6090ccb2b222823b3632367cd5c303e24c2f47c33c2430c0114ef", + "lines": 118, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_3.rs": { + "content_hash": "037b95ee9ddbd52fd27e5076ec61dad745a62a96c65b190dcaed86b54f7a2164", + "lines": 443, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_validate.rs": { + "content_hash": "156fe9a3861bd5c1033ce9408b177b24db65749cb8560640fd3b18b532baebb9", + "lines": 311, + "functions": 42, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_remaining_5.rs": { + "content_hash": "67ff6948936e96d24450ec9fd9a80dcba42f9949406834c38922b4ae89286d88", + "lines": 475, + "functions": 37, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/tests_template.rs": { + "content_hash": "6dc64dac971eaba5ad71d818a09ef20d43bd1a8784af2c8054cdd59506722691", + "lines": 423, + "functions": 30, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/state/tests_basic.rs": { + "content_hash": "26773ead1c2a4f5649bafbf9fb0ae4903aa075f74a18d6023262ad0dd7c1071f", + "lines": 354, + "functions": 24, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core.rs": { + "content_hash": "ec2276a149ff2bab435d03b68e2b4cb0e0bf9500014607f887488c339097d43a", + "lines": 359, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/meta.rs": { + "content_hash": "ee76198a36d480e2f1147085306b65a8f851e26665bb42fe1f443aaa38095326", + "lines": 125, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/local.rs": { + "content_hash": "42df3372977903d61a060ee4949826793a11e046b38b022b59743c864b4d4f9a", + "lines": 149, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/mcp/mod.rs": { + "content_hash": "3201dad7d2470e767c9e463c855586d805719b6af472a51bf914d540e6d92687", + "lines": 21, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/lock_lifecycle.rs": { + "content_hash": "1a130f12406efe0f6b2b2fbd421fdd729e31df031526144625fa8fe8529848d1", + "lines": 183, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/convert.rs": { + "content_hash": "02a72e67c50e2ff057114ec4d407d4de92e92e5b54ebda75c477862fcbfe930d", + "lines": 221, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_b.rs": { + "content_hash": "022ccd86512e794a15c77242c1071530dcb99d24620ee43ccba398d0a79802cb", + "lines": 369, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_store_pin.rs": { + "content_hash": "9b1688c31c9ef9884c5450f1b704d487514270fc5f94ade48a1b4e8cade08a4b", + "lines": 178, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/planner/tests_lifecycle.rs": { + "content_hash": "011ee350e3430b19f9132cdf7b8a760c3e5ff254697a5d5c04abfa2d7ea2746f", + "lines": 224, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/mod.rs": { + "content_hash": "30d69f454459c3979acf9916e760d80f3d2467d3095367eec183a476cb93b6b8", + "lines": 113, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_12.rs": { + "content_hash": "a23683659b99ed53f1d94379a414bb1088617b377ef4d672d3c7523e6330e14b", + "lines": 584, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_transport.rs": { + "content_hash": "1c444c1c80a71de6090374a70fbfae8059293bda45902f8ceda4ba8c6a93f47c", + "lines": 212, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_analytics.rs": { + "content_hash": "8190e30cea38bb3474e443956876f16a86b1b6670f8b7adf1ace5e5745f99b05", + "lines": 450, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_resources.rs": { + "content_hash": "c30a9bd72485e2d4669f36919b1e0498e8fc5510d523dc308b2b43fe8b21bcf1", + "lines": 260, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/planner/tests_advanced.rs": { + "content_hash": "b622cf123d06945e5dcd11ece3b4c8a67d1add1b535c4d2f3cc4dd14c11b9805", + "lines": 265, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/types/config.rs": { + "content_hash": "273ef42049338b1bcb6eab93232ef065b5848a195af8686dcfa58019bfc7fbb0", + "lines": 373, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_validate_core_2.rs": { + "content_hash": "8da5adc831bc72bfdc709d66f2bc68dbdc13670c62b7832f11eba6e1c463ab38", + "lines": 805, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_package_b.rs": { + "content_hash": "e00b5572eb5f2d0f5b2a128668f2e109598a73534c7df084869c90b43ba34840", + "lines": 289, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_7.rs": { + "content_hash": "48e11dfaa56f1b1f15ef4370098508f3028969f1a681c328ddb6543c49fc1135", + "lines": 396, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/fleet_ops.rs": { + "content_hash": "4018fc6ea23d2e1faec50b593ceadb32beaefc69a1bf76ef39e3c0c0bad3dbf7", + "lines": 422, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/ssh.rs": { + "content_hash": "e7bb315129a19f0cde6b1f62f0dbb48ec900f31d719affa4474ad1812dffe4a3", + "lines": 202, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_graph_core_2.rs": { + "content_hash": "02f18590f6d10e4b1d939241a15d9bac785ac865c4dd244ab4191b5500576f93", + "lines": 1041, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch_validate.rs": { + "content_hash": "940d3a0c38925dd9059f95f3398cb629347873ccaf2c3245cf911a1a2b182f6b", + "lines": 1143, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_hf_config.rs": { + "content_hash": "eb2abc98fdf184aea958e4c5868c7a0f967a227367465aaedd4ad7e992bdb546", + "lines": 373, + "functions": 24, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_validate_core_b.rs": { + "content_hash": "3df112f43b66f2612375b6abe8f737900c689d94c3982a88c75ee02930dd7b65", + "lines": 489, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_validate_core_1.rs": { + "content_hash": "c1ec0ef1de015b836d47a38cd392d304595682809b6f8abbeeea5e81a8142d05", + "lines": 804, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_4.rs": { + "content_hash": "17f18eefc5dd9b6f13a4e6173a4f78c90284e9b4f98b0d95038f4ef4d0fa8717", + "lines": 521, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_docker_b.rs": { + "content_hash": "0a11c4be71d555814a46be0622c4e4eec35dde6828a1efcae0c19dab8c274fa8", + "lines": 395, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/secrets.rs": { + "content_hash": "128f94dbc3f53c2a599e3c0b70b8efdca8b785b4d3303bfe07bead8a30a65ad6", + "lines": 201, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "src/mcp/tests_handlers.rs": { + "content_hash": "728f0143b27784c3eb680457f9664a4154a1af6a6662bc44e0abb06f699970b4", + "lines": 228, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_graph3.rs": { + "content_hash": "0964177398f72d99d5ea1f4a213a72dd48aad9df5a22c763d23440ef22e037c6", + "lines": 253, + "functions": 33, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_transport.rs": { + "content_hash": "c33ab3fd3cb1a5bfe41ffd3bfdd4ac703183e6fdfa303857a21aceb497216f7a", + "lines": 276, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_plan_1.rs": { + "content_hash": "ee8591122d1888f8a32f1424187ee7ea1750421a8d2ad71729357ad8dd54ca42", + "lines": 184, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_remaining_6.rs": { + "content_hash": "102b940279a20a22ba9708ccccc70260cbb63e747a363dd12a2d0b62c9a704c2", + "lines": 492, + "functions": 40, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_concurrent.rs": { + "content_hash": "d06fa49b373312851955fe8ac459c25ea1a833b9c29adfbc9fdb160e11bd5be0", + "lines": 356, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_package.rs": { + "content_hash": "d4b770875ea35b767d9c9a4d14e1a6bc544930f4414f48114f6dc11c1472f532", + "lines": 281, + "functions": 22, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_store_import.rs": { + "content_hash": "102b2669a47ca0cb3b214d03010604a50de4d039e80eb4e94b4ba2b92824c7a7", + "lines": 111, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/state/tests_encrypt.rs": { + "content_hash": "07bccfcf40e2b5ad38e718da89204a331512f0c74e8c13dce22e6864e30bc5ac", + "lines": 61, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/recipe/validation.rs": { + "content_hash": "ffaa1f188e22ad0d1fa3d77f17273174eddae18e8e62cdeef3cc7272b34a6dce", + "lines": 36, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/import_cmd.rs": { + "content_hash": "1aac0167c0c8c6a909b5725d36bb3fd5d92a67f1301fa69897be6117fe507246", + "lines": 295, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_diagnostics.rs": { + "content_hash": "fca182a3d1a07e39525cece8e8c450bbf6acf6c611e06c98d9db2dba73797794", + "lines": 578, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/tests_helpers.rs": { + "content_hash": "64bebc379fca0c0a1369309d939cc755d17120891ca79b3a9a99971cb7fce950", + "lines": 216, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_store_cache.rs": { + "content_hash": "bbc8884fec30a6b4be2c5cf2149d76613d22bc4cfe4d996bcd4f92a3d7669580", + "lines": 158, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/cache.rs": { + "content_hash": "b0a9420e9c7cad743ca5ee26f5b366e3f64a3599499f83e5dc8d7f526c2570ed", + "lines": 175, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/purity.rs": { + "content_hash": "be7d1125758a0e3432bd47eb70ebc52484130c0c556fd02d9397638aaf500790", + "lines": 113, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase81.rs": { + "content_hash": "ceeb1be347bdf90a1f6618d662a2ee711df8f8a7eb295889934b5374108f4858", + "lines": 289, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_notify_3.rs": { + "content_hash": "216bccf19aab69f190b04af25c296385f62577edc54028435be95a11066c2be7", + "lines": 474, + "functions": 51, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase91.rs": { + "content_hash": "fe1cf071401d8d2bdbb1229b8bc4dda46fc56537d1cb101079980bfc36a4b4fe", + "lines": 309, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/pepita/mod.rs": { + "content_hash": "352fa33729052c5810ec9130601b9a9be2e8209fd368f98431faa67d1b9abebd", + "lines": 218, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/sandbox.rs": { + "content_hash": "935b1ae7b717149c9f30c52e6859ac131dd16e0d25ededda34f1405405180873", + "lines": 184, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_fleet.rs": { + "content_hash": "1c0159832f389c93c2591da2ee366acf6256f9333c0025cdc581eb4e2f525207", + "lines": 526, + "functions": 51, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/drift/tests_basic_b.rs": { + "content_hash": "2a5e76b7562ab9156b12f478491a85958c43330dcd8907caaaa876a76177364c", + "lines": 355, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_includes.rs": { + "content_hash": "d112a8cd39fd0b4f6fc2fab1fe30ba65277f6a6bc48787c2560431abdbddcb7c", + "lines": 432, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_maturity.rs": { + "content_hash": "86d8871f6417999c5d028f68e3c8eb1a8b837c03d655b8fe91fe5775c4d60b8d", + "lines": 857, + "functions": 37, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/contract_scaffold.rs": { + "content_hash": "50996afc43ee2745591ce7b4ff9a3fb25ea0912354f21bed5a0802871357da84", + "lines": 80, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_validate_core.rs": { + "content_hash": "a5ab48338111aa7ee34630a1a0dd623d6cd650ed57cd04b4724c88abac46be67", + "lines": 507, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/lock_core.rs": { + "content_hash": "622ec568ae72b5bd9b6625776af10162ad9ac59d8c8a8d5d8577cd124dace853", + "lines": 453, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_counts.rs": { + "content_hash": "03cf2179bffbb3dd1c257375fab494bc5d968154375c543492c255fcd99b0f76", + "lines": 97, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_service.rs": { + "content_hash": "650c36e857b38efd8b572e3a91b19bed1bf5328d7af68080a5f4f4fb73ef3d38", + "lines": 421, + "functions": 30, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_parallel.rs": { + "content_hash": "f82bb8f72e4d6b25694ffeb7abaa01e6e77934ee96fd2b897ff6845fb18f6582", + "lines": 404, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_6.rs": { + "content_hash": "d66062ef8be94fefd1417d960a820e1f1adf09e2cb1410ada5d04a465cf66300", + "lines": 705, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase71.rs": { + "content_hash": "6f4a1d72e31d38a48ab0a78dd51638a39bb062d8e9cdef372efd051c655c0abe", + "lines": 279, + "functions": 24, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/gpu.rs": { + "content_hash": "d0ee4e02e497703403c3dfba64280886e5b4d0ee77164f2c1e7bce15b23293c6", + "lines": 196, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_validate3_c.rs": { + "content_hash": "9fd07efa885746790d5b0da5015a316ac1314ea36c23c6a81f5da3174a60d922", + "lines": 454, + "functions": 57, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_mount_b.rs": { + "content_hash": "0dd5ebc9614833d1502b0cabcb8b4c027b9b03da239a7015f2daede897b5d563", + "lines": 249, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/gpu_container_transport.rs": { + "content_hash": "d23eca486eb1020410cd6f894b19be747524b4552a22ebb07ce5b5e8fe03e84a", + "lines": 220, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_remaining_3.rs": { + "content_hash": "db47c0551191717e888422f39d498a0d91007c5eacbb1402db5a9561bff12c48", + "lines": 454, + "functions": 42, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/provider_exec.rs": { + "content_hash": "22bd322b3e15973153ef36478aaa44d5e01f8b09f40617154bae97860dd3f400", + "lines": 244, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/apply_output.rs": { + "content_hash": "a34f54cbc1a73ab2186d7e7d1faaa0fc8d8e0fdaf952f551aaab6200a47d6f8d", + "lines": 404, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_6_b.rs": { + "content_hash": "0ce4c32dfe507762fdacc944cf99a5522bb5f7cd8d80f37128307c3f6f95b46d", + "lines": 207, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_2.rs": { + "content_hash": "b299404221428f44c430c474ff6684c540df14375ce9b1b68d648bc864bf0dc8", + "lines": 426, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_intelligence.rs": { + "content_hash": "5e77edc6f71d2664eddb5d0231eea7a01170920d47241fb2246ac48edc0251fc", + "lines": 656, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_secret_scan.rs": { + "content_hash": "cc073b7a66b7a45c5db160d8c6f5cb20f0b9031ec777e36916d178bcde9eaf0f", + "lines": 263, + "functions": 27, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase107.rs": { + "content_hash": "e486299b14d73cd633bb447a4c25ad0e122c296dd1b7bc5d38ad973de7f6df69", + "lines": 225, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + } + }, + "coverage_required": [ + "src/core/tests_secrets.rs", + "src/core/recipe/tests_expansion.rs", + "src/core/recipe/tests_integration.rs", + "src/core/recipe/mod.rs", + "src/core/recipe/tests_validation.rs", + "src/core/recipe/validation.rs", + "src/core/recipe/types.rs", + "src/core/recipe/expansion.rs", + "src/core/recipe/validation_types.rs", + "src/core/mod.rs", + "src/core/scoring.rs", + "src/core/tests_scoring_b.rs", + "src/core/executor/strategies.rs", + "src/core/executor/tests_edge_record.rs", + "src/core/executor/tests_edge_apply.rs", + "src/core/executor/tests_advanced.rs", + "src/core/executor/mod.rs", + "src/core/executor/resource_ops.rs", + "src/core/executor/tests_converge2.rs", + "src/core/executor/tests_parallel.rs", + "src/core/executor/machine_wave.rs", + "src/core/executor/tests_filters.rs", + "src/core/executor/test_fixtures.rs", + "src/core/executor/tests_rolling.rs", + "src/core/executor/tests_waves.rs", + "src/core/executor/helpers.rs", + "src/core/executor/tests_localhost.rs", + "src/core/executor/tests_localhost2.rs", + "src/core/executor/tests_hooks.rs", + "src/core/executor/tests_drift.rs", + "src/core/executor/tests_converge.rs", + "src/core/executor/tests_core.rs", + "src/core/executor/tests_edge_details.rs", + "src/core/executor/tests_concurrent.rs", + "src/core/executor/machine.rs", + "src/core/parser/tests_misc_2b.rs", + "src/core/parser/tests_expansion.rs", + "src/core/parser/tests_arch.rs", + "src/core/parser/mod.rs", + "src/core/parser/tests_misc_2.rs", + "src/core/parser/tests_includes.rs", + "src/core/parser/resource_types.rs", + "src/core/parser/tests_validation.rs", + "src/core/parser/tests_misc.rs", + "src/core/parser/policy.rs", + "src/core/parser/includes.rs", + "src/core/parser/validation.rs", + "src/core/parser/tests_misc_3.rs", + "src/core/parser/expansion.rs", + "src/core/parser/tests_core.rs", + "src/core/parser/tests_triggers.rs", + "src/core/parser/recipes.rs", + "src/core/parser/tests_misc_4.rs", + "src/core/parser/tests_policy.rs", + "src/core/migrate.rs", + "src/core/planner/tests_when.rs", + "src/core/planner/tests_advanced.rs", + "src/core/planner/mod.rs", + "src/core/planner/tests_helpers.rs", + "src/core/planner/tests_hash.rs", + "src/core/planner/tests_lifecycle.rs", + "src/core/planner/tests_determine.rs", + "src/core/planner/tests_describe.rs", + "src/core/planner/tests_plan.rs", + "src/core/planner/tests_filter.rs", + "src/core/tests_purifier.rs", + "src/core/purifier.rs", + "src/core/resolver/resource.rs", + "src/core/resolver/mod.rs", + "src/core/resolver/tests_functions.rs", + "src/core/resolver/tests_helpers.rs", + "src/core/resolver/tests_dag.rs", + "src/core/resolver/tests_waves.rs", + "src/core/resolver/dag.rs", + "src/core/resolver/template.rs", + "src/core/resolver/data.rs", + "src/core/resolver/tests_data.rs", + "src/core/resolver/tests_template.rs", + "src/core/resolver/functions.rs", + "src/core/resolver/tests_proptest.rs", + "src/core/resolver/tests_resource.rs", + "src/core/state/tests_edge.rs", + "src/core/state/mod.rs", + "src/core/state/tests_helpers.rs", + "src/core/state/tests_process_lock.rs", + "src/core/state/tests_encrypt.rs", + "src/core/state/tests_basic.rs", + "src/core/tests_scoring.rs", + "src/core/secrets.rs", + "src/core/codegen/tests_completeness.rs", + "src/core/codegen/mod.rs", + "src/core/codegen/test_fixtures.rs", + "src/core/codegen/dispatch.rs", + "src/core/codegen/tests_coverage.rs", + "src/core/codegen/tests_dispatch.rs", + "src/core/conditions.rs", + "src/core/store/tests_sync_exec.rs", + "src/core/store/tests_lockfile.rs", + "src/core/store/convert.rs", + "src/core/store/conda.rs", + "src/core/store/gc.rs", + "src/core/store/tests_convert_exec.rs", + "src/core/store/tests_path.rs", + "src/core/store/store_diff.rs", + "src/core/store/sandbox_exec.rs", + "src/core/store/tests_pin_resolve.rs", + "src/core/store/tests_chunker.rs", + "src/core/store/mod.rs", + "src/core/store/tests_cache.rs", + "src/core/store/substitution.rs", + "src/core/store/far.rs", + "src/core/store/profile.rs", + "src/core/store/path.rs", + "src/core/store/tests_hf_config.rs", + "src/core/store/tests_sandbox.rs", + "src/core/store/secret_scan.rs", + "src/core/store/repro_score.rs", + "src/core/store/contract_scaffold.rs", + "src/core/store/pin_resolve.rs", + "src/core/store/tests_purity.rs", + "src/core/store/tests_substitution.rs", + "src/core/store/validate.rs", + "src/core/store/tests_profile.rs", + "src/core/store/tests_store_diff.rs", + "src/core/store/cache.rs", + "src/core/store/tests_convert.rs", + "src/core/store/sandbox.rs", + "src/core/store/contract_coverage.rs", + "src/core/store/tests_closure.rs", + "src/core/store/lockfile.rs", + "src/core/store/gc_exec.rs", + "src/core/store/meta.rs", + "src/core/store/tests_gc_exec.rs", + "src/core/store/chunker.rs", + "src/core/store/kernel_far.rs", + "src/core/store/tests_conda.rs", + "src/core/store/convert_exec.rs", + "src/core/store/pin_tripwire.rs", + "src/core/store/tests_derivation_exec.rs", + "src/core/store/tests_far.rs", + "src/core/store/tests_secret_scan.rs", + "src/core/store/provider_exec.rs", + "src/core/store/sync_exec.rs", + "src/core/store/purity.rs", + "src/core/store/tests_repro_score.rs", + "src/core/store/reference.rs", + "src/core/store/tests_provider.rs", + "src/core/store/tests_validate.rs", + "src/core/store/derivation_exec.rs", + "src/core/store/tests_contract_coverage.rs", + "src/core/store/tests_contract_scaffold.rs", + "src/core/store/hf_config.rs", + "src/core/store/tests_cache_exec.rs", + "src/core/store/tests_sandbox_run.rs", + "src/core/store/tests_pin_tripwire.rs", + "src/core/store/tests_derivation.rs", + "src/core/store/derivation.rs", + "src/core/store/sandbox_run.rs", + "src/core/store/tests_kernel_far.rs", + "src/core/store/tests_meta.rs", + "src/core/store/tests_reference.rs", + "src/core/store/cache_exec.rs", + "src/core/store/tests_sandbox_exec.rs", + "src/core/store/tests_gc.rs", + "src/core/store/tests_provider_exec.rs", + "src/core/store/tests_bash_provability.rs", + "src/core/store/closure.rs", + "src/core/store/provider.rs", + "src/core/tests_purifier_b.rs", + "src/core/types/resource.rs", + "src/core/types/mod.rs", + "src/core/types/tests_state.rs", + "src/core/types/policy.rs", + "src/core/types/config.rs", + "src/core/types/tests_config.rs", + "src/core/types/tests_resource.rs", + "src/core/types/state_types.rs", + "src/mcp/tests_handlers.rs", + "src/mcp/registry.rs", + "src/mcp/mod.rs", + "src/mcp/handlers.rs", + "src/mcp/tests_handlers_more.rs", + "src/mcp/types.rs", + "src/mcp/tests_registry.rs", + "src/cli/tests_misc_5.rs", + "src/cli/tests_phase71.rs", + "src/cli/tests_snapshot.rs", + "src/cli/status_drift_intel.rs", + "src/cli/tests_graph_core_2.rs", + "src/cli/graph_scoring.rs", + "src/cli/validate_maturity.rs", + "src/cli/validate_safety.rs", + "src/cli/status_resource_intel.rs", + "src/cli/status_operational.rs", + "src/cli/tests_misc_1_b.rs", + "src/cli/validate_resources.rs", + "src/cli/snapshot.rs", + "src/cli/tests_misc_9_b.rs", + "src/cli/graph_governance.rs", + "src/cli/drift.rs", + "src/cli/tests_diff_cmd.rs", + "src/cli/tests_phase79.rs", + "src/cli/tests_apply_10.rs", + "src/cli/tests_status_core_6.rs", + "src/cli/status_security.rs", + "src/cli/dispatch_notify.rs", + "src/cli/commands/mod.rs", + "src/cli/commands/misc_ops_args.rs", + "src/cli/commands/status_args.rs", + "src/cli/commands/validate_args.rs", + "src/cli/commands/misc_args.rs", + "src/cli/commands/plan_args.rs", + "src/cli/commands/lock_core_args.rs", + "src/cli/commands/apply_args.rs", + "src/cli/commands/state_args.rs", + "src/cli/commands/store_args.rs", + "src/cli/commands/lock_ops_args.rs", + "src/cli/commands/subcmd_args.rs", + "src/cli/commands/graph_args.rs", + "src/cli/tests_graph_core.rs", + "src/cli/tests_status_core_3_b.rs", + "src/cli/tests_misc_1.rs", + "src/cli/tests_infra.rs", + "src/cli/status_fleet_insight.rs", + "src/cli/tests_validate_core_2.rs", + "src/cli/tests_cov_validate3_d.rs", + "src/cli/tests_phase86.rs", + "src/cli/validate_advanced.rs", + "src/cli/tests_cov_status_1.rs", + "src/cli/dispatch_validate.rs", + "src/cli/tests_status_core_2.rs", + "src/cli/observe.rs", + "src/cli/score.rs", + "src/cli/tests_plan_file.rs", + "src/cli/lock_core.rs", + "src/cli/tests_graph_core_4.rs", + "src/cli/graph_impact.rs", + "src/cli/graph_transport.rs", + "src/cli/tests_validate_core_b.rs", + "src/cli/tests_status_core_5_b.rs", + "src/cli/validate_analytics.rs", + "src/cli/status_fleet.rs", + "src/cli/tests_cov_status_6.rs", + "src/cli/status_compliance.rs", + "src/cli/tests_status_core_8_b.rs", + "src/cli/tests_show_2.rs", + "src/cli/tests_cov_args_4.rs", + "src/cli/print_helpers.rs", + "src/cli/status_intelligence.rs", + "src/cli/dispatch_graph.rs", + "src/cli/tests_apply_9.rs", + "src/cli/tests_score.rs", + "src/cli/mod.rs", + "src/cli/tests_misc_2.rs", + "src/cli/tests_phase88.rs", + "src/cli/validate_quality.rs", + "src/cli/dispatch_misc.rs", + "src/cli/graph_extended.rs", + "src/cli/tests_cov_fleet_b.rs", + "src/cli/tests_show_1.rs", + "src/cli/tests_helpers_state.rs", + "src/cli/tests_phase77.rs", + "src/cli/tests_apply_11.rs", + "src/cli/status_alerts.rs", + "src/cli/validate_hygiene.rs", + "src/cli/status_diagnostics.rs", + "src/cli/tests_helpers.rs", + "src/cli/graph_lifecycle.rs", + "src/cli/tests_misc_6.rs", + "src/cli/tests_apply_1.rs", + "src/cli/store_pin.rs", + "src/cli/tests_misc_10.rs", + "src/cli/tests_check.rs", + "src/cli/tests_store_archive.rs", + "src/cli/store_import.rs", + "src/cli/tests_cov_notify.rs", + "src/cli/tests_status_core_5.rs", + "src/cli/tests_validate_core.rs", + "src/cli/graph_intelligence_ext.rs", + "src/cli/tests_workspace.rs", + "src/cli/validate_compliance.rs", + "src/cli/tests_apply_20.rs", + "src/cli/tests_cov_remaining_3.rs", + "src/cli/helpers_state.rs", + "src/cli/tests_cov_notify_2.rs", + "src/cli/graph_quality.rs", + "src/cli/store_archive.rs", + "src/cli/tests_cov_fleet.rs", + "src/cli/tests_lock_core.rs", + "src/cli/tests_graph_core_3.rs", + "src/cli/tests_cov_graph3_c.rs", + "src/cli/status_convergence.rs", + "src/cli/tests_cov_status_4.rs", + "src/cli/status_resources.rs", + "src/cli/tests_show.rs", + "src/cli/status_operational_ext.rs", + "src/cli/tests_cov_dispatch_3.rs", + "src/cli/history.rs", + "src/cli/graph_analysis.rs", + "src/cli/tests_cov_status_5.rs", + "src/cli/status_drift_intel2.rs", + "src/cli/test_fixtures.rs", + "src/cli/tests_cov_lock.rs", + "src/cli/tests_show_3.rs", + "src/cli/graph_weight.rs", + "src/cli/validate_paths.rs", + "src/cli/tests_cov_validate3_c.rs", + "src/cli/tests_cov_args.rs", + "src/cli/tests_cov_validate2_b.rs", + "src/cli/tests_graph_core_5.rs", + "src/cli/tests_apply_21.rs", + "src/cli/tests_cov_remaining_2.rs", + "src/cli/graph_cross.rs", + "src/cli/status_core.rs", + "src/cli/helpers.rs", + "src/cli/dispatch_status.rs", + "src/cli/tests_status_core_7.rs", + "src/cli/status_maturity.rs", + "src/cli/validate_compliance_ext.rs", + "src/cli/tests_phase94.rs", + "src/cli/tests_phase100.rs", + "src/cli/status_transport.rs", + "src/cli/store_cache.rs", + "src/cli/tests_phase99.rs", + "src/cli/tests_phase81.rs", + "src/cli/tests_cov_notify_3.rs", + "src/cli/tests_cov_args_2.rs", + "src/cli/tests_apply_18.rs", + "src/cli/tests_phase68.rs", + "src/cli/tests_phase106.rs", + "src/cli/tests_phase85.rs", + "src/cli/tests_status_queries.rs", + "src/cli/tests_status_core_1.rs", + "src/cli/tests_phase87.rs", + "src/cli/tests_phase65.rs", + "src/cli/tests_validate_core_3.rs", + "src/cli/status_resource_detail.rs", + "src/cli/tests_phase105.rs", + "src/cli/tests_misc.rs", + "src/cli/doctor.rs", + "src/cli/tests_apply_19.rs", + "src/cli/tests_cov_validate3_b.rs", + "src/cli/tests_phase90.rs", + "src/cli/tests_import_cmd.rs", + "src/cli/tests_phase83.rs", + "src/cli/tests_cov_status_2.rs", + "src/cli/tests_phase73.rs", + "src/cli/lock_lifecycle.rs", + "src/cli/status_failures.rs", + "src/cli/tests_phase59.rs", + "src/cli/tests_phase62.rs", + "src/cli/tests_phase96.rs", + "src/cli/tests_apply_3.rs", + "src/cli/tests_status_core_b.rs", + "src/cli/tests_phase98.rs", + "src/cli/tests_fleet_ops_1.rs", + "src/cli/tests_phase76.rs", + "src/cli/workspace.rs", + "src/cli/tests_misc_7_b.rs", + "src/cli/plan.rs", + "src/cli/tests_cov_dispatch_4.rs", + "src/cli/tests_misc_8.rs", + "src/cli/check.rs", + "src/cli/tests_phase82.rs", + "src/cli/tests_apply_7.rs", + "src/cli/tests_apply_5.rs", + "src/cli/tests_cov_status_4_c.rs", + "src/cli/status_recovery.rs", + "src/cli/graph_topology.rs", + "src/cli/status_insights.rs", + "src/cli/tests_phase72.rs", + "src/cli/tests_status_core_4_b.rs", + "src/cli/tests_status_core_4.rs", + "src/cli/fleet_ops.rs", + "src/cli/infra.rs", + "src/cli/validate_security.rs", + "src/cli/tests_store_import.rs", + "src/cli/apply_output.rs", + "src/cli/validate_structural.rs", + "src/cli/tests_phase91.rs", + "src/cli/tests_apply.rs", + "src/cli/tests_check_2.rs", + "src/cli/tests_status_core_10.rs", + "src/cli/tests_cov_transport_3.rs", + "src/cli/init.rs", + "src/cli/tests_phase95.rs", + "src/cli/tests_phase63.rs", + "src/cli/tests_phase66.rs", + "src/cli/tests_apply_15.rs", + "src/cli/tests_fleet_ops.rs", + "src/cli/apply_helpers.rs", + "src/cli/tests_cov_remaining_6.rs", + "src/cli/tests_cov_remaining.rs", + "src/cli/tests_phase84.rs", + "src/cli/tests_phase97.rs", + "src/cli/tests_cov_transport_2.rs", + "src/cli/validate_core.rs", + "src/cli/tests_phase67.rs", + "src/cli/graph_topology_ext.rs", + "src/cli/graph_analytics_ext.rs", + "src/cli/validate_ordering.rs", + "src/cli/graph_intelligence_ext2.rs", + "src/cli/tests_destroy.rs", + "src/cli/tests_fleet_reporting.rs", + "src/cli/tests_cov_dispatch_2.rs", + "src/cli/dispatch.rs", + "src/cli/dispatch_store.rs", + "src/cli/tests_phase89.rs", + "src/cli/tests_status_core_3.rs", + "src/cli/tests_validate_core_1.rs", + "src/cli/tests_helpers_time.rs", + "src/cli/tests_status_core_9.rs", + "src/cli/tests_store_convert.rs", + "src/cli/tests_cov_apply.rs", + "src/cli/graph_resilience_ext.rs", + "src/cli/validate_ordering_ext.rs", + "src/cli/tests_cov_status_3.rs", + "src/cli/tests_status_core_6_b.rs", + "src/cli/graph_intelligence.rs", + "src/cli/dispatch_notify_custom.rs", + "src/cli/tests_drift.rs", + "src/cli/tests_apply_23.rs", + "src/cli/tests_cov_args_3.rs", + "src/cli/tests_apply_16.rs", + "src/cli/tests_misc_3.rs", + "src/cli/validate_ownership.rs", + "src/cli/secrets.rs", + "src/cli/tests_cov_args_extra_b.rs", + "src/cli/status_counts.rs", + "src/cli/status_observability.rs", + "src/cli/helpers_time.rs", + "src/cli/tests_cov_graph2.rs", + "src/cli/lock_security.rs", + "src/cli/tests_apply_8.rs", + "src/cli/tests_cov_args_extra.rs", + "src/cli/tests_apply_6.rs", + "src/cli/tests_store_pin.rs", + "src/cli/tests_apply_2.rs", + "src/cli/tests_cov_remaining_7.rs", + "src/cli/graph_export.rs", + "src/cli/tests_cov_args_2_b.rs", + "src/cli/tests_phase101.rs", + "src/cli/graph_resilience.rs", + "src/cli/lock_merge.rs", + "src/cli/dispatch_status_ext.rs", + "src/cli/tests_apply_helpers.rs", + "src/cli/tests_check_1.rs", + "src/cli/validate_policy.rs", + "src/cli/tests_validate_core_2_b.rs", + "src/cli/tests_apply_12.rs", + "src/cli/tests_cov_remaining_8.rs", + "src/cli/status_intelligence_ext2.rs", + "src/cli/status_intelligence_ext.rs", + "src/cli/tests_doctor.rs", + "src/cli/tests_history.rs", + "src/cli/tests_validate_transport.rs", + "src/cli/status_quality.rs", + "src/cli/tests_status_core.rs", + "src/cli/validate_governance.rs", + "src/cli/graph_analytics.rs", + "src/cli/tests_cov_graph3.rs", + "src/cli/tests_destroy_1.rs", + "src/cli/tests_plan.rs", + "src/cli/tests_apply_17.rs", + "src/cli/status_cost.rs", + "src/cli/tests_observe.rs", + "src/cli/tests_cov_remaining_9.rs", + "src/cli/tests_print_helpers.rs", + "src/cli/status_resilience.rs", + "src/cli/dispatch_lock.rs", + "src/cli/graph_paths.rs", + "src/cli/tests_cov_misc2_b.rs", + "src/cli/status_fleet_detail.rs", + "src/cli/graph_visualization.rs", + "src/cli/status_drift.rs", + "src/cli/tests_cov_dispatch.rs", + "src/cli/tests_phase107.rs", + "src/cli/tests_phase74.rs", + "src/cli/diff_cmd.rs", + "src/cli/tests_cov_status_4_b.rs", + "src/cli/tests_cov_remaining_4.rs", + "src/cli/validate_governance_ext.rs", + "src/cli/validate_security_ext.rs", + "src/cli/tests_status_core_7_b.rs", + "src/cli/tests_apply_13.rs", + "src/cli/tests_phase104.rs", + "src/cli/tests_cov_misc2.rs", + "src/cli/tests_apply_6_b.rs", + "src/cli/status_queries.rs", + "src/cli/tests_phase60.rs", + "src/cli/destroy.rs", + "src/cli/status_trends.rs", + "src/cli/validate_transport.rs", + "src/cli/store_ops.rs", + "src/cli/tests_validate_core_1_b.rs", + "src/cli/tests_misc_5_b.rs", + "src/cli/validate_audit.rs", + "src/cli/tests_graph_core_b.rs", + "src/cli/tests_cov_transport.rs", + "src/cli/validate_topology.rs", + "src/cli/lint.rs", + "src/cli/fleet_reporting.rs", + "src/cli/import_cmd.rs", + "src/cli/tests_phase61.rs", + "src/cli/tests_cov_validate2.rs", + "src/cli/tests_cov_validate.rs", + "src/cli/status_analytics.rs", + "src/cli/lock_audit.rs", + "src/cli/tests_cov_status_7.rs", + "src/cli/validate_scoring.rs", + "src/cli/graph_advanced.rs", + "src/cli/status_operational_ext2.rs", + "src/cli/tests_misc_9.rs", + "src/cli/tests_status_core_2_b.rs", + "src/cli/tests_phase70.rs", + "src/cli/tests_cov_graph.rs", + "src/cli/graph_compliance.rs", + "src/cli/tests_graph_core_1.rs", + "src/cli/tests_phase64.rs", + "src/cli/status_health.rs", + "src/cli/graph_core.rs", + "src/cli/show.rs", + "src/cli/tests_init.rs", + "src/cli/status_predictive.rs", + "src/cli/tests_phase69.rs", + "src/cli/tests_phase103.rs", + "src/cli/tests_phase92.rs", + "src/cli/tests_cov_apply_b.rs", + "src/cli/tests_cov_remaining_5.rs", + "src/cli/validate_config_quality.rs", + "src/cli/tests_cov_notify_4.rs", + "src/cli/tests_apply_14.rs", + "src/cli/tests_phase78.rs", + "src/cli/tests_misc_4.rs", + "src/cli/dispatch_apply.rs", + "src/cli/tests_phase80.rs", + "src/cli/tests_store_ops.rs", + "src/cli/tests_phase102.rs", + "src/cli/tests_lock_core_1.rs", + "src/cli/graph_health.rs", + "src/cli/tests_plan_1.rs", + "src/cli/tests_graph_core_6.rs", + "src/cli/lock_ops.rs", + "src/cli/store_convert.rs", + "src/cli/tests_cov_validate3.rs", + "src/cli/tests_misc_7.rs", + "src/cli/tests_store_cache.rs", + "src/cli/tests_apply_4.rs", + "src/cli/tests_lint.rs", + "src/cli/tests_status_core_1_b.rs", + "src/cli/lock_repair.rs", + "src/cli/tests_status_core_8.rs", + "src/cli/tests_cov_validate2_c.rs", + "src/cli/validate_resilience.rs", + "src/cli/tests_cov_graph3_b.rs", + "src/cli/tests_phase75.rs", + "src/cli/apply.rs", + "src/cli/apply_variants.rs", + "src/cli/tests_apply_22.rs", + "src/main.rs", + "src/copia/mod.rs", + "src/transport/container.rs", + "src/transport/tests_dispatch_b.rs", + "src/transport/tests_ssh.rs", + "src/transport/tests_container_b.rs", + "src/transport/tests_container.rs", + "src/transport/mod.rs", + "src/transport/tests_container_c.rs", + "src/transport/pepita.rs", + "src/transport/ssh.rs", + "src/transport/tests_dispatch.rs", + "src/transport/tests_container_d.rs", + "src/transport/local.rs", + "src/resources/gpu.rs", + "src/resources/tests_user.rs", + "src/resources/mod.rs", + "src/resources/task.rs", + "src/resources/cron.rs", + "src/resources/pepita/mod.rs", + "src/resources/tests_file.rs", + "src/resources/tests_mount_b.rs", + "src/resources/mount.rs", + "src/resources/tests_docker.rs", + "src/resources/docker.rs", + "src/resources/user.rs", + "src/resources/tests_mount.rs", + "src/resources/model.rs", + "src/resources/network.rs", + "src/resources/tests_service.rs", + "src/resources/tests_docker_b.rs", + "src/resources/tests_file_b.rs", + "src/resources/file.rs", + "src/resources/tests_package.rs", + "src/resources/tests_package_b.rs", + "src/resources/package.rs", + "src/resources/tests_gpu.rs", + "src/resources/service.rs", + "src/lib.rs", + "src/tripwire/tests_anomaly.rs", + "src/tripwire/mod.rs", + "src/tripwire/anomaly.rs", + "src/tripwire/eventlog.rs", + "src/tripwire/drift/tests_fj036.rs", + "src/tripwire/drift/mod.rs", + "src/tripwire/drift/tests_lifecycle.rs", + "src/tripwire/drift/tests_edge_fj132_b.rs", + "src/tripwire/drift/tests_basic_b.rs", + "src/tripwire/drift/tests_edge_fj131.rs", + "src/tripwire/drift/tests_transport.rs", + "src/tripwire/drift/tests_edge_fj132.rs", + "src/tripwire/drift/tests_full.rs", + "src/tripwire/drift/tests_basic.rs", + "src/tripwire/tests_hasher_b.rs", + "src/tripwire/tests_eventlog_b.rs", + "src/tripwire/hasher.rs", + "src/tripwire/tests_eventlog.rs", + "src/tripwire/tracer.rs", + "src/tripwire/tests_hasher.rs", + "benches/core_bench.rs", + "benches/store_bench.rs", + "examples/mcp_server.rs", + "examples/multi_machine.rs", + "examples/arch_filtering.rs", + "examples/store_provider_import.rs", + "examples/parse_and_plan.rs", + "examples/store_executors.rs", + "examples/state_management.rs", + "examples/template_resolution.rs", + "examples/gpu_container_transport.rs", + "examples/blake3_hashing.rs", + "examples/full_stack_deploy.rs", + "examples/validation.rs", + "examples/codegen_scripts.rs", + "examples/resource_scripts.rs", + "examples/trace_provenance.rs", + "examples/anomaly_detection.rs", + "examples/score_cookbook.rs", + "examples/conda_to_far.rs", + "examples/store_reproducibility.rs", + "examples/recipe_expansion.rs", + "examples/container_transport.rs", + "examples/shell_purifier.rs", + "examples/event_logging.rs", + "examples/user_management.rs", + "examples/drift_detection.rs" + ], + "manifest_hash": "99a650ab781e4bf413ed4fe0e8a091a7b4d8bee31af3ebd0b07135a312c01d07" + }, + "thresholds": { + "min_coverage_pct": 95.0, + "min_per_file_coverage_pct": 95.0, + "max_tdg_regression": 0.0, + "max_function_complexity": 20, + "max_file_lines": 500, + "min_spec_score": 95, + "require_github_sync": true, + "require_spec_update": true, + "require_roadmap_update": true, + "block_on_new_satd": true, + "block_on_new_dead_code": true, + "require_lint_pass": true, + "max_fix_chain": 3, + "block_on_untested_variants": true, + "block_on_cross_crate_failure": false, + "block_on_regression": false, + "require_proof_verification": false, + "max_sorry_count": 0, + "min_theorem_coverage": 0.0, + "block_on_file_size": true + }, + "claims": [ + { + "hypothesis": "All baseline files still exist", + "falsification_method": "ManifestIntegrity", + "evidence_required": { + "FileList": [] + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "The falsifier is active and detecting (Meta-Check)", + "falsification_method": "MetaFalsification", + "evidence_required": { + "CounterExample": { + "details": "" + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "No coverage exclusion gaming", + "falsification_method": "CoverageGaming", + "evidence_required": { + "FileList": [] + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "All changed lines are covered", + "falsification_method": "DifferentialCoverage", + "evidence_required": { + "NumericComparison": { + "actual": 0.0, + "threshold": 100.0 + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "Total coverage >= 95%", + "falsification_method": "AbsoluteCoverage", + "evidence_required": { + "NumericComparison": { + "actual": 0.0, + "threshold": 95.0 + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "TDG score >= baseline", + "falsification_method": "TdgRegression", + "evidence_required": { + "NumericComparison": { + "actual": 0.0, + "threshold": 0.0 + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "No function exceeds complexity 20", + "falsification_method": "ComplexityRegression", + "evidence_required": { + "NumericComparison": { + "actual": 0.0, + "threshold": 20.0 + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "No vulnerable dependencies added", + "falsification_method": "SupplyChainIntegrity", + "evidence_required": { + "CounterExample": { + "details": "" + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "No file exceeds 500 lines", + "falsification_method": "FileSizeRegression", + "evidence_required": { + "NumericComparison": { + "actual": 0.0, + "threshold": 500.0 + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "Spec & Roadmap Quality", + "falsification_method": "SpecQuality", + "evidence_required": { + "NumericComparison": { + "actual": 0.0, + "threshold": 95.0 + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "All changes pushed", + "falsification_method": "GitHubSync", + "evidence_required": { + "GitState": { + "unpushed_commits": 0, + "dirty_files": 0 + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "All examples compile and run", + "falsification_method": "ExamplesCompile", + "evidence_required": { + "CounterExample": { + "details": "" + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "pmat-book validation passes", + "falsification_method": "BookValidation", + "evidence_required": { + "CounterExample": { + "details": "" + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "No new SATD markers (TODO/FIXME/HACK)", + "falsification_method": "SatdDetection", + "evidence_required": { + "FileList": [] + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "No new dead code introduced", + "falsification_method": "DeadCodeDetection", + "evidence_required": { + "FileList": [] + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "All files have >= 95% coverage", + "falsification_method": "PerFileCoverage", + "evidence_required": { + "FileList": [] + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "make lint passes", + "falsification_method": "LintPass", + "evidence_required": { + "BooleanCheck": false + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "All match arm variants have test coverage", + "falsification_method": "VariantCoverage", + "evidence_required": { + "FileList": [] + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "No fix-after-fix chains exceed limit", + "falsification_method": "FixChainLimit", + "evidence_required": { + "NumericComparison": { + "actual": 0.0, + "threshold": 3.0 + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "Cross-crate integration tests pass", + "falsification_method": "CrossCrateParity", + "evidence_required": { + "BooleanCheck": false + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "No performance regressions detected", + "falsification_method": "RegressionGate", + "evidence_required": { + "NumericComparison": { + "actual": 0.0, + "threshold": 0.0 + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "No incomplete proofs (sorry) introduced", + "falsification_method": "FormalProofVerification", + "evidence_required": { + "NumericComparison": { + "actual": 0.0, + "threshold": 0.0 + } + }, + "result": null, + "override_info": null + } + ], + "profile": "Pmat", + "require": [ + { + "id": "require.compiles", + "kind": "Require", + "description": "Project builds successfully", + "falsification_method": "ManifestIntegrity", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "require.tests_exist", + "kind": "Require", + "description": "At least one test exists", + "falsification_method": "MetaFalsification", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "require.manifest_integrity", + "kind": "Require", + "description": "FileManifest anti-gaming check", + "falsification_method": "ManifestIntegrity", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "require.meta_falsification", + "kind": "Require", + "description": "Falsifier self-check active", + "falsification_method": "MetaFalsification", + "threshold": null, + "blocking": true, + "source": "Default" + } + ], + "ensure": [ + { + "id": "ensure.tests_pass", + "kind": "Ensure", + "description": "All tests pass", + "falsification_method": "MetaFalsification", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.git_sync", + "kind": "Ensure", + "description": "All changes pushed to remote", + "falsification_method": "GitHubSync", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.no_regression", + "kind": "Ensure", + "description": "No previously-passing test now fails", + "falsification_method": "MetaFalsification", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.coverage", + "kind": "Ensure", + "description": "Coverage >= 95%", + "falsification_method": "AbsoluteCoverage", + "threshold": { + "Numeric": { + "metric": "coverage_pct", + "op": "Gte", + "value": 95.0 + } + }, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.differential_coverage", + "kind": "Ensure", + "description": "Changed lines must be covered", + "falsification_method": "DifferentialCoverage", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.supply_chain", + "kind": "Ensure", + "description": "No vulnerable dependencies", + "falsification_method": "SupplyChainIntegrity", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.examples_compile", + "kind": "Ensure", + "description": "All examples compile and run", + "falsification_method": "ExamplesCompile", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.tdg_regression", + "kind": "Ensure", + "description": "TDG score >= baseline", + "falsification_method": "TdgRegression", + "threshold": { + "Delta": { + "metric": "tdg_score", + "op": "Gte", + "value": 0.0 + } + }, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.coverage_gaming", + "kind": "Ensure", + "description": "No coverage exclusion gaming", + "falsification_method": "CoverageGaming", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.spec_quality", + "kind": "Ensure", + "description": "Spec score meets threshold", + "falsification_method": "SpecQuality", + "threshold": { + "Numeric": { + "metric": "spec_score", + "op": "Gte", + "value": 95.0 + } + }, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.book_validation", + "kind": "Ensure", + "description": "pmat-book validation passes", + "falsification_method": "BookValidation", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.per_file_coverage", + "kind": "Ensure", + "description": "All files >= 95% coverage", + "falsification_method": "PerFileCoverage", + "threshold": { + "Numeric": { + "metric": "per_file_coverage_pct", + "op": "Gte", + "value": 95.0 + } + }, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.variant_coverage", + "kind": "Ensure", + "description": "All match arm variants tested", + "falsification_method": "VariantCoverage", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.cross_crate_parity", + "kind": "Ensure", + "description": "Cross-crate integration tests pass", + "falsification_method": "CrossCrateParity", + "threshold": null, + "blocking": false, + "source": "Default" + } + ], + "invariant": [ + { + "id": "invariant.compiles", + "kind": "Invariant", + "description": "Project compiles at every checkpoint", + "falsification_method": "ManifestIntegrity", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "invariant.file_size", + "kind": "Invariant", + "description": "No file exceeds 500 lines", + "falsification_method": "FileSizeRegression", + "threshold": { + "Numeric": { + "metric": "max_file_lines", + "op": "Lte", + "value": 500.0 + } + }, + "blocking": true, + "source": "Default" + }, + { + "id": "invariant.lint", + "kind": "Invariant", + "description": "cargo clippy passes", + "falsification_method": "LintPass", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "invariant.complexity", + "kind": "Invariant", + "description": "No function exceeds complexity 20", + "falsification_method": "ComplexityRegression", + "threshold": { + "Numeric": { + "metric": "max_complexity", + "op": "Lte", + "value": 20.0 + } + }, + "blocking": true, + "source": "Default" + }, + { + "id": "invariant.satd", + "kind": "Invariant", + "description": "No new SATD markers", + "falsification_method": "SatdDetection", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "invariant.dead_code", + "kind": "Invariant", + "description": "No new dead code introduced", + "falsification_method": "DeadCodeDetection", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "invariant.fix_chain", + "kind": "Invariant", + "description": "Fix-after-fix chains within limit", + "falsification_method": "FixChainLimit", + "threshold": { + "Numeric": { + "metric": "fix_chain_count", + "op": "Lte", + "value": 3.0 + } + }, + "blocking": true, + "source": "Default" + } + ], + "excluded_claims": [], + "iteration": 1, + "inherited_postconditions": [], + "contract_quality": { + "active_claims": 25, + "applicable_claims": 25, + "score": 1.0, + "rating": "Full" + } +} \ No newline at end of file diff --git a/.pmat-work/PMAT-025/contract.json b/.pmat-work/PMAT-025/contract.json new file mode 100644 index 00000000..aa127ef2 --- /dev/null +++ b/.pmat-work/PMAT-025/contract.json @@ -0,0 +1,5785 @@ +{ + "version": "5.0", + "work_item_id": "PMAT-025", + "created_at": "2026-03-02T15:46:08.475446322Z", + "baseline_commit": "4c598c33527b1dc6edb23688321a993737b51fcc", + "baseline_tdg": 0.0, + "baseline_coverage": 0.0, + "baseline_rust_score": 0.0, + "baseline_file_manifest": { + "files": { + "src/cli/tests_phase79.rs": { + "content_hash": "583375143149ffeb8915a78e7db0cd28738fd9c1fc5769cb620471a90a7c6dcc", + "lines": 289, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_check_1.rs": { + "content_hash": "c973bc13a84441411cb93e5fd8321693edab02f864f5e042455f368cb350c0a1", + "lines": 482, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_1_b.rs": { + "content_hash": "d284dc840647a1e7cab3b623de997d50a3263d31ae77db2939044b18a7b096b9", + "lines": 474, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_destroy.rs": { + "content_hash": "ea1504b5a4cf522a8231e2751484ce9ddba9155fbc0efa29c74f38cc5b7e4941", + "lines": 374, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/container_transport.rs": { + "content_hash": "03a9a741dbcb05d75a335dd97099bbcb2021d3b7badd7cec506d15202868b370", + "lines": 120, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/tests_dispatch_b.rs": { + "content_hash": "b198ec9a4f125510c39152ba9dd89b831861c481ea5d387a987171a7d88c04c7", + "lines": 309, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_4_b.rs": { + "content_hash": "b7d3a7a8f368bf6584a0d85fc9da929de145f1f5900bf30202a16af31b0a4f3a", + "lines": 476, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_status_1.rs": { + "content_hash": "6bec4145c05fa7caaa3d05fdf3515f0782120a8385406fce9df4f4a3c09cd896", + "lines": 467, + "functions": 65, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_advanced.rs": { + "content_hash": "67ed06aaadd80dfd88bebac0074a53446643ab1885cb62fdc3a31b750fb9dbaa", + "lines": 372, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_convert.rs": { + "content_hash": "1559a180fa06b8ddf219469771feadd18f677cd82cdf489331ba3f84dc282300", + "lines": 173, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_derivation_exec.rs": { + "content_hash": "4b5ee332750b330d1dec8780e7ca966c9d59b0ce17db88a4e0e946fccb94ec6c", + "lines": 281, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_failures.rs": { + "content_hash": "e74487d76644f9f54e751d50cd25018b0339d5b274c12a6a051d7f37269313e7", + "lines": 390, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch_lock.rs": { + "content_hash": "70b1939da69b07e59f06de53245eff579b01a5a24d775168355cadaf71a1e11a", + "lines": 162, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/recipe/tests_validation.rs": { + "content_hash": "61a0c94cfe03eb4f564a727aa353bac5c17c02795165714c76cebb9b4e57ea5a", + "lines": 434, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/doctor.rs": { + "content_hash": "ff075849846d7cf2678962e124a8ec7d24b3f842ad9282193d05b1f7e83c1bd3", + "lines": 447, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_arch.rs": { + "content_hash": "940ec9891e074aa9fd5d4805cacba1d4c7b0d269c952d37ebfc9aba403f3f26b", + "lines": 152, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/purifier.rs": { + "content_hash": "baa6efd98650a7215e3625953387dee9e5dd2124122d2bdcdc5000da2200c967", + "lines": 91, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_advanced.rs": { + "content_hash": "aa590017de84e89d21e22efdecf1d440d2b7ac635bb710769779c6b2955e21d6", + "lines": 551, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/mcp_server.rs": { + "content_hash": "b7126d57d09e74f70c23893061f14c2d061bb44f631451544776b412e52d0a98", + "lines": 53, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_transport.rs": { + "content_hash": "e6020dc225f3929dbf93a9fa1c4abc21bc9b5c0fe089f62c1e0772014bfec906", + "lines": 208, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/store_cache_protocol.rs": { + "content_hash": "e5dadaf2f46a18ca3e6d87c33d85aeac88143a65b406d196220f349109d14778", + "lines": 177, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_analytics.rs": { + "content_hash": "8190e30cea38bb3474e443956876f16a86b1b6670f8b7adf1ace5e5745f99b05", + "lines": 450, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_9_b.rs": { + "content_hash": "3a831a32ac2c14170211c76398f8ca81dda570c83f38df1e7ce7cafc5e3bae24", + "lines": 206, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/lock_lifecycle.rs": { + "content_hash": "1a130f12406efe0f6b2b2fbd421fdd729e31df031526144625fa8fe8529848d1", + "lines": 183, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/store_reproducibility.rs": { + "content_hash": "e1fd38b2cc2ade0444e77a0a2d7310b7ca0d2554f9db3ae5ff1753bbc8ddd969", + "lines": 450, + "functions": 19, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_remaining_5.rs": { + "content_hash": "67ff6948936e96d24450ec9fd9a80dcba42f9949406834c38922b4ae89286d88", + "lines": 475, + "functions": 37, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch_notify.rs": { + "content_hash": "11d85393b6340e2410ee2de725015ca7e5779a45570d973fcf24b9a3a18e4fe4", + "lines": 728, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_plan_1.rs": { + "content_hash": "ee8591122d1888f8a32f1424187ee7ea1750421a8d2ad71729357ad8dd54ca42", + "lines": 184, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/convert_exec.rs": { + "content_hash": "95e217ec1fb25190a3dbf55136ef9ff656e46991df733599b93fab3bdc06861b", + "lines": 180, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_2.rs": { + "content_hash": "7f31373720dd7f00b8b0cfc724d9c0eb4ff9cb93c8172527b3899862e2d475bc", + "lines": 707, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc.rs": { + "content_hash": "f02bd71207dcab0fe85ea7441c1fd9b931aebae6e582ccdca5124707c38b35d4", + "lines": 436, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/plan.rs": { + "content_hash": "5bf39e0a42f93bb8d2f7421ce84fbd4d3689bb9573947f04a3edca3ccf85cb8e", + "lines": 399, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase105.rs": { + "content_hash": "125e47bdfb4e5632a1352a9f73348469d2a113c4dff77b4ae71919315fd0c640", + "lines": 206, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_core.rs": { + "content_hash": "6b23213ebaebf35c315cc8c8b6b36d574434ec9561e378484c287df2ad967f09", + "lines": 378, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/chunker.rs": { + "content_hash": "27d30c5d66393e4c48bf395abe4149e2047aefbb246833baa974b1820adcb437", + "lines": 140, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_localhost.rs": { + "content_hash": "954988f33b820310b58963906a52d14efb39fa171ccdce0d5d845e96526d30ca", + "lines": 334, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/types/tests_state.rs": { + "content_hash": "dd2a188c375b0154f75dec150a2cf75406c52e50eae968c3b467146aedef7af5", + "lines": 282, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_check.rs": { + "content_hash": "8feb321d977d51fbfcbef8a625c807ddb8fd7c32c56c45bb712ab39423578c64", + "lines": 461, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_1.rs": { + "content_hash": "f5ddacf24be97d134f24e95a58e5f1300c3082766da76ad935e1c7e51fc58b77", + "lines": 701, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/lock_core_args.rs": { + "content_hash": "273fd1b5632fc1d2d997ccd6f3b94aea533dd79c2845ebe5abdb246aa7769c80", + "lines": 254, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_5.rs": { + "content_hash": "1ee9123ad83ec56284041bdc2e895062a51b76ef3fd764d0a72a64adbfacbbd7", + "lines": 703, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/validate_args.rs": { + "content_hash": "32835cd4dd4e68473c6129851893b5f0a099d01eb8848c2b3a00fe18325db0b5", + "lines": 494, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_4.rs": { + "content_hash": "17f18eefc5dd9b6f13a4e6173a4f78c90284e9b4f98b0d95038f4ef4d0fa8717", + "lines": 521, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/resource_ops.rs": { + "content_hash": "276472b0a55ffda06dd7a201f583affd113ae6cd5f191f7f0f879650ac1b8134", + "lines": 403, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_destroy_1.rs": { + "content_hash": "3c0d589f84c8a17e42522d5b8be25e711f6344fedb9b7ce31ada530b64ef7f2d", + "lines": 257, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase68.rs": { + "content_hash": "c0484108b3b14c22a09b33edec63ae0643cd1fa2f18068a72f57ca7d172d8468", + "lines": 209, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/history.rs": { + "content_hash": "b71f21a1943143a0694336ed32053d28a4bea1275320430367ba14fa3e64977b", + "lines": 268, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/types/state_types.rs": { + "content_hash": "77c870181340cd507179ef384395887fc0b16b2c9cd5c1ebbbfe920576174ba8", + "lines": 298, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/codegen/test_fixtures.rs": { + "content_hash": "3efa8147df7d4144bdabb3ea06f747bc99c10d77ff6f78b5e405342c5724a99d", + "lines": 331, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_waves.rs": { + "content_hash": "982bf7d6f02720c27869d8e00dfd8eb3868b492a65bac78750eedbaf380ddbbd", + "lines": 459, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/helpers_state.rs": { + "content_hash": "b97c0209fda99a616045bc2553747a1eaf61a365df9d4436d5fd52119094f234", + "lines": 114, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/apply_output.rs": { + "content_hash": "a34f54cbc1a73ab2186d7e7d1faaa0fc8d8e0fdaf952f551aaab6200a47d6f8d", + "lines": 404, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/contract_coverage.rs": { + "content_hash": "5daf03a49c3624a4792586195749e18090ccf6d639732dd32efcfc1dd0b59b2e", + "lines": 122, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_health.rs": { + "content_hash": "967ada2de2f50e004169e6e3dfbc2b75807fd3adecdbe8ada6da3ca827a51172", + "lines": 403, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/mcp/registry.rs": { + "content_hash": "75647eabf9f4d7b78af10988944732a965bec55d05593469767749cd3d54866f", + "lines": 244, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_diff_cmd.rs": { + "content_hash": "e57e4cd9dc1058e813d4dc380a24eab862caa0758b90fcad6d828ce195ee13e5", + "lines": 497, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_safety.rs": { + "content_hash": "6808aa310a9f54ffe84bf5653e735a0ad600c608a907851396bf8c075d52c9cc", + "lines": 495, + "functions": 22, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/diff_cmd.rs": { + "content_hash": "aeca8eb5893d02c7ec86beb7eb0c2f5708d34c497f74ae33047c5d9133ce2a24", + "lines": 378, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/template.rs": { + "content_hash": "bb4feaae6011fc97fa6a3444be4ca14a2b32d30bc1da14700669e3066c2d35c7", + "lines": 105, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_alerts.rs": { + "content_hash": "5c22a3e00b7ba28ba72eafefabc0e7450e12428873514882f634d0ec56ce8127", + "lines": 377, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_6.rs": { + "content_hash": "22c4fa186d85c509e018a731fd3ccdea1d2ae83cd9152786fbda97376fd55c68", + "lines": 401, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/helpers.rs": { + "content_hash": "8d2c8e5bf247190920e2d8672061d6e3175f74153bb6556d2bbbda48cfff9a64", + "lines": 227, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/tests_scoring.rs": { + "content_hash": "7a4fddcf8dc5af786a9dbe5148c85780476095ce1c582b13e4cf2f864d017062", + "lines": 367, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/status_args.rs": { + "content_hash": "b2df8deccc2c8cd18bb80be47098e390cb5dbf7cd6a16c74163be10113c56180", + "lines": 676, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/state_args.rs": { + "content_hash": "6cc54d6c4a4cff4af87c3b3abe9772c5ce5be1e2ea9647f5c6f8f72350097dcc", + "lines": 53, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase62.rs": { + "content_hash": "6f95ab39861fa1e10e27bd13cc4bae119d295cd71df5f20f2e8e6a1d3f725603", + "lines": 194, + "functions": 19, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase83.rs": { + "content_hash": "9234ec3986faf13c9d6bd8fe87076bb84caab479f5be32081d2b50e7d74b963d", + "lines": 289, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/planner/tests_determine.rs": { + "content_hash": "518d489ffb309fa04912d0603043e3a493a8dd735d627d930d2dafa8e267a504", + "lines": 159, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_quality.rs": { + "content_hash": "28bbc55f377fe73d85db97f42ae7d594ba94ebd2885c2dfe60b640ae93f65fc9", + "lines": 685, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/drift/tests_full.rs": { + "content_hash": "9c60bf9ae7deb70447f2ee2c8caebe6f0f2edfafe2965f4e7c59add1fd83ad87", + "lines": 455, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_converge.rs": { + "content_hash": "c714edb89b5d6c1a1f63e42aab552d00fc1dfe4c523a43f514862c6c8f3d8320", + "lines": 339, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_remaining_8.rs": { + "content_hash": "c08ba05a5d14178049fc610d8bed82023ae2f09ba65b276812c6c6df1431e7da", + "lines": 486, + "functions": 45, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/machine_wave.rs": { + "content_hash": "64b36b0379cd03bbed53ef07d45f7c1dcd8681a58ff7a8fdac5b08fc40bf029a", + "lines": 210, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/derivation.rs": { + "content_hash": "855ef7ff60508ae454f11cda81341dacf9e9f8081c6da2a07dc9adb8f71d98af", + "lines": 209, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_intelligence_ext2.rs": { + "content_hash": "f1d0f601b3f665c3dc7dc2314caf87827e1ac030ddf81de17aad5e156b307ff6", + "lines": 624, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_graph.rs": { + "content_hash": "d6324c03b4c5dcf421b9d0a587e46c4ddd47629af49d78a4ef5351471ce7b727", + "lines": 335, + "functions": 53, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/parse_and_plan.rs": { + "content_hash": "e02dd5813db8ce9426d3038a24a8cbd129e753de4e57630fbaa872b686c7a10b", + "lines": 95, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_maturity.rs": { + "content_hash": "efe035a279d4f04b37e591a91b8b4cf96ce24185fafeb5e967b2a0cff197074e", + "lines": 500, + "functions": 26, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_args_2_b.rs": { + "content_hash": "0738bf02be170c9d3e3e2d41c1a1ce191e7fa56431c68afc9459427c35b02c1f", + "lines": 161, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/cron.rs": { + "content_hash": "484d9fd86bd6cc757e67bd4a7b8eeb0f3a8efd9f1a2550414382c8c43a9d3b3f", + "lines": 464, + "functions": 32, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/drift/tests_basic.rs": { + "content_hash": "72e4c5883d2c4806dbeaa8ad813c81a7907bac78e696f353897f47343d83412d", + "lines": 325, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/mcp/handlers.rs": { + "content_hash": "b3f3ba304fa11f48ee3077275ac09caa416279ee0ce7f5a6cab754f428ee4979", + "lines": 491, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/tests_proptest.rs": { + "content_hash": "0eb89718248287a3dfe83e3adb93336309e3831ae0d267cc00b660d9b06e7889", + "lines": 76, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_args_extra_b.rs": { + "content_hash": "99a22cd37a5d03d14d7d61e1da4c41677c3c46a45480c43267aa657134d74bdd", + "lines": 420, + "functions": 41, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/user.rs": { + "content_hash": "94af7591c2ddfc0d695c7055344f255a15e8e7c11e805c5222f6ae6df8b4524f", + "lines": 141, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_bash_provability.rs": { + "content_hash": "fb5b01227d3d1ebf0c4b2b25a9585c3a3314a1dc8e3bb3917bff8ef1c7b6072a", + "lines": 137, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/mod.rs": { + "content_hash": "3534660afbd68852179095bcc91c867aec2e4c43c5a8567ae7ff5a5963553a99", + "lines": 587, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_misc_2b.rs": { + "content_hash": "d5b42c215c27b1e08c7756f65bb265500ba10cd24bed9da74ed294ce1cde1ba7", + "lines": 452, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_transport_3.rs": { + "content_hash": "5db5283ea634c9728bf749c2a68817a5460d41466c4128cea901d7e833dfc87e", + "lines": 496, + "functions": 29, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_plan.rs": { + "content_hash": "5aea601bb36efb618cf588cf6b9e5b0bf6d21064478d68de5b8f7571aea43f5c", + "lines": 475, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/tests_dag.rs": { + "content_hash": "2c13befc9e3d19724bd66f98f9851c85bc9ffad3db5bc12949a471f5be8924cc", + "lines": 287, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_structural.rs": { + "content_hash": "cb2f78d1e49b5d1500240a9ffd4cfa464e4130a810b8fc86ec989160cd044c9e", + "lines": 486, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase74.rs": { + "content_hash": "769ca19a23eeea8da2e900c8ab4dca4d1ffcfd0b29c03f9133b8396ef000131a", + "lines": 281, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/anomaly.rs": { + "content_hash": "239d090e52456c1d1579249311e148080231cd73796da9db0bf333f2fbb0bbf3", + "lines": 331, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_diagnostics.rs": { + "content_hash": "fca182a3d1a07e39525cece8e8c450bbf6acf6c611e06c98d9db2dba73797794", + "lines": 578, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_helpers.rs": { + "content_hash": "f2c5aee07158277b5539833a90498b0755ffe6f1c50d16256a3f0989016bc7b5", + "lines": 150, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_pin_resolve.rs": { + "content_hash": "596670544d1060d16071fcafd8d4e54ee634df83a3d4497145b0206eb29e1446", + "lines": 210, + "functions": 28, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_store_pin.rs": { + "content_hash": "9b1688c31c9ef9884c5450f1b704d487514270fc5f94ade48a1b4e8cade08a4b", + "lines": 178, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_5.rs": { + "content_hash": "824b0d8f75706dbcd9fa8c3b8de4bd7a8d23b17de16c64b462c4fa242d8dcc06", + "lines": 395, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_trends.rs": { + "content_hash": "64ba6ab06691fb40befafabba07c1ca9f42ef1b040dd8a5fc6949d7a03bd9aef", + "lines": 412, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/store_pin_resolve.rs": { + "content_hash": "2ec6dfb445ef7c6d801139db58f6282a1c506dce46001a42dba4f8ed14e166a0", + "lines": 116, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_weight.rs": { + "content_hash": "67e5cd261fd46b776e6f950d280ec214968c66ceb74a0a906f03327791b9af44", + "lines": 410, + "functions": 28, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_5_b.rs": { + "content_hash": "ae7798e2a3827d2d0946147ea00340787a86e191f15d4b98237d7b4bdd74b75c", + "lines": 207, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_ordering.rs": { + "content_hash": "2e61e35656794b31f7833e65bbe6d59235080a09d4f459242812096e7432f856", + "lines": 675, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/planner/tests_lifecycle.rs": { + "content_hash": "011ee350e3430b19f9132cdf7b8a760c3e5ff254697a5d5c04abfa2d7ea2746f", + "lines": 224, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_includes.rs": { + "content_hash": "d112a8cd39fd0b4f6fc2fab1fe30ba65277f6a6bc48787c2560431abdbddcb7c", + "lines": 432, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_8_b.rs": { + "content_hash": "9d0b1701b10b92390265cf41b623c1234fafd0e600e7fedb75a70a73de503993", + "lines": 474, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/init.rs": { + "content_hash": "b57d142b97eea723fc121ee587788acfd990a51e9422c82d3ee785b2fdb0d2c9", + "lines": 248, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/cache.rs": { + "content_hash": "b0a9420e9c7cad743ca5ee26f5b366e3f64a3599499f83e5dc8d7f526c2570ed", + "lines": 175, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_conda.rs": { + "content_hash": "5207a8413f19d7d566942ea05c1b24b717e9273ae0da195c95e8fc4dd68e186b", + "lines": 318, + "functions": 19, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/observe.rs": { + "content_hash": "b9dcc21216e088cebd16c810444f8fd4534ee871fb5097886a30e14f62b83e71", + "lines": 363, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/mod.rs": { + "content_hash": "d6f20aeacf53c77365727163bc1ba6263497103933a855622e5465ded5bd8891", + "lines": 42, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase106.rs": { + "content_hash": "ab55ebf79c9fc973a5a13a5bc5836d5690ad4f085c37fcf797aace755acfea91", + "lines": 207, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_lint.rs": { + "content_hash": "5cb83f7f55532c360a592d010ae54ea7f35787782a84aa139281154a04bba24b", + "lines": 196, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/policy.rs": { + "content_hash": "1d649aa9ec5345b621a76ea085fba62cae11b53987b1986c7bef281d1c0a49bf", + "lines": 106, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_converge2.rs": { + "content_hash": "7687b3a9b2fadbb90b1b12c193058eb20f332f8b79000265df647d579eb41d30", + "lines": 325, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/includes.rs": { + "content_hash": "316b75cb0f563a0b3df5e4e18fb2e5a47283f5b73544559bee00e293f58a117a", + "lines": 51, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase66.rs": { + "content_hash": "0d4492c526b77f8aa5d53713e6a1ef457a203f56bd8742765463fea2cd702256", + "lines": 204, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/secret_scan.rs": { + "content_hash": "6845f4704ed66bd435c620e0dd83b5e3f8bacb65571ee33d76ec9e16d9a89e5b", + "lines": 200, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/container.rs": { + "content_hash": "45a546877c6bdbd441e67802d0eae4567010e93f57f048487a15c690b71c234d", + "lines": 168, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_docker.rs": { + "content_hash": "d9dfa934ac8c8bfff1a3761cf5e0b4520fab47fe3f2996b2b10911788bd874fc", + "lines": 285, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase91.rs": { + "content_hash": "fe1cf071401d8d2bdbb1229b8bc4dda46fc56537d1cb101079980bfc36a4b4fe", + "lines": 309, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/planner/tests_when.rs": { + "content_hash": "7d781ca2803bccc31c5a5e4602b67933f9aa421dd2e9f70fa4b5c32eddf38d70", + "lines": 103, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/planner/tests_hash.rs": { + "content_hash": "fa0a25c1be61ccf3f6830d992e536963e5be7dedfd6fbed0980df66e659ba8df", + "lines": 503, + "functions": 26, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_19.rs": { + "content_hash": "7babc191553334c61ad1b42c509be4cf31542c903bcda395d58fa75e49d903cb", + "lines": 589, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_6_b.rs": { + "content_hash": "7e2a14df6b54e692c97b64d08ea54685e4e3cf5ad33a56fe6722ef70de1ede3e", + "lines": 474, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_fleet_b.rs": { + "content_hash": "079ef5be1709818426bf9b485cfa249617ca2acaf46c0dfbceca1dff39fdcc22", + "lines": 314, + "functions": 30, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_resilience.rs": { + "content_hash": "b3bc5904cb1ebdcab05ac2b3d4466bc50fb7f3b7a4e77b83ad1e9058c1f888d8", + "lines": 699, + "functions": 27, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_edge_apply.rs": { + "content_hash": "eed737476c55bb2a27aa55e9ab9172157c484deb7a587f0755efd51c74e71c44", + "lines": 465, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_validate_core.rs": { + "content_hash": "a5ab48338111aa7ee34630a1a0dd623d6cd650ed57cd04b4724c88abac46be67", + "lines": 507, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_21.rs": { + "content_hash": "d73aa2e0be9902490354a498842a6e26f671c12bed8542dac30f82c03ea056cb", + "lines": 591, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_intelligence.rs": { + "content_hash": "7d8eeb261c0ea722ff0134954f29b9742ef87ae24b9bf2ea78290081e5d3aa25", + "lines": 591, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_23.rs": { + "content_hash": "ffcf1444f241cce57ee0d1b35c936fc474b5749af87bdad1c3b5a254773cfa68", + "lines": 260, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/data.rs": { + "content_hash": "e38af36163c68498a96ab1edbb077a08efcad8e2a2e86cea14eba74590b70dbb", + "lines": 139, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/show.rs": { + "content_hash": "4538451f83bd09570bbd07e938a5555815cb5362176f88d81c937297579fef92", + "lines": 399, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_notify_4.rs": { + "content_hash": "131d6aa2f1ff7d1305bac3fc8a1ae4e0c08aa179853dd625dce26fdb85c50d12", + "lines": 504, + "functions": 36, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_extended.rs": { + "content_hash": "b69d7bb4dd1eb9319b0732c2cbae1df057d49234c1eae9cd7423e6c187ee0cea", + "lines": 379, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_graph3_b.rs": { + "content_hash": "0b53e9dd56f69e38122e721290cc6e0d3a8415a07e0c460f2a1103a3bdcfc419", + "lines": 499, + "functions": 67, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_scoring.rs": { + "content_hash": "4da920733a2851796cfe33fc50b0ddb25b29b090de2c17d63b5da731c61a5014", + "lines": 435, + "functions": 24, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_core.rs": { + "content_hash": "52906653e59d2b705f0221e6d82d69271897aed0864605f1a9fca1c915db5d80", + "lines": 263, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/helpers.rs": { + "content_hash": "7cdf36a2f59e6dcf0e334b47db74a7877ba11321c4565a75c68745817abcec35", + "lines": 74, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/workspace.rs": { + "content_hash": "d8b9e8bfa055def6a3546c6467ca5c956337bd0df23c6a27449ce14553cc410d", + "lines": 159, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_validate2.rs": { + "content_hash": "de5ed195297c91cbf1e4853a368f389e6d9471e6e9fae63e7f4820f5dbbaff77", + "lines": 396, + "functions": 30, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_misc.rs": { + "content_hash": "5b2ad6d320371f06b95d99256f679fc0820a723116b8bd52fed4a90751bb7498", + "lines": 463, + "functions": 19, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/recipes.rs": { + "content_hash": "5bf513847e93b5f32beb6ae07e4ae664a42f57ef1693e93b1449c4eb9f3a20ef", + "lines": 138, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/lockfile.rs": { + "content_hash": "be61e70b63d980a44ccc9a57da9cfc04fc6cf842cea0b3724d756dda6c304caf", + "lines": 98, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/sandbox_run.rs": { + "content_hash": "58ce624ed70496af87745f25b27f09c3c4d9cff9638123ea2ec63299c5c4f592", + "lines": 148, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_triggers.rs": { + "content_hash": "43a2d5e86ff679568c74904081e8bb08984e92df2ad7426961767c3999e3bb68", + "lines": 106, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_score.rs": { + "content_hash": "57a79d5775e1244b3f628ec77fda9295d2c9c2e92cf88ed9a030a9d79f9a1ca2", + "lines": 197, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase76.rs": { + "content_hash": "afcd94e8394a4f54034c13db7138510a2d3818b914bc2df917c4a0fedaafc3f2", + "lines": 290, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/pepita/tests.rs": { + "content_hash": "a91a0df7f18b27ee5d840ace7036d0e7b75870bcd26749fc7078087f5aaca17f", + "lines": 365, + "functions": 0, + "max_complexity": 0, + "category": "TestCode" + }, + "src/core/executor/tests_edge_details.rs": { + "content_hash": "e4b0c31d73409f22aa1213b0376f5e9a02980a317e4ba6670c925afd5f9a51ef", + "lines": 403, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_store_archive.rs": { + "content_hash": "bcf1bb0fc5105667e853fbbdf8b7718b9d8dc3f5fcdbbaf525c3a9788bcf7526", + "lines": 143, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase102.rs": { + "content_hash": "28ceaba1ffaf865a6947a081b160e034a05ea8cb3a0969068df6dd7b63d550fc", + "lines": 206, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase86.rs": { + "content_hash": "153172f7ef3c5139c3921114f76cfc53f40a54d98910d6b36f9f6dbbd6a91413", + "lines": 160, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_22.rs": { + "content_hash": "bf279a9d6ae125679a585c944782b7210e25699abf2834e397a1242c0378ed0a", + "lines": 588, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_recovery.rs": { + "content_hash": "0d4cfff5a848ceaadac787b245e475aff436cf6297353d029a9b79c26e5dc304", + "lines": 677, + "functions": 22, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/profile.rs": { + "content_hash": "f9e15c83686dfd5b0bff531913bd671911c4954ed06050b596785e6a84f6a110", + "lines": 117, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/mcp/tests_handlers_more.rs": { + "content_hash": "9f521869e1bf0d3061b2311c7fefcdf4f2d9275188bd5604713e252dcd891ad2", + "lines": 349, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_3.rs": { + "content_hash": "037b95ee9ddbd52fd27e5076ec61dad745a62a96c65b190dcaed86b54f7a2164", + "lines": 443, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_security.rs": { + "content_hash": "534f8faf855d2ebe94871452b0e993c762ba38be7127c95f198d3f6e26dc8c49", + "lines": 436, + "functions": 28, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/gpu.rs": { + "content_hash": "d0ee4e02e497703403c3dfba64280886e5b4d0ee77164f2c1e7bce15b23293c6", + "lines": 196, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_convergence.rs": { + "content_hash": "b634cfdcc2e5968ec6f0de4b3047422ebc5496d1a13d9800add776150d37f093", + "lines": 495, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_notify_3.rs": { + "content_hash": "216bccf19aab69f190b04af25c296385f62577edc54028435be95a11066c2be7", + "lines": 474, + "functions": 51, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/drift/tests_lifecycle.rs": { + "content_hash": "eaa542320d4c1728a3863d206050c808e1f22af47284c1d7489cbadb8c42c872", + "lines": 146, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/codegen/tests_coverage.rs": { + "content_hash": "34d3b6fcc4fea7cb616e7538af6d6b508f6ce6933d7a900b3cb70b717d473c61", + "lines": 269, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "benches/store_bench.rs": { + "content_hash": "f97b1e48cff71ae15f2c3474dd36a52df9abe546882c8efc6b4d7b5b37833906", + "lines": 401, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_analytics_ext.rs": { + "content_hash": "dfd639fb7a3e67c66eea82ed922c7883b45f7f00b94dd0659cf56d48b6cd8ac2", + "lines": 383, + "functions": 28, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/tests_template.rs": { + "content_hash": "6dc64dac971eaba5ad71d818a09ef20d43bd1a8784af2c8054cdd59506722691", + "lines": 423, + "functions": 30, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/lint.rs": { + "content_hash": "79fea5af0fb5cb75e072206a20820d9dc06e3fe34e3e626d9992bf84c86fb4f4", + "lines": 259, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_graph_core_3.rs": { + "content_hash": "6a6e4b1bf89ede7219bbbb1b88aa7d259acf7bafacbae1b432de0948fa4a0f7b", + "lines": 757, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_mount_b.rs": { + "content_hash": "0dd5ebc9614833d1502b0cabcb8b4c027b9b03da239a7015f2daede897b5d563", + "lines": 249, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_remaining_2.rs": { + "content_hash": "2e75f5536689c2c76cefac7ebbfa69de9c81e67487ad5f43b3bc21304178843d", + "lines": 379, + "functions": 50, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_dispatch_2.rs": { + "content_hash": "1fc985791b0269cc12e0d0e2b0cfd4e157aca99b943ad9e9dd9427e475d5caab", + "lines": 483, + "functions": 30, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_lockfile.rs": { + "content_hash": "0365f4c715e27d76c55d45058286cec808c70729a2d965ced366f4d3549f19a1", + "lines": 200, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/types/resource.rs": { + "content_hash": "58e75f542452698f3ff375faebc9fe6e3672dca984bf84404375aa68fbca6d43", + "lines": 438, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/store_import.rs": { + "content_hash": "34dd7a36e896a8fe1df30d590376cb8ca314cd4479d41d9e1b29bc6177b5b4f5", + "lines": 191, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_intelligence_ext2.rs": { + "content_hash": "ddaa73730c7560e3746b74fc84b6d38345ca14c7d20823cd31db285ba95a7500", + "lines": 643, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/drift_detection.rs": { + "content_hash": "6319b9280486dd5580425f9e93df747b1a32d95f0ff06c5bce38f9c0e4ebcd1d", + "lines": 127, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_validate_core_b.rs": { + "content_hash": "3df112f43b66f2612375b6abe8f737900c689d94c3982a88c75ee02930dd7b65", + "lines": 489, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/copia/tests.rs": { + "content_hash": "99945b226f51c6816a3dd07f49ca4740319bf41000f379e06f00bc7560602e1c", + "lines": 307, + "functions": 0, + "max_complexity": 0, + "category": "TestCode" + }, + "src/cli/tests_phase77.rs": { + "content_hash": "69145b26c382ffe4ef2045d6d4ef57b1170bfc14a8e7916f93ed8f5018edfa22", + "lines": 291, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/score.rs": { + "content_hash": "697e597617672776bac2976841e12e91e9b8b040ebbd77b776d0e82c1078754f", + "lines": 51, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/mcp/tests_handlers.rs": { + "content_hash": "728f0143b27784c3eb680457f9664a4154a1af6a6662bc44e0abb06f699970b4", + "lines": 228, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase96.rs": { + "content_hash": "2ca70a55830fa12021b91459cfd36a7fd2f6f70197ead4d6f109dd06abd98902", + "lines": 224, + "functions": 29, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/resource.rs": { + "content_hash": "3bdf0233a3df72792c19239fb2e2f6adaa7797176cc84d5978f3cfd797fcaeb8", + "lines": 71, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/codegen/tests_completeness.rs": { + "content_hash": "911cabd0471feabd23fc8d140273235e9042a8d8b8f9b6e8759cdc5c579c92d9", + "lines": 280, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "tests/gpu_container_transport.rs": { + "content_hash": "e3d8b4c7070eb3503b55daa7f013bba02d0a22096beb13eb7002df5d41404b62", + "lines": 226, + "functions": 0, + "max_complexity": 0, + "category": "TestCode" + }, + "src/core/executor/tests_drift.rs": { + "content_hash": "5f34e558d5b53c082a28d43579f18cd4962307695c2e9fa782d4c2362399c302", + "lines": 381, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_6.rs": { + "content_hash": "d66062ef8be94fefd1417d960a820e1f1adf09e2cb1410ada5d04a465cf66300", + "lines": 705, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/lock_core.rs": { + "content_hash": "622ec568ae72b5bd9b6625776af10162ad9ac59d8c8a8d5d8577cd124dace853", + "lines": 453, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/store_cache.rs": { + "content_hash": "ff98f2df641045185025eb5c8c9ed291074b8adcfc95a894c8e1b7aa16cd310e", + "lines": 251, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_remaining.rs": { + "content_hash": "b3ddd352bd2e84334ae283aad442cc30f6509aea1a6951c618413b5bc39a37a9", + "lines": 412, + "functions": 36, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/types/mod.rs": { + "content_hash": "03c03d2a2752ede3f9a5d3d56726cc3e448f874db26732c23f6c26f859565256", + "lines": 30, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_cost.rs": { + "content_hash": "7d4433d13d433d859f8ce786d2dac6d8d4b61318e2972f685f94da84327f86b9", + "lines": 258, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/store_ops.rs": { + "content_hash": "8f1c09ef38818d37d499deae48880fce98e537ec88ed2f717a18775b67cd1f72", + "lines": 311, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/planner/tests_describe.rs": { + "content_hash": "92b1a9b0f314c99d48ca801380eea19c8d8a97952ee947a29e25e649e48a7c73", + "lines": 77, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_infra.rs": { + "content_hash": "3b716ac33cc323623c1948692f08077c230694186832a2eaba52778daa11c773", + "lines": 306, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_9.rs": { + "content_hash": "1453de79861b5d7e0baa50ac8f399af82c2084516d79817a7db1cd1002cad9e6", + "lines": 621, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/anomaly_detection.rs": { + "content_hash": "7df1ddb35aa1377af77266b5b10313781ecdd0b715bb78fefaa28d4b1dc9a2b0", + "lines": 123, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_validate_core_2_b.rs": { + "content_hash": "22f5f3903a07db1e20a30566d978cdff3aa8f6cd345360996b237c0fce6a88ac", + "lines": 659, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/user_management.rs": { + "content_hash": "778853f748c4e51e356d3964dc284e1644806b380bda3393d2d02dd0ac2137d6", + "lines": 120, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/types/tests_resource.rs": { + "content_hash": "c51b45db69f9f9d83857727f88999433664a2ce42bba11070ccea4235c79fd7f", + "lines": 298, + "functions": 29, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/mod.rs": { + "content_hash": "a531550613b6809bd1819e24a0825160f11c2ce53bcfd7a5ed0749070a530b55", + "lines": 36, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_visualization.rs": { + "content_hash": "2226cd8758d6b12cffe2ccafda43f34104bfe7939d93bcfec710cd07bcc216a3", + "lines": 313, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/apply_helpers.rs": { + "content_hash": "f2146aaa4e9defac6876e53922ffe7d317ccdee4285e8658a6fc5368fe1f935b", + "lines": 131, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/gpu_container_transport.rs": { + "content_hash": "d23eca486eb1020410cd6f894b19be747524b4552a22ebb07ce5b5e8fe03e84a", + "lines": 220, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/reference.rs": { + "content_hash": "c2e29b14ebf4b4fa1e516a86b4a0b8dd7913e73d566f27d15a9fc571f9b3ecc9", + "lines": 80, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/mcp/mod.rs": { + "content_hash": "3201dad7d2470e767c9e463c855586d805719b6af472a51bf914d540e6d92687", + "lines": 21, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/full_stack_deploy.rs": { + "content_hash": "56839d0659adcec2a1d782f0008bbc14a9c272f252bfd46bb5cd7dbe2164032b", + "lines": 185, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/state/tests_helpers.rs": { + "content_hash": "7fc2190767b2cacf33961b927bdfb6be3970becdfd3f787c89fcd4a8e06b95e8", + "lines": 27, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_dispatch_3.rs": { + "content_hash": "100af1705a0d16182fe5a8969d0ca78019e0a877b49569b55e27cc654b33b0c9", + "lines": 501, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/types/policy.rs": { + "content_hash": "9669a0f635a6090ccb2b222823b3632367cd5c303e24c2f47c33c2430c0114ef", + "lines": 118, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_lock.rs": { + "content_hash": "f7421ffba17f648c183009ee32a2f9f35e75a8e6870b962a25444f517d30c367", + "lines": 492, + "functions": 65, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/planner/tests_filter.rs": { + "content_hash": "2827ee3bfa4044aa72aee8cb2748a18cf1199839f9ecadd693ae3e599c0207b7", + "lines": 133, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_store_import.rs": { + "content_hash": "102b2669a47ca0cb3b214d03010604a50de4d039e80eb4e94b4ba2b92824c7a7", + "lines": 111, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_store_convert.rs": { + "content_hash": "3cbbbd88556b1bcc0ab649ad3b02c196a85e9992214d22846de5c18ec0731316", + "lines": 127, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_validate3.rs": { + "content_hash": "2cc0d2323726ddf8a93ae63a7590f55ecb15466f0c9176dee6188c589f5d84ab", + "lines": 410, + "functions": 51, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/conda_to_far.rs": { + "content_hash": "7734affa568d41f480d8e38788fe151adef95b1a827dce5b24e559ba866fb11a", + "lines": 110, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/recipe/tests_expansion.rs": { + "content_hash": "08d5f5a86bead9b806f586ce55375a912d51dd14e8ef67cb04c5ac1bcb228d30", + "lines": 448, + "functions": 22, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/mod.rs": { + "content_hash": "8d9bb67095febd89ec5e0a9a6e0f1bc97a1454c28d674f36dc5357cdc8f8eeae", + "lines": 240, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_store_ops.rs": { + "content_hash": "4304c34553bdf342cd25e89995504181bc8f0cfbb8b0ddf6aa64e290d7e248ce", + "lines": 160, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_validate2_b.rs": { + "content_hash": "974a2b402c5e7bfb983b4cc2cba4dc2ad11b7a87639177521a59d8501ece79f9", + "lines": 386, + "functions": 38, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/subcmd_args.rs": { + "content_hash": "f30161fb246f830e179318201829d0d887db3d017b98a3d18bc50ec637f33e24", + "lines": 120, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_analytics.rs": { + "content_hash": "5d5ee17e1dd1549aa2433d189257f59b54b718eafff552913e5e0187de17a1ea", + "lines": 424, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_8.rs": { + "content_hash": "1185e4f85d857d6ec63ecca39b7da844e29f93bc3fd9db14722ca67d425278a5", + "lines": 620, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_scoring.rs": { + "content_hash": "ce25d95e9acb6c99e8078bdf1c933597d73c087d711d7f4b17b7146e6f8f28a9", + "lines": 655, + "functions": 29, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_1_b.rs": { + "content_hash": "33221eefa354e0482515d3ac44909c8b218d54435078814040b93ddc6f1d6f31", + "lines": 208, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_resources.rs": { + "content_hash": "c30a9bd72485e2d4669f36919b1e0498e8fc5510d523dc308b2b43fe8b21bcf1", + "lines": 260, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_gc.rs": { + "content_hash": "845a11f64740c6ad1c7a6b37bcb8768950f678b431f3ef7942dea10ea5718375", + "lines": 160, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_20.rs": { + "content_hash": "ff9041e68cce47cc5cf528994fd0679b0d7ec933d98b9e618a6a95b35f79512f", + "lines": 591, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_validate3_b.rs": { + "content_hash": "72d2a8a790bcd923af56a5cdf391ac7b36fb20e6165bb3ef0ebf7392dcd45131", + "lines": 366, + "functions": 45, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_resilience_ext.rs": { + "content_hash": "6843520429a2c1c6194e7e26338714bcd0fdb8fc6d348e0eac2a062f07efe26c", + "lines": 352, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch_status_ext.rs": { + "content_hash": "38caa2aed92591fe40388046bd7b21fe3209088d0376b921fca0982e63e37c1f", + "lines": 637, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_dispatch.rs": { + "content_hash": "6358cf318479593cf597f419d64a74af27bac5f881755714a645d7abd9f4e972", + "lines": 466, + "functions": 29, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/docker.rs": { + "content_hash": "304c938d197087b019e5ef65b74eca68511002b2e9b60a544344c659ca1dbdc6", + "lines": 88, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/mod.rs": { + "content_hash": "a7103646daa0f2f7c25ce72ec7a06f770c5aadda9b6481f7b58fdf92680da303", + "lines": 131, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_graph_core_2.rs": { + "content_hash": "02f18590f6d10e4b1d939241a15d9bac785ac865c4dd244ab4191b5500576f93", + "lines": 1041, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_expansion.rs": { + "content_hash": "24c9d29da75808f7c80dc6080ec73de55bf3b681788b8a4d4bbc8ef3a2cc0bde", + "lines": 493, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_validate3_c.rs": { + "content_hash": "9fd07efa885746790d5b0da5015a316ac1314ea36c23c6a81f5da3174a60d922", + "lines": 454, + "functions": 57, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_observe.rs": { + "content_hash": "acb6154c8558487eee51f8b71d5320750e5c073cc58643ffcd11f53b2e380db0", + "lines": 413, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/tests_hasher.rs": { + "content_hash": "d631ad2b887ce07688a8a0e87a5aff2d55bddd83d2217fb5b8203aac76552631", + "lines": 276, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_security_ext.rs": { + "content_hash": "f66fe1fc9ea7278efa07102a67120cb60ec48798452be1d870ebc4394f7fa674", + "lines": 486, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase81.rs": { + "content_hash": "ceeb1be347bdf90a1f6618d662a2ee711df8f8a7eb295889934b5374108f4858", + "lines": 289, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase101.rs": { + "content_hash": "74758c38fa148996d240fd23b5a951e82edddb5e50b95fd15c449275065a8f57", + "lines": 207, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/check.rs": { + "content_hash": "ea85e4683f4490afc10d126fb3ebcd379b982ae73f1abf8c68380c7c2281f838", + "lines": 299, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/conda.rs": { + "content_hash": "92a0b3d6e29c245f814f7e4b524dfab625f49ab2b6b2f4374a5fc1c445a96d55", + "lines": 307, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_resilience.rs": { + "content_hash": "c6fe3613bcb0c1d81ea3370da4237e88a3e0ecb46066f5c9de84aefde1a8acd6", + "lines": 252, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/mount.rs": { + "content_hash": "c2a3832d37383b154b7771f9a943d0ff31758f4dd6f7367ce8f83bfef994dfd2", + "lines": 72, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_15.rs": { + "content_hash": "888dabb060c0a2d85d4e41cf85931912a317a4e27fb8626fc54c8e9ac7c447d9", + "lines": 584, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/repro_score.rs": { + "content_hash": "868b818e86f30358f42e560e49346e66426f57871f68a406006e9028b2fca262", + "lines": 119, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/test_fixtures.rs": { + "content_hash": "0b8fda69d8f277e11569288b038ea6261396ff44b72d25b7410150bd2fb19839", + "lines": 149, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_validate_transport.rs": { + "content_hash": "af826465479da479476baf68a2514356e913912de11873d61532a915562a1657", + "lines": 379, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_paths.rs": { + "content_hash": "98f7992ab6e2fcf7abb582a9ac94899efba591d83ca50724fb4631a5302d1ddc", + "lines": 337, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/planner/tests_advanced.rs": { + "content_hash": "b622cf123d06945e5dcd11ece3b4c8a67d1add1b535c4d2f3cc4dd14c11b9805", + "lines": 265, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/resource_types.rs": { + "content_hash": "68f2bbc06de073e745215d0a5f55ec9b778b8f4296d7acdd81c4279d1c75f059", + "lines": 320, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase59.rs": { + "content_hash": "d716283070c6018f6228d6aaebe527ce49d4ab8d1f29046af162ad23fccfeca8", + "lines": 120, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase64.rs": { + "content_hash": "d95d5a7569aedecf4c5f7da391965a342aaa6c897069d00986a67b8b41e9a65d", + "lines": 202, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_contract_scaffold.rs": { + "content_hash": "0579aec27efbb232895792b359733ae85c571abf51c7e4c5282de8700fa607f1", + "lines": 154, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase72.rs": { + "content_hash": "0139d14fca9a40bb4118f91d4fc4ccd9c6a14577494a34ec92f84185ad97add1", + "lines": 279, + "functions": 24, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/infra.rs": { + "content_hash": "7251b32b2e6046c6473ce1a8606134553996abc1a2419a0c1188f5a0bb622e61", + "lines": 483, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_queries.rs": { + "content_hash": "4e34a126b8c125dfe51f90a1aafe25a3ccc45747614703985b58203040e5c983", + "lines": 364, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/mod.rs": { + "content_hash": "9f6044672813dbffe20b724482ecb623a36ec42be35c525f8225de85d60206ac", + "lines": 186, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/resource_scripts.rs": { + "content_hash": "bd107a90d40cfa4b2fd7abf5f8793d9414f9e7c1f1894e594d7ea640b68b8ed3", + "lines": 189, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/sync_exec.rs": { + "content_hash": "00868ef2b5b95b8b2bc37423781dbc15af79f86a12ac2a9acfe4136e50f027a0", + "lines": 189, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/migrate.rs": { + "content_hash": "55472d0eb74b18c26e56d523f8416c4d51e258223d5ac29ba47d0094221f64a6", + "lines": 433, + "functions": 19, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_status_4_c.rs": { + "content_hash": "3cb668f82e29559aeee7bf75908f8190621ef88a0bcbf38ab26222f450152862", + "lines": 476, + "functions": 56, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_graph_core_5.rs": { + "content_hash": "ae3424a2cefb17bb1f2ad298a20b261cbd415c077b7bb9d0706e74ef8fa24479", + "lines": 313, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_fleet_ops_1.rs": { + "content_hash": "5db177b33104bf4e9c9a6ae3060e9aebfef6341175f3f69727b3c8c0a51acfbb", + "lines": 50, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase61.rs": { + "content_hash": "3c0a05cbc05aeb4276e2c75cd0e8a68e0d2d41b870e7606fc4dddee23df30db1", + "lines": 195, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_7_b.rs": { + "content_hash": "c3a4d11488b362056db0044cb00a679d032a6055d5b07e23560563ead2f5bec0", + "lines": 204, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/package.rs": { + "content_hash": "7b78ef2be7d1342bc58259a458f848372a8bd2070cb9a0c77e2baf12070457a5", + "lines": 192, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/tests_scoring_b.rs": { + "content_hash": "d78bfb4b453e0484eeccc3c859cf0a4217d77e1200e70fd2b947d9f7fc5ab5f3", + "lines": 488, + "functions": 32, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_pin_tripwire.rs": { + "content_hash": "4b400e9e27207460dfae9a3686e898af1d62f7dca35656618f6438fd860fd7fd", + "lines": 215, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_sandbox_run.rs": { + "content_hash": "5f701b77734afb259e8e1cc39173f67ad8c8e9dfc57ac8abe60544869ed6e3bd", + "lines": 229, + "functions": 18, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_lock_core.rs": { + "content_hash": "70adbb33a1eadbd8fcd553e18d283c32833e30995e4c32e7614d648c4c708b88", + "lines": 467, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_analysis.rs": { + "content_hash": "091ac709f81cbf81016d5afc8919f47ef129402f50c9cd93d069b70a4ffd24ee", + "lines": 315, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase100.rs": { + "content_hash": "082e88670a307c41e4461619ea486580bab5efcf8b32a2645101677f689fb04c", + "lines": 204, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_6_b.rs": { + "content_hash": "0ce4c32dfe507762fdacc944cf99a5522bb5f7cd8d80f37128307c3f6f95b46d", + "lines": 207, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/arch_filtering.rs": { + "content_hash": "0c7b4be49e9498d6b6a8e4277cf7ceb27c84887a8f2dfb8224b20f4cbbe2083c", + "lines": 125, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_10.rs": { + "content_hash": "66d3de64c23cdbdba6cb3d9bdee6971b446e737c2f431691ec0af0c8a62fe023", + "lines": 252, + "functions": 30, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/shell_purifier.rs": { + "content_hash": "f94c295e75a0ac051d88da44468ba898864eb937bfd8edc2409f61e7d0081fc0", + "lines": 125, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_maturity.rs": { + "content_hash": "86d8871f6417999c5d028f68e3c8eb1a8b837c03d655b8fe91fe5775c4d60b8d", + "lines": 857, + "functions": 37, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_args.rs": { + "content_hash": "d6ff2578cdef4fb0853e97436d525ab7311339457cbcbd9c0574d2f85ddc7c9b", + "lines": 472, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_docker_b.rs": { + "content_hash": "0a11c4be71d555814a46be0622c4e4eec35dde6828a1efcae0c19dab8c274fa8", + "lines": 395, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_resilience.rs": { + "content_hash": "dcea006a4ac80083d38f24c48919388010b334fd0287642546d62f75efb34c93", + "lines": 268, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase94.rs": { + "content_hash": "fff4cfa1c2fb77c8c79f9a7610da253dd0e2aa118e2dd7cb3f01779095bf61b1", + "lines": 425, + "functions": 24, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_notify_2.rs": { + "content_hash": "96b1d9717c6957af6517e4297586f248abe8803f8c282001332cd194aeb284ca", + "lines": 529, + "functions": 49, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_2.rs": { + "content_hash": "51da364a4e98525cd2a85ea0e759b0faaadfb012bcadb4a4c2518dc10a0aae53", + "lines": 515, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_drift.rs": { + "content_hash": "49e2203aa6db0c38af3d2b3a77926090384e38100fc6b951057dfb559567b9b0", + "lines": 458, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_b.rs": { + "content_hash": "022ccd86512e794a15c77242c1071530dcb99d24620ee43ccba398d0a79802cb", + "lines": 369, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_status_4.rs": { + "content_hash": "a817b37be5a555e6c08ac2709b878f1ef3d8268461c49a6de30961c7c41fb390", + "lines": 345, + "functions": 43, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase60.rs": { + "content_hash": "0a27a50ad0d44f4d395d055f56642af8b09be805308194ae89d2b76f03ee51c5", + "lines": 133, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/tests_purifier.rs": { + "content_hash": "2590f79be5bf58666abe31c1b7294d2a0b87213100b1190097d270ddc6e91915", + "lines": 304, + "functions": 22, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_policy.rs": { + "content_hash": "61be353f6ee2e40b9e535c856ebe1c0de628f50f5c1a4b1750834c72b7b9c874", + "lines": 258, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase98.rs": { + "content_hash": "3ef40d8eb024410a388a63b957bcbd8b4b2de79e9bcf915cbc13ee6c14666cb7", + "lines": 251, + "functions": 33, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply.rs": { + "content_hash": "4f1d614e3fb5124e194b4f2c9defe98b4a1f0c9a23d2e088c21dbc919b51c539", + "lines": 416, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_secret_scan.rs": { + "content_hash": "cc073b7a66b7a45c5db160d8c6f5cb20f0b9031ec777e36916d178bcde9eaf0f", + "lines": 263, + "functions": 27, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase73.rs": { + "content_hash": "30cf3a82640c3e614ba7b9dce1f9df02aa4c558dc4f1790f239e8d6c125deb16", + "lines": 283, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/tests_ssh.rs": { + "content_hash": "81604c0180ad81bcfc76902e10c0f90b1737185a18af42ad22b09888aded4d63", + "lines": 358, + "functions": 37, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_graph_core_6.rs": { + "content_hash": "5519c2dd3380ae47ec49f8510e654123e544f501bfd99e62cd82b06a809c0aba", + "lines": 312, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_compliance.rs": { + "content_hash": "fe4dc8afed79cac5f9f1ec0a300860a17b11571a8e284bce1c599435fd73b546", + "lines": 327, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_validate.rs": { + "content_hash": "156fe9a3861bd5c1033ce9408b177b24db65749cb8560640fd3b18b532baebb9", + "lines": 311, + "functions": 42, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_2_b.rs": { + "content_hash": "a1eaeaa40f75ae55def5722999b1227c8521a27c8218d074cbfd6b5e6c3df93a", + "lines": 476, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase78.rs": { + "content_hash": "51ce6b926ea80c7e21546cef0a5f422ca8135e8087f355155495a039d77cf285", + "lines": 289, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/copia/mod.rs": { + "content_hash": "0e23b4a219ca632f3478d22ef3c04c705251af4838bc344c1e7870ef26b8b6db", + "lines": 239, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_governance.rs": { + "content_hash": "7909756818caadc8ce5782aa8b4993c340675b9502259363f67ea01de304c263", + "lines": 480, + "functions": 22, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_purity.rs": { + "content_hash": "a41138df84992ce18b83b566c73f0b023343475e6c450a8ea31b09f956d5b6ca", + "lines": 186, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_drift.rs": { + "content_hash": "057857ab9c58a347b6da69e3895f2cb9d7c3f93561fdd29858e7fcb4a41b4234", + "lines": 541, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_9.rs": { + "content_hash": "9595bb38a7b853a08bef9958a0dc8652676b31974accc7cd153953e064f65ec2", + "lines": 585, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/tests_eventlog.rs": { + "content_hash": "6416f4576acad278ca832883c2cfa1e4330e8f987f1c757a990c8837a0af6c30", + "lines": 263, + "functions": 18, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/meta.rs": { + "content_hash": "ee76198a36d480e2f1147085306b65a8f851e26665bb42fe1f443aaa38095326", + "lines": 125, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_drift_intel2.rs": { + "content_hash": "6f32e09b223fb4a152deac6b1cdb6b80ef62dc08f2b6da69cc19c4b79649945b", + "lines": 460, + "functions": 18, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_kernel_far.rs": { + "content_hash": "0c3f0f3cd5084c953a428b20d2350063bd53140d61bdeece477c2ddd62087356", + "lines": 404, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_3.rs": { + "content_hash": "2ddf48816c11aede0141eddc648728528b6c55f6e532638c37db7a9e3ef97482", + "lines": 705, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_doctor.rs": { + "content_hash": "24fbc7d8a065ff4bd1bd7380595e8cc5e5cbc9db2c0fb91e1a2a2ae8a3ae1455", + "lines": 178, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/gc.rs": { + "content_hash": "4ee9aa8f03a830997847ee019c423ef14e288ce9345a260316d254cf3c1ab7b1", + "lines": 121, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_status_2.rs": { + "content_hash": "aecb4e8084ebe53396f124fe0af98547eeca2473f59238fb6a3ebb5f4ed8ebfe", + "lines": 453, + "functions": 64, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/drift/mod.rs": { + "content_hash": "b0094bbc32e0db8f94403762405412acca10817454dd12d37a299dadc01c176d", + "lines": 310, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/pin_resolve.rs": { + "content_hash": "fe3ca39b83bf797a137d51ed529695127231448405f7044be43ce3474db6ed75", + "lines": 205, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_substitution.rs": { + "content_hash": "502b1ad43ed11914f569118f091a4569207765359dc2282fa5c95340e026d631", + "lines": 279, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_convert_exec.rs": { + "content_hash": "93221ef970d83b08af899ddb7852f60d67da9a9c797ab714137c268acf194914", + "lines": 267, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch_apply.rs": { + "content_hash": "a18773bc1739ead60e53676aa95f738ff93001233d0d113214c56a20231e944b", + "lines": 568, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/event_logging.rs": { + "content_hash": "a824a3e869cc765c381607a296288475026397ea7d5f90a33965d0902109ba22", + "lines": 141, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_validate_core_1_b.rs": { + "content_hash": "ad46aa69bb5803815a2e8bcc9908c04363ffaed29eb191576d3ac275f1c2d017", + "lines": 647, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_graph_core_4.rs": { + "content_hash": "d32b0a6227cd5c5b044c1af69d88b0f1c82c74a32e2a87ffa5304291f1e9512f", + "lines": 92, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_5_b.rs": { + "content_hash": "f53c35dfbba541b5314c96e465bf4d70f91cfb37dfdb542490648323d960f409", + "lines": 474, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_17.rs": { + "content_hash": "7c0212f2ea73638a6baab961322bd7d790910205185aebe8a5a5ead6808b3719", + "lines": 586, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/template_resolution.rs": { + "content_hash": "fed4c713fe1143b4b6015978ba085cfddb3e62bff74fada57d4196edfe34e2b7", + "lines": 89, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/trace_provenance.rs": { + "content_hash": "9f8a415a0f1e0c25293ebf2aab2a39d1bf6d9b838e101315eb5dec82348c22d4", + "lines": 119, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/mcp/tests_registry.rs": { + "content_hash": "35bcc9a5dc807b410f61dd2d587efc07135c010102abd0a27ce29ea7a32cfbd6", + "lines": 129, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_misc2.rs": { + "content_hash": "c8b337c89ad6a10b7594a79b366934c6164ac3057d3325805b2c7e6688d9c6d4", + "lines": 301, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_lock_core_1.rs": { + "content_hash": "5a2e2f81c6637643d2c491fdaab1073189f2c26c0ac05cd6e0a267b169a86ad7", + "lines": 457, + "functions": 39, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase80.rs": { + "content_hash": "e267ae411af084f1442b0496b55e22ff991b270d68e7642f4846bef5f10c9bb7", + "lines": 289, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/lock_audit.rs": { + "content_hash": "781e7c728c7a0b8a9b2204000a53f1fd58ed33aad63202aa5020e3f39e7f3bbd", + "lines": 382, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase85.rs": { + "content_hash": "28b08303ce8370db560ecc840ad1351df4368065f506565bbcc28d4ad917ce58", + "lines": 175, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/mod.rs": { + "content_hash": "4b7378d6af1834063b09a80e02fd37bbea24ca7aaa934cbd5b0decd9022dcb83", + "lines": 18, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_graph2.rs": { + "content_hash": "dc3b9470ab3298589ff28ee972bfde94c64a3a4f54cfd2f5d3fa54dc7a6f8f03", + "lines": 378, + "functions": 53, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/print_helpers.rs": { + "content_hash": "14fab206c24dde8dff130d982296586067b476a1fe46cdb0d4210b463a7bc87e", + "lines": 241, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/drift/tests_basic_b.rs": { + "content_hash": "2a5e76b7562ab9156b12f478491a85958c43330dcd8907caaaa876a76177364c", + "lines": 355, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/store_gc_lifecycle.rs": { + "content_hash": "e8e53f2082778029c04be3031184f2d58a31bed38de7c739c2e4d9ca58d4e58a", + "lines": 170, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_reference.rs": { + "content_hash": "c49c2bddda5b11f68be69125f09c88b8cdf5f063de0bc3175c9feb09b9bf0006", + "lines": 123, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/path.rs": { + "content_hash": "e29f0f409a8c4e2af98e7e4a0af071d9b72d16b0cb7c93187f14a57956f5db66", + "lines": 33, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase92.rs": { + "content_hash": "cc5bc0612ff315eaa14e960c3bbbf8c0dccd5663df72c514d0362f04fc6df330", + "lines": 310, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_hooks.rs": { + "content_hash": "5509ac1dc580a0c8a13607ab1d807295391f6dced6375f2a05ba4fae6589bde3", + "lines": 316, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_args_4.rs": { + "content_hash": "2b82c0fb253b1f675d92841e3e329bb18b18c582fc8fdbd01eb3a72070fcf9e7", + "lines": 373, + "functions": 32, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_18.rs": { + "content_hash": "5cc232e1bbdfa286c5f61b9dcf404152c154bf83e9c19bc49543fbb7df7a75f4", + "lines": 585, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_topology_ext.rs": { + "content_hash": "5ea63a1384c82f316ef7448e73c80696167583f8a22b868509dd6cef478c5afb", + "lines": 124, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/types/tests_config.rs": { + "content_hash": "62f198f513cd6611e7b3746054fbb8f7280ed719277043d12fa10e5729e5586f", + "lines": 447, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_3.rs": { + "content_hash": "fa92eb256aacdaa41fd7b5968e61bc3caa011efba331b28f112fa5425904451a", + "lines": 475, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_operational_ext.rs": { + "content_hash": "f8f39446b9091ae9178dc210d4b1ff97ff6721feea04ed74490ded0d23196f57", + "lines": 212, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_compliance_ext.rs": { + "content_hash": "52a51378bc98cdc284777bcdcf3966d365b46e33ec9efe10dd2881a3529cca75", + "lines": 430, + "functions": 26, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_transport.rs": { + "content_hash": "1c444c1c80a71de6090374a70fbfae8059293bda45902f8ceda4ba8c6a93f47c", + "lines": 212, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/misc_ops_args.rs": { + "content_hash": "4434ae1f9bacf8084c3ed92d01ce6ec57fc591152957ee1cdcced543d7eafb7d", + "lines": 289, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/tests_resource.rs": { + "content_hash": "3ea3003b8291fdab8bfb152d49db42e4c45dab1bf916a89bf2e1650f71aff822", + "lines": 560, + "functions": 26, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_chunker.rs": { + "content_hash": "f0cc30924b1441600d59602f94906775f5a056ade2dd6f6f4c3c5cb9f412e675", + "lines": 136, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/lock_merge.rs": { + "content_hash": "b4b7097556494d0affa4ecd89af8c3030b55570d213b020fa71d89b534392c9e", + "lines": 210, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_rolling.rs": { + "content_hash": "cbca7f9c8fa3f645deb82608388fe64e767b9550f3388416630c2d5a233b8aad", + "lines": 261, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/kernel_far.rs": { + "content_hash": "bafdeac640d0494aae58e3ae0512cdafacc7b6aacfa43c014bc085e4a238a600", + "lines": 139, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/main.rs": { + "content_hash": "031362bf1ad257336bf8080cd66c53ebbdb5641dba93aef10f20443af6541acb", + "lines": 33, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/dag.rs": { + "content_hash": "fd7c4d014b94120319649575e44755cb7f27c8a6c3149910df5b7e766122500c", + "lines": 150, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_quality.rs": { + "content_hash": "2c94ea204e4a115133bc709888f1e82c24e6253e59a85578bdf7c289a74d90c9", + "lines": 272, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_misc_4.rs": { + "content_hash": "a60982c4decfc1da5d2ed6e906ab84833f3c067340e77250c8498f93b290409a", + "lines": 282, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_localhost2.rs": { + "content_hash": "dd03bc0e3ec79a5fd6befc95bebe05acb5cf0e136166b08ab2906f12b662f2ed", + "lines": 268, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_hygiene.rs": { + "content_hash": "96676f26059702286ab9a5351f1c895c82a76c22dc3aee5661d13b9308f80174", + "lines": 497, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch_graph.rs": { + "content_hash": "6880907d29ee1e23db3610830ce143e3ce6c1e5d1b9a7d3fa238e5c3d9b98c81", + "lines": 1142, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_core.rs": { + "content_hash": "4d729bb1416b25dbda925c1936253ee3ba2b4f861f3b82d7200ac656a67a1516", + "lines": 223, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_2.rs": { + "content_hash": "b299404221428f44c430c474ff6684c540df14375ce9b1b68d648bc864bf0dc8", + "lines": 426, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_4.rs": { + "content_hash": "daf747d1945c7b4cc9fdcd35cae653abb2446da79354f4d1ace15a885b27bf08", + "lines": 585, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_mount.rs": { + "content_hash": "5f3ff36a90ea280516cdd7bed4f53353133d7c2d88d79f6eefd3e3fdda931d07", + "lines": 258, + "functions": 19, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_meta.rs": { + "content_hash": "9f59758cea8e4a8dcc203505a580502736d6f22804d7b695352b0c2795cd307e", + "lines": 130, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_show.rs": { + "content_hash": "c359a181ae6f3ef222eef0553c6d2c97aeb833b8c5cbfcac40da7f46bc9d269f", + "lines": 248, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/lib.rs": { + "content_hash": "e0b8dc7a5e97c44562a039ac02eb9134596d8ad98973a25080203f32a92e1067", + "lines": 12, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/functions.rs": { + "content_hash": "31f6358703727288eb835d958f8c712ce3b97f031239d2569e58f9e9aee33c8a", + "lines": 165, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase67.rs": { + "content_hash": "ec27a9281d427d21d74d40932e78ec67830df492548a4b4cb808f5b48abd75af", + "lines": 191, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/expansion.rs": { + "content_hash": "36e647edd310f9d8f1f30595e6a50c1b5f5f352a5da67ed77f65fa1f77649fe2", + "lines": 110, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_status_5.rs": { + "content_hash": "e46802b6e6abde362a1f34bfe75deebde6f8320ba58c70c7a279f28bce983f41", + "lines": 361, + "functions": 59, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_graph3_c.rs": { + "content_hash": "d4d7d08d99de4e8d2d5c7c80c481d2077dbbaee1a84d7cb7a4fb1a8ceb9eed44", + "lines": 267, + "functions": 35, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/tests_secrets.rs": { + "content_hash": "c3e9a7a11caef27d4950768370be2f68d69ed711fb48393ece5eebaecd99fe80", + "lines": 440, + "functions": 39, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_repro_score.rs": { + "content_hash": "eb5c877d15c0d4f003c3474c7eaf429919bd55df6a4fd3805415817953193540", + "lines": 183, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_helpers_time.rs": { + "content_hash": "038e90da543fb51cbba559b761d649039ffc84c0aeecab9f9bc0b763aa7efe67", + "lines": 36, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_validate.rs": { + "content_hash": "7b9db1114d00359a0bc997e5562cfbdc1c2b59b1e95fb423eaae4f35571af7e0", + "lines": 168, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_profile.rs": { + "content_hash": "5910625e51426f1656aca1054eeabf43b8f0c113b4881fb681e4283363b59bdf", + "lines": 104, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_show_2.rs": { + "content_hash": "bd627925118bd47ac5bbbca0b90951c6fae93b5bbf1617a2ab27dd5bc6a8f0ce", + "lines": 225, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/recipe/mod.rs": { + "content_hash": "a40beb6014ade2c9c0a635661efaac91105151fa0efc8d077475cff6f6efc4b8", + "lines": 23, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/lock_repair.rs": { + "content_hash": "5df1a01c6d3e651a03ce69af2bce43587e0caae153bdb9650250bab85e85548e", + "lines": 122, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/network.rs": { + "content_hash": "b1b8abdffb20b6563eb80db130032e0cc1f92f3e86c28f8917d6082e6e211807", + "lines": 535, + "functions": 37, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/state_management.rs": { + "content_hash": "f59be77c50f3a54522dee4c421f271bba4e36033ec2c0013173368733f33d7a6", + "lines": 125, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_cross.rs": { + "content_hash": "fc8522c2858d35b0f01007c86b2e33dc65f53517580b36cc757545ad72217855", + "lines": 362, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch_misc.rs": { + "content_hash": "61c9068fcada0637c306cbbe559a6d286b298da3521038558f5de778e1e4a8fd", + "lines": 295, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_transport_2.rs": { + "content_hash": "e7e61b26181d06ba30ff3d35cb9b5c6d5212a30db2af157146d8f1f2be051ab5", + "lines": 467, + "functions": 30, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/drift/tests_fj036.rs": { + "content_hash": "ce89d4858eb542c3e505c8bd744c9ceb7d43ff802fbdf172f084bd088b239aa5", + "lines": 236, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "benches/core_bench.rs": { + "content_hash": "2641736063b138182417b8a848286f6f69435d00049397df49c750ecaf7b736b", + "lines": 610, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/file.rs": { + "content_hash": "a1facfe1a21635b0eadcf7b24ee4d0bcedb30312b957a665cf5c87ab03c3ea8b", + "lines": 127, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/drift/tests_edge_fj132_b.rs": { + "content_hash": "703679ec24f82db736126262db62b34f04517ff4e038279669c874dbaa646fb4", + "lines": 272, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/snapshot.rs": { + "content_hash": "83af1a99813a12ae3c8668c3a8a38bdfd54e5efabdd337cce73502b3aaf41950", + "lines": 168, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/machine.rs": { + "content_hash": "1016a4470cfb85dfcd868df21fe8086a3b18c842765eab1d22f967aff8f525b2", + "lines": 533, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_plan_file.rs": { + "content_hash": "18479a77ddfbe1a29914e563331d745113f8800080a19879f28728c00978d59b", + "lines": 224, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_workspace.rs": { + "content_hash": "6bc034afcb07773cf8fb294368c3d8dd2396f64bfb02ae65d5d524ff35e27605", + "lines": 187, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/tests_container.rs": { + "content_hash": "10063bb3e84f26c0b2c758899d3b5a780c5b3a57d5825702a80f0bcf74bad620", + "lines": 468, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_resource_detail.rs": { + "content_hash": "fd5b137527c1c122fe0a93aedd0df549c38cc84ecdf1d8193667b4bcf74012b1", + "lines": 466, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_show_3.rs": { + "content_hash": "69c523ec10fb607ba10cfb566444444314dd0fcb96954a26dcbfd35a9f72674a", + "lines": 256, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/cache_exec.rs": { + "content_hash": "eb1d3d7a584cfc38ebf258302c78b43ec08dfa5eb1c94c809bf5e8f46665f29b", + "lines": 254, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_hf_config.rs": { + "content_hash": "eb2abc98fdf184aea958e4c5868c7a0f967a227367465aaedd4ad7e992bdb546", + "lines": 373, + "functions": 24, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_apply_b.rs": { + "content_hash": "eaf6a58fdb7433433dc3f4414708a46af1b614fd5e7566fbd5aa37aa2169f917", + "lines": 361, + "functions": 26, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/task.rs": { + "content_hash": "cac6107376b85edd8b7c7a1fc9cbe8772a7508d549a74b183420601ddc15ef37", + "lines": 165, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/state/tests_encrypt.rs": { + "content_hash": "07bccfcf40e2b5ad38e718da89204a331512f0c74e8c13dce22e6864e30bc5ac", + "lines": 61, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_paths.rs": { + "content_hash": "f744e57ef946a04fa8ab74b4b2a5c04a382e2ec42a7cf6b3a78fb6467babad98", + "lines": 517, + "functions": 19, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/lock_security.rs": { + "content_hash": "8018b5a7797f5483703a32671e476ecbc4f8afe01eb6a727a39679dedb706be6", + "lines": 392, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/store_provider_import.rs": { + "content_hash": "c94d617cd5ae49aac9449b53c444890eb8c33633c747854f23eb18fcaab7490a", + "lines": 154, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_graph_core_1.rs": { + "content_hash": "b996492b79f04f8f625bd3b70571a2f5141cc8abb40404afd8256f97d6a1af27", + "lines": 1033, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_5.rs": { + "content_hash": "bb5a8f1e67984283ab1d11ed7eaa56c715f6b8f760bcc0efc73792349be31b8a", + "lines": 585, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_print_helpers.rs": { + "content_hash": "8ea861672f99ebb214bf16a2f5235442ae438721d22c06efd88d6b4cff1f8c07", + "lines": 183, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase90.rs": { + "content_hash": "e9ec934562b29f5243ff4ce89b3d1c0d5ec5010fa5c8b7b0a10e330c1b86050c", + "lines": 309, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase84.rs": { + "content_hash": "33863ec3fca34a46d4f8ba2b7c3949438640899e7793463ed3dd93627d48d6ef", + "lines": 289, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/sandbox.rs": { + "content_hash": "935b1ae7b717149c9f30c52e6859ac131dd16e0d25ededda34f1405405180873", + "lines": 184, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_intelligence.rs": { + "content_hash": "5e77edc6f71d2664eddb5d0231eea7a01170920d47241fb2246ac48edc0251fc", + "lines": 656, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/apply_variants.rs": { + "content_hash": "7fb2ff4c429a910521f9baf6668437bca47db6c49ebdc70574e1b38a380731b7", + "lines": 349, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/planner/tests_plan.rs": { + "content_hash": "06886b0275b2a61d010df1fc8a9b7e279ab76367b6f2a9bf33e1be767ec6071d", + "lines": 357, + "functions": 18, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/recipe/validation.rs": { + "content_hash": "ffaa1f188e22ad0d1fa3d77f17273174eddae18e8e62cdeef3cc7272b34a6dce", + "lines": 36, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_remaining_6.rs": { + "content_hash": "102b940279a20a22ba9708ccccc70260cbb63e747a363dd12a2d0b62c9a704c2", + "lines": 492, + "functions": 40, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch.rs": { + "content_hash": "57127062694b8d05fc282807ed5da44ecdcb454a250cb19504e13f39593f38d1", + "lines": 141, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_provider_exec.rs": { + "content_hash": "95360fc2385a6b6ecdc754235766dc7578fb4687d8a30d7333f3fcbdf2ba6990", + "lines": 254, + "functions": 19, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_12.rs": { + "content_hash": "a23683659b99ed53f1d94379a414bb1088617b377ef4d672d3c7523e6330e14b", + "lines": 584, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/state/tests_process_lock.rs": { + "content_hash": "41e861f0d13f2c40d1aaeab5a594b62f02b39da9652be90c3991aa573016dc0a", + "lines": 85, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_user.rs": { + "content_hash": "948e80757627608afc462218c4f2fc974469f0914f19a5ffe516ca4ac79217d7", + "lines": 473, + "functions": 30, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/conditions.rs": { + "content_hash": "834a0e865f4515947593fc5c5327d23504a78579aa8283aa689dfc48e864f1cf", + "lines": 321, + "functions": 26, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/tests_hasher_b.rs": { + "content_hash": "f5b697b99c5076d1499ed56d039551e4d573da8e5140ab3199102cdc0ab119a3", + "lines": 265, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_audit.rs": { + "content_hash": "635bd8f48d74fd82be82f519bad6521032b68127a73aea0816941feac68f0417", + "lines": 460, + "functions": 19, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_concurrent.rs": { + "content_hash": "d06fa49b373312851955fe8ac459c25ea1a833b9c29adfbc9fdb160e11bd5be0", + "lines": 356, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/apply_args.rs": { + "content_hash": "d8a4ea7b767a9afa7d1ef57e7de87dd0a3d3e9247f7822262c6e2084026c0e7a", + "lines": 680, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/misc_args.rs": { + "content_hash": "523094e0263ddeb5241d7d804636081e17fc86d0dd6ebd6fd63222fe7036dc50", + "lines": 349, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase88.rs": { + "content_hash": "cfa8ab8cf5825d7e35be208707abdc2be25b856612f93fb9945ad1990a248240", + "lines": 313, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_7.rs": { + "content_hash": "b53d80fc3bb932221f9f7ac428f3b0c9e3841a0e908ddae73f407958e5be08fc", + "lines": 703, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/mod.rs": { + "content_hash": "4be4616b935c9a86bd39e95e6310c1c6a1ab7cc607493b9ecd10edf36d2d9325", + "lines": 340, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch_store.rs": { + "content_hash": "eff09a6186bc91bdc9a003eced9d2fc95ccd29d85d6fd753c98bb269ec29030a", + "lines": 116, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_helpers_state.rs": { + "content_hash": "bdaf0fef198566aa4ea317fdf578d0d5676e470962159a2bfe61af922a2af1c0", + "lines": 147, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch_notify_custom.rs": { + "content_hash": "f8037c4ca348c06dc50eb5ee323d77e9412fb370cf0c5299f5b9716b334488d8", + "lines": 427, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_status_4_b.rs": { + "content_hash": "3032f88e69bbee38dc979ff676b6ae8c58e0e085b551bfeafa4b3dec3fdfe768", + "lines": 335, + "functions": 42, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_transport.rs": { + "content_hash": "c33ab3fd3cb1a5bfe41ffd3bfdd4ac703183e6fdfa303857a21aceb497216f7a", + "lines": 276, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_service.rs": { + "content_hash": "650c36e857b38efd8b572e3a91b19bed1bf5328d7af68080a5f4f4fb73ef3d38", + "lines": 421, + "functions": 30, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_governance.rs": { + "content_hash": "3c3cfe711b4c2caba6a2eb351a7d7fe324589a1e4fbb8f51dc32599f0cbda81a", + "lines": 364, + "functions": 27, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase95.rs": { + "content_hash": "bf0a5c55af721110cf5d166d463b5925dc6780913ce7fa0a3580884c2f9627b9", + "lines": 215, + "functions": 30, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_lifecycle.rs": { + "content_hash": "e2aa32b5d86669dacd3372184338375a61d4a42d0359a6e206aee5bb0c1bd8f0", + "lines": 285, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_fleet_insight.rs": { + "content_hash": "9d2c58b613313ecf20a215e5139db11c4cb43f552494b71d4498ddd40fd77e77", + "lines": 706, + "functions": 30, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/test_fixtures.rs": { + "content_hash": "51f211f7c40ee50f9a04e7fbec3829c9349a737038a51803046a47e68842fe36", + "lines": 67, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/validate.rs": { + "content_hash": "6233d0994ccaaafc3c9112422e700b7feceb4883f7baff463b6595bd623d2455", + "lines": 131, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_intelligence_ext.rs": { + "content_hash": "eeb9abf73fbfc962479c96003f7208a7ff1c33a9b00ae21afbc1ce91adcb8d61", + "lines": 759, + "functions": 27, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/store_convert.rs": { + "content_hash": "9a4f53e95baf8df5a52f8585341337d69fe3b1b7e1586abae21419e9525fdabd", + "lines": 131, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/drift/tests_edge_fj131.rs": { + "content_hash": "c55d3a18a1cadaf071128745394e2cf59de8a5c9806452e07766c38d12490ae6", + "lines": 313, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/drift/tests_transport.rs": { + "content_hash": "930114ee44480ef88f9e0c153202ece0072243cf38b04d49f517e598b3dd0809", + "lines": 247, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/check_test.rs": { + "content_hash": "7ad5988d22f832718573ae82a76be7f2b607c9ec3e1cb2cc6d18c0b7da596da6", + "lines": 254, + "functions": 0, + "max_complexity": 0, + "category": "TestCode" + }, + "src/transport/pepita.rs": { + "content_hash": "ba21671a08f546817c14a58857d4dfd8e893e2b7a10f1c1d5d187beb0d0e2635", + "lines": 385, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/mcp/types.rs": { + "content_hash": "cb8c7e82ad98e5597f9b9c97533399eaf4a0b6d108470ddf272d4ed74b10bc75", + "lines": 186, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_quality.rs": { + "content_hash": "2e47b622070cafeb2e130070cf464fd630b104d8b4a3fed3736403a7628833da", + "lines": 506, + "functions": 38, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_apply.rs": { + "content_hash": "0fe8601283da0f753ed01431e5401bab3b82c7243b495696ba658cb24b9d1766", + "lines": 427, + "functions": 33, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_16.rs": { + "content_hash": "f26edc3898c0b3cc4167c24262fd5d6bbe9713971d0bccdb892f27833bd6180f", + "lines": 585, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_compliance.rs": { + "content_hash": "189ea51340b3381cae608da38eeac89e569cc1f7f918b75cfb66d82a9dff6499", + "lines": 208, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/validation.rs": { + "content_hash": "8346d643a4450c0aa664b04298cd5e3b8483e74ae34344148daa81d625359f30", + "lines": 118, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_10.rs": { + "content_hash": "41a6a087a804c30a8cef520b38a978dbc8e73705209cfc23cb9cee7bb37d630c", + "lines": 660, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_sync_exec.rs": { + "content_hash": "d889f6a4779827c744d4bbce4f87faa6ba8daf84be8284cbfa7f032c394e8923", + "lines": 229, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_args_2.rs": { + "content_hash": "e91f9e265dfb772ae8daf143fdc99fc593cdf114e61451e5e0aa1a3f19aa0728", + "lines": 479, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/tests_purifier_b.rs": { + "content_hash": "88ee77a349a942e64af435510638445d0cbde59a2018af5f591f72d4cb56903f", + "lines": 336, + "functions": 19, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/hasher.rs": { + "content_hash": "4a099da8167b27b580663b6be81f6964b35d00c5083a52c4396481338077d97e", + "lines": 93, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_fleet_detail.rs": { + "content_hash": "866a7f5e541e1b701ad06df209e70e9849352598fe811a750ac45386f86dd546", + "lines": 483, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_6.rs": { + "content_hash": "5ad945ac1b08da3090f272806b36e6632baebf13aee0dd6a4de1adceb03395b8", + "lines": 582, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_gpu.rs": { + "content_hash": "3fef1a4a3c63a750a6410c318f593afe6d2de68169f76c456480671f5ace8852", + "lines": 447, + "functions": 29, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_1.rs": { + "content_hash": "3b65e06a29308f5383fc8b645ea2e518932fc2f97a6c4a8ffa4f55bff7eb0626", + "lines": 514, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/store_archive.rs": { + "content_hash": "1e3b5b828ede0561463196455eeaf0ca8e3bcaf7a186e4a7c655a77814be7378", + "lines": 216, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_8.rs": { + "content_hash": "89614594099be17f2f6a2821b5ad27cd9cf91a944f698a4b769f8f75f7a72c4e", + "lines": 586, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/lock_ops_args.rs": { + "content_hash": "0a0ef2dd6cf1e8a992a644dabcd8fdee6fccda5656aa865cbbd989b0b81d48b9", + "lines": 221, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/types/config.rs": { + "content_hash": "273ef42049338b1bcb6eab93232ef065b5848a195af8686dcfa58019bfc7fbb0", + "lines": 373, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_compliance.rs": { + "content_hash": "2c77b5f6328ed8db8bdd89c4ef5821f6af04f93116f92c9f8820286a4e5247ab", + "lines": 347, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_predictive.rs": { + "content_hash": "2f34cbe8058c7aaa467db4ced6efa82498cd3c825067615f25616ee8f8f4f381", + "lines": 489, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core.rs": { + "content_hash": "ec2276a149ff2bab435d03b68e2b4cb0e0bf9500014607f887488c339097d43a", + "lines": 359, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_filters.rs": { + "content_hash": "2c04e083f7fa64028db31cb2d1a0c8181322a6ab0e715ec3d470d1fd986c4065", + "lines": 400, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/derivation_exec.rs": { + "content_hash": "c4db2a22e9bd8f74b45f19e88050cbadff336e8b002b8a75d0ebdf8686f0ee0e", + "lines": 352, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_11.rs": { + "content_hash": "0f99be1bbe1377b6ab724baf304431a900a7361d15b4b82d7d52a43a2dfea94b", + "lines": 584, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_package.rs": { + "content_hash": "d4b770875ea35b767d9c9a4d14e1a6bc544930f4414f48114f6dc11c1472f532", + "lines": 281, + "functions": 22, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/import_cmd.rs": { + "content_hash": "1aac0167c0c8c6a909b5725d36bb3fd5d92a67f1301fa69897be6117fe507246", + "lines": 295, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/secrets.rs": { + "content_hash": "f04e8e8de8dbf25c709ab07f8a237dff5fd923b92956dfcff6f3f44e315a9875", + "lines": 154, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/store_pin.rs": { + "content_hash": "225c1a08bd1f8c92618529ce4bc3214abd0c58b601a7a8c7408170d728e959b5", + "lines": 211, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_remaining_3.rs": { + "content_hash": "db47c0551191717e888422f39d498a0d91007c5eacbb1402db5a9561bff12c48", + "lines": 454, + "functions": 42, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase82.rs": { + "content_hash": "fa4cef482998707dd19209834ba250b6a3dea79eb38120b118e29795c01b861b", + "lines": 289, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_store_diff.rs": { + "content_hash": "73079617698d552eaa3ce7ba0b6c405be84c718e78eee852ac638fbbea40ed75", + "lines": 192, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_gc_exec.rs": { + "content_hash": "e1fccbbf7f3ada96e33a6782f9c8a65e637f128ec07f668a829743c66fe15bd9", + "lines": 252, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_status_6.rs": { + "content_hash": "7aad92ee7550f4497bbf6ef8c8450ca3107b215fe6091fcd58bd1c1ba3b7ba8a", + "lines": 485, + "functions": 74, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_dispatch_4.rs": { + "content_hash": "cd7a680a2c785cf0ad6c703f6073369b70160109b5abdbfec4e54cc094312e04", + "lines": 500, + "functions": 18, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_check_2.rs": { + "content_hash": "90f36300ab8d3ac244bea609b6f03f08247aea096fc30cbf25fb45a8cf6cb6f6", + "lines": 411, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_drift_intel.rs": { + "content_hash": "a1e382537802f1d90981b5a9d78b08857ec2e3f418dd56826c87e5fec3424b36", + "lines": 393, + "functions": 22, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/mod.rs": { + "content_hash": "30d69f454459c3979acf9916e760d80f3d2467d3095367eec183a476cb93b6b8", + "lines": 113, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_topology.rs": { + "content_hash": "7a8a8a0e3dec311df91ea693be873441b2d0db8b81dd09e33ab3d94521411888", + "lines": 484, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_config_quality.rs": { + "content_hash": "f0bb4d6639b69789a74c6fa91155b34ca6600257ca7136f2623ae7e9ab049227", + "lines": 494, + "functions": 26, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase75.rs": { + "content_hash": "bf07a1a67b718dbbfa557d46495d3bd2da898466891f5526bcd817db3e3e390d", + "lines": 292, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/apply.rs": { + "content_hash": "05543a44c4da020489c7a65b8e5ae2e594d3e4036c738ec0a8ee8f3525426352", + "lines": 289, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "build.rs": { + "content_hash": "d68c4b581bc2211c97f952c4cd1aca94426b84e419e52071a421118e381f833c", + "lines": 9, + "functions": 0, + "max_complexity": 0, + "category": "BuildScript" + }, + "src/cli/tests_phase99.rs": { + "content_hash": "3e99a44c3fe4b8c4734bb170b82d7dd8825335c7b3980ef6f7504341aba9e153", + "lines": 237, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase65.rs": { + "content_hash": "7becd26ed753087000d41cb0848a75dd670d9590ada04d710b194e0fde1b6d92", + "lines": 188, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/drift.rs": { + "content_hash": "6ff6e37736702b9237f75821c99fe3d39fdb3d9996f61a8dfc750ff94c93320f", + "lines": 331, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_remaining_9.rs": { + "content_hash": "e6392c9f422e76d22599cff1f48d9f31e9b9108407425b644600e96fcaca726f", + "lines": 466, + "functions": 29, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase107.rs": { + "content_hash": "e486299b14d73cd633bb447a4c25ad0e122c296dd1b7bc5d38ad973de7f6df69", + "lines": 225, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/tracer.rs": { + "content_hash": "7ee607dfc9017211051711fad0510f80f7dea80cdb65a7f03528ed64ef39f3cc", + "lines": 488, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/contract_scaffold.rs": { + "content_hash": "50996afc43ee2745591ce7b4ff9a3fb25ea0912354f21bed5a0802871357da84", + "lines": 80, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_graph3.rs": { + "content_hash": "0964177398f72d99d5ea1f4a213a72dd48aad9df5a22c763d23440ef22e037c6", + "lines": 253, + "functions": 33, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase70.rs": { + "content_hash": "2a92c7115123b83d8d0b4160f3e9332abbea33cd994106a7e8b93c1fc3e2f376", + "lines": 280, + "functions": 24, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_misc_3.rs": { + "content_hash": "12d7d262f0c2b2c8e449e681dd8f262362e21237040e8da02a8deecf2d527a42", + "lines": 428, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_intelligence_ext.rs": { + "content_hash": "66d86de02b1b24a4732538620580336edb5c501d9a299fdfbe0b122c0e12643e", + "lines": 801, + "functions": 29, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/ssh.rs": { + "content_hash": "e7bb315129a19f0cde6b1f62f0dbb48ec900f31d719affa4474ad1812dffe4a3", + "lines": 202, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_analytics.rs": { + "content_hash": "9e5ee6bf3a334977ca44c02b677f0e56b00a40d97af4c99ffe41ae12d7fab99f", + "lines": 486, + "functions": 28, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/store_diff.rs": { + "content_hash": "3604892b9c7259ae2d773fe300b4fb5ab77fb8e982e0188e783e913517c4e5be", + "lines": 161, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_resources.rs": { + "content_hash": "86864584590b7104eb79dfd942dadbf2edf0539ab749e174a78d2419452cd311", + "lines": 376, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/tests_helpers.rs": { + "content_hash": "64bebc379fca0c0a1369309d939cc755d17120891ca79b3a9a99971cb7fce950", + "lines": 216, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_sandbox_exec.rs": { + "content_hash": "8fdfb88e74621caec25f8073fcf3fdbd10edd452448f4b6b265c55ea9b466ffa", + "lines": 248, + "functions": 18, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_derivation.rs": { + "content_hash": "ca933c0431c5cc9b6f89f0db012202a65a6387207bdb00dd80a8cdd2dd9f5016", + "lines": 293, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/store_args.rs": { + "content_hash": "10d68eaa23db6deeceec6e5a53b97988042941256d1ae44aaaa7a4889e0c4869", + "lines": 250, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/destroy.rs": { + "content_hash": "99e2446766c777d132f7a0fd113bcc5f077e937b9642ae77f67b35523b02a902", + "lines": 275, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_helpers.rs": { + "content_hash": "ac376d55982d7b65a4276da58b6e9d09bf96add09cfa19c92116b5dde0b8548a", + "lines": 246, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/sandbox_exec.rs": { + "content_hash": "81497fc856954a8f238808fef3d031046141e36ca6ff229d057d28c8d31addd8", + "lines": 322, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_4.rs": { + "content_hash": "adfe0851995390d19faae73140f40d2f5b7c70a730026d0a8410ae7eb122672c", + "lines": 707, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/tests_waves.rs": { + "content_hash": "43c4ea3a7fe427029c0a4eff6b84179b4553297a31a7663010151f43ba226022", + "lines": 144, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/purity.rs": { + "content_hash": "be7d1125758a0e3432bd47eb70ebc52484130c0c556fd02d9397638aaf500790", + "lines": 113, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_remaining_7.rs": { + "content_hash": "03d4a2bf12817121f557c0251456edbf232593631d66cda7c7ab1747ef609ecb", + "lines": 386, + "functions": 40, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_args_extra.rs": { + "content_hash": "7b4da3d7345f30e8e6a1bf7fae6e84e3c3fbf5979f1a015fc41f4094f5af94f6", + "lines": 538, + "functions": 52, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_1.rs": { + "content_hash": "a9585baa58750091b28e6495aebec099df26f3b35db61484f16b32f2c3cfc37e", + "lines": 395, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_validation.rs": { + "content_hash": "5bf7f82e7efcb46043483e45cf4bb0fe7ca327446b6b8b95f73a24d98a20a383", + "lines": 492, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/gc_exec.rs": { + "content_hash": "2af6ad4e5be133d8db7efbc89197594791c8bad9c0c8f8452f6e49244c9b66d4", + "lines": 189, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_status_7.rs": { + "content_hash": "d3f9cf0e6a16168528c207b05a4896c2a337e3e63097caa895344ea66e8da5e2", + "lines": 380, + "functions": 58, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_counts.rs": { + "content_hash": "03cf2179bffbb3dd1c257375fab494bc5d968154375c543492c255fcd99b0f76", + "lines": 97, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_fleet_reporting.rs": { + "content_hash": "3901fe210760f37694820731b9431fe74558573a333681f17b9da1955f03d19f", + "lines": 86, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/helpers_time.rs": { + "content_hash": "3cc6c787859c42c701962a8943fb8d48c502416c59af9add56c40b500a1b278e", + "lines": 82, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/multi_machine.rs": { + "content_hash": "04b230f6137c1cf850adeb484e49ffe4da9df5899f879ec799441db5ff51d36c", + "lines": 212, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/service.rs": { + "content_hash": "b196fa1fe260d1ee4fbe5490d9e73fb475310871a762cd9962aa81be2e6bb56b", + "lines": 81, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_snapshot.rs": { + "content_hash": "c2a2e43628b0107466662faec0816f1055639d40663df4b04855941969b1a437", + "lines": 176, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase103.rs": { + "content_hash": "cbabee64dc0654ef58d19e26d4037ed79847fdf34d04e3b12d51e9cf56b77028", + "lines": 208, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_provider.rs": { + "content_hash": "223070fc681c59757242061bce3987209d1f621c4ba1cfe92d0dd9d5a318de0e", + "lines": 263, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/provider_exec.rs": { + "content_hash": "22bd322b3e15973153ef36478aaa44d5e01f8b09f40617154bae97860dd3f400", + "lines": 244, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/provider.rs": { + "content_hash": "1e14c29a40c634ac83ecfcc1597d908c02069bbd22a23c97d65cf3489226d1cf", + "lines": 206, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/codegen/mod.rs": { + "content_hash": "98e75556969ea2b3ab90bc22de30fcbfd8a303426fb88845768c65bee0a7e51a", + "lines": 15, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/far.rs": { + "content_hash": "705a31a330e322bc78bba74d76cabb4e90d8cecaf72d126745a70886d0a0edf8", + "lines": 196, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_9.rs": { + "content_hash": "12615ab2ab0e95d47c3c356ba5e0e6667a55ca386a23bbac175113fc13e436b0", + "lines": 528, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_ordering_ext.rs": { + "content_hash": "59e95baf8c83c9aa4e209c27a5513debdfb64a4e08693d245d77735b0bfc9100", + "lines": 270, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_7_b.rs": { + "content_hash": "bd7f7b8ac3b3ac62a3c27a9211af78ca6cd5ced4eb5cdcbe1d807fa6f3eb28c7", + "lines": 476, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_13.rs": { + "content_hash": "1110878080dc7f004e5c4b035c9e0242aa4e5192e8023c8c0878e1a7a0b44167", + "lines": 584, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_transport.rs": { + "content_hash": "9be38f2f8c563b82f6df823e7f47e1000f238d7883f930e1b32f8cf3a36b9a5d", + "lines": 487, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/score_cookbook.rs": { + "content_hash": "67ff3d234d87993e17cf72b00da5d0b9c2c3237f7f09ff2a656c19a60459af18", + "lines": 104, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/closure.rs": { + "content_hash": "5fec3b8c5ad2d7118ba1f7757bcbd756b0d424d574d7ca997de51c42ec3e660d", + "lines": 65, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/scoring.rs": { + "content_hash": "8171a5ffd79df712ac72d34b151c957979eecbebfad376bdc03a7e311b63859f", + "lines": 619, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_3_b.rs": { + "content_hash": "7f879d507e8f70be38da61e42293acf03bf3025c2efb27a5b2069ac3487c504e", + "lines": 475, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_contract_coverage.rs": { + "content_hash": "1486025963182ecdc9a8d555929e9d57613dc66463f139225f9f477db4753aa0", + "lines": 293, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_operational.rs": { + "content_hash": "c67f575d0b6b37879d87be18a304c51a63b4d127184f0c0b39a4e70ea8c9ce93", + "lines": 529, + "functions": 18, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_args_3.rs": { + "content_hash": "6fb37cabbcb7b47f98717eb9c3906331482a7e7d0da85209b773dadeb4e6d401", + "lines": 392, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/fleet_reporting.rs": { + "content_hash": "0f004041c55291e5130d6b8762217ae7bc3121a309e9f8912ffed6c5ca1b4853", + "lines": 368, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/tests_container_b.rs": { + "content_hash": "3e362db276afe5b00807edd1bb908ab0d43ede1ac1e2380756745d1dcee91e65", + "lines": 360, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/pepita/mod.rs": { + "content_hash": "352fa33729052c5810ec9130601b9a9be2e8209fd368f98431faa67d1b9abebd", + "lines": 218, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/tests_anomaly.rs": { + "content_hash": "7f8482500d6ec9b32ab2c892b71c8de993c19359baf1bdfc8d3301d9983d2c77", + "lines": 276, + "functions": 26, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/pin_tripwire.rs": { + "content_hash": "6642a1bbc18f4ff12b66e49e0e7751744ded7a5a4fdfcad6cb8aa991bb6bf3d0", + "lines": 117, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_queries.rs": { + "content_hash": "fc435d443a5715aba50557e2b267a94ddda0a11233fbdc0376662b99d8f9cec1", + "lines": 250, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_graph_core.rs": { + "content_hash": "cdbc15670c287d28cf372460cf34fc03c5a8680b0953cc697279d7774bb53605", + "lines": 423, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch_status.rs": { + "content_hash": "2ce47fd7c3525a87d5bf3fc9b4b0eeb71adca86bd4870322292cd259efd1a4f1", + "lines": 1448, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase69.rs": { + "content_hash": "2f2bcf585b5143f5b20d41afab3af4b82173d27fc481a5586adc2e418465110d", + "lines": 280, + "functions": 24, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/drift/tests_edge_fj132.rs": { + "content_hash": "548bc6e30bbf5689453b1ffefda21385743466c3cf7b8baeba29069d569b3d2a", + "lines": 309, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_validate_core_2.rs": { + "content_hash": "8da5adc831bc72bfdc709d66f2bc68dbdc13670c62b7832f11eba6e1c463ab38", + "lines": 805, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_7.rs": { + "content_hash": "48e11dfaa56f1b1f15ef4370098508f3028969f1a681c328ddb6543c49fc1135", + "lines": 396, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_export.rs": { + "content_hash": "7e4f37f57e8ba466cde502437cdf0bd43eaef2868e103586294a836e10250f3d", + "lines": 517, + "functions": 24, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_misc2_b.rs": { + "content_hash": "f18f96451cb4e19cefa0a985dceb3afa1871798d2e3be85141e1685234c17263", + "lines": 298, + "functions": 27, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_health.rs": { + "content_hash": "0f9113539d8a95272807eab2218080651daf1ddf3b8cce14a28b3d2a4daeaa4e", + "lines": 480, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_resource_intel.rs": { + "content_hash": "86d33a5d43a4e1f5cbe8e5672e93f066e17fe64dd817f2fe5c014a63696f2557", + "lines": 719, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/tests_container_c.rs": { + "content_hash": "3e362db276afe5b00807edd1bb908ab0d43ede1ac1e2380756745d1dcee91e65", + "lines": 360, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/local.rs": { + "content_hash": "42df3372977903d61a060ee4949826793a11e046b38b022b59743c864b4d4f9a", + "lines": 149, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_insights.rs": { + "content_hash": "c202889e1711fc0d1c94aa52e338515e5dcb07ecd74e83f12960bce19ffe1f20", + "lines": 350, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/mod.rs": { + "content_hash": "c36359c0bbbcead0cc16fb65703c8bfba1fa0dee5dc8dfe9e314454d5eece642", + "lines": 27, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/state/tests_basic.rs": { + "content_hash": "26773ead1c2a4f5649bafbf9fb0ae4903aa075f74a18d6023262ad0dd7c1071f", + "lines": 354, + "functions": 24, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_governance_ext.rs": { + "content_hash": "594e07b068c78f44240d180b9da8754d0800db3c1ff3282436bdf07a126dbaf8", + "lines": 487, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_cache_exec.rs": { + "content_hash": "c405611445baf436a9ffdf7cfd971286b1a7f20564362a648b2d5775956629eb", + "lines": 235, + "functions": 18, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/graph_args.rs": { + "content_hash": "1ca088d8da750f957172e6d6fc1fae080a39d0f03c25448ff2136941d70aaec4", + "lines": 496, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/eventlog.rs": { + "content_hash": "66aa015f1b02ccd27b6e8e9b78b013e6cd3c873ebe2ac8087030588a90185897", + "lines": 105, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/codegen_scripts.rs": { + "content_hash": "1aec4a1f7fbd71e200736351449eb48da43034e7c29c4158c6253d4ec46f47e3", + "lines": 231, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/tests_functions.rs": { + "content_hash": "afad07b72fb485caea6cbac2f0efce2b0d3c27d9b73008fa8fb1f55345d5f58a", + "lines": 240, + "functions": 28, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/validation.rs": { + "content_hash": "7a567c913b4d56dad15ebc937c0c47946b485bc508da83a434fa4f3f2bd38232", + "lines": 133, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase63.rs": { + "content_hash": "93d3e0b887e81b6e5c2c73b7f8d09f26bc109f8523e25b3a1bc1e0a6a3bafcdc", + "lines": 193, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_history.rs": { + "content_hash": "fbeabf5f857e37748c156384889a1b7ff8e67b4b9ef626077d8e82ffad8bb45d", + "lines": 230, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_show_1.rs": { + "content_hash": "146e30fe694909412f1d8a3157c58e7c8269c41ce0c7f35dc7e817d881833ab4", + "lines": 418, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_init.rs": { + "content_hash": "552cdc1d8ac19333528fbeed665afedce64d44441cbb2926f85b32aad32f032f", + "lines": 551, + "functions": 26, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_cache.rs": { + "content_hash": "1e4c9ebe04fbde22726ab94687dd01bb3fe069daecfa5777a1108b2f966524bc", + "lines": 252, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_file_b.rs": { + "content_hash": "3bec80020c9d09db1945cb4e43c56c0a623cb27e60da53ad8bf3d31594414363", + "lines": 391, + "functions": 32, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_observability.rs": { + "content_hash": "db0c4b24e95f1e78eb9041308e5bef150b1f4af47d4c9c70afc019edafccdb8c", + "lines": 419, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/convert.rs": { + "content_hash": "02a72e67c50e2ff057114ec4d407d4de92e92e5b54ebda75c477862fcbfe930d", + "lines": 221, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_advanced.rs": { + "content_hash": "577782791494f3a2f1f4701ec33e12fe7381a0ab660dc7601d8879297ce6063c", + "lines": 488, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase89.rs": { + "content_hash": "70e540ec4031f62163e0d14d04422bcb6c2fed1e957ee5d70ed2e689b4a6c1b8", + "lines": 308, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/lock_ops.rs": { + "content_hash": "3cd3c37af12704bfc3fa891cbc44f7b36fa604d41e3b72cc0ff281c6b782e362", + "lines": 443, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_sandbox.rs": { + "content_hash": "53da5a42b62345bc14b3ed96491582b76080d76c3050b9be2fb06315ca9e2fb8", + "lines": 218, + "functions": 22, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/tests_data.rs": { + "content_hash": "1f1ae2c8727651048eeff987ddd1cb6b0cd5da5fd1432cf001672485539da462", + "lines": 368, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_validate3_d.rs": { + "content_hash": "cf497a238c35b728a1c06baf2cd495c83321eb609903fb1a2af4f6ea5f7e9955", + "lines": 410, + "functions": 51, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_operational_ext2.rs": { + "content_hash": "fdeba2e3ad4a85d5d5aeb8d0718440d13adc7c090c8cd91276ecb23f210bc43e", + "lines": 556, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_fleet_ops.rs": { + "content_hash": "88ab77b4a769be588ba9fed9d48e35d5f7215e7a7476fcc04518e0de5021aaf8", + "lines": 531, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_core.rs": { + "content_hash": "32b268ebe8b7fdcf7fe1782dec7f04469c435abe99547311182d5e3f5afdfbe8", + "lines": 299, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/recipe_expansion.rs": { + "content_hash": "86024e836a99cac3432954bd6bb22bf8c5bbeea7ea22e90457ef213ff07ad7dd", + "lines": 118, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_10.rs": { + "content_hash": "e7a843ea9f0d533ffb309415b24a45c3132dcf8e4b48d21e4850628571201583", + "lines": 583, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/store_executors.rs": { + "content_hash": "d6911852f2850e6b65bf84434172400be03adf5be7d3dc8a870cb7dba6caef28", + "lines": 385, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_notify.rs": { + "content_hash": "c413f83c75c094afe92882c50880cdd8db88af26daeea15890fa9614723e78fb", + "lines": 789, + "functions": 45, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/secrets.rs": { + "content_hash": "128f94dbc3f53c2a599e3c0b70b8efdca8b785b4d3303bfe07bead8a30a65ad6", + "lines": 201, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "tests/container_transport.rs": { + "content_hash": "5eaf35999f82182fc8ffcfa7bba3084e607fcd733f8af0ecaf9e2088926e4e9e", + "lines": 105, + "functions": 0, + "max_complexity": 0, + "category": "TestCode" + }, + "src/cli/tests_validate_core_3.rs": { + "content_hash": "c94e86e0868d9fd06084bf3fdeb3a05303969bdd50c2ab7dcc054b93cc93b608", + "lines": 246, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_status_3.rs": { + "content_hash": "d953ba308efe6509163a04d8d0ab9b18b59435efe88b5d09bfa8ef2a72a18e10", + "lines": 411, + "functions": 72, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_file.rs": { + "content_hash": "b04d499f3404375fc6c01ba7bcf748f8d33f5c515086550b602d3b7f84fe7ec1", + "lines": 308, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/planner/tests_helpers.rs": { + "content_hash": "20e2adedc50de5de8155b3f1060372f90561cc39b21bb5bcbfee8b85718daac2", + "lines": 90, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_store_cache.rs": { + "content_hash": "bbc8884fec30a6b4be2c5cf2149d76613d22bc4cfe4d996bcd4f92a3d7669580", + "lines": 158, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/recipe/expansion.rs": { + "content_hash": "83036fee9f0a827503f00b1e4f68d826454a9c419914b30c38ae27f23eec05e8", + "lines": 208, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/plan_args.rs": { + "content_hash": "9a317401d68dba54b512ebdb9bda678819a39a4d05243b89030a37bca0f46683", + "lines": 85, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/hf_config.rs": { + "content_hash": "69473bae90f1e31f7888afc480eceba0ce62a3188f44f2727bde0830c0767bab", + "lines": 293, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/codegen/tests_dispatch.rs": { + "content_hash": "5b506a1421a453948b549e4863516566fbb8877a1c38da5119dfcb97ad105c3a", + "lines": 245, + "functions": 22, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_import_cmd.rs": { + "content_hash": "ca8678572947c76d895196e76c9ae6f6acb300fcec1481e9b572e38aae0b484e", + "lines": 228, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase97.rs": { + "content_hash": "74f9386a495bd24f35c4a62484a87edae6082d87a1085c0d5469cf4e2043d0d7", + "lines": 190, + "functions": 26, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_validate_core_1.rs": { + "content_hash": "c1ec0ef1de015b836d47a38cd392d304595682809b6f8abbeeea5e81a8142d05", + "lines": 804, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_far.rs": { + "content_hash": "24550e8b86ecf27dcd0fcb84087f98b1e20953293c06a573be3d0b28b325a7b8", + "lines": 185, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_security.rs": { + "content_hash": "5d1b6687847ae9c6e7a567c84429575f5119a37a59e1efd0c0a38291e62cd054", + "lines": 523, + "functions": 28, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/blake3_hashing.rs": { + "content_hash": "ccf6727357b9f7774670eba775bfb4ef8ae608dcff6acbf70a4616e73d90f2d4", + "lines": 36, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/recipe/validation_types.rs": { + "content_hash": "f68276853e785ea6476c231e7aa420e9b9b4d6af0232dc4cf841ac3bb6849b0c", + "lines": 93, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/recipe/tests_integration.rs": { + "content_hash": "76bdc5f3c0d88749442c9f0438bd278b9c9a65f76aa3ad2210ec0162b1f773ec", + "lines": 453, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_parallel.rs": { + "content_hash": "f82bb8f72e4d6b25694ffeb7abaa01e6e77934ee96fd2b897ff6845fb18f6582", + "lines": 404, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/strategies.rs": { + "content_hash": "47300be7d021d6fa65d12516cfe21bc9efa2b9d4d14a702f668fbda29deb6362", + "lines": 129, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_remaining_4.rs": { + "content_hash": "c8529446eb09eb388bd644f5dec34d0a0f65c52a4a3180b6328e168c22ea1313", + "lines": 427, + "functions": 44, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_graph_core_b.rs": { + "content_hash": "d02027474bcb89eed4d4fda160b960d2bbae6e561a48fd91412f2dac283ada74", + "lines": 226, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/tests_container_d.rs": { + "content_hash": "711345b985b3ef3ea21c6f626c4fcf835454b7cad6ef9f71d0d94bba04919653", + "lines": 41, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/fleet_ops.rs": { + "content_hash": "4018fc6ea23d2e1faec50b593ceadb32beaefc69a1bf76ef39e3c0c0bad3dbf7", + "lines": 422, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_impact.rs": { + "content_hash": "00544fdc7f7188c598c92156eb38e420e1cd832ce406fcb903a977aa350e6d72", + "lines": 360, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_core.rs": { + "content_hash": "7b0c3dd5d862930408456a0bb342f7e7b30cc1390732449d6c7402961d8de4a4", + "lines": 448, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_7.rs": { + "content_hash": "513e60f3c6deaf043d81e9d38464483ce7cc79d4fb2cf2e6c4b5b26287aead7a", + "lines": 585, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/state/tests_edge.rs": { + "content_hash": "c646c7abf8bf3248333d1de9795e41797d94b5d9398818088aa75b104691ff62", + "lines": 334, + "functions": 18, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_8.rs": { + "content_hash": "beab01b1c6f65e33a645fd11c61613674303bf57467816f1f1fe04ee1b898b50", + "lines": 704, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_topology.rs": { + "content_hash": "58dbadcd16996501b6d30be61417f9754f426a86fb2ebe6467302c081a8a0bd7", + "lines": 525, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_misc_2.rs": { + "content_hash": "0c72d3e8511ed1c5abac170244cd9ec3a33a39c6fd14f8ce2dacc31e8ed07ac7", + "lines": 391, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_policy.rs": { + "content_hash": "ab672e6d66b48bd9914016ecddf58ca50752c06d0c40579e5679cf4b3869576f", + "lines": 218, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_closure.rs": { + "content_hash": "53a8fccc979fbf0bc31d2ed0b0fe0b777a91638869dab844daf3c383240db9bf", + "lines": 183, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/planner/mod.rs": { + "content_hash": "7c07701fd6517c704b28c3dc0d946e0cd5adc8ffa371f09449e748734402f036", + "lines": 376, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/tests_eventlog_b.rs": { + "content_hash": "34a596c285b3642f888d17dacc616138f36a5c6388391a331485fa09f26c4802", + "lines": 270, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase104.rs": { + "content_hash": "d0db279defc746e4a47f639ad9b51c180869322b81923f9e6111134c8bbf5bd9", + "lines": 213, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_fleet.rs": { + "content_hash": "1c0159832f389c93c2591da2ee366acf6256f9333c0025cdc581eb4e2f525207", + "lines": 526, + "functions": 51, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/recipe/types.rs": { + "content_hash": "3fdb12d938b47d6eec1f737f3bec57f30ddcc53e293239feae792dd37d1b8823", + "lines": 65, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_edge_record.rs": { + "content_hash": "06e43c61e6982f518304ef15053cec6c917db1fceffc74e05ea068d9923ed59a", + "lines": 420, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/state/mod.rs": { + "content_hash": "e0762e985be68ee38bcbfb5f03e876243ebd68d9184bddca38da517221441a81", + "lines": 335, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/substitution.rs": { + "content_hash": "066e4f1a9d041be568ba6528659f4d869d71368af226e0fc99dfefcb717fc79d", + "lines": 279, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase87.rs": { + "content_hash": "1e84fc118324487ca1d725601d4484cb4ffd00a7ae1757a99e8f754fee9da4ac", + "lines": 301, + "functions": 24, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_validate2_c.rs": { + "content_hash": "4f9cdcb7db8755584f85e8c040c3451d3a69b8672a6c675b2871de7580838277", + "lines": 188, + "functions": 18, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/tests_dispatch.rs": { + "content_hash": "f8aeeb82af4295c3640425dc973d3fe86cb45df833613c5d243f5bc976cf4cdb", + "lines": 394, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/codegen/dispatch.rs": { + "content_hash": "b0cef52bfba28729d54b320d8a05c52915033e03dbd896d1f0eaca06f6b41b5b", + "lines": 79, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_14.rs": { + "content_hash": "50450e6aaa6a7fff6ee109442e4ba0fc71a35ae53f7ea8f0e477cf32234fd1ce", + "lines": 584, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch_validate.rs": { + "content_hash": "940d3a0c38925dd9059f95f3398cb629347873ccaf2c3245cf911a1a2b182f6b", + "lines": 1143, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase71.rs": { + "content_hash": "6f4a1d72e31d38a48ab0a78dd51638a39bb062d8e9cdef372efd051c655c0abe", + "lines": 279, + "functions": 24, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_path.rs": { + "content_hash": "28b2dc28f29734d1a759e39bf9b5d9d838b0d0bb23a31fc9c3ec7c9080c36b46", + "lines": 95, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_ownership.rs": { + "content_hash": "8c38dfd3544fd20c954d421e06c76df90cb952ccec3f302d02956b2146096460", + "lines": 610, + "functions": 28, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_fleet.rs": { + "content_hash": "0a1e48414bc8db11acbf4507134638e61621e160134e4a6d4d558290a3797a4a", + "lines": 337, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/model.rs": { + "content_hash": "b07c57535ce7c047b85d0091cc592536c1bc4ee97e4912f8da242ae71f8514be", + "lines": 329, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_package_b.rs": { + "content_hash": "e00b5572eb5f2d0f5b2a128668f2e109598a73534c7df084869c90b43ba34840", + "lines": 289, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + } + }, + "coverage_required": [ + "src/core/tests_secrets.rs", + "src/core/recipe/tests_expansion.rs", + "src/core/recipe/tests_integration.rs", + "src/core/recipe/mod.rs", + "src/core/recipe/tests_validation.rs", + "src/core/recipe/validation.rs", + "src/core/recipe/types.rs", + "src/core/recipe/expansion.rs", + "src/core/recipe/validation_types.rs", + "src/core/mod.rs", + "src/core/scoring.rs", + "src/core/tests_scoring_b.rs", + "src/core/executor/strategies.rs", + "src/core/executor/tests_edge_record.rs", + "src/core/executor/tests_edge_apply.rs", + "src/core/executor/tests_advanced.rs", + "src/core/executor/mod.rs", + "src/core/executor/resource_ops.rs", + "src/core/executor/tests_converge2.rs", + "src/core/executor/tests_parallel.rs", + "src/core/executor/machine_wave.rs", + "src/core/executor/tests_filters.rs", + "src/core/executor/test_fixtures.rs", + "src/core/executor/tests_rolling.rs", + "src/core/executor/tests_waves.rs", + "src/core/executor/helpers.rs", + "src/core/executor/tests_localhost.rs", + "src/core/executor/tests_localhost2.rs", + "src/core/executor/tests_hooks.rs", + "src/core/executor/tests_drift.rs", + "src/core/executor/tests_converge.rs", + "src/core/executor/tests_core.rs", + "src/core/executor/tests_edge_details.rs", + "src/core/executor/tests_concurrent.rs", + "src/core/executor/machine.rs", + "src/core/parser/tests_misc_2b.rs", + "src/core/parser/tests_expansion.rs", + "src/core/parser/tests_arch.rs", + "src/core/parser/mod.rs", + "src/core/parser/tests_misc_2.rs", + "src/core/parser/tests_includes.rs", + "src/core/parser/resource_types.rs", + "src/core/parser/tests_validation.rs", + "src/core/parser/tests_misc.rs", + "src/core/parser/policy.rs", + "src/core/parser/includes.rs", + "src/core/parser/validation.rs", + "src/core/parser/tests_misc_3.rs", + "src/core/parser/expansion.rs", + "src/core/parser/tests_core.rs", + "src/core/parser/tests_triggers.rs", + "src/core/parser/recipes.rs", + "src/core/parser/tests_misc_4.rs", + "src/core/parser/tests_policy.rs", + "src/core/migrate.rs", + "src/core/planner/tests_when.rs", + "src/core/planner/tests_advanced.rs", + "src/core/planner/mod.rs", + "src/core/planner/tests_helpers.rs", + "src/core/planner/tests_hash.rs", + "src/core/planner/tests_lifecycle.rs", + "src/core/planner/tests_determine.rs", + "src/core/planner/tests_describe.rs", + "src/core/planner/tests_plan.rs", + "src/core/planner/tests_filter.rs", + "src/core/tests_purifier.rs", + "src/core/purifier.rs", + "src/core/resolver/resource.rs", + "src/core/resolver/mod.rs", + "src/core/resolver/tests_functions.rs", + "src/core/resolver/tests_helpers.rs", + "src/core/resolver/tests_dag.rs", + "src/core/resolver/tests_waves.rs", + "src/core/resolver/dag.rs", + "src/core/resolver/template.rs", + "src/core/resolver/data.rs", + "src/core/resolver/tests_data.rs", + "src/core/resolver/tests_template.rs", + "src/core/resolver/functions.rs", + "src/core/resolver/tests_proptest.rs", + "src/core/resolver/tests_resource.rs", + "src/core/state/tests_edge.rs", + "src/core/state/mod.rs", + "src/core/state/tests_helpers.rs", + "src/core/state/tests_process_lock.rs", + "src/core/state/tests_encrypt.rs", + "src/core/state/tests_basic.rs", + "src/core/tests_scoring.rs", + "src/core/secrets.rs", + "src/core/codegen/tests_completeness.rs", + "src/core/codegen/mod.rs", + "src/core/codegen/test_fixtures.rs", + "src/core/codegen/dispatch.rs", + "src/core/codegen/tests_coverage.rs", + "src/core/codegen/tests_dispatch.rs", + "src/core/conditions.rs", + "src/core/store/tests_sync_exec.rs", + "src/core/store/tests_lockfile.rs", + "src/core/store/convert.rs", + "src/core/store/conda.rs", + "src/core/store/gc.rs", + "src/core/store/tests_convert_exec.rs", + "src/core/store/tests_path.rs", + "src/core/store/store_diff.rs", + "src/core/store/sandbox_exec.rs", + "src/core/store/tests_pin_resolve.rs", + "src/core/store/tests_chunker.rs", + "src/core/store/mod.rs", + "src/core/store/tests_cache.rs", + "src/core/store/substitution.rs", + "src/core/store/far.rs", + "src/core/store/profile.rs", + "src/core/store/path.rs", + "src/core/store/tests_hf_config.rs", + "src/core/store/tests_sandbox.rs", + "src/core/store/secret_scan.rs", + "src/core/store/repro_score.rs", + "src/core/store/contract_scaffold.rs", + "src/core/store/pin_resolve.rs", + "src/core/store/tests_purity.rs", + "src/core/store/tests_substitution.rs", + "src/core/store/validate.rs", + "src/core/store/tests_profile.rs", + "src/core/store/tests_store_diff.rs", + "src/core/store/cache.rs", + "src/core/store/tests_convert.rs", + "src/core/store/sandbox.rs", + "src/core/store/contract_coverage.rs", + "src/core/store/tests_closure.rs", + "src/core/store/lockfile.rs", + "src/core/store/gc_exec.rs", + "src/core/store/meta.rs", + "src/core/store/tests_gc_exec.rs", + "src/core/store/chunker.rs", + "src/core/store/kernel_far.rs", + "src/core/store/tests_conda.rs", + "src/core/store/convert_exec.rs", + "src/core/store/pin_tripwire.rs", + "src/core/store/tests_derivation_exec.rs", + "src/core/store/tests_far.rs", + "src/core/store/tests_secret_scan.rs", + "src/core/store/provider_exec.rs", + "src/core/store/sync_exec.rs", + "src/core/store/purity.rs", + "src/core/store/tests_repro_score.rs", + "src/core/store/reference.rs", + "src/core/store/tests_provider.rs", + "src/core/store/tests_validate.rs", + "src/core/store/derivation_exec.rs", + "src/core/store/tests_contract_coverage.rs", + "src/core/store/tests_contract_scaffold.rs", + "src/core/store/hf_config.rs", + "src/core/store/tests_cache_exec.rs", + "src/core/store/tests_sandbox_run.rs", + "src/core/store/tests_pin_tripwire.rs", + "src/core/store/tests_derivation.rs", + "src/core/store/derivation.rs", + "src/core/store/sandbox_run.rs", + "src/core/store/tests_kernel_far.rs", + "src/core/store/tests_meta.rs", + "src/core/store/tests_reference.rs", + "src/core/store/cache_exec.rs", + "src/core/store/tests_sandbox_exec.rs", + "src/core/store/tests_gc.rs", + "src/core/store/tests_provider_exec.rs", + "src/core/store/tests_bash_provability.rs", + "src/core/store/closure.rs", + "src/core/store/provider.rs", + "src/core/tests_purifier_b.rs", + "src/core/types/resource.rs", + "src/core/types/mod.rs", + "src/core/types/tests_state.rs", + "src/core/types/policy.rs", + "src/core/types/config.rs", + "src/core/types/tests_config.rs", + "src/core/types/tests_resource.rs", + "src/core/types/state_types.rs", + "src/mcp/tests_handlers.rs", + "src/mcp/registry.rs", + "src/mcp/mod.rs", + "src/mcp/handlers.rs", + "src/mcp/tests_handlers_more.rs", + "src/mcp/types.rs", + "src/mcp/tests_registry.rs", + "src/cli/tests_misc_5.rs", + "src/cli/tests_phase71.rs", + "src/cli/tests_snapshot.rs", + "src/cli/status_drift_intel.rs", + "src/cli/tests_graph_core_2.rs", + "src/cli/graph_scoring.rs", + "src/cli/validate_maturity.rs", + "src/cli/validate_safety.rs", + "src/cli/status_resource_intel.rs", + "src/cli/status_operational.rs", + "src/cli/tests_misc_1_b.rs", + "src/cli/validate_resources.rs", + "src/cli/snapshot.rs", + "src/cli/tests_misc_9_b.rs", + "src/cli/graph_governance.rs", + "src/cli/drift.rs", + "src/cli/tests_diff_cmd.rs", + "src/cli/tests_phase79.rs", + "src/cli/tests_apply_10.rs", + "src/cli/tests_status_core_6.rs", + "src/cli/status_security.rs", + "src/cli/dispatch_notify.rs", + "src/cli/commands/mod.rs", + "src/cli/commands/misc_ops_args.rs", + "src/cli/commands/status_args.rs", + "src/cli/commands/validate_args.rs", + "src/cli/commands/misc_args.rs", + "src/cli/commands/plan_args.rs", + "src/cli/commands/lock_core_args.rs", + "src/cli/commands/apply_args.rs", + "src/cli/commands/state_args.rs", + "src/cli/commands/store_args.rs", + "src/cli/commands/lock_ops_args.rs", + "src/cli/commands/subcmd_args.rs", + "src/cli/commands/graph_args.rs", + "src/cli/tests_graph_core.rs", + "src/cli/tests_status_core_3_b.rs", + "src/cli/tests_misc_1.rs", + "src/cli/tests_infra.rs", + "src/cli/status_fleet_insight.rs", + "src/cli/tests_validate_core_2.rs", + "src/cli/tests_cov_validate3_d.rs", + "src/cli/tests_phase86.rs", + "src/cli/validate_advanced.rs", + "src/cli/tests_cov_status_1.rs", + "src/cli/dispatch_validate.rs", + "src/cli/tests_status_core_2.rs", + "src/cli/observe.rs", + "src/cli/score.rs", + "src/cli/tests_plan_file.rs", + "src/cli/lock_core.rs", + "src/cli/tests_graph_core_4.rs", + "src/cli/graph_impact.rs", + "src/cli/graph_transport.rs", + "src/cli/tests_validate_core_b.rs", + "src/cli/tests_status_core_5_b.rs", + "src/cli/validate_analytics.rs", + "src/cli/status_fleet.rs", + "src/cli/tests_cov_status_6.rs", + "src/cli/status_compliance.rs", + "src/cli/tests_status_core_8_b.rs", + "src/cli/tests_show_2.rs", + "src/cli/tests_cov_args_4.rs", + "src/cli/print_helpers.rs", + "src/cli/status_intelligence.rs", + "src/cli/dispatch_graph.rs", + "src/cli/tests_apply_9.rs", + "src/cli/tests_score.rs", + "src/cli/mod.rs", + "src/cli/tests_misc_2.rs", + "src/cli/tests_phase88.rs", + "src/cli/validate_quality.rs", + "src/cli/dispatch_misc.rs", + "src/cli/graph_extended.rs", + "src/cli/tests_cov_fleet_b.rs", + "src/cli/tests_show_1.rs", + "src/cli/tests_helpers_state.rs", + "src/cli/tests_phase77.rs", + "src/cli/tests_apply_11.rs", + "src/cli/status_alerts.rs", + "src/cli/validate_hygiene.rs", + "src/cli/status_diagnostics.rs", + "src/cli/tests_helpers.rs", + "src/cli/graph_lifecycle.rs", + "src/cli/tests_misc_6.rs", + "src/cli/tests_apply_1.rs", + "src/cli/store_pin.rs", + "src/cli/tests_misc_10.rs", + "src/cli/tests_check.rs", + "src/cli/tests_store_archive.rs", + "src/cli/store_import.rs", + "src/cli/tests_cov_notify.rs", + "src/cli/tests_status_core_5.rs", + "src/cli/tests_validate_core.rs", + "src/cli/graph_intelligence_ext.rs", + "src/cli/tests_workspace.rs", + "src/cli/validate_compliance.rs", + "src/cli/tests_apply_20.rs", + "src/cli/tests_cov_remaining_3.rs", + "src/cli/helpers_state.rs", + "src/cli/tests_cov_notify_2.rs", + "src/cli/graph_quality.rs", + "src/cli/store_archive.rs", + "src/cli/tests_cov_fleet.rs", + "src/cli/tests_lock_core.rs", + "src/cli/tests_graph_core_3.rs", + "src/cli/tests_cov_graph3_c.rs", + "src/cli/status_convergence.rs", + "src/cli/tests_cov_status_4.rs", + "src/cli/status_resources.rs", + "src/cli/tests_show.rs", + "src/cli/status_operational_ext.rs", + "src/cli/tests_cov_dispatch_3.rs", + "src/cli/history.rs", + "src/cli/graph_analysis.rs", + "src/cli/tests_cov_status_5.rs", + "src/cli/status_drift_intel2.rs", + "src/cli/test_fixtures.rs", + "src/cli/tests_cov_lock.rs", + "src/cli/tests_show_3.rs", + "src/cli/graph_weight.rs", + "src/cli/validate_paths.rs", + "src/cli/tests_cov_validate3_c.rs", + "src/cli/tests_cov_args.rs", + "src/cli/tests_cov_validate2_b.rs", + "src/cli/tests_graph_core_5.rs", + "src/cli/tests_apply_21.rs", + "src/cli/tests_cov_remaining_2.rs", + "src/cli/graph_cross.rs", + "src/cli/status_core.rs", + "src/cli/helpers.rs", + "src/cli/dispatch_status.rs", + "src/cli/tests_status_core_7.rs", + "src/cli/status_maturity.rs", + "src/cli/validate_compliance_ext.rs", + "src/cli/tests_phase94.rs", + "src/cli/tests_phase100.rs", + "src/cli/status_transport.rs", + "src/cli/store_cache.rs", + "src/cli/tests_phase99.rs", + "src/cli/tests_phase81.rs", + "src/cli/tests_cov_notify_3.rs", + "src/cli/tests_cov_args_2.rs", + "src/cli/tests_apply_18.rs", + "src/cli/tests_phase68.rs", + "src/cli/tests_phase106.rs", + "src/cli/tests_phase85.rs", + "src/cli/tests_status_queries.rs", + "src/cli/tests_status_core_1.rs", + "src/cli/tests_phase87.rs", + "src/cli/tests_phase65.rs", + "src/cli/tests_validate_core_3.rs", + "src/cli/status_resource_detail.rs", + "src/cli/tests_phase105.rs", + "src/cli/tests_misc.rs", + "src/cli/doctor.rs", + "src/cli/tests_apply_19.rs", + "src/cli/tests_cov_validate3_b.rs", + "src/cli/tests_phase90.rs", + "src/cli/tests_import_cmd.rs", + "src/cli/tests_phase83.rs", + "src/cli/tests_cov_status_2.rs", + "src/cli/tests_phase73.rs", + "src/cli/lock_lifecycle.rs", + "src/cli/status_failures.rs", + "src/cli/tests_phase59.rs", + "src/cli/tests_phase62.rs", + "src/cli/tests_phase96.rs", + "src/cli/tests_apply_3.rs", + "src/cli/tests_status_core_b.rs", + "src/cli/tests_phase98.rs", + "src/cli/tests_fleet_ops_1.rs", + "src/cli/tests_phase76.rs", + "src/cli/workspace.rs", + "src/cli/tests_misc_7_b.rs", + "src/cli/plan.rs", + "src/cli/tests_cov_dispatch_4.rs", + "src/cli/tests_misc_8.rs", + "src/cli/check.rs", + "src/cli/tests_phase82.rs", + "src/cli/tests_apply_7.rs", + "src/cli/tests_apply_5.rs", + "src/cli/tests_cov_status_4_c.rs", + "src/cli/status_recovery.rs", + "src/cli/graph_topology.rs", + "src/cli/status_insights.rs", + "src/cli/tests_phase72.rs", + "src/cli/tests_status_core_4_b.rs", + "src/cli/tests_status_core_4.rs", + "src/cli/fleet_ops.rs", + "src/cli/infra.rs", + "src/cli/validate_security.rs", + "src/cli/tests_store_import.rs", + "src/cli/apply_output.rs", + "src/cli/validate_structural.rs", + "src/cli/tests_phase91.rs", + "src/cli/tests_apply.rs", + "src/cli/tests_check_2.rs", + "src/cli/tests_status_core_10.rs", + "src/cli/tests_cov_transport_3.rs", + "src/cli/init.rs", + "src/cli/tests_phase95.rs", + "src/cli/tests_phase63.rs", + "src/cli/tests_phase66.rs", + "src/cli/tests_apply_15.rs", + "src/cli/tests_fleet_ops.rs", + "src/cli/apply_helpers.rs", + "src/cli/tests_cov_remaining_6.rs", + "src/cli/tests_cov_remaining.rs", + "src/cli/tests_phase84.rs", + "src/cli/tests_phase97.rs", + "src/cli/tests_cov_transport_2.rs", + "src/cli/validate_core.rs", + "src/cli/tests_phase67.rs", + "src/cli/graph_topology_ext.rs", + "src/cli/graph_analytics_ext.rs", + "src/cli/validate_ordering.rs", + "src/cli/graph_intelligence_ext2.rs", + "src/cli/tests_destroy.rs", + "src/cli/tests_fleet_reporting.rs", + "src/cli/tests_cov_dispatch_2.rs", + "src/cli/dispatch.rs", + "src/cli/dispatch_store.rs", + "src/cli/tests_phase89.rs", + "src/cli/tests_status_core_3.rs", + "src/cli/tests_validate_core_1.rs", + "src/cli/tests_helpers_time.rs", + "src/cli/tests_status_core_9.rs", + "src/cli/tests_store_convert.rs", + "src/cli/tests_cov_apply.rs", + "src/cli/graph_resilience_ext.rs", + "src/cli/validate_ordering_ext.rs", + "src/cli/tests_cov_status_3.rs", + "src/cli/tests_status_core_6_b.rs", + "src/cli/graph_intelligence.rs", + "src/cli/dispatch_notify_custom.rs", + "src/cli/tests_drift.rs", + "src/cli/tests_apply_23.rs", + "src/cli/tests_cov_args_3.rs", + "src/cli/tests_apply_16.rs", + "src/cli/tests_misc_3.rs", + "src/cli/validate_ownership.rs", + "src/cli/secrets.rs", + "src/cli/tests_cov_args_extra_b.rs", + "src/cli/status_counts.rs", + "src/cli/status_observability.rs", + "src/cli/helpers_time.rs", + "src/cli/tests_cov_graph2.rs", + "src/cli/lock_security.rs", + "src/cli/tests_apply_8.rs", + "src/cli/tests_cov_args_extra.rs", + "src/cli/tests_apply_6.rs", + "src/cli/tests_store_pin.rs", + "src/cli/tests_apply_2.rs", + "src/cli/tests_cov_remaining_7.rs", + "src/cli/graph_export.rs", + "src/cli/tests_cov_args_2_b.rs", + "src/cli/tests_phase101.rs", + "src/cli/graph_resilience.rs", + "src/cli/lock_merge.rs", + "src/cli/dispatch_status_ext.rs", + "src/cli/tests_apply_helpers.rs", + "src/cli/tests_check_1.rs", + "src/cli/validate_policy.rs", + "src/cli/tests_validate_core_2_b.rs", + "src/cli/tests_apply_12.rs", + "src/cli/tests_cov_remaining_8.rs", + "src/cli/status_intelligence_ext2.rs", + "src/cli/status_intelligence_ext.rs", + "src/cli/tests_doctor.rs", + "src/cli/tests_history.rs", + "src/cli/tests_validate_transport.rs", + "src/cli/status_quality.rs", + "src/cli/tests_status_core.rs", + "src/cli/validate_governance.rs", + "src/cli/graph_analytics.rs", + "src/cli/tests_cov_graph3.rs", + "src/cli/tests_destroy_1.rs", + "src/cli/tests_plan.rs", + "src/cli/tests_apply_17.rs", + "src/cli/status_cost.rs", + "src/cli/tests_observe.rs", + "src/cli/tests_cov_remaining_9.rs", + "src/cli/tests_print_helpers.rs", + "src/cli/status_resilience.rs", + "src/cli/dispatch_lock.rs", + "src/cli/graph_paths.rs", + "src/cli/tests_cov_misc2_b.rs", + "src/cli/status_fleet_detail.rs", + "src/cli/graph_visualization.rs", + "src/cli/status_drift.rs", + "src/cli/tests_cov_dispatch.rs", + "src/cli/tests_phase107.rs", + "src/cli/tests_phase74.rs", + "src/cli/diff_cmd.rs", + "src/cli/tests_cov_status_4_b.rs", + "src/cli/tests_cov_remaining_4.rs", + "src/cli/validate_governance_ext.rs", + "src/cli/validate_security_ext.rs", + "src/cli/tests_status_core_7_b.rs", + "src/cli/tests_apply_13.rs", + "src/cli/tests_phase104.rs", + "src/cli/tests_cov_misc2.rs", + "src/cli/tests_apply_6_b.rs", + "src/cli/status_queries.rs", + "src/cli/tests_phase60.rs", + "src/cli/destroy.rs", + "src/cli/status_trends.rs", + "src/cli/validate_transport.rs", + "src/cli/store_ops.rs", + "src/cli/tests_validate_core_1_b.rs", + "src/cli/tests_misc_5_b.rs", + "src/cli/validate_audit.rs", + "src/cli/tests_graph_core_b.rs", + "src/cli/tests_cov_transport.rs", + "src/cli/validate_topology.rs", + "src/cli/lint.rs", + "src/cli/fleet_reporting.rs", + "src/cli/import_cmd.rs", + "src/cli/tests_phase61.rs", + "src/cli/tests_cov_validate2.rs", + "src/cli/tests_cov_validate.rs", + "src/cli/status_analytics.rs", + "src/cli/lock_audit.rs", + "src/cli/tests_cov_status_7.rs", + "src/cli/validate_scoring.rs", + "src/cli/graph_advanced.rs", + "src/cli/status_operational_ext2.rs", + "src/cli/tests_misc_9.rs", + "src/cli/tests_status_core_2_b.rs", + "src/cli/tests_phase70.rs", + "src/cli/tests_cov_graph.rs", + "src/cli/graph_compliance.rs", + "src/cli/tests_graph_core_1.rs", + "src/cli/tests_phase64.rs", + "src/cli/status_health.rs", + "src/cli/graph_core.rs", + "src/cli/show.rs", + "src/cli/tests_init.rs", + "src/cli/status_predictive.rs", + "src/cli/tests_phase69.rs", + "src/cli/tests_phase103.rs", + "src/cli/tests_phase92.rs", + "src/cli/tests_cov_apply_b.rs", + "src/cli/tests_cov_remaining_5.rs", + "src/cli/validate_config_quality.rs", + "src/cli/tests_cov_notify_4.rs", + "src/cli/tests_apply_14.rs", + "src/cli/tests_phase78.rs", + "src/cli/tests_misc_4.rs", + "src/cli/dispatch_apply.rs", + "src/cli/tests_phase80.rs", + "src/cli/tests_store_ops.rs", + "src/cli/tests_phase102.rs", + "src/cli/tests_lock_core_1.rs", + "src/cli/graph_health.rs", + "src/cli/tests_plan_1.rs", + "src/cli/tests_graph_core_6.rs", + "src/cli/lock_ops.rs", + "src/cli/store_convert.rs", + "src/cli/tests_cov_validate3.rs", + "src/cli/tests_misc_7.rs", + "src/cli/tests_store_cache.rs", + "src/cli/tests_apply_4.rs", + "src/cli/tests_lint.rs", + "src/cli/tests_status_core_1_b.rs", + "src/cli/lock_repair.rs", + "src/cli/tests_status_core_8.rs", + "src/cli/tests_cov_validate2_c.rs", + "src/cli/validate_resilience.rs", + "src/cli/tests_cov_graph3_b.rs", + "src/cli/tests_phase75.rs", + "src/cli/apply.rs", + "src/cli/apply_variants.rs", + "src/cli/tests_apply_22.rs", + "src/main.rs", + "src/copia/mod.rs", + "src/transport/container.rs", + "src/transport/tests_dispatch_b.rs", + "src/transport/tests_ssh.rs", + "src/transport/tests_container_b.rs", + "src/transport/tests_container.rs", + "src/transport/mod.rs", + "src/transport/tests_container_c.rs", + "src/transport/pepita.rs", + "src/transport/ssh.rs", + "src/transport/tests_dispatch.rs", + "src/transport/tests_container_d.rs", + "src/transport/local.rs", + "src/resources/gpu.rs", + "src/resources/tests_user.rs", + "src/resources/mod.rs", + "src/resources/task.rs", + "src/resources/cron.rs", + "src/resources/pepita/mod.rs", + "src/resources/tests_file.rs", + "src/resources/tests_mount_b.rs", + "src/resources/mount.rs", + "src/resources/tests_docker.rs", + "src/resources/docker.rs", + "src/resources/user.rs", + "src/resources/tests_mount.rs", + "src/resources/model.rs", + "src/resources/network.rs", + "src/resources/tests_service.rs", + "src/resources/tests_docker_b.rs", + "src/resources/tests_file_b.rs", + "src/resources/file.rs", + "src/resources/tests_package.rs", + "src/resources/tests_package_b.rs", + "src/resources/package.rs", + "src/resources/tests_gpu.rs", + "src/resources/service.rs", + "src/lib.rs", + "src/tripwire/tests_anomaly.rs", + "src/tripwire/mod.rs", + "src/tripwire/anomaly.rs", + "src/tripwire/eventlog.rs", + "src/tripwire/drift/tests_fj036.rs", + "src/tripwire/drift/mod.rs", + "src/tripwire/drift/tests_lifecycle.rs", + "src/tripwire/drift/tests_edge_fj132_b.rs", + "src/tripwire/drift/tests_basic_b.rs", + "src/tripwire/drift/tests_edge_fj131.rs", + "src/tripwire/drift/tests_transport.rs", + "src/tripwire/drift/tests_edge_fj132.rs", + "src/tripwire/drift/tests_full.rs", + "src/tripwire/drift/tests_basic.rs", + "src/tripwire/tests_hasher_b.rs", + "src/tripwire/tests_eventlog_b.rs", + "src/tripwire/hasher.rs", + "src/tripwire/tests_eventlog.rs", + "src/tripwire/tracer.rs", + "src/tripwire/tests_hasher.rs", + "benches/core_bench.rs", + "benches/store_bench.rs", + "examples/mcp_server.rs", + "examples/multi_machine.rs", + "examples/arch_filtering.rs", + "examples/store_provider_import.rs", + "examples/parse_and_plan.rs", + "examples/store_cache_protocol.rs", + "examples/store_executors.rs", + "examples/state_management.rs", + "examples/template_resolution.rs", + "examples/gpu_container_transport.rs", + "examples/blake3_hashing.rs", + "examples/full_stack_deploy.rs", + "examples/store_pin_resolve.rs", + "examples/validation.rs", + "examples/codegen_scripts.rs", + "examples/resource_scripts.rs", + "examples/trace_provenance.rs", + "examples/anomaly_detection.rs", + "examples/score_cookbook.rs", + "examples/conda_to_far.rs", + "examples/store_reproducibility.rs", + "examples/recipe_expansion.rs", + "examples/container_transport.rs", + "examples/shell_purifier.rs", + "examples/event_logging.rs", + "examples/store_gc_lifecycle.rs", + "examples/user_management.rs", + "examples/drift_detection.rs" + ], + "manifest_hash": "2758812760789ce4031c6474dfc44ef0588da750bf0ef6a217954c88cf976034" + }, + "thresholds": { + "min_coverage_pct": 95.0, + "min_per_file_coverage_pct": 95.0, + "max_tdg_regression": 0.0, + "max_function_complexity": 20, + "max_file_lines": 500, + "min_spec_score": 95, + "require_github_sync": true, + "require_spec_update": true, + "require_roadmap_update": true, + "block_on_new_satd": true, + "block_on_new_dead_code": true, + "require_lint_pass": true, + "max_fix_chain": 3, + "block_on_untested_variants": true, + "block_on_cross_crate_failure": false, + "block_on_regression": false, + "require_proof_verification": false, + "max_sorry_count": 0, + "min_theorem_coverage": 0.0, + "block_on_file_size": true + }, + "claims": [ + { + "hypothesis": "All baseline files still exist", + "falsification_method": "ManifestIntegrity", + "evidence_required": { + "FileList": [] + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "The falsifier is active and detecting (Meta-Check)", + "falsification_method": "MetaFalsification", + "evidence_required": { + "CounterExample": { + "details": "" + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "No coverage exclusion gaming", + "falsification_method": "CoverageGaming", + "evidence_required": { + "FileList": [] + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "All changed lines are covered", + "falsification_method": "DifferentialCoverage", + "evidence_required": { + "NumericComparison": { + "actual": 0.0, + "threshold": 100.0 + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "Total coverage >= 95%", + "falsification_method": "AbsoluteCoverage", + "evidence_required": { + "NumericComparison": { + "actual": 0.0, + "threshold": 95.0 + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "TDG score >= baseline", + "falsification_method": "TdgRegression", + "evidence_required": { + "NumericComparison": { + "actual": 0.0, + "threshold": 0.0 + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "No function exceeds complexity 20", + "falsification_method": "ComplexityRegression", + "evidence_required": { + "NumericComparison": { + "actual": 0.0, + "threshold": 20.0 + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "No vulnerable dependencies added", + "falsification_method": "SupplyChainIntegrity", + "evidence_required": { + "CounterExample": { + "details": "" + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "No file exceeds 500 lines", + "falsification_method": "FileSizeRegression", + "evidence_required": { + "NumericComparison": { + "actual": 0.0, + "threshold": 500.0 + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "Spec & Roadmap Quality", + "falsification_method": "SpecQuality", + "evidence_required": { + "NumericComparison": { + "actual": 0.0, + "threshold": 95.0 + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "All changes pushed", + "falsification_method": "GitHubSync", + "evidence_required": { + "GitState": { + "unpushed_commits": 0, + "dirty_files": 0 + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "All examples compile and run", + "falsification_method": "ExamplesCompile", + "evidence_required": { + "CounterExample": { + "details": "" + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "pmat-book validation passes", + "falsification_method": "BookValidation", + "evidence_required": { + "CounterExample": { + "details": "" + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "No new SATD markers (TODO/FIXME/HACK)", + "falsification_method": "SatdDetection", + "evidence_required": { + "FileList": [] + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "No new dead code introduced", + "falsification_method": "DeadCodeDetection", + "evidence_required": { + "FileList": [] + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "All files have >= 95% coverage", + "falsification_method": "PerFileCoverage", + "evidence_required": { + "FileList": [] + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "make lint passes", + "falsification_method": "LintPass", + "evidence_required": { + "BooleanCheck": false + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "All match arm variants have test coverage", + "falsification_method": "VariantCoverage", + "evidence_required": { + "FileList": [] + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "No fix-after-fix chains exceed limit", + "falsification_method": "FixChainLimit", + "evidence_required": { + "NumericComparison": { + "actual": 0.0, + "threshold": 3.0 + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "Cross-crate integration tests pass", + "falsification_method": "CrossCrateParity", + "evidence_required": { + "BooleanCheck": false + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "No performance regressions detected", + "falsification_method": "RegressionGate", + "evidence_required": { + "NumericComparison": { + "actual": 0.0, + "threshold": 0.0 + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "No incomplete proofs (sorry) introduced", + "falsification_method": "FormalProofVerification", + "evidence_required": { + "NumericComparison": { + "actual": 0.0, + "threshold": 0.0 + } + }, + "result": null, + "override_info": null + } + ], + "profile": "Pmat", + "require": [ + { + "id": "require.compiles", + "kind": "Require", + "description": "Project builds successfully", + "falsification_method": "ManifestIntegrity", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "require.tests_exist", + "kind": "Require", + "description": "At least one test exists", + "falsification_method": "MetaFalsification", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "require.manifest_integrity", + "kind": "Require", + "description": "FileManifest anti-gaming check", + "falsification_method": "ManifestIntegrity", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "require.meta_falsification", + "kind": "Require", + "description": "Falsifier self-check active", + "falsification_method": "MetaFalsification", + "threshold": null, + "blocking": true, + "source": "Default" + } + ], + "ensure": [ + { + "id": "ensure.tests_pass", + "kind": "Ensure", + "description": "All tests pass", + "falsification_method": "MetaFalsification", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.git_sync", + "kind": "Ensure", + "description": "All changes pushed to remote", + "falsification_method": "GitHubSync", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.no_regression", + "kind": "Ensure", + "description": "No previously-passing test now fails", + "falsification_method": "MetaFalsification", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.coverage", + "kind": "Ensure", + "description": "Coverage >= 95%", + "falsification_method": "AbsoluteCoverage", + "threshold": { + "Numeric": { + "metric": "coverage_pct", + "op": "Gte", + "value": 95.0 + } + }, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.differential_coverage", + "kind": "Ensure", + "description": "Changed lines must be covered", + "falsification_method": "DifferentialCoverage", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.supply_chain", + "kind": "Ensure", + "description": "No vulnerable dependencies", + "falsification_method": "SupplyChainIntegrity", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.examples_compile", + "kind": "Ensure", + "description": "All examples compile and run", + "falsification_method": "ExamplesCompile", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.tdg_regression", + "kind": "Ensure", + "description": "TDG score >= baseline", + "falsification_method": "TdgRegression", + "threshold": { + "Delta": { + "metric": "tdg_score", + "op": "Gte", + "value": 0.0 + } + }, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.coverage_gaming", + "kind": "Ensure", + "description": "No coverage exclusion gaming", + "falsification_method": "CoverageGaming", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.spec_quality", + "kind": "Ensure", + "description": "Spec score meets threshold", + "falsification_method": "SpecQuality", + "threshold": { + "Numeric": { + "metric": "spec_score", + "op": "Gte", + "value": 95.0 + } + }, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.book_validation", + "kind": "Ensure", + "description": "pmat-book validation passes", + "falsification_method": "BookValidation", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.per_file_coverage", + "kind": "Ensure", + "description": "All files >= 95% coverage", + "falsification_method": "PerFileCoverage", + "threshold": { + "Numeric": { + "metric": "per_file_coverage_pct", + "op": "Gte", + "value": 95.0 + } + }, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.variant_coverage", + "kind": "Ensure", + "description": "All match arm variants tested", + "falsification_method": "VariantCoverage", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.cross_crate_parity", + "kind": "Ensure", + "description": "Cross-crate integration tests pass", + "falsification_method": "CrossCrateParity", + "threshold": null, + "blocking": false, + "source": "Default" + } + ], + "invariant": [ + { + "id": "invariant.compiles", + "kind": "Invariant", + "description": "Project compiles at every checkpoint", + "falsification_method": "ManifestIntegrity", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "invariant.file_size", + "kind": "Invariant", + "description": "No file exceeds 500 lines", + "falsification_method": "FileSizeRegression", + "threshold": { + "Numeric": { + "metric": "max_file_lines", + "op": "Lte", + "value": 500.0 + } + }, + "blocking": true, + "source": "Default" + }, + { + "id": "invariant.lint", + "kind": "Invariant", + "description": "cargo clippy passes", + "falsification_method": "LintPass", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "invariant.complexity", + "kind": "Invariant", + "description": "No function exceeds complexity 20", + "falsification_method": "ComplexityRegression", + "threshold": { + "Numeric": { + "metric": "max_complexity", + "op": "Lte", + "value": 20.0 + } + }, + "blocking": true, + "source": "Default" + }, + { + "id": "invariant.satd", + "kind": "Invariant", + "description": "No new SATD markers", + "falsification_method": "SatdDetection", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "invariant.dead_code", + "kind": "Invariant", + "description": "No new dead code introduced", + "falsification_method": "DeadCodeDetection", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "invariant.fix_chain", + "kind": "Invariant", + "description": "Fix-after-fix chains within limit", + "falsification_method": "FixChainLimit", + "threshold": { + "Numeric": { + "metric": "fix_chain_count", + "op": "Lte", + "value": 3.0 + } + }, + "blocking": true, + "source": "Default" + } + ], + "excluded_claims": [], + "iteration": 1, + "inherited_postconditions": [], + "contract_quality": { + "active_claims": 25, + "applicable_claims": 25, + "score": 1.0, + "rating": "Full" + } +} \ No newline at end of file diff --git a/.pmat-work/PMAT-026/contract.json b/.pmat-work/PMAT-026/contract.json new file mode 100644 index 00000000..927d1ec1 --- /dev/null +++ b/.pmat-work/PMAT-026/contract.json @@ -0,0 +1,5785 @@ +{ + "version": "5.0", + "work_item_id": "PMAT-026", + "created_at": "2026-03-02T15:49:52.544443113Z", + "baseline_commit": "9086978ed91812ce89da1631b0e678cf3e3a1376", + "baseline_tdg": 0.0, + "baseline_coverage": 0.0, + "baseline_rust_score": 0.0, + "baseline_file_manifest": { + "files": { + "src/cli/import_cmd.rs": { + "content_hash": "1aac0167c0c8c6a909b5725d36bb3fd5d92a67f1301fa69897be6117fe507246", + "lines": 295, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_22.rs": { + "content_hash": "bf279a9d6ae125679a585c944782b7210e25699abf2834e397a1242c0378ed0a", + "lines": 588, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/mod.rs": { + "content_hash": "30d69f454459c3979acf9916e760d80f3d2467d3095367eec183a476cb93b6b8", + "lines": 113, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch_validate.rs": { + "content_hash": "940d3a0c38925dd9059f95f3398cb629347873ccaf2c3245cf911a1a2b182f6b", + "lines": 1143, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/store_pin_resolve.rs": { + "content_hash": "2ec6dfb445ef7c6d801139db58f6282a1c506dce46001a42dba4f8ed14e166a0", + "lines": 116, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/tests_eventlog.rs": { + "content_hash": "6416f4576acad278ca832883c2cfa1e4330e8f987f1c757a990c8837a0af6c30", + "lines": 263, + "functions": 18, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_lockfile.rs": { + "content_hash": "0365f4c715e27d76c55d45058286cec808c70729a2d965ced366f4d3549f19a1", + "lines": 200, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/tests_resource.rs": { + "content_hash": "3ea3003b8291fdab8bfb152d49db42e4c45dab1bf916a89bf2e1650f71aff822", + "lines": 560, + "functions": 26, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_health.rs": { + "content_hash": "0f9113539d8a95272807eab2218080651daf1ddf3b8cce14a28b3d2a4daeaa4e", + "lines": 480, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/event_logging.rs": { + "content_hash": "a824a3e869cc765c381607a296288475026397ea7d5f90a33965d0902109ba22", + "lines": 141, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/tests_purifier_b.rs": { + "content_hash": "88ee77a349a942e64af435510638445d0cbde59a2018af5f591f72d4cb56903f", + "lines": 336, + "functions": 19, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/package.rs": { + "content_hash": "7b78ef2be7d1342bc58259a458f848372a8bd2070cb9a0c77e2baf12070457a5", + "lines": 192, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/mod.rs": { + "content_hash": "a7103646daa0f2f7c25ce72ec7a06f770c5aadda9b6481f7b58fdf92680da303", + "lines": 131, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_2.rs": { + "content_hash": "7f31373720dd7f00b8b0cfc724d9c0eb4ff9cb93c8172527b3899862e2d475bc", + "lines": 707, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/mcp/handlers.rs": { + "content_hash": "b3f3ba304fa11f48ee3077275ac09caa416279ee0ce7f5a6cab754f428ee4979", + "lines": 491, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_security_ext.rs": { + "content_hash": "f66fe1fc9ea7278efa07102a67120cb60ec48798452be1d870ebc4394f7fa674", + "lines": 486, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_resilience.rs": { + "content_hash": "dcea006a4ac80083d38f24c48919388010b334fd0287642546d62f75efb34c93", + "lines": 268, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/drift/tests_lifecycle.rs": { + "content_hash": "eaa542320d4c1728a3863d206050c808e1f22af47284c1d7489cbadb8c42c872", + "lines": 146, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_purity.rs": { + "content_hash": "a41138df84992ce18b83b566c73f0b023343475e6c450a8ea31b09f956d5b6ca", + "lines": 186, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_notify_2.rs": { + "content_hash": "96b1d9717c6957af6517e4297586f248abe8803f8c282001332cd194aeb284ca", + "lines": 529, + "functions": 49, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_1.rs": { + "content_hash": "f5ddacf24be97d134f24e95a58e5f1300c3082766da76ad935e1c7e51fc58b77", + "lines": 701, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/misc_args.rs": { + "content_hash": "523094e0263ddeb5241d7d804636081e17fc86d0dd6ebd6fd63222fe7036dc50", + "lines": 349, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/gc.rs": { + "content_hash": "4ee9aa8f03a830997847ee019c423ef14e288ce9345a260316d254cf3c1ab7b1", + "lines": 121, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/tests_waves.rs": { + "content_hash": "43c4ea3a7fe427029c0a4eff6b84179b4553297a31a7663010151f43ba226022", + "lines": 144, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_snapshot.rs": { + "content_hash": "c2a2e43628b0107466662faec0816f1055639d40663df4b04855941969b1a437", + "lines": 176, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_trends.rs": { + "content_hash": "64ba6ab06691fb40befafabba07c1ca9f42ef1b040dd8a5fc6949d7a03bd9aef", + "lines": 412, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core.rs": { + "content_hash": "ec2276a149ff2bab435d03b68e2b4cb0e0bf9500014607f887488c339097d43a", + "lines": 359, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/conda_to_far.rs": { + "content_hash": "7734affa568d41f480d8e38788fe151adef95b1a827dce5b24e559ba866fb11a", + "lines": 110, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase61.rs": { + "content_hash": "3c0a05cbc05aeb4276e2c75cd0e8a68e0d2d41b870e7606fc4dddee23df30db1", + "lines": 195, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/store_archive.rs": { + "content_hash": "1e3b5b828ede0561463196455eeaf0ca8e3bcaf7a186e4a7c655a77814be7378", + "lines": 216, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/tests_template.rs": { + "content_hash": "6dc64dac971eaba5ad71d818a09ef20d43bd1a8784af2c8054cdd59506722691", + "lines": 423, + "functions": 30, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_safety.rs": { + "content_hash": "6808aa310a9f54ffe84bf5653e735a0ad600c608a907851396bf8c075d52c9cc", + "lines": 495, + "functions": 22, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_12.rs": { + "content_hash": "a23683659b99ed53f1d94379a414bb1088617b377ef4d672d3c7523e6330e14b", + "lines": 584, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_transport.rs": { + "content_hash": "9be38f2f8c563b82f6df823e7f47e1000f238d7883f930e1b32f8cf3a36b9a5d", + "lines": 487, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_cross.rs": { + "content_hash": "fc8522c2858d35b0f01007c86b2e33dc65f53517580b36cc757545ad72217855", + "lines": 362, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_15.rs": { + "content_hash": "888dabb060c0a2d85d4e41cf85931912a317a4e27fb8626fc54c8e9ac7c447d9", + "lines": 584, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_remaining_9.rs": { + "content_hash": "e6392c9f422e76d22599cff1f48d9f31e9b9108407425b644600e96fcaca726f", + "lines": 466, + "functions": 29, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase103.rs": { + "content_hash": "cbabee64dc0654ef58d19e26d4037ed79847fdf34d04e3b12d51e9cf56b77028", + "lines": 208, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase78.rs": { + "content_hash": "51ce6b926ea80c7e21546cef0a5f422ca8135e8087f355155495a039d77cf285", + "lines": 289, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase72.rs": { + "content_hash": "0139d14fca9a40bb4118f91d4fc4ccd9c6a14577494a34ec92f84185ad97add1", + "lines": 279, + "functions": 24, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/codegen/tests_completeness.rs": { + "content_hash": "911cabd0471feabd23fc8d140273235e9042a8d8b8f9b6e8759cdc5c579c92d9", + "lines": 280, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_gc_exec.rs": { + "content_hash": "e1fccbbf7f3ada96e33a6782f9c8a65e637f128ec07f668a829743c66fe15bd9", + "lines": 252, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/store_args.rs": { + "content_hash": "10d68eaa23db6deeceec6e5a53b97988042941256d1ae44aaaa7a4889e0c4869", + "lines": 250, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_validate.rs": { + "content_hash": "7b9db1114d00359a0bc997e5562cfbdc1c2b59b1e95fb423eaae4f35571af7e0", + "lines": 168, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_validate3_b.rs": { + "content_hash": "72d2a8a790bcd923af56a5cdf391ac7b36fb20e6165bb3ef0ebf7392dcd45131", + "lines": 366, + "functions": 45, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/validation.rs": { + "content_hash": "7a567c913b4d56dad15ebc937c0c47946b485bc508da83a434fa4f3f2bd38232", + "lines": 133, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/task.rs": { + "content_hash": "cac6107376b85edd8b7c7a1fc9cbe8772a7508d549a74b183420601ddc15ef37", + "lines": 165, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_recovery.rs": { + "content_hash": "0d4cfff5a848ceaadac787b245e475aff436cf6297353d029a9b79c26e5dc304", + "lines": 677, + "functions": 22, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/scoring.rs": { + "content_hash": "8171a5ffd79df712ac72d34b151c957979eecbebfad376bdc03a7e311b63859f", + "lines": 619, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_cost.rs": { + "content_hash": "7d4433d13d433d859f8ce786d2dac6d8d4b61318e2972f685f94da84327f86b9", + "lines": 258, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_sandbox.rs": { + "content_hash": "53da5a42b62345bc14b3ed96491582b76080d76c3050b9be2fb06315ca9e2fb8", + "lines": 218, + "functions": 22, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_store_cache.rs": { + "content_hash": "bbc8884fec30a6b4be2c5cf2149d76613d22bc4cfe4d996bcd4f92a3d7669580", + "lines": 158, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/blake3_hashing.rs": { + "content_hash": "ccf6727357b9f7774670eba775bfb4ef8ae608dcff6acbf70a4616e73d90f2d4", + "lines": 36, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/store_diff.rs": { + "content_hash": "3604892b9c7259ae2d773fe300b4fb5ab77fb8e982e0188e783e913517c4e5be", + "lines": 161, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase106.rs": { + "content_hash": "ab55ebf79c9fc973a5a13a5bc5836d5690ad4f085c37fcf797aace755acfea91", + "lines": 207, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch_graph.rs": { + "content_hash": "6880907d29ee1e23db3610830ce143e3ce6c1e5d1b9a7d3fa238e5c3d9b98c81", + "lines": 1142, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/anomaly_detection.rs": { + "content_hash": "7df1ddb35aa1377af77266b5b10313781ecdd0b715bb78fefaa28d4b1dc9a2b0", + "lines": 123, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/mod.rs": { + "content_hash": "d6f20aeacf53c77365727163bc1ba6263497103933a855622e5465ded5bd8891", + "lines": 42, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_store_pin.rs": { + "content_hash": "9b1688c31c9ef9884c5450f1b704d487514270fc5f94ade48a1b4e8cade08a4b", + "lines": 178, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/lint.rs": { + "content_hash": "79fea5af0fb5cb75e072206a20820d9dc06e3fe34e3e626d9992bf84c86fb4f4", + "lines": 259, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase92.rs": { + "content_hash": "cc5bc0612ff315eaa14e960c3bbbf8c0dccd5663df72c514d0362f04fc6df330", + "lines": 310, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch_notify_custom.rs": { + "content_hash": "f8037c4ca348c06dc50eb5ee323d77e9412fb370cf0c5299f5b9716b334488d8", + "lines": 427, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_analytics.rs": { + "content_hash": "5d5ee17e1dd1549aa2433d189257f59b54b718eafff552913e5e0187de17a1ea", + "lines": 424, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase74.rs": { + "content_hash": "769ca19a23eeea8da2e900c8ab4dca4d1ffcfd0b29c03f9133b8396ef000131a", + "lines": 281, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/types/config.rs": { + "content_hash": "273ef42049338b1bcb6eab93232ef065b5848a195af8686dcfa58019bfc7fbb0", + "lines": 373, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/codegen/tests_coverage.rs": { + "content_hash": "34d3b6fcc4fea7cb616e7538af6d6b508f6ce6933d7a900b3cb70b717d473c61", + "lines": 269, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/mod.rs": { + "content_hash": "c36359c0bbbcead0cc16fb65703c8bfba1fa0dee5dc8dfe9e314454d5eece642", + "lines": 27, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_graph_core_4.rs": { + "content_hash": "d32b0a6227cd5c5b044c1af69d88b0f1c82c74a32e2a87ffa5304291f1e9512f", + "lines": 92, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_1_b.rs": { + "content_hash": "d284dc840647a1e7cab3b623de997d50a3263d31ae77db2939044b18a7b096b9", + "lines": 474, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/contract_scaffold.rs": { + "content_hash": "50996afc43ee2745591ce7b4ff9a3fb25ea0912354f21bed5a0802871357da84", + "lines": 80, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/mod.rs": { + "content_hash": "4be4616b935c9a86bd39e95e6310c1c6a1ab7cc607493b9ecd10edf36d2d9325", + "lines": 340, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_export.rs": { + "content_hash": "7e4f37f57e8ba466cde502437cdf0bd43eaef2868e103586294a836e10250f3d", + "lines": 517, + "functions": 24, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/drift/tests_edge_fj131.rs": { + "content_hash": "c55d3a18a1cadaf071128745394e2cf59de8a5c9806452e07766c38d12490ae6", + "lines": 313, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_6.rs": { + "content_hash": "22c4fa186d85c509e018a731fd3ccdea1d2ae83cd9152786fbda97376fd55c68", + "lines": 401, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_args.rs": { + "content_hash": "d6ff2578cdef4fb0853e97436d525ab7311339457cbcbd9c0574d2f85ddc7c9b", + "lines": 472, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_transport.rs": { + "content_hash": "c33ab3fd3cb1a5bfe41ffd3bfdd4ac703183e6fdfa303857a21aceb497216f7a", + "lines": 276, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_diff_cmd.rs": { + "content_hash": "e57e4cd9dc1058e813d4dc380a24eab862caa0758b90fcad6d828ce195ee13e5", + "lines": 497, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_notify_3.rs": { + "content_hash": "216bccf19aab69f190b04af25c296385f62577edc54028435be95a11066c2be7", + "lines": 474, + "functions": 51, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_store_diff.rs": { + "content_hash": "73079617698d552eaa3ce7ba0b6c405be84c718e78eee852ac638fbbea40ed75", + "lines": 192, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_intelligence.rs": { + "content_hash": "5e77edc6f71d2664eddb5d0231eea7a01170920d47241fb2246ac48edc0251fc", + "lines": 656, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase59.rs": { + "content_hash": "d716283070c6018f6228d6aaebe527ce49d4ab8d1f29046af162ad23fccfeca8", + "lines": 120, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_remaining_5.rs": { + "content_hash": "67ff6948936e96d24450ec9fd9a80dcba42f9949406834c38922b4ae89286d88", + "lines": 475, + "functions": 37, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_4.rs": { + "content_hash": "17f18eefc5dd9b6f13a4e6173a4f78c90284e9b4f98b0d95038f4ef4d0fa8717", + "lines": 521, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/drift/tests_edge_fj132_b.rs": { + "content_hash": "703679ec24f82db736126262db62b34f04517ff4e038279669c874dbaa646fb4", + "lines": 272, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_args_2_b.rs": { + "content_hash": "0738bf02be170c9d3e3e2d41c1a1ce191e7fa56431c68afc9459427c35b02c1f", + "lines": 161, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_drift.rs": { + "content_hash": "5f34e558d5b53c082a28d43579f18cd4962307695c2e9fa782d4c2362399c302", + "lines": 381, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_misc2_b.rs": { + "content_hash": "f18f96451cb4e19cefa0a985dceb3afa1871798d2e3be85141e1685234c17263", + "lines": 298, + "functions": 27, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_contract_coverage.rs": { + "content_hash": "1486025963182ecdc9a8d555929e9d57613dc66463f139225f9f477db4753aa0", + "lines": 293, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase98.rs": { + "content_hash": "3ef40d8eb024410a388a63b957bcbd8b4b2de79e9bcf915cbc13ee6c14666cb7", + "lines": 251, + "functions": 33, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_apply.rs": { + "content_hash": "0fe8601283da0f753ed01431e5401bab3b82c7243b495696ba658cb24b9d1766", + "lines": 427, + "functions": 33, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_validate_core_2_b.rs": { + "content_hash": "22f5f3903a07db1e20a30566d978cdff3aa8f6cd345360996b237c0fce6a88ac", + "lines": 659, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/user_management.rs": { + "content_hash": "778853f748c4e51e356d3964dc284e1644806b380bda3393d2d02dd0ac2137d6", + "lines": 120, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/policy.rs": { + "content_hash": "1d649aa9ec5345b621a76ea085fba62cae11b53987b1986c7bef281d1c0a49bf", + "lines": 106, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_pin_tripwire.rs": { + "content_hash": "4b400e9e27207460dfae9a3686e898af1d62f7dca35656618f6438fd860fd7fd", + "lines": 215, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_store_convert.rs": { + "content_hash": "3cbbbd88556b1bcc0ab649ad3b02c196a85e9992214d22846de5c18ec0731316", + "lines": 127, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_validate_transport.rs": { + "content_hash": "af826465479da479476baf68a2514356e913912de11873d61532a915562a1657", + "lines": 379, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_dispatch.rs": { + "content_hash": "6358cf318479593cf597f419d64a74af27bac5f881755714a645d7abd9f4e972", + "lines": 466, + "functions": 29, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_17.rs": { + "content_hash": "7c0212f2ea73638a6baab961322bd7d790910205185aebe8a5a5ead6808b3719", + "lines": 586, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/types/mod.rs": { + "content_hash": "03c03d2a2752ede3f9a5d3d56726cc3e448f874db26732c23f6c26f859565256", + "lines": 30, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/types/state_types.rs": { + "content_hash": "77c870181340cd507179ef384395887fc0b16b2c9cd5c1ebbbfe920576174ba8", + "lines": 298, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/history.rs": { + "content_hash": "b71f21a1943143a0694336ed32053d28a4bea1275320430367ba14fa3e64977b", + "lines": 268, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase86.rs": { + "content_hash": "153172f7ef3c5139c3921114f76cfc53f40a54d98910d6b36f9f6dbbd6a91413", + "lines": 160, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_file_b.rs": { + "content_hash": "3bec80020c9d09db1945cb4e43c56c0a623cb27e60da53ad8bf3d31594414363", + "lines": 391, + "functions": 32, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/tests_dispatch_b.rs": { + "content_hash": "b198ec9a4f125510c39152ba9dd89b831861c481ea5d387a987171a7d88c04c7", + "lines": 309, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/meta.rs": { + "content_hash": "ee76198a36d480e2f1147085306b65a8f851e26665bb42fe1f443aaa38095326", + "lines": 125, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/resource_types.rs": { + "content_hash": "68f2bbc06de073e745215d0a5f55ec9b778b8f4296d7acdd81c4279d1c75f059", + "lines": 320, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_profile.rs": { + "content_hash": "5910625e51426f1656aca1054eeabf43b8f0c113b4881fb681e4283363b59bdf", + "lines": 104, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_chunker.rs": { + "content_hash": "f0cc30924b1441600d59602f94906775f5a056ade2dd6f6f4c3c5cb9f412e675", + "lines": 136, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/cache.rs": { + "content_hash": "b0a9420e9c7cad743ca5ee26f5b366e3f64a3599499f83e5dc8d7f526c2570ed", + "lines": 175, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/local.rs": { + "content_hash": "42df3372977903d61a060ee4949826793a11e046b38b022b59743c864b4d4f9a", + "lines": 149, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_topology.rs": { + "content_hash": "7a8a8a0e3dec311df91ea693be873441b2d0db8b81dd09e33ab3d94521411888", + "lines": 484, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_graph3_b.rs": { + "content_hash": "0b53e9dd56f69e38122e721290cc6e0d3a8415a07e0c460f2a1103a3bdcfc419", + "lines": 499, + "functions": 67, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase90.rs": { + "content_hash": "e9ec934562b29f5243ff4ce89b3d1c0d5ec5010fa5c8b7b0a10e330c1b86050c", + "lines": 309, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/hasher.rs": { + "content_hash": "4a099da8167b27b580663b6be81f6964b35d00c5083a52c4396481338077d97e", + "lines": 93, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase101.rs": { + "content_hash": "74758c38fa148996d240fd23b5a951e82edddb5e50b95fd15c449275065a8f57", + "lines": 207, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_9_b.rs": { + "content_hash": "3a831a32ac2c14170211c76398f8ca81dda570c83f38df1e7ce7cafc5e3bae24", + "lines": 206, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch_store.rs": { + "content_hash": "eff09a6186bc91bdc9a003eced9d2fc95ccd29d85d6fd753c98bb269ec29030a", + "lines": 116, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_status_4_b.rs": { + "content_hash": "3032f88e69bbee38dc979ff676b6ae8c58e0e085b551bfeafa4b3dec3fdfe768", + "lines": 335, + "functions": 42, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_resources.rs": { + "content_hash": "86864584590b7104eb79dfd942dadbf2edf0539ab749e174a78d2419452cd311", + "lines": 376, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_8_b.rs": { + "content_hash": "9d0b1701b10b92390265cf41b623c1234fafd0e600e7fedb75a70a73de503993", + "lines": 474, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_transport_3.rs": { + "content_hash": "5db5283ea634c9728bf749c2a68817a5460d41466c4128cea901d7e833dfc87e", + "lines": 496, + "functions": 29, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/arch_filtering.rs": { + "content_hash": "0c7b4be49e9498d6b6a8e4277cf7ceb27c84887a8f2dfb8224b20f4cbbe2083c", + "lines": 125, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_converge2.rs": { + "content_hash": "7687b3a9b2fadbb90b1b12c193058eb20f332f8b79000265df647d579eb41d30", + "lines": 325, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_6_b.rs": { + "content_hash": "7e2a14df6b54e692c97b64d08ea54685e4e3cf5ad33a56fe6722ef70de1ede3e", + "lines": 474, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/copia/mod.rs": { + "content_hash": "0e23b4a219ca632f3478d22ef3c04c705251af4838bc344c1e7870ef26b8b6db", + "lines": 239, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase84.rs": { + "content_hash": "33863ec3fca34a46d4f8ba2b7c3949438640899e7793463ed3dd93627d48d6ef", + "lines": 289, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_remaining_4.rs": { + "content_hash": "c8529446eb09eb388bd644f5dec34d0a0f65c52a4a3180b6328e168c22ea1313", + "lines": 427, + "functions": 44, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/tests_container_b.rs": { + "content_hash": "3e362db276afe5b00807edd1bb908ab0d43ede1ac1e2380756745d1dcee91e65", + "lines": 360, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/conda.rs": { + "content_hash": "92a0b3d6e29c245f814f7e4b524dfab625f49ab2b6b2f4374a5fc1c445a96d55", + "lines": 307, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/validate.rs": { + "content_hash": "6233d0994ccaaafc3c9112422e700b7feceb4883f7baff463b6595bd623d2455", + "lines": 131, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_concurrent.rs": { + "content_hash": "d06fa49b373312851955fe8ac459c25ea1a833b9c29adfbc9fdb160e11bd5be0", + "lines": 356, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_drift_intel.rs": { + "content_hash": "a1e382537802f1d90981b5a9d78b08857ec2e3f418dd56826c87e5fec3424b36", + "lines": 393, + "functions": 22, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_quality.rs": { + "content_hash": "2c94ea204e4a115133bc709888f1e82c24e6253e59a85578bdf7c289a74d90c9", + "lines": 272, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_6.rs": { + "content_hash": "5ad945ac1b08da3090f272806b36e6632baebf13aee0dd6a4de1adceb03395b8", + "lines": 582, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/recipe/tests_expansion.rs": { + "content_hash": "08d5f5a86bead9b806f586ce55375a912d51dd14e8ef67cb04c5ac1bcb228d30", + "lines": 448, + "functions": 22, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_args_2.rs": { + "content_hash": "e91f9e265dfb772ae8daf143fdc99fc593cdf114e61451e5e0aa1a3f19aa0728", + "lines": 479, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_check_2.rs": { + "content_hash": "90f36300ab8d3ac244bea609b6f03f08247aea096fc30cbf25fb45a8cf6cb6f6", + "lines": 411, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_validate_core_1.rs": { + "content_hash": "c1ec0ef1de015b836d47a38cd392d304595682809b6f8abbeeea5e81a8142d05", + "lines": 804, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase70.rs": { + "content_hash": "2a92c7115123b83d8d0b4160f3e9332abbea33cd994106a7e8b93c1fc3e2f376", + "lines": 280, + "functions": 24, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_graph_core_1.rs": { + "content_hash": "b996492b79f04f8f625bd3b70571a2f5141cc8abb40404afd8256f97d6a1af27", + "lines": 1033, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/container_transport.rs": { + "content_hash": "03a9a741dbcb05d75a335dd97099bbcb2021d3b7badd7cec506d15202868b370", + "lines": 120, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_status_1.rs": { + "content_hash": "6bec4145c05fa7caaa3d05fdf3515f0782120a8385406fce9df4f4a3c09cd896", + "lines": 467, + "functions": 65, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_1_b.rs": { + "content_hash": "33221eefa354e0482515d3ac44909c8b218d54435078814040b93ddc6f1d6f31", + "lines": 208, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_infra.rs": { + "content_hash": "3b716ac33cc323623c1948692f08077c230694186832a2eaba52778daa11c773", + "lines": 306, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_3.rs": { + "content_hash": "2ddf48816c11aede0141eddc648728528b6c55f6e532638c37db7a9e3ef97482", + "lines": 705, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/mod.rs": { + "content_hash": "9f6044672813dbffe20b724482ecb623a36ec42be35c525f8225de85d60206ac", + "lines": 186, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/store_reproducibility.rs": { + "content_hash": "e1fd38b2cc2ade0444e77a0a2d7310b7ca0d2554f9db3ae5ff1753bbc8ddd969", + "lines": 450, + "functions": 19, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase77.rs": { + "content_hash": "69145b26c382ffe4ef2045d6d4ef57b1170bfc14a8e7916f93ed8f5018edfa22", + "lines": 291, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_history.rs": { + "content_hash": "fbeabf5f857e37748c156384889a1b7ff8e67b4b9ef626077d8e82ffad8bb45d", + "lines": 230, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/subcmd_args.rs": { + "content_hash": "f30161fb246f830e179318201829d0d887db3d017b98a3d18bc50ec637f33e24", + "lines": 120, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_validate.rs": { + "content_hash": "156fe9a3861bd5c1033ce9408b177b24db65749cb8560640fd3b18b532baebb9", + "lines": 311, + "functions": 42, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/drift_detection.rs": { + "content_hash": "6319b9280486dd5580425f9e93df747b1a32d95f0ff06c5bce38f9c0e4ebcd1d", + "lines": 127, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/kernel_far.rs": { + "content_hash": "bafdeac640d0494aae58e3ae0512cdafacc7b6aacfa43c014bc085e4a238a600", + "lines": 139, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/mcp_server.rs": { + "content_hash": "b7126d57d09e74f70c23893061f14c2d061bb44f631451544776b412e52d0a98", + "lines": 53, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_health.rs": { + "content_hash": "967ada2de2f50e004169e6e3dfbc2b75807fd3adecdbe8ada6da3ca827a51172", + "lines": 403, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_4.rs": { + "content_hash": "daf747d1945c7b4cc9fdcd35cae653abb2446da79354f4d1ace15a885b27bf08", + "lines": 585, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_graph_core_3.rs": { + "content_hash": "6a6e4b1bf89ede7219bbbb1b88aa7d259acf7bafacbae1b432de0948fa4a0f7b", + "lines": 757, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_b.rs": { + "content_hash": "022ccd86512e794a15c77242c1071530dcb99d24620ee43ccba398d0a79802cb", + "lines": 369, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/recipes.rs": { + "content_hash": "5bf513847e93b5f32beb6ae07e4ae664a42f57ef1693e93b1449c4eb9f3a20ef", + "lines": 138, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_lock_core.rs": { + "content_hash": "70adbb33a1eadbd8fcd553e18d283c32833e30995e4c32e7614d648c4c708b88", + "lines": 467, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_security.rs": { + "content_hash": "534f8faf855d2ebe94871452b0e993c762ba38be7127c95f198d3f6e26dc8c49", + "lines": 436, + "functions": 28, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/includes.rs": { + "content_hash": "316b75cb0f563a0b3df5e4e18fb2e5a47283f5b73544559bee00e293f58a117a", + "lines": 51, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/types/policy.rs": { + "content_hash": "9669a0f635a6090ccb2b222823b3632367cd5c303e24c2f47c33c2430c0114ef", + "lines": 118, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/drift/tests_transport.rs": { + "content_hash": "930114ee44480ef88f9e0c153202ece0072243cf38b04d49f517e598b3dd0809", + "lines": 247, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_analysis.rs": { + "content_hash": "091ac709f81cbf81016d5afc8919f47ef129402f50c9cd93d069b70a4ffd24ee", + "lines": 315, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_intelligence_ext2.rs": { + "content_hash": "ddaa73730c7560e3746b74fc84b6d38345ca14c7d20823cd31db285ba95a7500", + "lines": 643, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_observability.rs": { + "content_hash": "db0c4b24e95f1e78eb9041308e5bef150b1f4af47d4c9c70afc019edafccdb8c", + "lines": 419, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_lock.rs": { + "content_hash": "f7421ffba17f648c183009ee32a2f9f35e75a8e6870b962a25444f517d30c367", + "lines": 492, + "functions": 65, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/ssh.rs": { + "content_hash": "e7bb315129a19f0cde6b1f62f0dbb48ec900f31d719affa4474ad1812dffe4a3", + "lines": 202, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/helpers_time.rs": { + "content_hash": "3cc6c787859c42c701962a8943fb8d48c502416c59af9add56c40b500a1b278e", + "lines": 82, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_transport.rs": { + "content_hash": "1c444c1c80a71de6090374a70fbfae8059293bda45902f8ceda4ba8c6a93f47c", + "lines": 212, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/lib.rs": { + "content_hash": "e0b8dc7a5e97c44562a039ac02eb9134596d8ad98973a25080203f32a92e1067", + "lines": 12, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_diagnostics.rs": { + "content_hash": "fca182a3d1a07e39525cece8e8c450bbf6acf6c611e06c98d9db2dba73797794", + "lines": 578, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_helpers_state.rs": { + "content_hash": "bdaf0fef198566aa4ea317fdf578d0d5676e470962159a2bfe61af922a2af1c0", + "lines": 147, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_arch.rs": { + "content_hash": "940ec9891e074aa9fd5d4805cacba1d4c7b0d269c952d37ebfc9aba403f3f26b", + "lines": 152, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_1.rs": { + "content_hash": "a9585baa58750091b28e6495aebec099df26f3b35db61484f16b32f2c3cfc37e", + "lines": 395, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase100.rs": { + "content_hash": "082e88670a307c41e4461619ea486580bab5efcf8b32a2645101677f689fb04c", + "lines": 204, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_drift.rs": { + "content_hash": "49e2203aa6db0c38af3d2b3a77926090384e38100fc6b951057dfb559567b9b0", + "lines": 458, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase82.rs": { + "content_hash": "fa4cef482998707dd19209834ba250b6a3dea79eb38120b118e29795c01b861b", + "lines": 289, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_lint.rs": { + "content_hash": "5cb83f7f55532c360a592d010ae54ea7f35787782a84aa139281154a04bba24b", + "lines": 196, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/tests_proptest.rs": { + "content_hash": "0eb89718248287a3dfe83e3adb93336309e3831ae0d267cc00b660d9b06e7889", + "lines": 76, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/template.rs": { + "content_hash": "bb4feaae6011fc97fa6a3444be4ca14a2b32d30bc1da14700669e3066c2d35c7", + "lines": 105, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/store_executors.rs": { + "content_hash": "d6911852f2850e6b65bf84434172400be03adf5be7d3dc8a870cb7dba6caef28", + "lines": 385, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/machine_wave.rs": { + "content_hash": "64b36b0379cd03bbed53ef07d45f7c1dcd8681a58ff7a8fdac5b08fc40bf029a", + "lines": 210, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/lock_repair.rs": { + "content_hash": "5df1a01c6d3e651a03ce69af2bce43587e0caae153bdb9650250bab85e85548e", + "lines": 122, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/tests_secrets.rs": { + "content_hash": "c3e9a7a11caef27d4950768370be2f68d69ed711fb48393ece5eebaecd99fe80", + "lines": 440, + "functions": 39, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/machine.rs": { + "content_hash": "1016a4470cfb85dfcd868df21fe8086a3b18c842765eab1d22f967aff8f525b2", + "lines": 533, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_parallel.rs": { + "content_hash": "f82bb8f72e4d6b25694ffeb7abaa01e6e77934ee96fd2b897ff6845fb18f6582", + "lines": 404, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/convert.rs": { + "content_hash": "02a72e67c50e2ff057114ec4d407d4de92e92e5b54ebda75c477862fcbfe930d", + "lines": 221, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_convert.rs": { + "content_hash": "1559a180fa06b8ddf219469771feadd18f677cd82cdf489331ba3f84dc282300", + "lines": 173, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/snapshot.rs": { + "content_hash": "83af1a99813a12ae3c8668c3a8a38bdfd54e5efabdd337cce73502b3aaf41950", + "lines": 168, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase67.rs": { + "content_hash": "ec27a9281d427d21d74d40932e78ec67830df492548a4b4cb808f5b48abd75af", + "lines": 191, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_resource_intel.rs": { + "content_hash": "86d33a5d43a4e1f5cbe8e5672e93f066e17fe64dd817f2fe5c014a63696f2557", + "lines": 719, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/mod.rs": { + "content_hash": "3534660afbd68852179095bcc91c867aec2e4c43c5a8567ae7ff5a5963553a99", + "lines": 587, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/cache_exec.rs": { + "content_hash": "eb1d3d7a584cfc38ebf258302c78b43ec08dfa5eb1c94c809bf5e8f46665f29b", + "lines": 254, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_20.rs": { + "content_hash": "ff9041e68cce47cc5cf528994fd0679b0d7ec933d98b9e618a6a95b35f79512f", + "lines": 591, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_status_2.rs": { + "content_hash": "aecb4e8084ebe53396f124fe0af98547eeca2473f59238fb6a3ebb5f4ed8ebfe", + "lines": 453, + "functions": 64, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase69.rs": { + "content_hash": "2f2bcf585b5143f5b20d41afab3af4b82173d27fc481a5586adc2e418465110d", + "lines": 280, + "functions": 24, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_remaining_6.rs": { + "content_hash": "102b940279a20a22ba9708ccccc70260cbb63e747a363dd12a2d0b62c9a704c2", + "lines": 492, + "functions": 40, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/container.rs": { + "content_hash": "45a546877c6bdbd441e67802d0eae4567010e93f57f048487a15c690b71c234d", + "lines": 168, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_queries.rs": { + "content_hash": "4e34a126b8c125dfe51f90a1aafe25a3ccc45747614703985b58203040e5c983", + "lines": 364, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/tests_dispatch.rs": { + "content_hash": "f8aeeb82af4295c3640425dc973d3fe86cb45df833613c5d243f5bc976cf4cdb", + "lines": 394, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_edge_apply.rs": { + "content_hash": "eed737476c55bb2a27aa55e9ab9172157c484deb7a587f0755efd51c74e71c44", + "lines": 465, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/data.rs": { + "content_hash": "e38af36163c68498a96ab1edbb077a08efcad8e2a2e86cea14eba74590b70dbb", + "lines": 139, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/planner/tests_filter.rs": { + "content_hash": "2827ee3bfa4044aa72aee8cb2748a18cf1199839f9ecadd693ae3e599c0207b7", + "lines": 133, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_5.rs": { + "content_hash": "824b0d8f75706dbcd9fa8c3b8de4bd7a8d23b17de16c64b462c4fa242d8dcc06", + "lines": 395, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/helpers_state.rs": { + "content_hash": "b97c0209fda99a616045bc2553747a1eaf61a365df9d4436d5fd52119094f234", + "lines": 114, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_secret_scan.rs": { + "content_hash": "cc073b7a66b7a45c5db160d8c6f5cb20f0b9031ec777e36916d178bcde9eaf0f", + "lines": 263, + "functions": 27, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_governance_ext.rs": { + "content_hash": "594e07b068c78f44240d180b9da8754d0800db3c1ff3282436bdf07a126dbaf8", + "lines": 487, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_paths.rs": { + "content_hash": "98f7992ab6e2fcf7abb582a9ac94899efba591d83ca50724fb4631a5302d1ddc", + "lines": 337, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase83.rs": { + "content_hash": "9234ec3986faf13c9d6bd8fe87076bb84caab479f5be32081d2b50e7d74b963d", + "lines": 289, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/eventlog.rs": { + "content_hash": "66aa015f1b02ccd27b6e8e9b78b013e6cd3c873ebe2ac8087030588a90185897", + "lines": 105, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_show_2.rs": { + "content_hash": "bd627925118bd47ac5bbbca0b90951c6fae93b5bbf1617a2ab27dd5bc6a8f0ce", + "lines": 225, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/state/mod.rs": { + "content_hash": "e0762e985be68ee38bcbfb5f03e876243ebd68d9184bddca38da517221441a81", + "lines": 335, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/strategies.rs": { + "content_hash": "47300be7d021d6fa65d12516cfe21bc9efa2b9d4d14a702f668fbda29deb6362", + "lines": 129, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_4.rs": { + "content_hash": "adfe0851995390d19faae73140f40d2f5b7c70a730026d0a8410ae7eb122672c", + "lines": 707, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_remaining_8.rs": { + "content_hash": "c08ba05a5d14178049fc610d8bed82023ae2f09ba65b276812c6c6df1431e7da", + "lines": 486, + "functions": 45, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_doctor.rs": { + "content_hash": "24fbc7d8a065ff4bd1bd7380595e8cc5e5cbc9db2c0fb91e1a2a2ae8a3ae1455", + "lines": 178, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/pepita/tests.rs": { + "content_hash": "a91a0df7f18b27ee5d840ace7036d0e7b75870bcd26749fc7078087f5aaca17f", + "lines": 365, + "functions": 0, + "max_complexity": 0, + "category": "TestCode" + }, + "src/core/store/pin_resolve.rs": { + "content_hash": "fe3ca39b83bf797a137d51ed529695127231448405f7044be43ce3474db6ed75", + "lines": 205, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/drift/tests_full.rs": { + "content_hash": "9c60bf9ae7deb70447f2ee2c8caebe6f0f2edfafe2965f4e7c59add1fd83ad87", + "lines": 455, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/sandbox_exec.rs": { + "content_hash": "81497fc856954a8f238808fef3d031046141e36ca6ff229d057d28c8d31addd8", + "lines": 322, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/repro_score.rs": { + "content_hash": "868b818e86f30358f42e560e49346e66426f57871f68a406006e9028b2fca262", + "lines": 119, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase107.rs": { + "content_hash": "e486299b14d73cd633bb447a4c25ad0e122c296dd1b7bc5d38ad973de7f6df69", + "lines": 225, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_service.rs": { + "content_hash": "650c36e857b38efd8b572e3a91b19bed1bf5328d7af68080a5f4f4fb73ef3d38", + "lines": 421, + "functions": 30, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/tests_hasher_b.rs": { + "content_hash": "f5b697b99c5076d1499ed56d039551e4d573da8e5140ab3199102cdc0ab119a3", + "lines": 265, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_package_b.rs": { + "content_hash": "e00b5572eb5f2d0f5b2a128668f2e109598a73534c7df084869c90b43ba34840", + "lines": 289, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/mcp/tests_registry.rs": { + "content_hash": "35bcc9a5dc807b410f61dd2d587efc07135c010102abd0a27ce29ea7a32cfbd6", + "lines": 129, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_reference.rs": { + "content_hash": "c49c2bddda5b11f68be69125f09c88b8cdf5f063de0bc3175c9feb09b9bf0006", + "lines": 123, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_store_archive.rs": { + "content_hash": "bcf1bb0fc5105667e853fbbdf8b7718b9d8dc3f5fcdbbaf525c3a9788bcf7526", + "lines": 143, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/codegen/dispatch.rs": { + "content_hash": "b0cef52bfba28729d54b320d8a05c52915033e03dbd896d1f0eaca06f6b41b5b", + "lines": 79, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_resources.rs": { + "content_hash": "c30a9bd72485e2d4669f36919b1e0498e8fc5510d523dc308b2b43fe8b21bcf1", + "lines": 260, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_store_import.rs": { + "content_hash": "102b2669a47ca0cb3b214d03010604a50de4d039e80eb4e94b4ba2b92824c7a7", + "lines": 111, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/resource.rs": { + "content_hash": "3bdf0233a3df72792c19239fb2e2f6adaa7797176cc84d5978f3cfd797fcaeb8", + "lines": 71, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_dispatch_2.rs": { + "content_hash": "1fc985791b0269cc12e0d0e2b0cfd4e157aca99b943ad9e9dd9427e475d5caab", + "lines": 483, + "functions": 30, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_hygiene.rs": { + "content_hash": "96676f26059702286ab9a5351f1c895c82a76c22dc3aee5661d13b9308f80174", + "lines": 497, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_9.rs": { + "content_hash": "12615ab2ab0e95d47c3c356ba5e0e6667a55ca386a23bbac175113fc13e436b0", + "lines": 528, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/planner/tests_when.rs": { + "content_hash": "7d781ca2803bccc31c5a5e4602b67933f9aa421dd2e9f70fa4b5c32eddf38d70", + "lines": 103, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_lifecycle.rs": { + "content_hash": "e2aa32b5d86669dacd3372184338375a61d4a42d0359a6e206aee5bb0c1bd8f0", + "lines": 285, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_plan.rs": { + "content_hash": "5aea601bb36efb618cf588cf6b9e5b0bf6d21064478d68de5b8f7571aea43f5c", + "lines": 475, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/mount.rs": { + "content_hash": "c2a3832d37383b154b7771f9a943d0ff31758f4dd6f7367ce8f83bfef994dfd2", + "lines": 72, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_resilience.rs": { + "content_hash": "c6fe3613bcb0c1d81ea3370da4237e88a3e0ecb46066f5c9de84aefde1a8acd6", + "lines": 252, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_paths.rs": { + "content_hash": "f744e57ef946a04fa8ab74b4b2a5c04a382e2ec42a7cf6b3a78fb6467babad98", + "lines": 517, + "functions": 19, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_fleet_b.rs": { + "content_hash": "079ef5be1709818426bf9b485cfa249617ca2acaf46c0dfbceca1dff39fdcc22", + "lines": 314, + "functions": 30, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_analytics.rs": { + "content_hash": "9e5ee6bf3a334977ca44c02b677f0e56b00a40d97af4c99ffe41ae12d7fab99f", + "lines": 486, + "functions": 28, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_status_7.rs": { + "content_hash": "d3f9cf0e6a16168528c207b05a4896c2a337e3e63097caa895344ea66e8da5e2", + "lines": 380, + "functions": 58, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_misc_2b.rs": { + "content_hash": "d5b42c215c27b1e08c7756f65bb265500ba10cd24bed9da74ed294ce1cde1ba7", + "lines": 452, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_graph.rs": { + "content_hash": "d6324c03b4c5dcf421b9d0a587e46c4ddd47629af49d78a4ef5351471ce7b727", + "lines": 335, + "functions": 53, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/graph_args.rs": { + "content_hash": "1ca088d8da750f957172e6d6fc1fae080a39d0f03c25448ff2136941d70aaec4", + "lines": 496, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/purifier.rs": { + "content_hash": "baa6efd98650a7215e3625953387dee9e5dd2124122d2bdcdc5000da2200c967", + "lines": 91, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/mcp/tests_handlers_more.rs": { + "content_hash": "9f521869e1bf0d3061b2311c7fefcdf4f2d9275188bd5604713e252dcd891ad2", + "lines": 349, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_intelligence_ext2.rs": { + "content_hash": "f1d0f601b3f665c3dc7dc2314caf87827e1ac030ddf81de17aad5e156b307ff6", + "lines": 624, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/lock_core_args.rs": { + "content_hash": "273fd1b5632fc1d2d997ccd6f3b94aea533dd79c2845ebe5abdb246aa7769c80", + "lines": 254, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch_misc.rs": { + "content_hash": "61c9068fcada0637c306cbbe559a6d286b298da3521038558f5de778e1e4a8fd", + "lines": 295, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/store_convert.rs": { + "content_hash": "9a4f53e95baf8df5a52f8585341337d69fe3b1b7e1586abae21419e9525fdabd", + "lines": 131, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_remaining_3.rs": { + "content_hash": "db47c0551191717e888422f39d498a0d91007c5eacbb1402db5a9561bff12c48", + "lines": 454, + "functions": 42, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_validate_core_b.rs": { + "content_hash": "3df112f43b66f2612375b6abe8f737900c689d94c3982a88c75ee02930dd7b65", + "lines": 489, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/diff_cmd.rs": { + "content_hash": "aeca8eb5893d02c7ec86beb7eb0c2f5708d34c497f74ae33047c5d9133ce2a24", + "lines": 378, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_sandbox_exec.rs": { + "content_hash": "8fdfb88e74621caec25f8073fcf3fdbd10edd452448f4b6b265c55ea9b466ffa", + "lines": 248, + "functions": 18, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/drift/tests_fj036.rs": { + "content_hash": "ce89d4858eb542c3e505c8bd744c9ceb7d43ff802fbdf172f084bd088b239aa5", + "lines": 236, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase102.rs": { + "content_hash": "28ceaba1ffaf865a6947a081b160e034a05ea8cb3a0969068df6dd7b63d550fc", + "lines": 206, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_compliance.rs": { + "content_hash": "189ea51340b3381cae608da38eeac89e569cc1f7f918b75cfb66d82a9dff6499", + "lines": 208, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_impact.rs": { + "content_hash": "00544fdc7f7188c598c92156eb38e420e1cd832ce406fcb903a977aa350e6d72", + "lines": 360, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_fleet.rs": { + "content_hash": "0a1e48414bc8db11acbf4507134638e61621e160134e4a6d4d558290a3797a4a", + "lines": 337, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/helpers.rs": { + "content_hash": "7cdf36a2f59e6dcf0e334b47db74a7877ba11321c4565a75c68745817abcec35", + "lines": 74, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/secrets.rs": { + "content_hash": "f04e8e8de8dbf25c709ab07f8a237dff5fd923b92956dfcff6f3f44e315a9875", + "lines": 154, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/recipe/validation.rs": { + "content_hash": "ffaa1f188e22ad0d1fa3d77f17273174eddae18e8e62cdeef3cc7272b34a6dce", + "lines": 36, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/observe.rs": { + "content_hash": "b9dcc21216e088cebd16c810444f8fd4534ee871fb5097886a30e14f62b83e71", + "lines": 363, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_dispatch_4.rs": { + "content_hash": "cd7a680a2c785cf0ad6c703f6073369b70160109b5abdbfec4e54cc094312e04", + "lines": 500, + "functions": 18, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/tests_purifier.rs": { + "content_hash": "2590f79be5bf58666abe31c1b7294d2a0b87213100b1190097d270ddc6e91915", + "lines": 304, + "functions": 22, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/profile.rs": { + "content_hash": "f9e15c83686dfd5b0bff531913bd671911c4954ed06050b596785e6a84f6a110", + "lines": 117, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/pin_tripwire.rs": { + "content_hash": "6642a1bbc18f4ff12b66e49e0e7751744ded7a5a4fdfcad6cb8aa991bb6bf3d0", + "lines": 117, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/tests_dag.rs": { + "content_hash": "2c13befc9e3d19724bd66f98f9851c85bc9ffad3db5bc12949a471f5be8924cc", + "lines": 287, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_queries.rs": { + "content_hash": "fc435d443a5715aba50557e2b267a94ddda0a11233fbdc0376662b99d8f9cec1", + "lines": 250, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/apply_helpers.rs": { + "content_hash": "f2146aaa4e9defac6876e53922ffe7d317ccdee4285e8658a6fc5368fe1f935b", + "lines": 131, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/tests_ssh.rs": { + "content_hash": "81604c0180ad81bcfc76902e10c0f90b1737185a18af42ad22b09888aded4d63", + "lines": 358, + "functions": 37, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_helpers.rs": { + "content_hash": "f2c5aee07158277b5539833a90498b0755ffe6f1c50d16256a3f0989016bc7b5", + "lines": 150, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_7.rs": { + "content_hash": "513e60f3c6deaf043d81e9d38464483ce7cc79d4fb2cf2e6c4b5b26287aead7a", + "lines": 585, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_validate3_c.rs": { + "content_hash": "9fd07efa885746790d5b0da5015a316ac1314ea36c23c6a81f5da3174a60d922", + "lines": 454, + "functions": 57, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_triggers.rs": { + "content_hash": "43a2d5e86ff679568c74904081e8bb08984e92df2ad7426961767c3999e3bb68", + "lines": 106, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/doctor.rs": { + "content_hash": "ff075849846d7cf2678962e124a8ec7d24b3f842ad9282193d05b1f7e83c1bd3", + "lines": 447, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply.rs": { + "content_hash": "4f1d614e3fb5124e194b4f2c9defe98b4a1f0c9a23d2e088c21dbc919b51c539", + "lines": 416, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_3.rs": { + "content_hash": "fa92eb256aacdaa41fd7b5968e61bc3caa011efba331b28f112fa5425904451a", + "lines": 475, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/tests_container.rs": { + "content_hash": "10063bb3e84f26c0b2c758899d3b5a780c5b3a57d5825702a80f0bcf74bad620", + "lines": 468, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_show_3.rs": { + "content_hash": "69c523ec10fb607ba10cfb566444444314dd0fcb96954a26dcbfd35a9f72674a", + "lines": 256, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/store_cache_protocol.rs": { + "content_hash": "e5dadaf2f46a18ca3e6d87c33d85aeac88143a65b406d196220f349109d14778", + "lines": 177, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_apply_b.rs": { + "content_hash": "eaf6a58fdb7433433dc3f4414708a46af1b614fd5e7566fbd5aa37aa2169f917", + "lines": 361, + "functions": 26, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/user.rs": { + "content_hash": "94af7591c2ddfc0d695c7055344f255a15e8e7c11e805c5222f6ae6df8b4524f", + "lines": 141, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/drift/tests_edge_fj132.rs": { + "content_hash": "548bc6e30bbf5689453b1ffefda21385743466c3cf7b8baeba29069d569b3d2a", + "lines": 309, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_remaining_2.rs": { + "content_hash": "2e75f5536689c2c76cefac7ebbfa69de9c81e67487ad5f43b3bc21304178843d", + "lines": 379, + "functions": 50, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/store_pin.rs": { + "content_hash": "225c1a08bd1f8c92618529ce4bc3214abd0c58b601a7a8c7408170d728e959b5", + "lines": 211, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase99.rs": { + "content_hash": "3e99a44c3fe4b8c4734bb170b82d7dd8825335c7b3980ef6f7504341aba9e153", + "lines": 237, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_8.rs": { + "content_hash": "beab01b1c6f65e33a645fd11c61613674303bf57467816f1f1fe04ee1b898b50", + "lines": 704, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/cron.rs": { + "content_hash": "484d9fd86bd6cc757e67bd4a7b8eeb0f3a8efd9f1a2550414382c8c43a9d3b3f", + "lines": 464, + "functions": 32, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_7_b.rs": { + "content_hash": "c3a4d11488b362056db0044cb00a679d032a6055d5b07e23560563ead2f5bec0", + "lines": 204, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/derivation_exec.rs": { + "content_hash": "c4db2a22e9bd8f74b45f19e88050cbadff336e8b002b8a75d0ebdf8686f0ee0e", + "lines": 352, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_16.rs": { + "content_hash": "f26edc3898c0b3cc4167c24262fd5d6bbe9713971d0bccdb892f27833bd6180f", + "lines": 585, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_provider_exec.rs": { + "content_hash": "95360fc2385a6b6ecdc754235766dc7578fb4687d8a30d7333f3fcbdf2ba6990", + "lines": 254, + "functions": 19, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/store_import.rs": { + "content_hash": "34dd7a36e896a8fe1df30d590376cb8ca314cd4479d41d9e1b29bc6177b5b4f5", + "lines": 191, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_compliance_ext.rs": { + "content_hash": "52a51378bc98cdc284777bcdcf3966d365b46e33ec9efe10dd2881a3529cca75", + "lines": 430, + "functions": 26, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_mount.rs": { + "content_hash": "5f3ff36a90ea280516cdd7bed4f53353133d7c2d88d79f6eefd3e3fdda931d07", + "lines": 258, + "functions": 19, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/planner/tests_determine.rs": { + "content_hash": "518d489ffb309fa04912d0603043e3a493a8dd735d627d930d2dafa8e267a504", + "lines": 159, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_gpu.rs": { + "content_hash": "3fef1a4a3c63a750a6410c318f593afe6d2de68169f76c456480671f5ace8852", + "lines": 447, + "functions": 29, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_weight.rs": { + "content_hash": "67e5cd261fd46b776e6f950d280ec214968c66ceb74a0a906f03327791b9af44", + "lines": 410, + "functions": 28, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_destroy.rs": { + "content_hash": "ea1504b5a4cf522a8231e2751484ce9ddba9155fbc0efa29c74f38cc5b7e4941", + "lines": 374, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_show.rs": { + "content_hash": "c359a181ae6f3ef222eef0553c6d2c97aeb833b8c5cbfcac40da7f46bc9d269f", + "lines": 248, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_2.rs": { + "content_hash": "b299404221428f44c430c474ff6684c540df14375ce9b1b68d648bc864bf0dc8", + "lines": 426, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase94.rs": { + "content_hash": "fff4cfa1c2fb77c8c79f9a7610da253dd0e2aa118e2dd7cb3f01779095bf61b1", + "lines": 425, + "functions": 24, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/convert_exec.rs": { + "content_hash": "95e217ec1fb25190a3dbf55136ef9ff656e46991df733599b93fab3bdc06861b", + "lines": 180, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_7.rs": { + "content_hash": "b53d80fc3bb932221f9f7ac428f3b0c9e3841a0e908ddae73f407958e5be08fc", + "lines": 703, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/show.rs": { + "content_hash": "4538451f83bd09570bbd07e938a5555815cb5362176f88d81c937297579fef92", + "lines": 399, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/mod.rs": { + "content_hash": "a531550613b6809bd1819e24a0825160f11c2ce53bcfd7a5ed0749070a530b55", + "lines": 36, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "benches/core_bench.rs": { + "content_hash": "2641736063b138182417b8a848286f6f69435d00049397df49c750ecaf7b736b", + "lines": 610, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_misc_4.rs": { + "content_hash": "a60982c4decfc1da5d2ed6e906ab84833f3c067340e77250c8498f93b290409a", + "lines": 282, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase80.rs": { + "content_hash": "e267ae411af084f1442b0496b55e22ff991b270d68e7642f4846bef5f10c9bb7", + "lines": 289, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_21.rs": { + "content_hash": "d73aa2e0be9902490354a498842a6e26f671c12bed8542dac30f82c03ea056cb", + "lines": 591, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_3_b.rs": { + "content_hash": "7f879d507e8f70be38da61e42293acf03bf3025c2efb27a5b2069ac3487c504e", + "lines": 475, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_governance.rs": { + "content_hash": "3c3cfe711b4c2caba6a2eb351a7d7fe324589a1e4fbb8f51dc32599f0cbda81a", + "lines": 364, + "functions": 27, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_validate_core.rs": { + "content_hash": "a5ab48338111aa7ee34630a1a0dd623d6cd650ed57cd04b4724c88abac46be67", + "lines": 507, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "tests/container_transport.rs": { + "content_hash": "5eaf35999f82182fc8ffcfa7bba3084e607fcd733f8af0ecaf9e2088926e4e9e", + "lines": 105, + "functions": 0, + "max_complexity": 0, + "category": "TestCode" + }, + "src/cli/tests_apply_10.rs": { + "content_hash": "e7a843ea9f0d533ffb309415b24a45c3132dcf8e4b48d21e4850628571201583", + "lines": 583, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_drift.rs": { + "content_hash": "057857ab9c58a347b6da69e3895f2cb9d7c3f93561fdd29858e7fcb4a41b4234", + "lines": 541, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_localhost2.rs": { + "content_hash": "dd03bc0e3ec79a5fd6befc95bebe05acb5cf0e136166b08ab2906f12b662f2ed", + "lines": 268, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_19.rs": { + "content_hash": "7babc191553334c61ad1b42c509be4cf31542c903bcda395d58fa75e49d903cb", + "lines": 589, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/recipe/validation_types.rs": { + "content_hash": "f68276853e785ea6476c231e7aa420e9b9b4d6af0232dc4cf841ac3bb6849b0c", + "lines": 93, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_score.rs": { + "content_hash": "57a79d5775e1244b3f628ec77fda9295d2c9c2e92cf88ed9a030a9d79f9a1ca2", + "lines": 197, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_status_4.rs": { + "content_hash": "a817b37be5a555e6c08ac2709b878f1ef3d8268461c49a6de30961c7c41fb390", + "lines": 345, + "functions": 43, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/init.rs": { + "content_hash": "b57d142b97eea723fc121ee587788acfd990a51e9422c82d3ee785b2fdb0d2c9", + "lines": 248, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/check_test.rs": { + "content_hash": "7ad5988d22f832718573ae82a76be7f2b607c9ec3e1cb2cc6d18c0b7da596da6", + "lines": 254, + "functions": 0, + "max_complexity": 0, + "category": "TestCode" + }, + "src/cli/tests_apply_8.rs": { + "content_hash": "89614594099be17f2f6a2821b5ad27cd9cf91a944f698a4b769f8f75f7a72c4e", + "lines": 586, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_validate2.rs": { + "content_hash": "de5ed195297c91cbf1e4853a368f389e6d9471e6e9fae63e7f4820f5dbbaff77", + "lines": 396, + "functions": 30, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase75.rs": { + "content_hash": "bf07a1a67b718dbbfa557d46495d3bd2da898466891f5526bcd817db3e3e390d", + "lines": 292, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/apply.rs": { + "content_hash": "05543a44c4da020489c7a65b8e5ae2e594d3e4036c738ec0a8ee8f3525426352", + "lines": 289, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch_apply.rs": { + "content_hash": "a18773bc1739ead60e53676aa95f738ff93001233d0d113214c56a20231e944b", + "lines": 568, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/copia/tests.rs": { + "content_hash": "99945b226f51c6816a3dd07f49ca4740319bf41000f379e06f00bc7560602e1c", + "lines": 307, + "functions": 0, + "max_complexity": 0, + "category": "TestCode" + }, + "src/resources/network.rs": { + "content_hash": "b1b8abdffb20b6563eb80db130032e0cc1f92f3e86c28f8917d6082e6e211807", + "lines": 535, + "functions": 37, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_18.rs": { + "content_hash": "5cc232e1bbdfa286c5f61b9dcf404152c154bf83e9c19bc49543fbb7df7a75f4", + "lines": 585, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/validation.rs": { + "content_hash": "8346d643a4450c0aa664b04298cd5e3b8483e74ae34344148daa81d625359f30", + "lines": 118, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_advanced.rs": { + "content_hash": "577782791494f3a2f1f4701ec33e12fe7381a0ab660dc7601d8879297ce6063c", + "lines": 488, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_alerts.rs": { + "content_hash": "5c22a3e00b7ba28ba72eafefabc0e7450e12428873514882f634d0ec56ce8127", + "lines": 377, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_audit.rs": { + "content_hash": "635bd8f48d74fd82be82f519bad6521032b68127a73aea0816941feac68f0417", + "lines": 460, + "functions": 19, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_graph_core_2.rs": { + "content_hash": "02f18590f6d10e4b1d939241a15d9bac785ac865c4dd244ab4191b5500576f93", + "lines": 1041, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/fleet_ops.rs": { + "content_hash": "4018fc6ea23d2e1faec50b593ceadb32beaefc69a1bf76ef39e3c0c0bad3dbf7", + "lines": 422, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch.rs": { + "content_hash": "57127062694b8d05fc282807ed5da44ecdcb454a250cb19504e13f39593f38d1", + "lines": 141, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_derivation.rs": { + "content_hash": "ca933c0431c5cc9b6f89f0db012202a65a6387207bdb00dd80a8cdd2dd9f5016", + "lines": 293, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_10.rs": { + "content_hash": "66d3de64c23cdbdba6cb3d9bdee6971b446e737c2f431691ec0af0c8a62fe023", + "lines": 252, + "functions": 30, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/codegen_scripts.rs": { + "content_hash": "1aec4a1f7fbd71e200736351449eb48da43034e7c29c4158c6253d4ec46f47e3", + "lines": 231, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_helpers.rs": { + "content_hash": "ac376d55982d7b65a4276da58b6e9d09bf96add09cfa19c92116b5dde0b8548a", + "lines": 246, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/functions.rs": { + "content_hash": "31f6358703727288eb835d958f8c712ce3b97f031239d2569e58f9e9aee33c8a", + "lines": 165, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_transport.rs": { + "content_hash": "e6020dc225f3929dbf93a9fa1c4abc21bc9b5c0fe089f62c1e0772014bfec906", + "lines": 208, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/destroy.rs": { + "content_hash": "99e2446766c777d132f7a0fd113bcc5f077e937b9642ae77f67b35523b02a902", + "lines": 275, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/chunker.rs": { + "content_hash": "27d30c5d66393e4c48bf395abe4149e2047aefbb246833baa974b1820adcb437", + "lines": 140, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/tests_scoring_b.rs": { + "content_hash": "d78bfb4b453e0484eeccc3c859cf0a4217d77e1200e70fd2b947d9f7fc5ab5f3", + "lines": 488, + "functions": 32, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/plan_args.rs": { + "content_hash": "9a317401d68dba54b512ebdb9bda678819a39a4d05243b89030a37bca0f46683", + "lines": 85, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/mcp/types.rs": { + "content_hash": "cb8c7e82ad98e5597f9b9c97533399eaf4a0b6d108470ddf272d4ed74b10bc75", + "lines": 186, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_counts.rs": { + "content_hash": "03cf2179bffbb3dd1c257375fab494bc5d968154375c543492c255fcd99b0f76", + "lines": 97, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/tests_anomaly.rs": { + "content_hash": "7f8482500d6ec9b32ab2c892b71c8de993c19359baf1bdfc8d3301d9983d2c77", + "lines": 276, + "functions": 26, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/substitution.rs": { + "content_hash": "066e4f1a9d041be568ba6528659f4d869d71368af226e0fc99dfefcb717fc79d", + "lines": 279, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_structural.rs": { + "content_hash": "cb2f78d1e49b5d1500240a9ffd4cfa464e4130a810b8fc86ec989160cd044c9e", + "lines": 486, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase63.rs": { + "content_hash": "93d3e0b887e81b6e5c2c73b7f8d09f26bc109f8523e25b3a1bc1e0a6a3bafcdc", + "lines": 193, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_edge_record.rs": { + "content_hash": "06e43c61e6982f518304ef15053cec6c917db1fceffc74e05ea068d9923ed59a", + "lines": 420, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/path.rs": { + "content_hash": "e29f0f409a8c4e2af98e7e4a0af071d9b72d16b0cb7c93187f14a57956f5db66", + "lines": 33, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_4_b.rs": { + "content_hash": "b7d3a7a8f368bf6584a0d85fc9da929de145f1f5900bf30202a16af31b0a4f3a", + "lines": 476, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_misc2.rs": { + "content_hash": "c8b337c89ad6a10b7594a79b366934c6164ac3057d3325805b2c7e6688d9c6d4", + "lines": 301, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_14.rs": { + "content_hash": "50450e6aaa6a7fff6ee109442e4ba0fc71a35ae53f7ea8f0e477cf32234fd1ce", + "lines": 584, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase89.rs": { + "content_hash": "70e540ec4031f62163e0d14d04422bcb6c2fed1e957ee5d70ed2e689b4a6c1b8", + "lines": 308, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "tests/gpu_container_transport.rs": { + "content_hash": "e3d8b4c7070eb3503b55daa7f013bba02d0a22096beb13eb7002df5d41404b62", + "lines": 226, + "functions": 0, + "max_complexity": 0, + "category": "TestCode" + }, + "src/cli/tests_status_core_5.rs": { + "content_hash": "1ee9123ad83ec56284041bdc2e895062a51b76ef3fd764d0a72a64adbfacbbd7", + "lines": 703, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_10.rs": { + "content_hash": "41a6a087a804c30a8cef520b38a978dbc8e73705209cfc23cb9cee7bb37d630c", + "lines": 660, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_observe.rs": { + "content_hash": "acb6154c8558487eee51f8b71d5320750e5c073cc58643ffcd11f53b2e380db0", + "lines": 413, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch_lock.rs": { + "content_hash": "70b1939da69b07e59f06de53245eff579b01a5a24d775168355cadaf71a1e11a", + "lines": 162, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_core.rs": { + "content_hash": "52906653e59d2b705f0221e6d82d69271897aed0864605f1a9fca1c915db5d80", + "lines": 263, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/status_args.rs": { + "content_hash": "b2df8deccc2c8cd18bb80be47098e390cb5dbf7cd6a16c74163be10113c56180", + "lines": 676, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_expansion.rs": { + "content_hash": "24c9d29da75808f7c80dc6080ec73de55bf3b681788b8a4d4bbc8ef3a2cc0bde", + "lines": 493, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/check.rs": { + "content_hash": "ea85e4683f4490afc10d126fb3ebcd379b982ae73f1abf8c68380c7c2281f838", + "lines": 299, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/apply_output.rs": { + "content_hash": "a34f54cbc1a73ab2186d7e7d1faaa0fc8d8e0fdaf952f551aaab6200a47d6f8d", + "lines": 404, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_operational.rs": { + "content_hash": "c67f575d0b6b37879d87be18a304c51a63b4d127184f0c0b39a4e70ea8c9ce93", + "lines": 529, + "functions": 18, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase104.rs": { + "content_hash": "d0db279defc746e4a47f639ad9b51c180869322b81923f9e6111134c8bbf5bd9", + "lines": 213, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_validate_core_1_b.rs": { + "content_hash": "ad46aa69bb5803815a2e8bcc9908c04363ffaed29eb191576d3ac275f1c2d017", + "lines": 647, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_2.rs": { + "content_hash": "51da364a4e98525cd2a85ea0e759b0faaadfb012bcadb4a4c2518dc10a0aae53", + "lines": 515, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/lockfile.rs": { + "content_hash": "be61e70b63d980a44ccc9a57da9cfc04fc6cf842cea0b3724d756dda6c304caf", + "lines": 98, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/lock_security.rs": { + "content_hash": "8018b5a7797f5483703a32671e476ecbc4f8afe01eb6a727a39679dedb706be6", + "lines": 392, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/sandbox.rs": { + "content_hash": "935b1ae7b717149c9f30c52e6859ac131dd16e0d25ededda34f1405405180873", + "lines": 184, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_quality.rs": { + "content_hash": "2e47b622070cafeb2e130070cf464fd630b104d8b4a3fed3736403a7628833da", + "lines": 506, + "functions": 38, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase79.rs": { + "content_hash": "583375143149ffeb8915a78e7db0cd28738fd9c1fc5769cb620471a90a7c6dcc", + "lines": 289, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/print_helpers.rs": { + "content_hash": "14fab206c24dde8dff130d982296586067b476a1fe46cdb0d4210b463a7bc87e", + "lines": 241, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_destroy_1.rs": { + "content_hash": "3c0d589f84c8a17e42522d5b8be25e711f6344fedb9b7ce31ada530b64ef7f2d", + "lines": 257, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_validation.rs": { + "content_hash": "5bf7f82e7efcb46043483e45cf4bb0fe7ca327446b6b8b95f73a24d98a20a383", + "lines": 492, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/anomaly.rs": { + "content_hash": "239d090e52456c1d1579249311e148080231cd73796da9db0bf333f2fbb0bbf3", + "lines": 331, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_args_extra.rs": { + "content_hash": "7b4da3d7345f30e8e6a1bf7fae6e84e3c3fbf5979f1a015fc41f4094f5af94f6", + "lines": 538, + "functions": 52, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_1.rs": { + "content_hash": "3b65e06a29308f5383fc8b645ea2e518932fc2f97a6c4a8ffa4f55bff7eb0626", + "lines": 514, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_rolling.rs": { + "content_hash": "cbca7f9c8fa3f645deb82608388fe64e767b9550f3388416630c2d5a233b8aad", + "lines": 261, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_insights.rs": { + "content_hash": "c202889e1711fc0d1c94aa52e338515e5dcb07ecd74e83f12960bce19ffe1f20", + "lines": 350, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_core.rs": { + "content_hash": "32b268ebe8b7fdcf7fe1782dec7f04469c435abe99547311182d5e3f5afdfbe8", + "lines": 299, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/tests_functions.rs": { + "content_hash": "afad07b72fb485caea6cbac2f0efce2b0d3c27d9b73008fa8fb1f55345d5f58a", + "lines": 240, + "functions": 28, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/purity.rs": { + "content_hash": "be7d1125758a0e3432bd47eb70ebc52484130c0c556fd02d9397638aaf500790", + "lines": 113, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_fleet_ops.rs": { + "content_hash": "88ab77b4a769be588ba9fed9d48e35d5f7215e7a7476fcc04518e0de5021aaf8", + "lines": 531, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/closure.rs": { + "content_hash": "5fec3b8c5ad2d7118ba1f7757bcbd756b0d424d574d7ca997de51c42ec3e660d", + "lines": 65, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_init.rs": { + "content_hash": "552cdc1d8ac19333528fbeed665afedce64d44441cbb2926f85b32aad32f032f", + "lines": 551, + "functions": 26, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/sync_exec.rs": { + "content_hash": "00868ef2b5b95b8b2bc37423781dbc15af79f86a12ac2a9acfe4136e50f027a0", + "lines": 189, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/dag.rs": { + "content_hash": "fd7c4d014b94120319649575e44755cb7f27c8a6c3149910df5b7e766122500c", + "lines": 150, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/apply_args.rs": { + "content_hash": "d8a4ea7b767a9afa7d1ef57e7de87dd0a3d3e9247f7822262c6e2084026c0e7a", + "lines": 680, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_6_b.rs": { + "content_hash": "0ce4c32dfe507762fdacc944cf99a5522bb5f7cd8d80f37128307c3f6f95b46d", + "lines": 207, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/planner/tests_advanced.rs": { + "content_hash": "b622cf123d06945e5dcd11ece3b4c8a67d1add1b535c4d2f3cc4dd14c11b9805", + "lines": 265, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/score_cookbook.rs": { + "content_hash": "67ff3d234d87993e17cf72b00da5d0b9c2c3237f7f09ff2a656c19a60459af18", + "lines": 104, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_23.rs": { + "content_hash": "ffcf1444f241cce57ee0d1b35c936fc474b5749af87bdad1c3b5a254773cfa68", + "lines": 260, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/hf_config.rs": { + "content_hash": "69473bae90f1e31f7888afc480eceba0ce62a3188f44f2727bde0830c0767bab", + "lines": 293, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/tests_data.rs": { + "content_hash": "1f1ae2c8727651048eeff987ddd1cb6b0cd5da5fd1432cf001672485539da462", + "lines": 368, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_maturity.rs": { + "content_hash": "efe035a279d4f04b37e591a91b8b4cf96ce24185fafeb5e967b2a0cff197074e", + "lines": 500, + "functions": 26, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/far.rs": { + "content_hash": "705a31a330e322bc78bba74d76cabb4e90d8cecaf72d126745a70886d0a0edf8", + "lines": 196, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_policy.rs": { + "content_hash": "61be353f6ee2e40b9e535c856ebe1c0de628f50f5c1a4b1750834c72b7b9c874", + "lines": 258, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_pin_resolve.rs": { + "content_hash": "596670544d1060d16071fcafd8d4e54ee634df83a3d4497145b0206eb29e1446", + "lines": 210, + "functions": 28, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_convergence.rs": { + "content_hash": "b634cfdcc2e5968ec6f0de4b3047422ebc5496d1a13d9800add776150d37f093", + "lines": 495, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase81.rs": { + "content_hash": "ceeb1be347bdf90a1f6618d662a2ee711df8f8a7eb295889934b5374108f4858", + "lines": 289, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc.rs": { + "content_hash": "f02bd71207dcab0fe85ea7441c1fd9b931aebae6e582ccdca5124707c38b35d4", + "lines": 436, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_graph_core_5.rs": { + "content_hash": "ae3424a2cefb17bb1f2ad298a20b261cbd415c077b7bb9d0706e74ef8fa24479", + "lines": 313, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/store_cache.rs": { + "content_hash": "ff98f2df641045185025eb5c8c9ed291074b8adcfc95a894c8e1b7aa16cd310e", + "lines": 251, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_quality.rs": { + "content_hash": "28bbc55f377fe73d85db97f42ae7d594ba94ebd2885c2dfe60b640ae93f65fc9", + "lines": 685, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/types/tests_resource.rs": { + "content_hash": "c51b45db69f9f9d83857727f88999433664a2ce42bba11070ccea4235c79fd7f", + "lines": 298, + "functions": 29, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_security.rs": { + "content_hash": "5d1b6687847ae9c6e7a567c84429575f5119a37a59e1efd0c0a38291e62cd054", + "lines": 523, + "functions": 28, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/planner/tests_helpers.rs": { + "content_hash": "20e2adedc50de5de8155b3f1060372f90561cc39b21bb5bcbfee8b85718daac2", + "lines": 90, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/score.rs": { + "content_hash": "697e597617672776bac2976841e12e91e9b8b040ebbd77b776d0e82c1078754f", + "lines": 51, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_topology_ext.rs": { + "content_hash": "5ea63a1384c82f316ef7448e73c80696167583f8a22b868509dd6cef478c5afb", + "lines": 124, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_args_extra_b.rs": { + "content_hash": "99a22cd37a5d03d14d7d61e1da4c41677c3c46a45480c43267aa657134d74bdd", + "lines": 420, + "functions": 41, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_predictive.rs": { + "content_hash": "2f34cbe8058c7aaa467db4ced6efa82498cd3c825067615f25616ee8f8f4f381", + "lines": 489, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/mcp/tests_handlers.rs": { + "content_hash": "728f0143b27784c3eb680457f9664a4154a1af6a6662bc44e0abb06f699970b4", + "lines": 228, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_mount_b.rs": { + "content_hash": "0dd5ebc9614833d1502b0cabcb8b4c027b9b03da239a7015f2daede897b5d563", + "lines": 249, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/file.rs": { + "content_hash": "a1facfe1a21635b0eadcf7b24ee4d0bcedb30312b957a665cf5c87ab03c3ea8b", + "lines": 127, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/tests_eventlog_b.rs": { + "content_hash": "34a596c285b3642f888d17dacc616138f36a5c6388391a331485fa09f26c4802", + "lines": 270, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/recipe/tests_integration.rs": { + "content_hash": "76bdc5f3c0d88749442c9f0438bd278b9c9a65f76aa3ad2210ec0162b1f773ec", + "lines": 453, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/store_provider_import.rs": { + "content_hash": "c94d617cd5ae49aac9449b53c444890eb8c33633c747854f23eb18fcaab7490a", + "lines": 154, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_11.rs": { + "content_hash": "0f99be1bbe1377b6ab724baf304431a900a7361d15b4b82d7d52a43a2dfea94b", + "lines": 584, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/template_resolution.rs": { + "content_hash": "fed4c713fe1143b4b6015978ba085cfddb3e62bff74fada57d4196edfe34e2b7", + "lines": 89, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_remaining.rs": { + "content_hash": "b3ddd352bd2e84334ae283aad442cc30f6509aea1a6951c618413b5bc39a37a9", + "lines": 412, + "functions": 36, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/drift/tests_basic_b.rs": { + "content_hash": "2a5e76b7562ab9156b12f478491a85958c43330dcd8907caaaa876a76177364c", + "lines": 355, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase64.rs": { + "content_hash": "d95d5a7569aedecf4c5f7da391965a342aaa6c897069d00986a67b8b41e9a65d", + "lines": 202, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/migrate.rs": { + "content_hash": "55472d0eb74b18c26e56d523f8416c4d51e258223d5ac29ba47d0094221f64a6", + "lines": 433, + "functions": 19, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/full_stack_deploy.rs": { + "content_hash": "56839d0659adcec2a1d782f0008bbc14a9c272f252bfd46bb5cd7dbe2164032b", + "lines": 185, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/planner/tests_describe.rs": { + "content_hash": "92b1a9b0f314c99d48ca801380eea19c8d8a97952ee947a29e25e649e48a7c73", + "lines": 77, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/provider_exec.rs": { + "content_hash": "22bd322b3e15973153ef36478aaa44d5e01f8b09f40617154bae97860dd3f400", + "lines": 244, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_fleet_detail.rs": { + "content_hash": "866a7f5e541e1b701ad06df209e70e9849352598fe811a750ac45386f86dd546", + "lines": 483, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/tracer.rs": { + "content_hash": "7ee607dfc9017211051711fad0510f80f7dea80cdb65a7f03528ed64ef39f3cc", + "lines": 488, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_core.rs": { + "content_hash": "7b0c3dd5d862930408456a0bb342f7e7b30cc1390732449d6c7402961d8de4a4", + "lines": 448, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/state/tests_edge.rs": { + "content_hash": "c646c7abf8bf3248333d1de9795e41797d94b5d9398818088aa75b104691ff62", + "lines": 334, + "functions": 18, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/derivation.rs": { + "content_hash": "855ef7ff60508ae454f11cda81341dacf9e9f8081c6da2a07dc9adb8f71d98af", + "lines": 209, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase62.rs": { + "content_hash": "6f95ab39861fa1e10e27bd13cc4bae119d295cd71df5f20f2e8e6a1d3f725603", + "lines": 194, + "functions": 19, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_print_helpers.rs": { + "content_hash": "8ea861672f99ebb214bf16a2f5235442ae438721d22c06efd88d6b4cff1f8c07", + "lines": 183, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/infra.rs": { + "content_hash": "7251b32b2e6046c6473ce1a8606134553996abc1a2419a0c1188f5a0bb622e61", + "lines": 483, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/provider.rs": { + "content_hash": "1e14c29a40c634ac83ecfcc1597d908c02069bbd22a23c97d65cf3489226d1cf", + "lines": 206, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/test_fixtures.rs": { + "content_hash": "51f211f7c40ee50f9a04e7fbec3829c9349a737038a51803046a47e68842fe36", + "lines": 67, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/main.rs": { + "content_hash": "031362bf1ad257336bf8080cd66c53ebbdb5641dba93aef10f20443af6541acb", + "lines": 33, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/mod.rs": { + "content_hash": "4b7378d6af1834063b09a80e02fd37bbea24ca7aaa934cbd5b0decd9022dcb83", + "lines": 18, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/recipe_expansion.rs": { + "content_hash": "86024e836a99cac3432954bd6bb22bf8c5bbeea7ea22e90457ef213ff07ad7dd", + "lines": 118, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/planner/tests_lifecycle.rs": { + "content_hash": "011ee350e3430b19f9132cdf7b8a760c3e5ff254697a5d5c04abfa2d7ea2746f", + "lines": 224, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_13.rs": { + "content_hash": "1110878080dc7f004e5c4b035c9e0242aa4e5192e8023c8c0878e1a7a0b44167", + "lines": 584, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/conditions.rs": { + "content_hash": "834a0e865f4515947593fc5c5327d23504a78579aa8283aa689dfc48e864f1cf", + "lines": 321, + "functions": 26, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/gpu.rs": { + "content_hash": "d0ee4e02e497703403c3dfba64280886e5b4d0ee77164f2c1e7bce15b23293c6", + "lines": 196, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase66.rs": { + "content_hash": "0d4492c526b77f8aa5d53713e6a1ef457a203f56bd8742765463fea2cd702256", + "lines": 204, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_plan_1.rs": { + "content_hash": "ee8591122d1888f8a32f1424187ee7ea1750421a8d2ad71729357ad8dd54ca42", + "lines": 184, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/pepita.rs": { + "content_hash": "ba21671a08f546817c14a58857d4dfd8e893e2b7a10f1c1d5d187beb0d0e2635", + "lines": 385, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/contract_coverage.rs": { + "content_hash": "5daf03a49c3624a4792586195749e18090ccf6d639732dd32efcfc1dd0b59b2e", + "lines": 122, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/secrets.rs": { + "content_hash": "128f94dbc3f53c2a599e3c0b70b8efdca8b785b4d3303bfe07bead8a30a65ad6", + "lines": 201, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_conda.rs": { + "content_hash": "5207a8413f19d7d566942ea05c1b24b717e9273ae0da195c95e8fc4dd68e186b", + "lines": 318, + "functions": 19, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/tests_container_d.rs": { + "content_hash": "711345b985b3ef3ea21c6f626c4fcf835454b7cad6ef9f71d0d94bba04919653", + "lines": 41, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_converge.rs": { + "content_hash": "c714edb89b5d6c1a1f63e42aab552d00fc1dfe4c523a43f514862c6c8f3d8320", + "lines": 339, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/planner/tests_plan.rs": { + "content_hash": "06886b0275b2a61d010df1fc8a9b7e279ab76367b6f2a9bf33e1be767ec6071d", + "lines": 357, + "functions": 18, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_includes.rs": { + "content_hash": "d112a8cd39fd0b4f6fc2fab1fe30ba65277f6a6bc48787c2560431abdbddcb7c", + "lines": 432, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_contract_scaffold.rs": { + "content_hash": "0579aec27efbb232895792b359733ae85c571abf51c7e4c5282de8700fa607f1", + "lines": 154, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/resource_ops.rs": { + "content_hash": "276472b0a55ffda06dd7a201f583affd113ae6cd5f191f7f0f879650ac1b8134", + "lines": 403, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_advanced.rs": { + "content_hash": "67ed06aaadd80dfd88bebac0074a53446643ab1885cb62fdc3a31b750fb9dbaa", + "lines": 372, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_intelligence_ext.rs": { + "content_hash": "eeb9abf73fbfc962479c96003f7208a7ff1c33a9b00ae21afbc1ce91adcb8d61", + "lines": 759, + "functions": 27, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase97.rs": { + "content_hash": "74f9386a495bd24f35c4a62484a87edae6082d87a1085c0d5469cf4e2043d0d7", + "lines": 190, + "functions": 26, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/recipe/mod.rs": { + "content_hash": "a40beb6014ade2c9c0a635661efaac91105151fa0efc8d077475cff6f6efc4b8", + "lines": 23, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_compliance.rs": { + "content_hash": "fe4dc8afed79cac5f9f1ec0a300860a17b11571a8e284bce1c599435fd73b546", + "lines": 327, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/lock_ops.rs": { + "content_hash": "3cd3c37af12704bfc3fa891cbc44f7b36fa604d41e3b72cc0ff281c6b782e362", + "lines": 443, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_fleet_insight.rs": { + "content_hash": "9d2c58b613313ecf20a215e5139db11c4cb43f552494b71d4498ddd40fd77e77", + "lines": 706, + "functions": 30, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/pepita/mod.rs": { + "content_hash": "352fa33729052c5810ec9130601b9a9be2e8209fd368f98431faa67d1b9abebd", + "lines": 218, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/workspace.rs": { + "content_hash": "d8b9e8bfa055def6a3546c6467ca5c956337bd0df23c6a27449ce14553cc410d", + "lines": 159, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_provider.rs": { + "content_hash": "223070fc681c59757242061bce3987209d1f621c4ba1cfe92d0dd9d5a318de0e", + "lines": 263, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_maturity.rs": { + "content_hash": "86d8871f6417999c5d028f68e3c8eb1a8b837c03d655b8fe91fe5775c4d60b8d", + "lines": 857, + "functions": 37, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_7_b.rs": { + "content_hash": "bd7f7b8ac3b3ac62a3c27a9211af78ca6cd5ced4eb5cdcbe1d807fa6f3eb28c7", + "lines": 476, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_extended.rs": { + "content_hash": "b69d7bb4dd1eb9319b0732c2cbae1df057d49234c1eae9cd7423e6c187ee0cea", + "lines": 379, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_workspace.rs": { + "content_hash": "6bc034afcb07773cf8fb294368c3d8dd2396f64bfb02ae65d5d524ff35e27605", + "lines": 187, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/codegen/test_fixtures.rs": { + "content_hash": "3efa8147df7d4144bdabb3ea06f747bc99c10d77ff6f78b5e405342c5724a99d", + "lines": 331, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_5_b.rs": { + "content_hash": "f53c35dfbba541b5314c96e465bf4d70f91cfb37dfdb542490648323d960f409", + "lines": 474, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_analytics_ext.rs": { + "content_hash": "dfd639fb7a3e67c66eea82ed922c7883b45f7f00b94dd0659cf56d48b6cd8ac2", + "lines": 383, + "functions": 28, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_ownership.rs": { + "content_hash": "8c38dfd3544fd20c954d421e06c76df90cb952ccec3f302d02956b2146096460", + "lines": 610, + "functions": 28, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_config_quality.rs": { + "content_hash": "f0bb4d6639b69789a74c6fa91155b34ca6600257ca7136f2623ae7e9ab049227", + "lines": 494, + "functions": 26, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/tests_container_c.rs": { + "content_hash": "3e362db276afe5b00807edd1bb908ab0d43ede1ac1e2380756745d1dcee91e65", + "lines": 360, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/docker.rs": { + "content_hash": "304c938d197087b019e5ef65b74eca68511002b2e9b60a544344c659ca1dbdc6", + "lines": 88, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_package.rs": { + "content_hash": "d4b770875ea35b767d9c9a4d14e1a6bc544930f4414f48114f6dc11c1472f532", + "lines": 281, + "functions": 22, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_cache.rs": { + "content_hash": "1e4c9ebe04fbde22726ab94687dd01bb3fe069daecfa5777a1108b2f966524bc", + "lines": 252, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_import_cmd.rs": { + "content_hash": "ca8678572947c76d895196e76c9ae6f6acb300fcec1481e9b572e38aae0b484e", + "lines": 228, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_status_5.rs": { + "content_hash": "e46802b6e6abde362a1f34bfe75deebde6f8320ba58c70c7a279f28bce983f41", + "lines": 361, + "functions": 59, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_analytics.rs": { + "content_hash": "8190e30cea38bb3474e443956876f16a86b1b6670f8b7adf1ace5e5745f99b05", + "lines": 450, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_path.rs": { + "content_hash": "28b2dc28f29734d1a759e39bf9b5d9d838b0d0bb23a31fc9c3ec7c9080c36b46", + "lines": 95, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_filters.rs": { + "content_hash": "2c04e083f7fa64028db31cb2d1a0c8181322a6ab0e715ec3d470d1fd986c4065", + "lines": 400, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/state/tests_process_lock.rs": { + "content_hash": "41e861f0d13f2c40d1aaeab5a594b62f02b39da9652be90c3991aa573016dc0a", + "lines": 85, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/codegen/mod.rs": { + "content_hash": "98e75556969ea2b3ab90bc22de30fcbfd8a303426fb88845768c65bee0a7e51a", + "lines": 15, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_9.rs": { + "content_hash": "1453de79861b5d7e0baa50ac8f399af82c2084516d79817a7db1cd1002cad9e6", + "lines": 621, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_gc.rs": { + "content_hash": "845a11f64740c6ad1c7a6b37bcb8768950f678b431f3ef7942dea10ea5718375", + "lines": 160, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_graph_core.rs": { + "content_hash": "cdbc15670c287d28cf372460cf34fc03c5a8680b0953cc697279d7774bb53605", + "lines": 423, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_meta.rs": { + "content_hash": "9f59758cea8e4a8dcc203505a580502736d6f22804d7b695352b0c2795cd307e", + "lines": 130, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/recipe/tests_validation.rs": { + "content_hash": "61a0c94cfe03eb4f564a727aa353bac5c17c02795165714c76cebb9b4e57ea5a", + "lines": 434, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_resource_detail.rs": { + "content_hash": "fd5b137527c1c122fe0a93aedd0df549c38cc84ecdf1d8193667b4bcf74012b1", + "lines": 466, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase96.rs": { + "content_hash": "2ca70a55830fa12021b91459cfd36a7fd2f6f70197ead4d6f109dd06abd98902", + "lines": 224, + "functions": 29, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_operational_ext2.rs": { + "content_hash": "fdeba2e3ad4a85d5d5aeb8d0718440d13adc7c090c8cd91276ecb23f210bc43e", + "lines": 556, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_6.rs": { + "content_hash": "d66062ef8be94fefd1417d960a820e1f1adf09e2cb1410ada5d04a465cf66300", + "lines": 705, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/lock_ops_args.rs": { + "content_hash": "0a0ef2dd6cf1e8a992a644dabcd8fdee6fccda5656aa865cbbd989b0b81d48b9", + "lines": 221, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/recipe/types.rs": { + "content_hash": "3fdb12d938b47d6eec1f737f3bec57f30ddcc53e293239feae792dd37d1b8823", + "lines": 65, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/tests_helpers.rs": { + "content_hash": "64bebc379fca0c0a1369309d939cc755d17120891ca79b3a9a99971cb7fce950", + "lines": 216, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch_notify.rs": { + "content_hash": "11d85393b6340e2410ee2de725015ca7e5779a45570d973fcf24b9a3a18e4fe4", + "lines": 728, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_validate2_c.rs": { + "content_hash": "4f9cdcb7db8755584f85e8c040c3451d3a69b8672a6c675b2871de7580838277", + "lines": 188, + "functions": 18, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_operational_ext.rs": { + "content_hash": "f8f39446b9091ae9178dc210d4b1ff97ff6721feea04ed74490ded0d23196f57", + "lines": 212, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/secret_scan.rs": { + "content_hash": "6845f4704ed66bd435c620e0dd83b5e3f8bacb65571ee33d76ec9e16d9a89e5b", + "lines": 200, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_scoring.rs": { + "content_hash": "ce25d95e9acb6c99e8078bdf1c933597d73c087d711d7f4b17b7146e6f8f28a9", + "lines": 655, + "functions": 29, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/state/tests_encrypt.rs": { + "content_hash": "07bccfcf40e2b5ad38e718da89204a331512f0c74e8c13dce22e6864e30bc5ac", + "lines": 61, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/state_args.rs": { + "content_hash": "6cc54d6c4a4cff4af87c3b3abe9772c5ce5be1e2ea9647f5c6f8f72350097dcc", + "lines": 53, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/plan.rs": { + "content_hash": "5bf39e0a42f93bb8d2f7421ce84fbd4d3689bb9573947f04a3edca3ccf85cb8e", + "lines": 399, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_helpers_time.rs": { + "content_hash": "038e90da543fb51cbba559b761d649039ffc84c0aeecab9f9bc0b763aa7efe67", + "lines": 36, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_resilience_ext.rs": { + "content_hash": "6843520429a2c1c6194e7e26338714bcd0fdb8fc6d348e0eac2a062f07efe26c", + "lines": 352, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_check.rs": { + "content_hash": "8feb321d977d51fbfcbef8a625c807ddb8fd7c32c56c45bb712ab39423578c64", + "lines": 461, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/helpers.rs": { + "content_hash": "8d2c8e5bf247190920e2d8672061d6e3175f74153bb6556d2bbbda48cfff9a64", + "lines": 227, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_status_4_c.rs": { + "content_hash": "3cb668f82e29559aeee7bf75908f8190621ef88a0bcbf38ab26222f450152862", + "lines": 476, + "functions": 56, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_args_3.rs": { + "content_hash": "6fb37cabbcb7b47f98717eb9c3906331482a7e7d0da85209b773dadeb4e6d401", + "lines": 392, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_store_ops.rs": { + "content_hash": "4304c34553bdf342cd25e89995504181bc8f0cfbb8b0ddf6aa64e290d7e248ce", + "lines": 160, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_docker_b.rs": { + "content_hash": "0a11c4be71d555814a46be0622c4e4eec35dde6828a1efcae0c19dab8c274fa8", + "lines": 395, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/shell_purifier.rs": { + "content_hash": "f94c295e75a0ac051d88da44468ba898864eb937bfd8edc2409f61e7d0081fc0", + "lines": 125, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_derivation_exec.rs": { + "content_hash": "4b5ee332750b330d1dec8780e7ca966c9d59b0ce17db88a4e0e946fccb94ec6c", + "lines": 281, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/drift.rs": { + "content_hash": "6ff6e37736702b9237f75821c99fe3d39fdb3d9996f61a8dfc750ff94c93320f", + "lines": 331, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/reference.rs": { + "content_hash": "c2e29b14ebf4b4fa1e516a86b4a0b8dd7913e73d566f27d15a9fc571f9b3ecc9", + "lines": 80, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/mcp/registry.rs": { + "content_hash": "75647eabf9f4d7b78af10988944732a965bec55d05593469767749cd3d54866f", + "lines": 244, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase88.rs": { + "content_hash": "cfa8ab8cf5825d7e35be208707abdc2be25b856612f93fb9945ad1990a248240", + "lines": 313, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_governance.rs": { + "content_hash": "7909756818caadc8ce5782aa8b4993c340675b9502259363f67ea01de304c263", + "lines": 480, + "functions": 22, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_file.rs": { + "content_hash": "b04d499f3404375fc6c01ba7bcf748f8d33f5c515086550b602d3b7f84fe7ec1", + "lines": 308, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase68.rs": { + "content_hash": "c0484108b3b14c22a09b33edec63ae0643cd1fa2f18068a72f57ca7d172d8468", + "lines": 209, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/state/tests_helpers.rs": { + "content_hash": "7fc2190767b2cacf33961b927bdfb6be3970becdfd3f787c89fcd4a8e06b95e8", + "lines": 27, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/mod.rs": { + "content_hash": "8d9bb67095febd89ec5e0a9a6e0f1bc97a1454c28d674f36dc5357cdc8f8eeae", + "lines": 240, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_sync_exec.rs": { + "content_hash": "d889f6a4779827c744d4bbce4f87faa6ba8daf84be8284cbfa7f032c394e8923", + "lines": 229, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_compliance.rs": { + "content_hash": "2c77b5f6328ed8db8bdd89c4ef5821f6af04f93116f92c9f8820286a4e5247ab", + "lines": 347, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_ordering_ext.rs": { + "content_hash": "59e95baf8c83c9aa4e209c27a5513debdfb64a4e08693d245d77735b0bfc9100", + "lines": 270, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_fleet.rs": { + "content_hash": "1c0159832f389c93c2591da2ee366acf6256f9333c0025cdc581eb4e2f525207", + "lines": 526, + "functions": 51, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_check_1.rs": { + "content_hash": "c973bc13a84441411cb93e5fd8321693edab02f864f5e042455f368cb350c0a1", + "lines": 482, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_graph_core_b.rs": { + "content_hash": "d02027474bcb89eed4d4fda160b960d2bbae6e561a48fd91412f2dac283ada74", + "lines": 226, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_misc.rs": { + "content_hash": "5b2ad6d320371f06b95d99256f679fc0820a723116b8bd52fed4a90751bb7498", + "lines": 463, + "functions": 19, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_graph2.rs": { + "content_hash": "dc3b9470ab3298589ff28ee972bfde94c64a3a4f54cfd2f5d3fa54dc7a6f8f03", + "lines": 378, + "functions": 53, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_status_6.rs": { + "content_hash": "7aad92ee7550f4497bbf6ef8c8450ca3107b215fe6091fcd58bd1c1ba3b7ba8a", + "lines": 485, + "functions": 74, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_intelligence.rs": { + "content_hash": "7d8eeb261c0ea722ff0134954f29b9742ef87ae24b9bf2ea78290081e5d3aa25", + "lines": 591, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_docker.rs": { + "content_hash": "d9dfa934ac8c8bfff1a3761cf5e0b4520fab47fe3f2996b2b10911788bd874fc", + "lines": 285, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_plan_file.rs": { + "content_hash": "18479a77ddfbe1a29914e563331d745113f8800080a19879f28728c00978d59b", + "lines": 224, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_lock_core_1.rs": { + "content_hash": "5a2e2f81c6637643d2c491fdaab1073189f2c26c0ac05cd6e0a267b169a86ad7", + "lines": 457, + "functions": 39, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_failures.rs": { + "content_hash": "e74487d76644f9f54e751d50cd25018b0339d5b274c12a6a051d7f37269313e7", + "lines": 390, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/validate_args.rs": { + "content_hash": "32835cd4dd4e68473c6129851893b5f0a099d01eb8848c2b3a00fe18325db0b5", + "lines": 494, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase76.rs": { + "content_hash": "afcd94e8394a4f54034c13db7138510a2d3818b914bc2df917c4a0fedaafc3f2", + "lines": 290, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_edge_details.rs": { + "content_hash": "e4b0c31d73409f22aa1213b0376f5e9a02980a317e4ba6670c925afd5f9a51ef", + "lines": 403, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_misc_3.rs": { + "content_hash": "12d7d262f0c2b2c8e449e681dd8f262362e21237040e8da02a8deecf2d527a42", + "lines": 428, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_5.rs": { + "content_hash": "bb5a8f1e67984283ab1d11ed7eaa56c715f6b8f760bcc0efc73792349be31b8a", + "lines": 585, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase91.rs": { + "content_hash": "fe1cf071401d8d2bdbb1229b8bc4dda46fc56537d1cb101079980bfc36a4b4fe", + "lines": 309, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase60.rs": { + "content_hash": "0a27a50ad0d44f4d395d055f56642af8b09be805308194ae89d2b76f03ee51c5", + "lines": 133, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_2_b.rs": { + "content_hash": "a1eaeaa40f75ae55def5722999b1227c8521a27c8218d074cbfd6b5e6c3df93a", + "lines": 476, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/state_management.rs": { + "content_hash": "f59be77c50f3a54522dee4c421f271bba4e36033ec2c0013173368733f33d7a6", + "lines": 125, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/tests_scoring.rs": { + "content_hash": "7a4fddcf8dc5af786a9dbe5148c85780476095ce1c582b13e4cf2f864d017062", + "lines": 367, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase85.rs": { + "content_hash": "28b08303ce8370db560ecc840ad1351df4368065f506565bbcc28d4ad917ce58", + "lines": 175, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_notify_4.rs": { + "content_hash": "131d6aa2f1ff7d1305bac3fc8a1ae4e0c08aa179853dd625dce26fdb85c50d12", + "lines": 504, + "functions": 36, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/drift/tests_basic.rs": { + "content_hash": "72e4c5883d2c4806dbeaa8ad813c81a7907bac78e696f353897f47343d83412d", + "lines": 325, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch_status_ext.rs": { + "content_hash": "38caa2aed92591fe40388046bd7b21fe3209088d0376b921fca0982e63e37c1f", + "lines": 637, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_core.rs": { + "content_hash": "4d729bb1416b25dbda925c1936253ee3ba2b4f861f3b82d7200ac656a67a1516", + "lines": 223, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_8.rs": { + "content_hash": "1185e4f85d857d6ec63ecca39b7da844e29f93bc3fd9db14722ca67d425278a5", + "lines": 620, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/parse_and_plan.rs": { + "content_hash": "e02dd5813db8ce9426d3038a24a8cbd129e753de4e57630fbaa872b686c7a10b", + "lines": 95, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_sandbox_run.rs": { + "content_hash": "5f701b77734afb259e8e1cc39173f67ad8c8e9dfc57ac8abe60544869ed6e3bd", + "lines": 229, + "functions": 18, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/lock_lifecycle.rs": { + "content_hash": "1a130f12406efe0f6b2b2fbd421fdd729e31df031526144625fa8fe8529848d1", + "lines": 183, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase71.rs": { + "content_hash": "6f4a1d72e31d38a48ab0a78dd51638a39bb062d8e9cdef372efd051c655c0abe", + "lines": 279, + "functions": 24, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_substitution.rs": { + "content_hash": "502b1ad43ed11914f569118f091a4569207765359dc2282fa5c95340e026d631", + "lines": 279, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/misc_ops_args.rs": { + "content_hash": "4434ae1f9bacf8084c3ed92d01ce6ec57fc591152957ee1cdcced543d7eafb7d", + "lines": 289, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_far.rs": { + "content_hash": "24550e8b86ecf27dcd0fcb84087f98b1e20953293c06a573be3d0b28b325a7b8", + "lines": 185, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/service.rs": { + "content_hash": "b196fa1fe260d1ee4fbe5490d9e73fb475310871a762cd9962aa81be2e6bb56b", + "lines": 81, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_bash_provability.rs": { + "content_hash": "fb5b01227d3d1ebf0c4b2b25a9585c3a3314a1dc8e3bb3917bff8ef1c7b6072a", + "lines": 137, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch_status.rs": { + "content_hash": "2ce47fd7c3525a87d5bf3fc9b4b0eeb71adca86bd4870322292cd259efd1a4f1", + "lines": 1448, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase95.rs": { + "content_hash": "bf0a5c55af721110cf5d166d463b5925dc6780913ce7fa0a3580884c2f9627b9", + "lines": 215, + "functions": 30, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_repro_score.rs": { + "content_hash": "eb5c877d15c0d4f003c3474c7eaf429919bd55df6a4fd3805415817953193540", + "lines": 183, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/mcp/mod.rs": { + "content_hash": "3201dad7d2470e767c9e463c855586d805719b6af472a51bf914d540e6d92687", + "lines": 21, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_9.rs": { + "content_hash": "9595bb38a7b853a08bef9958a0dc8652676b31974accc7cd153953e064f65ec2", + "lines": 585, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_graph_core_6.rs": { + "content_hash": "5519c2dd3380ae47ec49f8510e654123e544f501bfd99e62cd82b06a809c0aba", + "lines": 312, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_args_4.rs": { + "content_hash": "2b82c0fb253b1f675d92841e3e329bb18b18c582fc8fdbd01eb3a72070fcf9e7", + "lines": 373, + "functions": 32, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_user.rs": { + "content_hash": "948e80757627608afc462218c4f2fc974469f0914f19a5ffe516ca4ac79217d7", + "lines": 473, + "functions": 30, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_policy.rs": { + "content_hash": "ab672e6d66b48bd9914016ecddf58ca50752c06d0c40579e5679cf4b3869576f", + "lines": 218, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_waves.rs": { + "content_hash": "982bf7d6f02720c27869d8e00dfd8eb3868b492a65bac78750eedbaf380ddbbd", + "lines": 459, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_dispatch_3.rs": { + "content_hash": "100af1705a0d16182fe5a8969d0ca78019e0a877b49569b55e27cc654b33b0c9", + "lines": 501, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_7.rs": { + "content_hash": "48e11dfaa56f1b1f15ef4370098508f3028969f1a681c328ddb6543c49fc1135", + "lines": 396, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/store_ops.rs": { + "content_hash": "8f1c09ef38818d37d499deae48880fce98e537ec88ed2f717a18775b67cd1f72", + "lines": 311, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_resilience.rs": { + "content_hash": "b3bc5904cb1ebdcab05ac2b3d4466bc50fb7f3b7a4e77b83ad1e9058c1f888d8", + "lines": 699, + "functions": 27, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_3.rs": { + "content_hash": "037b95ee9ddbd52fd27e5076ec61dad745a62a96c65b190dcaed86b54f7a2164", + "lines": 443, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_graph3_c.rs": { + "content_hash": "d4d7d08d99de4e8d2d5c7c80c481d2077dbbaee1a84d7cb7a4fb1a8ceb9eed44", + "lines": 267, + "functions": 35, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_5_b.rs": { + "content_hash": "ae7798e2a3827d2d0946147ea00340787a86e191f15d4b98237d7b4bdd74b75c", + "lines": 207, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/lock_audit.rs": { + "content_hash": "781e7c728c7a0b8a9b2204000a53f1fd58ed33aad63202aa5020e3f39e7f3bbd", + "lines": 382, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_core.rs": { + "content_hash": "6b23213ebaebf35c315cc8c8b6b36d574434ec9561e378484c287df2ad967f09", + "lines": 378, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/types/tests_state.rs": { + "content_hash": "dd2a188c375b0154f75dec150a2cf75406c52e50eae968c3b467146aedef7af5", + "lines": 282, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase73.rs": { + "content_hash": "30cf3a82640c3e614ba7b9dce1f9df02aa4c558dc4f1790f239e8d6c125deb16", + "lines": 283, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_scoring.rs": { + "content_hash": "4da920733a2851796cfe33fc50b0ddb25b29b090de2c17d63b5da731c61a5014", + "lines": 435, + "functions": 24, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/drift/mod.rs": { + "content_hash": "b0094bbc32e0db8f94403762405412acca10817454dd12d37a299dadc01c176d", + "lines": 310, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_validate3.rs": { + "content_hash": "2cc0d2323726ddf8a93ae63a7590f55ecb15466f0c9176dee6188c589f5d84ab", + "lines": 410, + "functions": 51, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_misc_2.rs": { + "content_hash": "0c72d3e8511ed1c5abac170244cd9ec3a33a39c6fd14f8ce2dacc31e8ed07ac7", + "lines": 391, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/tests_hasher.rs": { + "content_hash": "d631ad2b887ce07688a8a0e87a5aff2d55bddd83d2217fb5b8203aac76552631", + "lines": 276, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_visualization.rs": { + "content_hash": "2226cd8758d6b12cffe2ccafda43f34104bfe7939d93bcfec710cd07bcc216a3", + "lines": 313, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/state/tests_basic.rs": { + "content_hash": "26773ead1c2a4f5649bafbf9fb0ae4903aa075f74a18d6023262ad0dd7c1071f", + "lines": 354, + "functions": 24, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_closure.rs": { + "content_hash": "53a8fccc979fbf0bc31d2ed0b0fe0b777a91638869dab844daf3c383240db9bf", + "lines": 183, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_intelligence_ext.rs": { + "content_hash": "66d86de02b1b24a4732538620580336edb5c501d9a299fdfbe0b122c0e12643e", + "lines": 801, + "functions": 29, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/store_gc_lifecycle.rs": { + "content_hash": "e8e53f2082778029c04be3031184f2d58a31bed38de7c739c2e4d9ca58d4e58a", + "lines": 170, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "benches/store_bench.rs": { + "content_hash": "f97b1e48cff71ae15f2c3474dd36a52df9abe546882c8efc6b4d7b5b37833906", + "lines": 401, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/types/resource.rs": { + "content_hash": "58e75f542452698f3ff375faebc9fe6e3672dca984bf84404375aa68fbca6d43", + "lines": 438, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_fleet_reporting.rs": { + "content_hash": "3901fe210760f37694820731b9431fe74558573a333681f17b9da1955f03d19f", + "lines": 86, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/model.rs": { + "content_hash": "b07c57535ce7c047b85d0091cc592536c1bc4ee97e4912f8da242ae71f8514be", + "lines": 329, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_drift_intel2.rs": { + "content_hash": "6f32e09b223fb4a152deac6b1cdb6b80ef62dc08f2b6da69cc19c4b79649945b", + "lines": 460, + "functions": 18, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_convert_exec.rs": { + "content_hash": "93221ef970d83b08af899ddb7852f60d67da9a9c797ab714137c268acf194914", + "lines": 267, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/planner/tests_hash.rs": { + "content_hash": "fa0a25c1be61ccf3f6830d992e536963e5be7dedfd6fbed0980df66e659ba8df", + "lines": 503, + "functions": 26, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_validate_core_2.rs": { + "content_hash": "8da5adc831bc72bfdc709d66f2bc68dbdc13670c62b7832f11eba6e1c463ab38", + "lines": 805, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/trace_provenance.rs": { + "content_hash": "9f8a415a0f1e0c25293ebf2aab2a39d1bf6d9b838e101315eb5dec82348c22d4", + "lines": 119, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_advanced.rs": { + "content_hash": "aa590017de84e89d21e22efdecf1d440d2b7ac635bb710769779c6b2955e21d6", + "lines": 551, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_kernel_far.rs": { + "content_hash": "0c3f0f3cd5084c953a428b20d2350063bd53140d61bdeece477c2ddd62087356", + "lines": 404, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_hooks.rs": { + "content_hash": "5509ac1dc580a0c8a13607ab1d807295391f6dced6375f2a05ba4fae6589bde3", + "lines": 316, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/codegen/tests_dispatch.rs": { + "content_hash": "5b506a1421a453948b549e4863516566fbb8877a1c38da5119dfcb97ad105c3a", + "lines": 245, + "functions": 22, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/test_fixtures.rs": { + "content_hash": "0b8fda69d8f277e11569288b038ea6261396ff44b72d25b7410150bd2fb19839", + "lines": 149, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_status_3.rs": { + "content_hash": "d953ba308efe6509163a04d8d0ab9b18b59435efe88b5d09bfa8ef2a72a18e10", + "lines": 411, + "functions": 72, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase65.rs": { + "content_hash": "7becd26ed753087000d41cb0848a75dd670d9590ada04d710b194e0fde1b6d92", + "lines": 188, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "build.rs": { + "content_hash": "d68c4b581bc2211c97f952c4cd1aca94426b84e419e52071a421118e381f833c", + "lines": 9, + "functions": 0, + "max_complexity": 0, + "category": "BuildScript" + }, + "src/core/planner/mod.rs": { + "content_hash": "7c07701fd6517c704b28c3dc0d946e0cd5adc8ffa371f09449e748734402f036", + "lines": 376, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/types/tests_config.rs": { + "content_hash": "62f198f513cd6611e7b3746054fbb8f7280ed719277043d12fa10e5729e5586f", + "lines": 447, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_validate2_b.rs": { + "content_hash": "974a2b402c5e7bfb983b4cc2cba4dc2ad11b7a87639177521a59d8501ece79f9", + "lines": 386, + "functions": 38, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_topology.rs": { + "content_hash": "58dbadcd16996501b6d30be61417f9754f426a86fb2ebe6467302c081a8a0bd7", + "lines": 525, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_hf_config.rs": { + "content_hash": "eb2abc98fdf184aea958e4c5868c7a0f967a227367465aaedd4ad7e992bdb546", + "lines": 373, + "functions": 24, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/lock_merge.rs": { + "content_hash": "b4b7097556494d0affa4ecd89af8c3030b55570d213b020fa71d89b534392c9e", + "lines": 210, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase87.rs": { + "content_hash": "1e84fc118324487ca1d725601d4484cb4ffd00a7ae1757a99e8f754fee9da4ac", + "lines": 301, + "functions": 24, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_notify.rs": { + "content_hash": "c413f83c75c094afe92882c50880cdd8db88af26daeea15890fa9614723e78fb", + "lines": 789, + "functions": 45, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_transport_2.rs": { + "content_hash": "e7e61b26181d06ba30ff3d35cb9b5c6d5212a30db2af157146d8f1f2be051ab5", + "lines": 467, + "functions": 30, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/recipe/expansion.rs": { + "content_hash": "83036fee9f0a827503f00b1e4f68d826454a9c419914b30c38ae27f23eec05e8", + "lines": 208, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_show_1.rs": { + "content_hash": "146e30fe694909412f1d8a3157c58e7c8269c41ce0c7f35dc7e817d881833ab4", + "lines": 418, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_graph3.rs": { + "content_hash": "0964177398f72d99d5ea1f4a213a72dd48aad9df5a22c763d23440ef22e037c6", + "lines": 253, + "functions": 33, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase105.rs": { + "content_hash": "125e47bdfb4e5632a1352a9f73348469d2a113c4dff77b4ae71919315fd0c640", + "lines": 206, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_validate_core_3.rs": { + "content_hash": "c94e86e0868d9fd06084bf3fdeb3a05303969bdd50c2ab7dcc054b93cc93b608", + "lines": 246, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/fleet_reporting.rs": { + "content_hash": "0f004041c55291e5130d6b8762217ae7bc3121a309e9f8912ffed6c5ca1b4853", + "lines": 368, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/lock_core.rs": { + "content_hash": "622ec568ae72b5bd9b6625776af10162ad9ac59d8c8a8d5d8577cd124dace853", + "lines": 453, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_remaining_7.rs": { + "content_hash": "03d4a2bf12817121f557c0251456edbf232593631d66cda7c7ab1747ef609ecb", + "lines": 386, + "functions": 40, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/apply_variants.rs": { + "content_hash": "7fb2ff4c429a910521f9baf6668437bca47db6c49ebdc70574e1b38a380731b7", + "lines": 349, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/gpu_container_transport.rs": { + "content_hash": "d23eca486eb1020410cd6f894b19be747524b4552a22ebb07ce5b5e8fe03e84a", + "lines": 220, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/resource_scripts.rs": { + "content_hash": "bd107a90d40cfa4b2fd7abf5f8793d9414f9e7c1f1894e594d7ea640b68b8ed3", + "lines": 189, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_localhost.rs": { + "content_hash": "954988f33b820310b58963906a52d14efb39fa171ccdce0d5d845e96526d30ca", + "lines": 334, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_cache_exec.rs": { + "content_hash": "c405611445baf436a9ffdf7cfd971286b1a7f20564362a648b2d5775956629eb", + "lines": 235, + "functions": 18, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/gc_exec.rs": { + "content_hash": "2af6ad4e5be133d8db7efbc89197594791c8bad9c0c8f8452f6e49244c9b66d4", + "lines": 189, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/sandbox_run.rs": { + "content_hash": "58ce624ed70496af87745f25b27f09c3c4d9cff9638123ea2ec63299c5c4f592", + "lines": 148, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_fleet_ops_1.rs": { + "content_hash": "5db177b33104bf4e9c9a6ae3060e9aebfef6341175f3f69727b3c8c0a51acfbb", + "lines": 50, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_validate3_d.rs": { + "content_hash": "cf497a238c35b728a1c06baf2cd495c83321eb609903fb1a2af4f6ea5f7e9955", + "lines": 410, + "functions": 51, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/multi_machine.rs": { + "content_hash": "04b230f6137c1cf850adeb484e49ffe4da9df5899f879ec799441db5ff51d36c", + "lines": 212, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_ordering.rs": { + "content_hash": "2e61e35656794b31f7833e65bbe6d59235080a09d4f459242812096e7432f856", + "lines": 675, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/expansion.rs": { + "content_hash": "36e647edd310f9d8f1f30595e6a50c1b5f5f352a5da67ed77f65fa1f77649fe2", + "lines": 110, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + } + }, + "coverage_required": [ + "src/core/tests_secrets.rs", + "src/core/recipe/tests_expansion.rs", + "src/core/recipe/tests_integration.rs", + "src/core/recipe/mod.rs", + "src/core/recipe/tests_validation.rs", + "src/core/recipe/validation.rs", + "src/core/recipe/types.rs", + "src/core/recipe/expansion.rs", + "src/core/recipe/validation_types.rs", + "src/core/mod.rs", + "src/core/scoring.rs", + "src/core/tests_scoring_b.rs", + "src/core/executor/strategies.rs", + "src/core/executor/tests_edge_record.rs", + "src/core/executor/tests_edge_apply.rs", + "src/core/executor/tests_advanced.rs", + "src/core/executor/mod.rs", + "src/core/executor/resource_ops.rs", + "src/core/executor/tests_converge2.rs", + "src/core/executor/tests_parallel.rs", + "src/core/executor/machine_wave.rs", + "src/core/executor/tests_filters.rs", + "src/core/executor/test_fixtures.rs", + "src/core/executor/tests_rolling.rs", + "src/core/executor/tests_waves.rs", + "src/core/executor/helpers.rs", + "src/core/executor/tests_localhost.rs", + "src/core/executor/tests_localhost2.rs", + "src/core/executor/tests_hooks.rs", + "src/core/executor/tests_drift.rs", + "src/core/executor/tests_converge.rs", + "src/core/executor/tests_core.rs", + "src/core/executor/tests_edge_details.rs", + "src/core/executor/tests_concurrent.rs", + "src/core/executor/machine.rs", + "src/core/parser/tests_misc_2b.rs", + "src/core/parser/tests_expansion.rs", + "src/core/parser/tests_arch.rs", + "src/core/parser/mod.rs", + "src/core/parser/tests_misc_2.rs", + "src/core/parser/tests_includes.rs", + "src/core/parser/resource_types.rs", + "src/core/parser/tests_validation.rs", + "src/core/parser/tests_misc.rs", + "src/core/parser/policy.rs", + "src/core/parser/includes.rs", + "src/core/parser/validation.rs", + "src/core/parser/tests_misc_3.rs", + "src/core/parser/expansion.rs", + "src/core/parser/tests_core.rs", + "src/core/parser/tests_triggers.rs", + "src/core/parser/recipes.rs", + "src/core/parser/tests_misc_4.rs", + "src/core/parser/tests_policy.rs", + "src/core/migrate.rs", + "src/core/planner/tests_when.rs", + "src/core/planner/tests_advanced.rs", + "src/core/planner/mod.rs", + "src/core/planner/tests_helpers.rs", + "src/core/planner/tests_hash.rs", + "src/core/planner/tests_lifecycle.rs", + "src/core/planner/tests_determine.rs", + "src/core/planner/tests_describe.rs", + "src/core/planner/tests_plan.rs", + "src/core/planner/tests_filter.rs", + "src/core/tests_purifier.rs", + "src/core/purifier.rs", + "src/core/resolver/resource.rs", + "src/core/resolver/mod.rs", + "src/core/resolver/tests_functions.rs", + "src/core/resolver/tests_helpers.rs", + "src/core/resolver/tests_dag.rs", + "src/core/resolver/tests_waves.rs", + "src/core/resolver/dag.rs", + "src/core/resolver/template.rs", + "src/core/resolver/data.rs", + "src/core/resolver/tests_data.rs", + "src/core/resolver/tests_template.rs", + "src/core/resolver/functions.rs", + "src/core/resolver/tests_proptest.rs", + "src/core/resolver/tests_resource.rs", + "src/core/state/tests_edge.rs", + "src/core/state/mod.rs", + "src/core/state/tests_helpers.rs", + "src/core/state/tests_process_lock.rs", + "src/core/state/tests_encrypt.rs", + "src/core/state/tests_basic.rs", + "src/core/tests_scoring.rs", + "src/core/secrets.rs", + "src/core/codegen/tests_completeness.rs", + "src/core/codegen/mod.rs", + "src/core/codegen/test_fixtures.rs", + "src/core/codegen/dispatch.rs", + "src/core/codegen/tests_coverage.rs", + "src/core/codegen/tests_dispatch.rs", + "src/core/conditions.rs", + "src/core/store/tests_sync_exec.rs", + "src/core/store/tests_lockfile.rs", + "src/core/store/convert.rs", + "src/core/store/conda.rs", + "src/core/store/gc.rs", + "src/core/store/tests_convert_exec.rs", + "src/core/store/tests_path.rs", + "src/core/store/store_diff.rs", + "src/core/store/sandbox_exec.rs", + "src/core/store/tests_pin_resolve.rs", + "src/core/store/tests_chunker.rs", + "src/core/store/mod.rs", + "src/core/store/tests_cache.rs", + "src/core/store/substitution.rs", + "src/core/store/far.rs", + "src/core/store/profile.rs", + "src/core/store/path.rs", + "src/core/store/tests_hf_config.rs", + "src/core/store/tests_sandbox.rs", + "src/core/store/secret_scan.rs", + "src/core/store/repro_score.rs", + "src/core/store/contract_scaffold.rs", + "src/core/store/pin_resolve.rs", + "src/core/store/tests_purity.rs", + "src/core/store/tests_substitution.rs", + "src/core/store/validate.rs", + "src/core/store/tests_profile.rs", + "src/core/store/tests_store_diff.rs", + "src/core/store/cache.rs", + "src/core/store/tests_convert.rs", + "src/core/store/sandbox.rs", + "src/core/store/contract_coverage.rs", + "src/core/store/tests_closure.rs", + "src/core/store/lockfile.rs", + "src/core/store/gc_exec.rs", + "src/core/store/meta.rs", + "src/core/store/tests_gc_exec.rs", + "src/core/store/chunker.rs", + "src/core/store/kernel_far.rs", + "src/core/store/tests_conda.rs", + "src/core/store/convert_exec.rs", + "src/core/store/pin_tripwire.rs", + "src/core/store/tests_derivation_exec.rs", + "src/core/store/tests_far.rs", + "src/core/store/tests_secret_scan.rs", + "src/core/store/provider_exec.rs", + "src/core/store/sync_exec.rs", + "src/core/store/purity.rs", + "src/core/store/tests_repro_score.rs", + "src/core/store/reference.rs", + "src/core/store/tests_provider.rs", + "src/core/store/tests_validate.rs", + "src/core/store/derivation_exec.rs", + "src/core/store/tests_contract_coverage.rs", + "src/core/store/tests_contract_scaffold.rs", + "src/core/store/hf_config.rs", + "src/core/store/tests_cache_exec.rs", + "src/core/store/tests_sandbox_run.rs", + "src/core/store/tests_pin_tripwire.rs", + "src/core/store/tests_derivation.rs", + "src/core/store/derivation.rs", + "src/core/store/sandbox_run.rs", + "src/core/store/tests_kernel_far.rs", + "src/core/store/tests_meta.rs", + "src/core/store/tests_reference.rs", + "src/core/store/cache_exec.rs", + "src/core/store/tests_sandbox_exec.rs", + "src/core/store/tests_gc.rs", + "src/core/store/tests_provider_exec.rs", + "src/core/store/tests_bash_provability.rs", + "src/core/store/closure.rs", + "src/core/store/provider.rs", + "src/core/tests_purifier_b.rs", + "src/core/types/resource.rs", + "src/core/types/mod.rs", + "src/core/types/tests_state.rs", + "src/core/types/policy.rs", + "src/core/types/config.rs", + "src/core/types/tests_config.rs", + "src/core/types/tests_resource.rs", + "src/core/types/state_types.rs", + "src/mcp/tests_handlers.rs", + "src/mcp/registry.rs", + "src/mcp/mod.rs", + "src/mcp/handlers.rs", + "src/mcp/tests_handlers_more.rs", + "src/mcp/types.rs", + "src/mcp/tests_registry.rs", + "src/cli/tests_misc_5.rs", + "src/cli/tests_phase71.rs", + "src/cli/tests_snapshot.rs", + "src/cli/status_drift_intel.rs", + "src/cli/tests_graph_core_2.rs", + "src/cli/graph_scoring.rs", + "src/cli/validate_maturity.rs", + "src/cli/validate_safety.rs", + "src/cli/status_resource_intel.rs", + "src/cli/status_operational.rs", + "src/cli/tests_misc_1_b.rs", + "src/cli/validate_resources.rs", + "src/cli/snapshot.rs", + "src/cli/tests_misc_9_b.rs", + "src/cli/graph_governance.rs", + "src/cli/drift.rs", + "src/cli/tests_diff_cmd.rs", + "src/cli/tests_phase79.rs", + "src/cli/tests_apply_10.rs", + "src/cli/tests_status_core_6.rs", + "src/cli/status_security.rs", + "src/cli/dispatch_notify.rs", + "src/cli/commands/mod.rs", + "src/cli/commands/misc_ops_args.rs", + "src/cli/commands/status_args.rs", + "src/cli/commands/validate_args.rs", + "src/cli/commands/misc_args.rs", + "src/cli/commands/plan_args.rs", + "src/cli/commands/lock_core_args.rs", + "src/cli/commands/apply_args.rs", + "src/cli/commands/state_args.rs", + "src/cli/commands/store_args.rs", + "src/cli/commands/lock_ops_args.rs", + "src/cli/commands/subcmd_args.rs", + "src/cli/commands/graph_args.rs", + "src/cli/tests_graph_core.rs", + "src/cli/tests_status_core_3_b.rs", + "src/cli/tests_misc_1.rs", + "src/cli/tests_infra.rs", + "src/cli/status_fleet_insight.rs", + "src/cli/tests_validate_core_2.rs", + "src/cli/tests_cov_validate3_d.rs", + "src/cli/tests_phase86.rs", + "src/cli/validate_advanced.rs", + "src/cli/tests_cov_status_1.rs", + "src/cli/dispatch_validate.rs", + "src/cli/tests_status_core_2.rs", + "src/cli/observe.rs", + "src/cli/score.rs", + "src/cli/tests_plan_file.rs", + "src/cli/lock_core.rs", + "src/cli/tests_graph_core_4.rs", + "src/cli/graph_impact.rs", + "src/cli/graph_transport.rs", + "src/cli/tests_validate_core_b.rs", + "src/cli/tests_status_core_5_b.rs", + "src/cli/validate_analytics.rs", + "src/cli/status_fleet.rs", + "src/cli/tests_cov_status_6.rs", + "src/cli/status_compliance.rs", + "src/cli/tests_status_core_8_b.rs", + "src/cli/tests_show_2.rs", + "src/cli/tests_cov_args_4.rs", + "src/cli/print_helpers.rs", + "src/cli/status_intelligence.rs", + "src/cli/dispatch_graph.rs", + "src/cli/tests_apply_9.rs", + "src/cli/tests_score.rs", + "src/cli/mod.rs", + "src/cli/tests_misc_2.rs", + "src/cli/tests_phase88.rs", + "src/cli/validate_quality.rs", + "src/cli/dispatch_misc.rs", + "src/cli/graph_extended.rs", + "src/cli/tests_cov_fleet_b.rs", + "src/cli/tests_show_1.rs", + "src/cli/tests_helpers_state.rs", + "src/cli/tests_phase77.rs", + "src/cli/tests_apply_11.rs", + "src/cli/status_alerts.rs", + "src/cli/validate_hygiene.rs", + "src/cli/status_diagnostics.rs", + "src/cli/tests_helpers.rs", + "src/cli/graph_lifecycle.rs", + "src/cli/tests_misc_6.rs", + "src/cli/tests_apply_1.rs", + "src/cli/store_pin.rs", + "src/cli/tests_misc_10.rs", + "src/cli/tests_check.rs", + "src/cli/tests_store_archive.rs", + "src/cli/store_import.rs", + "src/cli/tests_cov_notify.rs", + "src/cli/tests_status_core_5.rs", + "src/cli/tests_validate_core.rs", + "src/cli/graph_intelligence_ext.rs", + "src/cli/tests_workspace.rs", + "src/cli/validate_compliance.rs", + "src/cli/tests_apply_20.rs", + "src/cli/tests_cov_remaining_3.rs", + "src/cli/helpers_state.rs", + "src/cli/tests_cov_notify_2.rs", + "src/cli/graph_quality.rs", + "src/cli/store_archive.rs", + "src/cli/tests_cov_fleet.rs", + "src/cli/tests_lock_core.rs", + "src/cli/tests_graph_core_3.rs", + "src/cli/tests_cov_graph3_c.rs", + "src/cli/status_convergence.rs", + "src/cli/tests_cov_status_4.rs", + "src/cli/status_resources.rs", + "src/cli/tests_show.rs", + "src/cli/status_operational_ext.rs", + "src/cli/tests_cov_dispatch_3.rs", + "src/cli/history.rs", + "src/cli/graph_analysis.rs", + "src/cli/tests_cov_status_5.rs", + "src/cli/status_drift_intel2.rs", + "src/cli/test_fixtures.rs", + "src/cli/tests_cov_lock.rs", + "src/cli/tests_show_3.rs", + "src/cli/graph_weight.rs", + "src/cli/validate_paths.rs", + "src/cli/tests_cov_validate3_c.rs", + "src/cli/tests_cov_args.rs", + "src/cli/tests_cov_validate2_b.rs", + "src/cli/tests_graph_core_5.rs", + "src/cli/tests_apply_21.rs", + "src/cli/tests_cov_remaining_2.rs", + "src/cli/graph_cross.rs", + "src/cli/status_core.rs", + "src/cli/helpers.rs", + "src/cli/dispatch_status.rs", + "src/cli/tests_status_core_7.rs", + "src/cli/status_maturity.rs", + "src/cli/validate_compliance_ext.rs", + "src/cli/tests_phase94.rs", + "src/cli/tests_phase100.rs", + "src/cli/status_transport.rs", + "src/cli/store_cache.rs", + "src/cli/tests_phase99.rs", + "src/cli/tests_phase81.rs", + "src/cli/tests_cov_notify_3.rs", + "src/cli/tests_cov_args_2.rs", + "src/cli/tests_apply_18.rs", + "src/cli/tests_phase68.rs", + "src/cli/tests_phase106.rs", + "src/cli/tests_phase85.rs", + "src/cli/tests_status_queries.rs", + "src/cli/tests_status_core_1.rs", + "src/cli/tests_phase87.rs", + "src/cli/tests_phase65.rs", + "src/cli/tests_validate_core_3.rs", + "src/cli/status_resource_detail.rs", + "src/cli/tests_phase105.rs", + "src/cli/tests_misc.rs", + "src/cli/doctor.rs", + "src/cli/tests_apply_19.rs", + "src/cli/tests_cov_validate3_b.rs", + "src/cli/tests_phase90.rs", + "src/cli/tests_import_cmd.rs", + "src/cli/tests_phase83.rs", + "src/cli/tests_cov_status_2.rs", + "src/cli/tests_phase73.rs", + "src/cli/lock_lifecycle.rs", + "src/cli/status_failures.rs", + "src/cli/tests_phase59.rs", + "src/cli/tests_phase62.rs", + "src/cli/tests_phase96.rs", + "src/cli/tests_apply_3.rs", + "src/cli/tests_status_core_b.rs", + "src/cli/tests_phase98.rs", + "src/cli/tests_fleet_ops_1.rs", + "src/cli/tests_phase76.rs", + "src/cli/workspace.rs", + "src/cli/tests_misc_7_b.rs", + "src/cli/plan.rs", + "src/cli/tests_cov_dispatch_4.rs", + "src/cli/tests_misc_8.rs", + "src/cli/check.rs", + "src/cli/tests_phase82.rs", + "src/cli/tests_apply_7.rs", + "src/cli/tests_apply_5.rs", + "src/cli/tests_cov_status_4_c.rs", + "src/cli/status_recovery.rs", + "src/cli/graph_topology.rs", + "src/cli/status_insights.rs", + "src/cli/tests_phase72.rs", + "src/cli/tests_status_core_4_b.rs", + "src/cli/tests_status_core_4.rs", + "src/cli/fleet_ops.rs", + "src/cli/infra.rs", + "src/cli/validate_security.rs", + "src/cli/tests_store_import.rs", + "src/cli/apply_output.rs", + "src/cli/validate_structural.rs", + "src/cli/tests_phase91.rs", + "src/cli/tests_apply.rs", + "src/cli/tests_check_2.rs", + "src/cli/tests_status_core_10.rs", + "src/cli/tests_cov_transport_3.rs", + "src/cli/init.rs", + "src/cli/tests_phase95.rs", + "src/cli/tests_phase63.rs", + "src/cli/tests_phase66.rs", + "src/cli/tests_apply_15.rs", + "src/cli/tests_fleet_ops.rs", + "src/cli/apply_helpers.rs", + "src/cli/tests_cov_remaining_6.rs", + "src/cli/tests_cov_remaining.rs", + "src/cli/tests_phase84.rs", + "src/cli/tests_phase97.rs", + "src/cli/tests_cov_transport_2.rs", + "src/cli/validate_core.rs", + "src/cli/tests_phase67.rs", + "src/cli/graph_topology_ext.rs", + "src/cli/graph_analytics_ext.rs", + "src/cli/validate_ordering.rs", + "src/cli/graph_intelligence_ext2.rs", + "src/cli/tests_destroy.rs", + "src/cli/tests_fleet_reporting.rs", + "src/cli/tests_cov_dispatch_2.rs", + "src/cli/dispatch.rs", + "src/cli/dispatch_store.rs", + "src/cli/tests_phase89.rs", + "src/cli/tests_status_core_3.rs", + "src/cli/tests_validate_core_1.rs", + "src/cli/tests_helpers_time.rs", + "src/cli/tests_status_core_9.rs", + "src/cli/tests_store_convert.rs", + "src/cli/tests_cov_apply.rs", + "src/cli/graph_resilience_ext.rs", + "src/cli/validate_ordering_ext.rs", + "src/cli/tests_cov_status_3.rs", + "src/cli/tests_status_core_6_b.rs", + "src/cli/graph_intelligence.rs", + "src/cli/dispatch_notify_custom.rs", + "src/cli/tests_drift.rs", + "src/cli/tests_apply_23.rs", + "src/cli/tests_cov_args_3.rs", + "src/cli/tests_apply_16.rs", + "src/cli/tests_misc_3.rs", + "src/cli/validate_ownership.rs", + "src/cli/secrets.rs", + "src/cli/tests_cov_args_extra_b.rs", + "src/cli/status_counts.rs", + "src/cli/status_observability.rs", + "src/cli/helpers_time.rs", + "src/cli/tests_cov_graph2.rs", + "src/cli/lock_security.rs", + "src/cli/tests_apply_8.rs", + "src/cli/tests_cov_args_extra.rs", + "src/cli/tests_apply_6.rs", + "src/cli/tests_store_pin.rs", + "src/cli/tests_apply_2.rs", + "src/cli/tests_cov_remaining_7.rs", + "src/cli/graph_export.rs", + "src/cli/tests_cov_args_2_b.rs", + "src/cli/tests_phase101.rs", + "src/cli/graph_resilience.rs", + "src/cli/lock_merge.rs", + "src/cli/dispatch_status_ext.rs", + "src/cli/tests_apply_helpers.rs", + "src/cli/tests_check_1.rs", + "src/cli/validate_policy.rs", + "src/cli/tests_validate_core_2_b.rs", + "src/cli/tests_apply_12.rs", + "src/cli/tests_cov_remaining_8.rs", + "src/cli/status_intelligence_ext2.rs", + "src/cli/status_intelligence_ext.rs", + "src/cli/tests_doctor.rs", + "src/cli/tests_history.rs", + "src/cli/tests_validate_transport.rs", + "src/cli/status_quality.rs", + "src/cli/tests_status_core.rs", + "src/cli/validate_governance.rs", + "src/cli/graph_analytics.rs", + "src/cli/tests_cov_graph3.rs", + "src/cli/tests_destroy_1.rs", + "src/cli/tests_plan.rs", + "src/cli/tests_apply_17.rs", + "src/cli/status_cost.rs", + "src/cli/tests_observe.rs", + "src/cli/tests_cov_remaining_9.rs", + "src/cli/tests_print_helpers.rs", + "src/cli/status_resilience.rs", + "src/cli/dispatch_lock.rs", + "src/cli/graph_paths.rs", + "src/cli/tests_cov_misc2_b.rs", + "src/cli/status_fleet_detail.rs", + "src/cli/graph_visualization.rs", + "src/cli/status_drift.rs", + "src/cli/tests_cov_dispatch.rs", + "src/cli/tests_phase107.rs", + "src/cli/tests_phase74.rs", + "src/cli/diff_cmd.rs", + "src/cli/tests_cov_status_4_b.rs", + "src/cli/tests_cov_remaining_4.rs", + "src/cli/validate_governance_ext.rs", + "src/cli/validate_security_ext.rs", + "src/cli/tests_status_core_7_b.rs", + "src/cli/tests_apply_13.rs", + "src/cli/tests_phase104.rs", + "src/cli/tests_cov_misc2.rs", + "src/cli/tests_apply_6_b.rs", + "src/cli/status_queries.rs", + "src/cli/tests_phase60.rs", + "src/cli/destroy.rs", + "src/cli/status_trends.rs", + "src/cli/validate_transport.rs", + "src/cli/store_ops.rs", + "src/cli/tests_validate_core_1_b.rs", + "src/cli/tests_misc_5_b.rs", + "src/cli/validate_audit.rs", + "src/cli/tests_graph_core_b.rs", + "src/cli/tests_cov_transport.rs", + "src/cli/validate_topology.rs", + "src/cli/lint.rs", + "src/cli/fleet_reporting.rs", + "src/cli/import_cmd.rs", + "src/cli/tests_phase61.rs", + "src/cli/tests_cov_validate2.rs", + "src/cli/tests_cov_validate.rs", + "src/cli/status_analytics.rs", + "src/cli/lock_audit.rs", + "src/cli/tests_cov_status_7.rs", + "src/cli/validate_scoring.rs", + "src/cli/graph_advanced.rs", + "src/cli/status_operational_ext2.rs", + "src/cli/tests_misc_9.rs", + "src/cli/tests_status_core_2_b.rs", + "src/cli/tests_phase70.rs", + "src/cli/tests_cov_graph.rs", + "src/cli/graph_compliance.rs", + "src/cli/tests_graph_core_1.rs", + "src/cli/tests_phase64.rs", + "src/cli/status_health.rs", + "src/cli/graph_core.rs", + "src/cli/show.rs", + "src/cli/tests_init.rs", + "src/cli/status_predictive.rs", + "src/cli/tests_phase69.rs", + "src/cli/tests_phase103.rs", + "src/cli/tests_phase92.rs", + "src/cli/tests_cov_apply_b.rs", + "src/cli/tests_cov_remaining_5.rs", + "src/cli/validate_config_quality.rs", + "src/cli/tests_cov_notify_4.rs", + "src/cli/tests_apply_14.rs", + "src/cli/tests_phase78.rs", + "src/cli/tests_misc_4.rs", + "src/cli/dispatch_apply.rs", + "src/cli/tests_phase80.rs", + "src/cli/tests_store_ops.rs", + "src/cli/tests_phase102.rs", + "src/cli/tests_lock_core_1.rs", + "src/cli/graph_health.rs", + "src/cli/tests_plan_1.rs", + "src/cli/tests_graph_core_6.rs", + "src/cli/lock_ops.rs", + "src/cli/store_convert.rs", + "src/cli/tests_cov_validate3.rs", + "src/cli/tests_misc_7.rs", + "src/cli/tests_store_cache.rs", + "src/cli/tests_apply_4.rs", + "src/cli/tests_lint.rs", + "src/cli/tests_status_core_1_b.rs", + "src/cli/lock_repair.rs", + "src/cli/tests_status_core_8.rs", + "src/cli/tests_cov_validate2_c.rs", + "src/cli/validate_resilience.rs", + "src/cli/tests_cov_graph3_b.rs", + "src/cli/tests_phase75.rs", + "src/cli/apply.rs", + "src/cli/apply_variants.rs", + "src/cli/tests_apply_22.rs", + "src/main.rs", + "src/copia/mod.rs", + "src/transport/container.rs", + "src/transport/tests_dispatch_b.rs", + "src/transport/tests_ssh.rs", + "src/transport/tests_container_b.rs", + "src/transport/tests_container.rs", + "src/transport/mod.rs", + "src/transport/tests_container_c.rs", + "src/transport/pepita.rs", + "src/transport/ssh.rs", + "src/transport/tests_dispatch.rs", + "src/transport/tests_container_d.rs", + "src/transport/local.rs", + "src/resources/gpu.rs", + "src/resources/tests_user.rs", + "src/resources/mod.rs", + "src/resources/task.rs", + "src/resources/cron.rs", + "src/resources/pepita/mod.rs", + "src/resources/tests_file.rs", + "src/resources/tests_mount_b.rs", + "src/resources/mount.rs", + "src/resources/tests_docker.rs", + "src/resources/docker.rs", + "src/resources/user.rs", + "src/resources/tests_mount.rs", + "src/resources/model.rs", + "src/resources/network.rs", + "src/resources/tests_service.rs", + "src/resources/tests_docker_b.rs", + "src/resources/tests_file_b.rs", + "src/resources/file.rs", + "src/resources/tests_package.rs", + "src/resources/tests_package_b.rs", + "src/resources/package.rs", + "src/resources/tests_gpu.rs", + "src/resources/service.rs", + "src/lib.rs", + "src/tripwire/tests_anomaly.rs", + "src/tripwire/mod.rs", + "src/tripwire/anomaly.rs", + "src/tripwire/eventlog.rs", + "src/tripwire/drift/tests_fj036.rs", + "src/tripwire/drift/mod.rs", + "src/tripwire/drift/tests_lifecycle.rs", + "src/tripwire/drift/tests_edge_fj132_b.rs", + "src/tripwire/drift/tests_basic_b.rs", + "src/tripwire/drift/tests_edge_fj131.rs", + "src/tripwire/drift/tests_transport.rs", + "src/tripwire/drift/tests_edge_fj132.rs", + "src/tripwire/drift/tests_full.rs", + "src/tripwire/drift/tests_basic.rs", + "src/tripwire/tests_hasher_b.rs", + "src/tripwire/tests_eventlog_b.rs", + "src/tripwire/hasher.rs", + "src/tripwire/tests_eventlog.rs", + "src/tripwire/tracer.rs", + "src/tripwire/tests_hasher.rs", + "benches/core_bench.rs", + "benches/store_bench.rs", + "examples/mcp_server.rs", + "examples/multi_machine.rs", + "examples/arch_filtering.rs", + "examples/store_provider_import.rs", + "examples/parse_and_plan.rs", + "examples/store_cache_protocol.rs", + "examples/store_executors.rs", + "examples/state_management.rs", + "examples/template_resolution.rs", + "examples/gpu_container_transport.rs", + "examples/blake3_hashing.rs", + "examples/full_stack_deploy.rs", + "examples/store_pin_resolve.rs", + "examples/validation.rs", + "examples/codegen_scripts.rs", + "examples/resource_scripts.rs", + "examples/trace_provenance.rs", + "examples/anomaly_detection.rs", + "examples/score_cookbook.rs", + "examples/conda_to_far.rs", + "examples/store_reproducibility.rs", + "examples/recipe_expansion.rs", + "examples/container_transport.rs", + "examples/shell_purifier.rs", + "examples/event_logging.rs", + "examples/store_gc_lifecycle.rs", + "examples/user_management.rs", + "examples/drift_detection.rs" + ], + "manifest_hash": "2758812760789ce4031c6474dfc44ef0588da750bf0ef6a217954c88cf976034" + }, + "thresholds": { + "min_coverage_pct": 95.0, + "min_per_file_coverage_pct": 95.0, + "max_tdg_regression": 0.0, + "max_function_complexity": 20, + "max_file_lines": 500, + "min_spec_score": 95, + "require_github_sync": true, + "require_spec_update": true, + "require_roadmap_update": true, + "block_on_new_satd": true, + "block_on_new_dead_code": true, + "require_lint_pass": true, + "max_fix_chain": 3, + "block_on_untested_variants": true, + "block_on_cross_crate_failure": false, + "block_on_regression": false, + "require_proof_verification": false, + "max_sorry_count": 0, + "min_theorem_coverage": 0.0, + "block_on_file_size": true + }, + "claims": [ + { + "hypothesis": "All baseline files still exist", + "falsification_method": "ManifestIntegrity", + "evidence_required": { + "FileList": [] + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "The falsifier is active and detecting (Meta-Check)", + "falsification_method": "MetaFalsification", + "evidence_required": { + "CounterExample": { + "details": "" + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "No coverage exclusion gaming", + "falsification_method": "CoverageGaming", + "evidence_required": { + "FileList": [] + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "All changed lines are covered", + "falsification_method": "DifferentialCoverage", + "evidence_required": { + "NumericComparison": { + "actual": 0.0, + "threshold": 100.0 + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "Total coverage >= 95%", + "falsification_method": "AbsoluteCoverage", + "evidence_required": { + "NumericComparison": { + "actual": 0.0, + "threshold": 95.0 + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "TDG score >= baseline", + "falsification_method": "TdgRegression", + "evidence_required": { + "NumericComparison": { + "actual": 0.0, + "threshold": 0.0 + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "No function exceeds complexity 20", + "falsification_method": "ComplexityRegression", + "evidence_required": { + "NumericComparison": { + "actual": 0.0, + "threshold": 20.0 + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "No vulnerable dependencies added", + "falsification_method": "SupplyChainIntegrity", + "evidence_required": { + "CounterExample": { + "details": "" + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "No file exceeds 500 lines", + "falsification_method": "FileSizeRegression", + "evidence_required": { + "NumericComparison": { + "actual": 0.0, + "threshold": 500.0 + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "Spec & Roadmap Quality", + "falsification_method": "SpecQuality", + "evidence_required": { + "NumericComparison": { + "actual": 0.0, + "threshold": 95.0 + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "All changes pushed", + "falsification_method": "GitHubSync", + "evidence_required": { + "GitState": { + "unpushed_commits": 0, + "dirty_files": 0 + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "All examples compile and run", + "falsification_method": "ExamplesCompile", + "evidence_required": { + "CounterExample": { + "details": "" + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "pmat-book validation passes", + "falsification_method": "BookValidation", + "evidence_required": { + "CounterExample": { + "details": "" + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "No new SATD markers (TODO/FIXME/HACK)", + "falsification_method": "SatdDetection", + "evidence_required": { + "FileList": [] + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "No new dead code introduced", + "falsification_method": "DeadCodeDetection", + "evidence_required": { + "FileList": [] + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "All files have >= 95% coverage", + "falsification_method": "PerFileCoverage", + "evidence_required": { + "FileList": [] + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "make lint passes", + "falsification_method": "LintPass", + "evidence_required": { + "BooleanCheck": false + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "All match arm variants have test coverage", + "falsification_method": "VariantCoverage", + "evidence_required": { + "FileList": [] + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "No fix-after-fix chains exceed limit", + "falsification_method": "FixChainLimit", + "evidence_required": { + "NumericComparison": { + "actual": 0.0, + "threshold": 3.0 + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "Cross-crate integration tests pass", + "falsification_method": "CrossCrateParity", + "evidence_required": { + "BooleanCheck": false + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "No performance regressions detected", + "falsification_method": "RegressionGate", + "evidence_required": { + "NumericComparison": { + "actual": 0.0, + "threshold": 0.0 + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "No incomplete proofs (sorry) introduced", + "falsification_method": "FormalProofVerification", + "evidence_required": { + "NumericComparison": { + "actual": 0.0, + "threshold": 0.0 + } + }, + "result": null, + "override_info": null + } + ], + "profile": "Pmat", + "require": [ + { + "id": "require.compiles", + "kind": "Require", + "description": "Project builds successfully", + "falsification_method": "ManifestIntegrity", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "require.tests_exist", + "kind": "Require", + "description": "At least one test exists", + "falsification_method": "MetaFalsification", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "require.manifest_integrity", + "kind": "Require", + "description": "FileManifest anti-gaming check", + "falsification_method": "ManifestIntegrity", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "require.meta_falsification", + "kind": "Require", + "description": "Falsifier self-check active", + "falsification_method": "MetaFalsification", + "threshold": null, + "blocking": true, + "source": "Default" + } + ], + "ensure": [ + { + "id": "ensure.tests_pass", + "kind": "Ensure", + "description": "All tests pass", + "falsification_method": "MetaFalsification", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.git_sync", + "kind": "Ensure", + "description": "All changes pushed to remote", + "falsification_method": "GitHubSync", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.no_regression", + "kind": "Ensure", + "description": "No previously-passing test now fails", + "falsification_method": "MetaFalsification", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.coverage", + "kind": "Ensure", + "description": "Coverage >= 95%", + "falsification_method": "AbsoluteCoverage", + "threshold": { + "Numeric": { + "metric": "coverage_pct", + "op": "Gte", + "value": 95.0 + } + }, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.differential_coverage", + "kind": "Ensure", + "description": "Changed lines must be covered", + "falsification_method": "DifferentialCoverage", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.supply_chain", + "kind": "Ensure", + "description": "No vulnerable dependencies", + "falsification_method": "SupplyChainIntegrity", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.examples_compile", + "kind": "Ensure", + "description": "All examples compile and run", + "falsification_method": "ExamplesCompile", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.tdg_regression", + "kind": "Ensure", + "description": "TDG score >= baseline", + "falsification_method": "TdgRegression", + "threshold": { + "Delta": { + "metric": "tdg_score", + "op": "Gte", + "value": 0.0 + } + }, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.coverage_gaming", + "kind": "Ensure", + "description": "No coverage exclusion gaming", + "falsification_method": "CoverageGaming", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.spec_quality", + "kind": "Ensure", + "description": "Spec score meets threshold", + "falsification_method": "SpecQuality", + "threshold": { + "Numeric": { + "metric": "spec_score", + "op": "Gte", + "value": 95.0 + } + }, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.book_validation", + "kind": "Ensure", + "description": "pmat-book validation passes", + "falsification_method": "BookValidation", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.per_file_coverage", + "kind": "Ensure", + "description": "All files >= 95% coverage", + "falsification_method": "PerFileCoverage", + "threshold": { + "Numeric": { + "metric": "per_file_coverage_pct", + "op": "Gte", + "value": 95.0 + } + }, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.variant_coverage", + "kind": "Ensure", + "description": "All match arm variants tested", + "falsification_method": "VariantCoverage", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.cross_crate_parity", + "kind": "Ensure", + "description": "Cross-crate integration tests pass", + "falsification_method": "CrossCrateParity", + "threshold": null, + "blocking": false, + "source": "Default" + } + ], + "invariant": [ + { + "id": "invariant.compiles", + "kind": "Invariant", + "description": "Project compiles at every checkpoint", + "falsification_method": "ManifestIntegrity", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "invariant.file_size", + "kind": "Invariant", + "description": "No file exceeds 500 lines", + "falsification_method": "FileSizeRegression", + "threshold": { + "Numeric": { + "metric": "max_file_lines", + "op": "Lte", + "value": 500.0 + } + }, + "blocking": true, + "source": "Default" + }, + { + "id": "invariant.lint", + "kind": "Invariant", + "description": "cargo clippy passes", + "falsification_method": "LintPass", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "invariant.complexity", + "kind": "Invariant", + "description": "No function exceeds complexity 20", + "falsification_method": "ComplexityRegression", + "threshold": { + "Numeric": { + "metric": "max_complexity", + "op": "Lte", + "value": 20.0 + } + }, + "blocking": true, + "source": "Default" + }, + { + "id": "invariant.satd", + "kind": "Invariant", + "description": "No new SATD markers", + "falsification_method": "SatdDetection", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "invariant.dead_code", + "kind": "Invariant", + "description": "No new dead code introduced", + "falsification_method": "DeadCodeDetection", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "invariant.fix_chain", + "kind": "Invariant", + "description": "Fix-after-fix chains within limit", + "falsification_method": "FixChainLimit", + "threshold": { + "Numeric": { + "metric": "fix_chain_count", + "op": "Lte", + "value": 3.0 + } + }, + "blocking": true, + "source": "Default" + } + ], + "excluded_claims": [], + "iteration": 1, + "inherited_postconditions": [], + "contract_quality": { + "active_claims": 25, + "applicable_claims": 25, + "score": 1.0, + "rating": "Full" + } +} \ No newline at end of file diff --git a/.pmat-work/PMAT-027/contract.json b/.pmat-work/PMAT-027/contract.json new file mode 100644 index 00000000..61f2c4f3 --- /dev/null +++ b/.pmat-work/PMAT-027/contract.json @@ -0,0 +1,5785 @@ +{ + "version": "5.0", + "work_item_id": "PMAT-027", + "created_at": "2026-03-02T15:51:43.888081729Z", + "baseline_commit": "f694892b2fad79da91e356c6280bd86b68720fe9", + "baseline_tdg": 0.0, + "baseline_coverage": 0.0, + "baseline_rust_score": 0.0, + "baseline_file_manifest": { + "files": { + "tests/gpu_container_transport.rs": { + "content_hash": "e3d8b4c7070eb3503b55daa7f013bba02d0a22096beb13eb7002df5d41404b62", + "lines": 226, + "functions": 0, + "max_complexity": 0, + "category": "TestCode" + }, + "src/cli/tests_lock_core_1.rs": { + "content_hash": "5a2e2f81c6637643d2c491fdaab1073189f2c26c0ac05cd6e0a267b169a86ad7", + "lines": 457, + "functions": 39, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply.rs": { + "content_hash": "4f1d614e3fb5124e194b4f2c9defe98b4a1f0c9a23d2e088c21dbc919b51c539", + "lines": 416, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_expansion.rs": { + "content_hash": "24c9d29da75808f7c80dc6080ec73de55bf3b681788b8a4d4bbc8ef3a2cc0bde", + "lines": 493, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_core.rs": { + "content_hash": "6b23213ebaebf35c315cc8c8b6b36d574434ec9561e378484c287df2ad967f09", + "lines": 378, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_10.rs": { + "content_hash": "66d3de64c23cdbdba6cb3d9bdee6971b446e737c2f431691ec0af0c8a62fe023", + "lines": 252, + "functions": 30, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_store_cache.rs": { + "content_hash": "bbc8884fec30a6b4be2c5cf2149d76613d22bc4cfe4d996bcd4f92a3d7669580", + "lines": 158, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/show.rs": { + "content_hash": "4538451f83bd09570bbd07e938a5555815cb5362176f88d81c937297579fef92", + "lines": 399, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/tests_container_c.rs": { + "content_hash": "3e362db276afe5b00807edd1bb908ab0d43ede1ac1e2380756745d1dcee91e65", + "lines": 360, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_6.rs": { + "content_hash": "d66062ef8be94fefd1417d960a820e1f1adf09e2cb1410ada5d04a465cf66300", + "lines": 705, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_hooks.rs": { + "content_hash": "5509ac1dc580a0c8a13607ab1d807295391f6dced6375f2a05ba4fae6589bde3", + "lines": 316, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/blake3_hashing.rs": { + "content_hash": "ccf6727357b9f7774670eba775bfb4ef8ae608dcff6acbf70a4616e73d90f2d4", + "lines": 36, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_operational_ext2.rs": { + "content_hash": "fdeba2e3ad4a85d5d5aeb8d0718440d13adc7c090c8cd91276ecb23f210bc43e", + "lines": 556, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_4.rs": { + "content_hash": "17f18eefc5dd9b6f13a4e6173a4f78c90284e9b4f98b0d95038f4ef4d0fa8717", + "lines": 521, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_2.rs": { + "content_hash": "7f31373720dd7f00b8b0cfc724d9c0eb4ff9cb93c8172527b3899862e2d475bc", + "lines": 707, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/state/tests_encrypt.rs": { + "content_hash": "07bccfcf40e2b5ad38e718da89204a331512f0c74e8c13dce22e6864e30bc5ac", + "lines": 61, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_validate2_c.rs": { + "content_hash": "4f9cdcb7db8755584f85e8c040c3451d3a69b8672a6c675b2871de7580838277", + "lines": 188, + "functions": 18, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/cache_exec.rs": { + "content_hash": "eb1d3d7a584cfc38ebf258302c78b43ec08dfa5eb1c94c809bf5e8f46665f29b", + "lines": 254, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_store_import.rs": { + "content_hash": "102b2669a47ca0cb3b214d03010604a50de4d039e80eb4e94b4ba2b92824c7a7", + "lines": 111, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/store_args.rs": { + "content_hash": "10d68eaa23db6deeceec6e5a53b97988042941256d1ae44aaaa7a4889e0c4869", + "lines": 250, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/drift.rs": { + "content_hash": "6ff6e37736702b9237f75821c99fe3d39fdb3d9996f61a8dfc750ff94c93320f", + "lines": 331, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_diff_cmd.rs": { + "content_hash": "e57e4cd9dc1058e813d4dc380a24eab862caa0758b90fcad6d828ce195ee13e5", + "lines": 497, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/parse_and_plan.rs": { + "content_hash": "e02dd5813db8ce9426d3038a24a8cbd129e753de4e57630fbaa872b686c7a10b", + "lines": 95, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/planner/tests_advanced.rs": { + "content_hash": "b622cf123d06945e5dcd11ece3b4c8a67d1add1b535c4d2f3cc4dd14c11b9805", + "lines": 265, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/hf_config.rs": { + "content_hash": "69473bae90f1e31f7888afc480eceba0ce62a3188f44f2727bde0830c0767bab", + "lines": 293, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/sandbox_exec.rs": { + "content_hash": "81497fc856954a8f238808fef3d031046141e36ca6ff229d057d28c8d31addd8", + "lines": 322, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_apply_b.rs": { + "content_hash": "eaf6a58fdb7433433dc3f4414708a46af1b614fd5e7566fbd5aa37aa2169f917", + "lines": 361, + "functions": 26, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_bash_provability.rs": { + "content_hash": "fb5b01227d3d1ebf0c4b2b25a9585c3a3314a1dc8e3bb3917bff8ef1c7b6072a", + "lines": 137, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_status_4_c.rs": { + "content_hash": "3cb668f82e29559aeee7bf75908f8190621ef88a0bcbf38ab26222f450152862", + "lines": 476, + "functions": 56, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_waves.rs": { + "content_hash": "982bf7d6f02720c27869d8e00dfd8eb3868b492a65bac78750eedbaf380ddbbd", + "lines": 459, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_dispatch_3.rs": { + "content_hash": "100af1705a0d16182fe5a8969d0ca78019e0a877b49569b55e27cc654b33b0c9", + "lines": 501, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_remaining_5.rs": { + "content_hash": "67ff6948936e96d24450ec9fd9a80dcba42f9949406834c38922b4ae89286d88", + "lines": 475, + "functions": 37, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/store_executors.rs": { + "content_hash": "d6911852f2850e6b65bf84434172400be03adf5be7d3dc8a870cb7dba6caef28", + "lines": 385, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/machine_wave.rs": { + "content_hash": "64b36b0379cd03bbed53ef07d45f7c1dcd8681a58ff7a8fdac5b08fc40bf029a", + "lines": 210, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_validate_transport.rs": { + "content_hash": "af826465479da479476baf68a2514356e913912de11873d61532a915562a1657", + "lines": 379, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/hasher.rs": { + "content_hash": "4a099da8167b27b580663b6be81f6964b35d00c5083a52c4396481338077d97e", + "lines": 93, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_2_b.rs": { + "content_hash": "a1eaeaa40f75ae55def5722999b1227c8521a27c8218d074cbfd6b5e6c3df93a", + "lines": 476, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/tests_proptest.rs": { + "content_hash": "0eb89718248287a3dfe83e3adb93336309e3831ae0d267cc00b660d9b06e7889", + "lines": 76, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/codegen/tests_dispatch.rs": { + "content_hash": "5b506a1421a453948b549e4863516566fbb8877a1c38da5119dfcb97ad105c3a", + "lines": 245, + "functions": 22, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/status_args.rs": { + "content_hash": "b2df8deccc2c8cd18bb80be47098e390cb5dbf7cd6a16c74163be10113c56180", + "lines": 676, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_transport.rs": { + "content_hash": "1c444c1c80a71de6090374a70fbfae8059293bda45902f8ceda4ba8c6a93f47c", + "lines": 212, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_check_1.rs": { + "content_hash": "c973bc13a84441411cb93e5fd8321693edab02f864f5e042455f368cb350c0a1", + "lines": 482, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_transport_3.rs": { + "content_hash": "5db5283ea634c9728bf749c2a68817a5460d41466c4128cea901d7e833dfc87e", + "lines": 496, + "functions": 29, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/reference.rs": { + "content_hash": "c2e29b14ebf4b4fa1e516a86b4a0b8dd7913e73d566f27d15a9fc571f9b3ecc9", + "lines": 80, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_visualization.rs": { + "content_hash": "2226cd8758d6b12cffe2ccafda43f34104bfe7939d93bcfec710cd07bcc216a3", + "lines": 313, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_5_b.rs": { + "content_hash": "f53c35dfbba541b5314c96e465bf4d70f91cfb37dfdb542490648323d960f409", + "lines": 474, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/types/mod.rs": { + "content_hash": "03c03d2a2752ede3f9a5d3d56726cc3e448f874db26732c23f6c26f859565256", + "lines": 30, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/purifier.rs": { + "content_hash": "baa6efd98650a7215e3625953387dee9e5dd2124122d2bdcdc5000da2200c967", + "lines": 91, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/mod.rs": { + "content_hash": "3534660afbd68852179095bcc91c867aec2e4c43c5a8567ae7ff5a5963553a99", + "lines": 587, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/validation.rs": { + "content_hash": "8346d643a4450c0aa664b04298cd5e3b8483e74ae34344148daa81d625359f30", + "lines": 118, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/recipe/tests_validation.rs": { + "content_hash": "61a0c94cfe03eb4f564a727aa353bac5c17c02795165714c76cebb9b4e57ea5a", + "lines": 434, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_validate_core.rs": { + "content_hash": "a5ab48338111aa7ee34630a1a0dd623d6cd650ed57cd04b4724c88abac46be67", + "lines": 507, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_7.rs": { + "content_hash": "b53d80fc3bb932221f9f7ac428f3b0c9e3841a0e908ddae73f407958e5be08fc", + "lines": 703, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_show_2.rs": { + "content_hash": "bd627925118bd47ac5bbbca0b90951c6fae93b5bbf1617a2ab27dd5bc6a8f0ce", + "lines": 225, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/misc_args.rs": { + "content_hash": "523094e0263ddeb5241d7d804636081e17fc86d0dd6ebd6fd63222fe7036dc50", + "lines": 349, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase69.rs": { + "content_hash": "2f2bcf585b5143f5b20d41afab3af4b82173d27fc481a5586adc2e418465110d", + "lines": 280, + "functions": 24, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_mount_b.rs": { + "content_hash": "0dd5ebc9614833d1502b0cabcb8b4c027b9b03da239a7015f2daede897b5d563", + "lines": 249, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_graph_core_6.rs": { + "content_hash": "5519c2dd3380ae47ec49f8510e654123e544f501bfd99e62cd82b06a809c0aba", + "lines": 312, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_reference.rs": { + "content_hash": "c49c2bddda5b11f68be69125f09c88b8cdf5f063de0bc3175c9feb09b9bf0006", + "lines": 123, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_file.rs": { + "content_hash": "b04d499f3404375fc6c01ba7bcf748f8d33f5c515086550b602d3b7f84fe7ec1", + "lines": 308, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/recipe/types.rs": { + "content_hash": "3fdb12d938b47d6eec1f737f3bec57f30ddcc53e293239feae792dd37d1b8823", + "lines": 65, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/recipe/tests_integration.rs": { + "content_hash": "76bdc5f3c0d88749442c9f0438bd278b9c9a65f76aa3ad2210ec0162b1f773ec", + "lines": 453, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_misc_3.rs": { + "content_hash": "12d7d262f0c2b2c8e449e681dd8f262362e21237040e8da02a8deecf2d527a42", + "lines": 428, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_insights.rs": { + "content_hash": "c202889e1711fc0d1c94aa52e338515e5dcb07ecd74e83f12960bce19ffe1f20", + "lines": 350, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/ssh.rs": { + "content_hash": "e7bb315129a19f0cde6b1f62f0dbb48ec900f31d719affa4474ad1812dffe4a3", + "lines": 202, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_ownership.rs": { + "content_hash": "8c38dfd3544fd20c954d421e06c76df90cb952ccec3f302d02956b2146096460", + "lines": 610, + "functions": 28, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/observe.rs": { + "content_hash": "b9dcc21216e088cebd16c810444f8fd4534ee871fb5097886a30e14f62b83e71", + "lines": 363, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/copia/mod.rs": { + "content_hash": "0e23b4a219ca632f3478d22ef3c04c705251af4838bc344c1e7870ef26b8b6db", + "lines": 239, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/workspace.rs": { + "content_hash": "d8b9e8bfa055def6a3546c6467ca5c956337bd0df23c6a27449ce14553cc410d", + "lines": 159, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_fleet_detail.rs": { + "content_hash": "866a7f5e541e1b701ad06df209e70e9849352598fe811a750ac45386f86dd546", + "lines": 483, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase88.rs": { + "content_hash": "cfa8ab8cf5825d7e35be208707abdc2be25b856612f93fb9945ad1990a248240", + "lines": 313, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_resilience_ext.rs": { + "content_hash": "6843520429a2c1c6194e7e26338714bcd0fdb8fc6d348e0eac2a062f07efe26c", + "lines": 352, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_sandbox_run.rs": { + "content_hash": "5f701b77734afb259e8e1cc39173f67ad8c8e9dfc57ac8abe60544869ed6e3bd", + "lines": 229, + "functions": 18, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/store_ops.rs": { + "content_hash": "8f1c09ef38818d37d499deae48880fce98e537ec88ed2f717a18775b67cd1f72", + "lines": 311, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_6_b.rs": { + "content_hash": "7e2a14df6b54e692c97b64d08ea54685e4e3cf5ad33a56fe6722ef70de1ede3e", + "lines": 474, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_validation.rs": { + "content_hash": "5bf7f82e7efcb46043483e45cf4bb0fe7ca327446b6b8b95f73a24d98a20a383", + "lines": 492, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_show_1.rs": { + "content_hash": "146e30fe694909412f1d8a3157c58e7c8269c41ce0c7f35dc7e817d881833ab4", + "lines": 418, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/check.rs": { + "content_hash": "ea85e4683f4490afc10d126fb3ebcd379b982ae73f1abf8c68380c7c2281f838", + "lines": 299, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_misc_4.rs": { + "content_hash": "a60982c4decfc1da5d2ed6e906ab84833f3c067340e77250c8498f93b290409a", + "lines": 282, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/tests_dispatch.rs": { + "content_hash": "f8aeeb82af4295c3640425dc973d3fe86cb45df833613c5d243f5bc976cf4cdb", + "lines": 394, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "build.rs": { + "content_hash": "d68c4b581bc2211c97f952c4cd1aca94426b84e419e52071a421118e381f833c", + "lines": 9, + "functions": 0, + "max_complexity": 0, + "category": "BuildScript" + }, + "src/cli/commands/graph_args.rs": { + "content_hash": "1ca088d8da750f957172e6d6fc1fae080a39d0f03c25448ff2136941d70aaec4", + "lines": 496, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase106.rs": { + "content_hash": "ab55ebf79c9fc973a5a13a5bc5836d5690ad4f085c37fcf797aace755acfea91", + "lines": 207, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_misc_2b.rs": { + "content_hash": "d5b42c215c27b1e08c7756f65bb265500ba10cd24bed9da74ed294ce1cde1ba7", + "lines": 452, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/docker.rs": { + "content_hash": "304c938d197087b019e5ef65b74eca68511002b2e9b60a544344c659ca1dbdc6", + "lines": 88, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_security.rs": { + "content_hash": "534f8faf855d2ebe94871452b0e993c762ba38be7127c95f198d3f6e26dc8c49", + "lines": 436, + "functions": 28, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_substitution.rs": { + "content_hash": "502b1ad43ed11914f569118f091a4569207765359dc2282fa5c95340e026d631", + "lines": 279, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/types/state_types.rs": { + "content_hash": "77c870181340cd507179ef384395887fc0b16b2c9cd5c1ebbbfe920576174ba8", + "lines": 298, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_security.rs": { + "content_hash": "5d1b6687847ae9c6e7a567c84429575f5119a37a59e1efd0c0a38291e62cd054", + "lines": 523, + "functions": 28, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_9.rs": { + "content_hash": "9595bb38a7b853a08bef9958a0dc8652676b31974accc7cd153953e064f65ec2", + "lines": 585, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch_notify_custom.rs": { + "content_hash": "f8037c4ca348c06dc50eb5ee323d77e9412fb370cf0c5299f5b9716b334488d8", + "lines": 427, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/path.rs": { + "content_hash": "e29f0f409a8c4e2af98e7e4a0af071d9b72d16b0cb7c93187f14a57956f5db66", + "lines": 33, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_intelligence.rs": { + "content_hash": "7d8eeb261c0ea722ff0134954f29b9742ef87ae24b9bf2ea78290081e5d3aa25", + "lines": 591, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_topology.rs": { + "content_hash": "7a8a8a0e3dec311df91ea693be873441b2d0db8b81dd09e33ab3d94521411888", + "lines": 484, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/mcp/tests_handlers.rs": { + "content_hash": "728f0143b27784c3eb680457f9664a4154a1af6a6662bc44e0abb06f699970b4", + "lines": 228, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_status_7.rs": { + "content_hash": "d3f9cf0e6a16168528c207b05a4896c2a337e3e63097caa895344ea66e8da5e2", + "lines": 380, + "functions": 58, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_17.rs": { + "content_hash": "7c0212f2ea73638a6baab961322bd7d790910205185aebe8a5a5ead6808b3719", + "lines": 586, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_chunker.rs": { + "content_hash": "f0cc30924b1441600d59602f94906775f5a056ade2dd6f6f4c3c5cb9f412e675", + "lines": 136, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/profile.rs": { + "content_hash": "f9e15c83686dfd5b0bff531913bd671911c4954ed06050b596785e6a84f6a110", + "lines": 117, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase71.rs": { + "content_hash": "6f4a1d72e31d38a48ab0a78dd51638a39bb062d8e9cdef372efd051c655c0abe", + "lines": 279, + "functions": 24, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_ordering_ext.rs": { + "content_hash": "59e95baf8c83c9aa4e209c27a5513debdfb64a4e08693d245d77735b0bfc9100", + "lines": 270, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/helpers_time.rs": { + "content_hash": "3cc6c787859c42c701962a8943fb8d48c502416c59af9add56c40b500a1b278e", + "lines": 82, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_lockfile.rs": { + "content_hash": "0365f4c715e27d76c55d45058286cec808c70729a2d965ced366f4d3549f19a1", + "lines": 200, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/drift/tests_fj036.rs": { + "content_hash": "ce89d4858eb542c3e505c8bd744c9ceb7d43ff802fbdf172f084bd088b239aa5", + "lines": 236, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_policy.rs": { + "content_hash": "61be353f6ee2e40b9e535c856ebe1c0de628f50f5c1a4b1750834c72b7b9c874", + "lines": 258, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_dispatch.rs": { + "content_hash": "6358cf318479593cf597f419d64a74af27bac5f881755714a645d7abd9f4e972", + "lines": 466, + "functions": 29, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_show.rs": { + "content_hash": "c359a181ae6f3ef222eef0553c6d2c97aeb833b8c5cbfcac40da7f46bc9d269f", + "lines": 248, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase78.rs": { + "content_hash": "51ce6b926ea80c7e21546cef0a5f422ca8135e8087f355155495a039d77cf285", + "lines": 289, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase90.rs": { + "content_hash": "e9ec934562b29f5243ff4ce89b3d1c0d5ec5010fa5c8b7b0a10e330c1b86050c", + "lines": 309, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_5.rs": { + "content_hash": "bb5a8f1e67984283ab1d11ed7eaa56c715f6b8f760bcc0efc73792349be31b8a", + "lines": 585, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/apply_output.rs": { + "content_hash": "a34f54cbc1a73ab2186d7e7d1faaa0fc8d8e0fdaf952f551aaab6200a47d6f8d", + "lines": 404, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_analytics.rs": { + "content_hash": "8190e30cea38bb3474e443956876f16a86b1b6670f8b7adf1ace5e5745f99b05", + "lines": 450, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/mount.rs": { + "content_hash": "c2a3832d37383b154b7771f9a943d0ff31758f4dd6f7367ce8f83bfef994dfd2", + "lines": 72, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_snapshot.rs": { + "content_hash": "c2a2e43628b0107466662faec0816f1055639d40663df4b04855941969b1a437", + "lines": 176, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/subcmd_args.rs": { + "content_hash": "f30161fb246f830e179318201829d0d887db3d017b98a3d18bc50ec637f33e24", + "lines": 120, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/planner/tests_helpers.rs": { + "content_hash": "20e2adedc50de5de8155b3f1060372f90561cc39b21bb5bcbfee8b85718daac2", + "lines": 90, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_health.rs": { + "content_hash": "0f9113539d8a95272807eab2218080651daf1ddf3b8cce14a28b3d2a4daeaa4e", + "lines": 480, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch_apply.rs": { + "content_hash": "a18773bc1739ead60e53676aa95f738ff93001233d0d113214c56a20231e944b", + "lines": 568, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_doctor.rs": { + "content_hash": "24fbc7d8a065ff4bd1bd7380595e8cc5e5cbc9db2c0fb91e1a2a2ae8a3ae1455", + "lines": 178, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/test_fixtures.rs": { + "content_hash": "51f211f7c40ee50f9a04e7fbec3829c9349a737038a51803046a47e68842fe36", + "lines": 67, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/types/policy.rs": { + "content_hash": "9669a0f635a6090ccb2b222823b3632367cd5c303e24c2f47c33c2430c0114ef", + "lines": 118, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_1_b.rs": { + "content_hash": "33221eefa354e0482515d3ac44909c8b218d54435078814040b93ddc6f1d6f31", + "lines": 208, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/network.rs": { + "content_hash": "b1b8abdffb20b6563eb80db130032e0cc1f92f3e86c28f8917d6082e6e211807", + "lines": 535, + "functions": 37, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_1.rs": { + "content_hash": "f5ddacf24be97d134f24e95a58e5f1300c3082766da76ad935e1c7e51fc58b77", + "lines": 701, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/planner/tests_determine.rs": { + "content_hash": "518d489ffb309fa04912d0603043e3a493a8dd735d627d930d2dafa8e267a504", + "lines": 159, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_parallel.rs": { + "content_hash": "f82bb8f72e4d6b25694ffeb7abaa01e6e77934ee96fd2b897ff6845fb18f6582", + "lines": 404, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_path.rs": { + "content_hash": "28b2dc28f29734d1a759e39bf9b5d9d838b0d0bb23a31fc9c3ec7c9080c36b46", + "lines": 95, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_b.rs": { + "content_hash": "022ccd86512e794a15c77242c1071530dcb99d24620ee43ccba398d0a79802cb", + "lines": 369, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/model.rs": { + "content_hash": "b07c57535ce7c047b85d0091cc592536c1bc4ee97e4912f8da242ae71f8514be", + "lines": 329, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/print_helpers.rs": { + "content_hash": "14fab206c24dde8dff130d982296586067b476a1fe46cdb0d4210b463a7bc87e", + "lines": 241, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase68.rs": { + "content_hash": "c0484108b3b14c22a09b33edec63ae0643cd1fa2f18068a72f57ca7d172d8468", + "lines": 209, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase61.rs": { + "content_hash": "3c0a05cbc05aeb4276e2c75cd0e8a68e0d2d41b870e7606fc4dddee23df30db1", + "lines": 195, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/contract_coverage.rs": { + "content_hash": "5daf03a49c3624a4792586195749e18090ccf6d639732dd32efcfc1dd0b59b2e", + "lines": 122, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/tests_eventlog_b.rs": { + "content_hash": "34a596c285b3642f888d17dacc616138f36a5c6388391a331485fa09f26c4802", + "lines": 270, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/tests_waves.rs": { + "content_hash": "43c4ea3a7fe427029c0a4eff6b84179b4553297a31a7663010151f43ba226022", + "lines": 144, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/drift/tests_edge_fj132_b.rs": { + "content_hash": "703679ec24f82db736126262db62b34f04517ff4e038279669c874dbaa646fb4", + "lines": 272, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_compliance.rs": { + "content_hash": "2c77b5f6328ed8db8bdd89c4ef5821f6af04f93116f92c9f8820286a4e5247ab", + "lines": 347, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/repro_score.rs": { + "content_hash": "868b818e86f30358f42e560e49346e66426f57871f68a406006e9028b2fca262", + "lines": 119, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_destroy.rs": { + "content_hash": "ea1504b5a4cf522a8231e2751484ce9ddba9155fbc0efa29c74f38cc5b7e4941", + "lines": 374, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/local.rs": { + "content_hash": "42df3372977903d61a060ee4949826793a11e046b38b022b59743c864b4d4f9a", + "lines": 149, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/multi_machine.rs": { + "content_hash": "04b230f6137c1cf850adeb484e49ffe4da9df5899f879ec799441db5ff51d36c", + "lines": 212, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_print_helpers.rs": { + "content_hash": "8ea861672f99ebb214bf16a2f5235442ae438721d22c06efd88d6b4cff1f8c07", + "lines": 183, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase81.rs": { + "content_hash": "ceeb1be347bdf90a1f6618d662a2ee711df8f8a7eb295889934b5374108f4858", + "lines": 289, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/recipe/expansion.rs": { + "content_hash": "83036fee9f0a827503f00b1e4f68d826454a9c419914b30c38ae27f23eec05e8", + "lines": 208, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/tests_purifier_b.rs": { + "content_hash": "88ee77a349a942e64af435510638445d0cbde59a2018af5f591f72d4cb56903f", + "lines": 336, + "functions": 19, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_converge.rs": { + "content_hash": "c714edb89b5d6c1a1f63e42aab552d00fc1dfe4c523a43f514862c6c8f3d8320", + "lines": 339, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase62.rs": { + "content_hash": "6f95ab39861fa1e10e27bd13cc4bae119d295cd71df5f20f2e8e6a1d3f725603", + "lines": 194, + "functions": 19, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_resources.rs": { + "content_hash": "c30a9bd72485e2d4669f36919b1e0498e8fc5510d523dc308b2b43fe8b21bcf1", + "lines": 260, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_arch.rs": { + "content_hash": "940ec9891e074aa9fd5d4805cacba1d4c7b0d269c952d37ebfc9aba403f3f26b", + "lines": 152, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_10.rs": { + "content_hash": "41a6a087a804c30a8cef520b38a978dbc8e73705209cfc23cb9cee7bb37d630c", + "lines": 660, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_ordering.rs": { + "content_hash": "2e61e35656794b31f7833e65bbe6d59235080a09d4f459242812096e7432f856", + "lines": 675, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_quality.rs": { + "content_hash": "28bbc55f377fe73d85db97f42ae7d594ba94ebd2885c2dfe60b640ae93f65fc9", + "lines": 685, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_analytics.rs": { + "content_hash": "9e5ee6bf3a334977ca44c02b677f0e56b00a40d97af4c99ffe41ae12d7fab99f", + "lines": 486, + "functions": 28, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/doctor.rs": { + "content_hash": "ff075849846d7cf2678962e124a8ec7d24b3f842ad9282193d05b1f7e83c1bd3", + "lines": 447, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_status_5.rs": { + "content_hash": "e46802b6e6abde362a1f34bfe75deebde6f8320ba58c70c7a279f28bce983f41", + "lines": 361, + "functions": 59, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_1.rs": { + "content_hash": "a9585baa58750091b28e6495aebec099df26f3b35db61484f16b32f2c3cfc37e", + "lines": 395, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_22.rs": { + "content_hash": "bf279a9d6ae125679a585c944782b7210e25699abf2834e397a1242c0378ed0a", + "lines": 588, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/state/tests_edge.rs": { + "content_hash": "c646c7abf8bf3248333d1de9795e41797d94b5d9398818088aa75b104691ff62", + "lines": 334, + "functions": 18, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_transport.rs": { + "content_hash": "c33ab3fd3cb1a5bfe41ffd3bfdd4ac703183e6fdfa303857a21aceb497216f7a", + "lines": 276, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_misc.rs": { + "content_hash": "5b2ad6d320371f06b95d99256f679fc0820a723116b8bd52fed4a90751bb7498", + "lines": 463, + "functions": 19, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_5.rs": { + "content_hash": "1ee9123ad83ec56284041bdc2e895062a51b76ef3fd764d0a72a64adbfacbbd7", + "lines": 703, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/provider.rs": { + "content_hash": "1e14c29a40c634ac83ecfcc1597d908c02069bbd22a23c97d65cf3489226d1cf", + "lines": 206, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_contract_coverage.rs": { + "content_hash": "1486025963182ecdc9a8d555929e9d57613dc66463f139225f9f477db4753aa0", + "lines": 293, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase103.rs": { + "content_hash": "cbabee64dc0654ef58d19e26d4037ed79847fdf34d04e3b12d51e9cf56b77028", + "lines": 208, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/machine.rs": { + "content_hash": "1016a4470cfb85dfcd868df21fe8086a3b18c842765eab1d22f967aff8f525b2", + "lines": 533, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_remaining_8.rs": { + "content_hash": "c08ba05a5d14178049fc610d8bed82023ae2f09ba65b276812c6c6df1431e7da", + "lines": 486, + "functions": 45, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/secret_scan.rs": { + "content_hash": "6845f4704ed66bd435c620e0dd83b5e3f8bacb65571ee33d76ec9e16d9a89e5b", + "lines": 200, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_8.rs": { + "content_hash": "89614594099be17f2f6a2821b5ad27cd9cf91a944f698a4b769f8f75f7a72c4e", + "lines": 586, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/tests_template.rs": { + "content_hash": "6dc64dac971eaba5ad71d818a09ef20d43bd1a8784af2c8054cdd59506722691", + "lines": 423, + "functions": 30, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase64.rs": { + "content_hash": "d95d5a7569aedecf4c5f7da391965a342aaa6c897069d00986a67b8b41e9a65d", + "lines": 202, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/planner/mod.rs": { + "content_hash": "7c07701fd6517c704b28c3dc0d946e0cd5adc8ffa371f09449e748734402f036", + "lines": 376, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_sandbox.rs": { + "content_hash": "53da5a42b62345bc14b3ed96491582b76080d76c3050b9be2fb06315ca9e2fb8", + "lines": 218, + "functions": 22, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/pin_tripwire.rs": { + "content_hash": "6642a1bbc18f4ff12b66e49e0e7751744ded7a5a4fdfcad6cb8aa991bb6bf3d0", + "lines": 117, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_6.rs": { + "content_hash": "22c4fa186d85c509e018a731fd3ccdea1d2ae83cd9152786fbda97376fd55c68", + "lines": 401, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_convergence.rs": { + "content_hash": "b634cfdcc2e5968ec6f0de4b3047422ebc5496d1a13d9800add776150d37f093", + "lines": 495, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_intelligence_ext2.rs": { + "content_hash": "f1d0f601b3f665c3dc7dc2314caf87827e1ac030ddf81de17aad5e156b307ff6", + "lines": 624, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/service.rs": { + "content_hash": "b196fa1fe260d1ee4fbe5490d9e73fb475310871a762cd9962aa81be2e6bb56b", + "lines": 81, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_sandbox_exec.rs": { + "content_hash": "8fdfb88e74621caec25f8073fcf3fdbd10edd452448f4b6b265c55ea9b466ffa", + "lines": 248, + "functions": 18, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/mod.rs": { + "content_hash": "4b7378d6af1834063b09a80e02fd37bbea24ca7aaa934cbd5b0decd9022dcb83", + "lines": 18, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_maturity.rs": { + "content_hash": "efe035a279d4f04b37e591a91b8b4cf96ce24185fafeb5e967b2a0cff197074e", + "lines": 500, + "functions": 26, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/store_import.rs": { + "content_hash": "34dd7a36e896a8fe1df30d590376cb8ca314cd4479d41d9e1b29bc6177b5b4f5", + "lines": 191, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/lib.rs": { + "content_hash": "e0b8dc7a5e97c44562a039ac02eb9134596d8ad98973a25080203f32a92e1067", + "lines": 12, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/recipe/validation.rs": { + "content_hash": "ffaa1f188e22ad0d1fa3d77f17273174eddae18e8e62cdeef3cc7272b34a6dce", + "lines": 36, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/convert_exec.rs": { + "content_hash": "95e217ec1fb25190a3dbf55136ef9ff656e46991df733599b93fab3bdc06861b", + "lines": 180, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase91.rs": { + "content_hash": "fe1cf071401d8d2bdbb1229b8bc4dda46fc56537d1cb101079980bfc36a4b4fe", + "lines": 309, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_profile.rs": { + "content_hash": "5910625e51426f1656aca1054eeabf43b8f0c113b4881fb681e4283363b59bdf", + "lines": 104, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_validate2_b.rs": { + "content_hash": "974a2b402c5e7bfb983b4cc2cba4dc2ad11b7a87639177521a59d8501ece79f9", + "lines": 386, + "functions": 38, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_status_2.rs": { + "content_hash": "aecb4e8084ebe53396f124fe0af98547eeca2473f59238fb6a3ebb5f4ed8ebfe", + "lines": 453, + "functions": 64, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/recipe/tests_expansion.rs": { + "content_hash": "08d5f5a86bead9b806f586ce55375a912d51dd14e8ef67cb04c5ac1bcb228d30", + "lines": 448, + "functions": 22, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_misc2_b.rs": { + "content_hash": "f18f96451cb4e19cefa0a985dceb3afa1871798d2e3be85141e1685234c17263", + "lines": 298, + "functions": 27, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_package_b.rs": { + "content_hash": "e00b5572eb5f2d0f5b2a128668f2e109598a73534c7df084869c90b43ba34840", + "lines": 289, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_apply.rs": { + "content_hash": "0fe8601283da0f753ed01431e5401bab3b82c7243b495696ba658cb24b9d1766", + "lines": 427, + "functions": 33, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_1.rs": { + "content_hash": "3b65e06a29308f5383fc8b645ea2e518932fc2f97a6c4a8ffa4f55bff7eb0626", + "lines": 514, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/apply_args.rs": { + "content_hash": "d8a4ea7b767a9afa7d1ef57e7de87dd0a3d3e9247f7822262c6e2084026c0e7a", + "lines": 680, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_lint.rs": { + "content_hash": "5cb83f7f55532c360a592d010ae54ea7f35787782a84aa139281154a04bba24b", + "lines": 196, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/arch_filtering.rs": { + "content_hash": "0c7b4be49e9498d6b6a8e4277cf7ceb27c84887a8f2dfb8224b20f4cbbe2083c", + "lines": 125, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/state_management.rs": { + "content_hash": "f59be77c50f3a54522dee4c421f271bba4e36033ec2c0013173368733f33d7a6", + "lines": 125, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_predictive.rs": { + "content_hash": "2f34cbe8058c7aaa467db4ced6efa82498cd3c825067615f25616ee8f8f4f381", + "lines": 489, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_sync_exec.rs": { + "content_hash": "d889f6a4779827c744d4bbce4f87faa6ba8daf84be8284cbfa7f032c394e8923", + "lines": 229, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_status_1.rs": { + "content_hash": "6bec4145c05fa7caaa3d05fdf3515f0782120a8385406fce9df4f4a3c09cd896", + "lines": 467, + "functions": 65, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/mod.rs": { + "content_hash": "8d9bb67095febd89ec5e0a9a6e0f1bc97a1454c28d674f36dc5357cdc8f8eeae", + "lines": 240, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_helpers_state.rs": { + "content_hash": "bdaf0fef198566aa4ea317fdf578d0d5676e470962159a2bfe61af922a2af1c0", + "lines": 147, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase87.rs": { + "content_hash": "1e84fc118324487ca1d725601d4484cb4ffd00a7ae1757a99e8f754fee9da4ac", + "lines": 301, + "functions": 24, + "max_complexity": 0, + "category": "RustSource" + }, + "src/main.rs": { + "content_hash": "031362bf1ad257336bf8080cd66c53ebbdb5641dba93aef10f20443af6541acb", + "lines": 33, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/data.rs": { + "content_hash": "e38af36163c68498a96ab1edbb077a08efcad8e2a2e86cea14eba74590b70dbb", + "lines": 139, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/store_diff.rs": { + "content_hash": "3604892b9c7259ae2d773fe300b4fb5ab77fb8e982e0188e783e913517c4e5be", + "lines": 161, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase82.rs": { + "content_hash": "fa4cef482998707dd19209834ba250b6a3dea79eb38120b118e29795c01b861b", + "lines": 289, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_3.rs": { + "content_hash": "037b95ee9ddbd52fd27e5076ec61dad745a62a96c65b190dcaed86b54f7a2164", + "lines": 443, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/kernel_far.rs": { + "content_hash": "bafdeac640d0494aae58e3ae0512cdafacc7b6aacfa43c014bc085e4a238a600", + "lines": 139, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_init.rs": { + "content_hash": "552cdc1d8ac19333528fbeed665afedce64d44441cbb2926f85b32aad32f032f", + "lines": 551, + "functions": 26, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/planner/tests_lifecycle.rs": { + "content_hash": "011ee350e3430b19f9132cdf7b8a760c3e5ff254697a5d5c04abfa2d7ea2746f", + "lines": 224, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_lock_core.rs": { + "content_hash": "70adbb33a1eadbd8fcd553e18d283c32833e30995e4c32e7614d648c4c708b88", + "lines": 467, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_store_ops.rs": { + "content_hash": "ff798a3ac2085a89bd94731c6894851de85ce3393a5db0cf4cf400e6cad078cf", + "lines": 244, + "functions": 19, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/codegen/test_fixtures.rs": { + "content_hash": "3efa8147df7d4144bdabb3ea06f747bc99c10d77ff6f78b5e405342c5724a99d", + "lines": 331, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/convert.rs": { + "content_hash": "02a72e67c50e2ff057114ec4d407d4de92e92e5b54ebda75c477862fcbfe930d", + "lines": 221, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_edge_apply.rs": { + "content_hash": "eed737476c55bb2a27aa55e9ab9172157c484deb7a587f0755efd51c74e71c44", + "lines": 465, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_4_b.rs": { + "content_hash": "b7d3a7a8f368bf6584a0d85fc9da929de145f1f5900bf30202a16af31b0a4f3a", + "lines": 476, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_resources.rs": { + "content_hash": "86864584590b7104eb79dfd942dadbf2edf0539ab749e174a78d2419452cd311", + "lines": 376, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_store_pin.rs": { + "content_hash": "9b1688c31c9ef9884c5450f1b704d487514270fc5f94ade48a1b4e8cade08a4b", + "lines": 178, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_trends.rs": { + "content_hash": "64ba6ab06691fb40befafabba07c1ca9f42ef1b040dd8a5fc6949d7a03bd9aef", + "lines": 412, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_resource_detail.rs": { + "content_hash": "fd5b137527c1c122fe0a93aedd0df549c38cc84ecdf1d8193667b4bcf74012b1", + "lines": 466, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_hygiene.rs": { + "content_hash": "96676f26059702286ab9a5351f1c895c82a76c22dc3aee5661d13b9308f80174", + "lines": 497, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_1_b.rs": { + "content_hash": "d284dc840647a1e7cab3b623de997d50a3263d31ae77db2939044b18a7b096b9", + "lines": 474, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch.rs": { + "content_hash": "57127062694b8d05fc282807ed5da44ecdcb454a250cb19504e13f39593f38d1", + "lines": 141, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_6.rs": { + "content_hash": "5ad945ac1b08da3090f272806b36e6632baebf13aee0dd6a4de1adceb03395b8", + "lines": 582, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/mcp/registry.rs": { + "content_hash": "75647eabf9f4d7b78af10988944732a965bec55d05593469767749cd3d54866f", + "lines": 244, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_validate3_b.rs": { + "content_hash": "72d2a8a790bcd923af56a5cdf391ac7b36fb20e6165bb3ef0ebf7392dcd45131", + "lines": 366, + "functions": 45, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/codegen_scripts.rs": { + "content_hash": "1aec4a1f7fbd71e200736351449eb48da43034e7c29c4158c6253d4ec46f47e3", + "lines": 231, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_7.rs": { + "content_hash": "513e60f3c6deaf043d81e9d38464483ce7cc79d4fb2cf2e6c4b5b26287aead7a", + "lines": 585, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/mcp/mod.rs": { + "content_hash": "3201dad7d2470e767c9e463c855586d805719b6af472a51bf914d540e6d92687", + "lines": 21, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_3.rs": { + "content_hash": "fa92eb256aacdaa41fd7b5968e61bc3caa011efba331b28f112fa5425904451a", + "lines": 475, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/score_cookbook.rs": { + "content_hash": "67ff3d234d87993e17cf72b00da5d0b9c2c3237f7f09ff2a656c19a60459af18", + "lines": 104, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_2.rs": { + "content_hash": "b299404221428f44c430c474ff6684c540df14375ce9b1b68d648bc864bf0dc8", + "lines": 426, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/derivation_exec.rs": { + "content_hash": "c4db2a22e9bd8f74b45f19e88050cbadff336e8b002b8a75d0ebdf8686f0ee0e", + "lines": 352, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_args_extra.rs": { + "content_hash": "7b4da3d7345f30e8e6a1bf7fae6e84e3c3fbf5979f1a015fc41f4094f5af94f6", + "lines": 538, + "functions": 52, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/plan_args.rs": { + "content_hash": "9a317401d68dba54b512ebdb9bda678819a39a4d05243b89030a37bca0f46683", + "lines": 85, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_graph_core_1.rs": { + "content_hash": "b996492b79f04f8f625bd3b70571a2f5141cc8abb40404afd8256f97d6a1af27", + "lines": 1033, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/derivation.rs": { + "content_hash": "855ef7ff60508ae454f11cda81341dacf9e9f8081c6da2a07dc9adb8f71d98af", + "lines": 209, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/lockfile.rs": { + "content_hash": "be61e70b63d980a44ccc9a57da9cfc04fc6cf842cea0b3724d756dda6c304caf", + "lines": 98, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_9.rs": { + "content_hash": "12615ab2ab0e95d47c3c356ba5e0e6667a55ca386a23bbac175113fc13e436b0", + "lines": 528, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_docker_b.rs": { + "content_hash": "0a11c4be71d555814a46be0622c4e4eec35dde6828a1efcae0c19dab8c274fa8", + "lines": 395, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_meta.rs": { + "content_hash": "9f59758cea8e4a8dcc203505a580502736d6f22804d7b695352b0c2795cd307e", + "lines": 130, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_operational.rs": { + "content_hash": "c67f575d0b6b37879d87be18a304c51a63b4d127184f0c0b39a4e70ea8c9ce93", + "lines": 529, + "functions": 18, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_store_convert.rs": { + "content_hash": "e003bee9b8fba364134cef39f2e81aa6711b6d8e3777690dc846c8e523c4a34a", + "lines": 177, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_args_2.rs": { + "content_hash": "e91f9e265dfb772ae8daf143fdc99fc593cdf114e61451e5e0aa1a3f19aa0728", + "lines": 479, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_observe.rs": { + "content_hash": "acb6154c8558487eee51f8b71d5320750e5c073cc58643ffcd11f53b2e380db0", + "lines": 413, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/tests_helpers.rs": { + "content_hash": "64bebc379fca0c0a1369309d939cc755d17120891ca79b3a9a99971cb7fce950", + "lines": 216, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_kernel_far.rs": { + "content_hash": "0c3f0f3cd5084c953a428b20d2350063bd53140d61bdeece477c2ddd62087356", + "lines": 404, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_package.rs": { + "content_hash": "d4b770875ea35b767d9c9a4d14e1a6bc544930f4414f48114f6dc11c1472f532", + "lines": 281, + "functions": 22, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_lifecycle.rs": { + "content_hash": "e2aa32b5d86669dacd3372184338375a61d4a42d0359a6e206aee5bb0c1bd8f0", + "lines": 285, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_closure.rs": { + "content_hash": "53a8fccc979fbf0bc31d2ed0b0fe0b777a91638869dab844daf3c383240db9bf", + "lines": 183, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_7_b.rs": { + "content_hash": "bd7f7b8ac3b3ac62a3c27a9211af78ca6cd5ced4eb5cdcbe1d807fa6f3eb28c7", + "lines": 476, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_show_3.rs": { + "content_hash": "69c523ec10fb607ba10cfb566444444314dd0fcb96954a26dcbfd35a9f72674a", + "lines": 256, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_validate_core_2_b.rs": { + "content_hash": "22f5f3903a07db1e20a30566d978cdff3aa8f6cd345360996b237c0fce6a88ac", + "lines": 659, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/anomaly.rs": { + "content_hash": "239d090e52456c1d1579249311e148080231cd73796da9db0bf333f2fbb0bbf3", + "lines": 331, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/mcp/tests_handlers_more.rs": { + "content_hash": "9f521869e1bf0d3061b2311c7fefcdf4f2d9275188bd5604713e252dcd891ad2", + "lines": 349, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/tests_ssh.rs": { + "content_hash": "81604c0180ad81bcfc76902e10c0f90b1737185a18af42ad22b09888aded4d63", + "lines": 358, + "functions": 37, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_localhost2.rs": { + "content_hash": "dd03bc0e3ec79a5fd6befc95bebe05acb5cf0e136166b08ab2906f12b662f2ed", + "lines": 268, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_10.rs": { + "content_hash": "e7a843ea9f0d533ffb309415b24a45c3132dcf8e4b48d21e4850628571201583", + "lines": 583, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/recipe/validation_types.rs": { + "content_hash": "f68276853e785ea6476c231e7aa420e9b9b4d6af0232dc4cf841ac3bb6849b0c", + "lines": 93, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_filters.rs": { + "content_hash": "2c04e083f7fa64028db31cb2d1a0c8181322a6ab0e715ec3d470d1fd986c4065", + "lines": 400, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/cache.rs": { + "content_hash": "b0a9420e9c7cad743ca5ee26f5b366e3f64a3599499f83e5dc8d7f526c2570ed", + "lines": 175, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/strategies.rs": { + "content_hash": "47300be7d021d6fa65d12516cfe21bc9efa2b9d4d14a702f668fbda29deb6362", + "lines": 129, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_23.rs": { + "content_hash": "ffcf1444f241cce57ee0d1b35c936fc474b5749af87bdad1c3b5a254773cfa68", + "lines": 260, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/state/mod.rs": { + "content_hash": "e0762e985be68ee38bcbfb5f03e876243ebd68d9184bddca38da517221441a81", + "lines": 335, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_args_3.rs": { + "content_hash": "6fb37cabbcb7b47f98717eb9c3906331482a7e7d0da85209b773dadeb4e6d401", + "lines": 392, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/tracer.rs": { + "content_hash": "7ee607dfc9017211051711fad0510f80f7dea80cdb65a7f03528ed64ef39f3cc", + "lines": 488, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/mcp/types.rs": { + "content_hash": "cb8c7e82ad98e5597f9b9c97533399eaf4a0b6d108470ddf272d4ed74b10bc75", + "lines": 186, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_resilience.rs": { + "content_hash": "c6fe3613bcb0c1d81ea3370da4237e88a3e0ecb46066f5c9de84aefde1a8acd6", + "lines": 252, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase74.rs": { + "content_hash": "769ca19a23eeea8da2e900c8ab4dca4d1ffcfd0b29c03f9133b8396ef000131a", + "lines": 281, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/substitution.rs": { + "content_hash": "066e4f1a9d041be568ba6528659f4d869d71368af226e0fc99dfefcb717fc79d", + "lines": 279, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/package.rs": { + "content_hash": "7b78ef2be7d1342bc58259a458f848372a8bd2070cb9a0c77e2baf12070457a5", + "lines": 192, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "tests/container_transport.rs": { + "content_hash": "5eaf35999f82182fc8ffcfa7bba3084e607fcd733f8af0ecaf9e2088926e4e9e", + "lines": 105, + "functions": 0, + "max_complexity": 0, + "category": "TestCode" + }, + "examples/container_transport.rs": { + "content_hash": "03a9a741dbcb05d75a335dd97099bbcb2021d3b7badd7cec506d15202868b370", + "lines": 120, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_secret_scan.rs": { + "content_hash": "cc073b7a66b7a45c5db160d8c6f5cb20f0b9031ec777e36916d178bcde9eaf0f", + "lines": 263, + "functions": 27, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase86.rs": { + "content_hash": "153172f7ef3c5139c3921114f76cfc53f40a54d98910d6b36f9f6dbbd6a91413", + "lines": 160, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/drift_detection.rs": { + "content_hash": "6319b9280486dd5580425f9e93df747b1a32d95f0ff06c5bce38f9c0e4ebcd1d", + "lines": 127, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_pin_resolve.rs": { + "content_hash": "596670544d1060d16071fcafd8d4e54ee634df83a3d4497145b0206eb29e1446", + "lines": 210, + "functions": 28, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_score.rs": { + "content_hash": "57a79d5775e1244b3f628ec77fda9295d2c9c2e92cf88ed9a030a9d79f9a1ca2", + "lines": 197, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/codegen/mod.rs": { + "content_hash": "98e75556969ea2b3ab90bc22de30fcbfd8a303426fb88845768c65bee0a7e51a", + "lines": 15, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch_misc.rs": { + "content_hash": "61c9068fcada0637c306cbbe559a6d286b298da3521038558f5de778e1e4a8fd", + "lines": 295, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_core.rs": { + "content_hash": "32b268ebe8b7fdcf7fe1782dec7f04469c435abe99547311182d5e3f5afdfbe8", + "lines": 299, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/recipes.rs": { + "content_hash": "5bf513847e93b5f32beb6ae07e4ae664a42f57ef1693e93b1449c4eb9f3a20ef", + "lines": 138, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/store_pin.rs": { + "content_hash": "225c1a08bd1f8c92618529ce4bc3214abd0c58b601a7a8c7408170d728e959b5", + "lines": 211, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase59.rs": { + "content_hash": "d716283070c6018f6228d6aaebe527ce49d4ab8d1f29046af162ad23fccfeca8", + "lines": 120, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_12.rs": { + "content_hash": "a23683659b99ed53f1d94379a414bb1088617b377ef4d672d3c7523e6330e14b", + "lines": 584, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_quality.rs": { + "content_hash": "2e47b622070cafeb2e130070cf464fd630b104d8b4a3fed3736403a7628833da", + "lines": 506, + "functions": 38, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_compliance.rs": { + "content_hash": "189ea51340b3381cae608da38eeac89e569cc1f7f918b75cfb66d82a9dff6499", + "lines": 208, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase80.rs": { + "content_hash": "e267ae411af084f1442b0496b55e22ff991b270d68e7642f4846bef5f10c9bb7", + "lines": 289, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_recovery.rs": { + "content_hash": "0d4cfff5a848ceaadac787b245e475aff436cf6297353d029a9b79c26e5dc304", + "lines": 677, + "functions": 22, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_converge2.rs": { + "content_hash": "7687b3a9b2fadbb90b1b12c193058eb20f332f8b79000265df647d579eb41d30", + "lines": 325, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/sandbox.rs": { + "content_hash": "935b1ae7b717149c9f30c52e6859ac131dd16e0d25ededda34f1405405180873", + "lines": 184, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_conda.rs": { + "content_hash": "5207a8413f19d7d566942ea05c1b24b717e9273ae0da195c95e8fc4dd68e186b", + "lines": 318, + "functions": 19, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_impact.rs": { + "content_hash": "00544fdc7f7188c598c92156eb38e420e1cd832ce406fcb903a977aa350e6d72", + "lines": 360, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_validate_core_1.rs": { + "content_hash": "c1ec0ef1de015b836d47a38cd392d304595682809b6f8abbeeea5e81a8142d05", + "lines": 804, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/includes.rs": { + "content_hash": "316b75cb0f563a0b3df5e4e18fb2e5a47283f5b73544559bee00e293f58a117a", + "lines": 51, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_far.rs": { + "content_hash": "24550e8b86ecf27dcd0fcb84087f98b1e20953293c06a573be3d0b28b325a7b8", + "lines": 185, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_workspace.rs": { + "content_hash": "6bc034afcb07773cf8fb294368c3d8dd2396f64bfb02ae65d5d524ff35e27605", + "lines": 187, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/plan.rs": { + "content_hash": "5bf39e0a42f93bb8d2f7421ce84fbd4d3689bb9573947f04a3edca3ccf85cb8e", + "lines": 399, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_topology.rs": { + "content_hash": "58dbadcd16996501b6d30be61417f9754f426a86fb2ebe6467302c081a8a0bd7", + "lines": 525, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_18.rs": { + "content_hash": "5cc232e1bbdfa286c5f61b9dcf404152c154bf83e9c19bc49543fbb7df7a75f4", + "lines": 585, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_cache_exec.rs": { + "content_hash": "c405611445baf436a9ffdf7cfd971286b1a7f20564362a648b2d5775956629eb", + "lines": 235, + "functions": 18, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_rolling.rs": { + "content_hash": "cbca7f9c8fa3f645deb82608388fe64e767b9550f3388416630c2d5a233b8aad", + "lines": 261, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase83.rs": { + "content_hash": "9234ec3986faf13c9d6bd8fe87076bb84caab479f5be32081d2b50e7d74b963d", + "lines": 289, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/lint.rs": { + "content_hash": "79fea5af0fb5cb75e072206a20820d9dc06e3fe34e3e626d9992bf84c86fb4f4", + "lines": 259, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/init.rs": { + "content_hash": "b57d142b97eea723fc121ee587788acfd990a51e9422c82d3ee785b2fdb0d2c9", + "lines": 248, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_graph.rs": { + "content_hash": "d6324c03b4c5dcf421b9d0a587e46c4ddd47629af49d78a4ef5351471ce7b727", + "lines": 335, + "functions": 53, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_notify_4.rs": { + "content_hash": "131d6aa2f1ff7d1305bac3fc8a1ae4e0c08aa179853dd625dce26fdb85c50d12", + "lines": 504, + "functions": 36, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/tests_dag.rs": { + "content_hash": "2c13befc9e3d19724bd66f98f9851c85bc9ffad3db5bc12949a471f5be8924cc", + "lines": 287, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_graph3_b.rs": { + "content_hash": "0b53e9dd56f69e38122e721290cc6e0d3a8415a07e0c460f2a1103a3bdcfc419", + "lines": 499, + "functions": 67, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/pepita/tests.rs": { + "content_hash": "a91a0df7f18b27ee5d840ace7036d0e7b75870bcd26749fc7078087f5aaca17f", + "lines": 365, + "functions": 0, + "max_complexity": 0, + "category": "TestCode" + }, + "src/cli/tests_phase79.rs": { + "content_hash": "583375143149ffeb8915a78e7db0cd28738fd9c1fc5769cb620471a90a7c6dcc", + "lines": 289, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/user.rs": { + "content_hash": "94af7591c2ddfc0d695c7055344f255a15e8e7c11e805c5222f6ae6df8b4524f", + "lines": 141, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/full_stack_deploy.rs": { + "content_hash": "56839d0659adcec2a1d782f0008bbc14a9c272f252bfd46bb5cd7dbe2164032b", + "lines": 185, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/store_reproducibility.rs": { + "content_hash": "e1fd38b2cc2ade0444e77a0a2d7310b7ca0d2554f9db3ae5ff1753bbc8ddd969", + "lines": 450, + "functions": 19, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/shell_purifier.rs": { + "content_hash": "f94c295e75a0ac051d88da44468ba898864eb937bfd8edc2409f61e7d0081fc0", + "lines": 125, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_concurrent.rs": { + "content_hash": "d06fa49b373312851955fe8ac459c25ea1a833b9c29adfbc9fdb160e11bd5be0", + "lines": 356, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_cache.rs": { + "content_hash": "1e4c9ebe04fbde22726ab94687dd01bb3fe069daecfa5777a1108b2f966524bc", + "lines": 252, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase73.rs": { + "content_hash": "30cf3a82640c3e614ba7b9dce1f9df02aa4c558dc4f1790f239e8d6c125deb16", + "lines": 283, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_failures.rs": { + "content_hash": "e74487d76644f9f54e751d50cd25018b0339d5b274c12a6a051d7f37269313e7", + "lines": 390, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_helpers.rs": { + "content_hash": "ac376d55982d7b65a4276da58b6e9d09bf96add09cfa19c92116b5dde0b8548a", + "lines": 246, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_hf_config.rs": { + "content_hash": "eb2abc98fdf184aea958e4c5868c7a0f967a227367465aaedd4ad7e992bdb546", + "lines": 373, + "functions": 24, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_purity.rs": { + "content_hash": "a41138df84992ce18b83b566c73f0b023343475e6c450a8ea31b09f956d5b6ca", + "lines": 186, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_2.rs": { + "content_hash": "51da364a4e98525cd2a85ea0e759b0faaadfb012bcadb4a4c2518dc10a0aae53", + "lines": 515, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch_status_ext.rs": { + "content_hash": "38caa2aed92591fe40388046bd7b21fe3209088d0376b921fca0982e63e37c1f", + "lines": 637, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_store_diff.rs": { + "content_hash": "73079617698d552eaa3ce7ba0b6c405be84c718e78eee852ac638fbbea40ed75", + "lines": 192, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_user.rs": { + "content_hash": "948e80757627608afc462218c4f2fc974469f0914f19a5ffe516ca4ac79217d7", + "lines": 473, + "functions": 30, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_helpers.rs": { + "content_hash": "f2c5aee07158277b5539833a90498b0755ffe6f1c50d16256a3f0989016bc7b5", + "lines": 150, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/migrate.rs": { + "content_hash": "55472d0eb74b18c26e56d523f8416c4d51e258223d5ac29ba47d0094221f64a6", + "lines": 433, + "functions": 19, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/tests_functions.rs": { + "content_hash": "afad07b72fb485caea6cbac2f0efce2b0d3c27d9b73008fa8fb1f55345d5f58a", + "lines": 240, + "functions": 28, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/state/tests_helpers.rs": { + "content_hash": "7fc2190767b2cacf33961b927bdfb6be3970becdfd3f787c89fcd4a8e06b95e8", + "lines": 27, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_provider.rs": { + "content_hash": "223070fc681c59757242061bce3987209d1f621c4ba1cfe92d0dd9d5a318de0e", + "lines": 263, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_validate_core_2.rs": { + "content_hash": "8da5adc831bc72bfdc709d66f2bc68dbdc13670c62b7832f11eba6e1c463ab38", + "lines": 805, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/fleet_reporting.rs": { + "content_hash": "0f004041c55291e5130d6b8762217ae7bc3121a309e9f8912ffed6c5ca1b4853", + "lines": 368, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/lock_repair.rs": { + "content_hash": "5df1a01c6d3e651a03ce69af2bce43587e0caae153bdb9650250bab85e85548e", + "lines": 122, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_8.rs": { + "content_hash": "1185e4f85d857d6ec63ecca39b7da844e29f93bc3fd9db14722ca67d425278a5", + "lines": 620, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_weight.rs": { + "content_hash": "67e5cd261fd46b776e6f950d280ec214968c66ceb74a0a906f03327791b9af44", + "lines": 410, + "functions": 28, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_core.rs": { + "content_hash": "4d729bb1416b25dbda925c1936253ee3ba2b4f861f3b82d7200ac656a67a1516", + "lines": 223, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/template_resolution.rs": { + "content_hash": "fed4c713fe1143b4b6015978ba085cfddb3e62bff74fada57d4196edfe34e2b7", + "lines": 89, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/purity.rs": { + "content_hash": "be7d1125758a0e3432bd47eb70ebc52484130c0c556fd02d9397638aaf500790", + "lines": 113, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/container.rs": { + "content_hash": "45a546877c6bdbd441e67802d0eae4567010e93f57f048487a15c690b71c234d", + "lines": 168, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/store_cache.rs": { + "content_hash": "ff98f2df641045185025eb5c8c9ed291074b8adcfc95a894c8e1b7aa16cd310e", + "lines": 251, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_alerts.rs": { + "content_hash": "5c22a3e00b7ba28ba72eafefabc0e7450e12428873514882f634d0ec56ce8127", + "lines": 377, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/conda.rs": { + "content_hash": "92a0b3d6e29c245f814f7e4b524dfab625f49ab2b6b2f4374a5fc1c445a96d55", + "lines": 307, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_args.rs": { + "content_hash": "d6ff2578cdef4fb0853e97436d525ab7311339457cbcbd9c0574d2f85ddc7c9b", + "lines": 472, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_drift.rs": { + "content_hash": "057857ab9c58a347b6da69e3895f2cb9d7c3f93561fdd29858e7fcb4a41b4234", + "lines": 541, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_resilience.rs": { + "content_hash": "dcea006a4ac80083d38f24c48919388010b334fd0287642546d62f75efb34c93", + "lines": 268, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/policy.rs": { + "content_hash": "1d649aa9ec5345b621a76ea085fba62cae11b53987b1986c7bef281d1c0a49bf", + "lines": 106, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_file_b.rs": { + "content_hash": "3bec80020c9d09db1945cb4e43c56c0a623cb27e60da53ad8bf3d31594414363", + "lines": 391, + "functions": 32, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/drift/tests_basic_b.rs": { + "content_hash": "2a5e76b7562ab9156b12f478491a85958c43330dcd8907caaaa876a76177364c", + "lines": 355, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/resource_ops.rs": { + "content_hash": "276472b0a55ffda06dd7a201f583affd113ae6cd5f191f7f0f879650ac1b8134", + "lines": 403, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_20.rs": { + "content_hash": "ff9041e68cce47cc5cf528994fd0679b0d7ec933d98b9e618a6a95b35f79512f", + "lines": 591, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_dispatch_4.rs": { + "content_hash": "cd7a680a2c785cf0ad6c703f6073369b70160109b5abdbfec4e54cc094312e04", + "lines": 500, + "functions": 18, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_remaining_6.rs": { + "content_hash": "102b940279a20a22ba9708ccccc70260cbb63e747a363dd12a2d0b62c9a704c2", + "lines": 492, + "functions": 40, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/dag.rs": { + "content_hash": "fd7c4d014b94120319649575e44755cb7f27c8a6c3149910df5b7e766122500c", + "lines": 150, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/codegen/tests_completeness.rs": { + "content_hash": "911cabd0471feabd23fc8d140273235e9042a8d8b8f9b6e8759cdc5c579c92d9", + "lines": 280, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/secrets.rs": { + "content_hash": "128f94dbc3f53c2a599e3c0b70b8efdca8b785b4d3303bfe07bead8a30a65ad6", + "lines": 201, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_validate_core_3.rs": { + "content_hash": "c94e86e0868d9fd06084bf3fdeb3a05303969bdd50c2ab7dcc054b93cc93b608", + "lines": 246, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch_store.rs": { + "content_hash": "eff09a6186bc91bdc9a003eced9d2fc95ccd29d85d6fd753c98bb269ec29030a", + "lines": 116, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_export.rs": { + "content_hash": "7e4f37f57e8ba466cde502437cdf0bd43eaef2868e103586294a836e10250f3d", + "lines": 517, + "functions": 24, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/provider_exec.rs": { + "content_hash": "22bd322b3e15973153ef36478aaa44d5e01f8b09f40617154bae97860dd3f400", + "lines": 244, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_structural.rs": { + "content_hash": "cb2f78d1e49b5d1500240a9ffd4cfa464e4130a810b8fc86ec989160cd044c9e", + "lines": 486, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_lock.rs": { + "content_hash": "f7421ffba17f648c183009ee32a2f9f35e75a8e6870b962a25444f517d30c367", + "lines": 492, + "functions": 65, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_repro_score.rs": { + "content_hash": "eb5c877d15c0d4f003c3474c7eaf429919bd55df6a4fd3805415817953193540", + "lines": 183, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/lock_ops.rs": { + "content_hash": "3cd3c37af12704bfc3fa891cbc44f7b36fa604d41e3b72cc0ff281c6b782e362", + "lines": 443, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/pepita.rs": { + "content_hash": "ba21671a08f546817c14a58857d4dfd8e893e2b7a10f1c1d5d187beb0d0e2635", + "lines": 385, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_includes.rs": { + "content_hash": "d112a8cd39fd0b4f6fc2fab1fe30ba65277f6a6bc48787c2560431abdbddcb7c", + "lines": 432, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/conditions.rs": { + "content_hash": "834a0e865f4515947593fc5c5327d23504a78579aa8283aa689dfc48e864f1cf", + "lines": 321, + "functions": 26, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/mcp_server.rs": { + "content_hash": "b7126d57d09e74f70c23893061f14c2d061bb44f631451544776b412e52d0a98", + "lines": 53, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_convert_exec.rs": { + "content_hash": "93221ef970d83b08af899ddb7852f60d67da9a9c797ab714137c268acf194914", + "lines": 267, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/gpu_container_transport.rs": { + "content_hash": "d23eca486eb1020410cd6f894b19be747524b4552a22ebb07ce5b5e8fe03e84a", + "lines": 220, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_counts.rs": { + "content_hash": "03cf2179bffbb3dd1c257375fab494bc5d968154375c543492c255fcd99b0f76", + "lines": 97, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_import_cmd.rs": { + "content_hash": "ca8678572947c76d895196e76c9ae6f6acb300fcec1481e9b572e38aae0b484e", + "lines": 228, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase97.rs": { + "content_hash": "74f9386a495bd24f35c4a62484a87edae6082d87a1085c0d5469cf4e2043d0d7", + "lines": 190, + "functions": 26, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/lock_lifecycle.rs": { + "content_hash": "1a130f12406efe0f6b2b2fbd421fdd729e31df031526144625fa8fe8529848d1", + "lines": 183, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/validation.rs": { + "content_hash": "7a567c913b4d56dad15ebc937c0c47946b485bc508da83a434fa4f3f2bd38232", + "lines": 133, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_contract_scaffold.rs": { + "content_hash": "0579aec27efbb232895792b359733ae85c571abf51c7e4c5282de8700fa607f1", + "lines": 154, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/types/config.rs": { + "content_hash": "273ef42049338b1bcb6eab93232ef065b5848a195af8686dcfa58019bfc7fbb0", + "lines": 373, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/mcp/tests_registry.rs": { + "content_hash": "35bcc9a5dc807b410f61dd2d587efc07135c010102abd0a27ce29ea7a32cfbd6", + "lines": 129, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_queries.rs": { + "content_hash": "4e34a126b8c125dfe51f90a1aafe25a3ccc45747614703985b58203040e5c983", + "lines": 364, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_resource_intel.rs": { + "content_hash": "86d33a5d43a4e1f5cbe8e5672e93f066e17fe64dd817f2fe5c014a63696f2557", + "lines": 719, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_history.rs": { + "content_hash": "fbeabf5f857e37748c156384889a1b7ff8e67b4b9ef626077d8e82ffad8bb45d", + "lines": 230, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/pepita/mod.rs": { + "content_hash": "352fa33729052c5810ec9130601b9a9be2e8209fd368f98431faa67d1b9abebd", + "lines": 218, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "benches/core_bench.rs": { + "content_hash": "2641736063b138182417b8a848286f6f69435d00049397df49c750ecaf7b736b", + "lines": 610, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/validate.rs": { + "content_hash": "6233d0994ccaaafc3c9112422e700b7feceb4883f7baff463b6595bd623d2455", + "lines": 131, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/chunker.rs": { + "content_hash": "27d30c5d66393e4c48bf395abe4149e2047aefbb246833baa974b1820adcb437", + "lines": 140, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/gc_exec.rs": { + "content_hash": "2af6ad4e5be133d8db7efbc89197594791c8bad9c0c8f8452f6e49244c9b66d4", + "lines": 189, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_fleet_ops_1.rs": { + "content_hash": "5db177b33104bf4e9c9a6ae3060e9aebfef6341175f3f69727b3c8c0a51acfbb", + "lines": 50, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_health.rs": { + "content_hash": "967ada2de2f50e004169e6e3dfbc2b75807fd3adecdbe8ada6da3ca827a51172", + "lines": 403, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_remaining_3.rs": { + "content_hash": "db47c0551191717e888422f39d498a0d91007c5eacbb1402db5a9561bff12c48", + "lines": 454, + "functions": 42, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_validate.rs": { + "content_hash": "156fe9a3861bd5c1033ce9408b177b24db65749cb8560640fd3b18b532baebb9", + "lines": 311, + "functions": 42, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/lock_core_args.rs": { + "content_hash": "273fd1b5632fc1d2d997ccd6f3b94aea533dd79c2845ebe5abdb246aa7769c80", + "lines": 254, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_fleet_insight.rs": { + "content_hash": "9d2c58b613313ecf20a215e5139db11c4cb43f552494b71d4498ddd40fd77e77", + "lines": 706, + "functions": 30, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/template.rs": { + "content_hash": "bb4feaae6011fc97fa6a3444be4ca14a2b32d30bc1da14700669e3066c2d35c7", + "lines": 105, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/misc_ops_args.rs": { + "content_hash": "4434ae1f9bacf8084c3ed92d01ce6ec57fc591152957ee1cdcced543d7eafb7d", + "lines": 289, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_21.rs": { + "content_hash": "d73aa2e0be9902490354a498842a6e26f671c12bed8542dac30f82c03ea056cb", + "lines": 591, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_drift_intel2.rs": { + "content_hash": "6f32e09b223fb4a152deac6b1cdb6b80ef62dc08f2b6da69cc19c4b79649945b", + "lines": 460, + "functions": 18, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/user_management.rs": { + "content_hash": "778853f748c4e51e356d3964dc284e1644806b380bda3393d2d02dd0ac2137d6", + "lines": 120, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_cost.rs": { + "content_hash": "7d4433d13d433d859f8ce786d2dac6d8d4b61318e2972f685f94da84327f86b9", + "lines": 258, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_graph_core_2.rs": { + "content_hash": "02f18590f6d10e4b1d939241a15d9bac785ac865c4dd244ab4191b5500576f93", + "lines": 1041, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase107.rs": { + "content_hash": "e486299b14d73cd633bb447a4c25ad0e122c296dd1b7bc5d38ad973de7f6df69", + "lines": 225, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/planner/tests_when.rs": { + "content_hash": "7d781ca2803bccc31c5a5e4602b67933f9aa421dd2e9f70fa4b5c32eddf38d70", + "lines": 103, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_gc_exec.rs": { + "content_hash": "e1fccbbf7f3ada96e33a6782f9c8a65e637f128ec07f668a829743c66fe15bd9", + "lines": 252, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/drift/tests_edge_fj132.rs": { + "content_hash": "548bc6e30bbf5689453b1ffefda21385743466c3cf7b8baeba29069d569b3d2a", + "lines": 309, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_destroy_1.rs": { + "content_hash": "3c0d589f84c8a17e42522d5b8be25e711f6344fedb9b7ce31ada530b64ef7f2d", + "lines": 257, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_validate3.rs": { + "content_hash": "2cc0d2323726ddf8a93ae63a7590f55ecb15466f0c9176dee6188c589f5d84ab", + "lines": 410, + "functions": 51, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/recipe_expansion.rs": { + "content_hash": "86024e836a99cac3432954bd6bb22bf8c5bbeea7ea22e90457ef213ff07ad7dd", + "lines": 118, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/codegen/tests_coverage.rs": { + "content_hash": "34d3b6fcc4fea7cb616e7538af6d6b508f6ce6933d7a900b3cb70b717d473c61", + "lines": 269, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/store_provider_import.rs": { + "content_hash": "c94d617cd5ae49aac9449b53c444890eb8c33633c747854f23eb18fcaab7490a", + "lines": 154, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase100.rs": { + "content_hash": "082e88670a307c41e4461619ea486580bab5efcf8b32a2645101677f689fb04c", + "lines": 204, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_quality.rs": { + "content_hash": "2c94ea204e4a115133bc709888f1e82c24e6253e59a85578bdf7c289a74d90c9", + "lines": 272, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_intelligence_ext.rs": { + "content_hash": "eeb9abf73fbfc962479c96003f7208a7ff1c33a9b00ae21afbc1ce91adcb8d61", + "lines": 759, + "functions": 27, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_13.rs": { + "content_hash": "1110878080dc7f004e5c4b035c9e0242aa4e5192e8023c8c0878e1a7a0b44167", + "lines": 584, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/far.rs": { + "content_hash": "705a31a330e322bc78bba74d76cabb4e90d8cecaf72d126745a70886d0a0edf8", + "lines": 196, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/mod.rs": { + "content_hash": "30d69f454459c3979acf9916e760d80f3d2467d3095367eec183a476cb93b6b8", + "lines": 113, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/lock_audit.rs": { + "content_hash": "781e7c728c7a0b8a9b2204000a53f1fd58ed33aad63202aa5020e3f39e7f3bbd", + "lines": 382, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/codegen/dispatch.rs": { + "content_hash": "b0cef52bfba28729d54b320d8a05c52915033e03dbd896d1f0eaca06f6b41b5b", + "lines": 79, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase102.rs": { + "content_hash": "28ceaba1ffaf865a6947a081b160e034a05ea8cb3a0969068df6dd7b63d550fc", + "lines": 206, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase99.rs": { + "content_hash": "3e99a44c3fe4b8c4734bb170b82d7dd8825335c7b3980ef6f7504341aba9e153", + "lines": 237, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase95.rs": { + "content_hash": "bf0a5c55af721110cf5d166d463b5925dc6780913ce7fa0a3580884c2f9627b9", + "lines": 215, + "functions": 30, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/lock_ops_args.rs": { + "content_hash": "0a0ef2dd6cf1e8a992a644dabcd8fdee6fccda5656aa865cbbd989b0b81d48b9", + "lines": 221, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_transport_2.rs": { + "content_hash": "e7e61b26181d06ba30ff3d35cb9b5c6d5212a30db2af157146d8f1f2be051ab5", + "lines": 467, + "functions": 30, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_args_2_b.rs": { + "content_hash": "0738bf02be170c9d3e3e2d41c1a1ce191e7fa56431c68afc9459427c35b02c1f", + "lines": 161, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/cron.rs": { + "content_hash": "484d9fd86bd6cc757e67bd4a7b8eeb0f3a8efd9f1a2550414382c8c43a9d3b3f", + "lines": 464, + "functions": 32, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/types/tests_state.rs": { + "content_hash": "dd2a188c375b0154f75dec150a2cf75406c52e50eae968c3b467146aedef7af5", + "lines": 282, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_edge_details.rs": { + "content_hash": "e4b0c31d73409f22aa1213b0376f5e9a02980a317e4ba6670c925afd5f9a51ef", + "lines": 403, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/types/tests_config.rs": { + "content_hash": "62f198f513cd6611e7b3746054fbb8f7280ed719277043d12fa10e5729e5586f", + "lines": 447, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_graph_core_3.rs": { + "content_hash": "6a6e4b1bf89ede7219bbbb1b88aa7d259acf7bafacbae1b432de0948fa4a0f7b", + "lines": 757, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_scoring.rs": { + "content_hash": "ce25d95e9acb6c99e8078bdf1c933597d73c087d711d7f4b17b7146e6f8f28a9", + "lines": 655, + "functions": 29, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_19.rs": { + "content_hash": "7babc191553334c61ad1b42c509be4cf31542c903bcda395d58fa75e49d903cb", + "lines": 589, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase101.rs": { + "content_hash": "74758c38fa148996d240fd23b5a951e82edddb5e50b95fd15c449275065a8f57", + "lines": 207, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/scoring.rs": { + "content_hash": "8171a5ffd79df712ac72d34b151c957979eecbebfad376bdc03a7e311b63859f", + "lines": 619, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/gpu.rs": { + "content_hash": "d0ee4e02e497703403c3dfba64280886e5b4d0ee77164f2c1e7bce15b23293c6", + "lines": 196, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_transport.rs": { + "content_hash": "9be38f2f8c563b82f6df823e7f47e1000f238d7883f930e1b32f8cf3a36b9a5d", + "lines": 487, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_plan_1.rs": { + "content_hash": "ee8591122d1888f8a32f1424187ee7ea1750421a8d2ad71729357ad8dd54ca42", + "lines": 184, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc.rs": { + "content_hash": "f02bd71207dcab0fe85ea7441c1fd9b931aebae6e582ccdca5124707c38b35d4", + "lines": 436, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/tests_anomaly.rs": { + "content_hash": "7f8482500d6ec9b32ab2c892b71c8de993c19359baf1bdfc8d3301d9983d2c77", + "lines": 276, + "functions": 26, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/conda_to_far.rs": { + "content_hash": "7734affa568d41f480d8e38788fe151adef95b1a827dce5b24e559ba866fb11a", + "lines": 110, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_analytics.rs": { + "content_hash": "5d5ee17e1dd1549aa2433d189257f59b54b718eafff552913e5e0187de17a1ea", + "lines": 424, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/store_archive.rs": { + "content_hash": "1e3b5b828ede0561463196455eeaf0ca8e3bcaf7a186e4a7c655a77814be7378", + "lines": 216, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase70.rs": { + "content_hash": "2a92c7115123b83d8d0b4160f3e9332abbea33cd994106a7e8b93c1fc3e2f376", + "lines": 280, + "functions": 24, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/validate_args.rs": { + "content_hash": "32835cd4dd4e68473c6129851893b5f0a099d01eb8848c2b3a00fe18325db0b5", + "lines": 494, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/lock_security.rs": { + "content_hash": "8018b5a7797f5483703a32671e476ecbc4f8afe01eb6a727a39679dedb706be6", + "lines": 392, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_config_quality.rs": { + "content_hash": "f0bb4d6639b69789a74c6fa91155b34ca6600257ca7136f2623ae7e9ab049227", + "lines": 494, + "functions": 26, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/tests_container.rs": { + "content_hash": "10063bb3e84f26c0b2c758899d3b5a780c5b3a57d5825702a80f0bcf74bad620", + "lines": 468, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/score.rs": { + "content_hash": "697e597617672776bac2976841e12e91e9b8b040ebbd77b776d0e82c1078754f", + "lines": 51, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_compliance.rs": { + "content_hash": "fe4dc8afed79cac5f9f1ec0a300860a17b11571a8e284bce1c599435fd73b546", + "lines": 327, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/mod.rs": { + "content_hash": "d6f20aeacf53c77365727163bc1ba6263497103933a855622e5465ded5bd8891", + "lines": 42, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_audit.rs": { + "content_hash": "635bd8f48d74fd82be82f519bad6521032b68127a73aea0816941feac68f0417", + "lines": 460, + "functions": 19, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_derivation_exec.rs": { + "content_hash": "4b5ee332750b330d1dec8780e7ca966c9d59b0ce17db88a4e0e946fccb94ec6c", + "lines": 281, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_7.rs": { + "content_hash": "48e11dfaa56f1b1f15ef4370098508f3028969f1a681c328ddb6543c49fc1135", + "lines": 396, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/planner/tests_describe.rs": { + "content_hash": "92b1a9b0f314c99d48ca801380eea19c8d8a97952ee947a29e25e649e48a7c73", + "lines": 77, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_status_4_b.rs": { + "content_hash": "3032f88e69bbee38dc979ff676b6ae8c58e0e085b551bfeafa4b3dec3fdfe768", + "lines": 335, + "functions": 42, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/helpers.rs": { + "content_hash": "8d2c8e5bf247190920e2d8672061d6e3175f74153bb6556d2bbbda48cfff9a64", + "lines": 227, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_graph3_c.rs": { + "content_hash": "d4d7d08d99de4e8d2d5c7c80c481d2077dbbaee1a84d7cb7a4fb1a8ceb9eed44", + "lines": 267, + "functions": 35, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase63.rs": { + "content_hash": "93d3e0b887e81b6e5c2c73b7f8d09f26bc109f8523e25b3a1bc1e0a6a3bafcdc", + "lines": 193, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase66.rs": { + "content_hash": "0d4492c526b77f8aa5d53713e6a1ef457a203f56bd8742765463fea2cd702256", + "lines": 204, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_convert.rs": { + "content_hash": "1559a180fa06b8ddf219469771feadd18f677cd82cdf489331ba3f84dc282300", + "lines": 173, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_3.rs": { + "content_hash": "2ddf48816c11aede0141eddc648728528b6c55f6e532638c37db7a9e3ef97482", + "lines": 705, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_fleet.rs": { + "content_hash": "1c0159832f389c93c2591da2ee366acf6256f9333c0025cdc581eb4e2f525207", + "lines": 526, + "functions": 51, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase85.rs": { + "content_hash": "28b08303ce8370db560ecc840ad1351df4368065f506565bbcc28d4ad917ce58", + "lines": 175, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_service.rs": { + "content_hash": "650c36e857b38efd8b572e3a91b19bed1bf5328d7af68080a5f4f4fb73ef3d38", + "lines": 421, + "functions": 30, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_transport.rs": { + "content_hash": "e6020dc225f3929dbf93a9fa1c4abc21bc9b5c0fe089f62c1e0772014bfec906", + "lines": 208, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/mod.rs": { + "content_hash": "4be4616b935c9a86bd39e95e6310c1c6a1ab7cc607493b9ecd10edf36d2d9325", + "lines": 340, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/fleet_ops.rs": { + "content_hash": "4018fc6ea23d2e1faec50b593ceadb32beaefc69a1bf76ef39e3c0c0bad3dbf7", + "lines": 422, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_graph_core_4.rs": { + "content_hash": "d32b0a6227cd5c5b044c1af69d88b0f1c82c74a32e2a87ffa5304291f1e9512f", + "lines": 92, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/recipe/mod.rs": { + "content_hash": "a40beb6014ade2c9c0a635661efaac91105151fa0efc8d077475cff6f6efc4b8", + "lines": 23, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase77.rs": { + "content_hash": "69145b26c382ffe4ef2045d6d4ef57b1170bfc14a8e7916f93ed8f5018edfa22", + "lines": 291, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_diagnostics.rs": { + "content_hash": "fca182a3d1a07e39525cece8e8c450bbf6acf6c611e06c98d9db2dba73797794", + "lines": 578, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_check.rs": { + "content_hash": "8feb321d977d51fbfcbef8a625c807ddb8fd7c32c56c45bb712ab39423578c64", + "lines": 461, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch_status.rs": { + "content_hash": "2ce47fd7c3525a87d5bf3fc9b4b0eeb71adca86bd4870322292cd259efd1a4f1", + "lines": 1448, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/tests_hasher.rs": { + "content_hash": "d631ad2b887ce07688a8a0e87a5aff2d55bddd83d2217fb5b8203aac76552631", + "lines": 276, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_governance.rs": { + "content_hash": "3c3cfe711b4c2caba6a2eb351a7d7fe324589a1e4fbb8f51dc32599f0cbda81a", + "lines": 364, + "functions": 27, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/store_convert.rs": { + "content_hash": "9a4f53e95baf8df5a52f8585341337d69fe3b1b7e1586abae21419e9525fdabd", + "lines": 131, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_edge_record.rs": { + "content_hash": "06e43c61e6982f518304ef15053cec6c917db1fceffc74e05ea068d9923ed59a", + "lines": 420, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_validate_core_b.rs": { + "content_hash": "3df112f43b66f2612375b6abe8f737900c689d94c3982a88c75ee02930dd7b65", + "lines": 489, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_paths.rs": { + "content_hash": "f744e57ef946a04fa8ab74b4b2a5c04a382e2ec42a7cf6b3a78fb6467babad98", + "lines": 517, + "functions": 19, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_queries.rs": { + "content_hash": "fc435d443a5715aba50557e2b267a94ddda0a11233fbdc0376662b99d8f9cec1", + "lines": 250, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_4.rs": { + "content_hash": "adfe0851995390d19faae73140f40d2f5b7c70a730026d0a8410ae7eb122672c", + "lines": 707, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/lock_core.rs": { + "content_hash": "622ec568ae72b5bd9b6625776af10162ad9ac59d8c8a8d5d8577cd124dace853", + "lines": 453, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch_validate.rs": { + "content_hash": "940d3a0c38925dd9059f95f3398cb629347873ccaf2c3245cf911a1a2b182f6b", + "lines": 1143, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_status_4.rs": { + "content_hash": "a817b37be5a555e6c08ac2709b878f1ef3d8268461c49a6de30961c7c41fb390", + "lines": 345, + "functions": 43, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_status_3.rs": { + "content_hash": "d953ba308efe6509163a04d8d0ab9b18b59435efe88b5d09bfa8ef2a72a18e10", + "lines": 411, + "functions": 72, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/eventlog.rs": { + "content_hash": "66aa015f1b02ccd27b6e8e9b78b013e6cd3c873ebe2ac8087030588a90185897", + "lines": 105, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/tests_eventlog.rs": { + "content_hash": "6416f4576acad278ca832883c2cfa1e4330e8f987f1c757a990c8837a0af6c30", + "lines": 263, + "functions": 18, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/store_pin_resolve.rs": { + "content_hash": "2ec6dfb445ef7c6d801139db58f6282a1c506dce46001a42dba4f8ed14e166a0", + "lines": 116, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_governance.rs": { + "content_hash": "7909756818caadc8ce5782aa8b4993c340675b9502259363f67ea01de304c263", + "lines": 480, + "functions": 22, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_analysis.rs": { + "content_hash": "091ac709f81cbf81016d5afc8919f47ef129402f50c9cd93d069b70a4ffd24ee", + "lines": 315, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_validate2.rs": { + "content_hash": "de5ed195297c91cbf1e4853a368f389e6d9471e6e9fae63e7f4820f5dbbaff77", + "lines": 396, + "functions": 30, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_graph_core.rs": { + "content_hash": "cdbc15670c287d28cf372460cf34fc03c5a8680b0953cc697279d7774bb53605", + "lines": 423, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_intelligence.rs": { + "content_hash": "5e77edc6f71d2664eddb5d0231eea7a01170920d47241fb2246ac48edc0251fc", + "lines": 656, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase60.rs": { + "content_hash": "0a27a50ad0d44f4d395d055f56642af8b09be805308194ae89d2b76f03ee51c5", + "lines": 133, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/tests_purifier.rs": { + "content_hash": "2590f79be5bf58666abe31c1b7294d2a0b87213100b1190097d270ddc6e91915", + "lines": 304, + "functions": 22, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_derivation.rs": { + "content_hash": "ca933c0431c5cc9b6f89f0db012202a65a6387207bdb00dd80a8cdd2dd9f5016", + "lines": 293, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/mod.rs": { + "content_hash": "c36359c0bbbcead0cc16fb65703c8bfba1fa0dee5dc8dfe9e314454d5eece642", + "lines": 27, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_8_b.rs": { + "content_hash": "9d0b1701b10b92390265cf41b623c1234fafd0e600e7fedb75a70a73de503993", + "lines": 474, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase67.rs": { + "content_hash": "ec27a9281d427d21d74d40932e78ec67830df492548a4b4cb808f5b48abd75af", + "lines": 191, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_6_b.rs": { + "content_hash": "0ce4c32dfe507762fdacc944cf99a5522bb5f7cd8d80f37128307c3f6f95b46d", + "lines": 207, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_check_2.rs": { + "content_hash": "90f36300ab8d3ac244bea609b6f03f08247aea096fc30cbf25fb45a8cf6cb6f6", + "lines": 411, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/apply_helpers.rs": { + "content_hash": "f2146aaa4e9defac6876e53922ffe7d317ccdee4285e8658a6fc5368fe1f935b", + "lines": 131, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/pin_resolve.rs": { + "content_hash": "fe3ca39b83bf797a137d51ed529695127231448405f7044be43ce3474db6ed75", + "lines": 205, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_core.rs": { + "content_hash": "52906653e59d2b705f0221e6d82d69271897aed0864605f1a9fca1c915db5d80", + "lines": 263, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_fleet_reporting.rs": { + "content_hash": "3901fe210760f37694820731b9431fe74558573a333681f17b9da1955f03d19f", + "lines": 86, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/expansion.rs": { + "content_hash": "36e647edd310f9d8f1f30595e6a50c1b5f5f352a5da67ed77f65fa1f77649fe2", + "lines": 110, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_observability.rs": { + "content_hash": "db0c4b24e95f1e78eb9041308e5bef150b1f4af47d4c9c70afc019edafccdb8c", + "lines": 419, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/functions.rs": { + "content_hash": "31f6358703727288eb835d958f8c712ce3b97f031239d2569e58f9e9aee33c8a", + "lines": 165, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase89.rs": { + "content_hash": "70e540ec4031f62163e0d14d04422bcb6c2fed1e957ee5d70ed2e689b4a6c1b8", + "lines": 308, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core.rs": { + "content_hash": "ec2276a149ff2bab435d03b68e2b4cb0e0bf9500014607f887488c339097d43a", + "lines": 359, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_16.rs": { + "content_hash": "f26edc3898c0b3cc4167c24262fd5d6bbe9713971d0bccdb892f27833bd6180f", + "lines": 585, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/event_logging.rs": { + "content_hash": "a824a3e869cc765c381607a296288475026397ea7d5f90a33965d0902109ba22", + "lines": 141, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_graph_core_b.rs": { + "content_hash": "d02027474bcb89eed4d4fda160b960d2bbae6e561a48fd91412f2dac283ada74", + "lines": 226, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_remaining_2.rs": { + "content_hash": "2e75f5536689c2c76cefac7ebbfa69de9c81e67487ad5f43b3bc21304178843d", + "lines": 379, + "functions": 50, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/state/tests_basic.rs": { + "content_hash": "26773ead1c2a4f5649bafbf9fb0ae4903aa075f74a18d6023262ad0dd7c1071f", + "lines": 354, + "functions": 24, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_localhost.rs": { + "content_hash": "954988f33b820310b58963906a52d14efb39fa171ccdce0d5d845e96526d30ca", + "lines": 334, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase105.rs": { + "content_hash": "125e47bdfb4e5632a1352a9f73348469d2a113c4dff77b4ae71919315fd0c640", + "lines": 206, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_notify_2.rs": { + "content_hash": "96b1d9717c6957af6517e4297586f248abe8803f8c282001332cd194aeb284ca", + "lines": 529, + "functions": 49, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/resource_types.rs": { + "content_hash": "68f2bbc06de073e745215d0a5f55ec9b778b8f4296d7acdd81c4279d1c75f059", + "lines": 320, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase98.rs": { + "content_hash": "3ef40d8eb024410a388a63b957bcbd8b4b2de79e9bcf915cbc13ee6c14666cb7", + "lines": 251, + "functions": 33, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_advanced.rs": { + "content_hash": "aa590017de84e89d21e22efdecf1d440d2b7ac635bb710769779c6b2955e21d6", + "lines": 551, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/drift/tests_edge_fj131.rs": { + "content_hash": "c55d3a18a1cadaf071128745394e2cf59de8a5c9806452e07766c38d12490ae6", + "lines": 313, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_gc.rs": { + "content_hash": "845a11f64740c6ad1c7a6b37bcb8768950f678b431f3ef7942dea10ea5718375", + "lines": 160, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_extended.rs": { + "content_hash": "b69d7bb4dd1eb9319b0732c2cbae1df057d49234c1eae9cd7423e6c187ee0cea", + "lines": 379, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/contract_scaffold.rs": { + "content_hash": "50996afc43ee2745591ce7b4ff9a3fb25ea0912354f21bed5a0802871357da84", + "lines": 80, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_pin_tripwire.rs": { + "content_hash": "4b400e9e27207460dfae9a3686e898af1d62f7dca35656618f6438fd860fd7fd", + "lines": 215, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/helpers.rs": { + "content_hash": "7cdf36a2f59e6dcf0e334b47db74a7877ba11321c4565a75c68745817abcec35", + "lines": 74, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_mount.rs": { + "content_hash": "5f3ff36a90ea280516cdd7bed4f53353133d7c2d88d79f6eefd3e3fdda931d07", + "lines": 258, + "functions": 19, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_drift_intel.rs": { + "content_hash": "a1e382537802f1d90981b5a9d78b08857ec2e3f418dd56826c87e5fec3424b36", + "lines": 393, + "functions": 22, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_args_extra_b.rs": { + "content_hash": "99a22cd37a5d03d14d7d61e1da4c41677c3c46a45480c43267aa657134d74bdd", + "lines": 420, + "functions": 41, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/file.rs": { + "content_hash": "a1facfe1a21635b0eadcf7b24ee4d0bcedb30312b957a665cf5c87ab03c3ea8b", + "lines": 127, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_triggers.rs": { + "content_hash": "43a2d5e86ff679568c74904081e8bb08984e92df2ad7426961767c3999e3bb68", + "lines": 106, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/test_fixtures.rs": { + "content_hash": "0b8fda69d8f277e11569288b038ea6261396ff44b72d25b7410150bd2fb19839", + "lines": 149, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_governance_ext.rs": { + "content_hash": "594e07b068c78f44240d180b9da8754d0800db3c1ff3282436bdf07a126dbaf8", + "lines": 487, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase104.rs": { + "content_hash": "d0db279defc746e4a47f639ad9b51c180869322b81923f9e6111134c8bbf5bd9", + "lines": 213, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/tests_scoring_b.rs": { + "content_hash": "d78bfb4b453e0484eeccc3c859cf0a4217d77e1200e70fd2b947d9f7fc5ab5f3", + "lines": 488, + "functions": 32, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_remaining.rs": { + "content_hash": "b3ddd352bd2e84334ae283aad442cc30f6509aea1a6951c618413b5bc39a37a9", + "lines": 412, + "functions": 36, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/types/tests_resource.rs": { + "content_hash": "c51b45db69f9f9d83857727f88999433664a2ce42bba11070ccea4235c79fd7f", + "lines": 298, + "functions": 29, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_resilience.rs": { + "content_hash": "b3bc5904cb1ebdcab05ac2b3d4466bc50fb7f3b7a4e77b83ad1e9058c1f888d8", + "lines": 699, + "functions": 27, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/tests_container_b.rs": { + "content_hash": "3e362db276afe5b00807edd1bb908ab0d43ede1ac1e2380756745d1dcee91e65", + "lines": 360, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/task.rs": { + "content_hash": "cac6107376b85edd8b7c7a1fc9cbe8772a7508d549a74b183420601ddc15ef37", + "lines": 165, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/tests_data.rs": { + "content_hash": "1f1ae2c8727651048eeff987ddd1cb6b0cd5da5fd1432cf001672485539da462", + "lines": 368, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_validate.rs": { + "content_hash": "7b9db1114d00359a0bc997e5562cfbdc1c2b59b1e95fb423eaae4f35571af7e0", + "lines": 168, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_policy.rs": { + "content_hash": "ab672e6d66b48bd9914016ecddf58ca50752c06d0c40579e5679cf4b3869576f", + "lines": 218, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_paths.rs": { + "content_hash": "98f7992ab6e2fcf7abb582a9ac94899efba591d83ca50724fb4631a5302d1ddc", + "lines": 337, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_validate_core_1_b.rs": { + "content_hash": "ad46aa69bb5803815a2e8bcc9908c04363ffaed29eb191576d3ac275f1c2d017", + "lines": 647, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase65.rs": { + "content_hash": "7becd26ed753087000d41cb0848a75dd670d9590ada04d710b194e0fde1b6d92", + "lines": 188, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/tests_resource.rs": { + "content_hash": "3ea3003b8291fdab8bfb152d49db42e4c45dab1bf916a89bf2e1650f71aff822", + "lines": 560, + "functions": 26, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_misc_2.rs": { + "content_hash": "0c72d3e8511ed1c5abac170244cd9ec3a33a39c6fd14f8ce2dacc31e8ed07ac7", + "lines": 391, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_operational_ext.rs": { + "content_hash": "f8f39446b9091ae9178dc210d4b1ff97ff6721feea04ed74490ded0d23196f57", + "lines": 212, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_core.rs": { + "content_hash": "7b0c3dd5d862930408456a0bb342f7e7b30cc1390732449d6c7402961d8de4a4", + "lines": 448, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_graph_core_5.rs": { + "content_hash": "ae3424a2cefb17bb1f2ad298a20b261cbd415c077b7bb9d0706e74ef8fa24479", + "lines": 313, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_cross.rs": { + "content_hash": "fc8522c2858d35b0f01007c86b2e33dc65f53517580b36cc757545ad72217855", + "lines": 362, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_14.rs": { + "content_hash": "50450e6aaa6a7fff6ee109442e4ba0fc71a35ae53f7ea8f0e477cf32234fd1ce", + "lines": 584, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/tests_hasher_b.rs": { + "content_hash": "f5b697b99c5076d1499ed56d039551e4d573da8e5140ab3199102cdc0ab119a3", + "lines": 265, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_provider_exec.rs": { + "content_hash": "95360fc2385a6b6ecdc754235766dc7578fb4687d8a30d7333f3fcbdf2ba6990", + "lines": 254, + "functions": 19, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/store_gc_lifecycle.rs": { + "content_hash": "e03482b73f77f7cbea774b55e412402b2b32907b79b81de45c3cbcd015fdac6b", + "lines": 167, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/tests_scoring.rs": { + "content_hash": "7a4fddcf8dc5af786a9dbe5148c85780476095ce1c582b13e4cf2f864d017062", + "lines": 367, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_graph2.rs": { + "content_hash": "dc3b9470ab3298589ff28ee972bfde94c64a3a4f54cfd2f5d3fa54dc7a6f8f03", + "lines": 378, + "functions": 53, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_fleet_b.rs": { + "content_hash": "079ef5be1709818426bf9b485cfa249617ca2acaf46c0dfbceca1dff39fdcc22", + "lines": 314, + "functions": 30, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/planner/tests_hash.rs": { + "content_hash": "fa0a25c1be61ccf3f6830d992e536963e5be7dedfd6fbed0980df66e659ba8df", + "lines": 503, + "functions": 26, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/tests_secrets.rs": { + "content_hash": "c3e9a7a11caef27d4950768370be2f68d69ed711fb48393ece5eebaecd99fe80", + "lines": 440, + "functions": 39, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_validate3_d.rs": { + "content_hash": "cf497a238c35b728a1c06baf2cd495c83321eb609903fb1a2af4f6ea5f7e9955", + "lines": 410, + "functions": 51, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/planner/tests_filter.rs": { + "content_hash": "2827ee3bfa4044aa72aee8cb2748a18cf1199839f9ecadd693ae3e599c0207b7", + "lines": 133, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_5.rs": { + "content_hash": "824b0d8f75706dbcd9fa8c3b8de4bd7a8d23b17de16c64b462c4fa242d8dcc06", + "lines": 395, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_compliance_ext.rs": { + "content_hash": "52a51378bc98cdc284777bcdcf3966d365b46e33ec9efe10dd2881a3529cca75", + "lines": 430, + "functions": 26, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch_notify.rs": { + "content_hash": "11d85393b6340e2410ee2de725015ca7e5779a45570d973fcf24b9a3a18e4fe4", + "lines": 728, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_plan_file.rs": { + "content_hash": "18479a77ddfbe1a29914e563331d745113f8800080a19879f28728c00978d59b", + "lines": 224, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase96.rs": { + "content_hash": "2ca70a55830fa12021b91459cfd36a7fd2f6f70197ead4d6f109dd06abd98902", + "lines": 224, + "functions": 29, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase76.rs": { + "content_hash": "afcd94e8394a4f54034c13db7138510a2d3818b914bc2df917c4a0fedaafc3f2", + "lines": 290, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_topology_ext.rs": { + "content_hash": "5ea63a1384c82f316ef7448e73c80696167583f8a22b868509dd6cef478c5afb", + "lines": 124, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/infra.rs": { + "content_hash": "7251b32b2e6046c6473ce1a8606134553996abc1a2419a0c1188f5a0bb622e61", + "lines": 483, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_remaining_4.rs": { + "content_hash": "c8529446eb09eb388bd644f5dec34d0a0f65c52a4a3180b6328e168c22ea1313", + "lines": 427, + "functions": 44, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_security_ext.rs": { + "content_hash": "f66fe1fc9ea7278efa07102a67120cb60ec48798452be1d870ebc4394f7fa674", + "lines": 486, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/import_cmd.rs": { + "content_hash": "1aac0167c0c8c6a909b5725d36bb3fd5d92a67f1301fa69897be6117fe507246", + "lines": 295, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/sandbox_run.rs": { + "content_hash": "58ce624ed70496af87745f25b27f09c3c4d9cff9638123ea2ec63299c5c4f592", + "lines": 148, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_notify_3.rs": { + "content_hash": "216bccf19aab69f190b04af25c296385f62577edc54028435be95a11066c2be7", + "lines": 474, + "functions": 51, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/check_test.rs": { + "content_hash": "7ad5988d22f832718573ae82a76be7f2b607c9ec3e1cb2cc6d18c0b7da596da6", + "lines": 254, + "functions": 0, + "max_complexity": 0, + "category": "TestCode" + }, + "src/core/executor/tests_advanced.rs": { + "content_hash": "577782791494f3a2f1f4701ec33e12fe7381a0ab660dc7601d8879297ce6063c", + "lines": 488, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_advanced.rs": { + "content_hash": "67ed06aaadd80dfd88bebac0074a53446643ab1885cb62fdc3a31b750fb9dbaa", + "lines": 372, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_fleet.rs": { + "content_hash": "0a1e48414bc8db11acbf4507134638e61621e160134e4a6d4d558290a3797a4a", + "lines": 337, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_7_b.rs": { + "content_hash": "c3a4d11488b362056db0044cb00a679d032a6055d5b07e23560563ead2f5bec0", + "lines": 204, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/sync_exec.rs": { + "content_hash": "00868ef2b5b95b8b2bc37423781dbc15af79f86a12ac2a9acfe4136e50f027a0", + "lines": 189, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_infra.rs": { + "content_hash": "3b716ac33cc323623c1948692f08077c230694186832a2eaba52778daa11c773", + "lines": 306, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/drift/tests_transport.rs": { + "content_hash": "930114ee44480ef88f9e0c153202ece0072243cf38b04d49f517e598b3dd0809", + "lines": 247, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_drift.rs": { + "content_hash": "49e2203aa6db0c38af3d2b3a77926090384e38100fc6b951057dfb559567b9b0", + "lines": 458, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/drift/tests_basic.rs": { + "content_hash": "72e4c5883d2c4806dbeaa8ad813c81a7907bac78e696f353897f47343d83412d", + "lines": 325, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_remaining_9.rs": { + "content_hash": "e6392c9f422e76d22599cff1f48d9f31e9b9108407425b644600e96fcaca726f", + "lines": 466, + "functions": 29, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/secrets.rs": { + "content_hash": "f04e8e8de8dbf25c709ab07f8a237dff5fd923b92956dfcff6f3f44e315a9875", + "lines": 154, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase94.rs": { + "content_hash": "fff4cfa1c2fb77c8c79f9a7610da253dd0e2aa118e2dd7cb3f01779095bf61b1", + "lines": 425, + "functions": 24, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/trace_provenance.rs": { + "content_hash": "9f8a415a0f1e0c25293ebf2aab2a39d1bf6d9b838e101315eb5dec82348c22d4", + "lines": 119, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_11.rs": { + "content_hash": "0f99be1bbe1377b6ab724baf304431a900a7361d15b4b82d7d52a43a2dfea94b", + "lines": 584, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch_lock.rs": { + "content_hash": "70b1939da69b07e59f06de53245eff579b01a5a24d775168355cadaf71a1e11a", + "lines": 162, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/planner/tests_plan.rs": { + "content_hash": "06886b0275b2a61d010df1fc8a9b7e279ab76367b6f2a9bf33e1be767ec6071d", + "lines": 357, + "functions": 18, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/meta.rs": { + "content_hash": "ee76198a36d480e2f1147085306b65a8f851e26665bb42fe1f443aaa38095326", + "lines": 125, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/helpers_state.rs": { + "content_hash": "b97c0209fda99a616045bc2553747a1eaf61a365df9d4436d5fd52119094f234", + "lines": 114, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_analytics_ext.rs": { + "content_hash": "dfd639fb7a3e67c66eea82ed922c7883b45f7f00b94dd0659cf56d48b6cd8ac2", + "lines": 383, + "functions": 28, + "max_complexity": 0, + "category": "RustSource" + }, + "src/mcp/handlers.rs": { + "content_hash": "b3f3ba304fa11f48ee3077275ac09caa416279ee0ce7f5a6cab754f428ee4979", + "lines": 491, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_graph3.rs": { + "content_hash": "0964177398f72d99d5ea1f4a213a72dd48aad9df5a22c763d23440ef22e037c6", + "lines": 253, + "functions": 33, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/tests_dispatch_b.rs": { + "content_hash": "b198ec9a4f125510c39152ba9dd89b831861c481ea5d387a987171a7d88c04c7", + "lines": 309, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/mod.rs": { + "content_hash": "a7103646daa0f2f7c25ce72ec7a06f770c5aadda9b6481f7b58fdf92680da303", + "lines": 131, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/gc.rs": { + "content_hash": "4ee9aa8f03a830997847ee019c423ef14e288ce9345a260316d254cf3c1ab7b1", + "lines": 121, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_maturity.rs": { + "content_hash": "86d8871f6417999c5d028f68e3c8eb1a8b837c03d655b8fe91fe5775c4d60b8d", + "lines": 857, + "functions": 37, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_dispatch_2.rs": { + "content_hash": "1fc985791b0269cc12e0d0e2b0cfd4e157aca99b943ad9e9dd9427e475d5caab", + "lines": 483, + "functions": 30, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/history.rs": { + "content_hash": "b71f21a1943143a0694336ed32053d28a4bea1275320430367ba14fa3e64977b", + "lines": 268, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/lock_merge.rs": { + "content_hash": "b4b7097556494d0affa4ecd89af8c3030b55570d213b020fa71d89b534392c9e", + "lines": 210, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_plan.rs": { + "content_hash": "5aea601bb36efb618cf588cf6b9e5b0bf6d21064478d68de5b8f7571aea43f5c", + "lines": 475, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_helpers_time.rs": { + "content_hash": "038e90da543fb51cbba559b761d649039ffc84c0aeecab9f9bc0b763aa7efe67", + "lines": 36, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/drift/mod.rs": { + "content_hash": "b0094bbc32e0db8f94403762405412acca10817454dd12d37a299dadc01c176d", + "lines": 310, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_args_4.rs": { + "content_hash": "2b82c0fb253b1f675d92841e3e329bb18b18c582fc8fdbd01eb3a72070fcf9e7", + "lines": 373, + "functions": 32, + "max_complexity": 0, + "category": "RustSource" + }, + "benches/store_bench.rs": { + "content_hash": "f97b1e48cff71ae15f2c3474dd36a52df9abe546882c8efc6b4d7b5b37833906", + "lines": 401, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_8.rs": { + "content_hash": "beab01b1c6f65e33a645fd11c61613674303bf57467816f1f1fe04ee1b898b50", + "lines": 704, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/anomaly_detection.rs": { + "content_hash": "7df1ddb35aa1377af77266b5b10313781ecdd0b715bb78fefaa28d4b1dc9a2b0", + "lines": 123, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/diff_cmd.rs": { + "content_hash": "aeca8eb5893d02c7ec86beb7eb0c2f5708d34c497f74ae33047c5d9133ce2a24", + "lines": 378, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_fleet_ops.rs": { + "content_hash": "88ab77b4a769be588ba9fed9d48e35d5f7215e7a7476fcc04518e0de5021aaf8", + "lines": 531, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_intelligence_ext2.rs": { + "content_hash": "ddaa73730c7560e3746b74fc84b6d38345ca14c7d20823cd31db285ba95a7500", + "lines": 643, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_intelligence_ext.rs": { + "content_hash": "66d86de02b1b24a4732538620580336edb5c501d9a299fdfbe0b122c0e12643e", + "lines": 801, + "functions": 29, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_15.rs": { + "content_hash": "888dabb060c0a2d85d4e41cf85931912a317a4e27fb8626fc54c8e9ac7c447d9", + "lines": 584, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_notify.rs": { + "content_hash": "c413f83c75c094afe92882c50880cdd8db88af26daeea15890fa9614723e78fb", + "lines": 789, + "functions": 45, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/destroy.rs": { + "content_hash": "99e2446766c777d132f7a0fd113bcc5f077e937b9642ae77f67b35523b02a902", + "lines": 275, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_safety.rs": { + "content_hash": "6808aa310a9f54ffe84bf5653e735a0ad600c608a907851396bf8c075d52c9cc", + "lines": 495, + "functions": 22, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_9_b.rs": { + "content_hash": "3a831a32ac2c14170211c76398f8ca81dda570c83f38df1e7ce7cafc5e3bae24", + "lines": 206, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_3_b.rs": { + "content_hash": "7f879d507e8f70be38da61e42293acf03bf3025c2efb27a5b2069ac3487c504e", + "lines": 475, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_status_6.rs": { + "content_hash": "7aad92ee7550f4497bbf6ef8c8450ca3107b215fe6091fcd58bd1c1ba3b7ba8a", + "lines": 485, + "functions": 74, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_store_archive.rs": { + "content_hash": "bcf1bb0fc5105667e853fbbdf8b7718b9d8dc3f5fcdbbaf525c3a9788bcf7526", + "lines": 143, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/snapshot.rs": { + "content_hash": "83af1a99813a12ae3c8668c3a8a38bdfd54e5efabdd337cce73502b3aaf41950", + "lines": 168, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch_graph.rs": { + "content_hash": "6880907d29ee1e23db3610830ce143e3ce6c1e5d1b9a7d3fa238e5c3d9b98c81", + "lines": 1142, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_remaining_7.rs": { + "content_hash": "03d4a2bf12817121f557c0251456edbf232593631d66cda7c7ab1747ef609ecb", + "lines": 386, + "functions": 40, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_scoring.rs": { + "content_hash": "4da920733a2851796cfe33fc50b0ddb25b29b090de2c17d63b5da731c61a5014", + "lines": 435, + "functions": 24, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_4.rs": { + "content_hash": "daf747d1945c7b4cc9fdcd35cae653abb2446da79354f4d1ace15a885b27bf08", + "lines": 585, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/apply.rs": { + "content_hash": "05543a44c4da020489c7a65b8e5ae2e594d3e4036c738ec0a8ee8f3525426352", + "lines": 289, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/copia/tests.rs": { + "content_hash": "99945b226f51c6816a3dd07f49ca4740319bf41000f379e06f00bc7560602e1c", + "lines": 307, + "functions": 0, + "max_complexity": 0, + "category": "TestCode" + }, + "src/core/resolver/resource.rs": { + "content_hash": "3bdf0233a3df72792c19239fb2e2f6adaa7797176cc84d5978f3cfd797fcaeb8", + "lines": 71, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/types/resource.rs": { + "content_hash": "58e75f542452698f3ff375faebc9fe6e3672dca984bf84404375aa68fbca6d43", + "lines": 438, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_9.rs": { + "content_hash": "1453de79861b5d7e0baa50ac8f399af82c2084516d79817a7db1cd1002cad9e6", + "lines": 621, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase92.rs": { + "content_hash": "cc5bc0612ff315eaa14e960c3bbbf8c0dccd5663df72c514d0362f04fc6df330", + "lines": 310, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase75.rs": { + "content_hash": "bf07a1a67b718dbbfa557d46495d3bd2da898466891f5526bcd817db3e3e390d", + "lines": 292, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_5_b.rs": { + "content_hash": "ae7798e2a3827d2d0946147ea00340787a86e191f15d4b98237d7b4bdd74b75c", + "lines": 207, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/mod.rs": { + "content_hash": "a531550613b6809bd1819e24a0825160f11c2ce53bcfd7a5ed0749070a530b55", + "lines": 36, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/mod.rs": { + "content_hash": "9f6044672813dbffe20b724482ecb623a36ec42be35c525f8225de85d60206ac", + "lines": 186, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_docker.rs": { + "content_hash": "d9dfa934ac8c8bfff1a3761cf5e0b4520fab47fe3f2996b2b10911788bd874fc", + "lines": 285, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/apply_variants.rs": { + "content_hash": "7fb2ff4c429a910521f9baf6668437bca47db6c49ebdc70574e1b38a380731b7", + "lines": 349, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_gpu.rs": { + "content_hash": "3fef1a4a3c63a750a6410c318f593afe6d2de68169f76c456480671f5ace8852", + "lines": 447, + "functions": 29, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/drift/tests_full.rs": { + "content_hash": "9c60bf9ae7deb70447f2ee2c8caebe6f0f2edfafe2965f4e7c59add1fd83ad87", + "lines": 455, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/store_cache_protocol.rs": { + "content_hash": "e5dadaf2f46a18ca3e6d87c33d85aeac88143a65b406d196220f349109d14778", + "lines": 177, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/state/tests_process_lock.rs": { + "content_hash": "41e861f0d13f2c40d1aaeab5a594b62f02b39da9652be90c3991aa573016dc0a", + "lines": 85, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_misc2.rs": { + "content_hash": "c8b337c89ad6a10b7594a79b366934c6164ac3057d3325805b2c7e6688d9c6d4", + "lines": 301, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_drift.rs": { + "content_hash": "5f34e558d5b53c082a28d43579f18cd4962307695c2e9fa782d4c2362399c302", + "lines": 381, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/tests_container_d.rs": { + "content_hash": "711345b985b3ef3ea21c6f626c4fcf835454b7cad6ef9f71d0d94bba04919653", + "lines": 41, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase84.rs": { + "content_hash": "33863ec3fca34a46d4f8ba2b7c3949438640899e7793463ed3dd93627d48d6ef", + "lines": 289, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/closure.rs": { + "content_hash": "5fec3b8c5ad2d7118ba1f7757bcbd756b0d424d574d7ca997de51c42ec3e660d", + "lines": 65, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/state_args.rs": { + "content_hash": "6cc54d6c4a4cff4af87c3b3abe9772c5ce5be1e2ea9647f5c6f8f72350097dcc", + "lines": 53, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/resource_scripts.rs": { + "content_hash": "bd107a90d40cfa4b2fd7abf5f8793d9414f9e7c1f1894e594d7ea640b68b8ed3", + "lines": 189, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/drift/tests_lifecycle.rs": { + "content_hash": "eaa542320d4c1728a3863d206050c808e1f22af47284c1d7489cbadb8c42c872", + "lines": 146, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_validate3_c.rs": { + "content_hash": "9fd07efa885746790d5b0da5015a316ac1314ea36c23c6a81f5da3174a60d922", + "lines": 454, + "functions": 57, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase72.rs": { + "content_hash": "0139d14fca9a40bb4118f91d4fc4ccd9c6a14577494a34ec92f84185ad97add1", + "lines": 279, + "functions": 24, + "max_complexity": 0, + "category": "RustSource" + } + }, + "coverage_required": [ + "src/core/tests_secrets.rs", + "src/core/recipe/tests_expansion.rs", + "src/core/recipe/tests_integration.rs", + "src/core/recipe/mod.rs", + "src/core/recipe/tests_validation.rs", + "src/core/recipe/validation.rs", + "src/core/recipe/types.rs", + "src/core/recipe/expansion.rs", + "src/core/recipe/validation_types.rs", + "src/core/mod.rs", + "src/core/scoring.rs", + "src/core/tests_scoring_b.rs", + "src/core/executor/strategies.rs", + "src/core/executor/tests_edge_record.rs", + "src/core/executor/tests_edge_apply.rs", + "src/core/executor/tests_advanced.rs", + "src/core/executor/mod.rs", + "src/core/executor/resource_ops.rs", + "src/core/executor/tests_converge2.rs", + "src/core/executor/tests_parallel.rs", + "src/core/executor/machine_wave.rs", + "src/core/executor/tests_filters.rs", + "src/core/executor/test_fixtures.rs", + "src/core/executor/tests_rolling.rs", + "src/core/executor/tests_waves.rs", + "src/core/executor/helpers.rs", + "src/core/executor/tests_localhost.rs", + "src/core/executor/tests_localhost2.rs", + "src/core/executor/tests_hooks.rs", + "src/core/executor/tests_drift.rs", + "src/core/executor/tests_converge.rs", + "src/core/executor/tests_core.rs", + "src/core/executor/tests_edge_details.rs", + "src/core/executor/tests_concurrent.rs", + "src/core/executor/machine.rs", + "src/core/parser/tests_misc_2b.rs", + "src/core/parser/tests_expansion.rs", + "src/core/parser/tests_arch.rs", + "src/core/parser/mod.rs", + "src/core/parser/tests_misc_2.rs", + "src/core/parser/tests_includes.rs", + "src/core/parser/resource_types.rs", + "src/core/parser/tests_validation.rs", + "src/core/parser/tests_misc.rs", + "src/core/parser/policy.rs", + "src/core/parser/includes.rs", + "src/core/parser/validation.rs", + "src/core/parser/tests_misc_3.rs", + "src/core/parser/expansion.rs", + "src/core/parser/tests_core.rs", + "src/core/parser/tests_triggers.rs", + "src/core/parser/recipes.rs", + "src/core/parser/tests_misc_4.rs", + "src/core/parser/tests_policy.rs", + "src/core/migrate.rs", + "src/core/planner/tests_when.rs", + "src/core/planner/tests_advanced.rs", + "src/core/planner/mod.rs", + "src/core/planner/tests_helpers.rs", + "src/core/planner/tests_hash.rs", + "src/core/planner/tests_lifecycle.rs", + "src/core/planner/tests_determine.rs", + "src/core/planner/tests_describe.rs", + "src/core/planner/tests_plan.rs", + "src/core/planner/tests_filter.rs", + "src/core/tests_purifier.rs", + "src/core/purifier.rs", + "src/core/resolver/resource.rs", + "src/core/resolver/mod.rs", + "src/core/resolver/tests_functions.rs", + "src/core/resolver/tests_helpers.rs", + "src/core/resolver/tests_dag.rs", + "src/core/resolver/tests_waves.rs", + "src/core/resolver/dag.rs", + "src/core/resolver/template.rs", + "src/core/resolver/data.rs", + "src/core/resolver/tests_data.rs", + "src/core/resolver/tests_template.rs", + "src/core/resolver/functions.rs", + "src/core/resolver/tests_proptest.rs", + "src/core/resolver/tests_resource.rs", + "src/core/state/tests_edge.rs", + "src/core/state/mod.rs", + "src/core/state/tests_helpers.rs", + "src/core/state/tests_process_lock.rs", + "src/core/state/tests_encrypt.rs", + "src/core/state/tests_basic.rs", + "src/core/tests_scoring.rs", + "src/core/secrets.rs", + "src/core/codegen/tests_completeness.rs", + "src/core/codegen/mod.rs", + "src/core/codegen/test_fixtures.rs", + "src/core/codegen/dispatch.rs", + "src/core/codegen/tests_coverage.rs", + "src/core/codegen/tests_dispatch.rs", + "src/core/conditions.rs", + "src/core/store/tests_sync_exec.rs", + "src/core/store/tests_lockfile.rs", + "src/core/store/convert.rs", + "src/core/store/conda.rs", + "src/core/store/gc.rs", + "src/core/store/tests_convert_exec.rs", + "src/core/store/tests_path.rs", + "src/core/store/store_diff.rs", + "src/core/store/sandbox_exec.rs", + "src/core/store/tests_pin_resolve.rs", + "src/core/store/tests_chunker.rs", + "src/core/store/mod.rs", + "src/core/store/tests_cache.rs", + "src/core/store/substitution.rs", + "src/core/store/far.rs", + "src/core/store/profile.rs", + "src/core/store/path.rs", + "src/core/store/tests_hf_config.rs", + "src/core/store/tests_sandbox.rs", + "src/core/store/secret_scan.rs", + "src/core/store/repro_score.rs", + "src/core/store/contract_scaffold.rs", + "src/core/store/pin_resolve.rs", + "src/core/store/tests_purity.rs", + "src/core/store/tests_substitution.rs", + "src/core/store/validate.rs", + "src/core/store/tests_profile.rs", + "src/core/store/tests_store_diff.rs", + "src/core/store/cache.rs", + "src/core/store/tests_convert.rs", + "src/core/store/sandbox.rs", + "src/core/store/contract_coverage.rs", + "src/core/store/tests_closure.rs", + "src/core/store/lockfile.rs", + "src/core/store/gc_exec.rs", + "src/core/store/meta.rs", + "src/core/store/tests_gc_exec.rs", + "src/core/store/chunker.rs", + "src/core/store/kernel_far.rs", + "src/core/store/tests_conda.rs", + "src/core/store/convert_exec.rs", + "src/core/store/pin_tripwire.rs", + "src/core/store/tests_derivation_exec.rs", + "src/core/store/tests_far.rs", + "src/core/store/tests_secret_scan.rs", + "src/core/store/provider_exec.rs", + "src/core/store/sync_exec.rs", + "src/core/store/purity.rs", + "src/core/store/tests_repro_score.rs", + "src/core/store/reference.rs", + "src/core/store/tests_provider.rs", + "src/core/store/tests_validate.rs", + "src/core/store/derivation_exec.rs", + "src/core/store/tests_contract_coverage.rs", + "src/core/store/tests_contract_scaffold.rs", + "src/core/store/hf_config.rs", + "src/core/store/tests_cache_exec.rs", + "src/core/store/tests_sandbox_run.rs", + "src/core/store/tests_pin_tripwire.rs", + "src/core/store/tests_derivation.rs", + "src/core/store/derivation.rs", + "src/core/store/sandbox_run.rs", + "src/core/store/tests_kernel_far.rs", + "src/core/store/tests_meta.rs", + "src/core/store/tests_reference.rs", + "src/core/store/cache_exec.rs", + "src/core/store/tests_sandbox_exec.rs", + "src/core/store/tests_gc.rs", + "src/core/store/tests_provider_exec.rs", + "src/core/store/tests_bash_provability.rs", + "src/core/store/closure.rs", + "src/core/store/provider.rs", + "src/core/tests_purifier_b.rs", + "src/core/types/resource.rs", + "src/core/types/mod.rs", + "src/core/types/tests_state.rs", + "src/core/types/policy.rs", + "src/core/types/config.rs", + "src/core/types/tests_config.rs", + "src/core/types/tests_resource.rs", + "src/core/types/state_types.rs", + "src/mcp/tests_handlers.rs", + "src/mcp/registry.rs", + "src/mcp/mod.rs", + "src/mcp/handlers.rs", + "src/mcp/tests_handlers_more.rs", + "src/mcp/types.rs", + "src/mcp/tests_registry.rs", + "src/cli/tests_misc_5.rs", + "src/cli/tests_phase71.rs", + "src/cli/tests_snapshot.rs", + "src/cli/status_drift_intel.rs", + "src/cli/tests_graph_core_2.rs", + "src/cli/graph_scoring.rs", + "src/cli/validate_maturity.rs", + "src/cli/validate_safety.rs", + "src/cli/status_resource_intel.rs", + "src/cli/status_operational.rs", + "src/cli/tests_misc_1_b.rs", + "src/cli/validate_resources.rs", + "src/cli/snapshot.rs", + "src/cli/tests_misc_9_b.rs", + "src/cli/graph_governance.rs", + "src/cli/drift.rs", + "src/cli/tests_diff_cmd.rs", + "src/cli/tests_phase79.rs", + "src/cli/tests_apply_10.rs", + "src/cli/tests_status_core_6.rs", + "src/cli/status_security.rs", + "src/cli/dispatch_notify.rs", + "src/cli/commands/mod.rs", + "src/cli/commands/misc_ops_args.rs", + "src/cli/commands/status_args.rs", + "src/cli/commands/validate_args.rs", + "src/cli/commands/misc_args.rs", + "src/cli/commands/plan_args.rs", + "src/cli/commands/lock_core_args.rs", + "src/cli/commands/apply_args.rs", + "src/cli/commands/state_args.rs", + "src/cli/commands/store_args.rs", + "src/cli/commands/lock_ops_args.rs", + "src/cli/commands/subcmd_args.rs", + "src/cli/commands/graph_args.rs", + "src/cli/tests_graph_core.rs", + "src/cli/tests_status_core_3_b.rs", + "src/cli/tests_misc_1.rs", + "src/cli/tests_infra.rs", + "src/cli/status_fleet_insight.rs", + "src/cli/tests_validate_core_2.rs", + "src/cli/tests_cov_validate3_d.rs", + "src/cli/tests_phase86.rs", + "src/cli/validate_advanced.rs", + "src/cli/tests_cov_status_1.rs", + "src/cli/dispatch_validate.rs", + "src/cli/tests_status_core_2.rs", + "src/cli/observe.rs", + "src/cli/score.rs", + "src/cli/tests_plan_file.rs", + "src/cli/lock_core.rs", + "src/cli/tests_graph_core_4.rs", + "src/cli/graph_impact.rs", + "src/cli/graph_transport.rs", + "src/cli/tests_validate_core_b.rs", + "src/cli/tests_status_core_5_b.rs", + "src/cli/validate_analytics.rs", + "src/cli/status_fleet.rs", + "src/cli/tests_cov_status_6.rs", + "src/cli/status_compliance.rs", + "src/cli/tests_status_core_8_b.rs", + "src/cli/tests_show_2.rs", + "src/cli/tests_cov_args_4.rs", + "src/cli/print_helpers.rs", + "src/cli/status_intelligence.rs", + "src/cli/dispatch_graph.rs", + "src/cli/tests_apply_9.rs", + "src/cli/tests_score.rs", + "src/cli/mod.rs", + "src/cli/tests_misc_2.rs", + "src/cli/tests_phase88.rs", + "src/cli/validate_quality.rs", + "src/cli/dispatch_misc.rs", + "src/cli/graph_extended.rs", + "src/cli/tests_cov_fleet_b.rs", + "src/cli/tests_show_1.rs", + "src/cli/tests_helpers_state.rs", + "src/cli/tests_phase77.rs", + "src/cli/tests_apply_11.rs", + "src/cli/status_alerts.rs", + "src/cli/validate_hygiene.rs", + "src/cli/status_diagnostics.rs", + "src/cli/tests_helpers.rs", + "src/cli/graph_lifecycle.rs", + "src/cli/tests_misc_6.rs", + "src/cli/tests_apply_1.rs", + "src/cli/store_pin.rs", + "src/cli/tests_misc_10.rs", + "src/cli/tests_check.rs", + "src/cli/tests_store_archive.rs", + "src/cli/store_import.rs", + "src/cli/tests_cov_notify.rs", + "src/cli/tests_status_core_5.rs", + "src/cli/tests_validate_core.rs", + "src/cli/graph_intelligence_ext.rs", + "src/cli/tests_workspace.rs", + "src/cli/validate_compliance.rs", + "src/cli/tests_apply_20.rs", + "src/cli/tests_cov_remaining_3.rs", + "src/cli/helpers_state.rs", + "src/cli/tests_cov_notify_2.rs", + "src/cli/graph_quality.rs", + "src/cli/store_archive.rs", + "src/cli/tests_cov_fleet.rs", + "src/cli/tests_lock_core.rs", + "src/cli/tests_graph_core_3.rs", + "src/cli/tests_cov_graph3_c.rs", + "src/cli/status_convergence.rs", + "src/cli/tests_cov_status_4.rs", + "src/cli/status_resources.rs", + "src/cli/tests_show.rs", + "src/cli/status_operational_ext.rs", + "src/cli/tests_cov_dispatch_3.rs", + "src/cli/history.rs", + "src/cli/graph_analysis.rs", + "src/cli/tests_cov_status_5.rs", + "src/cli/status_drift_intel2.rs", + "src/cli/test_fixtures.rs", + "src/cli/tests_cov_lock.rs", + "src/cli/tests_show_3.rs", + "src/cli/graph_weight.rs", + "src/cli/validate_paths.rs", + "src/cli/tests_cov_validate3_c.rs", + "src/cli/tests_cov_args.rs", + "src/cli/tests_cov_validate2_b.rs", + "src/cli/tests_graph_core_5.rs", + "src/cli/tests_apply_21.rs", + "src/cli/tests_cov_remaining_2.rs", + "src/cli/graph_cross.rs", + "src/cli/status_core.rs", + "src/cli/helpers.rs", + "src/cli/dispatch_status.rs", + "src/cli/tests_status_core_7.rs", + "src/cli/status_maturity.rs", + "src/cli/validate_compliance_ext.rs", + "src/cli/tests_phase94.rs", + "src/cli/tests_phase100.rs", + "src/cli/status_transport.rs", + "src/cli/store_cache.rs", + "src/cli/tests_phase99.rs", + "src/cli/tests_phase81.rs", + "src/cli/tests_cov_notify_3.rs", + "src/cli/tests_cov_args_2.rs", + "src/cli/tests_apply_18.rs", + "src/cli/tests_phase68.rs", + "src/cli/tests_phase106.rs", + "src/cli/tests_phase85.rs", + "src/cli/tests_status_queries.rs", + "src/cli/tests_status_core_1.rs", + "src/cli/tests_phase87.rs", + "src/cli/tests_phase65.rs", + "src/cli/tests_validate_core_3.rs", + "src/cli/status_resource_detail.rs", + "src/cli/tests_phase105.rs", + "src/cli/tests_misc.rs", + "src/cli/doctor.rs", + "src/cli/tests_apply_19.rs", + "src/cli/tests_cov_validate3_b.rs", + "src/cli/tests_phase90.rs", + "src/cli/tests_import_cmd.rs", + "src/cli/tests_phase83.rs", + "src/cli/tests_cov_status_2.rs", + "src/cli/tests_phase73.rs", + "src/cli/lock_lifecycle.rs", + "src/cli/status_failures.rs", + "src/cli/tests_phase59.rs", + "src/cli/tests_phase62.rs", + "src/cli/tests_phase96.rs", + "src/cli/tests_apply_3.rs", + "src/cli/tests_status_core_b.rs", + "src/cli/tests_phase98.rs", + "src/cli/tests_fleet_ops_1.rs", + "src/cli/tests_phase76.rs", + "src/cli/workspace.rs", + "src/cli/tests_misc_7_b.rs", + "src/cli/plan.rs", + "src/cli/tests_cov_dispatch_4.rs", + "src/cli/tests_misc_8.rs", + "src/cli/check.rs", + "src/cli/tests_phase82.rs", + "src/cli/tests_apply_7.rs", + "src/cli/tests_apply_5.rs", + "src/cli/tests_cov_status_4_c.rs", + "src/cli/status_recovery.rs", + "src/cli/graph_topology.rs", + "src/cli/status_insights.rs", + "src/cli/tests_phase72.rs", + "src/cli/tests_status_core_4_b.rs", + "src/cli/tests_status_core_4.rs", + "src/cli/fleet_ops.rs", + "src/cli/infra.rs", + "src/cli/validate_security.rs", + "src/cli/tests_store_import.rs", + "src/cli/apply_output.rs", + "src/cli/validate_structural.rs", + "src/cli/tests_phase91.rs", + "src/cli/tests_apply.rs", + "src/cli/tests_check_2.rs", + "src/cli/tests_status_core_10.rs", + "src/cli/tests_cov_transport_3.rs", + "src/cli/init.rs", + "src/cli/tests_phase95.rs", + "src/cli/tests_phase63.rs", + "src/cli/tests_phase66.rs", + "src/cli/tests_apply_15.rs", + "src/cli/tests_fleet_ops.rs", + "src/cli/apply_helpers.rs", + "src/cli/tests_cov_remaining_6.rs", + "src/cli/tests_cov_remaining.rs", + "src/cli/tests_phase84.rs", + "src/cli/tests_phase97.rs", + "src/cli/tests_cov_transport_2.rs", + "src/cli/validate_core.rs", + "src/cli/tests_phase67.rs", + "src/cli/graph_topology_ext.rs", + "src/cli/graph_analytics_ext.rs", + "src/cli/validate_ordering.rs", + "src/cli/graph_intelligence_ext2.rs", + "src/cli/tests_destroy.rs", + "src/cli/tests_fleet_reporting.rs", + "src/cli/tests_cov_dispatch_2.rs", + "src/cli/dispatch.rs", + "src/cli/dispatch_store.rs", + "src/cli/tests_phase89.rs", + "src/cli/tests_status_core_3.rs", + "src/cli/tests_validate_core_1.rs", + "src/cli/tests_helpers_time.rs", + "src/cli/tests_status_core_9.rs", + "src/cli/tests_store_convert.rs", + "src/cli/tests_cov_apply.rs", + "src/cli/graph_resilience_ext.rs", + "src/cli/validate_ordering_ext.rs", + "src/cli/tests_cov_status_3.rs", + "src/cli/tests_status_core_6_b.rs", + "src/cli/graph_intelligence.rs", + "src/cli/dispatch_notify_custom.rs", + "src/cli/tests_drift.rs", + "src/cli/tests_apply_23.rs", + "src/cli/tests_cov_args_3.rs", + "src/cli/tests_apply_16.rs", + "src/cli/tests_misc_3.rs", + "src/cli/validate_ownership.rs", + "src/cli/secrets.rs", + "src/cli/tests_cov_args_extra_b.rs", + "src/cli/status_counts.rs", + "src/cli/status_observability.rs", + "src/cli/helpers_time.rs", + "src/cli/tests_cov_graph2.rs", + "src/cli/lock_security.rs", + "src/cli/tests_apply_8.rs", + "src/cli/tests_cov_args_extra.rs", + "src/cli/tests_apply_6.rs", + "src/cli/tests_store_pin.rs", + "src/cli/tests_apply_2.rs", + "src/cli/tests_cov_remaining_7.rs", + "src/cli/graph_export.rs", + "src/cli/tests_cov_args_2_b.rs", + "src/cli/tests_phase101.rs", + "src/cli/graph_resilience.rs", + "src/cli/lock_merge.rs", + "src/cli/dispatch_status_ext.rs", + "src/cli/tests_apply_helpers.rs", + "src/cli/tests_check_1.rs", + "src/cli/validate_policy.rs", + "src/cli/tests_validate_core_2_b.rs", + "src/cli/tests_apply_12.rs", + "src/cli/tests_cov_remaining_8.rs", + "src/cli/status_intelligence_ext2.rs", + "src/cli/status_intelligence_ext.rs", + "src/cli/tests_doctor.rs", + "src/cli/tests_history.rs", + "src/cli/tests_validate_transport.rs", + "src/cli/status_quality.rs", + "src/cli/tests_status_core.rs", + "src/cli/validate_governance.rs", + "src/cli/graph_analytics.rs", + "src/cli/tests_cov_graph3.rs", + "src/cli/tests_destroy_1.rs", + "src/cli/tests_plan.rs", + "src/cli/tests_apply_17.rs", + "src/cli/status_cost.rs", + "src/cli/tests_observe.rs", + "src/cli/tests_cov_remaining_9.rs", + "src/cli/tests_print_helpers.rs", + "src/cli/status_resilience.rs", + "src/cli/dispatch_lock.rs", + "src/cli/graph_paths.rs", + "src/cli/tests_cov_misc2_b.rs", + "src/cli/status_fleet_detail.rs", + "src/cli/graph_visualization.rs", + "src/cli/status_drift.rs", + "src/cli/tests_cov_dispatch.rs", + "src/cli/tests_phase107.rs", + "src/cli/tests_phase74.rs", + "src/cli/diff_cmd.rs", + "src/cli/tests_cov_status_4_b.rs", + "src/cli/tests_cov_remaining_4.rs", + "src/cli/validate_governance_ext.rs", + "src/cli/validate_security_ext.rs", + "src/cli/tests_status_core_7_b.rs", + "src/cli/tests_apply_13.rs", + "src/cli/tests_phase104.rs", + "src/cli/tests_cov_misc2.rs", + "src/cli/tests_apply_6_b.rs", + "src/cli/status_queries.rs", + "src/cli/tests_phase60.rs", + "src/cli/destroy.rs", + "src/cli/status_trends.rs", + "src/cli/validate_transport.rs", + "src/cli/store_ops.rs", + "src/cli/tests_validate_core_1_b.rs", + "src/cli/tests_misc_5_b.rs", + "src/cli/validate_audit.rs", + "src/cli/tests_graph_core_b.rs", + "src/cli/tests_cov_transport.rs", + "src/cli/validate_topology.rs", + "src/cli/lint.rs", + "src/cli/fleet_reporting.rs", + "src/cli/import_cmd.rs", + "src/cli/tests_phase61.rs", + "src/cli/tests_cov_validate2.rs", + "src/cli/tests_cov_validate.rs", + "src/cli/status_analytics.rs", + "src/cli/lock_audit.rs", + "src/cli/tests_cov_status_7.rs", + "src/cli/validate_scoring.rs", + "src/cli/graph_advanced.rs", + "src/cli/status_operational_ext2.rs", + "src/cli/tests_misc_9.rs", + "src/cli/tests_status_core_2_b.rs", + "src/cli/tests_phase70.rs", + "src/cli/tests_cov_graph.rs", + "src/cli/graph_compliance.rs", + "src/cli/tests_graph_core_1.rs", + "src/cli/tests_phase64.rs", + "src/cli/status_health.rs", + "src/cli/graph_core.rs", + "src/cli/show.rs", + "src/cli/tests_init.rs", + "src/cli/status_predictive.rs", + "src/cli/tests_phase69.rs", + "src/cli/tests_phase103.rs", + "src/cli/tests_phase92.rs", + "src/cli/tests_cov_apply_b.rs", + "src/cli/tests_cov_remaining_5.rs", + "src/cli/validate_config_quality.rs", + "src/cli/tests_cov_notify_4.rs", + "src/cli/tests_apply_14.rs", + "src/cli/tests_phase78.rs", + "src/cli/tests_misc_4.rs", + "src/cli/dispatch_apply.rs", + "src/cli/tests_phase80.rs", + "src/cli/tests_store_ops.rs", + "src/cli/tests_phase102.rs", + "src/cli/tests_lock_core_1.rs", + "src/cli/graph_health.rs", + "src/cli/tests_plan_1.rs", + "src/cli/tests_graph_core_6.rs", + "src/cli/lock_ops.rs", + "src/cli/store_convert.rs", + "src/cli/tests_cov_validate3.rs", + "src/cli/tests_misc_7.rs", + "src/cli/tests_store_cache.rs", + "src/cli/tests_apply_4.rs", + "src/cli/tests_lint.rs", + "src/cli/tests_status_core_1_b.rs", + "src/cli/lock_repair.rs", + "src/cli/tests_status_core_8.rs", + "src/cli/tests_cov_validate2_c.rs", + "src/cli/validate_resilience.rs", + "src/cli/tests_cov_graph3_b.rs", + "src/cli/tests_phase75.rs", + "src/cli/apply.rs", + "src/cli/apply_variants.rs", + "src/cli/tests_apply_22.rs", + "src/main.rs", + "src/copia/mod.rs", + "src/transport/container.rs", + "src/transport/tests_dispatch_b.rs", + "src/transport/tests_ssh.rs", + "src/transport/tests_container_b.rs", + "src/transport/tests_container.rs", + "src/transport/mod.rs", + "src/transport/tests_container_c.rs", + "src/transport/pepita.rs", + "src/transport/ssh.rs", + "src/transport/tests_dispatch.rs", + "src/transport/tests_container_d.rs", + "src/transport/local.rs", + "src/resources/gpu.rs", + "src/resources/tests_user.rs", + "src/resources/mod.rs", + "src/resources/task.rs", + "src/resources/cron.rs", + "src/resources/pepita/mod.rs", + "src/resources/tests_file.rs", + "src/resources/tests_mount_b.rs", + "src/resources/mount.rs", + "src/resources/tests_docker.rs", + "src/resources/docker.rs", + "src/resources/user.rs", + "src/resources/tests_mount.rs", + "src/resources/model.rs", + "src/resources/network.rs", + "src/resources/tests_service.rs", + "src/resources/tests_docker_b.rs", + "src/resources/tests_file_b.rs", + "src/resources/file.rs", + "src/resources/tests_package.rs", + "src/resources/tests_package_b.rs", + "src/resources/package.rs", + "src/resources/tests_gpu.rs", + "src/resources/service.rs", + "src/lib.rs", + "src/tripwire/tests_anomaly.rs", + "src/tripwire/mod.rs", + "src/tripwire/anomaly.rs", + "src/tripwire/eventlog.rs", + "src/tripwire/drift/tests_fj036.rs", + "src/tripwire/drift/mod.rs", + "src/tripwire/drift/tests_lifecycle.rs", + "src/tripwire/drift/tests_edge_fj132_b.rs", + "src/tripwire/drift/tests_basic_b.rs", + "src/tripwire/drift/tests_edge_fj131.rs", + "src/tripwire/drift/tests_transport.rs", + "src/tripwire/drift/tests_edge_fj132.rs", + "src/tripwire/drift/tests_full.rs", + "src/tripwire/drift/tests_basic.rs", + "src/tripwire/tests_hasher_b.rs", + "src/tripwire/tests_eventlog_b.rs", + "src/tripwire/hasher.rs", + "src/tripwire/tests_eventlog.rs", + "src/tripwire/tracer.rs", + "src/tripwire/tests_hasher.rs", + "benches/core_bench.rs", + "benches/store_bench.rs", + "examples/mcp_server.rs", + "examples/multi_machine.rs", + "examples/arch_filtering.rs", + "examples/store_provider_import.rs", + "examples/parse_and_plan.rs", + "examples/store_cache_protocol.rs", + "examples/store_executors.rs", + "examples/state_management.rs", + "examples/template_resolution.rs", + "examples/gpu_container_transport.rs", + "examples/blake3_hashing.rs", + "examples/full_stack_deploy.rs", + "examples/store_pin_resolve.rs", + "examples/validation.rs", + "examples/codegen_scripts.rs", + "examples/resource_scripts.rs", + "examples/trace_provenance.rs", + "examples/anomaly_detection.rs", + "examples/score_cookbook.rs", + "examples/conda_to_far.rs", + "examples/store_reproducibility.rs", + "examples/recipe_expansion.rs", + "examples/container_transport.rs", + "examples/shell_purifier.rs", + "examples/event_logging.rs", + "examples/store_gc_lifecycle.rs", + "examples/user_management.rs", + "examples/drift_detection.rs" + ], + "manifest_hash": "9eaf79c937f2b14063e4eb87d34896b0b20f5d65df3d1f96144cfed278428c00" + }, + "thresholds": { + "min_coverage_pct": 95.0, + "min_per_file_coverage_pct": 95.0, + "max_tdg_regression": 0.0, + "max_function_complexity": 20, + "max_file_lines": 500, + "min_spec_score": 95, + "require_github_sync": true, + "require_spec_update": true, + "require_roadmap_update": true, + "block_on_new_satd": true, + "block_on_new_dead_code": true, + "require_lint_pass": true, + "max_fix_chain": 3, + "block_on_untested_variants": true, + "block_on_cross_crate_failure": false, + "block_on_regression": false, + "require_proof_verification": false, + "max_sorry_count": 0, + "min_theorem_coverage": 0.0, + "block_on_file_size": true + }, + "claims": [ + { + "hypothesis": "All baseline files still exist", + "falsification_method": "ManifestIntegrity", + "evidence_required": { + "FileList": [] + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "The falsifier is active and detecting (Meta-Check)", + "falsification_method": "MetaFalsification", + "evidence_required": { + "CounterExample": { + "details": "" + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "No coverage exclusion gaming", + "falsification_method": "CoverageGaming", + "evidence_required": { + "FileList": [] + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "All changed lines are covered", + "falsification_method": "DifferentialCoverage", + "evidence_required": { + "NumericComparison": { + "actual": 0.0, + "threshold": 100.0 + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "Total coverage >= 95%", + "falsification_method": "AbsoluteCoverage", + "evidence_required": { + "NumericComparison": { + "actual": 0.0, + "threshold": 95.0 + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "TDG score >= baseline", + "falsification_method": "TdgRegression", + "evidence_required": { + "NumericComparison": { + "actual": 0.0, + "threshold": 0.0 + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "No function exceeds complexity 20", + "falsification_method": "ComplexityRegression", + "evidence_required": { + "NumericComparison": { + "actual": 0.0, + "threshold": 20.0 + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "No vulnerable dependencies added", + "falsification_method": "SupplyChainIntegrity", + "evidence_required": { + "CounterExample": { + "details": "" + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "No file exceeds 500 lines", + "falsification_method": "FileSizeRegression", + "evidence_required": { + "NumericComparison": { + "actual": 0.0, + "threshold": 500.0 + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "Spec & Roadmap Quality", + "falsification_method": "SpecQuality", + "evidence_required": { + "NumericComparison": { + "actual": 0.0, + "threshold": 95.0 + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "All changes pushed", + "falsification_method": "GitHubSync", + "evidence_required": { + "GitState": { + "unpushed_commits": 0, + "dirty_files": 0 + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "All examples compile and run", + "falsification_method": "ExamplesCompile", + "evidence_required": { + "CounterExample": { + "details": "" + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "pmat-book validation passes", + "falsification_method": "BookValidation", + "evidence_required": { + "CounterExample": { + "details": "" + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "No new SATD markers (TODO/FIXME/HACK)", + "falsification_method": "SatdDetection", + "evidence_required": { + "FileList": [] + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "No new dead code introduced", + "falsification_method": "DeadCodeDetection", + "evidence_required": { + "FileList": [] + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "All files have >= 95% coverage", + "falsification_method": "PerFileCoverage", + "evidence_required": { + "FileList": [] + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "make lint passes", + "falsification_method": "LintPass", + "evidence_required": { + "BooleanCheck": false + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "All match arm variants have test coverage", + "falsification_method": "VariantCoverage", + "evidence_required": { + "FileList": [] + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "No fix-after-fix chains exceed limit", + "falsification_method": "FixChainLimit", + "evidence_required": { + "NumericComparison": { + "actual": 0.0, + "threshold": 3.0 + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "Cross-crate integration tests pass", + "falsification_method": "CrossCrateParity", + "evidence_required": { + "BooleanCheck": false + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "No performance regressions detected", + "falsification_method": "RegressionGate", + "evidence_required": { + "NumericComparison": { + "actual": 0.0, + "threshold": 0.0 + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "No incomplete proofs (sorry) introduced", + "falsification_method": "FormalProofVerification", + "evidence_required": { + "NumericComparison": { + "actual": 0.0, + "threshold": 0.0 + } + }, + "result": null, + "override_info": null + } + ], + "profile": "Pmat", + "require": [ + { + "id": "require.compiles", + "kind": "Require", + "description": "Project builds successfully", + "falsification_method": "ManifestIntegrity", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "require.tests_exist", + "kind": "Require", + "description": "At least one test exists", + "falsification_method": "MetaFalsification", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "require.manifest_integrity", + "kind": "Require", + "description": "FileManifest anti-gaming check", + "falsification_method": "ManifestIntegrity", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "require.meta_falsification", + "kind": "Require", + "description": "Falsifier self-check active", + "falsification_method": "MetaFalsification", + "threshold": null, + "blocking": true, + "source": "Default" + } + ], + "ensure": [ + { + "id": "ensure.tests_pass", + "kind": "Ensure", + "description": "All tests pass", + "falsification_method": "MetaFalsification", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.git_sync", + "kind": "Ensure", + "description": "All changes pushed to remote", + "falsification_method": "GitHubSync", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.no_regression", + "kind": "Ensure", + "description": "No previously-passing test now fails", + "falsification_method": "MetaFalsification", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.coverage", + "kind": "Ensure", + "description": "Coverage >= 95%", + "falsification_method": "AbsoluteCoverage", + "threshold": { + "Numeric": { + "metric": "coverage_pct", + "op": "Gte", + "value": 95.0 + } + }, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.differential_coverage", + "kind": "Ensure", + "description": "Changed lines must be covered", + "falsification_method": "DifferentialCoverage", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.supply_chain", + "kind": "Ensure", + "description": "No vulnerable dependencies", + "falsification_method": "SupplyChainIntegrity", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.examples_compile", + "kind": "Ensure", + "description": "All examples compile and run", + "falsification_method": "ExamplesCompile", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.tdg_regression", + "kind": "Ensure", + "description": "TDG score >= baseline", + "falsification_method": "TdgRegression", + "threshold": { + "Delta": { + "metric": "tdg_score", + "op": "Gte", + "value": 0.0 + } + }, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.coverage_gaming", + "kind": "Ensure", + "description": "No coverage exclusion gaming", + "falsification_method": "CoverageGaming", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.spec_quality", + "kind": "Ensure", + "description": "Spec score meets threshold", + "falsification_method": "SpecQuality", + "threshold": { + "Numeric": { + "metric": "spec_score", + "op": "Gte", + "value": 95.0 + } + }, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.book_validation", + "kind": "Ensure", + "description": "pmat-book validation passes", + "falsification_method": "BookValidation", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.per_file_coverage", + "kind": "Ensure", + "description": "All files >= 95% coverage", + "falsification_method": "PerFileCoverage", + "threshold": { + "Numeric": { + "metric": "per_file_coverage_pct", + "op": "Gte", + "value": 95.0 + } + }, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.variant_coverage", + "kind": "Ensure", + "description": "All match arm variants tested", + "falsification_method": "VariantCoverage", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.cross_crate_parity", + "kind": "Ensure", + "description": "Cross-crate integration tests pass", + "falsification_method": "CrossCrateParity", + "threshold": null, + "blocking": false, + "source": "Default" + } + ], + "invariant": [ + { + "id": "invariant.compiles", + "kind": "Invariant", + "description": "Project compiles at every checkpoint", + "falsification_method": "ManifestIntegrity", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "invariant.file_size", + "kind": "Invariant", + "description": "No file exceeds 500 lines", + "falsification_method": "FileSizeRegression", + "threshold": { + "Numeric": { + "metric": "max_file_lines", + "op": "Lte", + "value": 500.0 + } + }, + "blocking": true, + "source": "Default" + }, + { + "id": "invariant.lint", + "kind": "Invariant", + "description": "cargo clippy passes", + "falsification_method": "LintPass", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "invariant.complexity", + "kind": "Invariant", + "description": "No function exceeds complexity 20", + "falsification_method": "ComplexityRegression", + "threshold": { + "Numeric": { + "metric": "max_complexity", + "op": "Lte", + "value": 20.0 + } + }, + "blocking": true, + "source": "Default" + }, + { + "id": "invariant.satd", + "kind": "Invariant", + "description": "No new SATD markers", + "falsification_method": "SatdDetection", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "invariant.dead_code", + "kind": "Invariant", + "description": "No new dead code introduced", + "falsification_method": "DeadCodeDetection", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "invariant.fix_chain", + "kind": "Invariant", + "description": "Fix-after-fix chains within limit", + "falsification_method": "FixChainLimit", + "threshold": { + "Numeric": { + "metric": "fix_chain_count", + "op": "Lte", + "value": 3.0 + } + }, + "blocking": true, + "source": "Default" + } + ], + "excluded_claims": [], + "iteration": 1, + "inherited_postconditions": [], + "contract_quality": { + "active_claims": 25, + "applicable_claims": 25, + "score": 1.0, + "rating": "Full" + } +} \ No newline at end of file diff --git a/.pmat-work/PMAT-027/falsification/receipt-2026-03-02T21-46-25.489495139+00-00.json b/.pmat-work/PMAT-027/falsification/receipt-2026-03-02T21-46-25.489495139+00-00.json new file mode 100644 index 00000000..a22ef2f2 --- /dev/null +++ b/.pmat-work/PMAT-027/falsification/receipt-2026-03-02T21-46-25.489495139+00-00.json @@ -0,0 +1,196 @@ +{ + "id": "019cb084-4951-7c12-83ce-3af2efaed19b", + "git_sha": "2611c9da7913b519c49e79cfee316a7ba3548393", + "timestamp": "2026-03-02T21:46:25.489495139+00:00", + "trigger": "WorkComplete", + "work_item_id": "PMAT-027", + "verdicts": [ + { + "hypothesis": "All baseline files still exist", + "method": "ManifestIntegrity", + "falsified": false, + "is_blocking": true, + "explanation": "All 654 files present", + "evidence_summary": null + }, + { + "hypothesis": "The falsifier is active and detecting (Meta-Check)", + "method": "MetaFalsification", + "falsified": false, + "is_blocking": true, + "explanation": "Detected dummy gaming pattern correctly", + "evidence_summary": null + }, + { + "hypothesis": "No coverage exclusion gaming", + "method": "CoverageGaming", + "falsified": false, + "is_blocking": true, + "explanation": "No gaming patterns found in 667 files", + "evidence_summary": null + }, + { + "hypothesis": "All changed lines are covered", + "method": "DifferentialCoverage", + "falsified": false, + "is_blocking": true, + "explanation": "46 changed files (coverage check requires llvm-cov data)", + "evidence_summary": null + }, + { + "hypothesis": "Total coverage >= 95%", + "method": "AbsoluteCoverage", + "falsified": false, + "is_blocking": true, + "explanation": "No coverage data (run 'make coverage' to establish baseline), threshold: 95.0%", + "evidence_summary": null + }, + { + "hypothesis": "TDG score >= baseline", + "method": "TdgRegression", + "falsified": false, + "is_blocking": true, + "explanation": "No TDG data (baseline: 0.0)", + "evidence_summary": null + }, + { + "hypothesis": "No function exceeds complexity 20", + "method": "ComplexityRegression", + "falsified": false, + "is_blocking": true, + "explanation": "Complexity check passed", + "evidence_summary": null + }, + { + "hypothesis": "No vulnerable dependencies added", + "method": "SupplyChainIntegrity", + "falsified": true, + "is_blocking": true, + "explanation": "No deny cache. Run 'cargo deny check' first (O(1) requirement)", + "evidence_summary": "BooleanCheck(false)" + }, + { + "hypothesis": "No file exceeds 500 lines", + "method": "FileSizeRegression", + "falsified": true, + "is_blocking": true, + "explanation": "95 file(s) exceed 500 lines: src/core/scoring.rs (619 lines), src/core/executor/machine.rs (533 lines), src/core/planner/tests_hash.rs (503 lines), src/core/resolver/tests_resource.rs (560 lines), src/cli/tests_graph_core_2.rs (1041 lines), src/cli/graph_scoring.rs (655 lines), src/cli/status_resource_intel.rs (719 lines), src/cli/status_operational.rs (529 lines), src/cli/tests_apply_10.rs (583 lines), src/cli/tests_status_core_6.rs (705 lines), src/cli/status_security.rs (523 lines), src/cli/dispatch_notify.rs (728 lines), src/cli/commands/status_args.rs (676 lines), src/cli/commands/apply_args.rs (680 lines), src/cli/tests_cov_remaining_10.rs (559 lines), src/cli/status_fleet_insight.rs (706 lines), src/cli/tests_validate_core_2.rs (815 lines), src/cli/dispatch_validate.rs (1168 lines), src/cli/tests_cov_remaining_11.rs (710 lines), src/cli/tests_status_core_2.rs (707 lines), src/cli/status_intelligence.rs (656 lines), src/cli/dispatch_graph.rs (1142 lines), src/cli/tests_apply_9.rs (585 lines), src/cli/mod.rs (610 lines), src/cli/tests_misc_2.rs (517 lines), src/cli/tests_apply_11.rs (584 lines), src/cli/status_diagnostics.rs (578 lines), src/cli/tests_misc_6.rs (582 lines), src/cli/tests_apply_1.rs (514 lines), src/cli/tests_misc_10.rs (660 lines), src/cli/tests_cov_notify.rs (789 lines), src/cli/tests_status_core_5.rs (703 lines), src/cli/tests_validate_core.rs (511 lines), src/cli/graph_intelligence_ext.rs (759 lines), src/cli/tests_apply_20.rs (591 lines), src/cli/tests_cov_notify_2.rs (529 lines), src/cli/graph_quality.rs (506 lines), src/cli/tests_cov_fleet.rs (526 lines), src/cli/tests_graph_core_3.rs (757 lines), src/cli/tests_cov_dispatch_3.rs (501 lines), src/cli/validate_paths.rs (517 lines), src/cli/tests_apply_21.rs (591 lines), src/cli/dispatch_status.rs (1448 lines), src/cli/tests_status_core_7.rs (703 lines), src/cli/status_maturity.rs (857 lines), src/cli/tests_apply_18.rs (585 lines), src/cli/tests_status_core_1.rs (701 lines), src/cli/tests_apply_19.rs (589 lines), src/cli/tests_misc_8.rs (620 lines), src/cli/tests_apply_7.rs (585 lines), src/cli/tests_apply_5.rs (585 lines), src/cli/status_recovery.rs (677 lines), src/cli/graph_topology.rs (525 lines), src/cli/tests_status_core_4.rs (707 lines), src/cli/tests_apply_15.rs (584 lines), src/cli/tests_fleet_ops.rs (531 lines), src/cli/validate_ordering.rs (675 lines), src/cli/graph_intelligence_ext2.rs (643 lines), src/cli/tests_cov_validate_ext2.rs (504 lines), src/cli/tests_status_core_3.rs (705 lines), src/cli/tests_validate_core_1.rs (814 lines), src/cli/tests_status_core_9.rs (528 lines), src/cli/graph_intelligence.rs (591 lines), src/cli/tests_drift.rs (541 lines), src/cli/tests_apply_16.rs (585 lines), src/cli/validate_ownership.rs (610 lines), src/cli/tests_apply_8.rs (586 lines), src/cli/tests_cov_args_extra.rs (538 lines), src/cli/graph_export.rs (517 lines), src/cli/dispatch_status_ext.rs (637 lines), src/cli/tests_validate_core_2_b.rs (667 lines), src/cli/tests_apply_12.rs (584 lines), src/cli/status_intelligence_ext2.rs (624 lines), src/cli/status_intelligence_ext.rs (801 lines), src/cli/status_quality.rs (685 lines), src/cli/tests_apply_17.rs (586 lines), src/cli/status_resilience.rs (699 lines), src/cli/tests_cov_remaining_12.rs (513 lines), src/cli/tests_apply_13.rs (584 lines), src/cli/tests_validate_core_1_b.rs (655 lines), src/cli/tests_cov_validate_ext.rs (515 lines), src/cli/graph_advanced.rs (551 lines), src/cli/status_operational_ext2.rs (556 lines), src/cli/tests_misc_9.rs (621 lines), src/cli/tests_graph_core_1.rs (1033 lines), src/cli/tests_init.rs (553 lines), src/cli/tests_cov_notify_4.rs (504 lines), src/cli/tests_apply_14.rs (584 lines), src/cli/tests_misc_4.rs (521 lines), src/cli/dispatch_apply.rs (568 lines), src/cli/tests_apply_4.rs (585 lines), src/cli/tests_status_core_8.rs (704 lines), src/cli/tests_apply_22.rs (588 lines), src/resources/network.rs (535 lines), benches/core_bench.rs (610 lines)", + "evidence_summary": "FileList([\"src/core/scoring.rs\", \"src/core/executor/machine.rs\", \"src/core/planner/tests_hash.rs\", \"src/core/resolver/tests_resource.rs\", \"src/cli/tests_graph_core_2.rs\", \"src/cli/graph_scoring.rs\", \"src/cli/status_resource_intel.rs\", \"src/cli/status_operational.rs\", \"src/cli/tests_apply_10.rs\", \"src/cli/tests_status_core_6.rs\", \"src/cli/status_security.rs\", \"src/cli/dispatch_notify.rs\", \"src/cli/commands/status_args.rs\", \"src/cli/commands/apply_args.rs\", \"src/cli/tests_cov_remaining_10.rs\", \"src/cli/status_fleet_insight.rs\", \"src/cli/tests_validate_core_2.rs\", \"src/cli/dispatch_validate.rs\", \"src/cli/tests_cov_remaining_11.rs\", \"src/cli/tests_status_core_2.rs\", \"src/cli/status_intelligence.rs\", \"src/cli/dispatch_graph.rs\", \"src/cli/tests_apply_9.rs\", \"src/cli/mod.rs\", \"src/cli/tests_misc_2.rs\", \"src/cli/tests_apply_11.rs\", \"src/cli/status_diagnostics.rs\", \"src/cli/tests_misc_6.rs\", \"src/cli/tests_apply_1.rs\", \"src/cli/tests_misc_10.rs\", \"src/cli/tests_cov_notify.rs\", \"src/cli/tests_status_core_5.rs\", \"src/cli/tests_validate_core.rs\", \"src/cli/graph_intelligence_ext.rs\", \"src/cli/tests_apply_20.rs\", \"src/cli/tests_cov_notify_2.rs\", \"src/cli/graph_quality.rs\", \"src/cli/tests_cov_fleet.rs\", \"src/cli/tests_graph_core_3.rs\", \"src/cli/tests_cov_dispatch_3.rs\", \"src/cli/validate_paths.rs\", \"src/cli/tests_apply_21.rs\", \"src/cli/dispatch_status.rs\", \"src/cli/tests_status_core_7.rs\", \"src/cli/status_maturity.rs\", \"src/cli/tests_apply_18.rs\", \"src/cli/tests_status_core_1.rs\", \"src/cli/tests_apply_19.rs\", \"src/cli/tests_misc_8.rs\", \"src/cli/tests_apply_7.rs\", \"src/cli/tests_apply_5.rs\", \"src/cli/status_recovery.rs\", \"src/cli/graph_topology.rs\", \"src/cli/tests_status_core_4.rs\", \"src/cli/tests_apply_15.rs\", \"src/cli/tests_fleet_ops.rs\", \"src/cli/validate_ordering.rs\", \"src/cli/graph_intelligence_ext2.rs\", \"src/cli/tests_cov_validate_ext2.rs\", \"src/cli/tests_status_core_3.rs\", \"src/cli/tests_validate_core_1.rs\", \"src/cli/tests_status_core_9.rs\", \"src/cli/graph_intelligence.rs\", \"src/cli/tests_drift.rs\", \"src/cli/tests_apply_16.rs\", \"src/cli/validate_ownership.rs\", \"src/cli/tests_apply_8.rs\", \"src/cli/tests_cov_args_extra.rs\", \"src/cli/graph_export.rs\", \"src/cli/dispatch_status_ext.rs\", \"src/cli/tests_validate_core_2_b.rs\", \"src/cli/tests_apply_12.rs\", \"src/cli/status_intelligence_ext2.rs\", \"src/cli/status_intelligence_ext.rs\", \"src/cli/status_quality.rs\", \"src/cli/tests_apply_17.rs\", \"src/cli/status_resilience.rs\", \"src/cli/tests_cov_remaining_12.rs\", \"src/cli/tests_apply_13.rs\", \"src/cli/tests_validate_core_1_b.rs\", \"src/cli/tests_cov_validate_ext.rs\", \"src/cli/graph_advanced.rs\", \"src/cli/status_operational_ext2.rs\", \"src/cli/tests_misc_9.rs\", \"src/cli/tests_graph_core_1.rs\", \"src/cli/tests_init.rs\", \"src/cli/tests_cov_notify_4.rs\", \"src/cli/tests_apply_14.rs\", \"src/cli/tests_misc_4.rs\", \"src/cli/dispatch_apply.rs\", \"src/cli/tests_apply_4.rs\", \"src/cli/tests_status_core_8.rs\", \"src/cli/tests_apply_22.rs\", \"src/resources/network.rs\", \"benches/core_bench.rs\"])" + }, + { + "hypothesis": "Spec & Roadmap Quality", + "method": "SpecQuality", + "falsified": false, + "is_blocking": true, + "explanation": "No spec file found (optional)", + "evidence_summary": null + }, + { + "hypothesis": "All changes pushed", + "method": "GitHubSync", + "falsified": true, + "is_blocking": true, + "explanation": "9 uncommitted file(s)", + "evidence_summary": "GitState { unpushed_commits: 0, dirty_files: 9 }" + }, + { + "hypothesis": "All examples compile and run", + "method": "ExamplesCompile", + "falsified": false, + "is_blocking": true, + "explanation": "No examples cache (run 'cargo build --examples' to populate)", + "evidence_summary": null + }, + { + "hypothesis": "pmat-book validation passes", + "method": "BookValidation", + "falsified": false, + "is_blocking": true, + "explanation": "pmat-book not found (skipping validation)", + "evidence_summary": null + }, + { + "hypothesis": "No new SATD markers (TODO/FIXME/HACK)", + "method": "SatdDetection", + "falsified": false, + "is_blocking": true, + "explanation": "No new SATD markers (0 existing)", + "evidence_summary": null + }, + { + "hypothesis": "No new dead code introduced", + "method": "DeadCodeDetection", + "falsified": false, + "is_blocking": true, + "explanation": "No dead code detected", + "evidence_summary": null + }, + { + "hypothesis": "All files have >= 95% coverage", + "method": "PerFileCoverage", + "falsified": false, + "is_blocking": true, + "explanation": "No per-file coverage data (run 'make coverage'), threshold: 95.0%", + "evidence_summary": null + }, + { + "hypothesis": "make lint passes", + "method": "LintPass", + "falsified": true, + "is_blocking": true, + "explanation": "No lint cache. Run 'make lint' first (O(1) requirement)", + "evidence_summary": "BooleanCheck(false)" + }, + { + "hypothesis": "All match arm variants have test coverage", + "method": "VariantCoverage", + "falsified": true, + "is_blocking": true, + "explanation": "15 untested match variant(s): src/core/store/sync_exec.rs::apt, src/core/store/sync_exec.rs::cargo, src/core/store/sync_exec.rs::uv, src/core/store/sync_exec.rs::nix, src/core/store/sync_exec.rs::docker, src/core/store/sync_exec.rs::tofu, src/core/store/sync_exec.rs::terraform, src/core/store/sync_exec.rs::apr, src/core/store/sync_exec.rs::other, src/resources/package.rs::apt\", \"present", + "evidence_summary": "FileList([\"src/core/store/sync_exec.rs\", \"src/core/store/sync_exec.rs\", \"src/core/store/sync_exec.rs\", \"src/core/store/sync_exec.rs\", \"src/core/store/sync_exec.rs\", \"src/core/store/sync_exec.rs\", \"src/core/store/sync_exec.rs\", \"src/core/store/sync_exec.rs\", \"src/core/store/sync_exec.rs\", \"src/resources/package.rs\", \"src/resources/package.rs\", \"src/resources/package.rs\", \"src/resources/package.rs\", \"src/resources/package.rs\", \"src/resources/package.rs\"])" + }, + { + "hypothesis": "No fix-after-fix chains exceed limit", + "method": "FixChainLimit", + "falsified": false, + "is_blocking": true, + "explanation": "No fix chains > 3 consecutive commits", + "evidence_summary": null + }, + { + "hypothesis": "Cross-crate integration tests pass", + "method": "CrossCrateParity", + "falsified": false, + "is_blocking": false, + "explanation": "No cross-crate config (create .pmat-work/cross-crate.json to enable)", + "evidence_summary": null + }, + { + "hypothesis": "No performance regressions detected", + "method": "RegressionGate", + "falsified": false, + "is_blocking": false, + "explanation": "No benchmark cache (run benchmarks to populate .pmat-metrics/benchmark-status.json)", + "evidence_summary": null + }, + { + "hypothesis": "No incomplete proofs (sorry) introduced", + "method": "FormalProofVerification", + "falsified": false, + "is_blocking": false, + "explanation": "No .lean files with sorry found", + "evidence_summary": null + } + ], + "overrides": [], + "summary": { + "total": 22, + "passed": 17, + "failed": 5, + "warnings": 0, + "overridden": 0, + "allows_completion": false, + "health_score": 0.7727272727272727 + }, + "content_hash": "7d22502e60e64cd1c4ae28475aa5187c35aab963312772d3418dd1258d2f3433" +} \ No newline at end of file diff --git a/.pmat-work/PMAT-027/falsification/receipt-2026-03-02T21-49-25.055851545+00-00.json b/.pmat-work/PMAT-027/falsification/receipt-2026-03-02T21-49-25.055851545+00-00.json new file mode 100644 index 00000000..a0fc7b2b --- /dev/null +++ b/.pmat-work/PMAT-027/falsification/receipt-2026-03-02T21-49-25.055851545+00-00.json @@ -0,0 +1,196 @@ +{ + "id": "019cb087-06bf-7c90-857c-9fe4310d6967", + "git_sha": "2611c9da7913b519c49e79cfee316a7ba3548393", + "timestamp": "2026-03-02T21:49:25.055851545+00:00", + "trigger": "WorkComplete", + "work_item_id": "PMAT-027", + "verdicts": [ + { + "hypothesis": "All baseline files still exist", + "method": "ManifestIntegrity", + "falsified": false, + "is_blocking": true, + "explanation": "All 654 files present", + "evidence_summary": null + }, + { + "hypothesis": "The falsifier is active and detecting (Meta-Check)", + "method": "MetaFalsification", + "falsified": false, + "is_blocking": true, + "explanation": "Detected dummy gaming pattern correctly", + "evidence_summary": null + }, + { + "hypothesis": "No coverage exclusion gaming", + "method": "CoverageGaming", + "falsified": false, + "is_blocking": true, + "explanation": "No gaming patterns found in 667 files", + "evidence_summary": null + }, + { + "hypothesis": "All changed lines are covered", + "method": "DifferentialCoverage", + "falsified": false, + "is_blocking": true, + "explanation": "46 changed files (coverage check requires llvm-cov data)", + "evidence_summary": null + }, + { + "hypothesis": "Total coverage >= 95%", + "method": "AbsoluteCoverage", + "falsified": false, + "is_blocking": true, + "explanation": "No coverage data (run 'make coverage' to establish baseline), threshold: 95.0%", + "evidence_summary": null + }, + { + "hypothesis": "TDG score >= baseline", + "method": "TdgRegression", + "falsified": false, + "is_blocking": true, + "explanation": "No TDG data (baseline: 0.0)", + "evidence_summary": null + }, + { + "hypothesis": "No function exceeds complexity 20", + "method": "ComplexityRegression", + "falsified": false, + "is_blocking": true, + "explanation": "Complexity check passed", + "evidence_summary": null + }, + { + "hypothesis": "No vulnerable dependencies added", + "method": "SupplyChainIntegrity", + "falsified": true, + "is_blocking": true, + "explanation": "No deny cache. Run 'cargo deny check' first (O(1) requirement)", + "evidence_summary": "BooleanCheck(false)" + }, + { + "hypothesis": "No file exceeds 500 lines", + "method": "FileSizeRegression", + "falsified": true, + "is_blocking": true, + "explanation": "95 file(s) exceed 500 lines: src/core/scoring.rs (619 lines), src/core/executor/machine.rs (533 lines), src/core/planner/tests_hash.rs (503 lines), src/core/resolver/tests_resource.rs (560 lines), src/cli/tests_graph_core_2.rs (1041 lines), src/cli/graph_scoring.rs (655 lines), src/cli/status_resource_intel.rs (719 lines), src/cli/status_operational.rs (529 lines), src/cli/tests_apply_10.rs (583 lines), src/cli/tests_status_core_6.rs (705 lines), src/cli/status_security.rs (523 lines), src/cli/dispatch_notify.rs (728 lines), src/cli/commands/status_args.rs (676 lines), src/cli/commands/apply_args.rs (680 lines), src/cli/tests_cov_remaining_10.rs (559 lines), src/cli/status_fleet_insight.rs (706 lines), src/cli/tests_validate_core_2.rs (815 lines), src/cli/dispatch_validate.rs (1168 lines), src/cli/tests_cov_remaining_11.rs (710 lines), src/cli/tests_status_core_2.rs (707 lines), src/cli/status_intelligence.rs (656 lines), src/cli/dispatch_graph.rs (1142 lines), src/cli/tests_apply_9.rs (585 lines), src/cli/mod.rs (610 lines), src/cli/tests_misc_2.rs (517 lines), src/cli/tests_apply_11.rs (584 lines), src/cli/status_diagnostics.rs (578 lines), src/cli/tests_misc_6.rs (582 lines), src/cli/tests_apply_1.rs (514 lines), src/cli/tests_misc_10.rs (660 lines), src/cli/tests_cov_notify.rs (789 lines), src/cli/tests_status_core_5.rs (703 lines), src/cli/tests_validate_core.rs (511 lines), src/cli/graph_intelligence_ext.rs (759 lines), src/cli/tests_apply_20.rs (591 lines), src/cli/tests_cov_notify_2.rs (529 lines), src/cli/graph_quality.rs (506 lines), src/cli/tests_cov_fleet.rs (526 lines), src/cli/tests_graph_core_3.rs (757 lines), src/cli/tests_cov_dispatch_3.rs (501 lines), src/cli/validate_paths.rs (517 lines), src/cli/tests_apply_21.rs (591 lines), src/cli/dispatch_status.rs (1448 lines), src/cli/tests_status_core_7.rs (703 lines), src/cli/status_maturity.rs (857 lines), src/cli/tests_apply_18.rs (585 lines), src/cli/tests_status_core_1.rs (701 lines), src/cli/tests_apply_19.rs (589 lines), src/cli/tests_misc_8.rs (620 lines), src/cli/tests_apply_7.rs (585 lines), src/cli/tests_apply_5.rs (585 lines), src/cli/status_recovery.rs (677 lines), src/cli/graph_topology.rs (525 lines), src/cli/tests_status_core_4.rs (707 lines), src/cli/tests_apply_15.rs (584 lines), src/cli/tests_fleet_ops.rs (531 lines), src/cli/validate_ordering.rs (675 lines), src/cli/graph_intelligence_ext2.rs (643 lines), src/cli/tests_cov_validate_ext2.rs (504 lines), src/cli/tests_status_core_3.rs (705 lines), src/cli/tests_validate_core_1.rs (814 lines), src/cli/tests_status_core_9.rs (528 lines), src/cli/graph_intelligence.rs (591 lines), src/cli/tests_drift.rs (541 lines), src/cli/tests_apply_16.rs (585 lines), src/cli/validate_ownership.rs (610 lines), src/cli/tests_apply_8.rs (586 lines), src/cli/tests_cov_args_extra.rs (538 lines), src/cli/graph_export.rs (517 lines), src/cli/dispatch_status_ext.rs (637 lines), src/cli/tests_validate_core_2_b.rs (667 lines), src/cli/tests_apply_12.rs (584 lines), src/cli/status_intelligence_ext2.rs (624 lines), src/cli/status_intelligence_ext.rs (801 lines), src/cli/status_quality.rs (685 lines), src/cli/tests_apply_17.rs (586 lines), src/cli/status_resilience.rs (699 lines), src/cli/tests_cov_remaining_12.rs (513 lines), src/cli/tests_apply_13.rs (584 lines), src/cli/tests_validate_core_1_b.rs (655 lines), src/cli/tests_cov_validate_ext.rs (515 lines), src/cli/graph_advanced.rs (551 lines), src/cli/status_operational_ext2.rs (556 lines), src/cli/tests_misc_9.rs (621 lines), src/cli/tests_graph_core_1.rs (1033 lines), src/cli/tests_init.rs (553 lines), src/cli/tests_cov_notify_4.rs (504 lines), src/cli/tests_apply_14.rs (584 lines), src/cli/tests_misc_4.rs (521 lines), src/cli/dispatch_apply.rs (568 lines), src/cli/tests_apply_4.rs (585 lines), src/cli/tests_status_core_8.rs (704 lines), src/cli/tests_apply_22.rs (588 lines), src/resources/network.rs (535 lines), benches/core_bench.rs (610 lines)", + "evidence_summary": "FileList([\"src/core/scoring.rs\", \"src/core/executor/machine.rs\", \"src/core/planner/tests_hash.rs\", \"src/core/resolver/tests_resource.rs\", \"src/cli/tests_graph_core_2.rs\", \"src/cli/graph_scoring.rs\", \"src/cli/status_resource_intel.rs\", \"src/cli/status_operational.rs\", \"src/cli/tests_apply_10.rs\", \"src/cli/tests_status_core_6.rs\", \"src/cli/status_security.rs\", \"src/cli/dispatch_notify.rs\", \"src/cli/commands/status_args.rs\", \"src/cli/commands/apply_args.rs\", \"src/cli/tests_cov_remaining_10.rs\", \"src/cli/status_fleet_insight.rs\", \"src/cli/tests_validate_core_2.rs\", \"src/cli/dispatch_validate.rs\", \"src/cli/tests_cov_remaining_11.rs\", \"src/cli/tests_status_core_2.rs\", \"src/cli/status_intelligence.rs\", \"src/cli/dispatch_graph.rs\", \"src/cli/tests_apply_9.rs\", \"src/cli/mod.rs\", \"src/cli/tests_misc_2.rs\", \"src/cli/tests_apply_11.rs\", \"src/cli/status_diagnostics.rs\", \"src/cli/tests_misc_6.rs\", \"src/cli/tests_apply_1.rs\", \"src/cli/tests_misc_10.rs\", \"src/cli/tests_cov_notify.rs\", \"src/cli/tests_status_core_5.rs\", \"src/cli/tests_validate_core.rs\", \"src/cli/graph_intelligence_ext.rs\", \"src/cli/tests_apply_20.rs\", \"src/cli/tests_cov_notify_2.rs\", \"src/cli/graph_quality.rs\", \"src/cli/tests_cov_fleet.rs\", \"src/cli/tests_graph_core_3.rs\", \"src/cli/tests_cov_dispatch_3.rs\", \"src/cli/validate_paths.rs\", \"src/cli/tests_apply_21.rs\", \"src/cli/dispatch_status.rs\", \"src/cli/tests_status_core_7.rs\", \"src/cli/status_maturity.rs\", \"src/cli/tests_apply_18.rs\", \"src/cli/tests_status_core_1.rs\", \"src/cli/tests_apply_19.rs\", \"src/cli/tests_misc_8.rs\", \"src/cli/tests_apply_7.rs\", \"src/cli/tests_apply_5.rs\", \"src/cli/status_recovery.rs\", \"src/cli/graph_topology.rs\", \"src/cli/tests_status_core_4.rs\", \"src/cli/tests_apply_15.rs\", \"src/cli/tests_fleet_ops.rs\", \"src/cli/validate_ordering.rs\", \"src/cli/graph_intelligence_ext2.rs\", \"src/cli/tests_cov_validate_ext2.rs\", \"src/cli/tests_status_core_3.rs\", \"src/cli/tests_validate_core_1.rs\", \"src/cli/tests_status_core_9.rs\", \"src/cli/graph_intelligence.rs\", \"src/cli/tests_drift.rs\", \"src/cli/tests_apply_16.rs\", \"src/cli/validate_ownership.rs\", \"src/cli/tests_apply_8.rs\", \"src/cli/tests_cov_args_extra.rs\", \"src/cli/graph_export.rs\", \"src/cli/dispatch_status_ext.rs\", \"src/cli/tests_validate_core_2_b.rs\", \"src/cli/tests_apply_12.rs\", \"src/cli/status_intelligence_ext2.rs\", \"src/cli/status_intelligence_ext.rs\", \"src/cli/status_quality.rs\", \"src/cli/tests_apply_17.rs\", \"src/cli/status_resilience.rs\", \"src/cli/tests_cov_remaining_12.rs\", \"src/cli/tests_apply_13.rs\", \"src/cli/tests_validate_core_1_b.rs\", \"src/cli/tests_cov_validate_ext.rs\", \"src/cli/graph_advanced.rs\", \"src/cli/status_operational_ext2.rs\", \"src/cli/tests_misc_9.rs\", \"src/cli/tests_graph_core_1.rs\", \"src/cli/tests_init.rs\", \"src/cli/tests_cov_notify_4.rs\", \"src/cli/tests_apply_14.rs\", \"src/cli/tests_misc_4.rs\", \"src/cli/dispatch_apply.rs\", \"src/cli/tests_apply_4.rs\", \"src/cli/tests_status_core_8.rs\", \"src/cli/tests_apply_22.rs\", \"src/resources/network.rs\", \"benches/core_bench.rs\"])" + }, + { + "hypothesis": "Spec & Roadmap Quality", + "method": "SpecQuality", + "falsified": false, + "is_blocking": true, + "explanation": "No spec file found (optional)", + "evidence_summary": null + }, + { + "hypothesis": "All changes pushed", + "method": "GitHubSync", + "falsified": true, + "is_blocking": true, + "explanation": "10 uncommitted file(s)", + "evidence_summary": "GitState { unpushed_commits: 0, dirty_files: 10 }" + }, + { + "hypothesis": "All examples compile and run", + "method": "ExamplesCompile", + "falsified": false, + "is_blocking": true, + "explanation": "No examples cache (run 'cargo build --examples' to populate)", + "evidence_summary": null + }, + { + "hypothesis": "pmat-book validation passes", + "method": "BookValidation", + "falsified": false, + "is_blocking": true, + "explanation": "pmat-book not found (skipping validation)", + "evidence_summary": null + }, + { + "hypothesis": "No new SATD markers (TODO/FIXME/HACK)", + "method": "SatdDetection", + "falsified": false, + "is_blocking": true, + "explanation": "No new SATD markers (0 existing)", + "evidence_summary": null + }, + { + "hypothesis": "No new dead code introduced", + "method": "DeadCodeDetection", + "falsified": false, + "is_blocking": true, + "explanation": "No dead code detected", + "evidence_summary": null + }, + { + "hypothesis": "All files have >= 95% coverage", + "method": "PerFileCoverage", + "falsified": false, + "is_blocking": true, + "explanation": "No per-file coverage data (run 'make coverage'), threshold: 95.0%", + "evidence_summary": null + }, + { + "hypothesis": "make lint passes", + "method": "LintPass", + "falsified": true, + "is_blocking": true, + "explanation": "No lint cache. Run 'make lint' first (O(1) requirement)", + "evidence_summary": "BooleanCheck(false)" + }, + { + "hypothesis": "All match arm variants have test coverage", + "method": "VariantCoverage", + "falsified": true, + "is_blocking": true, + "explanation": "15 untested match variant(s): src/core/store/sync_exec.rs::apt, src/core/store/sync_exec.rs::cargo, src/core/store/sync_exec.rs::uv, src/core/store/sync_exec.rs::nix, src/core/store/sync_exec.rs::docker, src/core/store/sync_exec.rs::tofu, src/core/store/sync_exec.rs::terraform, src/core/store/sync_exec.rs::apr, src/core/store/sync_exec.rs::other, src/resources/package.rs::apt\", \"present", + "evidence_summary": "FileList([\"src/core/store/sync_exec.rs\", \"src/core/store/sync_exec.rs\", \"src/core/store/sync_exec.rs\", \"src/core/store/sync_exec.rs\", \"src/core/store/sync_exec.rs\", \"src/core/store/sync_exec.rs\", \"src/core/store/sync_exec.rs\", \"src/core/store/sync_exec.rs\", \"src/core/store/sync_exec.rs\", \"src/resources/package.rs\", \"src/resources/package.rs\", \"src/resources/package.rs\", \"src/resources/package.rs\", \"src/resources/package.rs\", \"src/resources/package.rs\"])" + }, + { + "hypothesis": "No fix-after-fix chains exceed limit", + "method": "FixChainLimit", + "falsified": false, + "is_blocking": true, + "explanation": "No fix chains > 3 consecutive commits", + "evidence_summary": null + }, + { + "hypothesis": "Cross-crate integration tests pass", + "method": "CrossCrateParity", + "falsified": false, + "is_blocking": false, + "explanation": "No cross-crate config (create .pmat-work/cross-crate.json to enable)", + "evidence_summary": null + }, + { + "hypothesis": "No performance regressions detected", + "method": "RegressionGate", + "falsified": false, + "is_blocking": false, + "explanation": "No benchmark cache (run benchmarks to populate .pmat-metrics/benchmark-status.json)", + "evidence_summary": null + }, + { + "hypothesis": "No incomplete proofs (sorry) introduced", + "method": "FormalProofVerification", + "falsified": false, + "is_blocking": false, + "explanation": "No .lean files with sorry found", + "evidence_summary": null + } + ], + "overrides": [], + "summary": { + "total": 22, + "passed": 17, + "failed": 5, + "warnings": 0, + "overridden": 0, + "allows_completion": false, + "health_score": 0.7727272727272727 + }, + "content_hash": "bbef69882f3689a7678ab19685eece22fac839912701cdc7e84725c2239e3841" +} \ No newline at end of file diff --git a/.pmat-work/PMAT-027/rescue/rescue-297f7cf2-5ef8-43d2-8fe6-fd2c25aca84f.json b/.pmat-work/PMAT-027/rescue/rescue-297f7cf2-5ef8-43d2-8fe6-fd2c25aca84f.json new file mode 100644 index 00000000..9b43e4dc --- /dev/null +++ b/.pmat-work/PMAT-027/rescue/rescue-297f7cf2-5ef8-43d2-8fe6-fd2c25aca84f.json @@ -0,0 +1,21 @@ +{ + "rescue_id": "297f7cf2-5ef8-43d2-8fe6-fd2c25aca84f", + "work_item_id": "PMAT-027", + "timestamp": "2026-03-02T21:46:25.489984660Z", + "violated_clause": "No file exceeds 500 lines", + "strategy": { + "ManualIntervention": { + "guidance": "Split large files using extract-module refactoring. Target files exceeding the line limit." + } + }, + "diagnosis": { + "summary": "Manual intervention required: Split large files using extract-module refactoring. Target files exceeding the line limit.", + "suggested_actions": [ + "Split large files using extract-module refactoring. Target files exceeding the line limit.", + "Re-run: pmat work complete " + ], + "generated_artifacts": [] + }, + "outcome": "ManualActionRequired", + "retry_allowed": true +} \ No newline at end of file diff --git a/.pmat-work/PMAT-027/rescue/rescue-308cf598-fbce-4be9-ac96-716d6a918c2e.json b/.pmat-work/PMAT-027/rescue/rescue-308cf598-fbce-4be9-ac96-716d6a918c2e.json new file mode 100644 index 00000000..3c0d7e5f --- /dev/null +++ b/.pmat-work/PMAT-027/rescue/rescue-308cf598-fbce-4be9-ac96-716d6a918c2e.json @@ -0,0 +1,21 @@ +{ + "rescue_id": "308cf598-fbce-4be9-ac96-716d6a918c2e", + "work_item_id": "PMAT-027", + "timestamp": "2026-03-02T21:46:25.489922496Z", + "violated_clause": "No vulnerable dependencies added", + "strategy": { + "ManualIntervention": { + "guidance": "Run `cargo audit` to identify vulnerable dependencies, then update or replace them." + } + }, + "diagnosis": { + "summary": "Manual intervention required: Run `cargo audit` to identify vulnerable dependencies, then update or replace them.", + "suggested_actions": [ + "Run `cargo audit` to identify vulnerable dependencies, then update or replace them.", + "Re-run: pmat work complete " + ], + "generated_artifacts": [] + }, + "outcome": "ManualActionRequired", + "retry_allowed": true +} \ No newline at end of file diff --git a/.pmat-work/PMAT-027/rescue/rescue-59e69509-e1d4-4c6b-9eb4-49c3e54e0782.json b/.pmat-work/PMAT-027/rescue/rescue-59e69509-e1d4-4c6b-9eb4-49c3e54e0782.json new file mode 100644 index 00000000..45d488b8 --- /dev/null +++ b/.pmat-work/PMAT-027/rescue/rescue-59e69509-e1d4-4c6b-9eb4-49c3e54e0782.json @@ -0,0 +1,21 @@ +{ + "rescue_id": "59e69509-e1d4-4c6b-9eb4-49c3e54e0782", + "work_item_id": "PMAT-027", + "timestamp": "2026-03-02T21:46:25.490016378Z", + "violated_clause": "All changes pushed", + "strategy": { + "ManualIntervention": { + "guidance": "Push all local commits: `git push origin HEAD`" + } + }, + "diagnosis": { + "summary": "Manual intervention required: Push all local commits: `git push origin HEAD`", + "suggested_actions": [ + "Push all local commits: `git push origin HEAD`", + "Re-run: pmat work complete " + ], + "generated_artifacts": [] + }, + "outcome": "ManualActionRequired", + "retry_allowed": true +} \ No newline at end of file diff --git a/.pmat-work/PMAT-028/contract.json b/.pmat-work/PMAT-028/contract.json new file mode 100644 index 00000000..db527b28 --- /dev/null +++ b/.pmat-work/PMAT-028/contract.json @@ -0,0 +1,5817 @@ +{ + "version": "5.0", + "work_item_id": "PMAT-028", + "created_at": "2026-03-02T16:51:15.346262032Z", + "baseline_commit": "2c2618586da42820dc9f1c27b33244f104c68890", + "baseline_tdg": 0.0, + "baseline_coverage": 0.0, + "baseline_rust_score": 0.0, + "baseline_file_manifest": { + "files": { + "src/cli/status_diagnostics.rs": { + "content_hash": "fca182a3d1a07e39525cece8e8c450bbf6acf6c611e06c98d9db2dba73797794", + "lines": 578, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_quality.rs": { + "content_hash": "2e47b622070cafeb2e130070cf464fd630b104d8b4a3fed3736403a7628833da", + "lines": 506, + "functions": 38, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/lock_merge.rs": { + "content_hash": "b4b7097556494d0affa4ecd89af8c3030b55570d213b020fa71d89b534392c9e", + "lines": 210, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_16.rs": { + "content_hash": "f26edc3898c0b3cc4167c24262fd5d6bbe9713971d0bccdb892f27833bd6180f", + "lines": 585, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_2_b.rs": { + "content_hash": "a1eaeaa40f75ae55def5722999b1227c8521a27c8218d074cbfd6b5e6c3df93a", + "lines": 476, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase85.rs": { + "content_hash": "28b08303ce8370db560ecc840ad1351df4368065f506565bbcc28d4ad917ce58", + "lines": 175, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_trends.rs": { + "content_hash": "64ba6ab06691fb40befafabba07c1ca9f42ef1b040dd8a5fc6949d7a03bd9aef", + "lines": 412, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_validate.rs": { + "content_hash": "7b9db1114d00359a0bc997e5562cfbdc1c2b59b1e95fb423eaae4f35571af7e0", + "lines": 168, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_includes.rs": { + "content_hash": "d112a8cd39fd0b4f6fc2fab1fe30ba65277f6a6bc48787c2560431abdbddcb7c", + "lines": 432, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/apply_args.rs": { + "content_hash": "d8a4ea7b767a9afa7d1ef57e7de87dd0a3d3e9247f7822262c6e2084026c0e7a", + "lines": 680, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch_status.rs": { + "content_hash": "2ce47fd7c3525a87d5bf3fc9b4b0eeb71adca86bd4870322292cd259efd1a4f1", + "lines": 1448, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_6.rs": { + "content_hash": "d66062ef8be94fefd1417d960a820e1f1adf09e2cb1410ada5d04a465cf66300", + "lines": 705, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "build.rs": { + "content_hash": "d68c4b581bc2211c97f952c4cd1aca94426b84e419e52071a421118e381f833c", + "lines": 9, + "functions": 0, + "max_complexity": 0, + "category": "BuildScript" + }, + "src/core/planner/tests_filter.rs": { + "content_hash": "2827ee3bfa4044aa72aee8cb2748a18cf1199839f9ecadd693ae3e599c0207b7", + "lines": 133, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase65.rs": { + "content_hash": "7becd26ed753087000d41cb0848a75dd670d9590ada04d710b194e0fde1b6d92", + "lines": 188, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_meta.rs": { + "content_hash": "9f59758cea8e4a8dcc203505a580502736d6f22804d7b695352b0c2795cd307e", + "lines": 130, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_convergence.rs": { + "content_hash": "b634cfdcc2e5968ec6f0de4b3047422ebc5496d1a13d9800add776150d37f093", + "lines": 495, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_convert.rs": { + "content_hash": "1559a180fa06b8ddf219469771feadd18f677cd82cdf489331ba3f84dc282300", + "lines": 173, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_file.rs": { + "content_hash": "b04d499f3404375fc6c01ba7bcf748f8d33f5c515086550b602d3b7f84fe7ec1", + "lines": 308, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_validate3_b.rs": { + "content_hash": "72d2a8a790bcd923af56a5cdf391ac7b36fb20e6165bb3ef0ebf7392dcd45131", + "lines": 366, + "functions": 45, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_23.rs": { + "content_hash": "ffcf1444f241cce57ee0d1b35c936fc474b5749af87bdad1c3b5a254773cfa68", + "lines": 260, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/functions.rs": { + "content_hash": "31f6358703727288eb835d958f8c712ce3b97f031239d2569e58f9e9aee33c8a", + "lines": 165, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_intelligence_ext.rs": { + "content_hash": "66d86de02b1b24a4732538620580336edb5c501d9a299fdfbe0b122c0e12643e", + "lines": 801, + "functions": 29, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_advanced.rs": { + "content_hash": "aa590017de84e89d21e22efdecf1d440d2b7ac635bb710769779c6b2955e21d6", + "lines": 551, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/codegen/tests_coverage.rs": { + "content_hash": "34d3b6fcc4fea7cb616e7538af6d6b508f6ce6933d7a900b3cb70b717d473c61", + "lines": 269, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_graph_core_2.rs": { + "content_hash": "02f18590f6d10e4b1d939241a15d9bac785ac865c4dd244ab4191b5500576f93", + "lines": 1041, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_7.rs": { + "content_hash": "513e60f3c6deaf043d81e9d38464483ce7cc79d4fb2cf2e6c4b5b26287aead7a", + "lines": 585, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_remaining_8.rs": { + "content_hash": "c08ba05a5d14178049fc610d8bed82023ae2f09ba65b276812c6c6df1431e7da", + "lines": 486, + "functions": 45, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/codegen/tests_dispatch.rs": { + "content_hash": "5b506a1421a453948b549e4863516566fbb8877a1c38da5119dfcb97ad105c3a", + "lines": 245, + "functions": 22, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/tracer.rs": { + "content_hash": "7ee607dfc9017211051711fad0510f80f7dea80cdb65a7f03528ed64ef39f3cc", + "lines": 488, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/import_cmd.rs": { + "content_hash": "1aac0167c0c8c6a909b5725d36bb3fd5d92a67f1301fa69897be6117fe507246", + "lines": 295, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/task.rs": { + "content_hash": "cac6107376b85edd8b7c7a1fc9cbe8772a7508d549a74b183420601ddc15ef37", + "lines": 165, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/event_logging.rs": { + "content_hash": "a824a3e869cc765c381607a296288475026397ea7d5f90a33965d0902109ba22", + "lines": 141, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_validate_core_1_b.rs": { + "content_hash": "1bd282fda67215bc5451ba254d90569ce29395cd21b45d1ceede7ccb24a60a16", + "lines": 655, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_hygiene.rs": { + "content_hash": "96676f26059702286ab9a5351f1c895c82a76c22dc3aee5661d13b9308f80174", + "lines": 497, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/mod.rs": { + "content_hash": "d6f20aeacf53c77365727163bc1ba6263497103933a855622e5465ded5bd8891", + "lines": 42, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_ordering_ext.rs": { + "content_hash": "59e95baf8c83c9aa4e209c27a5513debdfb64a4e08693d245d77735b0bfc9100", + "lines": 270, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/drift/tests_lifecycle.rs": { + "content_hash": "eaa542320d4c1728a3863d206050c808e1f22af47284c1d7489cbadb8c42c872", + "lines": 146, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "tests/gpu_container_transport.rs": { + "content_hash": "e3d8b4c7070eb3503b55daa7f013bba02d0a22096beb13eb7002df5d41404b62", + "lines": 226, + "functions": 0, + "max_complexity": 0, + "category": "TestCode" + }, + "src/core/parser/tests_validation.rs": { + "content_hash": "5bf7f82e7efcb46043483e45cf4bb0fe7ca327446b6b8b95f73a24d98a20a383", + "lines": 492, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_dispatch_store.rs": { + "content_hash": "7736a7d4745be01cf0eaa74fecbd03a67cd393801dc24b4de91990f7de7e7df2", + "lines": 133, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_show_2.rs": { + "content_hash": "bd627925118bd47ac5bbbca0b90951c6fae93b5bbf1617a2ab27dd5bc6a8f0ce", + "lines": 225, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase68.rs": { + "content_hash": "c0484108b3b14c22a09b33edec63ae0643cd1fa2f18068a72f57ca7d172d8468", + "lines": 209, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_lock_core_1.rs": { + "content_hash": "5a2e2f81c6637643d2c491fdaab1073189f2c26c0ac05cd6e0a267b169a86ad7", + "lines": 457, + "functions": 39, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/conda.rs": { + "content_hash": "92a0b3d6e29c245f814f7e4b524dfab625f49ab2b6b2f4374a5fc1c445a96d55", + "lines": 307, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_graph_core_5.rs": { + "content_hash": "ae3424a2cefb17bb1f2ad298a20b261cbd415c077b7bb9d0706e74ef8fa24479", + "lines": 313, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/test_fixtures.rs": { + "content_hash": "51f211f7c40ee50f9a04e7fbec3829c9349a737038a51803046a47e68842fe36", + "lines": 67, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_validate_transport.rs": { + "content_hash": "af826465479da479476baf68a2514356e913912de11873d61532a915562a1657", + "lines": 379, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase64.rs": { + "content_hash": "d95d5a7569aedecf4c5f7da391965a342aaa6c897069d00986a67b8b41e9a65d", + "lines": 202, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/lock_ops.rs": { + "content_hash": "3cd3c37af12704bfc3fa891cbc44f7b36fa604d41e3b72cc0ff281c6b782e362", + "lines": 443, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_health.rs": { + "content_hash": "0f9113539d8a95272807eab2218080651daf1ddf3b8cce14a28b3d2a4daeaa4e", + "lines": 480, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_analytics.rs": { + "content_hash": "5d5ee17e1dd1549aa2433d189257f59b54b718eafff552913e5e0187de17a1ea", + "lines": 424, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/planner/tests_plan.rs": { + "content_hash": "06886b0275b2a61d010df1fc8a9b7e279ab76367b6f2a9bf33e1be767ec6071d", + "lines": 357, + "functions": 18, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/meta.rs": { + "content_hash": "ee76198a36d480e2f1147085306b65a8f851e26665bb42fe1f443aaa38095326", + "lines": 125, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/file.rs": { + "content_hash": "a1facfe1a21635b0eadcf7b24ee4d0bcedb30312b957a665cf5c87ab03c3ea8b", + "lines": 127, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_4.rs": { + "content_hash": "adfe0851995390d19faae73140f40d2f5b7c70a730026d0a8410ae7eb122672c", + "lines": 707, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/planner/tests_when.rs": { + "content_hash": "7d781ca2803bccc31c5a5e4602b67933f9aa421dd2e9f70fa4b5c32eddf38d70", + "lines": 103, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase89.rs": { + "content_hash": "70e540ec4031f62163e0d14d04422bcb6c2fed1e957ee5d70ed2e689b4a6c1b8", + "lines": 308, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/package.rs": { + "content_hash": "7b78ef2be7d1342bc58259a458f848372a8bd2070cb9a0c77e2baf12070457a5", + "lines": 192, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_far.rs": { + "content_hash": "24550e8b86ecf27dcd0fcb84087f98b1e20953293c06a573be3d0b28b325a7b8", + "lines": 185, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/container_transport.rs": { + "content_hash": "03a9a741dbcb05d75a335dd97099bbcb2021d3b7badd7cec506d15202868b370", + "lines": 120, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_operational_ext.rs": { + "content_hash": "f8f39446b9091ae9178dc210d4b1ff97ff6721feea04ed74490ded0d23196f57", + "lines": 212, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_repro_score.rs": { + "content_hash": "eb5c877d15c0d4f003c3474c7eaf429919bd55df6a4fd3805415817953193540", + "lines": 183, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_store_convert.rs": { + "content_hash": "e003bee9b8fba364134cef39f2e81aa6711b6d8e3777690dc846c8e523c4a34a", + "lines": 177, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_misc2.rs": { + "content_hash": "c8b337c89ad6a10b7594a79b366934c6164ac3057d3325805b2c7e6688d9c6d4", + "lines": 301, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_graph_core_4.rs": { + "content_hash": "d32b0a6227cd5c5b044c1af69d88b0f1c82c74a32e2a87ffa5304291f1e9512f", + "lines": 92, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/mod.rs": { + "content_hash": "9f6044672813dbffe20b724482ecb623a36ec42be35c525f8225de85d60206ac", + "lines": 186, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/types/mod.rs": { + "content_hash": "03c03d2a2752ede3f9a5d3d56726cc3e448f874db26732c23f6c26f859565256", + "lines": 30, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_maturity.rs": { + "content_hash": "86d8871f6417999c5d028f68e3c8eb1a8b837c03d655b8fe91fe5775c4d60b8d", + "lines": 857, + "functions": 37, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_validate_analytics.rs": { + "content_hash": "f16dc801995356b7a8b9c426846d730ce49d410ce932c3b2ec868e51cadbd922", + "lines": 253, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/tests_eventlog.rs": { + "content_hash": "6416f4576acad278ca832883c2cfa1e4330e8f987f1c757a990c8837a0af6c30", + "lines": 263, + "functions": 18, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_insights.rs": { + "content_hash": "c202889e1711fc0d1c94aa52e338515e5dcb07ecd74e83f12960bce19ffe1f20", + "lines": 350, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/secrets.rs": { + "content_hash": "f04e8e8de8dbf25c709ab07f8a237dff5fd923b92956dfcff6f3f44e315a9875", + "lines": 154, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/recipe/tests_validation.rs": { + "content_hash": "61a0c94cfe03eb4f564a727aa353bac5c17c02795165714c76cebb9b4e57ea5a", + "lines": 434, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_gpu.rs": { + "content_hash": "3fef1a4a3c63a750a6410c318f593afe6d2de68169f76c456480671f5ace8852", + "lines": 447, + "functions": 29, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase59.rs": { + "content_hash": "d716283070c6018f6228d6aaebe527ce49d4ab8d1f29046af162ad23fccfeca8", + "lines": 120, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/migrate.rs": { + "content_hash": "55472d0eb74b18c26e56d523f8416c4d51e258223d5ac29ba47d0094221f64a6", + "lines": 433, + "functions": 19, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_19.rs": { + "content_hash": "7babc191553334c61ad1b42c509be4cf31542c903bcda395d58fa75e49d903cb", + "lines": 589, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_3_b.rs": { + "content_hash": "7f879d507e8f70be38da61e42293acf03bf3025c2efb27a5b2069ac3487c504e", + "lines": 475, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/template.rs": { + "content_hash": "bb4feaae6011fc97fa6a3444be4ca14a2b32d30bc1da14700669e3066c2d35c7", + "lines": 105, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_lock.rs": { + "content_hash": "f7421ffba17f648c183009ee32a2f9f35e75a8e6870b962a25444f517d30c367", + "lines": 492, + "functions": 65, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_governance_ext.rs": { + "content_hash": "594e07b068c78f44240d180b9da8754d0800db3c1ff3282436bdf07a126dbaf8", + "lines": 487, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_7.rs": { + "content_hash": "48e11dfaa56f1b1f15ef4370098508f3028969f1a681c328ddb6543c49fc1135", + "lines": 396, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/planner/tests_helpers.rs": { + "content_hash": "20e2adedc50de5de8155b3f1060372f90561cc39b21bb5bcbfee8b85718daac2", + "lines": 90, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/store_archive.rs": { + "content_hash": "1e3b5b828ede0561463196455eeaf0ca8e3bcaf7a186e4a7c655a77814be7378", + "lines": 216, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/apply_helpers.rs": { + "content_hash": "f2146aaa4e9defac6876e53922ffe7d317ccdee4285e8658a6fc5368fe1f935b", + "lines": 131, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/gpu_container_transport.rs": { + "content_hash": "d23eca486eb1020410cd6f894b19be747524b4552a22ebb07ce5b5e8fe03e84a", + "lines": 220, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_5.rs": { + "content_hash": "1ee9123ad83ec56284041bdc2e895062a51b76ef3fd764d0a72a64adbfacbbd7", + "lines": 703, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_cost.rs": { + "content_hash": "7d4433d13d433d859f8ce786d2dac6d8d4b61318e2972f685f94da84327f86b9", + "lines": 258, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/tests_scoring.rs": { + "content_hash": "7a4fddcf8dc5af786a9dbe5148c85780476095ce1c582b13e4cf2f864d017062", + "lines": 367, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_impact.rs": { + "content_hash": "00544fdc7f7188c598c92156eb38e420e1cd832ce406fcb903a977aa350e6d72", + "lines": 360, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_4.rs": { + "content_hash": "17f18eefc5dd9b6f13a4e6173a4f78c90284e9b4f98b0d95038f4ef4d0fa8717", + "lines": 521, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/arch_filtering.rs": { + "content_hash": "0c7b4be49e9498d6b6a8e4277cf7ceb27c84887a8f2dfb8224b20f4cbbe2083c", + "lines": 125, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_validate_core_2.rs": { + "content_hash": "67567ad5c7465e4d4e14ace33964dc264e07bc82854f5fe42d2ae7cc202a8f4d", + "lines": 815, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/misc_ops_args.rs": { + "content_hash": "4434ae1f9bacf8084c3ed92d01ce6ec57fc591152957ee1cdcced543d7eafb7d", + "lines": 289, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/fleet_ops.rs": { + "content_hash": "4018fc6ea23d2e1faec50b593ceadb32beaefc69a1bf76ef39e3c0c0bad3dbf7", + "lines": 422, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/apply_output.rs": { + "content_hash": "a34f54cbc1a73ab2186d7e7d1faaa0fc8d8e0fdaf952f551aaab6200a47d6f8d", + "lines": 404, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/reference.rs": { + "content_hash": "c2e29b14ebf4b4fa1e516a86b4a0b8dd7913e73d566f27d15a9fc571f9b3ecc9", + "lines": 80, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/mcp/types.rs": { + "content_hash": "cb8c7e82ad98e5597f9b9c97533399eaf4a0b6d108470ddf272d4ed74b10bc75", + "lines": 186, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_observability.rs": { + "content_hash": "db0c4b24e95f1e78eb9041308e5bef150b1f4af47d4c9c70afc019edafccdb8c", + "lines": 419, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_6_b.rs": { + "content_hash": "0ce4c32dfe507762fdacc944cf99a5522bb5f7cd8d80f37128307c3f6f95b46d", + "lines": 207, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/mcp/registry.rs": { + "content_hash": "75647eabf9f4d7b78af10988944732a965bec55d05593469767749cd3d54866f", + "lines": 244, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_validate_core.rs": { + "content_hash": "c1ef02ddf50212d8d094cb6c1c229723f363457794e1a5b5f404081b3f8095a9", + "lines": 511, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_remaining_2.rs": { + "content_hash": "2e75f5536689c2c76cefac7ebbfa69de9c81e67487ad5f43b3bc21304178843d", + "lines": 379, + "functions": 50, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_converge2.rs": { + "content_hash": "7687b3a9b2fadbb90b1b12c193058eb20f332f8b79000265df647d579eb41d30", + "lines": 325, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/pepita.rs": { + "content_hash": "ba21671a08f546817c14a58857d4dfd8e893e2b7a10f1c1d5d187beb0d0e2635", + "lines": 385, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/secrets.rs": { + "content_hash": "128f94dbc3f53c2a599e3c0b70b8efdca8b785b4d3303bfe07bead8a30a65ad6", + "lines": 201, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/mod.rs": { + "content_hash": "c36359c0bbbcead0cc16fb65703c8bfba1fa0dee5dc8dfe9e314454d5eece642", + "lines": 27, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/codegen/tests_completeness.rs": { + "content_hash": "911cabd0471feabd23fc8d140273235e9042a8d8b8f9b6e8759cdc5c579c92d9", + "lines": 280, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_kernel_far.rs": { + "content_hash": "0c3f0f3cd5084c953a428b20d2350063bd53140d61bdeece477c2ddd62087356", + "lines": 404, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_9.rs": { + "content_hash": "12615ab2ab0e95d47c3c356ba5e0e6667a55ca386a23bbac175113fc13e436b0", + "lines": 528, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase61.rs": { + "content_hash": "3c0a05cbc05aeb4276e2c75cd0e8a68e0d2d41b870e7606fc4dddee23df30db1", + "lines": 195, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_file_b.rs": { + "content_hash": "3bec80020c9d09db1945cb4e43c56c0a623cb27e60da53ad8bf3d31594414363", + "lines": 391, + "functions": 32, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase78.rs": { + "content_hash": "51ce6b926ea80c7e21546cef0a5f422ca8135e8087f355155495a039d77cf285", + "lines": 289, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_status_4_b.rs": { + "content_hash": "3032f88e69bbee38dc979ff676b6ae8c58e0e085b551bfeafa4b3dec3fdfe768", + "lines": 335, + "functions": 42, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_compliance.rs": { + "content_hash": "2c77b5f6328ed8db8bdd89c4ef5821f6af04f93116f92c9f8820286a4e5247ab", + "lines": 347, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/init.rs": { + "content_hash": "b57d142b97eea723fc121ee587788acfd990a51e9422c82d3ee785b2fdb0d2c9", + "lines": 248, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_contract_coverage.rs": { + "content_hash": "1486025963182ecdc9a8d555929e9d57613dc66463f139225f9f477db4753aa0", + "lines": 293, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/types/config.rs": { + "content_hash": "273ef42049338b1bcb6eab93232ef065b5848a195af8686dcfa58019bfc7fbb0", + "lines": 373, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase94.rs": { + "content_hash": "fff4cfa1c2fb77c8c79f9a7610da253dd0e2aa118e2dd7cb3f01779095bf61b1", + "lines": 425, + "functions": 24, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_fleet_detail.rs": { + "content_hash": "866a7f5e541e1b701ad06df209e70e9849352598fe811a750ac45386f86dd546", + "lines": 483, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/recipe/types.rs": { + "content_hash": "3fdb12d938b47d6eec1f737f3bec57f30ddcc53e293239feae792dd37d1b8823", + "lines": 65, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_safety.rs": { + "content_hash": "6808aa310a9f54ffe84bf5653e735a0ad600c608a907851396bf8c075d52c9cc", + "lines": 495, + "functions": 22, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_graph_core_b.rs": { + "content_hash": "d02027474bcb89eed4d4fda160b960d2bbae6e561a48fd91412f2dac283ada74", + "lines": 226, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/chunker.rs": { + "content_hash": "27d30c5d66393e4c48bf395abe4149e2047aefbb246833baa974b1820adcb437", + "lines": 140, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_remaining.rs": { + "content_hash": "b3ddd352bd2e84334ae283aad442cc30f6509aea1a6951c618413b5bc39a37a9", + "lines": 412, + "functions": 36, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_status_5.rs": { + "content_hash": "e46802b6e6abde362a1f34bfe75deebde6f8320ba58c70c7a279f28bce983f41", + "lines": 361, + "functions": 59, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase76.rs": { + "content_hash": "afcd94e8394a4f54034c13db7138510a2d3818b914bc2df917c4a0fedaafc3f2", + "lines": 290, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase74.rs": { + "content_hash": "769ca19a23eeea8da2e900c8ab4dca4d1ffcfd0b29c03f9133b8396ef000131a", + "lines": 281, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_gc_exec.rs": { + "content_hash": "e1fccbbf7f3ada96e33a6782f9c8a65e637f128ec07f668a829743c66fe15bd9", + "lines": 252, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_graph_core_3.rs": { + "content_hash": "6a6e4b1bf89ede7219bbbb1b88aa7d259acf7bafacbae1b432de0948fa4a0f7b", + "lines": 757, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_args_2_b.rs": { + "content_hash": "0738bf02be170c9d3e3e2d41c1a1ce191e7fa56431c68afc9459427c35b02c1f", + "lines": 161, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase79.rs": { + "content_hash": "583375143149ffeb8915a78e7db0cd28738fd9c1fc5769cb620471a90a7c6dcc", + "lines": 289, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/mod.rs": { + "content_hash": "a531550613b6809bd1819e24a0825160f11c2ce53bcfd7a5ed0749070a530b55", + "lines": 36, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_advanced.rs": { + "content_hash": "577782791494f3a2f1f4701ec33e12fe7381a0ab660dc7601d8879297ce6063c", + "lines": 488, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_profile.rs": { + "content_hash": "5910625e51426f1656aca1054eeabf43b8f0c113b4881fb681e4283363b59bdf", + "lines": 104, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_helpers.rs": { + "content_hash": "ac376d55982d7b65a4276da58b6e9d09bf96add09cfa19c92116b5dde0b8548a", + "lines": 246, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/tests_hasher.rs": { + "content_hash": "d631ad2b887ce07688a8a0e87a5aff2d55bddd83d2217fb5b8203aac76552631", + "lines": 276, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/planner/tests_hash.rs": { + "content_hash": "fa0a25c1be61ccf3f6830d992e536963e5be7dedfd6fbed0980df66e659ba8df", + "lines": 503, + "functions": 26, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_transport.rs": { + "content_hash": "1c444c1c80a71de6090374a70fbfae8059293bda45902f8ceda4ba8c6a93f47c", + "lines": 212, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/state_management.rs": { + "content_hash": "f59be77c50f3a54522dee4c421f271bba4e36033ec2c0013173368733f33d7a6", + "lines": 125, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_helpers.rs": { + "content_hash": "f2c5aee07158277b5539833a90498b0755ffe6f1c50d16256a3f0989016bc7b5", + "lines": 150, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/kernel_far.rs": { + "content_hash": "bafdeac640d0494aae58e3ae0512cdafacc7b6aacfa43c014bc085e4a238a600", + "lines": 139, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_transport_2.rs": { + "content_hash": "e7e61b26181d06ba30ff3d35cb9b5c6d5212a30db2af157146d8f1f2be051ab5", + "lines": 467, + "functions": 30, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/tests_functions.rs": { + "content_hash": "afad07b72fb485caea6cbac2f0efce2b0d3c27d9b73008fa8fb1f55345d5f58a", + "lines": 240, + "functions": 28, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/resource_scripts.rs": { + "content_hash": "bd107a90d40cfa4b2fd7abf5f8793d9414f9e7c1f1894e594d7ea640b68b8ed3", + "lines": 189, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_paths.rs": { + "content_hash": "98f7992ab6e2fcf7abb582a9ac94899efba591d83ca50724fb4631a5302d1ddc", + "lines": 337, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/mcp/tests_registry.rs": { + "content_hash": "35bcc9a5dc807b410f61dd2d587efc07135c010102abd0a27ce29ea7a32cfbd6", + "lines": 129, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_dispatch_3.rs": { + "content_hash": "100af1705a0d16182fe5a8969d0ca78019e0a877b49569b55e27cc654b33b0c9", + "lines": 501, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/score.rs": { + "content_hash": "697e597617672776bac2976841e12e91e9b8b040ebbd77b776d0e82c1078754f", + "lines": 51, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/tests_resource.rs": { + "content_hash": "3ea3003b8291fdab8bfb152d49db42e4c45dab1bf916a89bf2e1650f71aff822", + "lines": 560, + "functions": 26, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/recipe/expansion.rs": { + "content_hash": "83036fee9f0a827503f00b1e4f68d826454a9c419914b30c38ae27f23eec05e8", + "lines": 208, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/derivation.rs": { + "content_hash": "855ef7ff60508ae454f11cda81341dacf9e9f8081c6da2a07dc9adb8f71d98af", + "lines": 209, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase71.rs": { + "content_hash": "6f4a1d72e31d38a48ab0a78dd51638a39bb062d8e9cdef372efd051c655c0abe", + "lines": 279, + "functions": 24, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_core.rs": { + "content_hash": "7b0c3dd5d862930408456a0bb342f7e7b30cc1390732449d6c7402961d8de4a4", + "lines": 448, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch_graph.rs": { + "content_hash": "6880907d29ee1e23db3610830ce143e3ce6c1e5d1b9a7d3fa238e5c3d9b98c81", + "lines": 1142, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_9.rs": { + "content_hash": "9595bb38a7b853a08bef9958a0dc8652676b31974accc7cd153953e064f65ec2", + "lines": 585, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/helpers_state.rs": { + "content_hash": "b97c0209fda99a616045bc2553747a1eaf61a365df9d4436d5fd52119094f234", + "lines": 114, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase95.rs": { + "content_hash": "bf0a5c55af721110cf5d166d463b5925dc6780913ce7fa0a3580884c2f9627b9", + "lines": 215, + "functions": 30, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_graph3.rs": { + "content_hash": "0964177398f72d99d5ea1f4a213a72dd48aad9df5a22c763d23440ef22e037c6", + "lines": 253, + "functions": 33, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_queries.rs": { + "content_hash": "4e34a126b8c125dfe51f90a1aafe25a3ccc45747614703985b58203040e5c983", + "lines": 364, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/tests_helpers.rs": { + "content_hash": "64bebc379fca0c0a1369309d939cc755d17120891ca79b3a9a99971cb7fce950", + "lines": 216, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_status_7.rs": { + "content_hash": "d3f9cf0e6a16168528c207b05a4896c2a337e3e63097caa895344ea66e8da5e2", + "lines": 380, + "functions": 58, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/sandbox_run.rs": { + "content_hash": "58ce624ed70496af87745f25b27f09c3c4d9cff9638123ea2ec63299c5c4f592", + "lines": 148, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_fleet_insight.rs": { + "content_hash": "9d2c58b613313ecf20a215e5139db11c4cb43f552494b71d4498ddd40fd77e77", + "lines": 706, + "functions": 30, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_validate2_b.rs": { + "content_hash": "974a2b402c5e7bfb983b4cc2cba4dc2ad11b7a87639177521a59d8501ece79f9", + "lines": 386, + "functions": 38, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_analytics_ext.rs": { + "content_hash": "dfd639fb7a3e67c66eea82ed922c7883b45f7f00b94dd0659cf56d48b6cd8ac2", + "lines": 383, + "functions": 28, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_validate_core_1.rs": { + "content_hash": "894b5d0c5ef5984c2d4fda8ed16182bd45fffa07cad15e9d477a822897fc4d6e", + "lines": 814, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_core.rs": { + "content_hash": "4d729bb1416b25dbda925c1936253ee3ba2b4f861f3b82d7200ac656a67a1516", + "lines": 223, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_3.rs": { + "content_hash": "037b95ee9ddbd52fd27e5076ec61dad745a62a96c65b190dcaed86b54f7a2164", + "lines": 443, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/resource.rs": { + "content_hash": "3bdf0233a3df72792c19239fb2e2f6adaa7797176cc84d5978f3cfd797fcaeb8", + "lines": 71, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/lint.rs": { + "content_hash": "79fea5af0fb5cb75e072206a20820d9dc06e3fe34e3e626d9992bf84c86fb4f4", + "lines": 259, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch_apply.rs": { + "content_hash": "a18773bc1739ead60e53676aa95f738ff93001233d0d113214c56a20231e944b", + "lines": 568, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_drift_intel.rs": { + "content_hash": "a1e382537802f1d90981b5a9d78b08857ec2e3f418dd56826c87e5fec3424b36", + "lines": 393, + "functions": 22, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/purity.rs": { + "content_hash": "be7d1125758a0e3432bd47eb70ebc52484130c0c556fd02d9397638aaf500790", + "lines": 113, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_filters.rs": { + "content_hash": "2c04e083f7fa64028db31cb2d1a0c8181322a6ab0e715ec3d470d1fd986c4065", + "lines": 400, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/far.rs": { + "content_hash": "705a31a330e322bc78bba74d76cabb4e90d8cecaf72d126745a70886d0a0edf8", + "lines": 196, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_misc_4.rs": { + "content_hash": "a60982c4decfc1da5d2ed6e906ab84833f3c067340e77250c8498f93b290409a", + "lines": 282, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/codegen/mod.rs": { + "content_hash": "98e75556969ea2b3ab90bc22de30fcbfd8a303426fb88845768c65bee0a7e51a", + "lines": 15, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_cross.rs": { + "content_hash": "fc8522c2858d35b0f01007c86b2e33dc65f53517580b36cc757545ad72217855", + "lines": 362, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_status_1.rs": { + "content_hash": "6bec4145c05fa7caaa3d05fdf3515f0782120a8385406fce9df4f4a3c09cd896", + "lines": 467, + "functions": 65, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_edge_record.rs": { + "content_hash": "06e43c61e6982f518304ef15053cec6c917db1fceffc74e05ea068d9923ed59a", + "lines": 420, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_init.rs": { + "content_hash": "785d117090aa8bf0f15f10f7d17d39f2fd12012ca094f59a1d8793362b8b9f21", + "lines": 553, + "functions": 26, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/state/mod.rs": { + "content_hash": "e0762e985be68ee38bcbfb5f03e876243ebd68d9184bddca38da517221441a81", + "lines": 335, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_infra.rs": { + "content_hash": "3b716ac33cc323623c1948692f08077c230694186832a2eaba52778daa11c773", + "lines": 306, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/main.rs": { + "content_hash": "031362bf1ad257336bf8080cd66c53ebbdb5641dba93aef10f20443af6541acb", + "lines": 33, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_args_extra_b.rs": { + "content_hash": "99a22cd37a5d03d14d7d61e1da4c41677c3c46a45480c43267aa657134d74bdd", + "lines": 420, + "functions": 41, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/store_cache.rs": { + "content_hash": "2aac97200dcf326506b9c07b5c9c02801e250f8644969b137e48f11f4bc97502", + "lines": 266, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/ssh.rs": { + "content_hash": "e7bb315129a19f0cde6b1f62f0dbb48ec900f31d719affa4474ad1812dffe4a3", + "lines": 202, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/tests_container_d.rs": { + "content_hash": "711345b985b3ef3ea21c6f626c4fcf835454b7cad6ef9f71d0d94bba04919653", + "lines": 41, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_service.rs": { + "content_hash": "650c36e857b38efd8b572e3a91b19bed1bf5328d7af68080a5f4f4fb73ef3d38", + "lines": 421, + "functions": 30, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/drift/tests_basic.rs": { + "content_hash": "72e4c5883d2c4806dbeaa8ad813c81a7907bac78e696f353897f47343d83412d", + "lines": 325, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/tests_waves.rs": { + "content_hash": "43c4ea3a7fe427029c0a4eff6b84179b4553297a31a7663010151f43ba226022", + "lines": 144, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/drift/tests_basic_b.rs": { + "content_hash": "2a5e76b7562ab9156b12f478491a85958c43330dcd8907caaaa876a76177364c", + "lines": 355, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/mcp_server.rs": { + "content_hash": "b7126d57d09e74f70c23893061f14c2d061bb44f631451544776b412e52d0a98", + "lines": 53, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_failures.rs": { + "content_hash": "e74487d76644f9f54e751d50cd25018b0339d5b274c12a6a051d7f37269313e7", + "lines": 390, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase60.rs": { + "content_hash": "0a27a50ad0d44f4d395d055f56642af8b09be805308194ae89d2b76f03ee51c5", + "lines": 133, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/recipe/tests_expansion.rs": { + "content_hash": "08d5f5a86bead9b806f586ce55375a912d51dd14e8ef67cb04c5ac1bcb228d30", + "lines": 448, + "functions": 22, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch_notify.rs": { + "content_hash": "11d85393b6340e2410ee2de725015ca7e5779a45570d973fcf24b9a3a18e4fe4", + "lines": 728, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_store_purity.rs": { + "content_hash": "eebe1c9b5a2e3ca8a5f626c15c2bd1029d84d887f7e111ae56e36c213e051021", + "lines": 191, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/tests_dispatch_b.rs": { + "content_hash": "b198ec9a4f125510c39152ba9dd89b831861c481ea5d387a987171a7d88c04c7", + "lines": 309, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_pin_resolve.rs": { + "content_hash": "596670544d1060d16071fcafd8d4e54ee634df83a3d4497145b0206eb29e1446", + "lines": 210, + "functions": 28, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_remaining_3.rs": { + "content_hash": "db47c0551191717e888422f39d498a0d91007c5eacbb1402db5a9561bff12c48", + "lines": 454, + "functions": 42, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase90.rs": { + "content_hash": "e9ec934562b29f5243ff4ce89b3d1c0d5ec5010fa5c8b7b0a10e330c1b86050c", + "lines": 309, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/planner/tests_describe.rs": { + "content_hash": "92b1a9b0f314c99d48ca801380eea19c8d8a97952ee947a29e25e649e48a7c73", + "lines": 77, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase88.rs": { + "content_hash": "cfa8ab8cf5825d7e35be208707abdc2be25b856612f93fb9945ad1990a248240", + "lines": 313, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_resilience_ext.rs": { + "content_hash": "6843520429a2c1c6194e7e26338714bcd0fdb8fc6d348e0eac2a062f07efe26c", + "lines": 352, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_apply_b.rs": { + "content_hash": "eaf6a58fdb7433433dc3f4414708a46af1b614fd5e7566fbd5aa37aa2169f917", + "lines": 361, + "functions": 26, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_resilience.rs": { + "content_hash": "c6fe3613bcb0c1d81ea3370da4237e88a3e0ecb46066f5c9de84aefde1a8acd6", + "lines": 252, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_analytics.rs": { + "content_hash": "8190e30cea38bb3474e443956876f16a86b1b6670f8b7adf1ace5e5745f99b05", + "lines": 450, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_remaining_5.rs": { + "content_hash": "67ff6948936e96d24450ec9fd9a80dcba42f9949406834c38922b4ae89286d88", + "lines": 475, + "functions": 37, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/store_convert.rs": { + "content_hash": "9a4f53e95baf8df5a52f8585341337d69fe3b1b7e1586abae21419e9525fdabd", + "lines": 131, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/tests_container.rs": { + "content_hash": "10063bb3e84f26c0b2c758899d3b5a780c5b3a57d5825702a80f0bcf74bad620", + "lines": 468, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/tests_dag.rs": { + "content_hash": "2c13befc9e3d19724bd66f98f9851c85bc9ffad3db5bc12949a471f5be8924cc", + "lines": 287, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/plan.rs": { + "content_hash": "5bf39e0a42f93bb8d2f7421ce84fbd4d3689bb9573947f04a3edca3ccf85cb8e", + "lines": 399, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/gpu.rs": { + "content_hash": "d0ee4e02e497703403c3dfba64280886e5b4d0ee77164f2c1e7bce15b23293c6", + "lines": 196, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_10.rs": { + "content_hash": "e7a843ea9f0d533ffb309415b24a45c3132dcf8e4b48d21e4850628571201583", + "lines": 583, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_4_b.rs": { + "content_hash": "b7d3a7a8f368bf6584a0d85fc9da929de145f1f5900bf30202a16af31b0a4f3a", + "lines": 476, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/secret_scan.rs": { + "content_hash": "6845f4704ed66bd435c620e0dd83b5e3f8bacb65571ee33d76ec9e16d9a89e5b", + "lines": 200, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/machine.rs": { + "content_hash": "1016a4470cfb85dfcd868df21fe8086a3b18c842765eab1d22f967aff8f525b2", + "lines": 533, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_store_pin.rs": { + "content_hash": "9b1688c31c9ef9884c5450f1b704d487514270fc5f94ade48a1b4e8cade08a4b", + "lines": 178, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_conda.rs": { + "content_hash": "5207a8413f19d7d566942ea05c1b24b717e9273ae0da195c95e8fc4dd68e186b", + "lines": 318, + "functions": 19, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase91.rs": { + "content_hash": "fe1cf071401d8d2bdbb1229b8bc4dda46fc56537d1cb101079980bfc36a4b4fe", + "lines": 309, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_misc2_b.rs": { + "content_hash": "f18f96451cb4e19cefa0a985dceb3afa1871798d2e3be85141e1685234c17263", + "lines": 298, + "functions": 27, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/pin_resolve.rs": { + "content_hash": "fe3ca39b83bf797a137d51ed529695127231448405f7044be43ce3474db6ed75", + "lines": 205, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/conditions.rs": { + "content_hash": "834a0e865f4515947593fc5c5327d23504a78579aa8283aa689dfc48e864f1cf", + "lines": 321, + "functions": 26, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase103.rs": { + "content_hash": "cbabee64dc0654ef58d19e26d4037ed79847fdf34d04e3b12d51e9cf56b77028", + "lines": 208, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/tests_dispatch.rs": { + "content_hash": "f8aeeb82af4295c3640425dc973d3fe86cb45df833613c5d243f5bc976cf4cdb", + "lines": 394, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_mount_b.rs": { + "content_hash": "0dd5ebc9614833d1502b0cabcb8b4c027b9b03da239a7015f2daede897b5d563", + "lines": 249, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/mod.rs": { + "content_hash": "a7103646daa0f2f7c25ce72ec7a06f770c5aadda9b6481f7b58fdf92680da303", + "lines": 131, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_15.rs": { + "content_hash": "888dabb060c0a2d85d4e41cf85931912a317a4e27fb8626fc54c8e9ac7c447d9", + "lines": 584, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_remaining_4.rs": { + "content_hash": "c8529446eb09eb388bd644f5dec34d0a0f65c52a4a3180b6328e168c22ea1313", + "lines": 427, + "functions": 44, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_store_diff.rs": { + "content_hash": "73079617698d552eaa3ce7ba0b6c405be84c718e78eee852ac638fbbea40ed75", + "lines": 192, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_5.rs": { + "content_hash": "bb5a8f1e67984283ab1d11ed7eaa56c715f6b8f760bcc0efc73792349be31b8a", + "lines": 585, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_graph2.rs": { + "content_hash": "dc3b9470ab3298589ff28ee972bfde94c64a3a4f54cfd2f5d3fa54dc7a6f8f03", + "lines": 378, + "functions": 53, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_docker_b.rs": { + "content_hash": "0a11c4be71d555814a46be0622c4e4eec35dde6828a1efcae0c19dab8c274fa8", + "lines": 395, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_package.rs": { + "content_hash": "d4b770875ea35b767d9c9a4d14e1a6bc544930f4414f48114f6dc11c1472f532", + "lines": 281, + "functions": 22, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/mod.rs": { + "content_hash": "4b7378d6af1834063b09a80e02fd37bbea24ca7aaa934cbd5b0decd9022dcb83", + "lines": 18, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/drift/mod.rs": { + "content_hash": "b0094bbc32e0db8f94403762405412acca10817454dd12d37a299dadc01c176d", + "lines": 310, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/hasher.rs": { + "content_hash": "4a099da8167b27b580663b6be81f6964b35d00c5083a52c4396481338077d97e", + "lines": 93, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/includes.rs": { + "content_hash": "316b75cb0f563a0b3df5e4e18fb2e5a47283f5b73544559bee00e293f58a117a", + "lines": 51, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/types/policy.rs": { + "content_hash": "9669a0f635a6090ccb2b222823b3632367cd5c303e24c2f47c33c2430c0114ef", + "lines": 118, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/pepita/mod.rs": { + "content_hash": "352fa33729052c5810ec9130601b9a9be2e8209fd368f98431faa67d1b9abebd", + "lines": 218, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/machine_wave.rs": { + "content_hash": "64b36b0379cd03bbed53ef07d45f7c1dcd8681a58ff7a8fdac5b08fc40bf029a", + "lines": 210, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/planner/tests_advanced.rs": { + "content_hash": "b622cf123d06945e5dcd11ece3b4c8a67d1add1b535c4d2f3cc4dd14c11b9805", + "lines": 265, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase97.rs": { + "content_hash": "74f9386a495bd24f35c4a62484a87edae6082d87a1085c0d5469cf4e2043d0d7", + "lines": 190, + "functions": 26, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_6.rs": { + "content_hash": "5ad945ac1b08da3090f272806b36e6632baebf13aee0dd6a4de1adceb03395b8", + "lines": 582, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_hooks.rs": { + "content_hash": "5509ac1dc580a0c8a13607ab1d807295391f6dced6375f2a05ba4fae6589bde3", + "lines": 316, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/state/tests_encrypt.rs": { + "content_hash": "07bccfcf40e2b5ad38e718da89204a331512f0c74e8c13dce22e6864e30bc5ac", + "lines": 61, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/closure.rs": { + "content_hash": "5fec3b8c5ad2d7118ba1f7757bcbd756b0d424d574d7ca997de51c42ec3e660d", + "lines": 65, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/cache_exec.rs": { + "content_hash": "9c8b43112021997d47bcb7775bf13bfc762d02f1ee1cf40f4d902fb070a874f3", + "lines": 265, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_2.rs": { + "content_hash": "7f31373720dd7f00b8b0cfc724d9c0eb4ff9cb93c8172527b3899862e2d475bc", + "lines": 707, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/expansion.rs": { + "content_hash": "36e647edd310f9d8f1f30595e6a50c1b5f5f352a5da67ed77f65fa1f77649fe2", + "lines": 110, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/tests_proptest.rs": { + "content_hash": "0eb89718248287a3dfe83e3adb93336309e3831ae0d267cc00b660d9b06e7889", + "lines": 76, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_sandbox_exec.rs": { + "content_hash": "8fdfb88e74621caec25f8073fcf3fdbd10edd452448f4b6b265c55ea9b466ffa", + "lines": 248, + "functions": 18, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_transport.rs": { + "content_hash": "e6020dc225f3929dbf93a9fa1c4abc21bc9b5c0fe089f62c1e0772014bfec906", + "lines": 208, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_drift_intel2.rs": { + "content_hash": "6f32e09b223fb4a152deac6b1cdb6b80ef62dc08f2b6da69cc19c4b79649945b", + "lines": 460, + "functions": 18, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_1_b.rs": { + "content_hash": "33221eefa354e0482515d3ac44909c8b218d54435078814040b93ddc6f1d6f31", + "lines": 208, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_notify_3.rs": { + "content_hash": "216bccf19aab69f190b04af25c296385f62577edc54028435be95a11066c2be7", + "lines": 474, + "functions": 51, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/lock_security.rs": { + "content_hash": "8018b5a7797f5483703a32671e476ecbc4f8afe01eb6a727a39679dedb706be6", + "lines": 392, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/print_helpers.rs": { + "content_hash": "14fab206c24dde8dff130d982296586067b476a1fe46cdb0d4210b463a7bc87e", + "lines": 241, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/history.rs": { + "content_hash": "b71f21a1943143a0694336ed32053d28a4bea1275320430367ba14fa3e64977b", + "lines": 268, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase82.rs": { + "content_hash": "fa4cef482998707dd19209834ba250b6a3dea79eb38120b118e29795c01b861b", + "lines": 289, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_doctor.rs": { + "content_hash": "24fbc7d8a065ff4bd1bd7380595e8cc5e5cbc9db2c0fb91e1a2a2ae8a3ae1455", + "lines": 178, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_args_2.rs": { + "content_hash": "5508e7b804752e76687b26143649c6990e5fca3156c9adf78d7a0317ea861c70", + "lines": 483, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase70.rs": { + "content_hash": "2a92c7115123b83d8d0b4160f3e9332abbea33cd994106a7e8b93c1fc3e2f376", + "lines": 280, + "functions": 24, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/store_reproducibility.rs": { + "content_hash": "e1fd38b2cc2ade0444e77a0a2d7310b7ca0d2554f9db3ae5ff1753bbc8ddd969", + "lines": 450, + "functions": 19, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/recipes.rs": { + "content_hash": "5bf513847e93b5f32beb6ae07e4ae664a42f57ef1693e93b1449c4eb9f3a20ef", + "lines": 138, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/parse_and_plan.rs": { + "content_hash": "e02dd5813db8ce9426d3038a24a8cbd129e753de4e57630fbaa872b686c7a10b", + "lines": 95, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase104.rs": { + "content_hash": "d0db279defc746e4a47f639ad9b51c180869322b81923f9e6111134c8bbf5bd9", + "lines": 213, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/drift.rs": { + "content_hash": "6ff6e37736702b9237f75821c99fe3d39fdb3d9996f61a8dfc750ff94c93320f", + "lines": 331, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/planner/mod.rs": { + "content_hash": "7c07701fd6517c704b28c3dc0d946e0cd5adc8ffa371f09449e748734402f036", + "lines": 376, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_cache.rs": { + "content_hash": "1e4c9ebe04fbde22726ab94687dd01bb3fe069daecfa5777a1108b2f966524bc", + "lines": 252, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_reference.rs": { + "content_hash": "c49c2bddda5b11f68be69125f09c88b8cdf5f063de0bc3175c9feb09b9bf0006", + "lines": 123, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_security.rs": { + "content_hash": "5d1b6687847ae9c6e7a567c84429575f5119a37a59e1efd0c0a38291e62cd054", + "lines": 523, + "functions": 28, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/lock_core.rs": { + "content_hash": "622ec568ae72b5bd9b6625776af10162ad9ac59d8c8a8d5d8577cd124dace853", + "lines": 453, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_8.rs": { + "content_hash": "beab01b1c6f65e33a645fd11c61613674303bf57467816f1f1fe04ee1b898b50", + "lines": 704, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/convert.rs": { + "content_hash": "ef229b7ab26af27013fe7550151b754c18ad2483b86b34f66d4f7aa3ebc9f83a", + "lines": 225, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/drift/tests_edge_fj131.rs": { + "content_hash": "c55d3a18a1cadaf071128745394e2cf59de8a5c9806452e07766c38d12490ae6", + "lines": 313, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_store_ops.rs": { + "content_hash": "ff798a3ac2085a89bd94731c6894851de85ce3393a5db0cf4cf400e6cad078cf", + "lines": 244, + "functions": 19, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/multi_machine.rs": { + "content_hash": "04b230f6137c1cf850adeb484e49ffe4da9df5899f879ec799441db5ff51d36c", + "lines": 212, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_3.rs": { + "content_hash": "2ddf48816c11aede0141eddc648728528b6c55f6e532638c37db7a9e3ef97482", + "lines": 705, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/drift/tests_fj036.rs": { + "content_hash": "ce89d4858eb542c3e505c8bd744c9ceb7d43ff802fbdf172f084bd088b239aa5", + "lines": 236, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/cache.rs": { + "content_hash": "b0a9420e9c7cad743ca5ee26f5b366e3f64a3599499f83e5dc8d7f526c2570ed", + "lines": 175, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/mcp/tests_handlers_more.rs": { + "content_hash": "9f521869e1bf0d3061b2311c7fefcdf4f2d9275188bd5604713e252dcd891ad2", + "lines": 349, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_scoring.rs": { + "content_hash": "4da920733a2851796cfe33fc50b0ddb25b29b090de2c17d63b5da731c61a5014", + "lines": 435, + "functions": 24, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_transport.rs": { + "content_hash": "9be38f2f8c563b82f6df823e7f47e1000f238d7883f930e1b32f8cf3a36b9a5d", + "lines": 487, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_notify_4.rs": { + "content_hash": "131d6aa2f1ff7d1305bac3fc8a1ae4e0c08aa179853dd625dce26fdb85c50d12", + "lines": 504, + "functions": 36, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase73.rs": { + "content_hash": "30cf3a82640c3e614ba7b9dce1f9df02aa4c558dc4f1790f239e8d6c125deb16", + "lines": 283, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/mod.rs": { + "content_hash": "30d69f454459c3979acf9916e760d80f3d2467d3095367eec183a476cb93b6b8", + "lines": 113, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/codegen/test_fixtures.rs": { + "content_hash": "3efa8147df7d4144bdabb3ea06f747bc99c10d77ff6f78b5e405342c5724a99d", + "lines": 331, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_contract_scaffold.rs": { + "content_hash": "0579aec27efbb232895792b359733ae85c571abf51c7e4c5282de8700fa607f1", + "lines": 154, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_5_b.rs": { + "content_hash": "f53c35dfbba541b5314c96e465bf4d70f91cfb37dfdb542490648323d960f409", + "lines": 474, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_2.rs": { + "content_hash": "f3d8545a03426803894163f1ee8e3dcb12b3df37d3a7d7dd98a5e73d86f00e3e", + "lines": 517, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_localhost.rs": { + "content_hash": "954988f33b820310b58963906a52d14efb39fa171ccdce0d5d845e96526d30ca", + "lines": 334, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/observe.rs": { + "content_hash": "b9dcc21216e088cebd16c810444f8fd4534ee871fb5097886a30e14f62b83e71", + "lines": 363, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_recovery.rs": { + "content_hash": "0d4cfff5a848ceaadac787b245e475aff436cf6297353d029a9b79c26e5dc304", + "lines": 677, + "functions": 22, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_5.rs": { + "content_hash": "824b0d8f75706dbcd9fa8c3b8de4bd7a8d23b17de16c64b462c4fa242d8dcc06", + "lines": 395, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_drift.rs": { + "content_hash": "057857ab9c58a347b6da69e3895f2cb9d7c3f93561fdd29858e7fcb4a41b4234", + "lines": 541, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_counts.rs": { + "content_hash": "03cf2179bffbb3dd1c257375fab494bc5d968154375c543492c255fcd99b0f76", + "lines": 97, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_transport.rs": { + "content_hash": "c33ab3fd3cb1a5bfe41ffd3bfdd4ac703183e6fdfa303857a21aceb497216f7a", + "lines": 276, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_validate3.rs": { + "content_hash": "2cc0d2323726ddf8a93ae63a7590f55ecb15466f0c9176dee6188c589f5d84ab", + "lines": 410, + "functions": 51, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase102.rs": { + "content_hash": "28ceaba1ffaf865a6947a081b160e034a05ea8cb3a0969068df6dd7b63d550fc", + "lines": 206, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_1_b.rs": { + "content_hash": "d284dc840647a1e7cab3b623de997d50a3263d31ae77db2939044b18a7b096b9", + "lines": 474, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_validate2_c.rs": { + "content_hash": "4f9cdcb7db8755584f85e8c040c3451d3a69b8672a6c675b2871de7580838277", + "lines": 188, + "functions": 18, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/lock_lifecycle.rs": { + "content_hash": "1a130f12406efe0f6b2b2fbd421fdd729e31df031526144625fa8fe8529848d1", + "lines": 183, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_governance.rs": { + "content_hash": "7909756818caadc8ce5782aa8b4993c340675b9502259363f67ea01de304c263", + "lines": 480, + "functions": 22, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/tests_container_b.rs": { + "content_hash": "3e362db276afe5b00807edd1bb908ab0d43ede1ac1e2380756745d1dcee91e65", + "lines": 360, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_provider.rs": { + "content_hash": "223070fc681c59757242061bce3987209d1f621c4ba1cfe92d0dd9d5a318de0e", + "lines": 263, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_localhost2.rs": { + "content_hash": "dd03bc0e3ec79a5fd6befc95bebe05acb5cf0e136166b08ab2906f12b662f2ed", + "lines": 268, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_derivation.rs": { + "content_hash": "ca933c0431c5cc9b6f89f0db012202a65a6387207bdb00dd80a8cdd2dd9f5016", + "lines": 293, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/eventlog.rs": { + "content_hash": "66aa015f1b02ccd27b6e8e9b78b013e6cd3c873ebe2ac8087030588a90185897", + "lines": 105, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/store_provider_import.rs": { + "content_hash": "c94d617cd5ae49aac9449b53c444890eb8c33633c747854f23eb18fcaab7490a", + "lines": 154, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/blake3_hashing.rs": { + "content_hash": "ccf6727357b9f7774670eba775bfb4ef8ae608dcff6acbf70a4616e73d90f2d4", + "lines": 36, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_export.rs": { + "content_hash": "7e4f37f57e8ba466cde502437cdf0bd43eaef2868e103586294a836e10250f3d", + "lines": 517, + "functions": 24, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_analysis.rs": { + "content_hash": "091ac709f81cbf81016d5afc8919f47ef129402f50c9cd93d069b70a4ffd24ee", + "lines": 315, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_governance.rs": { + "content_hash": "3c3cfe711b4c2caba6a2eb351a7d7fe324589a1e4fbb8f51dc32599f0cbda81a", + "lines": 364, + "functions": 27, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_converge.rs": { + "content_hash": "c714edb89b5d6c1a1f63e42aab552d00fc1dfe4c523a43f514862c6c8f3d8320", + "lines": 339, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_show_1.rs": { + "content_hash": "146e30fe694909412f1d8a3157c58e7c8269c41ce0c7f35dc7e817d881833ab4", + "lines": 418, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_graph3_b.rs": { + "content_hash": "0b53e9dd56f69e38122e721290cc6e0d3a8415a07e0c460f2a1103a3bdcfc419", + "lines": 499, + "functions": 67, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_1.rs": { + "content_hash": "3b65e06a29308f5383fc8b645ea2e518932fc2f97a6c4a8ffa4f55bff7eb0626", + "lines": 514, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/status_args.rs": { + "content_hash": "b2df8deccc2c8cd18bb80be47098e390cb5dbf7cd6a16c74163be10113c56180", + "lines": 676, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_parallel.rs": { + "content_hash": "f82bb8f72e4d6b25694ffeb7abaa01e6e77934ee96fd2b897ff6845fb18f6582", + "lines": 404, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_quality.rs": { + "content_hash": "2c94ea204e4a115133bc709888f1e82c24e6253e59a85578bdf7c289a74d90c9", + "lines": 272, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/diff_cmd.rs": { + "content_hash": "aeca8eb5893d02c7ec86beb7eb0c2f5708d34c497f74ae33047c5d9133ce2a24", + "lines": 378, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/state/tests_process_lock.rs": { + "content_hash": "41e861f0d13f2c40d1aaeab5a594b62f02b39da9652be90c3991aa573016dc0a", + "lines": 85, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/drift/tests_edge_fj132_b.rs": { + "content_hash": "703679ec24f82db736126262db62b34f04517ff4e038279669c874dbaa646fb4", + "lines": 272, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_intelligence.rs": { + "content_hash": "5e77edc6f71d2664eddb5d0231eea7a01170920d47241fb2246ac48edc0251fc", + "lines": 656, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_convert_exec.rs": { + "content_hash": "492f4073d6e354e01cce99d946506f5e02b3d6d5b9f85861427cb608fc3f824f", + "lines": 294, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_helpers_state.rs": { + "content_hash": "bdaf0fef198566aa4ea317fdf578d0d5676e470962159a2bfe61af922a2af1c0", + "lines": 147, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/subcmd_args.rs": { + "content_hash": "f30161fb246f830e179318201829d0d887db3d017b98a3d18bc50ec637f33e24", + "lines": 120, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/graph_args.rs": { + "content_hash": "1ca088d8da750f957172e6d6fc1fae080a39d0f03c25448ff2136941d70aaec4", + "lines": 496, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc.rs": { + "content_hash": "f02bd71207dcab0fe85ea7441c1fd9b931aebae6e582ccdca5124707c38b35d4", + "lines": 436, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/lockfile.rs": { + "content_hash": "be61e70b63d980a44ccc9a57da9cfc04fc6cf842cea0b3724d756dda6c304caf", + "lines": 98, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_import_cmd.rs": { + "content_hash": "ca8678572947c76d895196e76c9ae6f6acb300fcec1481e9b572e38aae0b484e", + "lines": 228, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/copia/tests.rs": { + "content_hash": "99945b226f51c6816a3dd07f49ca4740319bf41000f379e06f00bc7560602e1c", + "lines": 307, + "functions": 0, + "max_complexity": 0, + "category": "TestCode" + }, + "src/tripwire/drift/tests_transport.rs": { + "content_hash": "930114ee44480ef88f9e0c153202ece0072243cf38b04d49f517e598b3dd0809", + "lines": 247, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase63.rs": { + "content_hash": "93d3e0b887e81b6e5c2c73b7f8d09f26bc109f8523e25b3a1bc1e0a6a3bafcdc", + "lines": 193, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_validate3_c.rs": { + "content_hash": "9fd07efa885746790d5b0da5015a316ac1314ea36c23c6a81f5da3174a60d922", + "lines": 454, + "functions": 57, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_status_6.rs": { + "content_hash": "7aad92ee7550f4497bbf6ef8c8450ca3107b215fe6091fcd58bd1c1ba3b7ba8a", + "lines": 485, + "functions": 74, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/profile.rs": { + "content_hash": "f9e15c83686dfd5b0bff531913bd671911c4954ed06050b596785e6a84f6a110", + "lines": 117, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_fleet_reporting.rs": { + "content_hash": "3901fe210760f37694820731b9431fe74558573a333681f17b9da1955f03d19f", + "lines": 86, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase107.rs": { + "content_hash": "e486299b14d73cd633bb447a4c25ad0e122c296dd1b7bc5d38ad973de7f6df69", + "lines": 225, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_7_b.rs": { + "content_hash": "bd7f7b8ac3b3ac62a3c27a9211af78ca6cd5ced4eb5cdcbe1d807fa6f3eb28c7", + "lines": 476, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_drift.rs": { + "content_hash": "5f34e558d5b53c082a28d43579f18cd4962307695c2e9fa782d4c2362399c302", + "lines": 381, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_plan_1.rs": { + "content_hash": "ee8591122d1888f8a32f1424187ee7ea1750421a8d2ad71729357ad8dd54ca42", + "lines": 184, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/trace_provenance.rs": { + "content_hash": "9f8a415a0f1e0c25293ebf2aab2a39d1bf6d9b838e101315eb5dec82348c22d4", + "lines": 119, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_bash_provability.rs": { + "content_hash": "fb5b01227d3d1ebf0c4b2b25a9585c3a3314a1dc8e3bb3917bff8ef1c7b6072a", + "lines": 137, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/helpers_time.rs": { + "content_hash": "3cc6c787859c42c701962a8943fb8d48c502416c59af9add56c40b500a1b278e", + "lines": 82, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/doctor.rs": { + "content_hash": "ff075849846d7cf2678962e124a8ec7d24b3f842ad9282193d05b1f7e83c1bd3", + "lines": 447, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/store_gc_lifecycle.rs": { + "content_hash": "e03482b73f77f7cbea774b55e412402b2b32907b79b81de45c3cbcd015fdac6b", + "lines": 167, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_remaining_9.rs": { + "content_hash": "e6392c9f422e76d22599cff1f48d9f31e9b9108407425b644600e96fcaca726f", + "lines": 466, + "functions": 29, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/lock_repair.rs": { + "content_hash": "5df1a01c6d3e651a03ce69af2bce43587e0caae153bdb9650250bab85e85548e", + "lines": 122, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "tests/container_transport.rs": { + "content_hash": "5eaf35999f82182fc8ffcfa7bba3084e607fcd733f8af0ecaf9e2088926e4e9e", + "lines": 105, + "functions": 0, + "max_complexity": 0, + "category": "TestCode" + }, + "examples/full_stack_deploy.rs": { + "content_hash": "56839d0659adcec2a1d782f0008bbc14a9c272f252bfd46bb5cd7dbe2164032b", + "lines": 185, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/lock_audit.rs": { + "content_hash": "781e7c728c7a0b8a9b2204000a53f1fd58ed33aad63202aa5020e3f39e7f3bbd", + "lines": 382, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/recipe/tests_integration.rs": { + "content_hash": "76bdc5f3c0d88749442c9f0438bd278b9c9a65f76aa3ad2210ec0162b1f773ec", + "lines": 453, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_edge_details.rs": { + "content_hash": "e4b0c31d73409f22aa1213b0376f5e9a02980a317e4ba6670c925afd5f9a51ef", + "lines": 403, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_4.rs": { + "content_hash": "daf747d1945c7b4cc9fdcd35cae653abb2446da79354f4d1ace15a885b27bf08", + "lines": 585, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_compliance_ext.rs": { + "content_hash": "52a51378bc98cdc284777bcdcf3966d365b46e33ec9efe10dd2881a3529cca75", + "lines": 430, + "functions": 26, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_closure.rs": { + "content_hash": "53a8fccc979fbf0bc31d2ed0b0fe0b777a91638869dab844daf3c383240db9bf", + "lines": 183, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/state_args.rs": { + "content_hash": "6cc54d6c4a4cff4af87c3b3abe9772c5ce5be1e2ea9647f5c6f8f72350097dcc", + "lines": 53, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase66.rs": { + "content_hash": "0d4492c526b77f8aa5d53713e6a1ef457a203f56bd8742765463fea2cd702256", + "lines": 204, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/tests_purifier_b.rs": { + "content_hash": "88ee77a349a942e64af435510638445d0cbde59a2018af5f591f72d4cb56903f", + "lines": 336, + "functions": 19, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_22.rs": { + "content_hash": "bf279a9d6ae125679a585c944782b7210e25699abf2834e397a1242c0378ed0a", + "lines": 588, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/validation.rs": { + "content_hash": "7a567c913b4d56dad15ebc937c0c47946b485bc508da83a434fa4f3f2bd38232", + "lines": 133, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_show.rs": { + "content_hash": "c359a181ae6f3ef222eef0553c6d2c97aeb833b8c5cbfcac40da7f46bc9d269f", + "lines": 248, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_7_b.rs": { + "content_hash": "c3a4d11488b362056db0044cb00a679d032a6055d5b07e23560563ead2f5bec0", + "lines": 204, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/purifier.rs": { + "content_hash": "baa6efd98650a7215e3625953387dee9e5dd2124122d2bdcdc5000da2200c967", + "lines": 91, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/apply_variants.rs": { + "content_hash": "7fb2ff4c429a910521f9baf6668437bca47db6c49ebdc70574e1b38a380731b7", + "lines": 349, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_quality.rs": { + "content_hash": "28bbc55f377fe73d85db97f42ae7d594ba94ebd2885c2dfe60b640ae93f65fc9", + "lines": 685, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_5_b.rs": { + "content_hash": "ae7798e2a3827d2d0946147ea00340787a86e191f15d4b98237d7b4bdd74b75c", + "lines": 207, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_check_1.rs": { + "content_hash": "c973bc13a84441411cb93e5fd8321693edab02f864f5e042455f368cb350c0a1", + "lines": 482, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_8.rs": { + "content_hash": "1185e4f85d857d6ec63ecca39b7da844e29f93bc3fd9db14722ca67d425278a5", + "lines": 620, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_structural.rs": { + "content_hash": "cb2f78d1e49b5d1500240a9ffd4cfa464e4130a810b8fc86ec989160cd044c9e", + "lines": 486, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_lifecycle.rs": { + "content_hash": "e2aa32b5d86669dacd3372184338375a61d4a42d0359a6e206aee5bb0c1bd8f0", + "lines": 285, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_validate_core_3.rs": { + "content_hash": "c94e86e0868d9fd06084bf3fdeb3a05303969bdd50c2ab7dcc054b93cc93b608", + "lines": 246, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_fleet_ops_1.rs": { + "content_hash": "5db177b33104bf4e9c9a6ae3060e9aebfef6341175f3f69727b3c8c0a51acfbb", + "lines": 50, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_expansion.rs": { + "content_hash": "24c9d29da75808f7c80dc6080ec73de55bf3b681788b8a4d4bbc8ef3a2cc0bde", + "lines": 493, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_config_quality.rs": { + "content_hash": "f0bb4d6639b69789a74c6fa91155b34ca6600257ca7136f2623ae7e9ab049227", + "lines": 494, + "functions": 26, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_sandbox_run.rs": { + "content_hash": "5f701b77734afb259e8e1cc39173f67ad8c8e9dfc57ac8abe60544869ed6e3bd", + "lines": 229, + "functions": 18, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/dag.rs": { + "content_hash": "fd7c4d014b94120319649575e44755cb7f27c8a6c3149910df5b7e766122500c", + "lines": 150, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_operational_ext2.rs": { + "content_hash": "fdeba2e3ad4a85d5d5aeb8d0718440d13adc7c090c8cd91276ecb23f210bc43e", + "lines": 556, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/recipe/validation.rs": { + "content_hash": "ffaa1f188e22ad0d1fa3d77f17273174eddae18e8e62cdeef3cc7272b34a6dce", + "lines": 36, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_validate_store_purity.rs": { + "content_hash": "1af1deaef29751538178614558ce4777d3929dedbed15ba2c2ac15731e61af2f", + "lines": 155, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_paths.rs": { + "content_hash": "f744e57ef946a04fa8ab74b4b2a5c04a382e2ec42a7cf6b3a78fb6467babad98", + "lines": 517, + "functions": 19, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase98.rs": { + "content_hash": "3ef40d8eb024410a388a63b957bcbd8b4b2de79e9bcf915cbc13ee6c14666cb7", + "lines": 251, + "functions": 33, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_store_cache.rs": { + "content_hash": "92dd6a9231f2e820d39689e46f9fcb93a85e0c5cdbea465c6dc0f89d20dcc2ac", + "lines": 174, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_misc_2b.rs": { + "content_hash": "d5b42c215c27b1e08c7756f65bb265500ba10cd24bed9da74ed294ce1cde1ba7", + "lines": 452, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_rolling.rs": { + "content_hash": "cbca7f9c8fa3f645deb82608388fe64e767b9550f3388416630c2d5a233b8aad", + "lines": 261, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_advanced.rs": { + "content_hash": "67ed06aaadd80dfd88bebac0074a53446643ab1885cb62fdc3a31b750fb9dbaa", + "lines": 372, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/types/tests_config.rs": { + "content_hash": "62f198f513cd6611e7b3746054fbb8f7280ed719277043d12fa10e5729e5586f", + "lines": 447, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase83.rs": { + "content_hash": "9234ec3986faf13c9d6bd8fe87076bb84caab479f5be32081d2b50e7d74b963d", + "lines": 289, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_cache_exec.rs": { + "content_hash": "35bd26e595cbfcc6ab08a3cf4109c77a0bee2946efaa268e648810c6925166be", + "lines": 280, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/mcp/handlers.rs": { + "content_hash": "b3f3ba304fa11f48ee3077275ac09caa416279ee0ce7f5a6cab754f428ee4979", + "lines": 491, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_check_2.rs": { + "content_hash": "90f36300ab8d3ac244bea609b6f03f08247aea096fc30cbf25fb45a8cf6cb6f6", + "lines": 411, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/types/resource.rs": { + "content_hash": "58e75f542452698f3ff375faebc9fe6e3672dca984bf84404375aa68fbca6d43", + "lines": 438, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_1.rs": { + "content_hash": "a9585baa58750091b28e6495aebec099df26f3b35db61484f16b32f2c3cfc37e", + "lines": 395, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase69.rs": { + "content_hash": "2f2bcf585b5143f5b20d41afab3af4b82173d27fc481a5586adc2e418465110d", + "lines": 280, + "functions": 24, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_graph3_c.rs": { + "content_hash": "d4d7d08d99de4e8d2d5c7c80c481d2077dbbaee1a84d7cb7a4fb1a8ceb9eed44", + "lines": 267, + "functions": 35, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch_status_ext.rs": { + "content_hash": "38caa2aed92591fe40388046bd7b21fe3209088d0376b921fca0982e63e37c1f", + "lines": 637, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/container.rs": { + "content_hash": "45a546877c6bdbd441e67802d0eae4567010e93f57f048487a15c690b71c234d", + "lines": 168, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/data.rs": { + "content_hash": "e38af36163c68498a96ab1edbb077a08efcad8e2a2e86cea14eba74590b70dbb", + "lines": 139, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_weight.rs": { + "content_hash": "67e5cd261fd46b776e6f950d280ec214968c66ceb74a0a906f03327791b9af44", + "lines": 410, + "functions": 28, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_intelligence_ext2.rs": { + "content_hash": "ddaa73730c7560e3746b74fc84b6d38345ca14c7d20823cd31db285ba95a7500", + "lines": 643, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_10.rs": { + "content_hash": "66d3de64c23cdbdba6cb3d9bdee6971b446e737c2f431691ec0af0c8a62fe023", + "lines": 252, + "functions": 30, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/store_cache_protocol.rs": { + "content_hash": "e5dadaf2f46a18ca3e6d87c33d85aeac88143a65b406d196220f349109d14778", + "lines": 177, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/strategies.rs": { + "content_hash": "47300be7d021d6fa65d12516cfe21bc9efa2b9d4d14a702f668fbda29deb6362", + "lines": 129, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_status_2.rs": { + "content_hash": "aecb4e8084ebe53396f124fe0af98547eeca2473f59238fb6a3ebb5f4ed8ebfe", + "lines": 453, + "functions": 64, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase101.rs": { + "content_hash": "74758c38fa148996d240fd23b5a951e82edddb5e50b95fd15c449275065a8f57", + "lines": 207, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_topology.rs": { + "content_hash": "58dbadcd16996501b6d30be61417f9754f426a86fb2ebe6467302c081a8a0bd7", + "lines": 525, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/tests_scoring_b.rs": { + "content_hash": "d78bfb4b453e0484eeccc3c859cf0a4217d77e1200e70fd2b947d9f7fc5ab5f3", + "lines": 488, + "functions": 32, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_lint.rs": { + "content_hash": "5cb83f7f55532c360a592d010ae54ea7f35787782a84aa139281154a04bba24b", + "lines": 196, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/user_management.rs": { + "content_hash": "778853f748c4e51e356d3964dc284e1644806b380bda3393d2d02dd0ac2137d6", + "lines": 120, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/recipe/mod.rs": { + "content_hash": "a40beb6014ade2c9c0a635661efaac91105151fa0efc8d077475cff6f6efc4b8", + "lines": 23, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/policy.rs": { + "content_hash": "1d649aa9ec5345b621a76ea085fba62cae11b53987b1986c7bef281d1c0a49bf", + "lines": 106, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_queries.rs": { + "content_hash": "fc435d443a5715aba50557e2b267a94ddda0a11233fbdc0376662b99d8f9cec1", + "lines": 250, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_6_b.rs": { + "content_hash": "7e2a14df6b54e692c97b64d08ea54685e4e3cf5ad33a56fe6722ef70de1ede3e", + "lines": 474, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_substitution.rs": { + "content_hash": "502b1ad43ed11914f569118f091a4569207765359dc2282fa5c95340e026d631", + "lines": 279, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/store_pin_resolve.rs": { + "content_hash": "2ec6dfb445ef7c6d801139db58f6282a1c506dce46001a42dba4f8ed14e166a0", + "lines": 116, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_intelligence_ext2.rs": { + "content_hash": "f1d0f601b3f665c3dc7dc2314caf87827e1ac030ddf81de17aad5e156b307ff6", + "lines": 624, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/mod.rs": { + "content_hash": "8d9bb67095febd89ec5e0a9a6e0f1bc97a1454c28d674f36dc5357cdc8f8eeae", + "lines": 240, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_intelligence_ext.rs": { + "content_hash": "eeb9abf73fbfc962479c96003f7208a7ff1c33a9b00ae21afbc1ce91adcb8d61", + "lines": 759, + "functions": 27, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_topology_ext.rs": { + "content_hash": "5ea63a1384c82f316ef7448e73c80696167583f8a22b868509dd6cef478c5afb", + "lines": 124, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase80.rs": { + "content_hash": "e267ae411af084f1442b0496b55e22ff991b270d68e7642f4846bef5f10c9bb7", + "lines": 289, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_history.rs": { + "content_hash": "fbeabf5f857e37748c156384889a1b7ff8e67b4b9ef626077d8e82ffad8bb45d", + "lines": 230, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_mount.rs": { + "content_hash": "5f3ff36a90ea280516cdd7bed4f53353133d7c2d88d79f6eefd3e3fdda931d07", + "lines": 258, + "functions": 19, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_security_ext.rs": { + "content_hash": "f66fe1fc9ea7278efa07102a67120cb60ec48798452be1d870ebc4394f7fa674", + "lines": 486, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_7.rs": { + "content_hash": "b53d80fc3bb932221f9f7ac428f3b0c9e3841a0e908ddae73f407958e5be08fc", + "lines": 703, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_core.rs": { + "content_hash": "6b23213ebaebf35c315cc8c8b6b36d574434ec9561e378484c287df2ad967f09", + "lines": 378, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase105.rs": { + "content_hash": "125e47bdfb4e5632a1352a9f73348469d2a113c4dff77b4ae71919315fd0c640", + "lines": 206, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/tests_hasher_b.rs": { + "content_hash": "f5b697b99c5076d1499ed56d039551e4d573da8e5140ab3199102cdc0ab119a3", + "lines": 265, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/sandbox.rs": { + "content_hash": "935b1ae7b717149c9f30c52e6859ac131dd16e0d25ededda34f1405405180873", + "lines": 184, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_2.rs": { + "content_hash": "b299404221428f44c430c474ff6684c540df14375ce9b1b68d648bc864bf0dc8", + "lines": 426, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_policy.rs": { + "content_hash": "61be353f6ee2e40b9e535c856ebe1c0de628f50f5c1a4b1750834c72b7b9c874", + "lines": 258, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_notify.rs": { + "content_hash": "c413f83c75c094afe92882c50880cdd8db88af26daeea15890fa9614723e78fb", + "lines": 789, + "functions": 45, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/drift/tests_edge_fj132.rs": { + "content_hash": "548bc6e30bbf5689453b1ffefda21385743466c3cf7b8baeba29069d569b3d2a", + "lines": 309, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_operational.rs": { + "content_hash": "c67f575d0b6b37879d87be18a304c51a63b4d127184f0c0b39a4e70ea8c9ce93", + "lines": 529, + "functions": 18, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/hf_config.rs": { + "content_hash": "69473bae90f1e31f7888afc480eceba0ce62a3188f44f2727bde0830c0767bab", + "lines": 293, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/gc_exec.rs": { + "content_hash": "2af6ad4e5be133d8db7efbc89197594791c8bad9c0c8f8452f6e49244c9b66d4", + "lines": 189, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/path.rs": { + "content_hash": "e29f0f409a8c4e2af98e7e4a0af071d9b72d16b0cb7c93187f14a57956f5db66", + "lines": 33, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_12.rs": { + "content_hash": "a23683659b99ed53f1d94379a414bb1088617b377ef4d672d3c7523e6330e14b", + "lines": 584, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/apply.rs": { + "content_hash": "05543a44c4da020489c7a65b8e5ae2e594d3e4036c738ec0a8ee8f3525426352", + "lines": 289, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/cron.rs": { + "content_hash": "484d9fd86bd6cc757e67bd4a7b8eeb0f3a8efd9f1a2550414382c8c43a9d3b3f", + "lines": 464, + "functions": 32, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/misc_args.rs": { + "content_hash": "523094e0263ddeb5241d7d804636081e17fc86d0dd6ebd6fd63222fe7036dc50", + "lines": 349, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/store_diff.rs": { + "content_hash": "3604892b9c7259ae2d773fe300b4fb5ab77fb8e982e0188e783e913517c4e5be", + "lines": 161, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase99.rs": { + "content_hash": "3e99a44c3fe4b8c4734bb170b82d7dd8825335c7b3980ef6f7504341aba9e153", + "lines": 237, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_plan.rs": { + "content_hash": "5aea601bb36efb618cf588cf6b9e5b0bf6d21064478d68de5b8f7571aea43f5c", + "lines": 475, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_notify_2.rs": { + "content_hash": "96b1d9717c6957af6517e4297586f248abe8803f8c282001332cd194aeb284ca", + "lines": 529, + "functions": 49, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_visualization.rs": { + "content_hash": "2226cd8758d6b12cffe2ccafda43f34104bfe7939d93bcfec710cd07bcc216a3", + "lines": 313, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/local.rs": { + "content_hash": "42df3372977903d61a060ee4949826793a11e046b38b022b59743c864b4d4f9a", + "lines": 149, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/tests_data.rs": { + "content_hash": "1f1ae2c8727651048eeff987ddd1cb6b0cd5da5fd1432cf001672485539da462", + "lines": 368, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_check.rs": { + "content_hash": "8feb321d977d51fbfcbef8a625c807ddb8fd7c32c56c45bb712ab39423578c64", + "lines": 461, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/provider_exec.rs": { + "content_hash": "ece29886cf9b90d3f5ebd6eabf3d7113d201afba6ce9190e566c1e06fe98a837", + "lines": 244, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core.rs": { + "content_hash": "ec2276a149ff2bab435d03b68e2b4cb0e0bf9500014607f887488c339097d43a", + "lines": 359, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/infra.rs": { + "content_hash": "7251b32b2e6046c6473ce1a8606134553996abc1a2419a0c1188f5a0bb622e61", + "lines": 483, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_destroy_1.rs": { + "content_hash": "3c0d589f84c8a17e42522d5b8be25e711f6344fedb9b7ce31ada530b64ef7f2d", + "lines": 257, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_compliance.rs": { + "content_hash": "189ea51340b3381cae608da38eeac89e569cc1f7f918b75cfb66d82a9dff6499", + "lines": 208, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_package_b.rs": { + "content_hash": "e00b5572eb5f2d0f5b2a128668f2e109598a73534c7df084869c90b43ba34840", + "lines": 289, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_14.rs": { + "content_hash": "50450e6aaa6a7fff6ee109442e4ba0fc71a35ae53f7ea8f0e477cf32234fd1ce", + "lines": 584, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/lib.rs": { + "content_hash": "e0b8dc7a5e97c44562a039ac02eb9134596d8ad98973a25080203f32a92e1067", + "lines": 12, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/provider.rs": { + "content_hash": "1e14c29a40c634ac83ecfcc1597d908c02069bbd22a23c97d65cf3489226d1cf", + "lines": 206, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_pin_tripwire.rs": { + "content_hash": "4b400e9e27207460dfae9a3686e898af1d62f7dca35656618f6438fd860fd7fd", + "lines": 215, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_purity.rs": { + "content_hash": "a41138df84992ce18b83b566c73f0b023343475e6c450a8ea31b09f956d5b6ca", + "lines": 186, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/template_resolution.rs": { + "content_hash": "fed4c713fe1143b4b6015978ba085cfddb3e62bff74fada57d4196edfe34e2b7", + "lines": 89, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase87.rs": { + "content_hash": "1e84fc118324487ca1d725601d4484cb4ffd00a7ae1757a99e8f754fee9da4ac", + "lines": 301, + "functions": 24, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch_store.rs": { + "content_hash": "9d5df8d37533f8425e7297d017f2e33c955b76cf82652a1f126e5eb2c0b869de", + "lines": 120, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_apply.rs": { + "content_hash": "0fe8601283da0f753ed01431e5401bab3b82c7243b495696ba658cb24b9d1766", + "lines": 427, + "functions": 33, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_validate2.rs": { + "content_hash": "de5ed195297c91cbf1e4853a368f389e6d9471e6e9fae63e7f4820f5dbbaff77", + "lines": 396, + "functions": 30, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase67.rs": { + "content_hash": "ec27a9281d427d21d74d40932e78ec67830df492548a4b4cb808f5b48abd75af", + "lines": 191, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_snapshot.rs": { + "content_hash": "c2a2e43628b0107466662faec0816f1055639d40663df4b04855941969b1a437", + "lines": 176, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_concurrent.rs": { + "content_hash": "d06fa49b373312851955fe8ac459c25ea1a833b9c29adfbc9fdb160e11bd5be0", + "lines": 356, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_edge_apply.rs": { + "content_hash": "eed737476c55bb2a27aa55e9ab9172157c484deb7a587f0755efd51c74e71c44", + "lines": 465, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_transport_3.rs": { + "content_hash": "5db5283ea634c9728bf749c2a68817a5460d41466c4128cea901d7e833dfc87e", + "lines": 496, + "functions": 29, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_provider_exec.rs": { + "content_hash": "6b604ee2342537d09cf5d78bb383ed6db8f660d48935d1dd3b0e2ecb691ef659", + "lines": 364, + "functions": 29, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_ownership.rs": { + "content_hash": "8c38dfd3544fd20c954d421e06c76df90cb952ccec3f302d02956b2146096460", + "lines": 610, + "functions": 28, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/tests_purifier.rs": { + "content_hash": "2590f79be5bf58666abe31c1b7294d2a0b87213100b1190097d270ddc6e91915", + "lines": 304, + "functions": 22, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_dispatch.rs": { + "content_hash": "6358cf318479593cf597f419d64a74af27bac5f881755714a645d7abd9f4e972", + "lines": 466, + "functions": 29, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_audit.rs": { + "content_hash": "635bd8f48d74fd82be82f519bad6521032b68127a73aea0816941feac68f0417", + "lines": 460, + "functions": 19, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_8.rs": { + "content_hash": "89614594099be17f2f6a2821b5ad27cd9cf91a944f698a4b769f8f75f7a72c4e", + "lines": 586, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/network.rs": { + "content_hash": "b1b8abdffb20b6563eb80db130032e0cc1f92f3e86c28f8917d6082e6e211807", + "lines": 535, + "functions": 37, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase75.rs": { + "content_hash": "bf07a1a67b718dbbfa557d46495d3bd2da898466891f5526bcd817db3e3e390d", + "lines": 292, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_extended.rs": { + "content_hash": "b69d7bb4dd1eb9319b0732c2cbae1df057d49234c1eae9cd7423e6c187ee0cea", + "lines": 379, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/repro_score.rs": { + "content_hash": "868b818e86f30358f42e560e49346e66426f57871f68a406006e9028b2fca262", + "lines": 119, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_chunker.rs": { + "content_hash": "f0cc30924b1441600d59602f94906775f5a056ade2dd6f6f4c3c5cb9f412e675", + "lines": 136, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/pin_tripwire.rs": { + "content_hash": "6642a1bbc18f4ff12b66e49e0e7751744ded7a5a4fdfcad6cb8aa991bb6bf3d0", + "lines": 117, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/tests_anomaly.rs": { + "content_hash": "7f8482500d6ec9b32ab2c892b71c8de993c19359baf1bdfc8d3301d9983d2c77", + "lines": 276, + "functions": 26, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/recipe_expansion.rs": { + "content_hash": "86024e836a99cac3432954bd6bb22bf8c5bbeea7ea22e90457ef213ff07ad7dd", + "lines": 118, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase62.rs": { + "content_hash": "6f95ab39861fa1e10e27bd13cc4bae119d295cd71df5f20f2e8e6a1d3f725603", + "lines": 194, + "functions": 19, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_observe.rs": { + "content_hash": "acb6154c8558487eee51f8b71d5320750e5c073cc58643ffcd11f53b2e380db0", + "lines": 413, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_args_extra.rs": { + "content_hash": "7b4da3d7345f30e8e6a1bf7fae6e84e3c3fbf5979f1a015fc41f4094f5af94f6", + "lines": 538, + "functions": 52, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/workspace.rs": { + "content_hash": "d8b9e8bfa055def6a3546c6467ca5c956337bd0df23c6a27449ce14553cc410d", + "lines": 159, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/types/tests_resource.rs": { + "content_hash": "c51b45db69f9f9d83857727f88999433664a2ce42bba11070ccea4235c79fd7f", + "lines": 298, + "functions": 29, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_resilience.rs": { + "content_hash": "dcea006a4ac80083d38f24c48919388010b334fd0287642546d62f75efb34c93", + "lines": 268, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/sync_exec.rs": { + "content_hash": "4e91b0d79127d3b8c39c7b64ae527a802fdea0be8400406a722d3aa6da41094f", + "lines": 189, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/codegen_scripts.rs": { + "content_hash": "1aec4a1f7fbd71e200736351449eb48da43034e7c29c4158c6253d4ec46f47e3", + "lines": 231, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_hf_config.rs": { + "content_hash": "eb2abc98fdf184aea958e4c5868c7a0f967a227367465aaedd4ad7e992bdb546", + "lines": 373, + "functions": 24, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_policy.rs": { + "content_hash": "ab672e6d66b48bd9914016ecddf58ca50752c06d0c40579e5679cf4b3869576f", + "lines": 218, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_validate_core_b.rs": { + "content_hash": "f8e8c442d4363e1e2c39eb81b0c3835882c849775cb2d8db0e18cb4e59f8c7d0", + "lines": 495, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/validate.rs": { + "content_hash": "6233d0994ccaaafc3c9112422e700b7feceb4883f7baff463b6595bd623d2455", + "lines": 131, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/mcp/mod.rs": { + "content_hash": "3201dad7d2470e767c9e463c855586d805719b6af472a51bf914d540e6d92687", + "lines": 21, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_workspace.rs": { + "content_hash": "6bc034afcb07773cf8fb294368c3d8dd2396f64bfb02ae65d5d524ff35e27605", + "lines": 187, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/check.rs": { + "content_hash": "ea85e4683f4490afc10d126fb3ebcd379b982ae73f1abf8c68380c7c2281f838", + "lines": 299, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_3.rs": { + "content_hash": "fa92eb256aacdaa41fd7b5968e61bc3caa011efba331b28f112fa5425904451a", + "lines": 475, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_show_3.rs": { + "content_hash": "69c523ec10fb607ba10cfb566444444314dd0fcb96954a26dcbfd35a9f72674a", + "lines": 256, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase96.rs": { + "content_hash": "2ca70a55830fa12021b91459cfd36a7fd2f6f70197ead4d6f109dd06abd98902", + "lines": 224, + "functions": 29, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase84.rs": { + "content_hash": "33863ec3fca34a46d4f8ba2b7c3949438640899e7793463ed3dd93627d48d6ef", + "lines": 289, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_user.rs": { + "content_hash": "948e80757627608afc462218c4f2fc974469f0914f19a5ffe516ca4ac79217d7", + "lines": 473, + "functions": 30, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_sync_exec.rs": { + "content_hash": "81910a320fed712fc6c3945503531309f8b45a0c4604145ba1765f46b36d1d32", + "lines": 334, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/tests_secrets.rs": { + "content_hash": "c3e9a7a11caef27d4950768370be2f68d69ed711fb48393ece5eebaecd99fe80", + "lines": 440, + "functions": 39, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_security.rs": { + "content_hash": "534f8faf855d2ebe94871452b0e993c762ba38be7127c95f198d3f6e26dc8c49", + "lines": 436, + "functions": 28, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/show.rs": { + "content_hash": "4538451f83bd09570bbd07e938a5555815cb5362176f88d81c937297579fef92", + "lines": 399, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/service.rs": { + "content_hash": "b196fa1fe260d1ee4fbe5490d9e73fb475310871a762cd9962aa81be2e6bb56b", + "lines": 81, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_core.rs": { + "content_hash": "52906653e59d2b705f0221e6d82d69271897aed0864605f1a9fca1c915db5d80", + "lines": 263, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/derivation_exec.rs": { + "content_hash": "6d0346d5730de8d4bf4d6eea662ffdc505e16d9cadff7bfd183c807dbfc9fa1d", + "lines": 399, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_destroy.rs": { + "content_hash": "a59506d1abf95980b7e8a30f62c4efaff1908cc8b33abca1f046a4d6f374eedf", + "lines": 431, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/mount.rs": { + "content_hash": "c2a3832d37383b154b7771f9a943d0ff31758f4dd6f7367ce8f83bfef994dfd2", + "lines": 72, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/substitution.rs": { + "content_hash": "066e4f1a9d041be568ba6528659f4d869d71368af226e0fc99dfefcb717fc79d", + "lines": 279, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_fleet.rs": { + "content_hash": "0a1e48414bc8db11acbf4507134638e61621e160134e4a6d4d558290a3797a4a", + "lines": 337, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_dispatch_2.rs": { + "content_hash": "1fc985791b0269cc12e0d0e2b0cfd4e157aca99b943ad9e9dd9427e475d5caab", + "lines": 483, + "functions": 30, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_drift.rs": { + "content_hash": "49e2203aa6db0c38af3d2b3a77926090384e38100fc6b951057dfb559567b9b0", + "lines": 458, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_9.rs": { + "content_hash": "1453de79861b5d7e0baa50ac8f399af82c2084516d79817a7db1cd1002cad9e6", + "lines": 621, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_misc.rs": { + "content_hash": "5b2ad6d320371f06b95d99256f679fc0820a723116b8bd52fed4a90751bb7498", + "lines": 463, + "functions": 19, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase86.rs": { + "content_hash": "153172f7ef3c5139c3921114f76cfc53f40a54d98910d6b36f9f6dbbd6a91413", + "lines": 160, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_fleet.rs": { + "content_hash": "1c0159832f389c93c2591da2ee366acf6256f9333c0025cdc581eb4e2f525207", + "lines": 526, + "functions": 51, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_misc_3.rs": { + "content_hash": "12d7d262f0c2b2c8e449e681dd8f262362e21237040e8da02a8deecf2d527a42", + "lines": 428, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_21.rs": { + "content_hash": "d73aa2e0be9902490354a498842a6e26f671c12bed8542dac30f82c03ea056cb", + "lines": 591, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_intelligence.rs": { + "content_hash": "7d8eeb261c0ea722ff0134954f29b9742ef87ae24b9bf2ea78290081e5d3aa25", + "lines": 591, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_17.rs": { + "content_hash": "7c0212f2ea73638a6baab961322bd7d790910205185aebe8a5a5ead6808b3719", + "lines": 586, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/destroy.rs": { + "content_hash": "99e2446766c777d132f7a0fd113bcc5f077e937b9642ae77f67b35523b02a902", + "lines": 275, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_waves.rs": { + "content_hash": "982bf7d6f02720c27869d8e00dfd8eb3868b492a65bac78750eedbaf380ddbbd", + "lines": 459, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_status_3.rs": { + "content_hash": "d953ba308efe6509163a04d8d0ab9b18b59435efe88b5d09bfa8ef2a72a18e10", + "lines": 411, + "functions": 72, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_misc_2.rs": { + "content_hash": "0c72d3e8511ed1c5abac170244cd9ec3a33a39c6fd14f8ce2dacc31e8ed07ac7", + "lines": 391, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/lock_core_args.rs": { + "content_hash": "273fd1b5632fc1d2d997ccd6f3b94aea533dd79c2845ebe5abdb246aa7769c80", + "lines": 254, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/validate_args.rs": { + "content_hash": "9ac072f4f1c1d135c804ee6902413dd30e08d8611f7d04d6d3375a23c236e98e", + "lines": 500, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/test_fixtures.rs": { + "content_hash": "0b8fda69d8f277e11569288b038ea6261396ff44b72d25b7410150bd2fb19839", + "lines": 149, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_arch.rs": { + "content_hash": "940ec9891e074aa9fd5d4805cacba1d4c7b0d269c952d37ebfc9aba403f3f26b", + "lines": 152, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_args.rs": { + "content_hash": "d6ff2578cdef4fb0853e97436d525ab7311339457cbcbd9c0574d2f85ddc7c9b", + "lines": 472, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_lock_core.rs": { + "content_hash": "70adbb33a1eadbd8fcd553e18d283c32833e30995e4c32e7614d648c4c708b88", + "lines": 467, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/helpers.rs": { + "content_hash": "7cdf36a2f59e6dcf0e334b47db74a7877ba11321c4565a75c68745817abcec35", + "lines": 74, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase106.rs": { + "content_hash": "ab55ebf79c9fc973a5a13a5bc5836d5690ad4f085c37fcf797aace755acfea91", + "lines": 207, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/convert_exec.rs": { + "content_hash": "b8e1187b3647fb264ede81b033316c4338448d0a1208bb0610f522f6c246fa31", + "lines": 183, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch_notify_custom.rs": { + "content_hash": "f8037c4ca348c06dc50eb5ee323d77e9412fb370cf0c5299f5b9716b334488d8", + "lines": 427, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/anomaly.rs": { + "content_hash": "239d090e52456c1d1579249311e148080231cd73796da9db0bf333f2fbb0bbf3", + "lines": 331, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_sandbox.rs": { + "content_hash": "53da5a42b62345bc14b3ed96491582b76080d76c3050b9be2fb06315ca9e2fb8", + "lines": 218, + "functions": 22, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/tests_eventlog_b.rs": { + "content_hash": "34a596c285b3642f888d17dacc616138f36a5c6388391a331485fa09f26c4802", + "lines": 270, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/conda_to_far.rs": { + "content_hash": "7734affa568d41f480d8e38788fe151adef95b1a827dce5b24e559ba866fb11a", + "lines": 110, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch_validate.rs": { + "content_hash": "d42faa6dcd9c3ef425114529b535325d83e3f10e90e476a07db877caaa6d1a81", + "lines": 1168, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/drift_detection.rs": { + "content_hash": "6319b9280486dd5580425f9e93df747b1a32d95f0ff06c5bce38f9c0e4ebcd1d", + "lines": 127, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_graph_core_1.rs": { + "content_hash": "b996492b79f04f8f625bd3b70571a2f5141cc8abb40404afd8256f97d6a1af27", + "lines": 1033, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/tests_ssh.rs": { + "content_hash": "81604c0180ad81bcfc76902e10c0f90b1737185a18af42ad22b09888aded4d63", + "lines": 358, + "functions": 37, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/lock_ops_args.rs": { + "content_hash": "0a0ef2dd6cf1e8a992a644dabcd8fdee6fccda5656aa865cbbd989b0b81d48b9", + "lines": 221, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_compliance.rs": { + "content_hash": "fe4dc8afed79cac5f9f1ec0a300860a17b11571a8e284bce1c599435fd73b546", + "lines": 327, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_triggers.rs": { + "content_hash": "43a2d5e86ff679568c74904081e8bb08984e92df2ad7426961767c3999e3bb68", + "lines": 106, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_resource_intel.rs": { + "content_hash": "86d33a5d43a4e1f5cbe8e5672e93f066e17fe64dd817f2fe5c014a63696f2557", + "lines": 719, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/store_ops.rs": { + "content_hash": "8f1c09ef38818d37d499deae48880fce98e537ec88ed2f717a18775b67cd1f72", + "lines": 311, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_11.rs": { + "content_hash": "0f99be1bbe1377b6ab724baf304431a900a7361d15b4b82d7d52a43a2dfea94b", + "lines": 584, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_graph.rs": { + "content_hash": "d6324c03b4c5dcf421b9d0a587e46c4ddd47629af49d78a4ef5351471ce7b727", + "lines": 335, + "functions": 53, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply.rs": { + "content_hash": "4f1d614e3fb5124e194b4f2c9defe98b4a1f0c9a23d2e088c21dbc919b51c539", + "lines": 416, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_docker.rs": { + "content_hash": "d9dfa934ac8c8bfff1a3761cf5e0b4520fab47fe3f2996b2b10911788bd874fc", + "lines": 285, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/user.rs": { + "content_hash": "94af7591c2ddfc0d695c7055344f255a15e8e7c11e805c5222f6ae6df8b4524f", + "lines": 141, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_8_b.rs": { + "content_hash": "9d0b1701b10b92390265cf41b623c1234fafd0e600e7fedb75a70a73de503993", + "lines": 474, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/score_cookbook.rs": { + "content_hash": "67ff3d234d87993e17cf72b00da5d0b9c2c3237f7f09ff2a656c19a60459af18", + "lines": 104, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/types/tests_state.rs": { + "content_hash": "dd2a188c375b0154f75dec150a2cf75406c52e50eae968c3b467146aedef7af5", + "lines": 282, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_resources.rs": { + "content_hash": "c30a9bd72485e2d4669f36919b1e0498e8fc5510d523dc308b2b43fe8b21bcf1", + "lines": 260, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/validation.rs": { + "content_hash": "8346d643a4450c0aa664b04298cd5e3b8483e74ae34344148daa81d625359f30", + "lines": 118, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/helpers.rs": { + "content_hash": "8d2c8e5bf247190920e2d8672061d6e3175f74153bb6556d2bbbda48cfff9a64", + "lines": 227, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_diff_cmd.rs": { + "content_hash": "e57e4cd9dc1058e813d4dc380a24eab862caa0758b90fcad6d828ce195ee13e5", + "lines": 497, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/anomaly_detection.rs": { + "content_hash": "7df1ddb35aa1377af77266b5b10313781ecdd0b715bb78fefaa28d4b1dc9a2b0", + "lines": 123, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_10.rs": { + "content_hash": "41a6a087a804c30a8cef520b38a978dbc8e73705209cfc23cb9cee7bb37d630c", + "lines": 660, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/gc.rs": { + "content_hash": "4ee9aa8f03a830997847ee019c423ef14e288ce9345a260316d254cf3c1ab7b1", + "lines": 121, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_remaining_6.rs": { + "content_hash": "102b940279a20a22ba9708ccccc70260cbb63e747a363dd12a2d0b62c9a704c2", + "lines": 492, + "functions": 40, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/state/tests_edge.rs": { + "content_hash": "c646c7abf8bf3248333d1de9795e41797d94b5d9398818088aa75b104691ff62", + "lines": 334, + "functions": 18, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_alerts.rs": { + "content_hash": "5c22a3e00b7ba28ba72eafefabc0e7450e12428873514882f634d0ec56ce8127", + "lines": 377, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase100.rs": { + "content_hash": "082e88670a307c41e4461619ea486580bab5efcf8b32a2645101677f689fb04c", + "lines": 204, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_maturity.rs": { + "content_hash": "efe035a279d4f04b37e591a91b8b4cf96ce24185fafeb5e967b2a0cff197074e", + "lines": 500, + "functions": 26, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_1.rs": { + "content_hash": "f5ddacf24be97d134f24e95a58e5f1300c3082766da76ad935e1c7e51fc58b77", + "lines": 701, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_dispatch_4.rs": { + "content_hash": "cd7a680a2c785cf0ad6c703f6073369b70160109b5abdbfec4e54cc094312e04", + "lines": 500, + "functions": 18, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/store_executors.rs": { + "content_hash": "11e5d8ca0a258e496daa4999869f58dc59874e45427671caa665e2113ee2854b", + "lines": 390, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_status_4_c.rs": { + "content_hash": "3cb668f82e29559aeee7bf75908f8190621ef88a0bcbf38ab26222f450152862", + "lines": 476, + "functions": 56, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch.rs": { + "content_hash": "57127062694b8d05fc282807ed5da44ecdcb454a250cb19504e13f39593f38d1", + "lines": 141, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/planner/tests_determine.rs": { + "content_hash": "518d489ffb309fa04912d0603043e3a493a8dd735d627d930d2dafa8e267a504", + "lines": 159, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase77.rs": { + "content_hash": "69145b26c382ffe4ef2045d6d4ef57b1170bfc14a8e7916f93ed8f5018edfa22", + "lines": 291, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_analytics.rs": { + "content_hash": "9e5ee6bf3a334977ca44c02b677f0e56b00a40d97af4c99ffe41ae12d7fab99f", + "lines": 486, + "functions": 28, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_20.rs": { + "content_hash": "ff9041e68cce47cc5cf528994fd0679b0d7ec933d98b9e618a6a95b35f79512f", + "lines": 591, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_lockfile.rs": { + "content_hash": "0365f4c715e27d76c55d45058286cec808c70729a2d965ced366f4d3549f19a1", + "lines": 200, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_plan_file.rs": { + "content_hash": "18479a77ddfbe1a29914e563331d745113f8800080a19879f28728c00978d59b", + "lines": 224, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_resource_detail.rs": { + "content_hash": "fd5b137527c1c122fe0a93aedd0df549c38cc84ecdf1d8193667b4bcf74012b1", + "lines": 466, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/plan_args.rs": { + "content_hash": "9a317401d68dba54b512ebdb9bda678819a39a4d05243b89030a37bca0f46683", + "lines": 85, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/state/tests_basic.rs": { + "content_hash": "26773ead1c2a4f5649bafbf9fb0ae4903aa075f74a18d6023262ad0dd7c1071f", + "lines": 354, + "functions": 24, + "max_complexity": 0, + "category": "RustSource" + }, + "src/mcp/tests_handlers.rs": { + "content_hash": "728f0143b27784c3eb680457f9664a4154a1af6a6662bc44e0abb06f699970b4", + "lines": 228, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_secret_scan.rs": { + "content_hash": "cc073b7a66b7a45c5db160d8c6f5cb20f0b9031ec777e36916d178bcde9eaf0f", + "lines": 263, + "functions": 27, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/mod.rs": { + "content_hash": "fbc8c861bf3be2b24c36ab0d06f30227f80c2bbdcad0e50b83f060969fc798b1", + "lines": 594, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/copia/mod.rs": { + "content_hash": "0e23b4a219ca632f3478d22ef3c04c705251af4838bc344c1e7870ef26b8b6db", + "lines": 239, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_path.rs": { + "content_hash": "28b2dc28f29734d1a759e39bf9b5d9d838b0d0bb23a31fc9c3ec7c9080c36b46", + "lines": 95, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase72.rs": { + "content_hash": "0139d14fca9a40bb4118f91d4fc4ccd9c6a14577494a34ec92f84185ad97add1", + "lines": 279, + "functions": 24, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_18.rs": { + "content_hash": "5cc232e1bbdfa286c5f61b9dcf404152c154bf83e9c19bc49543fbb7df7a75f4", + "lines": 585, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/tests_container_c.rs": { + "content_hash": "3e362db276afe5b00807edd1bb908ab0d43ede1ac1e2380756745d1dcee91e65", + "lines": 360, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_topology.rs": { + "content_hash": "7a8a8a0e3dec311df91ea693be873441b2d0db8b81dd09e33ab3d94521411888", + "lines": 484, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_gc.rs": { + "content_hash": "845a11f64740c6ad1c7a6b37bcb8768950f678b431f3ef7942dea10ea5718375", + "lines": 160, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_b.rs": { + "content_hash": "022ccd86512e794a15c77242c1071530dcb99d24620ee43ccba398d0a79802cb", + "lines": 369, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_fleet_ops.rs": { + "content_hash": "88ab77b4a769be588ba9fed9d48e35d5f7215e7a7476fcc04518e0de5021aaf8", + "lines": 531, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_helpers_time.rs": { + "content_hash": "038e90da543fb51cbba559b761d649039ffc84c0aeecab9f9bc0b763aa7efe67", + "lines": 36, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/sandbox_exec.rs": { + "content_hash": "81497fc856954a8f238808fef3d031046141e36ca6ff229d057d28c8d31addd8", + "lines": 322, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_graph_core.rs": { + "content_hash": "cdbc15670c287d28cf372460cf34fc03c5a8680b0953cc697279d7774bb53605", + "lines": 423, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_remaining_7.rs": { + "content_hash": "03d4a2bf12817121f557c0251456edbf232593631d66cda7c7ab1747ef609ecb", + "lines": 386, + "functions": 40, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_predictive.rs": { + "content_hash": "2f34cbe8058c7aaa467db4ced6efa82498cd3c825067615f25616ee8f8f4f381", + "lines": 489, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/types/state_types.rs": { + "content_hash": "77c870181340cd507179ef384395887fc0b16b2c9cd5c1ebbbfe920576174ba8", + "lines": 298, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_store_import.rs": { + "content_hash": "102b2669a47ca0cb3b214d03010604a50de4d039e80eb4e94b4ba2b92824c7a7", + "lines": 111, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/docker.rs": { + "content_hash": "304c938d197087b019e5ef65b74eca68511002b2e9b60a544344c659ca1dbdc6", + "lines": 88, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_scoring.rs": { + "content_hash": "ce25d95e9acb6c99e8078bdf1c933597d73c087d711d7f4b17b7146e6f8f28a9", + "lines": 655, + "functions": 29, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_args_4.rs": { + "content_hash": "2b82c0fb253b1f675d92841e3e329bb18b18c582fc8fdbd01eb3a72070fcf9e7", + "lines": 373, + "functions": 32, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_validate_core_2_b.rs": { + "content_hash": "01198124b7d2f0142388c8d10e47d29951afcd15008529632783249ba440aedd", + "lines": 667, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/pepita/tests.rs": { + "content_hash": "a91a0df7f18b27ee5d840ace7036d0e7b75870bcd26749fc7078087f5aaca17f", + "lines": 365, + "functions": 0, + "max_complexity": 0, + "category": "TestCode" + }, + "src/cli/commands/mod.rs": { + "content_hash": "4be4616b935c9a86bd39e95e6310c1c6a1ab7cc607493b9ecd10edf36d2d9325", + "lines": 340, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/codegen/dispatch.rs": { + "content_hash": "b0cef52bfba28729d54b320d8a05c52915033e03dbd896d1f0eaca06f6b41b5b", + "lines": 79, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase92.rs": { + "content_hash": "cc5bc0612ff315eaa14e960c3bbbf8c0dccd5663df72c514d0362f04fc6df330", + "lines": 310, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch_lock.rs": { + "content_hash": "70b1939da69b07e59f06de53245eff579b01a5a24d775168355cadaf71a1e11a", + "lines": 162, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/scoring.rs": { + "content_hash": "8171a5ffd79df712ac72d34b151c957979eecbebfad376bdc03a7e311b63859f", + "lines": 619, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_9_b.rs": { + "content_hash": "3a831a32ac2c14170211c76398f8ca81dda570c83f38df1e7ce7cafc5e3bae24", + "lines": 206, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_resources.rs": { + "content_hash": "86864584590b7104eb79dfd942dadbf2edf0539ab749e174a78d2419452cd311", + "lines": 376, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/store_args.rs": { + "content_hash": "db2c33c4a8afe4c87911ac213bc4ae980a8a3e552e79ab29d5bfbdd8a63845af", + "lines": 254, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/resource_types.rs": { + "content_hash": "68f2bbc06de073e745215d0a5f55ec9b778b8f4296d7acdd81c4279d1c75f059", + "lines": 320, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_validate3_d.rs": { + "content_hash": "cf497a238c35b728a1c06baf2cd495c83321eb609903fb1a2af4f6ea5f7e9955", + "lines": 410, + "functions": 51, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/recipe/validation_types.rs": { + "content_hash": "f68276853e785ea6476c231e7aa420e9b9b4d6af0232dc4cf841ac3bb6849b0c", + "lines": 93, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_health.rs": { + "content_hash": "967ada2de2f50e004169e6e3dfbc2b75807fd3adecdbe8ada6da3ca827a51172", + "lines": 403, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/store_import.rs": { + "content_hash": "34dd7a36e896a8fe1df30d590376cb8ca314cd4479d41d9e1b29bc6177b5b4f5", + "lines": 191, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/state/tests_helpers.rs": { + "content_hash": "7fc2190767b2cacf33961b927bdfb6be3970becdfd3f787c89fcd4a8e06b95e8", + "lines": 27, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_derivation_exec.rs": { + "content_hash": "4b5ee332750b330d1dec8780e7ca966c9d59b0ce17db88a4e0e946fccb94ec6c", + "lines": 281, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_store_archive.rs": { + "content_hash": "bcf1bb0fc5105667e853fbbdf8b7718b9d8dc3f5fcdbbaf525c3a9788bcf7526", + "lines": 143, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/check_test.rs": { + "content_hash": "7ad5988d22f832718573ae82a76be7f2b607c9ec3e1cb2cc6d18c0b7da596da6", + "lines": 254, + "functions": 0, + "max_complexity": 0, + "category": "TestCode" + }, + "src/core/planner/tests_lifecycle.rs": { + "content_hash": "011ee350e3430b19f9132cdf7b8a760c3e5ff254697a5d5c04abfa2d7ea2746f", + "lines": 224, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase81.rs": { + "content_hash": "ceeb1be347bdf90a1f6618d662a2ee711df8f8a7eb295889934b5374108f4858", + "lines": 289, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_resilience.rs": { + "content_hash": "b3bc5904cb1ebdcab05ac2b3d4466bc50fb7f3b7a4e77b83ad1e9058c1f888d8", + "lines": 699, + "functions": 27, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_fleet_b.rs": { + "content_hash": "079ef5be1709818426bf9b485cfa249617ca2acaf46c0dfbceca1dff39fdcc22", + "lines": 314, + "functions": 30, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_score.rs": { + "content_hash": "57a79d5775e1244b3f628ec77fda9295d2c9c2e92cf88ed9a030a9d79f9a1ca2", + "lines": 197, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_validate.rs": { + "content_hash": "156fe9a3861bd5c1033ce9408b177b24db65749cb8560640fd3b18b532baebb9", + "lines": 311, + "functions": 42, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/tests_template.rs": { + "content_hash": "6dc64dac971eaba5ad71d818a09ef20d43bd1a8784af2c8054cdd59506722691", + "lines": 423, + "functions": 30, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_core.rs": { + "content_hash": "32b268ebe8b7fdcf7fe1782dec7f04469c435abe99547311182d5e3f5afdfbe8", + "lines": 299, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/contract_coverage.rs": { + "content_hash": "5daf03a49c3624a4792586195749e18090ccf6d639732dd32efcfc1dd0b59b2e", + "lines": 122, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_ordering.rs": { + "content_hash": "2e61e35656794b31f7833e65bbe6d59235080a09d4f459242812096e7432f856", + "lines": 675, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_6.rs": { + "content_hash": "22c4fa186d85c509e018a731fd3ccdea1d2ae83cd9152786fbda97376fd55c68", + "lines": 401, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/snapshot.rs": { + "content_hash": "83af1a99813a12ae3c8668c3a8a38bdfd54e5efabdd337cce73502b3aaf41950", + "lines": 168, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch_misc.rs": { + "content_hash": "61c9068fcada0637c306cbbe559a6d286b298da3521038558f5de778e1e4a8fd", + "lines": 295, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_print_helpers.rs": { + "content_hash": "8ea861672f99ebb214bf16a2f5235442ae438721d22c06efd88d6b4cff1f8c07", + "lines": 183, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_status_4.rs": { + "content_hash": "a817b37be5a555e6c08ac2709b878f1ef3d8268461c49a6de30961c7c41fb390", + "lines": 345, + "functions": 43, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/resource_ops.rs": { + "content_hash": "276472b0a55ffda06dd7a201f583affd113ae6cd5f191f7f0f879650ac1b8134", + "lines": 403, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_13.rs": { + "content_hash": "1110878080dc7f004e5c4b035c9e0242aa4e5192e8023c8c0878e1a7a0b44167", + "lines": 584, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/drift/tests_full.rs": { + "content_hash": "9c60bf9ae7deb70447f2ee2c8caebe6f0f2edfafe2965f4e7c59add1fd83ad87", + "lines": 455, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "benches/core_bench.rs": { + "content_hash": "2641736063b138182417b8a848286f6f69435d00049397df49c750ecaf7b736b", + "lines": 610, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/contract_scaffold.rs": { + "content_hash": "50996afc43ee2745591ce7b4ff9a3fb25ea0912354f21bed5a0802871357da84", + "lines": 80, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/fleet_reporting.rs": { + "content_hash": "0f004041c55291e5130d6b8762217ae7bc3121a309e9f8912ffed6c5ca1b4853", + "lines": 368, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_args_3.rs": { + "content_hash": "6fb37cabbcb7b47f98717eb9c3906331482a7e7d0da85209b773dadeb4e6d401", + "lines": 392, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_graph_core_6.rs": { + "content_hash": "5519c2dd3380ae47ec49f8510e654123e544f501bfd99e62cd82b06a809c0aba", + "lines": 312, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/model.rs": { + "content_hash": "b07c57535ce7c047b85d0091cc592536c1bc4ee97e4912f8da242ae71f8514be", + "lines": 329, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/store_pin.rs": { + "content_hash": "225c1a08bd1f8c92618529ce4bc3214abd0c58b601a7a8c7408170d728e959b5", + "lines": 211, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "benches/store_bench.rs": { + "content_hash": "f97b1e48cff71ae15f2c3474dd36a52df9abe546882c8efc6b4d7b5b37833906", + "lines": 401, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/shell_purifier.rs": { + "content_hash": "f94c295e75a0ac051d88da44468ba898864eb937bfd8edc2409f61e7d0081fc0", + "lines": 125, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + } + }, + "coverage_required": [ + "src/core/tests_secrets.rs", + "src/core/recipe/tests_expansion.rs", + "src/core/recipe/tests_integration.rs", + "src/core/recipe/mod.rs", + "src/core/recipe/tests_validation.rs", + "src/core/recipe/validation.rs", + "src/core/recipe/types.rs", + "src/core/recipe/expansion.rs", + "src/core/recipe/validation_types.rs", + "src/core/mod.rs", + "src/core/scoring.rs", + "src/core/tests_scoring_b.rs", + "src/core/executor/strategies.rs", + "src/core/executor/tests_edge_record.rs", + "src/core/executor/tests_edge_apply.rs", + "src/core/executor/tests_advanced.rs", + "src/core/executor/mod.rs", + "src/core/executor/resource_ops.rs", + "src/core/executor/tests_converge2.rs", + "src/core/executor/tests_parallel.rs", + "src/core/executor/machine_wave.rs", + "src/core/executor/tests_filters.rs", + "src/core/executor/test_fixtures.rs", + "src/core/executor/tests_rolling.rs", + "src/core/executor/tests_waves.rs", + "src/core/executor/helpers.rs", + "src/core/executor/tests_localhost.rs", + "src/core/executor/tests_localhost2.rs", + "src/core/executor/tests_hooks.rs", + "src/core/executor/tests_drift.rs", + "src/core/executor/tests_converge.rs", + "src/core/executor/tests_core.rs", + "src/core/executor/tests_edge_details.rs", + "src/core/executor/tests_concurrent.rs", + "src/core/executor/machine.rs", + "src/core/parser/tests_misc_2b.rs", + "src/core/parser/tests_expansion.rs", + "src/core/parser/tests_arch.rs", + "src/core/parser/mod.rs", + "src/core/parser/tests_misc_2.rs", + "src/core/parser/tests_includes.rs", + "src/core/parser/resource_types.rs", + "src/core/parser/tests_validation.rs", + "src/core/parser/tests_misc.rs", + "src/core/parser/policy.rs", + "src/core/parser/includes.rs", + "src/core/parser/validation.rs", + "src/core/parser/tests_misc_3.rs", + "src/core/parser/expansion.rs", + "src/core/parser/tests_core.rs", + "src/core/parser/tests_triggers.rs", + "src/core/parser/recipes.rs", + "src/core/parser/tests_misc_4.rs", + "src/core/parser/tests_policy.rs", + "src/core/migrate.rs", + "src/core/planner/tests_when.rs", + "src/core/planner/tests_advanced.rs", + "src/core/planner/mod.rs", + "src/core/planner/tests_helpers.rs", + "src/core/planner/tests_hash.rs", + "src/core/planner/tests_lifecycle.rs", + "src/core/planner/tests_determine.rs", + "src/core/planner/tests_describe.rs", + "src/core/planner/tests_plan.rs", + "src/core/planner/tests_filter.rs", + "src/core/tests_purifier.rs", + "src/core/purifier.rs", + "src/core/resolver/resource.rs", + "src/core/resolver/mod.rs", + "src/core/resolver/tests_functions.rs", + "src/core/resolver/tests_helpers.rs", + "src/core/resolver/tests_dag.rs", + "src/core/resolver/tests_waves.rs", + "src/core/resolver/dag.rs", + "src/core/resolver/template.rs", + "src/core/resolver/data.rs", + "src/core/resolver/tests_data.rs", + "src/core/resolver/tests_template.rs", + "src/core/resolver/functions.rs", + "src/core/resolver/tests_proptest.rs", + "src/core/resolver/tests_resource.rs", + "src/core/state/tests_edge.rs", + "src/core/state/mod.rs", + "src/core/state/tests_helpers.rs", + "src/core/state/tests_process_lock.rs", + "src/core/state/tests_encrypt.rs", + "src/core/state/tests_basic.rs", + "src/core/tests_scoring.rs", + "src/core/secrets.rs", + "src/core/codegen/tests_completeness.rs", + "src/core/codegen/mod.rs", + "src/core/codegen/test_fixtures.rs", + "src/core/codegen/dispatch.rs", + "src/core/codegen/tests_coverage.rs", + "src/core/codegen/tests_dispatch.rs", + "src/core/conditions.rs", + "src/core/store/tests_sync_exec.rs", + "src/core/store/tests_lockfile.rs", + "src/core/store/convert.rs", + "src/core/store/conda.rs", + "src/core/store/gc.rs", + "src/core/store/tests_convert_exec.rs", + "src/core/store/tests_path.rs", + "src/core/store/store_diff.rs", + "src/core/store/sandbox_exec.rs", + "src/core/store/tests_pin_resolve.rs", + "src/core/store/tests_chunker.rs", + "src/core/store/mod.rs", + "src/core/store/tests_cache.rs", + "src/core/store/substitution.rs", + "src/core/store/far.rs", + "src/core/store/profile.rs", + "src/core/store/path.rs", + "src/core/store/tests_hf_config.rs", + "src/core/store/tests_sandbox.rs", + "src/core/store/secret_scan.rs", + "src/core/store/repro_score.rs", + "src/core/store/contract_scaffold.rs", + "src/core/store/pin_resolve.rs", + "src/core/store/tests_purity.rs", + "src/core/store/tests_substitution.rs", + "src/core/store/validate.rs", + "src/core/store/tests_profile.rs", + "src/core/store/tests_store_diff.rs", + "src/core/store/cache.rs", + "src/core/store/tests_convert.rs", + "src/core/store/sandbox.rs", + "src/core/store/contract_coverage.rs", + "src/core/store/tests_closure.rs", + "src/core/store/lockfile.rs", + "src/core/store/gc_exec.rs", + "src/core/store/meta.rs", + "src/core/store/tests_gc_exec.rs", + "src/core/store/chunker.rs", + "src/core/store/kernel_far.rs", + "src/core/store/tests_conda.rs", + "src/core/store/convert_exec.rs", + "src/core/store/pin_tripwire.rs", + "src/core/store/tests_derivation_exec.rs", + "src/core/store/tests_far.rs", + "src/core/store/tests_secret_scan.rs", + "src/core/store/provider_exec.rs", + "src/core/store/sync_exec.rs", + "src/core/store/purity.rs", + "src/core/store/tests_repro_score.rs", + "src/core/store/reference.rs", + "src/core/store/tests_provider.rs", + "src/core/store/tests_validate.rs", + "src/core/store/derivation_exec.rs", + "src/core/store/tests_contract_coverage.rs", + "src/core/store/tests_contract_scaffold.rs", + "src/core/store/hf_config.rs", + "src/core/store/tests_cache_exec.rs", + "src/core/store/tests_sandbox_run.rs", + "src/core/store/tests_pin_tripwire.rs", + "src/core/store/tests_derivation.rs", + "src/core/store/derivation.rs", + "src/core/store/sandbox_run.rs", + "src/core/store/tests_kernel_far.rs", + "src/core/store/tests_meta.rs", + "src/core/store/tests_reference.rs", + "src/core/store/cache_exec.rs", + "src/core/store/tests_sandbox_exec.rs", + "src/core/store/tests_gc.rs", + "src/core/store/tests_provider_exec.rs", + "src/core/store/tests_bash_provability.rs", + "src/core/store/closure.rs", + "src/core/store/provider.rs", + "src/core/tests_purifier_b.rs", + "src/core/types/resource.rs", + "src/core/types/mod.rs", + "src/core/types/tests_state.rs", + "src/core/types/policy.rs", + "src/core/types/config.rs", + "src/core/types/tests_config.rs", + "src/core/types/tests_resource.rs", + "src/core/types/state_types.rs", + "src/mcp/tests_handlers.rs", + "src/mcp/registry.rs", + "src/mcp/mod.rs", + "src/mcp/handlers.rs", + "src/mcp/tests_handlers_more.rs", + "src/mcp/types.rs", + "src/mcp/tests_registry.rs", + "src/cli/tests_misc_5.rs", + "src/cli/tests_phase71.rs", + "src/cli/tests_snapshot.rs", + "src/cli/status_drift_intel.rs", + "src/cli/tests_graph_core_2.rs", + "src/cli/graph_scoring.rs", + "src/cli/validate_maturity.rs", + "src/cli/validate_safety.rs", + "src/cli/status_resource_intel.rs", + "src/cli/status_operational.rs", + "src/cli/tests_misc_1_b.rs", + "src/cli/validate_resources.rs", + "src/cli/snapshot.rs", + "src/cli/tests_misc_9_b.rs", + "src/cli/graph_governance.rs", + "src/cli/drift.rs", + "src/cli/tests_diff_cmd.rs", + "src/cli/tests_phase79.rs", + "src/cli/tests_apply_10.rs", + "src/cli/tests_status_core_6.rs", + "src/cli/status_security.rs", + "src/cli/dispatch_notify.rs", + "src/cli/commands/mod.rs", + "src/cli/commands/misc_ops_args.rs", + "src/cli/commands/status_args.rs", + "src/cli/commands/validate_args.rs", + "src/cli/commands/misc_args.rs", + "src/cli/commands/plan_args.rs", + "src/cli/commands/lock_core_args.rs", + "src/cli/commands/apply_args.rs", + "src/cli/commands/state_args.rs", + "src/cli/commands/store_args.rs", + "src/cli/commands/lock_ops_args.rs", + "src/cli/commands/subcmd_args.rs", + "src/cli/commands/graph_args.rs", + "src/cli/tests_graph_core.rs", + "src/cli/tests_status_core_3_b.rs", + "src/cli/tests_misc_1.rs", + "src/cli/tests_infra.rs", + "src/cli/status_fleet_insight.rs", + "src/cli/tests_validate_core_2.rs", + "src/cli/tests_cov_validate3_d.rs", + "src/cli/tests_phase86.rs", + "src/cli/validate_advanced.rs", + "src/cli/tests_cov_status_1.rs", + "src/cli/dispatch_validate.rs", + "src/cli/tests_status_core_2.rs", + "src/cli/observe.rs", + "src/cli/score.rs", + "src/cli/tests_plan_file.rs", + "src/cli/lock_core.rs", + "src/cli/tests_graph_core_4.rs", + "src/cli/graph_impact.rs", + "src/cli/graph_transport.rs", + "src/cli/tests_validate_core_b.rs", + "src/cli/tests_status_core_5_b.rs", + "src/cli/validate_analytics.rs", + "src/cli/status_fleet.rs", + "src/cli/tests_cov_status_6.rs", + "src/cli/status_compliance.rs", + "src/cli/tests_status_core_8_b.rs", + "src/cli/tests_show_2.rs", + "src/cli/tests_cov_args_4.rs", + "src/cli/print_helpers.rs", + "src/cli/status_intelligence.rs", + "src/cli/dispatch_graph.rs", + "src/cli/tests_apply_9.rs", + "src/cli/tests_score.rs", + "src/cli/mod.rs", + "src/cli/tests_misc_2.rs", + "src/cli/tests_phase88.rs", + "src/cli/validate_quality.rs", + "src/cli/dispatch_misc.rs", + "src/cli/graph_extended.rs", + "src/cli/tests_cov_fleet_b.rs", + "src/cli/tests_show_1.rs", + "src/cli/tests_helpers_state.rs", + "src/cli/tests_phase77.rs", + "src/cli/tests_apply_11.rs", + "src/cli/status_alerts.rs", + "src/cli/validate_hygiene.rs", + "src/cli/status_diagnostics.rs", + "src/cli/tests_helpers.rs", + "src/cli/graph_lifecycle.rs", + "src/cli/tests_misc_6.rs", + "src/cli/tests_apply_1.rs", + "src/cli/store_pin.rs", + "src/cli/tests_misc_10.rs", + "src/cli/tests_dispatch_store.rs", + "src/cli/tests_check.rs", + "src/cli/tests_store_archive.rs", + "src/cli/store_import.rs", + "src/cli/tests_cov_notify.rs", + "src/cli/tests_status_core_5.rs", + "src/cli/tests_validate_core.rs", + "src/cli/graph_intelligence_ext.rs", + "src/cli/tests_workspace.rs", + "src/cli/validate_compliance.rs", + "src/cli/tests_apply_20.rs", + "src/cli/tests_cov_remaining_3.rs", + "src/cli/helpers_state.rs", + "src/cli/tests_cov_notify_2.rs", + "src/cli/graph_quality.rs", + "src/cli/store_archive.rs", + "src/cli/tests_cov_fleet.rs", + "src/cli/tests_lock_core.rs", + "src/cli/tests_graph_core_3.rs", + "src/cli/tests_cov_graph3_c.rs", + "src/cli/status_convergence.rs", + "src/cli/tests_cov_status_4.rs", + "src/cli/status_resources.rs", + "src/cli/tests_show.rs", + "src/cli/status_operational_ext.rs", + "src/cli/tests_cov_dispatch_3.rs", + "src/cli/history.rs", + "src/cli/graph_analysis.rs", + "src/cli/tests_cov_status_5.rs", + "src/cli/status_drift_intel2.rs", + "src/cli/test_fixtures.rs", + "src/cli/tests_cov_lock.rs", + "src/cli/tests_show_3.rs", + "src/cli/graph_weight.rs", + "src/cli/validate_paths.rs", + "src/cli/tests_cov_validate3_c.rs", + "src/cli/tests_cov_args.rs", + "src/cli/tests_cov_validate2_b.rs", + "src/cli/tests_graph_core_5.rs", + "src/cli/tests_apply_21.rs", + "src/cli/tests_cov_remaining_2.rs", + "src/cli/graph_cross.rs", + "src/cli/status_core.rs", + "src/cli/helpers.rs", + "src/cli/dispatch_status.rs", + "src/cli/tests_status_core_7.rs", + "src/cli/status_maturity.rs", + "src/cli/validate_compliance_ext.rs", + "src/cli/tests_phase94.rs", + "src/cli/tests_phase100.rs", + "src/cli/status_transport.rs", + "src/cli/store_cache.rs", + "src/cli/tests_phase99.rs", + "src/cli/tests_phase81.rs", + "src/cli/tests_cov_notify_3.rs", + "src/cli/tests_cov_args_2.rs", + "src/cli/tests_apply_18.rs", + "src/cli/tests_phase68.rs", + "src/cli/tests_phase106.rs", + "src/cli/tests_phase85.rs", + "src/cli/tests_status_queries.rs", + "src/cli/tests_status_core_1.rs", + "src/cli/tests_phase87.rs", + "src/cli/tests_phase65.rs", + "src/cli/tests_validate_core_3.rs", + "src/cli/status_resource_detail.rs", + "src/cli/tests_phase105.rs", + "src/cli/tests_misc.rs", + "src/cli/doctor.rs", + "src/cli/tests_apply_19.rs", + "src/cli/tests_cov_validate3_b.rs", + "src/cli/tests_phase90.rs", + "src/cli/tests_import_cmd.rs", + "src/cli/tests_phase83.rs", + "src/cli/tests_cov_status_2.rs", + "src/cli/tests_phase73.rs", + "src/cli/lock_lifecycle.rs", + "src/cli/status_failures.rs", + "src/cli/tests_phase59.rs", + "src/cli/tests_phase62.rs", + "src/cli/tests_phase96.rs", + "src/cli/tests_apply_3.rs", + "src/cli/tests_status_core_b.rs", + "src/cli/tests_phase98.rs", + "src/cli/tests_fleet_ops_1.rs", + "src/cli/tests_phase76.rs", + "src/cli/workspace.rs", + "src/cli/tests_misc_7_b.rs", + "src/cli/plan.rs", + "src/cli/tests_cov_dispatch_4.rs", + "src/cli/tests_misc_8.rs", + "src/cli/check.rs", + "src/cli/tests_phase82.rs", + "src/cli/tests_apply_7.rs", + "src/cli/tests_apply_5.rs", + "src/cli/tests_cov_status_4_c.rs", + "src/cli/status_recovery.rs", + "src/cli/graph_topology.rs", + "src/cli/status_insights.rs", + "src/cli/tests_phase72.rs", + "src/cli/tests_status_core_4_b.rs", + "src/cli/tests_status_core_4.rs", + "src/cli/fleet_ops.rs", + "src/cli/infra.rs", + "src/cli/validate_security.rs", + "src/cli/tests_store_import.rs", + "src/cli/apply_output.rs", + "src/cli/validate_structural.rs", + "src/cli/tests_phase91.rs", + "src/cli/tests_apply.rs", + "src/cli/tests_check_2.rs", + "src/cli/tests_status_core_10.rs", + "src/cli/tests_cov_transport_3.rs", + "src/cli/init.rs", + "src/cli/tests_phase95.rs", + "src/cli/tests_phase63.rs", + "src/cli/tests_phase66.rs", + "src/cli/tests_apply_15.rs", + "src/cli/tests_fleet_ops.rs", + "src/cli/apply_helpers.rs", + "src/cli/tests_cov_remaining_6.rs", + "src/cli/tests_cov_remaining.rs", + "src/cli/tests_phase84.rs", + "src/cli/tests_phase97.rs", + "src/cli/tests_cov_transport_2.rs", + "src/cli/validate_core.rs", + "src/cli/tests_phase67.rs", + "src/cli/graph_topology_ext.rs", + "src/cli/graph_analytics_ext.rs", + "src/cli/validate_ordering.rs", + "src/cli/graph_intelligence_ext2.rs", + "src/cli/tests_destroy.rs", + "src/cli/tests_fleet_reporting.rs", + "src/cli/tests_cov_dispatch_2.rs", + "src/cli/dispatch.rs", + "src/cli/dispatch_store.rs", + "src/cli/tests_phase89.rs", + "src/cli/tests_status_core_3.rs", + "src/cli/tests_validate_core_1.rs", + "src/cli/tests_helpers_time.rs", + "src/cli/tests_status_core_9.rs", + "src/cli/tests_store_convert.rs", + "src/cli/tests_cov_apply.rs", + "src/cli/graph_resilience_ext.rs", + "src/cli/validate_ordering_ext.rs", + "src/cli/tests_cov_status_3.rs", + "src/cli/tests_status_core_6_b.rs", + "src/cli/graph_intelligence.rs", + "src/cli/dispatch_notify_custom.rs", + "src/cli/tests_drift.rs", + "src/cli/tests_apply_23.rs", + "src/cli/tests_cov_args_3.rs", + "src/cli/tests_apply_16.rs", + "src/cli/tests_misc_3.rs", + "src/cli/validate_ownership.rs", + "src/cli/secrets.rs", + "src/cli/tests_cov_args_extra_b.rs", + "src/cli/status_counts.rs", + "src/cli/status_observability.rs", + "src/cli/helpers_time.rs", + "src/cli/tests_cov_graph2.rs", + "src/cli/lock_security.rs", + "src/cli/tests_apply_8.rs", + "src/cli/tests_cov_args_extra.rs", + "src/cli/tests_apply_6.rs", + "src/cli/tests_store_pin.rs", + "src/cli/tests_apply_2.rs", + "src/cli/tests_cov_remaining_7.rs", + "src/cli/graph_export.rs", + "src/cli/tests_cov_args_2_b.rs", + "src/cli/tests_phase101.rs", + "src/cli/graph_resilience.rs", + "src/cli/lock_merge.rs", + "src/cli/dispatch_status_ext.rs", + "src/cli/tests_apply_helpers.rs", + "src/cli/tests_check_1.rs", + "src/cli/validate_policy.rs", + "src/cli/tests_validate_core_2_b.rs", + "src/cli/tests_apply_12.rs", + "src/cli/tests_cov_remaining_8.rs", + "src/cli/status_intelligence_ext2.rs", + "src/cli/status_intelligence_ext.rs", + "src/cli/tests_doctor.rs", + "src/cli/tests_history.rs", + "src/cli/tests_validate_transport.rs", + "src/cli/status_quality.rs", + "src/cli/tests_status_core.rs", + "src/cli/validate_governance.rs", + "src/cli/graph_analytics.rs", + "src/cli/tests_cov_graph3.rs", + "src/cli/tests_destroy_1.rs", + "src/cli/tests_plan.rs", + "src/cli/tests_apply_17.rs", + "src/cli/status_cost.rs", + "src/cli/tests_observe.rs", + "src/cli/tests_cov_remaining_9.rs", + "src/cli/tests_print_helpers.rs", + "src/cli/status_resilience.rs", + "src/cli/dispatch_lock.rs", + "src/cli/graph_paths.rs", + "src/cli/tests_cov_misc2_b.rs", + "src/cli/status_fleet_detail.rs", + "src/cli/graph_visualization.rs", + "src/cli/status_drift.rs", + "src/cli/tests_cov_dispatch.rs", + "src/cli/tests_phase107.rs", + "src/cli/tests_phase74.rs", + "src/cli/diff_cmd.rs", + "src/cli/tests_cov_status_4_b.rs", + "src/cli/tests_cov_remaining_4.rs", + "src/cli/validate_governance_ext.rs", + "src/cli/validate_security_ext.rs", + "src/cli/tests_status_core_7_b.rs", + "src/cli/tests_apply_13.rs", + "src/cli/tests_phase104.rs", + "src/cli/tests_cov_misc2.rs", + "src/cli/tests_apply_6_b.rs", + "src/cli/status_queries.rs", + "src/cli/tests_phase60.rs", + "src/cli/destroy.rs", + "src/cli/status_trends.rs", + "src/cli/validate_transport.rs", + "src/cli/store_ops.rs", + "src/cli/tests_validate_core_1_b.rs", + "src/cli/tests_misc_5_b.rs", + "src/cli/validate_audit.rs", + "src/cli/tests_graph_core_b.rs", + "src/cli/tests_cov_transport.rs", + "src/cli/validate_topology.rs", + "src/cli/lint.rs", + "src/cli/fleet_reporting.rs", + "src/cli/import_cmd.rs", + "src/cli/tests_phase61.rs", + "src/cli/tests_cov_validate2.rs", + "src/cli/tests_cov_validate.rs", + "src/cli/status_analytics.rs", + "src/cli/lock_audit.rs", + "src/cli/tests_cov_status_7.rs", + "src/cli/validate_scoring.rs", + "src/cli/graph_advanced.rs", + "src/cli/status_operational_ext2.rs", + "src/cli/tests_misc_9.rs", + "src/cli/tests_status_core_2_b.rs", + "src/cli/tests_phase70.rs", + "src/cli/tests_cov_graph.rs", + "src/cli/graph_compliance.rs", + "src/cli/tests_graph_core_1.rs", + "src/cli/tests_phase64.rs", + "src/cli/tests_validate_analytics.rs", + "src/cli/status_health.rs", + "src/cli/graph_core.rs", + "src/cli/show.rs", + "src/cli/tests_init.rs", + "src/cli/status_predictive.rs", + "src/cli/tests_phase69.rs", + "src/cli/tests_phase103.rs", + "src/cli/tests_phase92.rs", + "src/cli/tests_cov_apply_b.rs", + "src/cli/tests_cov_remaining_5.rs", + "src/cli/validate_config_quality.rs", + "src/cli/validate_store_purity.rs", + "src/cli/tests_cov_notify_4.rs", + "src/cli/tests_apply_14.rs", + "src/cli/tests_phase78.rs", + "src/cli/tests_misc_4.rs", + "src/cli/dispatch_apply.rs", + "src/cli/tests_phase80.rs", + "src/cli/tests_store_ops.rs", + "src/cli/tests_phase102.rs", + "src/cli/tests_lock_core_1.rs", + "src/cli/graph_health.rs", + "src/cli/tests_plan_1.rs", + "src/cli/tests_graph_core_6.rs", + "src/cli/lock_ops.rs", + "src/cli/store_convert.rs", + "src/cli/tests_cov_validate3.rs", + "src/cli/tests_misc_7.rs", + "src/cli/tests_store_cache.rs", + "src/cli/tests_validate_store_purity.rs", + "src/cli/tests_apply_4.rs", + "src/cli/tests_lint.rs", + "src/cli/tests_status_core_1_b.rs", + "src/cli/lock_repair.rs", + "src/cli/tests_status_core_8.rs", + "src/cli/tests_cov_validate2_c.rs", + "src/cli/validate_resilience.rs", + "src/cli/tests_cov_graph3_b.rs", + "src/cli/tests_phase75.rs", + "src/cli/apply.rs", + "src/cli/apply_variants.rs", + "src/cli/tests_apply_22.rs", + "src/main.rs", + "src/copia/mod.rs", + "src/transport/container.rs", + "src/transport/tests_dispatch_b.rs", + "src/transport/tests_ssh.rs", + "src/transport/tests_container_b.rs", + "src/transport/tests_container.rs", + "src/transport/mod.rs", + "src/transport/tests_container_c.rs", + "src/transport/pepita.rs", + "src/transport/ssh.rs", + "src/transport/tests_dispatch.rs", + "src/transport/tests_container_d.rs", + "src/transport/local.rs", + "src/resources/gpu.rs", + "src/resources/tests_user.rs", + "src/resources/mod.rs", + "src/resources/task.rs", + "src/resources/cron.rs", + "src/resources/pepita/mod.rs", + "src/resources/tests_file.rs", + "src/resources/tests_mount_b.rs", + "src/resources/mount.rs", + "src/resources/tests_docker.rs", + "src/resources/docker.rs", + "src/resources/user.rs", + "src/resources/tests_mount.rs", + "src/resources/model.rs", + "src/resources/network.rs", + "src/resources/tests_service.rs", + "src/resources/tests_docker_b.rs", + "src/resources/tests_file_b.rs", + "src/resources/file.rs", + "src/resources/tests_package.rs", + "src/resources/tests_package_b.rs", + "src/resources/package.rs", + "src/resources/tests_gpu.rs", + "src/resources/service.rs", + "src/lib.rs", + "src/tripwire/tests_anomaly.rs", + "src/tripwire/mod.rs", + "src/tripwire/anomaly.rs", + "src/tripwire/eventlog.rs", + "src/tripwire/drift/tests_fj036.rs", + "src/tripwire/drift/mod.rs", + "src/tripwire/drift/tests_lifecycle.rs", + "src/tripwire/drift/tests_edge_fj132_b.rs", + "src/tripwire/drift/tests_basic_b.rs", + "src/tripwire/drift/tests_edge_fj131.rs", + "src/tripwire/drift/tests_transport.rs", + "src/tripwire/drift/tests_edge_fj132.rs", + "src/tripwire/drift/tests_full.rs", + "src/tripwire/drift/tests_basic.rs", + "src/tripwire/tests_hasher_b.rs", + "src/tripwire/tests_eventlog_b.rs", + "src/tripwire/hasher.rs", + "src/tripwire/tests_eventlog.rs", + "src/tripwire/tracer.rs", + "src/tripwire/tests_hasher.rs", + "benches/core_bench.rs", + "benches/store_bench.rs", + "examples/mcp_server.rs", + "examples/multi_machine.rs", + "examples/arch_filtering.rs", + "examples/store_provider_import.rs", + "examples/parse_and_plan.rs", + "examples/store_cache_protocol.rs", + "examples/store_executors.rs", + "examples/state_management.rs", + "examples/template_resolution.rs", + "examples/gpu_container_transport.rs", + "examples/blake3_hashing.rs", + "examples/full_stack_deploy.rs", + "examples/store_pin_resolve.rs", + "examples/validation.rs", + "examples/codegen_scripts.rs", + "examples/resource_scripts.rs", + "examples/trace_provenance.rs", + "examples/anomaly_detection.rs", + "examples/score_cookbook.rs", + "examples/conda_to_far.rs", + "examples/store_reproducibility.rs", + "examples/recipe_expansion.rs", + "examples/container_transport.rs", + "examples/shell_purifier.rs", + "examples/event_logging.rs", + "examples/store_gc_lifecycle.rs", + "examples/user_management.rs", + "examples/drift_detection.rs" + ], + "manifest_hash": "5901ac9e7d751f46f71911663c1c9a6fc0e5e1bf40ee4ff50e2c695692181b01" + }, + "thresholds": { + "min_coverage_pct": 95.0, + "min_per_file_coverage_pct": 95.0, + "max_tdg_regression": 0.0, + "max_function_complexity": 20, + "max_file_lines": 500, + "min_spec_score": 95, + "require_github_sync": true, + "require_spec_update": true, + "require_roadmap_update": true, + "block_on_new_satd": true, + "block_on_new_dead_code": true, + "require_lint_pass": true, + "max_fix_chain": 3, + "block_on_untested_variants": true, + "block_on_cross_crate_failure": false, + "block_on_regression": false, + "require_proof_verification": false, + "max_sorry_count": 0, + "min_theorem_coverage": 0.0, + "block_on_file_size": true + }, + "claims": [ + { + "hypothesis": "All baseline files still exist", + "falsification_method": "ManifestIntegrity", + "evidence_required": { + "FileList": [] + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "The falsifier is active and detecting (Meta-Check)", + "falsification_method": "MetaFalsification", + "evidence_required": { + "CounterExample": { + "details": "" + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "No coverage exclusion gaming", + "falsification_method": "CoverageGaming", + "evidence_required": { + "FileList": [] + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "All changed lines are covered", + "falsification_method": "DifferentialCoverage", + "evidence_required": { + "NumericComparison": { + "actual": 0.0, + "threshold": 100.0 + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "Total coverage >= 95%", + "falsification_method": "AbsoluteCoverage", + "evidence_required": { + "NumericComparison": { + "actual": 0.0, + "threshold": 95.0 + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "TDG score >= baseline", + "falsification_method": "TdgRegression", + "evidence_required": { + "NumericComparison": { + "actual": 0.0, + "threshold": 0.0 + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "No function exceeds complexity 20", + "falsification_method": "ComplexityRegression", + "evidence_required": { + "NumericComparison": { + "actual": 0.0, + "threshold": 20.0 + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "No vulnerable dependencies added", + "falsification_method": "SupplyChainIntegrity", + "evidence_required": { + "CounterExample": { + "details": "" + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "No file exceeds 500 lines", + "falsification_method": "FileSizeRegression", + "evidence_required": { + "NumericComparison": { + "actual": 0.0, + "threshold": 500.0 + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "Spec & Roadmap Quality", + "falsification_method": "SpecQuality", + "evidence_required": { + "NumericComparison": { + "actual": 0.0, + "threshold": 95.0 + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "All changes pushed", + "falsification_method": "GitHubSync", + "evidence_required": { + "GitState": { + "unpushed_commits": 0, + "dirty_files": 0 + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "All examples compile and run", + "falsification_method": "ExamplesCompile", + "evidence_required": { + "CounterExample": { + "details": "" + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "pmat-book validation passes", + "falsification_method": "BookValidation", + "evidence_required": { + "CounterExample": { + "details": "" + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "No new SATD markers (TODO/FIXME/HACK)", + "falsification_method": "SatdDetection", + "evidence_required": { + "FileList": [] + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "No new dead code introduced", + "falsification_method": "DeadCodeDetection", + "evidence_required": { + "FileList": [] + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "All files have >= 95% coverage", + "falsification_method": "PerFileCoverage", + "evidence_required": { + "FileList": [] + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "make lint passes", + "falsification_method": "LintPass", + "evidence_required": { + "BooleanCheck": false + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "All match arm variants have test coverage", + "falsification_method": "VariantCoverage", + "evidence_required": { + "FileList": [] + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "No fix-after-fix chains exceed limit", + "falsification_method": "FixChainLimit", + "evidence_required": { + "NumericComparison": { + "actual": 0.0, + "threshold": 3.0 + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "Cross-crate integration tests pass", + "falsification_method": "CrossCrateParity", + "evidence_required": { + "BooleanCheck": false + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "No performance regressions detected", + "falsification_method": "RegressionGate", + "evidence_required": { + "NumericComparison": { + "actual": 0.0, + "threshold": 0.0 + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "No incomplete proofs (sorry) introduced", + "falsification_method": "FormalProofVerification", + "evidence_required": { + "NumericComparison": { + "actual": 0.0, + "threshold": 0.0 + } + }, + "result": null, + "override_info": null + } + ], + "profile": "Pmat", + "require": [ + { + "id": "require.compiles", + "kind": "Require", + "description": "Project builds successfully", + "falsification_method": "ManifestIntegrity", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "require.tests_exist", + "kind": "Require", + "description": "At least one test exists", + "falsification_method": "MetaFalsification", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "require.manifest_integrity", + "kind": "Require", + "description": "FileManifest anti-gaming check", + "falsification_method": "ManifestIntegrity", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "require.meta_falsification", + "kind": "Require", + "description": "Falsifier self-check active", + "falsification_method": "MetaFalsification", + "threshold": null, + "blocking": true, + "source": "Default" + } + ], + "ensure": [ + { + "id": "ensure.tests_pass", + "kind": "Ensure", + "description": "All tests pass", + "falsification_method": "MetaFalsification", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.git_sync", + "kind": "Ensure", + "description": "All changes pushed to remote", + "falsification_method": "GitHubSync", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.no_regression", + "kind": "Ensure", + "description": "No previously-passing test now fails", + "falsification_method": "MetaFalsification", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.coverage", + "kind": "Ensure", + "description": "Coverage >= 95%", + "falsification_method": "AbsoluteCoverage", + "threshold": { + "Numeric": { + "metric": "coverage_pct", + "op": "Gte", + "value": 95.0 + } + }, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.differential_coverage", + "kind": "Ensure", + "description": "Changed lines must be covered", + "falsification_method": "DifferentialCoverage", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.supply_chain", + "kind": "Ensure", + "description": "No vulnerable dependencies", + "falsification_method": "SupplyChainIntegrity", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.examples_compile", + "kind": "Ensure", + "description": "All examples compile and run", + "falsification_method": "ExamplesCompile", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.tdg_regression", + "kind": "Ensure", + "description": "TDG score >= baseline", + "falsification_method": "TdgRegression", + "threshold": { + "Delta": { + "metric": "tdg_score", + "op": "Gte", + "value": 0.0 + } + }, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.coverage_gaming", + "kind": "Ensure", + "description": "No coverage exclusion gaming", + "falsification_method": "CoverageGaming", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.spec_quality", + "kind": "Ensure", + "description": "Spec score meets threshold", + "falsification_method": "SpecQuality", + "threshold": { + "Numeric": { + "metric": "spec_score", + "op": "Gte", + "value": 95.0 + } + }, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.book_validation", + "kind": "Ensure", + "description": "pmat-book validation passes", + "falsification_method": "BookValidation", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.per_file_coverage", + "kind": "Ensure", + "description": "All files >= 95% coverage", + "falsification_method": "PerFileCoverage", + "threshold": { + "Numeric": { + "metric": "per_file_coverage_pct", + "op": "Gte", + "value": 95.0 + } + }, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.variant_coverage", + "kind": "Ensure", + "description": "All match arm variants tested", + "falsification_method": "VariantCoverage", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.cross_crate_parity", + "kind": "Ensure", + "description": "Cross-crate integration tests pass", + "falsification_method": "CrossCrateParity", + "threshold": null, + "blocking": false, + "source": "Default" + } + ], + "invariant": [ + { + "id": "invariant.compiles", + "kind": "Invariant", + "description": "Project compiles at every checkpoint", + "falsification_method": "ManifestIntegrity", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "invariant.file_size", + "kind": "Invariant", + "description": "No file exceeds 500 lines", + "falsification_method": "FileSizeRegression", + "threshold": { + "Numeric": { + "metric": "max_file_lines", + "op": "Lte", + "value": 500.0 + } + }, + "blocking": true, + "source": "Default" + }, + { + "id": "invariant.lint", + "kind": "Invariant", + "description": "cargo clippy passes", + "falsification_method": "LintPass", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "invariant.complexity", + "kind": "Invariant", + "description": "No function exceeds complexity 20", + "falsification_method": "ComplexityRegression", + "threshold": { + "Numeric": { + "metric": "max_complexity", + "op": "Lte", + "value": 20.0 + } + }, + "blocking": true, + "source": "Default" + }, + { + "id": "invariant.satd", + "kind": "Invariant", + "description": "No new SATD markers", + "falsification_method": "SatdDetection", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "invariant.dead_code", + "kind": "Invariant", + "description": "No new dead code introduced", + "falsification_method": "DeadCodeDetection", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "invariant.fix_chain", + "kind": "Invariant", + "description": "Fix-after-fix chains within limit", + "falsification_method": "FixChainLimit", + "threshold": { + "Numeric": { + "metric": "fix_chain_count", + "op": "Lte", + "value": 3.0 + } + }, + "blocking": true, + "source": "Default" + } + ], + "excluded_claims": [], + "iteration": 1, + "inherited_postconditions": [], + "contract_quality": { + "active_claims": 25, + "applicable_claims": 25, + "score": 1.0, + "rating": "Full" + } +} \ No newline at end of file diff --git a/.pmat-work/PMAT-028/falsification/receipt-2026-03-02T21-46-42.122482155+00-00.json b/.pmat-work/PMAT-028/falsification/receipt-2026-03-02T21-46-42.122482155+00-00.json new file mode 100644 index 00000000..97f9f525 --- /dev/null +++ b/.pmat-work/PMAT-028/falsification/receipt-2026-03-02T21-46-42.122482155+00-00.json @@ -0,0 +1,196 @@ +{ + "id": "019cb084-8a4a-73d2-9809-bd8822d3ceba", + "git_sha": "2611c9da7913b519c49e79cfee316a7ba3548393", + "timestamp": "2026-03-02T21:46:42.122482155+00:00", + "trigger": "WorkComplete", + "work_item_id": "PMAT-028", + "verdicts": [ + { + "hypothesis": "All baseline files still exist", + "method": "ManifestIntegrity", + "falsified": false, + "is_blocking": true, + "explanation": "All 658 files present", + "evidence_summary": null + }, + { + "hypothesis": "The falsifier is active and detecting (Meta-Check)", + "method": "MetaFalsification", + "falsified": false, + "is_blocking": true, + "explanation": "Detected dummy gaming pattern correctly", + "evidence_summary": null + }, + { + "hypothesis": "No coverage exclusion gaming", + "method": "CoverageGaming", + "falsified": false, + "is_blocking": true, + "explanation": "No gaming patterns found in 667 files", + "evidence_summary": null + }, + { + "hypothesis": "All changed lines are covered", + "method": "DifferentialCoverage", + "falsified": false, + "is_blocking": true, + "explanation": "16 changed files (coverage check requires llvm-cov data)", + "evidence_summary": null + }, + { + "hypothesis": "Total coverage >= 95%", + "method": "AbsoluteCoverage", + "falsified": false, + "is_blocking": true, + "explanation": "No coverage data (run 'make coverage' to establish baseline), threshold: 95.0%", + "evidence_summary": null + }, + { + "hypothesis": "TDG score >= baseline", + "method": "TdgRegression", + "falsified": false, + "is_blocking": true, + "explanation": "No TDG data (baseline: 0.0)", + "evidence_summary": null + }, + { + "hypothesis": "No function exceeds complexity 20", + "method": "ComplexityRegression", + "falsified": false, + "is_blocking": true, + "explanation": "Complexity check passed", + "evidence_summary": null + }, + { + "hypothesis": "No vulnerable dependencies added", + "method": "SupplyChainIntegrity", + "falsified": true, + "is_blocking": true, + "explanation": "No deny cache. Run 'cargo deny check' first (O(1) requirement)", + "evidence_summary": "BooleanCheck(false)" + }, + { + "hypothesis": "No file exceeds 500 lines", + "method": "FileSizeRegression", + "falsified": true, + "is_blocking": true, + "explanation": "95 file(s) exceed 500 lines: src/core/scoring.rs (619 lines), src/core/executor/machine.rs (533 lines), src/core/planner/tests_hash.rs (503 lines), src/core/resolver/tests_resource.rs (560 lines), src/cli/tests_graph_core_2.rs (1041 lines), src/cli/graph_scoring.rs (655 lines), src/cli/status_resource_intel.rs (719 lines), src/cli/status_operational.rs (529 lines), src/cli/tests_apply_10.rs (583 lines), src/cli/tests_status_core_6.rs (705 lines), src/cli/status_security.rs (523 lines), src/cli/dispatch_notify.rs (728 lines), src/cli/commands/status_args.rs (676 lines), src/cli/commands/apply_args.rs (680 lines), src/cli/tests_cov_remaining_10.rs (559 lines), src/cli/status_fleet_insight.rs (706 lines), src/cli/tests_validate_core_2.rs (815 lines), src/cli/dispatch_validate.rs (1168 lines), src/cli/tests_cov_remaining_11.rs (710 lines), src/cli/tests_status_core_2.rs (707 lines), src/cli/status_intelligence.rs (656 lines), src/cli/dispatch_graph.rs (1142 lines), src/cli/tests_apply_9.rs (585 lines), src/cli/mod.rs (610 lines), src/cli/tests_misc_2.rs (517 lines), src/cli/tests_apply_11.rs (584 lines), src/cli/status_diagnostics.rs (578 lines), src/cli/tests_misc_6.rs (582 lines), src/cli/tests_apply_1.rs (514 lines), src/cli/tests_misc_10.rs (660 lines), src/cli/tests_cov_notify.rs (789 lines), src/cli/tests_status_core_5.rs (703 lines), src/cli/tests_validate_core.rs (511 lines), src/cli/graph_intelligence_ext.rs (759 lines), src/cli/tests_apply_20.rs (591 lines), src/cli/tests_cov_notify_2.rs (529 lines), src/cli/graph_quality.rs (506 lines), src/cli/tests_cov_fleet.rs (526 lines), src/cli/tests_graph_core_3.rs (757 lines), src/cli/tests_cov_dispatch_3.rs (501 lines), src/cli/validate_paths.rs (517 lines), src/cli/tests_apply_21.rs (591 lines), src/cli/dispatch_status.rs (1448 lines), src/cli/tests_status_core_7.rs (703 lines), src/cli/status_maturity.rs (857 lines), src/cli/tests_apply_18.rs (585 lines), src/cli/tests_status_core_1.rs (701 lines), src/cli/tests_apply_19.rs (589 lines), src/cli/tests_misc_8.rs (620 lines), src/cli/tests_apply_7.rs (585 lines), src/cli/tests_apply_5.rs (585 lines), src/cli/status_recovery.rs (677 lines), src/cli/graph_topology.rs (525 lines), src/cli/tests_status_core_4.rs (707 lines), src/cli/tests_apply_15.rs (584 lines), src/cli/tests_fleet_ops.rs (531 lines), src/cli/validate_ordering.rs (675 lines), src/cli/graph_intelligence_ext2.rs (643 lines), src/cli/tests_cov_validate_ext2.rs (504 lines), src/cli/tests_status_core_3.rs (705 lines), src/cli/tests_validate_core_1.rs (814 lines), src/cli/tests_status_core_9.rs (528 lines), src/cli/graph_intelligence.rs (591 lines), src/cli/tests_drift.rs (541 lines), src/cli/tests_apply_16.rs (585 lines), src/cli/validate_ownership.rs (610 lines), src/cli/tests_apply_8.rs (586 lines), src/cli/tests_cov_args_extra.rs (538 lines), src/cli/graph_export.rs (517 lines), src/cli/dispatch_status_ext.rs (637 lines), src/cli/tests_validate_core_2_b.rs (667 lines), src/cli/tests_apply_12.rs (584 lines), src/cli/status_intelligence_ext2.rs (624 lines), src/cli/status_intelligence_ext.rs (801 lines), src/cli/status_quality.rs (685 lines), src/cli/tests_apply_17.rs (586 lines), src/cli/status_resilience.rs (699 lines), src/cli/tests_cov_remaining_12.rs (513 lines), src/cli/tests_apply_13.rs (584 lines), src/cli/tests_validate_core_1_b.rs (655 lines), src/cli/tests_cov_validate_ext.rs (515 lines), src/cli/graph_advanced.rs (551 lines), src/cli/status_operational_ext2.rs (556 lines), src/cli/tests_misc_9.rs (621 lines), src/cli/tests_graph_core_1.rs (1033 lines), src/cli/tests_init.rs (553 lines), src/cli/tests_cov_notify_4.rs (504 lines), src/cli/tests_apply_14.rs (584 lines), src/cli/tests_misc_4.rs (521 lines), src/cli/dispatch_apply.rs (568 lines), src/cli/tests_apply_4.rs (585 lines), src/cli/tests_status_core_8.rs (704 lines), src/cli/tests_apply_22.rs (588 lines), src/resources/network.rs (535 lines), benches/core_bench.rs (610 lines)", + "evidence_summary": "FileList([\"src/core/scoring.rs\", \"src/core/executor/machine.rs\", \"src/core/planner/tests_hash.rs\", \"src/core/resolver/tests_resource.rs\", \"src/cli/tests_graph_core_2.rs\", \"src/cli/graph_scoring.rs\", \"src/cli/status_resource_intel.rs\", \"src/cli/status_operational.rs\", \"src/cli/tests_apply_10.rs\", \"src/cli/tests_status_core_6.rs\", \"src/cli/status_security.rs\", \"src/cli/dispatch_notify.rs\", \"src/cli/commands/status_args.rs\", \"src/cli/commands/apply_args.rs\", \"src/cli/tests_cov_remaining_10.rs\", \"src/cli/status_fleet_insight.rs\", \"src/cli/tests_validate_core_2.rs\", \"src/cli/dispatch_validate.rs\", \"src/cli/tests_cov_remaining_11.rs\", \"src/cli/tests_status_core_2.rs\", \"src/cli/status_intelligence.rs\", \"src/cli/dispatch_graph.rs\", \"src/cli/tests_apply_9.rs\", \"src/cli/mod.rs\", \"src/cli/tests_misc_2.rs\", \"src/cli/tests_apply_11.rs\", \"src/cli/status_diagnostics.rs\", \"src/cli/tests_misc_6.rs\", \"src/cli/tests_apply_1.rs\", \"src/cli/tests_misc_10.rs\", \"src/cli/tests_cov_notify.rs\", \"src/cli/tests_status_core_5.rs\", \"src/cli/tests_validate_core.rs\", \"src/cli/graph_intelligence_ext.rs\", \"src/cli/tests_apply_20.rs\", \"src/cli/tests_cov_notify_2.rs\", \"src/cli/graph_quality.rs\", \"src/cli/tests_cov_fleet.rs\", \"src/cli/tests_graph_core_3.rs\", \"src/cli/tests_cov_dispatch_3.rs\", \"src/cli/validate_paths.rs\", \"src/cli/tests_apply_21.rs\", \"src/cli/dispatch_status.rs\", \"src/cli/tests_status_core_7.rs\", \"src/cli/status_maturity.rs\", \"src/cli/tests_apply_18.rs\", \"src/cli/tests_status_core_1.rs\", \"src/cli/tests_apply_19.rs\", \"src/cli/tests_misc_8.rs\", \"src/cli/tests_apply_7.rs\", \"src/cli/tests_apply_5.rs\", \"src/cli/status_recovery.rs\", \"src/cli/graph_topology.rs\", \"src/cli/tests_status_core_4.rs\", \"src/cli/tests_apply_15.rs\", \"src/cli/tests_fleet_ops.rs\", \"src/cli/validate_ordering.rs\", \"src/cli/graph_intelligence_ext2.rs\", \"src/cli/tests_cov_validate_ext2.rs\", \"src/cli/tests_status_core_3.rs\", \"src/cli/tests_validate_core_1.rs\", \"src/cli/tests_status_core_9.rs\", \"src/cli/graph_intelligence.rs\", \"src/cli/tests_drift.rs\", \"src/cli/tests_apply_16.rs\", \"src/cli/validate_ownership.rs\", \"src/cli/tests_apply_8.rs\", \"src/cli/tests_cov_args_extra.rs\", \"src/cli/graph_export.rs\", \"src/cli/dispatch_status_ext.rs\", \"src/cli/tests_validate_core_2_b.rs\", \"src/cli/tests_apply_12.rs\", \"src/cli/status_intelligence_ext2.rs\", \"src/cli/status_intelligence_ext.rs\", \"src/cli/status_quality.rs\", \"src/cli/tests_apply_17.rs\", \"src/cli/status_resilience.rs\", \"src/cli/tests_cov_remaining_12.rs\", \"src/cli/tests_apply_13.rs\", \"src/cli/tests_validate_core_1_b.rs\", \"src/cli/tests_cov_validate_ext.rs\", \"src/cli/graph_advanced.rs\", \"src/cli/status_operational_ext2.rs\", \"src/cli/tests_misc_9.rs\", \"src/cli/tests_graph_core_1.rs\", \"src/cli/tests_init.rs\", \"src/cli/tests_cov_notify_4.rs\", \"src/cli/tests_apply_14.rs\", \"src/cli/tests_misc_4.rs\", \"src/cli/dispatch_apply.rs\", \"src/cli/tests_apply_4.rs\", \"src/cli/tests_status_core_8.rs\", \"src/cli/tests_apply_22.rs\", \"src/resources/network.rs\", \"benches/core_bench.rs\"])" + }, + { + "hypothesis": "Spec & Roadmap Quality", + "method": "SpecQuality", + "falsified": false, + "is_blocking": true, + "explanation": "No spec file found (optional)", + "evidence_summary": null + }, + { + "hypothesis": "All changes pushed", + "method": "GitHubSync", + "falsified": true, + "is_blocking": true, + "explanation": "9 uncommitted file(s)", + "evidence_summary": "GitState { unpushed_commits: 0, dirty_files: 9 }" + }, + { + "hypothesis": "All examples compile and run", + "method": "ExamplesCompile", + "falsified": false, + "is_blocking": true, + "explanation": "No examples cache (run 'cargo build --examples' to populate)", + "evidence_summary": null + }, + { + "hypothesis": "pmat-book validation passes", + "method": "BookValidation", + "falsified": false, + "is_blocking": true, + "explanation": "pmat-book not found (skipping validation)", + "evidence_summary": null + }, + { + "hypothesis": "No new SATD markers (TODO/FIXME/HACK)", + "method": "SatdDetection", + "falsified": false, + "is_blocking": true, + "explanation": "No new SATD markers (0 existing)", + "evidence_summary": null + }, + { + "hypothesis": "No new dead code introduced", + "method": "DeadCodeDetection", + "falsified": false, + "is_blocking": true, + "explanation": "No dead code detected", + "evidence_summary": null + }, + { + "hypothesis": "All files have >= 95% coverage", + "method": "PerFileCoverage", + "falsified": false, + "is_blocking": true, + "explanation": "No per-file coverage data (run 'make coverage'), threshold: 95.0%", + "evidence_summary": null + }, + { + "hypothesis": "make lint passes", + "method": "LintPass", + "falsified": true, + "is_blocking": true, + "explanation": "No lint cache. Run 'make lint' first (O(1) requirement)", + "evidence_summary": "BooleanCheck(false)" + }, + { + "hypothesis": "All match arm variants have test coverage", + "method": "VariantCoverage", + "falsified": true, + "is_blocking": true, + "explanation": "6 untested match variant(s): src/resources/package.rs::apt\", \"present, src/resources/package.rs::apt\", \"absent, src/resources/package.rs::cargo\", \"present, src/resources/package.rs::uv\", \"present, src/resources/package.rs::uv\", \"absent, src/resources/package.rs::other_provider, other_state", + "evidence_summary": "FileList([\"src/resources/package.rs\", \"src/resources/package.rs\", \"src/resources/package.rs\", \"src/resources/package.rs\", \"src/resources/package.rs\", \"src/resources/package.rs\"])" + }, + { + "hypothesis": "No fix-after-fix chains exceed limit", + "method": "FixChainLimit", + "falsified": false, + "is_blocking": true, + "explanation": "No fix chains > 3 consecutive commits", + "evidence_summary": null + }, + { + "hypothesis": "Cross-crate integration tests pass", + "method": "CrossCrateParity", + "falsified": false, + "is_blocking": false, + "explanation": "No cross-crate config (create .pmat-work/cross-crate.json to enable)", + "evidence_summary": null + }, + { + "hypothesis": "No performance regressions detected", + "method": "RegressionGate", + "falsified": false, + "is_blocking": false, + "explanation": "No benchmark cache (run benchmarks to populate .pmat-metrics/benchmark-status.json)", + "evidence_summary": null + }, + { + "hypothesis": "No incomplete proofs (sorry) introduced", + "method": "FormalProofVerification", + "falsified": false, + "is_blocking": false, + "explanation": "No .lean files with sorry found", + "evidence_summary": null + } + ], + "overrides": [], + "summary": { + "total": 22, + "passed": 17, + "failed": 5, + "warnings": 0, + "overridden": 0, + "allows_completion": false, + "health_score": 0.7727272727272727 + }, + "content_hash": "bb1dda45f61ff0ad02a773e818692206b1b4ab8577b47f2fc9cea861880d2b6d" +} \ No newline at end of file diff --git a/.pmat-work/PMAT-028/falsification/receipt-2026-03-02T22-00-39.263374974+00-00.json b/.pmat-work/PMAT-028/falsification/receipt-2026-03-02T22-00-39.263374974+00-00.json new file mode 100644 index 00000000..2f032022 --- /dev/null +++ b/.pmat-work/PMAT-028/falsification/receipt-2026-03-02T22-00-39.263374974+00-00.json @@ -0,0 +1,196 @@ +{ + "id": "019cb091-505f-7c90-ab75-385b651dd32c", + "git_sha": "1ec766854bdd4f50bd1aef5c2d720d46a79c473c", + "timestamp": "2026-03-02T22:00:39.263374974+00:00", + "trigger": "WorkComplete", + "work_item_id": "PMAT-028", + "verdicts": [ + { + "hypothesis": "All baseline files still exist", + "method": "ManifestIntegrity", + "falsified": false, + "is_blocking": true, + "explanation": "All 658 files present", + "evidence_summary": null + }, + { + "hypothesis": "The falsifier is active and detecting (Meta-Check)", + "method": "MetaFalsification", + "falsified": false, + "is_blocking": true, + "explanation": "Detected dummy gaming pattern correctly", + "evidence_summary": null + }, + { + "hypothesis": "No coverage exclusion gaming", + "method": "CoverageGaming", + "falsified": false, + "is_blocking": true, + "explanation": "No gaming patterns found in 668 files", + "evidence_summary": null + }, + { + "hypothesis": "All changed lines are covered", + "method": "DifferentialCoverage", + "falsified": false, + "is_blocking": true, + "explanation": "23 changed files (coverage check requires llvm-cov data)", + "evidence_summary": null + }, + { + "hypothesis": "Total coverage >= 95%", + "method": "AbsoluteCoverage", + "falsified": false, + "is_blocking": true, + "explanation": "No coverage data (run 'make coverage' to establish baseline), threshold: 95.0%", + "evidence_summary": null + }, + { + "hypothesis": "TDG score >= baseline", + "method": "TdgRegression", + "falsified": false, + "is_blocking": true, + "explanation": "No TDG data (baseline: 0.0)", + "evidence_summary": null + }, + { + "hypothesis": "No function exceeds complexity 20", + "method": "ComplexityRegression", + "falsified": false, + "is_blocking": true, + "explanation": "Complexity check passed", + "evidence_summary": null + }, + { + "hypothesis": "No vulnerable dependencies added", + "method": "SupplyChainIntegrity", + "falsified": true, + "is_blocking": true, + "explanation": "No deny cache. Run 'cargo deny check' first (O(1) requirement)", + "evidence_summary": "BooleanCheck(false)" + }, + { + "hypothesis": "No file exceeds 500 lines", + "method": "FileSizeRegression", + "falsified": true, + "is_blocking": true, + "explanation": "92 file(s) exceed 500 lines: src/core/scoring.rs (619 lines), src/core/executor/machine.rs (533 lines), src/core/planner/tests_hash.rs (503 lines), src/core/resolver/tests_resource.rs (560 lines), src/cli/tests_graph_core_2.rs (1041 lines), src/cli/graph_scoring.rs (655 lines), src/cli/status_resource_intel.rs (719 lines), src/cli/status_operational.rs (529 lines), src/cli/tests_apply_10.rs (583 lines), src/cli/tests_status_core_6.rs (705 lines), src/cli/status_security.rs (523 lines), src/cli/dispatch_notify.rs (728 lines), src/cli/commands/status_args.rs (676 lines), src/cli/commands/apply_args.rs (680 lines), src/cli/tests_cov_remaining_10.rs (559 lines), src/cli/status_fleet_insight.rs (706 lines), src/cli/tests_validate_core_2.rs (815 lines), src/cli/dispatch_validate.rs (1168 lines), src/cli/tests_cov_remaining_11.rs (710 lines), src/cli/tests_status_core_2.rs (707 lines), src/cli/status_intelligence.rs (656 lines), src/cli/dispatch_graph.rs (1142 lines), src/cli/tests_apply_9.rs (585 lines), src/cli/mod.rs (612 lines), src/cli/tests_misc_2.rs (517 lines), src/cli/tests_apply_11.rs (584 lines), src/cli/status_diagnostics.rs (578 lines), src/cli/tests_misc_6.rs (582 lines), src/cli/tests_apply_1.rs (514 lines), src/cli/tests_misc_10.rs (660 lines), src/cli/tests_cov_notify.rs (789 lines), src/cli/tests_status_core_5.rs (703 lines), src/cli/tests_validate_core.rs (511 lines), src/cli/graph_intelligence_ext.rs (759 lines), src/cli/tests_apply_20.rs (591 lines), src/cli/tests_cov_notify_2.rs (529 lines), src/cli/graph_quality.rs (506 lines), src/cli/tests_cov_fleet.rs (526 lines), src/cli/tests_graph_core_3.rs (757 lines), src/cli/tests_cov_dispatch_3.rs (501 lines), src/cli/validate_paths.rs (517 lines), src/cli/tests_apply_21.rs (591 lines), src/cli/dispatch_status.rs (1448 lines), src/cli/tests_status_core_7.rs (703 lines), src/cli/status_maturity.rs (857 lines), src/cli/tests_apply_18.rs (585 lines), src/cli/tests_status_core_1.rs (701 lines), src/cli/tests_apply_19.rs (589 lines), src/cli/tests_misc_8.rs (620 lines), src/cli/tests_apply_7.rs (585 lines), src/cli/tests_apply_5.rs (585 lines), src/cli/status_recovery.rs (677 lines), src/cli/graph_topology.rs (525 lines), src/cli/tests_status_core_4.rs (707 lines), src/cli/tests_apply_15.rs (584 lines), src/cli/tests_fleet_ops.rs (531 lines), src/cli/validate_ordering.rs (675 lines), src/cli/graph_intelligence_ext2.rs (643 lines), src/cli/tests_status_core_3.rs (705 lines), src/cli/tests_validate_core_1.rs (814 lines), src/cli/tests_status_core_9.rs (528 lines), src/cli/graph_intelligence.rs (591 lines), src/cli/tests_drift.rs (541 lines), src/cli/tests_apply_16.rs (585 lines), src/cli/validate_ownership.rs (610 lines), src/cli/tests_apply_8.rs (586 lines), src/cli/tests_cov_args_extra.rs (538 lines), src/cli/graph_export.rs (517 lines), src/cli/dispatch_status_ext.rs (637 lines), src/cli/tests_validate_core_2_b.rs (667 lines), src/cli/tests_apply_12.rs (584 lines), src/cli/status_intelligence_ext2.rs (624 lines), src/cli/status_intelligence_ext.rs (801 lines), src/cli/status_quality.rs (685 lines), src/cli/tests_apply_17.rs (586 lines), src/cli/status_resilience.rs (699 lines), src/cli/tests_apply_13.rs (584 lines), src/cli/tests_validate_core_1_b.rs (655 lines), src/cli/graph_advanced.rs (551 lines), src/cli/status_operational_ext2.rs (556 lines), src/cli/tests_misc_9.rs (621 lines), src/cli/tests_graph_core_1.rs (1033 lines), src/cli/tests_init.rs (553 lines), src/cli/tests_cov_notify_4.rs (504 lines), src/cli/tests_apply_14.rs (584 lines), src/cli/tests_misc_4.rs (521 lines), src/cli/dispatch_apply.rs (568 lines), src/cli/tests_apply_4.rs (585 lines), src/cli/tests_status_core_8.rs (704 lines), src/cli/tests_apply_22.rs (588 lines), src/resources/network.rs (535 lines), benches/core_bench.rs (610 lines)", + "evidence_summary": "FileList([\"src/core/scoring.rs\", \"src/core/executor/machine.rs\", \"src/core/planner/tests_hash.rs\", \"src/core/resolver/tests_resource.rs\", \"src/cli/tests_graph_core_2.rs\", \"src/cli/graph_scoring.rs\", \"src/cli/status_resource_intel.rs\", \"src/cli/status_operational.rs\", \"src/cli/tests_apply_10.rs\", \"src/cli/tests_status_core_6.rs\", \"src/cli/status_security.rs\", \"src/cli/dispatch_notify.rs\", \"src/cli/commands/status_args.rs\", \"src/cli/commands/apply_args.rs\", \"src/cli/tests_cov_remaining_10.rs\", \"src/cli/status_fleet_insight.rs\", \"src/cli/tests_validate_core_2.rs\", \"src/cli/dispatch_validate.rs\", \"src/cli/tests_cov_remaining_11.rs\", \"src/cli/tests_status_core_2.rs\", \"src/cli/status_intelligence.rs\", \"src/cli/dispatch_graph.rs\", \"src/cli/tests_apply_9.rs\", \"src/cli/mod.rs\", \"src/cli/tests_misc_2.rs\", \"src/cli/tests_apply_11.rs\", \"src/cli/status_diagnostics.rs\", \"src/cli/tests_misc_6.rs\", \"src/cli/tests_apply_1.rs\", \"src/cli/tests_misc_10.rs\", \"src/cli/tests_cov_notify.rs\", \"src/cli/tests_status_core_5.rs\", \"src/cli/tests_validate_core.rs\", \"src/cli/graph_intelligence_ext.rs\", \"src/cli/tests_apply_20.rs\", \"src/cli/tests_cov_notify_2.rs\", \"src/cli/graph_quality.rs\", \"src/cli/tests_cov_fleet.rs\", \"src/cli/tests_graph_core_3.rs\", \"src/cli/tests_cov_dispatch_3.rs\", \"src/cli/validate_paths.rs\", \"src/cli/tests_apply_21.rs\", \"src/cli/dispatch_status.rs\", \"src/cli/tests_status_core_7.rs\", \"src/cli/status_maturity.rs\", \"src/cli/tests_apply_18.rs\", \"src/cli/tests_status_core_1.rs\", \"src/cli/tests_apply_19.rs\", \"src/cli/tests_misc_8.rs\", \"src/cli/tests_apply_7.rs\", \"src/cli/tests_apply_5.rs\", \"src/cli/status_recovery.rs\", \"src/cli/graph_topology.rs\", \"src/cli/tests_status_core_4.rs\", \"src/cli/tests_apply_15.rs\", \"src/cli/tests_fleet_ops.rs\", \"src/cli/validate_ordering.rs\", \"src/cli/graph_intelligence_ext2.rs\", \"src/cli/tests_status_core_3.rs\", \"src/cli/tests_validate_core_1.rs\", \"src/cli/tests_status_core_9.rs\", \"src/cli/graph_intelligence.rs\", \"src/cli/tests_drift.rs\", \"src/cli/tests_apply_16.rs\", \"src/cli/validate_ownership.rs\", \"src/cli/tests_apply_8.rs\", \"src/cli/tests_cov_args_extra.rs\", \"src/cli/graph_export.rs\", \"src/cli/dispatch_status_ext.rs\", \"src/cli/tests_validate_core_2_b.rs\", \"src/cli/tests_apply_12.rs\", \"src/cli/status_intelligence_ext2.rs\", \"src/cli/status_intelligence_ext.rs\", \"src/cli/status_quality.rs\", \"src/cli/tests_apply_17.rs\", \"src/cli/status_resilience.rs\", \"src/cli/tests_apply_13.rs\", \"src/cli/tests_validate_core_1_b.rs\", \"src/cli/graph_advanced.rs\", \"src/cli/status_operational_ext2.rs\", \"src/cli/tests_misc_9.rs\", \"src/cli/tests_graph_core_1.rs\", \"src/cli/tests_init.rs\", \"src/cli/tests_cov_notify_4.rs\", \"src/cli/tests_apply_14.rs\", \"src/cli/tests_misc_4.rs\", \"src/cli/dispatch_apply.rs\", \"src/cli/tests_apply_4.rs\", \"src/cli/tests_status_core_8.rs\", \"src/cli/tests_apply_22.rs\", \"src/resources/network.rs\", \"benches/core_bench.rs\"])" + }, + { + "hypothesis": "Spec & Roadmap Quality", + "method": "SpecQuality", + "falsified": false, + "is_blocking": true, + "explanation": "No spec file found (optional)", + "evidence_summary": null + }, + { + "hypothesis": "All changes pushed", + "method": "GitHubSync", + "falsified": true, + "is_blocking": true, + "explanation": "9 uncommitted file(s)", + "evidence_summary": "GitState { unpushed_commits: 0, dirty_files: 9 }" + }, + { + "hypothesis": "All examples compile and run", + "method": "ExamplesCompile", + "falsified": false, + "is_blocking": true, + "explanation": "No examples cache (run 'cargo build --examples' to populate)", + "evidence_summary": null + }, + { + "hypothesis": "pmat-book validation passes", + "method": "BookValidation", + "falsified": false, + "is_blocking": true, + "explanation": "pmat-book not found (skipping validation)", + "evidence_summary": null + }, + { + "hypothesis": "No new SATD markers (TODO/FIXME/HACK)", + "method": "SatdDetection", + "falsified": false, + "is_blocking": true, + "explanation": "No new SATD markers (0 existing)", + "evidence_summary": null + }, + { + "hypothesis": "No new dead code introduced", + "method": "DeadCodeDetection", + "falsified": false, + "is_blocking": true, + "explanation": "No dead code detected", + "evidence_summary": null + }, + { + "hypothesis": "All files have >= 95% coverage", + "method": "PerFileCoverage", + "falsified": false, + "is_blocking": true, + "explanation": "No per-file coverage data (run 'make coverage'), threshold: 95.0%", + "evidence_summary": null + }, + { + "hypothesis": "make lint passes", + "method": "LintPass", + "falsified": true, + "is_blocking": true, + "explanation": "No lint cache. Run 'make lint' first (O(1) requirement)", + "evidence_summary": "BooleanCheck(false)" + }, + { + "hypothesis": "All match arm variants have test coverage", + "method": "VariantCoverage", + "falsified": true, + "is_blocking": true, + "explanation": "6 untested match variant(s): src/resources/package.rs::apt\", \"present, src/resources/package.rs::apt\", \"absent, src/resources/package.rs::cargo\", \"present, src/resources/package.rs::uv\", \"present, src/resources/package.rs::uv\", \"absent, src/resources/package.rs::other_provider, other_state", + "evidence_summary": "FileList([\"src/resources/package.rs\", \"src/resources/package.rs\", \"src/resources/package.rs\", \"src/resources/package.rs\", \"src/resources/package.rs\", \"src/resources/package.rs\"])" + }, + { + "hypothesis": "No fix-after-fix chains exceed limit", + "method": "FixChainLimit", + "falsified": false, + "is_blocking": true, + "explanation": "No fix chains > 3 consecutive commits", + "evidence_summary": null + }, + { + "hypothesis": "Cross-crate integration tests pass", + "method": "CrossCrateParity", + "falsified": false, + "is_blocking": false, + "explanation": "No cross-crate config (create .pmat-work/cross-crate.json to enable)", + "evidence_summary": null + }, + { + "hypothesis": "No performance regressions detected", + "method": "RegressionGate", + "falsified": false, + "is_blocking": false, + "explanation": "No benchmark cache (run benchmarks to populate .pmat-metrics/benchmark-status.json)", + "evidence_summary": null + }, + { + "hypothesis": "No incomplete proofs (sorry) introduced", + "method": "FormalProofVerification", + "falsified": false, + "is_blocking": false, + "explanation": "No .lean files with sorry found", + "evidence_summary": null + } + ], + "overrides": [], + "summary": { + "total": 22, + "passed": 17, + "failed": 5, + "warnings": 0, + "overridden": 0, + "allows_completion": false, + "health_score": 0.7727272727272727 + }, + "content_hash": "169fdcbd076c7b1ce06d0b5dfac76ca656560ae7a3072927e9644c5aaebf7211" +} \ No newline at end of file diff --git a/.pmat-work/PMAT-028/falsification/receipt-2026-03-02T22-00-43.585794020+00-00.json b/.pmat-work/PMAT-028/falsification/receipt-2026-03-02T22-00-43.585794020+00-00.json new file mode 100644 index 00000000..fd629900 --- /dev/null +++ b/.pmat-work/PMAT-028/falsification/receipt-2026-03-02T22-00-43.585794020+00-00.json @@ -0,0 +1,196 @@ +{ + "id": "019cb091-6141-7792-9084-8aa5513636d1", + "git_sha": "1ec766854bdd4f50bd1aef5c2d720d46a79c473c", + "timestamp": "2026-03-02T22:00:43.585794020+00:00", + "trigger": "WorkComplete", + "work_item_id": "PMAT-028", + "verdicts": [ + { + "hypothesis": "All baseline files still exist", + "method": "ManifestIntegrity", + "falsified": false, + "is_blocking": true, + "explanation": "All 658 files present", + "evidence_summary": null + }, + { + "hypothesis": "The falsifier is active and detecting (Meta-Check)", + "method": "MetaFalsification", + "falsified": false, + "is_blocking": true, + "explanation": "Detected dummy gaming pattern correctly", + "evidence_summary": null + }, + { + "hypothesis": "No coverage exclusion gaming", + "method": "CoverageGaming", + "falsified": false, + "is_blocking": true, + "explanation": "No gaming patterns found in 668 files", + "evidence_summary": null + }, + { + "hypothesis": "All changed lines are covered", + "method": "DifferentialCoverage", + "falsified": false, + "is_blocking": true, + "explanation": "23 changed files (coverage check requires llvm-cov data)", + "evidence_summary": null + }, + { + "hypothesis": "Total coverage >= 95%", + "method": "AbsoluteCoverage", + "falsified": false, + "is_blocking": true, + "explanation": "No coverage data (run 'make coverage' to establish baseline), threshold: 95.0%", + "evidence_summary": null + }, + { + "hypothesis": "TDG score >= baseline", + "method": "TdgRegression", + "falsified": false, + "is_blocking": true, + "explanation": "No TDG data (baseline: 0.0)", + "evidence_summary": null + }, + { + "hypothesis": "No function exceeds complexity 20", + "method": "ComplexityRegression", + "falsified": false, + "is_blocking": true, + "explanation": "Complexity check passed", + "evidence_summary": null + }, + { + "hypothesis": "No vulnerable dependencies added", + "method": "SupplyChainIntegrity", + "falsified": true, + "is_blocking": true, + "explanation": "No deny cache. Run 'cargo deny check' first (O(1) requirement)", + "evidence_summary": "BooleanCheck(false)" + }, + { + "hypothesis": "No file exceeds 500 lines", + "method": "FileSizeRegression", + "falsified": true, + "is_blocking": true, + "explanation": "92 file(s) exceed 500 lines: src/core/scoring.rs (619 lines), src/core/executor/machine.rs (533 lines), src/core/planner/tests_hash.rs (503 lines), src/core/resolver/tests_resource.rs (560 lines), src/cli/tests_graph_core_2.rs (1041 lines), src/cli/graph_scoring.rs (655 lines), src/cli/status_resource_intel.rs (719 lines), src/cli/status_operational.rs (529 lines), src/cli/tests_apply_10.rs (583 lines), src/cli/tests_status_core_6.rs (705 lines), src/cli/status_security.rs (523 lines), src/cli/dispatch_notify.rs (728 lines), src/cli/commands/status_args.rs (676 lines), src/cli/commands/apply_args.rs (680 lines), src/cli/tests_cov_remaining_10.rs (559 lines), src/cli/status_fleet_insight.rs (706 lines), src/cli/tests_validate_core_2.rs (815 lines), src/cli/dispatch_validate.rs (1168 lines), src/cli/tests_cov_remaining_11.rs (710 lines), src/cli/tests_status_core_2.rs (707 lines), src/cli/status_intelligence.rs (656 lines), src/cli/dispatch_graph.rs (1142 lines), src/cli/tests_apply_9.rs (585 lines), src/cli/mod.rs (612 lines), src/cli/tests_misc_2.rs (517 lines), src/cli/tests_apply_11.rs (584 lines), src/cli/status_diagnostics.rs (578 lines), src/cli/tests_misc_6.rs (582 lines), src/cli/tests_apply_1.rs (514 lines), src/cli/tests_misc_10.rs (660 lines), src/cli/tests_cov_notify.rs (789 lines), src/cli/tests_status_core_5.rs (703 lines), src/cli/tests_validate_core.rs (511 lines), src/cli/graph_intelligence_ext.rs (759 lines), src/cli/tests_apply_20.rs (591 lines), src/cli/tests_cov_notify_2.rs (529 lines), src/cli/graph_quality.rs (506 lines), src/cli/tests_cov_fleet.rs (526 lines), src/cli/tests_graph_core_3.rs (757 lines), src/cli/tests_cov_dispatch_3.rs (501 lines), src/cli/validate_paths.rs (517 lines), src/cli/tests_apply_21.rs (591 lines), src/cli/dispatch_status.rs (1448 lines), src/cli/tests_status_core_7.rs (703 lines), src/cli/status_maturity.rs (857 lines), src/cli/tests_apply_18.rs (585 lines), src/cli/tests_status_core_1.rs (701 lines), src/cli/tests_apply_19.rs (589 lines), src/cli/tests_misc_8.rs (620 lines), src/cli/tests_apply_7.rs (585 lines), src/cli/tests_apply_5.rs (585 lines), src/cli/status_recovery.rs (677 lines), src/cli/graph_topology.rs (525 lines), src/cli/tests_status_core_4.rs (707 lines), src/cli/tests_apply_15.rs (584 lines), src/cli/tests_fleet_ops.rs (531 lines), src/cli/validate_ordering.rs (675 lines), src/cli/graph_intelligence_ext2.rs (643 lines), src/cli/tests_status_core_3.rs (705 lines), src/cli/tests_validate_core_1.rs (814 lines), src/cli/tests_status_core_9.rs (528 lines), src/cli/graph_intelligence.rs (591 lines), src/cli/tests_drift.rs (541 lines), src/cli/tests_apply_16.rs (585 lines), src/cli/validate_ownership.rs (610 lines), src/cli/tests_apply_8.rs (586 lines), src/cli/tests_cov_args_extra.rs (538 lines), src/cli/graph_export.rs (517 lines), src/cli/dispatch_status_ext.rs (637 lines), src/cli/tests_validate_core_2_b.rs (667 lines), src/cli/tests_apply_12.rs (584 lines), src/cli/status_intelligence_ext2.rs (624 lines), src/cli/status_intelligence_ext.rs (801 lines), src/cli/status_quality.rs (685 lines), src/cli/tests_apply_17.rs (586 lines), src/cli/status_resilience.rs (699 lines), src/cli/tests_apply_13.rs (584 lines), src/cli/tests_validate_core_1_b.rs (655 lines), src/cli/graph_advanced.rs (551 lines), src/cli/status_operational_ext2.rs (556 lines), src/cli/tests_misc_9.rs (621 lines), src/cli/tests_graph_core_1.rs (1033 lines), src/cli/tests_init.rs (553 lines), src/cli/tests_cov_notify_4.rs (504 lines), src/cli/tests_apply_14.rs (584 lines), src/cli/tests_misc_4.rs (521 lines), src/cli/dispatch_apply.rs (568 lines), src/cli/tests_apply_4.rs (585 lines), src/cli/tests_status_core_8.rs (704 lines), src/cli/tests_apply_22.rs (588 lines), src/resources/network.rs (535 lines), benches/core_bench.rs (610 lines)", + "evidence_summary": "FileList([\"src/core/scoring.rs\", \"src/core/executor/machine.rs\", \"src/core/planner/tests_hash.rs\", \"src/core/resolver/tests_resource.rs\", \"src/cli/tests_graph_core_2.rs\", \"src/cli/graph_scoring.rs\", \"src/cli/status_resource_intel.rs\", \"src/cli/status_operational.rs\", \"src/cli/tests_apply_10.rs\", \"src/cli/tests_status_core_6.rs\", \"src/cli/status_security.rs\", \"src/cli/dispatch_notify.rs\", \"src/cli/commands/status_args.rs\", \"src/cli/commands/apply_args.rs\", \"src/cli/tests_cov_remaining_10.rs\", \"src/cli/status_fleet_insight.rs\", \"src/cli/tests_validate_core_2.rs\", \"src/cli/dispatch_validate.rs\", \"src/cli/tests_cov_remaining_11.rs\", \"src/cli/tests_status_core_2.rs\", \"src/cli/status_intelligence.rs\", \"src/cli/dispatch_graph.rs\", \"src/cli/tests_apply_9.rs\", \"src/cli/mod.rs\", \"src/cli/tests_misc_2.rs\", \"src/cli/tests_apply_11.rs\", \"src/cli/status_diagnostics.rs\", \"src/cli/tests_misc_6.rs\", \"src/cli/tests_apply_1.rs\", \"src/cli/tests_misc_10.rs\", \"src/cli/tests_cov_notify.rs\", \"src/cli/tests_status_core_5.rs\", \"src/cli/tests_validate_core.rs\", \"src/cli/graph_intelligence_ext.rs\", \"src/cli/tests_apply_20.rs\", \"src/cli/tests_cov_notify_2.rs\", \"src/cli/graph_quality.rs\", \"src/cli/tests_cov_fleet.rs\", \"src/cli/tests_graph_core_3.rs\", \"src/cli/tests_cov_dispatch_3.rs\", \"src/cli/validate_paths.rs\", \"src/cli/tests_apply_21.rs\", \"src/cli/dispatch_status.rs\", \"src/cli/tests_status_core_7.rs\", \"src/cli/status_maturity.rs\", \"src/cli/tests_apply_18.rs\", \"src/cli/tests_status_core_1.rs\", \"src/cli/tests_apply_19.rs\", \"src/cli/tests_misc_8.rs\", \"src/cli/tests_apply_7.rs\", \"src/cli/tests_apply_5.rs\", \"src/cli/status_recovery.rs\", \"src/cli/graph_topology.rs\", \"src/cli/tests_status_core_4.rs\", \"src/cli/tests_apply_15.rs\", \"src/cli/tests_fleet_ops.rs\", \"src/cli/validate_ordering.rs\", \"src/cli/graph_intelligence_ext2.rs\", \"src/cli/tests_status_core_3.rs\", \"src/cli/tests_validate_core_1.rs\", \"src/cli/tests_status_core_9.rs\", \"src/cli/graph_intelligence.rs\", \"src/cli/tests_drift.rs\", \"src/cli/tests_apply_16.rs\", \"src/cli/validate_ownership.rs\", \"src/cli/tests_apply_8.rs\", \"src/cli/tests_cov_args_extra.rs\", \"src/cli/graph_export.rs\", \"src/cli/dispatch_status_ext.rs\", \"src/cli/tests_validate_core_2_b.rs\", \"src/cli/tests_apply_12.rs\", \"src/cli/status_intelligence_ext2.rs\", \"src/cli/status_intelligence_ext.rs\", \"src/cli/status_quality.rs\", \"src/cli/tests_apply_17.rs\", \"src/cli/status_resilience.rs\", \"src/cli/tests_apply_13.rs\", \"src/cli/tests_validate_core_1_b.rs\", \"src/cli/graph_advanced.rs\", \"src/cli/status_operational_ext2.rs\", \"src/cli/tests_misc_9.rs\", \"src/cli/tests_graph_core_1.rs\", \"src/cli/tests_init.rs\", \"src/cli/tests_cov_notify_4.rs\", \"src/cli/tests_apply_14.rs\", \"src/cli/tests_misc_4.rs\", \"src/cli/dispatch_apply.rs\", \"src/cli/tests_apply_4.rs\", \"src/cli/tests_status_core_8.rs\", \"src/cli/tests_apply_22.rs\", \"src/resources/network.rs\", \"benches/core_bench.rs\"])" + }, + { + "hypothesis": "Spec & Roadmap Quality", + "method": "SpecQuality", + "falsified": false, + "is_blocking": true, + "explanation": "No spec file found (optional)", + "evidence_summary": null + }, + { + "hypothesis": "All changes pushed", + "method": "GitHubSync", + "falsified": true, + "is_blocking": true, + "explanation": "9 uncommitted file(s)", + "evidence_summary": "GitState { unpushed_commits: 0, dirty_files: 9 }" + }, + { + "hypothesis": "All examples compile and run", + "method": "ExamplesCompile", + "falsified": false, + "is_blocking": true, + "explanation": "No examples cache (run 'cargo build --examples' to populate)", + "evidence_summary": null + }, + { + "hypothesis": "pmat-book validation passes", + "method": "BookValidation", + "falsified": false, + "is_blocking": true, + "explanation": "pmat-book not found (skipping validation)", + "evidence_summary": null + }, + { + "hypothesis": "No new SATD markers (TODO/FIXME/HACK)", + "method": "SatdDetection", + "falsified": false, + "is_blocking": true, + "explanation": "No new SATD markers (0 existing)", + "evidence_summary": null + }, + { + "hypothesis": "No new dead code introduced", + "method": "DeadCodeDetection", + "falsified": false, + "is_blocking": true, + "explanation": "No dead code detected", + "evidence_summary": null + }, + { + "hypothesis": "All files have >= 95% coverage", + "method": "PerFileCoverage", + "falsified": false, + "is_blocking": true, + "explanation": "No per-file coverage data (run 'make coverage'), threshold: 95.0%", + "evidence_summary": null + }, + { + "hypothesis": "make lint passes", + "method": "LintPass", + "falsified": true, + "is_blocking": true, + "explanation": "No lint cache. Run 'make lint' first (O(1) requirement)", + "evidence_summary": "BooleanCheck(false)" + }, + { + "hypothesis": "All match arm variants have test coverage", + "method": "VariantCoverage", + "falsified": true, + "is_blocking": true, + "explanation": "6 untested match variant(s): src/resources/package.rs::apt\", \"present, src/resources/package.rs::apt\", \"absent, src/resources/package.rs::cargo\", \"present, src/resources/package.rs::uv\", \"present, src/resources/package.rs::uv\", \"absent, src/resources/package.rs::other_provider, other_state", + "evidence_summary": "FileList([\"src/resources/package.rs\", \"src/resources/package.rs\", \"src/resources/package.rs\", \"src/resources/package.rs\", \"src/resources/package.rs\", \"src/resources/package.rs\"])" + }, + { + "hypothesis": "No fix-after-fix chains exceed limit", + "method": "FixChainLimit", + "falsified": false, + "is_blocking": true, + "explanation": "No fix chains > 3 consecutive commits", + "evidence_summary": null + }, + { + "hypothesis": "Cross-crate integration tests pass", + "method": "CrossCrateParity", + "falsified": false, + "is_blocking": false, + "explanation": "No cross-crate config (create .pmat-work/cross-crate.json to enable)", + "evidence_summary": null + }, + { + "hypothesis": "No performance regressions detected", + "method": "RegressionGate", + "falsified": false, + "is_blocking": false, + "explanation": "No benchmark cache (run benchmarks to populate .pmat-metrics/benchmark-status.json)", + "evidence_summary": null + }, + { + "hypothesis": "No incomplete proofs (sorry) introduced", + "method": "FormalProofVerification", + "falsified": false, + "is_blocking": false, + "explanation": "No .lean files with sorry found", + "evidence_summary": null + } + ], + "overrides": [], + "summary": { + "total": 22, + "passed": 17, + "failed": 5, + "warnings": 0, + "overridden": 0, + "allows_completion": false, + "health_score": 0.7727272727272727 + }, + "content_hash": "faacfaeba32dc1d2607e463c1c5b3d68adf491a6c53c4dcedf19dacec75542f7" +} \ No newline at end of file diff --git a/.pmat-work/PMAT-028/falsification/receipt-2026-03-02T22-02-24.987396504+00-00.json b/.pmat-work/PMAT-028/falsification/receipt-2026-03-02T22-02-24.987396504+00-00.json new file mode 100644 index 00000000..701143a5 --- /dev/null +++ b/.pmat-work/PMAT-028/falsification/receipt-2026-03-02T22-02-24.987396504+00-00.json @@ -0,0 +1,202 @@ +{ + "id": "019cb092-ed5b-7f40-b926-635e7cf00bc6", + "git_sha": "1ec766854bdd4f50bd1aef5c2d720d46a79c473c", + "timestamp": "2026-03-02T22:02:24.987396504+00:00", + "trigger": "WorkComplete", + "work_item_id": "PMAT-028", + "verdicts": [ + { + "hypothesis": "All baseline files still exist", + "method": "ManifestIntegrity", + "falsified": false, + "is_blocking": true, + "explanation": "All 658 files present", + "evidence_summary": null + }, + { + "hypothesis": "The falsifier is active and detecting (Meta-Check)", + "method": "MetaFalsification", + "falsified": false, + "is_blocking": true, + "explanation": "Detected dummy gaming pattern correctly", + "evidence_summary": null + }, + { + "hypothesis": "No coverage exclusion gaming", + "method": "CoverageGaming", + "falsified": false, + "is_blocking": true, + "explanation": "No gaming patterns found in 668 files", + "evidence_summary": null + }, + { + "hypothesis": "All changed lines are covered", + "method": "DifferentialCoverage", + "falsified": false, + "is_blocking": true, + "explanation": "23 changed files (coverage check requires llvm-cov data)", + "evidence_summary": null + }, + { + "hypothesis": "Total coverage >= 95%", + "method": "AbsoluteCoverage", + "falsified": false, + "is_blocking": true, + "explanation": "No coverage data (run 'make coverage' to establish baseline), threshold: 95.0%", + "evidence_summary": null + }, + { + "hypothesis": "TDG score >= baseline", + "method": "TdgRegression", + "falsified": false, + "is_blocking": true, + "explanation": "No TDG data (baseline: 0.0)", + "evidence_summary": null + }, + { + "hypothesis": "No function exceeds complexity 20", + "method": "ComplexityRegression", + "falsified": false, + "is_blocking": true, + "explanation": "Complexity check passed", + "evidence_summary": null + }, + { + "hypothesis": "No vulnerable dependencies added", + "method": "SupplyChainIntegrity", + "falsified": true, + "is_blocking": true, + "explanation": "No deny cache. Run 'cargo deny check' first (O(1) requirement)", + "evidence_summary": "BooleanCheck(false)" + }, + { + "hypothesis": "No file exceeds 500 lines", + "method": "FileSizeRegression", + "falsified": true, + "is_blocking": true, + "explanation": "92 file(s) exceed 500 lines: src/core/scoring.rs (619 lines), src/core/executor/machine.rs (533 lines), src/core/planner/tests_hash.rs (503 lines), src/core/resolver/tests_resource.rs (560 lines), src/cli/tests_graph_core_2.rs (1041 lines), src/cli/graph_scoring.rs (655 lines), src/cli/status_resource_intel.rs (719 lines), src/cli/status_operational.rs (529 lines), src/cli/tests_apply_10.rs (583 lines), src/cli/tests_status_core_6.rs (705 lines), src/cli/status_security.rs (523 lines), src/cli/dispatch_notify.rs (728 lines), src/cli/commands/status_args.rs (676 lines), src/cli/commands/apply_args.rs (680 lines), src/cli/tests_cov_remaining_10.rs (559 lines), src/cli/status_fleet_insight.rs (706 lines), src/cli/tests_validate_core_2.rs (815 lines), src/cli/dispatch_validate.rs (1168 lines), src/cli/tests_cov_remaining_11.rs (710 lines), src/cli/tests_status_core_2.rs (707 lines), src/cli/status_intelligence.rs (656 lines), src/cli/dispatch_graph.rs (1142 lines), src/cli/tests_apply_9.rs (585 lines), src/cli/mod.rs (612 lines), src/cli/tests_misc_2.rs (517 lines), src/cli/tests_apply_11.rs (584 lines), src/cli/status_diagnostics.rs (578 lines), src/cli/tests_misc_6.rs (582 lines), src/cli/tests_apply_1.rs (514 lines), src/cli/tests_misc_10.rs (660 lines), src/cli/tests_cov_notify.rs (789 lines), src/cli/tests_status_core_5.rs (703 lines), src/cli/tests_validate_core.rs (511 lines), src/cli/graph_intelligence_ext.rs (759 lines), src/cli/tests_apply_20.rs (591 lines), src/cli/tests_cov_notify_2.rs (529 lines), src/cli/graph_quality.rs (506 lines), src/cli/tests_cov_fleet.rs (526 lines), src/cli/tests_graph_core_3.rs (757 lines), src/cli/tests_cov_dispatch_3.rs (501 lines), src/cli/validate_paths.rs (517 lines), src/cli/tests_apply_21.rs (591 lines), src/cli/dispatch_status.rs (1448 lines), src/cli/tests_status_core_7.rs (703 lines), src/cli/status_maturity.rs (857 lines), src/cli/tests_apply_18.rs (585 lines), src/cli/tests_status_core_1.rs (701 lines), src/cli/tests_apply_19.rs (589 lines), src/cli/tests_misc_8.rs (620 lines), src/cli/tests_apply_7.rs (585 lines), src/cli/tests_apply_5.rs (585 lines), src/cli/status_recovery.rs (677 lines), src/cli/graph_topology.rs (525 lines), src/cli/tests_status_core_4.rs (707 lines), src/cli/tests_apply_15.rs (584 lines), src/cli/tests_fleet_ops.rs (531 lines), src/cli/validate_ordering.rs (675 lines), src/cli/graph_intelligence_ext2.rs (643 lines), src/cli/tests_status_core_3.rs (705 lines), src/cli/tests_validate_core_1.rs (814 lines), src/cli/tests_status_core_9.rs (528 lines), src/cli/graph_intelligence.rs (591 lines), src/cli/tests_drift.rs (541 lines), src/cli/tests_apply_16.rs (585 lines), src/cli/validate_ownership.rs (610 lines), src/cli/tests_apply_8.rs (586 lines), src/cli/tests_cov_args_extra.rs (538 lines), src/cli/graph_export.rs (517 lines), src/cli/dispatch_status_ext.rs (637 lines), src/cli/tests_validate_core_2_b.rs (667 lines), src/cli/tests_apply_12.rs (584 lines), src/cli/status_intelligence_ext2.rs (624 lines), src/cli/status_intelligence_ext.rs (801 lines), src/cli/status_quality.rs (685 lines), src/cli/tests_apply_17.rs (586 lines), src/cli/status_resilience.rs (699 lines), src/cli/tests_apply_13.rs (584 lines), src/cli/tests_validate_core_1_b.rs (655 lines), src/cli/graph_advanced.rs (551 lines), src/cli/status_operational_ext2.rs (556 lines), src/cli/tests_misc_9.rs (621 lines), src/cli/tests_graph_core_1.rs (1033 lines), src/cli/tests_init.rs (553 lines), src/cli/tests_cov_notify_4.rs (504 lines), src/cli/tests_apply_14.rs (584 lines), src/cli/tests_misc_4.rs (521 lines), src/cli/dispatch_apply.rs (568 lines), src/cli/tests_apply_4.rs (585 lines), src/cli/tests_status_core_8.rs (704 lines), src/cli/tests_apply_22.rs (588 lines), src/resources/network.rs (535 lines), benches/core_bench.rs (610 lines)", + "evidence_summary": "FileList([\"src/core/scoring.rs\", \"src/core/executor/machine.rs\", \"src/core/planner/tests_hash.rs\", \"src/core/resolver/tests_resource.rs\", \"src/cli/tests_graph_core_2.rs\", \"src/cli/graph_scoring.rs\", \"src/cli/status_resource_intel.rs\", \"src/cli/status_operational.rs\", \"src/cli/tests_apply_10.rs\", \"src/cli/tests_status_core_6.rs\", \"src/cli/status_security.rs\", \"src/cli/dispatch_notify.rs\", \"src/cli/commands/status_args.rs\", \"src/cli/commands/apply_args.rs\", \"src/cli/tests_cov_remaining_10.rs\", \"src/cli/status_fleet_insight.rs\", \"src/cli/tests_validate_core_2.rs\", \"src/cli/dispatch_validate.rs\", \"src/cli/tests_cov_remaining_11.rs\", \"src/cli/tests_status_core_2.rs\", \"src/cli/status_intelligence.rs\", \"src/cli/dispatch_graph.rs\", \"src/cli/tests_apply_9.rs\", \"src/cli/mod.rs\", \"src/cli/tests_misc_2.rs\", \"src/cli/tests_apply_11.rs\", \"src/cli/status_diagnostics.rs\", \"src/cli/tests_misc_6.rs\", \"src/cli/tests_apply_1.rs\", \"src/cli/tests_misc_10.rs\", \"src/cli/tests_cov_notify.rs\", \"src/cli/tests_status_core_5.rs\", \"src/cli/tests_validate_core.rs\", \"src/cli/graph_intelligence_ext.rs\", \"src/cli/tests_apply_20.rs\", \"src/cli/tests_cov_notify_2.rs\", \"src/cli/graph_quality.rs\", \"src/cli/tests_cov_fleet.rs\", \"src/cli/tests_graph_core_3.rs\", \"src/cli/tests_cov_dispatch_3.rs\", \"src/cli/validate_paths.rs\", \"src/cli/tests_apply_21.rs\", \"src/cli/dispatch_status.rs\", \"src/cli/tests_status_core_7.rs\", \"src/cli/status_maturity.rs\", \"src/cli/tests_apply_18.rs\", \"src/cli/tests_status_core_1.rs\", \"src/cli/tests_apply_19.rs\", \"src/cli/tests_misc_8.rs\", \"src/cli/tests_apply_7.rs\", \"src/cli/tests_apply_5.rs\", \"src/cli/status_recovery.rs\", \"src/cli/graph_topology.rs\", \"src/cli/tests_status_core_4.rs\", \"src/cli/tests_apply_15.rs\", \"src/cli/tests_fleet_ops.rs\", \"src/cli/validate_ordering.rs\", \"src/cli/graph_intelligence_ext2.rs\", \"src/cli/tests_status_core_3.rs\", \"src/cli/tests_validate_core_1.rs\", \"src/cli/tests_status_core_9.rs\", \"src/cli/graph_intelligence.rs\", \"src/cli/tests_drift.rs\", \"src/cli/tests_apply_16.rs\", \"src/cli/validate_ownership.rs\", \"src/cli/tests_apply_8.rs\", \"src/cli/tests_cov_args_extra.rs\", \"src/cli/graph_export.rs\", \"src/cli/dispatch_status_ext.rs\", \"src/cli/tests_validate_core_2_b.rs\", \"src/cli/tests_apply_12.rs\", \"src/cli/status_intelligence_ext2.rs\", \"src/cli/status_intelligence_ext.rs\", \"src/cli/status_quality.rs\", \"src/cli/tests_apply_17.rs\", \"src/cli/status_resilience.rs\", \"src/cli/tests_apply_13.rs\", \"src/cli/tests_validate_core_1_b.rs\", \"src/cli/graph_advanced.rs\", \"src/cli/status_operational_ext2.rs\", \"src/cli/tests_misc_9.rs\", \"src/cli/tests_graph_core_1.rs\", \"src/cli/tests_init.rs\", \"src/cli/tests_cov_notify_4.rs\", \"src/cli/tests_apply_14.rs\", \"src/cli/tests_misc_4.rs\", \"src/cli/dispatch_apply.rs\", \"src/cli/tests_apply_4.rs\", \"src/cli/tests_status_core_8.rs\", \"src/cli/tests_apply_22.rs\", \"src/resources/network.rs\", \"benches/core_bench.rs\"])" + }, + { + "hypothesis": "Spec & Roadmap Quality", + "method": "SpecQuality", + "falsified": false, + "is_blocking": true, + "explanation": "No spec file found (optional)", + "evidence_summary": null + }, + { + "hypothesis": "All changes pushed", + "method": "GitHubSync", + "falsified": true, + "is_blocking": true, + "explanation": "9 uncommitted file(s)", + "evidence_summary": "GitState { unpushed_commits: 0, dirty_files: 9 }" + }, + { + "hypothesis": "All examples compile and run", + "method": "ExamplesCompile", + "falsified": false, + "is_blocking": true, + "explanation": "No examples cache (run 'cargo build --examples' to populate)", + "evidence_summary": null + }, + { + "hypothesis": "pmat-book validation passes", + "method": "BookValidation", + "falsified": false, + "is_blocking": true, + "explanation": "pmat-book not found (skipping validation)", + "evidence_summary": null + }, + { + "hypothesis": "No new SATD markers (TODO/FIXME/HACK)", + "method": "SatdDetection", + "falsified": false, + "is_blocking": true, + "explanation": "No new SATD markers (0 existing)", + "evidence_summary": null + }, + { + "hypothesis": "No new dead code introduced", + "method": "DeadCodeDetection", + "falsified": false, + "is_blocking": true, + "explanation": "No dead code detected", + "evidence_summary": null + }, + { + "hypothesis": "All files have >= 95% coverage", + "method": "PerFileCoverage", + "falsified": false, + "is_blocking": true, + "explanation": "No per-file coverage data (run 'make coverage'), threshold: 95.0%", + "evidence_summary": null + }, + { + "hypothesis": "make lint passes", + "method": "LintPass", + "falsified": true, + "is_blocking": true, + "explanation": "No lint cache. Run 'make lint' first (O(1) requirement)", + "evidence_summary": "BooleanCheck(false)" + }, + { + "hypothesis": "All match arm variants have test coverage", + "method": "VariantCoverage", + "falsified": true, + "is_blocking": true, + "explanation": "6 untested match variant(s): src/resources/package.rs::apt\", \"present, src/resources/package.rs::apt\", \"absent, src/resources/package.rs::cargo\", \"present, src/resources/package.rs::uv\", \"present, src/resources/package.rs::uv\", \"absent, src/resources/package.rs::other_provider, other_state", + "evidence_summary": "FileList([\"src/resources/package.rs\", \"src/resources/package.rs\", \"src/resources/package.rs\", \"src/resources/package.rs\", \"src/resources/package.rs\", \"src/resources/package.rs\"])" + }, + { + "hypothesis": "No fix-after-fix chains exceed limit", + "method": "FixChainLimit", + "falsified": false, + "is_blocking": true, + "explanation": "No fix chains > 3 consecutive commits", + "evidence_summary": null + }, + { + "hypothesis": "Cross-crate integration tests pass", + "method": "CrossCrateParity", + "falsified": false, + "is_blocking": false, + "explanation": "No cross-crate config (create .pmat-work/cross-crate.json to enable)", + "evidence_summary": null + }, + { + "hypothesis": "No performance regressions detected", + "method": "RegressionGate", + "falsified": false, + "is_blocking": false, + "explanation": "No benchmark cache (run benchmarks to populate .pmat-metrics/benchmark-status.json)", + "evidence_summary": null + }, + { + "hypothesis": "No incomplete proofs (sorry) introduced", + "method": "FormalProofVerification", + "falsified": false, + "is_blocking": false, + "explanation": "No .lean files with sorry found", + "evidence_summary": null + } + ], + "overrides": [ + { + "claim_id": "file-size", + "ticket": "PMAT-029", + "reason": "Override approved via --override-claims (ticket: PMAT-029)" + } + ], + "summary": { + "total": 22, + "passed": 17, + "failed": 5, + "warnings": 0, + "overridden": 1, + "allows_completion": false, + "health_score": 0.7727272727272727 + }, + "content_hash": "a15c3817028122cf60605553c3b799c25190d26098fc534ee16cf1901856db06" +} \ No newline at end of file diff --git a/.pmat-work/PMAT-028/falsification/receipt-2026-03-02T22-04-31.815641836+00-00.json b/.pmat-work/PMAT-028/falsification/receipt-2026-03-02T22-04-31.815641836+00-00.json new file mode 100644 index 00000000..d3b19003 --- /dev/null +++ b/.pmat-work/PMAT-028/falsification/receipt-2026-03-02T22-04-31.815641836+00-00.json @@ -0,0 +1,196 @@ +{ + "id": "019cb094-dcc7-7600-9c36-e3b7507047b0", + "git_sha": "b2cafb93396f6d3e03aab6137741b02967da11db", + "timestamp": "2026-03-02T22:04:31.815641836+00:00", + "trigger": "WorkComplete", + "work_item_id": "PMAT-028", + "verdicts": [ + { + "hypothesis": "All baseline files still exist", + "method": "ManifestIntegrity", + "falsified": false, + "is_blocking": true, + "explanation": "All 658 files present", + "evidence_summary": null + }, + { + "hypothesis": "The falsifier is active and detecting (Meta-Check)", + "method": "MetaFalsification", + "falsified": false, + "is_blocking": true, + "explanation": "Detected dummy gaming pattern correctly", + "evidence_summary": null + }, + { + "hypothesis": "No coverage exclusion gaming", + "method": "CoverageGaming", + "falsified": false, + "is_blocking": true, + "explanation": "No gaming patterns found in 668 files", + "evidence_summary": null + }, + { + "hypothesis": "All changed lines are covered", + "method": "DifferentialCoverage", + "falsified": false, + "is_blocking": true, + "explanation": "23 changed files (coverage check requires llvm-cov data)", + "evidence_summary": null + }, + { + "hypothesis": "Total coverage >= 95%", + "method": "AbsoluteCoverage", + "falsified": false, + "is_blocking": true, + "explanation": "No coverage data (run 'make coverage' to establish baseline), threshold: 95.0%", + "evidence_summary": null + }, + { + "hypothesis": "TDG score >= baseline", + "method": "TdgRegression", + "falsified": false, + "is_blocking": true, + "explanation": "No TDG data (baseline: 0.0)", + "evidence_summary": null + }, + { + "hypothesis": "No function exceeds complexity 20", + "method": "ComplexityRegression", + "falsified": false, + "is_blocking": true, + "explanation": "Complexity check passed", + "evidence_summary": null + }, + { + "hypothesis": "No vulnerable dependencies added", + "method": "SupplyChainIntegrity", + "falsified": false, + "is_blocking": true, + "explanation": "No vulnerabilities (cached 0 min ago)", + "evidence_summary": null + }, + { + "hypothesis": "No file exceeds 500 lines", + "method": "FileSizeRegression", + "falsified": true, + "is_blocking": true, + "explanation": "92 file(s) exceed 500 lines: src/core/scoring.rs (619 lines), src/core/executor/machine.rs (533 lines), src/core/planner/tests_hash.rs (503 lines), src/core/resolver/tests_resource.rs (560 lines), src/cli/tests_graph_core_2.rs (1041 lines), src/cli/graph_scoring.rs (655 lines), src/cli/status_resource_intel.rs (719 lines), src/cli/status_operational.rs (529 lines), src/cli/tests_apply_10.rs (583 lines), src/cli/tests_status_core_6.rs (705 lines), src/cli/status_security.rs (523 lines), src/cli/dispatch_notify.rs (728 lines), src/cli/commands/status_args.rs (676 lines), src/cli/commands/apply_args.rs (680 lines), src/cli/tests_cov_remaining_10.rs (559 lines), src/cli/status_fleet_insight.rs (706 lines), src/cli/tests_validate_core_2.rs (815 lines), src/cli/dispatch_validate.rs (1168 lines), src/cli/tests_cov_remaining_11.rs (710 lines), src/cli/tests_status_core_2.rs (707 lines), src/cli/status_intelligence.rs (656 lines), src/cli/dispatch_graph.rs (1142 lines), src/cli/tests_apply_9.rs (585 lines), src/cli/mod.rs (612 lines), src/cli/tests_misc_2.rs (517 lines), src/cli/tests_apply_11.rs (584 lines), src/cli/status_diagnostics.rs (578 lines), src/cli/tests_misc_6.rs (582 lines), src/cli/tests_apply_1.rs (514 lines), src/cli/tests_misc_10.rs (660 lines), src/cli/tests_cov_notify.rs (789 lines), src/cli/tests_status_core_5.rs (703 lines), src/cli/tests_validate_core.rs (511 lines), src/cli/graph_intelligence_ext.rs (759 lines), src/cli/tests_apply_20.rs (591 lines), src/cli/tests_cov_notify_2.rs (529 lines), src/cli/graph_quality.rs (506 lines), src/cli/tests_cov_fleet.rs (526 lines), src/cli/tests_graph_core_3.rs (757 lines), src/cli/tests_cov_dispatch_3.rs (501 lines), src/cli/validate_paths.rs (517 lines), src/cli/tests_apply_21.rs (591 lines), src/cli/dispatch_status.rs (1448 lines), src/cli/tests_status_core_7.rs (703 lines), src/cli/status_maturity.rs (857 lines), src/cli/tests_apply_18.rs (585 lines), src/cli/tests_status_core_1.rs (701 lines), src/cli/tests_apply_19.rs (589 lines), src/cli/tests_misc_8.rs (620 lines), src/cli/tests_apply_7.rs (585 lines), src/cli/tests_apply_5.rs (585 lines), src/cli/status_recovery.rs (677 lines), src/cli/graph_topology.rs (525 lines), src/cli/tests_status_core_4.rs (707 lines), src/cli/tests_apply_15.rs (584 lines), src/cli/tests_fleet_ops.rs (531 lines), src/cli/validate_ordering.rs (675 lines), src/cli/graph_intelligence_ext2.rs (643 lines), src/cli/tests_status_core_3.rs (705 lines), src/cli/tests_validate_core_1.rs (814 lines), src/cli/tests_status_core_9.rs (528 lines), src/cli/graph_intelligence.rs (591 lines), src/cli/tests_drift.rs (541 lines), src/cli/tests_apply_16.rs (585 lines), src/cli/validate_ownership.rs (610 lines), src/cli/tests_apply_8.rs (586 lines), src/cli/tests_cov_args_extra.rs (538 lines), src/cli/graph_export.rs (517 lines), src/cli/dispatch_status_ext.rs (637 lines), src/cli/tests_validate_core_2_b.rs (667 lines), src/cli/tests_apply_12.rs (584 lines), src/cli/status_intelligence_ext2.rs (624 lines), src/cli/status_intelligence_ext.rs (801 lines), src/cli/status_quality.rs (685 lines), src/cli/tests_apply_17.rs (586 lines), src/cli/status_resilience.rs (699 lines), src/cli/tests_apply_13.rs (584 lines), src/cli/tests_validate_core_1_b.rs (655 lines), src/cli/graph_advanced.rs (551 lines), src/cli/status_operational_ext2.rs (556 lines), src/cli/tests_misc_9.rs (621 lines), src/cli/tests_graph_core_1.rs (1033 lines), src/cli/tests_init.rs (553 lines), src/cli/tests_cov_notify_4.rs (504 lines), src/cli/tests_apply_14.rs (584 lines), src/cli/tests_misc_4.rs (521 lines), src/cli/dispatch_apply.rs (568 lines), src/cli/tests_apply_4.rs (585 lines), src/cli/tests_status_core_8.rs (704 lines), src/cli/tests_apply_22.rs (588 lines), src/resources/network.rs (535 lines), benches/core_bench.rs (610 lines)", + "evidence_summary": "FileList([\"src/core/scoring.rs\", \"src/core/executor/machine.rs\", \"src/core/planner/tests_hash.rs\", \"src/core/resolver/tests_resource.rs\", \"src/cli/tests_graph_core_2.rs\", \"src/cli/graph_scoring.rs\", \"src/cli/status_resource_intel.rs\", \"src/cli/status_operational.rs\", \"src/cli/tests_apply_10.rs\", \"src/cli/tests_status_core_6.rs\", \"src/cli/status_security.rs\", \"src/cli/dispatch_notify.rs\", \"src/cli/commands/status_args.rs\", \"src/cli/commands/apply_args.rs\", \"src/cli/tests_cov_remaining_10.rs\", \"src/cli/status_fleet_insight.rs\", \"src/cli/tests_validate_core_2.rs\", \"src/cli/dispatch_validate.rs\", \"src/cli/tests_cov_remaining_11.rs\", \"src/cli/tests_status_core_2.rs\", \"src/cli/status_intelligence.rs\", \"src/cli/dispatch_graph.rs\", \"src/cli/tests_apply_9.rs\", \"src/cli/mod.rs\", \"src/cli/tests_misc_2.rs\", \"src/cli/tests_apply_11.rs\", \"src/cli/status_diagnostics.rs\", \"src/cli/tests_misc_6.rs\", \"src/cli/tests_apply_1.rs\", \"src/cli/tests_misc_10.rs\", \"src/cli/tests_cov_notify.rs\", \"src/cli/tests_status_core_5.rs\", \"src/cli/tests_validate_core.rs\", \"src/cli/graph_intelligence_ext.rs\", \"src/cli/tests_apply_20.rs\", \"src/cli/tests_cov_notify_2.rs\", \"src/cli/graph_quality.rs\", \"src/cli/tests_cov_fleet.rs\", \"src/cli/tests_graph_core_3.rs\", \"src/cli/tests_cov_dispatch_3.rs\", \"src/cli/validate_paths.rs\", \"src/cli/tests_apply_21.rs\", \"src/cli/dispatch_status.rs\", \"src/cli/tests_status_core_7.rs\", \"src/cli/status_maturity.rs\", \"src/cli/tests_apply_18.rs\", \"src/cli/tests_status_core_1.rs\", \"src/cli/tests_apply_19.rs\", \"src/cli/tests_misc_8.rs\", \"src/cli/tests_apply_7.rs\", \"src/cli/tests_apply_5.rs\", \"src/cli/status_recovery.rs\", \"src/cli/graph_topology.rs\", \"src/cli/tests_status_core_4.rs\", \"src/cli/tests_apply_15.rs\", \"src/cli/tests_fleet_ops.rs\", \"src/cli/validate_ordering.rs\", \"src/cli/graph_intelligence_ext2.rs\", \"src/cli/tests_status_core_3.rs\", \"src/cli/tests_validate_core_1.rs\", \"src/cli/tests_status_core_9.rs\", \"src/cli/graph_intelligence.rs\", \"src/cli/tests_drift.rs\", \"src/cli/tests_apply_16.rs\", \"src/cli/validate_ownership.rs\", \"src/cli/tests_apply_8.rs\", \"src/cli/tests_cov_args_extra.rs\", \"src/cli/graph_export.rs\", \"src/cli/dispatch_status_ext.rs\", \"src/cli/tests_validate_core_2_b.rs\", \"src/cli/tests_apply_12.rs\", \"src/cli/status_intelligence_ext2.rs\", \"src/cli/status_intelligence_ext.rs\", \"src/cli/status_quality.rs\", \"src/cli/tests_apply_17.rs\", \"src/cli/status_resilience.rs\", \"src/cli/tests_apply_13.rs\", \"src/cli/tests_validate_core_1_b.rs\", \"src/cli/graph_advanced.rs\", \"src/cli/status_operational_ext2.rs\", \"src/cli/tests_misc_9.rs\", \"src/cli/tests_graph_core_1.rs\", \"src/cli/tests_init.rs\", \"src/cli/tests_cov_notify_4.rs\", \"src/cli/tests_apply_14.rs\", \"src/cli/tests_misc_4.rs\", \"src/cli/dispatch_apply.rs\", \"src/cli/tests_apply_4.rs\", \"src/cli/tests_status_core_8.rs\", \"src/cli/tests_apply_22.rs\", \"src/resources/network.rs\", \"benches/core_bench.rs\"])" + }, + { + "hypothesis": "Spec & Roadmap Quality", + "method": "SpecQuality", + "falsified": false, + "is_blocking": true, + "explanation": "No spec file found (optional)", + "evidence_summary": null + }, + { + "hypothesis": "All changes pushed", + "method": "GitHubSync", + "falsified": false, + "is_blocking": true, + "explanation": "All changes committed and pushed", + "evidence_summary": null + }, + { + "hypothesis": "All examples compile and run", + "method": "ExamplesCompile", + "falsified": false, + "is_blocking": true, + "explanation": "No examples cache (run 'cargo build --examples' to populate)", + "evidence_summary": null + }, + { + "hypothesis": "pmat-book validation passes", + "method": "BookValidation", + "falsified": false, + "is_blocking": true, + "explanation": "pmat-book not found (skipping validation)", + "evidence_summary": null + }, + { + "hypothesis": "No new SATD markers (TODO/FIXME/HACK)", + "method": "SatdDetection", + "falsified": false, + "is_blocking": true, + "explanation": "No new SATD markers (0 existing)", + "evidence_summary": null + }, + { + "hypothesis": "No new dead code introduced", + "method": "DeadCodeDetection", + "falsified": false, + "is_blocking": true, + "explanation": "No dead code detected", + "evidence_summary": null + }, + { + "hypothesis": "All files have >= 95% coverage", + "method": "PerFileCoverage", + "falsified": false, + "is_blocking": true, + "explanation": "No per-file coverage data (run 'make coverage'), threshold: 95.0%", + "evidence_summary": null + }, + { + "hypothesis": "make lint passes", + "method": "LintPass", + "falsified": false, + "is_blocking": true, + "explanation": "PASSED (cached 0 min ago)", + "evidence_summary": null + }, + { + "hypothesis": "All match arm variants have test coverage", + "method": "VariantCoverage", + "falsified": true, + "is_blocking": true, + "explanation": "6 untested match variant(s): src/resources/package.rs::apt\", \"present, src/resources/package.rs::apt\", \"absent, src/resources/package.rs::cargo\", \"present, src/resources/package.rs::uv\", \"present, src/resources/package.rs::uv\", \"absent, src/resources/package.rs::other_provider, other_state", + "evidence_summary": "FileList([\"src/resources/package.rs\", \"src/resources/package.rs\", \"src/resources/package.rs\", \"src/resources/package.rs\", \"src/resources/package.rs\", \"src/resources/package.rs\"])" + }, + { + "hypothesis": "No fix-after-fix chains exceed limit", + "method": "FixChainLimit", + "falsified": false, + "is_blocking": true, + "explanation": "No fix chains > 3 consecutive commits", + "evidence_summary": null + }, + { + "hypothesis": "Cross-crate integration tests pass", + "method": "CrossCrateParity", + "falsified": false, + "is_blocking": false, + "explanation": "No cross-crate config (create .pmat-work/cross-crate.json to enable)", + "evidence_summary": null + }, + { + "hypothesis": "No performance regressions detected", + "method": "RegressionGate", + "falsified": false, + "is_blocking": false, + "explanation": "No benchmark cache (run benchmarks to populate .pmat-metrics/benchmark-status.json)", + "evidence_summary": null + }, + { + "hypothesis": "No incomplete proofs (sorry) introduced", + "method": "FormalProofVerification", + "falsified": false, + "is_blocking": false, + "explanation": "No .lean files with sorry found", + "evidence_summary": null + } + ], + "overrides": [], + "summary": { + "total": 22, + "passed": 20, + "failed": 2, + "warnings": 0, + "overridden": 0, + "allows_completion": false, + "health_score": 0.9090909090909091 + }, + "content_hash": "f4c8fa6858be7b63c80338dc4a3d31a91740854c5079810a732aeb47a64c09bb" +} \ No newline at end of file diff --git a/.pmat-work/PMAT-028/falsification/receipt-2026-03-02T22-05-13.140306394+00-00.json b/.pmat-work/PMAT-028/falsification/receipt-2026-03-02T22-05-13.140306394+00-00.json new file mode 100644 index 00000000..9f84a2c1 --- /dev/null +++ b/.pmat-work/PMAT-028/falsification/receipt-2026-03-02T22-05-13.140306394+00-00.json @@ -0,0 +1,202 @@ +{ + "id": "019cb095-7e34-78d3-807a-cd314b8c89ab", + "git_sha": "b2cafb93396f6d3e03aab6137741b02967da11db", + "timestamp": "2026-03-02T22:05:13.140306394+00:00", + "trigger": "WorkComplete", + "work_item_id": "PMAT-028", + "verdicts": [ + { + "hypothesis": "All baseline files still exist", + "method": "ManifestIntegrity", + "falsified": false, + "is_blocking": true, + "explanation": "All 658 files present", + "evidence_summary": null + }, + { + "hypothesis": "The falsifier is active and detecting (Meta-Check)", + "method": "MetaFalsification", + "falsified": false, + "is_blocking": true, + "explanation": "Detected dummy gaming pattern correctly", + "evidence_summary": null + }, + { + "hypothesis": "No coverage exclusion gaming", + "method": "CoverageGaming", + "falsified": false, + "is_blocking": true, + "explanation": "No gaming patterns found in 668 files", + "evidence_summary": null + }, + { + "hypothesis": "All changed lines are covered", + "method": "DifferentialCoverage", + "falsified": false, + "is_blocking": true, + "explanation": "23 changed files (coverage check requires llvm-cov data)", + "evidence_summary": null + }, + { + "hypothesis": "Total coverage >= 95%", + "method": "AbsoluteCoverage", + "falsified": false, + "is_blocking": true, + "explanation": "No coverage data (run 'make coverage' to establish baseline), threshold: 95.0%", + "evidence_summary": null + }, + { + "hypothesis": "TDG score >= baseline", + "method": "TdgRegression", + "falsified": false, + "is_blocking": true, + "explanation": "No TDG data (baseline: 0.0)", + "evidence_summary": null + }, + { + "hypothesis": "No function exceeds complexity 20", + "method": "ComplexityRegression", + "falsified": false, + "is_blocking": true, + "explanation": "Complexity check passed", + "evidence_summary": null + }, + { + "hypothesis": "No vulnerable dependencies added", + "method": "SupplyChainIntegrity", + "falsified": false, + "is_blocking": true, + "explanation": "No vulnerabilities (cached 1 min ago)", + "evidence_summary": null + }, + { + "hypothesis": "No file exceeds 500 lines", + "method": "FileSizeRegression", + "falsified": true, + "is_blocking": true, + "explanation": "92 file(s) exceed 500 lines: src/core/scoring.rs (619 lines), src/core/executor/machine.rs (533 lines), src/core/planner/tests_hash.rs (503 lines), src/core/resolver/tests_resource.rs (560 lines), src/cli/tests_graph_core_2.rs (1041 lines), src/cli/graph_scoring.rs (655 lines), src/cli/status_resource_intel.rs (719 lines), src/cli/status_operational.rs (529 lines), src/cli/tests_apply_10.rs (583 lines), src/cli/tests_status_core_6.rs (705 lines), src/cli/status_security.rs (523 lines), src/cli/dispatch_notify.rs (728 lines), src/cli/commands/status_args.rs (676 lines), src/cli/commands/apply_args.rs (680 lines), src/cli/tests_cov_remaining_10.rs (559 lines), src/cli/status_fleet_insight.rs (706 lines), src/cli/tests_validate_core_2.rs (815 lines), src/cli/dispatch_validate.rs (1168 lines), src/cli/tests_cov_remaining_11.rs (710 lines), src/cli/tests_status_core_2.rs (707 lines), src/cli/status_intelligence.rs (656 lines), src/cli/dispatch_graph.rs (1142 lines), src/cli/tests_apply_9.rs (585 lines), src/cli/mod.rs (612 lines), src/cli/tests_misc_2.rs (517 lines), src/cli/tests_apply_11.rs (584 lines), src/cli/status_diagnostics.rs (578 lines), src/cli/tests_misc_6.rs (582 lines), src/cli/tests_apply_1.rs (514 lines), src/cli/tests_misc_10.rs (660 lines), src/cli/tests_cov_notify.rs (789 lines), src/cli/tests_status_core_5.rs (703 lines), src/cli/tests_validate_core.rs (511 lines), src/cli/graph_intelligence_ext.rs (759 lines), src/cli/tests_apply_20.rs (591 lines), src/cli/tests_cov_notify_2.rs (529 lines), src/cli/graph_quality.rs (506 lines), src/cli/tests_cov_fleet.rs (526 lines), src/cli/tests_graph_core_3.rs (757 lines), src/cli/tests_cov_dispatch_3.rs (501 lines), src/cli/validate_paths.rs (517 lines), src/cli/tests_apply_21.rs (591 lines), src/cli/dispatch_status.rs (1448 lines), src/cli/tests_status_core_7.rs (703 lines), src/cli/status_maturity.rs (857 lines), src/cli/tests_apply_18.rs (585 lines), src/cli/tests_status_core_1.rs (701 lines), src/cli/tests_apply_19.rs (589 lines), src/cli/tests_misc_8.rs (620 lines), src/cli/tests_apply_7.rs (585 lines), src/cli/tests_apply_5.rs (585 lines), src/cli/status_recovery.rs (677 lines), src/cli/graph_topology.rs (525 lines), src/cli/tests_status_core_4.rs (707 lines), src/cli/tests_apply_15.rs (584 lines), src/cli/tests_fleet_ops.rs (531 lines), src/cli/validate_ordering.rs (675 lines), src/cli/graph_intelligence_ext2.rs (643 lines), src/cli/tests_status_core_3.rs (705 lines), src/cli/tests_validate_core_1.rs (814 lines), src/cli/tests_status_core_9.rs (528 lines), src/cli/graph_intelligence.rs (591 lines), src/cli/tests_drift.rs (541 lines), src/cli/tests_apply_16.rs (585 lines), src/cli/validate_ownership.rs (610 lines), src/cli/tests_apply_8.rs (586 lines), src/cli/tests_cov_args_extra.rs (538 lines), src/cli/graph_export.rs (517 lines), src/cli/dispatch_status_ext.rs (637 lines), src/cli/tests_validate_core_2_b.rs (667 lines), src/cli/tests_apply_12.rs (584 lines), src/cli/status_intelligence_ext2.rs (624 lines), src/cli/status_intelligence_ext.rs (801 lines), src/cli/status_quality.rs (685 lines), src/cli/tests_apply_17.rs (586 lines), src/cli/status_resilience.rs (699 lines), src/cli/tests_apply_13.rs (584 lines), src/cli/tests_validate_core_1_b.rs (655 lines), src/cli/graph_advanced.rs (551 lines), src/cli/status_operational_ext2.rs (556 lines), src/cli/tests_misc_9.rs (621 lines), src/cli/tests_graph_core_1.rs (1033 lines), src/cli/tests_init.rs (553 lines), src/cli/tests_cov_notify_4.rs (504 lines), src/cli/tests_apply_14.rs (584 lines), src/cli/tests_misc_4.rs (521 lines), src/cli/dispatch_apply.rs (568 lines), src/cli/tests_apply_4.rs (585 lines), src/cli/tests_status_core_8.rs (704 lines), src/cli/tests_apply_22.rs (588 lines), src/resources/network.rs (535 lines), benches/core_bench.rs (610 lines)", + "evidence_summary": "FileList([\"src/core/scoring.rs\", \"src/core/executor/machine.rs\", \"src/core/planner/tests_hash.rs\", \"src/core/resolver/tests_resource.rs\", \"src/cli/tests_graph_core_2.rs\", \"src/cli/graph_scoring.rs\", \"src/cli/status_resource_intel.rs\", \"src/cli/status_operational.rs\", \"src/cli/tests_apply_10.rs\", \"src/cli/tests_status_core_6.rs\", \"src/cli/status_security.rs\", \"src/cli/dispatch_notify.rs\", \"src/cli/commands/status_args.rs\", \"src/cli/commands/apply_args.rs\", \"src/cli/tests_cov_remaining_10.rs\", \"src/cli/status_fleet_insight.rs\", \"src/cli/tests_validate_core_2.rs\", \"src/cli/dispatch_validate.rs\", \"src/cli/tests_cov_remaining_11.rs\", \"src/cli/tests_status_core_2.rs\", \"src/cli/status_intelligence.rs\", \"src/cli/dispatch_graph.rs\", \"src/cli/tests_apply_9.rs\", \"src/cli/mod.rs\", \"src/cli/tests_misc_2.rs\", \"src/cli/tests_apply_11.rs\", \"src/cli/status_diagnostics.rs\", \"src/cli/tests_misc_6.rs\", \"src/cli/tests_apply_1.rs\", \"src/cli/tests_misc_10.rs\", \"src/cli/tests_cov_notify.rs\", \"src/cli/tests_status_core_5.rs\", \"src/cli/tests_validate_core.rs\", \"src/cli/graph_intelligence_ext.rs\", \"src/cli/tests_apply_20.rs\", \"src/cli/tests_cov_notify_2.rs\", \"src/cli/graph_quality.rs\", \"src/cli/tests_cov_fleet.rs\", \"src/cli/tests_graph_core_3.rs\", \"src/cli/tests_cov_dispatch_3.rs\", \"src/cli/validate_paths.rs\", \"src/cli/tests_apply_21.rs\", \"src/cli/dispatch_status.rs\", \"src/cli/tests_status_core_7.rs\", \"src/cli/status_maturity.rs\", \"src/cli/tests_apply_18.rs\", \"src/cli/tests_status_core_1.rs\", \"src/cli/tests_apply_19.rs\", \"src/cli/tests_misc_8.rs\", \"src/cli/tests_apply_7.rs\", \"src/cli/tests_apply_5.rs\", \"src/cli/status_recovery.rs\", \"src/cli/graph_topology.rs\", \"src/cli/tests_status_core_4.rs\", \"src/cli/tests_apply_15.rs\", \"src/cli/tests_fleet_ops.rs\", \"src/cli/validate_ordering.rs\", \"src/cli/graph_intelligence_ext2.rs\", \"src/cli/tests_status_core_3.rs\", \"src/cli/tests_validate_core_1.rs\", \"src/cli/tests_status_core_9.rs\", \"src/cli/graph_intelligence.rs\", \"src/cli/tests_drift.rs\", \"src/cli/tests_apply_16.rs\", \"src/cli/validate_ownership.rs\", \"src/cli/tests_apply_8.rs\", \"src/cli/tests_cov_args_extra.rs\", \"src/cli/graph_export.rs\", \"src/cli/dispatch_status_ext.rs\", \"src/cli/tests_validate_core_2_b.rs\", \"src/cli/tests_apply_12.rs\", \"src/cli/status_intelligence_ext2.rs\", \"src/cli/status_intelligence_ext.rs\", \"src/cli/status_quality.rs\", \"src/cli/tests_apply_17.rs\", \"src/cli/status_resilience.rs\", \"src/cli/tests_apply_13.rs\", \"src/cli/tests_validate_core_1_b.rs\", \"src/cli/graph_advanced.rs\", \"src/cli/status_operational_ext2.rs\", \"src/cli/tests_misc_9.rs\", \"src/cli/tests_graph_core_1.rs\", \"src/cli/tests_init.rs\", \"src/cli/tests_cov_notify_4.rs\", \"src/cli/tests_apply_14.rs\", \"src/cli/tests_misc_4.rs\", \"src/cli/dispatch_apply.rs\", \"src/cli/tests_apply_4.rs\", \"src/cli/tests_status_core_8.rs\", \"src/cli/tests_apply_22.rs\", \"src/resources/network.rs\", \"benches/core_bench.rs\"])" + }, + { + "hypothesis": "Spec & Roadmap Quality", + "method": "SpecQuality", + "falsified": false, + "is_blocking": true, + "explanation": "No spec file found (optional)", + "evidence_summary": null + }, + { + "hypothesis": "All changes pushed", + "method": "GitHubSync", + "falsified": true, + "is_blocking": true, + "explanation": "4 uncommitted file(s)", + "evidence_summary": "GitState { unpushed_commits: 0, dirty_files: 4 }" + }, + { + "hypothesis": "All examples compile and run", + "method": "ExamplesCompile", + "falsified": false, + "is_blocking": true, + "explanation": "No examples cache (run 'cargo build --examples' to populate)", + "evidence_summary": null + }, + { + "hypothesis": "pmat-book validation passes", + "method": "BookValidation", + "falsified": false, + "is_blocking": true, + "explanation": "pmat-book not found (skipping validation)", + "evidence_summary": null + }, + { + "hypothesis": "No new SATD markers (TODO/FIXME/HACK)", + "method": "SatdDetection", + "falsified": false, + "is_blocking": true, + "explanation": "No new SATD markers (0 existing)", + "evidence_summary": null + }, + { + "hypothesis": "No new dead code introduced", + "method": "DeadCodeDetection", + "falsified": false, + "is_blocking": true, + "explanation": "No dead code detected", + "evidence_summary": null + }, + { + "hypothesis": "All files have >= 95% coverage", + "method": "PerFileCoverage", + "falsified": false, + "is_blocking": true, + "explanation": "No per-file coverage data (run 'make coverage'), threshold: 95.0%", + "evidence_summary": null + }, + { + "hypothesis": "make lint passes", + "method": "LintPass", + "falsified": false, + "is_blocking": true, + "explanation": "PASSED (cached 1 min ago)", + "evidence_summary": null + }, + { + "hypothesis": "All match arm variants have test coverage", + "method": "VariantCoverage", + "falsified": true, + "is_blocking": true, + "explanation": "6 untested match variant(s): src/resources/package.rs::apt\", \"present, src/resources/package.rs::apt\", \"absent, src/resources/package.rs::cargo\", \"present, src/resources/package.rs::uv\", \"present, src/resources/package.rs::uv\", \"absent, src/resources/package.rs::other_provider, other_state", + "evidence_summary": "FileList([\"src/resources/package.rs\", \"src/resources/package.rs\", \"src/resources/package.rs\", \"src/resources/package.rs\", \"src/resources/package.rs\", \"src/resources/package.rs\"])" + }, + { + "hypothesis": "No fix-after-fix chains exceed limit", + "method": "FixChainLimit", + "falsified": false, + "is_blocking": true, + "explanation": "No fix chains > 3 consecutive commits", + "evidence_summary": null + }, + { + "hypothesis": "Cross-crate integration tests pass", + "method": "CrossCrateParity", + "falsified": false, + "is_blocking": false, + "explanation": "No cross-crate config (create .pmat-work/cross-crate.json to enable)", + "evidence_summary": null + }, + { + "hypothesis": "No performance regressions detected", + "method": "RegressionGate", + "falsified": false, + "is_blocking": false, + "explanation": "No benchmark cache (run benchmarks to populate .pmat-metrics/benchmark-status.json)", + "evidence_summary": null + }, + { + "hypothesis": "No incomplete proofs (sorry) introduced", + "method": "FormalProofVerification", + "falsified": false, + "is_blocking": false, + "explanation": "No .lean files with sorry found", + "evidence_summary": null + } + ], + "overrides": [ + { + "claim_id": "file-size", + "ticket": "PMAT-029", + "reason": "Override approved via --override-claims (ticket: PMAT-029)" + } + ], + "summary": { + "total": 22, + "passed": 19, + "failed": 3, + "warnings": 0, + "overridden": 1, + "allows_completion": false, + "health_score": 0.8636363636363636 + }, + "content_hash": "5ec962267878bf515a42fd5a55e28d5c1e8e57eae36141dc2f3d2b7e68e24bc4" +} \ No newline at end of file diff --git a/.pmat-work/PMAT-028/falsification/receipt-2026-03-02T22-06-09.301266287+00-00.json b/.pmat-work/PMAT-028/falsification/receipt-2026-03-02T22-06-09.301266287+00-00.json new file mode 100644 index 00000000..64f96299 --- /dev/null +++ b/.pmat-work/PMAT-028/falsification/receipt-2026-03-02T22-06-09.301266287+00-00.json @@ -0,0 +1,202 @@ +{ + "id": "019cb096-5995-79e3-92d7-f965c0d3d6c3", + "git_sha": "f4a4cf135492461bd3d230d5a163d286bcaeb8a1", + "timestamp": "2026-03-02T22:06:09.301266287+00:00", + "trigger": "WorkComplete", + "work_item_id": "PMAT-028", + "verdicts": [ + { + "hypothesis": "All baseline files still exist", + "method": "ManifestIntegrity", + "falsified": false, + "is_blocking": true, + "explanation": "All 658 files present", + "evidence_summary": null + }, + { + "hypothesis": "The falsifier is active and detecting (Meta-Check)", + "method": "MetaFalsification", + "falsified": false, + "is_blocking": true, + "explanation": "Detected dummy gaming pattern correctly", + "evidence_summary": null + }, + { + "hypothesis": "No coverage exclusion gaming", + "method": "CoverageGaming", + "falsified": false, + "is_blocking": true, + "explanation": "No gaming patterns found in 668 files", + "evidence_summary": null + }, + { + "hypothesis": "All changed lines are covered", + "method": "DifferentialCoverage", + "falsified": false, + "is_blocking": true, + "explanation": "23 changed files (coverage check requires llvm-cov data)", + "evidence_summary": null + }, + { + "hypothesis": "Total coverage >= 95%", + "method": "AbsoluteCoverage", + "falsified": false, + "is_blocking": true, + "explanation": "No coverage data (run 'make coverage' to establish baseline), threshold: 95.0%", + "evidence_summary": null + }, + { + "hypothesis": "TDG score >= baseline", + "method": "TdgRegression", + "falsified": false, + "is_blocking": true, + "explanation": "No TDG data (baseline: 0.0)", + "evidence_summary": null + }, + { + "hypothesis": "No function exceeds complexity 20", + "method": "ComplexityRegression", + "falsified": false, + "is_blocking": true, + "explanation": "Complexity check passed", + "evidence_summary": null + }, + { + "hypothesis": "No vulnerable dependencies added", + "method": "SupplyChainIntegrity", + "falsified": false, + "is_blocking": true, + "explanation": "No vulnerabilities (cached 2 min ago)", + "evidence_summary": null + }, + { + "hypothesis": "No file exceeds 500 lines", + "method": "FileSizeRegression", + "falsified": true, + "is_blocking": true, + "explanation": "92 file(s) exceed 500 lines: src/core/scoring.rs (619 lines), src/core/executor/machine.rs (533 lines), src/core/planner/tests_hash.rs (503 lines), src/core/resolver/tests_resource.rs (560 lines), src/cli/tests_graph_core_2.rs (1041 lines), src/cli/graph_scoring.rs (655 lines), src/cli/status_resource_intel.rs (719 lines), src/cli/status_operational.rs (529 lines), src/cli/tests_apply_10.rs (583 lines), src/cli/tests_status_core_6.rs (705 lines), src/cli/status_security.rs (523 lines), src/cli/dispatch_notify.rs (728 lines), src/cli/commands/status_args.rs (676 lines), src/cli/commands/apply_args.rs (680 lines), src/cli/tests_cov_remaining_10.rs (559 lines), src/cli/status_fleet_insight.rs (706 lines), src/cli/tests_validate_core_2.rs (815 lines), src/cli/dispatch_validate.rs (1168 lines), src/cli/tests_cov_remaining_11.rs (710 lines), src/cli/tests_status_core_2.rs (707 lines), src/cli/status_intelligence.rs (656 lines), src/cli/dispatch_graph.rs (1142 lines), src/cli/tests_apply_9.rs (585 lines), src/cli/mod.rs (612 lines), src/cli/tests_misc_2.rs (517 lines), src/cli/tests_apply_11.rs (584 lines), src/cli/status_diagnostics.rs (578 lines), src/cli/tests_misc_6.rs (582 lines), src/cli/tests_apply_1.rs (514 lines), src/cli/tests_misc_10.rs (660 lines), src/cli/tests_cov_notify.rs (789 lines), src/cli/tests_status_core_5.rs (703 lines), src/cli/tests_validate_core.rs (511 lines), src/cli/graph_intelligence_ext.rs (759 lines), src/cli/tests_apply_20.rs (591 lines), src/cli/tests_cov_notify_2.rs (529 lines), src/cli/graph_quality.rs (506 lines), src/cli/tests_cov_fleet.rs (526 lines), src/cli/tests_graph_core_3.rs (757 lines), src/cli/tests_cov_dispatch_3.rs (501 lines), src/cli/validate_paths.rs (517 lines), src/cli/tests_apply_21.rs (591 lines), src/cli/dispatch_status.rs (1448 lines), src/cli/tests_status_core_7.rs (703 lines), src/cli/status_maturity.rs (857 lines), src/cli/tests_apply_18.rs (585 lines), src/cli/tests_status_core_1.rs (701 lines), src/cli/tests_apply_19.rs (589 lines), src/cli/tests_misc_8.rs (620 lines), src/cli/tests_apply_7.rs (585 lines), src/cli/tests_apply_5.rs (585 lines), src/cli/status_recovery.rs (677 lines), src/cli/graph_topology.rs (525 lines), src/cli/tests_status_core_4.rs (707 lines), src/cli/tests_apply_15.rs (584 lines), src/cli/tests_fleet_ops.rs (531 lines), src/cli/validate_ordering.rs (675 lines), src/cli/graph_intelligence_ext2.rs (643 lines), src/cli/tests_status_core_3.rs (705 lines), src/cli/tests_validate_core_1.rs (814 lines), src/cli/tests_status_core_9.rs (528 lines), src/cli/graph_intelligence.rs (591 lines), src/cli/tests_drift.rs (541 lines), src/cli/tests_apply_16.rs (585 lines), src/cli/validate_ownership.rs (610 lines), src/cli/tests_apply_8.rs (586 lines), src/cli/tests_cov_args_extra.rs (538 lines), src/cli/graph_export.rs (517 lines), src/cli/dispatch_status_ext.rs (637 lines), src/cli/tests_validate_core_2_b.rs (667 lines), src/cli/tests_apply_12.rs (584 lines), src/cli/status_intelligence_ext2.rs (624 lines), src/cli/status_intelligence_ext.rs (801 lines), src/cli/status_quality.rs (685 lines), src/cli/tests_apply_17.rs (586 lines), src/cli/status_resilience.rs (699 lines), src/cli/tests_apply_13.rs (584 lines), src/cli/tests_validate_core_1_b.rs (655 lines), src/cli/graph_advanced.rs (551 lines), src/cli/status_operational_ext2.rs (556 lines), src/cli/tests_misc_9.rs (621 lines), src/cli/tests_graph_core_1.rs (1033 lines), src/cli/tests_init.rs (553 lines), src/cli/tests_cov_notify_4.rs (504 lines), src/cli/tests_apply_14.rs (584 lines), src/cli/tests_misc_4.rs (521 lines), src/cli/dispatch_apply.rs (568 lines), src/cli/tests_apply_4.rs (585 lines), src/cli/tests_status_core_8.rs (704 lines), src/cli/tests_apply_22.rs (588 lines), src/resources/network.rs (535 lines), benches/core_bench.rs (610 lines)", + "evidence_summary": "FileList([\"src/core/scoring.rs\", \"src/core/executor/machine.rs\", \"src/core/planner/tests_hash.rs\", \"src/core/resolver/tests_resource.rs\", \"src/cli/tests_graph_core_2.rs\", \"src/cli/graph_scoring.rs\", \"src/cli/status_resource_intel.rs\", \"src/cli/status_operational.rs\", \"src/cli/tests_apply_10.rs\", \"src/cli/tests_status_core_6.rs\", \"src/cli/status_security.rs\", \"src/cli/dispatch_notify.rs\", \"src/cli/commands/status_args.rs\", \"src/cli/commands/apply_args.rs\", \"src/cli/tests_cov_remaining_10.rs\", \"src/cli/status_fleet_insight.rs\", \"src/cli/tests_validate_core_2.rs\", \"src/cli/dispatch_validate.rs\", \"src/cli/tests_cov_remaining_11.rs\", \"src/cli/tests_status_core_2.rs\", \"src/cli/status_intelligence.rs\", \"src/cli/dispatch_graph.rs\", \"src/cli/tests_apply_9.rs\", \"src/cli/mod.rs\", \"src/cli/tests_misc_2.rs\", \"src/cli/tests_apply_11.rs\", \"src/cli/status_diagnostics.rs\", \"src/cli/tests_misc_6.rs\", \"src/cli/tests_apply_1.rs\", \"src/cli/tests_misc_10.rs\", \"src/cli/tests_cov_notify.rs\", \"src/cli/tests_status_core_5.rs\", \"src/cli/tests_validate_core.rs\", \"src/cli/graph_intelligence_ext.rs\", \"src/cli/tests_apply_20.rs\", \"src/cli/tests_cov_notify_2.rs\", \"src/cli/graph_quality.rs\", \"src/cli/tests_cov_fleet.rs\", \"src/cli/tests_graph_core_3.rs\", \"src/cli/tests_cov_dispatch_3.rs\", \"src/cli/validate_paths.rs\", \"src/cli/tests_apply_21.rs\", \"src/cli/dispatch_status.rs\", \"src/cli/tests_status_core_7.rs\", \"src/cli/status_maturity.rs\", \"src/cli/tests_apply_18.rs\", \"src/cli/tests_status_core_1.rs\", \"src/cli/tests_apply_19.rs\", \"src/cli/tests_misc_8.rs\", \"src/cli/tests_apply_7.rs\", \"src/cli/tests_apply_5.rs\", \"src/cli/status_recovery.rs\", \"src/cli/graph_topology.rs\", \"src/cli/tests_status_core_4.rs\", \"src/cli/tests_apply_15.rs\", \"src/cli/tests_fleet_ops.rs\", \"src/cli/validate_ordering.rs\", \"src/cli/graph_intelligence_ext2.rs\", \"src/cli/tests_status_core_3.rs\", \"src/cli/tests_validate_core_1.rs\", \"src/cli/tests_status_core_9.rs\", \"src/cli/graph_intelligence.rs\", \"src/cli/tests_drift.rs\", \"src/cli/tests_apply_16.rs\", \"src/cli/validate_ownership.rs\", \"src/cli/tests_apply_8.rs\", \"src/cli/tests_cov_args_extra.rs\", \"src/cli/graph_export.rs\", \"src/cli/dispatch_status_ext.rs\", \"src/cli/tests_validate_core_2_b.rs\", \"src/cli/tests_apply_12.rs\", \"src/cli/status_intelligence_ext2.rs\", \"src/cli/status_intelligence_ext.rs\", \"src/cli/status_quality.rs\", \"src/cli/tests_apply_17.rs\", \"src/cli/status_resilience.rs\", \"src/cli/tests_apply_13.rs\", \"src/cli/tests_validate_core_1_b.rs\", \"src/cli/graph_advanced.rs\", \"src/cli/status_operational_ext2.rs\", \"src/cli/tests_misc_9.rs\", \"src/cli/tests_graph_core_1.rs\", \"src/cli/tests_init.rs\", \"src/cli/tests_cov_notify_4.rs\", \"src/cli/tests_apply_14.rs\", \"src/cli/tests_misc_4.rs\", \"src/cli/dispatch_apply.rs\", \"src/cli/tests_apply_4.rs\", \"src/cli/tests_status_core_8.rs\", \"src/cli/tests_apply_22.rs\", \"src/resources/network.rs\", \"benches/core_bench.rs\"])" + }, + { + "hypothesis": "Spec & Roadmap Quality", + "method": "SpecQuality", + "falsified": false, + "is_blocking": true, + "explanation": "No spec file found (optional)", + "evidence_summary": null + }, + { + "hypothesis": "All changes pushed", + "method": "GitHubSync", + "falsified": true, + "is_blocking": true, + "explanation": "2 uncommitted file(s)", + "evidence_summary": "GitState { unpushed_commits: 0, dirty_files: 2 }" + }, + { + "hypothesis": "All examples compile and run", + "method": "ExamplesCompile", + "falsified": false, + "is_blocking": true, + "explanation": "No examples cache (run 'cargo build --examples' to populate)", + "evidence_summary": null + }, + { + "hypothesis": "pmat-book validation passes", + "method": "BookValidation", + "falsified": false, + "is_blocking": true, + "explanation": "pmat-book not found (skipping validation)", + "evidence_summary": null + }, + { + "hypothesis": "No new SATD markers (TODO/FIXME/HACK)", + "method": "SatdDetection", + "falsified": false, + "is_blocking": true, + "explanation": "No new SATD markers (0 existing)", + "evidence_summary": null + }, + { + "hypothesis": "No new dead code introduced", + "method": "DeadCodeDetection", + "falsified": false, + "is_blocking": true, + "explanation": "No dead code detected", + "evidence_summary": null + }, + { + "hypothesis": "All files have >= 95% coverage", + "method": "PerFileCoverage", + "falsified": false, + "is_blocking": true, + "explanation": "No per-file coverage data (run 'make coverage'), threshold: 95.0%", + "evidence_summary": null + }, + { + "hypothesis": "make lint passes", + "method": "LintPass", + "falsified": false, + "is_blocking": true, + "explanation": "PASSED (cached 2 min ago)", + "evidence_summary": null + }, + { + "hypothesis": "All match arm variants have test coverage", + "method": "VariantCoverage", + "falsified": true, + "is_blocking": true, + "explanation": "6 untested match variant(s): src/resources/package.rs::apt\", \"present, src/resources/package.rs::apt\", \"absent, src/resources/package.rs::cargo\", \"present, src/resources/package.rs::uv\", \"present, src/resources/package.rs::uv\", \"absent, src/resources/package.rs::other_provider, other_state", + "evidence_summary": "FileList([\"src/resources/package.rs\", \"src/resources/package.rs\", \"src/resources/package.rs\", \"src/resources/package.rs\", \"src/resources/package.rs\", \"src/resources/package.rs\"])" + }, + { + "hypothesis": "No fix-after-fix chains exceed limit", + "method": "FixChainLimit", + "falsified": false, + "is_blocking": true, + "explanation": "No fix chains > 3 consecutive commits", + "evidence_summary": null + }, + { + "hypothesis": "Cross-crate integration tests pass", + "method": "CrossCrateParity", + "falsified": false, + "is_blocking": false, + "explanation": "No cross-crate config (create .pmat-work/cross-crate.json to enable)", + "evidence_summary": null + }, + { + "hypothesis": "No performance regressions detected", + "method": "RegressionGate", + "falsified": false, + "is_blocking": false, + "explanation": "No benchmark cache (run benchmarks to populate .pmat-metrics/benchmark-status.json)", + "evidence_summary": null + }, + { + "hypothesis": "No incomplete proofs (sorry) introduced", + "method": "FormalProofVerification", + "falsified": false, + "is_blocking": false, + "explanation": "No .lean files with sorry found", + "evidence_summary": null + } + ], + "overrides": [ + { + "claim_id": "file-size", + "ticket": "PMAT-029", + "reason": "Override approved via --override-claims (ticket: PMAT-029)" + } + ], + "summary": { + "total": 22, + "passed": 19, + "failed": 3, + "warnings": 0, + "overridden": 1, + "allows_completion": false, + "health_score": 0.8636363636363636 + }, + "content_hash": "368750ad348c39ea672b35ca40dfbf3784574d00dc064dc040936e9effac3536" +} \ No newline at end of file diff --git a/.pmat-work/PMAT-028/falsification/receipt-2026-03-02T22-07-51.751464363+00-00.json b/.pmat-work/PMAT-028/falsification/receipt-2026-03-02T22-07-51.751464363+00-00.json new file mode 100644 index 00000000..f0091970 --- /dev/null +++ b/.pmat-work/PMAT-028/falsification/receipt-2026-03-02T22-07-51.751464363+00-00.json @@ -0,0 +1,196 @@ +{ + "id": "019cb097-e9c7-7ed0-8103-d6125cf103e3", + "git_sha": "b49ff3d4c40ffe0ce3b24d098b95df8b1b2e94cd", + "timestamp": "2026-03-02T22:07:51.751464363+00:00", + "trigger": "WorkComplete", + "work_item_id": "PMAT-028", + "verdicts": [ + { + "hypothesis": "All baseline files still exist", + "method": "ManifestIntegrity", + "falsified": false, + "is_blocking": true, + "explanation": "All 658 files present", + "evidence_summary": null + }, + { + "hypothesis": "The falsifier is active and detecting (Meta-Check)", + "method": "MetaFalsification", + "falsified": false, + "is_blocking": true, + "explanation": "Detected dummy gaming pattern correctly", + "evidence_summary": null + }, + { + "hypothesis": "No coverage exclusion gaming", + "method": "CoverageGaming", + "falsified": false, + "is_blocking": true, + "explanation": "No gaming patterns found in 668 files", + "evidence_summary": null + }, + { + "hypothesis": "All changed lines are covered", + "method": "DifferentialCoverage", + "falsified": false, + "is_blocking": true, + "explanation": "23 changed files (coverage check requires llvm-cov data)", + "evidence_summary": null + }, + { + "hypothesis": "Total coverage >= 95%", + "method": "AbsoluteCoverage", + "falsified": false, + "is_blocking": true, + "explanation": "No coverage data (run 'make coverage' to establish baseline), threshold: 95.0%", + "evidence_summary": null + }, + { + "hypothesis": "TDG score >= baseline", + "method": "TdgRegression", + "falsified": false, + "is_blocking": true, + "explanation": "No TDG data (baseline: 0.0)", + "evidence_summary": null + }, + { + "hypothesis": "No function exceeds complexity 20", + "method": "ComplexityRegression", + "falsified": false, + "is_blocking": true, + "explanation": "Complexity check passed", + "evidence_summary": null + }, + { + "hypothesis": "No vulnerable dependencies added", + "method": "SupplyChainIntegrity", + "falsified": false, + "is_blocking": true, + "explanation": "No vulnerabilities (cached 4 min ago)", + "evidence_summary": null + }, + { + "hypothesis": "No file exceeds 500 lines", + "method": "FileSizeRegression", + "falsified": true, + "is_blocking": true, + "explanation": "92 file(s) exceed 500 lines: src/core/scoring.rs (619 lines), src/core/executor/machine.rs (533 lines), src/core/planner/tests_hash.rs (503 lines), src/core/resolver/tests_resource.rs (560 lines), src/cli/tests_graph_core_2.rs (1041 lines), src/cli/graph_scoring.rs (655 lines), src/cli/status_resource_intel.rs (719 lines), src/cli/status_operational.rs (529 lines), src/cli/tests_apply_10.rs (583 lines), src/cli/tests_status_core_6.rs (705 lines), src/cli/status_security.rs (523 lines), src/cli/dispatch_notify.rs (728 lines), src/cli/commands/status_args.rs (676 lines), src/cli/commands/apply_args.rs (680 lines), src/cli/tests_cov_remaining_10.rs (559 lines), src/cli/status_fleet_insight.rs (706 lines), src/cli/tests_validate_core_2.rs (815 lines), src/cli/dispatch_validate.rs (1168 lines), src/cli/tests_cov_remaining_11.rs (710 lines), src/cli/tests_status_core_2.rs (707 lines), src/cli/status_intelligence.rs (656 lines), src/cli/dispatch_graph.rs (1142 lines), src/cli/tests_apply_9.rs (585 lines), src/cli/mod.rs (612 lines), src/cli/tests_misc_2.rs (517 lines), src/cli/tests_apply_11.rs (584 lines), src/cli/status_diagnostics.rs (578 lines), src/cli/tests_misc_6.rs (582 lines), src/cli/tests_apply_1.rs (514 lines), src/cli/tests_misc_10.rs (660 lines), src/cli/tests_cov_notify.rs (789 lines), src/cli/tests_status_core_5.rs (703 lines), src/cli/tests_validate_core.rs (511 lines), src/cli/graph_intelligence_ext.rs (759 lines), src/cli/tests_apply_20.rs (591 lines), src/cli/tests_cov_notify_2.rs (529 lines), src/cli/graph_quality.rs (506 lines), src/cli/tests_cov_fleet.rs (526 lines), src/cli/tests_graph_core_3.rs (757 lines), src/cli/tests_cov_dispatch_3.rs (501 lines), src/cli/validate_paths.rs (517 lines), src/cli/tests_apply_21.rs (591 lines), src/cli/dispatch_status.rs (1448 lines), src/cli/tests_status_core_7.rs (703 lines), src/cli/status_maturity.rs (857 lines), src/cli/tests_apply_18.rs (585 lines), src/cli/tests_status_core_1.rs (701 lines), src/cli/tests_apply_19.rs (589 lines), src/cli/tests_misc_8.rs (620 lines), src/cli/tests_apply_7.rs (585 lines), src/cli/tests_apply_5.rs (585 lines), src/cli/status_recovery.rs (677 lines), src/cli/graph_topology.rs (525 lines), src/cli/tests_status_core_4.rs (707 lines), src/cli/tests_apply_15.rs (584 lines), src/cli/tests_fleet_ops.rs (531 lines), src/cli/validate_ordering.rs (675 lines), src/cli/graph_intelligence_ext2.rs (643 lines), src/cli/tests_status_core_3.rs (705 lines), src/cli/tests_validate_core_1.rs (814 lines), src/cli/tests_status_core_9.rs (528 lines), src/cli/graph_intelligence.rs (591 lines), src/cli/tests_drift.rs (541 lines), src/cli/tests_apply_16.rs (585 lines), src/cli/validate_ownership.rs (610 lines), src/cli/tests_apply_8.rs (586 lines), src/cli/tests_cov_args_extra.rs (538 lines), src/cli/graph_export.rs (517 lines), src/cli/dispatch_status_ext.rs (637 lines), src/cli/tests_validate_core_2_b.rs (667 lines), src/cli/tests_apply_12.rs (584 lines), src/cli/status_intelligence_ext2.rs (624 lines), src/cli/status_intelligence_ext.rs (801 lines), src/cli/status_quality.rs (685 lines), src/cli/tests_apply_17.rs (586 lines), src/cli/status_resilience.rs (699 lines), src/cli/tests_apply_13.rs (584 lines), src/cli/tests_validate_core_1_b.rs (655 lines), src/cli/graph_advanced.rs (551 lines), src/cli/status_operational_ext2.rs (556 lines), src/cli/tests_misc_9.rs (621 lines), src/cli/tests_graph_core_1.rs (1033 lines), src/cli/tests_init.rs (553 lines), src/cli/tests_cov_notify_4.rs (504 lines), src/cli/tests_apply_14.rs (584 lines), src/cli/tests_misc_4.rs (521 lines), src/cli/dispatch_apply.rs (568 lines), src/cli/tests_apply_4.rs (585 lines), src/cli/tests_status_core_8.rs (704 lines), src/cli/tests_apply_22.rs (588 lines), src/resources/network.rs (535 lines), benches/core_bench.rs (610 lines)", + "evidence_summary": "FileList([\"src/core/scoring.rs\", \"src/core/executor/machine.rs\", \"src/core/planner/tests_hash.rs\", \"src/core/resolver/tests_resource.rs\", \"src/cli/tests_graph_core_2.rs\", \"src/cli/graph_scoring.rs\", \"src/cli/status_resource_intel.rs\", \"src/cli/status_operational.rs\", \"src/cli/tests_apply_10.rs\", \"src/cli/tests_status_core_6.rs\", \"src/cli/status_security.rs\", \"src/cli/dispatch_notify.rs\", \"src/cli/commands/status_args.rs\", \"src/cli/commands/apply_args.rs\", \"src/cli/tests_cov_remaining_10.rs\", \"src/cli/status_fleet_insight.rs\", \"src/cli/tests_validate_core_2.rs\", \"src/cli/dispatch_validate.rs\", \"src/cli/tests_cov_remaining_11.rs\", \"src/cli/tests_status_core_2.rs\", \"src/cli/status_intelligence.rs\", \"src/cli/dispatch_graph.rs\", \"src/cli/tests_apply_9.rs\", \"src/cli/mod.rs\", \"src/cli/tests_misc_2.rs\", \"src/cli/tests_apply_11.rs\", \"src/cli/status_diagnostics.rs\", \"src/cli/tests_misc_6.rs\", \"src/cli/tests_apply_1.rs\", \"src/cli/tests_misc_10.rs\", \"src/cli/tests_cov_notify.rs\", \"src/cli/tests_status_core_5.rs\", \"src/cli/tests_validate_core.rs\", \"src/cli/graph_intelligence_ext.rs\", \"src/cli/tests_apply_20.rs\", \"src/cli/tests_cov_notify_2.rs\", \"src/cli/graph_quality.rs\", \"src/cli/tests_cov_fleet.rs\", \"src/cli/tests_graph_core_3.rs\", \"src/cli/tests_cov_dispatch_3.rs\", \"src/cli/validate_paths.rs\", \"src/cli/tests_apply_21.rs\", \"src/cli/dispatch_status.rs\", \"src/cli/tests_status_core_7.rs\", \"src/cli/status_maturity.rs\", \"src/cli/tests_apply_18.rs\", \"src/cli/tests_status_core_1.rs\", \"src/cli/tests_apply_19.rs\", \"src/cli/tests_misc_8.rs\", \"src/cli/tests_apply_7.rs\", \"src/cli/tests_apply_5.rs\", \"src/cli/status_recovery.rs\", \"src/cli/graph_topology.rs\", \"src/cli/tests_status_core_4.rs\", \"src/cli/tests_apply_15.rs\", \"src/cli/tests_fleet_ops.rs\", \"src/cli/validate_ordering.rs\", \"src/cli/graph_intelligence_ext2.rs\", \"src/cli/tests_status_core_3.rs\", \"src/cli/tests_validate_core_1.rs\", \"src/cli/tests_status_core_9.rs\", \"src/cli/graph_intelligence.rs\", \"src/cli/tests_drift.rs\", \"src/cli/tests_apply_16.rs\", \"src/cli/validate_ownership.rs\", \"src/cli/tests_apply_8.rs\", \"src/cli/tests_cov_args_extra.rs\", \"src/cli/graph_export.rs\", \"src/cli/dispatch_status_ext.rs\", \"src/cli/tests_validate_core_2_b.rs\", \"src/cli/tests_apply_12.rs\", \"src/cli/status_intelligence_ext2.rs\", \"src/cli/status_intelligence_ext.rs\", \"src/cli/status_quality.rs\", \"src/cli/tests_apply_17.rs\", \"src/cli/status_resilience.rs\", \"src/cli/tests_apply_13.rs\", \"src/cli/tests_validate_core_1_b.rs\", \"src/cli/graph_advanced.rs\", \"src/cli/status_operational_ext2.rs\", \"src/cli/tests_misc_9.rs\", \"src/cli/tests_graph_core_1.rs\", \"src/cli/tests_init.rs\", \"src/cli/tests_cov_notify_4.rs\", \"src/cli/tests_apply_14.rs\", \"src/cli/tests_misc_4.rs\", \"src/cli/dispatch_apply.rs\", \"src/cli/tests_apply_4.rs\", \"src/cli/tests_status_core_8.rs\", \"src/cli/tests_apply_22.rs\", \"src/resources/network.rs\", \"benches/core_bench.rs\"])" + }, + { + "hypothesis": "Spec & Roadmap Quality", + "method": "SpecQuality", + "falsified": false, + "is_blocking": true, + "explanation": "No spec file found (optional)", + "evidence_summary": null + }, + { + "hypothesis": "All changes pushed", + "method": "GitHubSync", + "falsified": false, + "is_blocking": true, + "explanation": "All changes committed and pushed", + "evidence_summary": null + }, + { + "hypothesis": "All examples compile and run", + "method": "ExamplesCompile", + "falsified": false, + "is_blocking": true, + "explanation": "No examples cache (run 'cargo build --examples' to populate)", + "evidence_summary": null + }, + { + "hypothesis": "pmat-book validation passes", + "method": "BookValidation", + "falsified": false, + "is_blocking": true, + "explanation": "pmat-book not found (skipping validation)", + "evidence_summary": null + }, + { + "hypothesis": "No new SATD markers (TODO/FIXME/HACK)", + "method": "SatdDetection", + "falsified": false, + "is_blocking": true, + "explanation": "No new SATD markers (0 existing)", + "evidence_summary": null + }, + { + "hypothesis": "No new dead code introduced", + "method": "DeadCodeDetection", + "falsified": false, + "is_blocking": true, + "explanation": "No dead code detected", + "evidence_summary": null + }, + { + "hypothesis": "All files have >= 95% coverage", + "method": "PerFileCoverage", + "falsified": false, + "is_blocking": true, + "explanation": "No per-file coverage data (run 'make coverage'), threshold: 95.0%", + "evidence_summary": null + }, + { + "hypothesis": "make lint passes", + "method": "LintPass", + "falsified": false, + "is_blocking": true, + "explanation": "PASSED (cached 0 min ago)", + "evidence_summary": null + }, + { + "hypothesis": "All match arm variants have test coverage", + "method": "VariantCoverage", + "falsified": true, + "is_blocking": true, + "explanation": "6 untested match variant(s): src/resources/package.rs::apt\", \"present, src/resources/package.rs::apt\", \"absent, src/resources/package.rs::cargo\", \"present, src/resources/package.rs::uv\", \"present, src/resources/package.rs::uv\", \"absent, src/resources/package.rs::other_provider, other_state", + "evidence_summary": "FileList([\"src/resources/package.rs\", \"src/resources/package.rs\", \"src/resources/package.rs\", \"src/resources/package.rs\", \"src/resources/package.rs\", \"src/resources/package.rs\"])" + }, + { + "hypothesis": "No fix-after-fix chains exceed limit", + "method": "FixChainLimit", + "falsified": false, + "is_blocking": true, + "explanation": "No fix chains > 3 consecutive commits", + "evidence_summary": null + }, + { + "hypothesis": "Cross-crate integration tests pass", + "method": "CrossCrateParity", + "falsified": false, + "is_blocking": false, + "explanation": "No cross-crate config (create .pmat-work/cross-crate.json to enable)", + "evidence_summary": null + }, + { + "hypothesis": "No performance regressions detected", + "method": "RegressionGate", + "falsified": false, + "is_blocking": false, + "explanation": "No benchmark cache (run benchmarks to populate .pmat-metrics/benchmark-status.json)", + "evidence_summary": null + }, + { + "hypothesis": "No incomplete proofs (sorry) introduced", + "method": "FormalProofVerification", + "falsified": false, + "is_blocking": false, + "explanation": "No .lean files with sorry found", + "evidence_summary": null + } + ], + "overrides": [], + "summary": { + "total": 22, + "passed": 20, + "failed": 2, + "warnings": 0, + "overridden": 0, + "allows_completion": false, + "health_score": 0.9090909090909091 + }, + "content_hash": "154497477fe00ccf7a8bf65c5c3c05f10326206d9629b93d50fe110b279a0f99" +} \ No newline at end of file diff --git a/.pmat-work/PMAT-028/falsification/receipt-2026-03-02T22-08-00.055600464+00-00.json b/.pmat-work/PMAT-028/falsification/receipt-2026-03-02T22-08-00.055600464+00-00.json new file mode 100644 index 00000000..ba5c6a32 --- /dev/null +++ b/.pmat-work/PMAT-028/falsification/receipt-2026-03-02T22-08-00.055600464+00-00.json @@ -0,0 +1,196 @@ +{ + "id": "019cb098-0a37-7601-9ddc-68d192571f8e", + "git_sha": "b49ff3d4c40ffe0ce3b24d098b95df8b1b2e94cd", + "timestamp": "2026-03-02T22:08:00.055600464+00:00", + "trigger": "WorkComplete", + "work_item_id": "PMAT-028", + "verdicts": [ + { + "hypothesis": "All baseline files still exist", + "method": "ManifestIntegrity", + "falsified": false, + "is_blocking": true, + "explanation": "All 658 files present", + "evidence_summary": null + }, + { + "hypothesis": "The falsifier is active and detecting (Meta-Check)", + "method": "MetaFalsification", + "falsified": false, + "is_blocking": true, + "explanation": "Detected dummy gaming pattern correctly", + "evidence_summary": null + }, + { + "hypothesis": "No coverage exclusion gaming", + "method": "CoverageGaming", + "falsified": false, + "is_blocking": true, + "explanation": "No gaming patterns found in 668 files", + "evidence_summary": null + }, + { + "hypothesis": "All changed lines are covered", + "method": "DifferentialCoverage", + "falsified": false, + "is_blocking": true, + "explanation": "23 changed files (coverage check requires llvm-cov data)", + "evidence_summary": null + }, + { + "hypothesis": "Total coverage >= 95%", + "method": "AbsoluteCoverage", + "falsified": false, + "is_blocking": true, + "explanation": "No coverage data (run 'make coverage' to establish baseline), threshold: 95.0%", + "evidence_summary": null + }, + { + "hypothesis": "TDG score >= baseline", + "method": "TdgRegression", + "falsified": false, + "is_blocking": true, + "explanation": "No TDG data (baseline: 0.0)", + "evidence_summary": null + }, + { + "hypothesis": "No function exceeds complexity 20", + "method": "ComplexityRegression", + "falsified": false, + "is_blocking": true, + "explanation": "Complexity check passed", + "evidence_summary": null + }, + { + "hypothesis": "No vulnerable dependencies added", + "method": "SupplyChainIntegrity", + "falsified": false, + "is_blocking": true, + "explanation": "No vulnerabilities (cached 4 min ago)", + "evidence_summary": null + }, + { + "hypothesis": "No file exceeds 500 lines", + "method": "FileSizeRegression", + "falsified": true, + "is_blocking": true, + "explanation": "92 file(s) exceed 500 lines: src/core/scoring.rs (619 lines), src/core/executor/machine.rs (533 lines), src/core/planner/tests_hash.rs (503 lines), src/core/resolver/tests_resource.rs (560 lines), src/cli/tests_graph_core_2.rs (1041 lines), src/cli/graph_scoring.rs (655 lines), src/cli/status_resource_intel.rs (719 lines), src/cli/status_operational.rs (529 lines), src/cli/tests_apply_10.rs (583 lines), src/cli/tests_status_core_6.rs (705 lines), src/cli/status_security.rs (523 lines), src/cli/dispatch_notify.rs (728 lines), src/cli/commands/status_args.rs (676 lines), src/cli/commands/apply_args.rs (680 lines), src/cli/tests_cov_remaining_10.rs (559 lines), src/cli/status_fleet_insight.rs (706 lines), src/cli/tests_validate_core_2.rs (815 lines), src/cli/dispatch_validate.rs (1168 lines), src/cli/tests_cov_remaining_11.rs (710 lines), src/cli/tests_status_core_2.rs (707 lines), src/cli/status_intelligence.rs (656 lines), src/cli/dispatch_graph.rs (1142 lines), src/cli/tests_apply_9.rs (585 lines), src/cli/mod.rs (612 lines), src/cli/tests_misc_2.rs (517 lines), src/cli/tests_apply_11.rs (584 lines), src/cli/status_diagnostics.rs (578 lines), src/cli/tests_misc_6.rs (582 lines), src/cli/tests_apply_1.rs (514 lines), src/cli/tests_misc_10.rs (660 lines), src/cli/tests_cov_notify.rs (789 lines), src/cli/tests_status_core_5.rs (703 lines), src/cli/tests_validate_core.rs (511 lines), src/cli/graph_intelligence_ext.rs (759 lines), src/cli/tests_apply_20.rs (591 lines), src/cli/tests_cov_notify_2.rs (529 lines), src/cli/graph_quality.rs (506 lines), src/cli/tests_cov_fleet.rs (526 lines), src/cli/tests_graph_core_3.rs (757 lines), src/cli/tests_cov_dispatch_3.rs (501 lines), src/cli/validate_paths.rs (517 lines), src/cli/tests_apply_21.rs (591 lines), src/cli/dispatch_status.rs (1448 lines), src/cli/tests_status_core_7.rs (703 lines), src/cli/status_maturity.rs (857 lines), src/cli/tests_apply_18.rs (585 lines), src/cli/tests_status_core_1.rs (701 lines), src/cli/tests_apply_19.rs (589 lines), src/cli/tests_misc_8.rs (620 lines), src/cli/tests_apply_7.rs (585 lines), src/cli/tests_apply_5.rs (585 lines), src/cli/status_recovery.rs (677 lines), src/cli/graph_topology.rs (525 lines), src/cli/tests_status_core_4.rs (707 lines), src/cli/tests_apply_15.rs (584 lines), src/cli/tests_fleet_ops.rs (531 lines), src/cli/validate_ordering.rs (675 lines), src/cli/graph_intelligence_ext2.rs (643 lines), src/cli/tests_status_core_3.rs (705 lines), src/cli/tests_validate_core_1.rs (814 lines), src/cli/tests_status_core_9.rs (528 lines), src/cli/graph_intelligence.rs (591 lines), src/cli/tests_drift.rs (541 lines), src/cli/tests_apply_16.rs (585 lines), src/cli/validate_ownership.rs (610 lines), src/cli/tests_apply_8.rs (586 lines), src/cli/tests_cov_args_extra.rs (538 lines), src/cli/graph_export.rs (517 lines), src/cli/dispatch_status_ext.rs (637 lines), src/cli/tests_validate_core_2_b.rs (667 lines), src/cli/tests_apply_12.rs (584 lines), src/cli/status_intelligence_ext2.rs (624 lines), src/cli/status_intelligence_ext.rs (801 lines), src/cli/status_quality.rs (685 lines), src/cli/tests_apply_17.rs (586 lines), src/cli/status_resilience.rs (699 lines), src/cli/tests_apply_13.rs (584 lines), src/cli/tests_validate_core_1_b.rs (655 lines), src/cli/graph_advanced.rs (551 lines), src/cli/status_operational_ext2.rs (556 lines), src/cli/tests_misc_9.rs (621 lines), src/cli/tests_graph_core_1.rs (1033 lines), src/cli/tests_init.rs (553 lines), src/cli/tests_cov_notify_4.rs (504 lines), src/cli/tests_apply_14.rs (584 lines), src/cli/tests_misc_4.rs (521 lines), src/cli/dispatch_apply.rs (568 lines), src/cli/tests_apply_4.rs (585 lines), src/cli/tests_status_core_8.rs (704 lines), src/cli/tests_apply_22.rs (588 lines), src/resources/network.rs (535 lines), benches/core_bench.rs (610 lines)", + "evidence_summary": "FileList([\"src/core/scoring.rs\", \"src/core/executor/machine.rs\", \"src/core/planner/tests_hash.rs\", \"src/core/resolver/tests_resource.rs\", \"src/cli/tests_graph_core_2.rs\", \"src/cli/graph_scoring.rs\", \"src/cli/status_resource_intel.rs\", \"src/cli/status_operational.rs\", \"src/cli/tests_apply_10.rs\", \"src/cli/tests_status_core_6.rs\", \"src/cli/status_security.rs\", \"src/cli/dispatch_notify.rs\", \"src/cli/commands/status_args.rs\", \"src/cli/commands/apply_args.rs\", \"src/cli/tests_cov_remaining_10.rs\", \"src/cli/status_fleet_insight.rs\", \"src/cli/tests_validate_core_2.rs\", \"src/cli/dispatch_validate.rs\", \"src/cli/tests_cov_remaining_11.rs\", \"src/cli/tests_status_core_2.rs\", \"src/cli/status_intelligence.rs\", \"src/cli/dispatch_graph.rs\", \"src/cli/tests_apply_9.rs\", \"src/cli/mod.rs\", \"src/cli/tests_misc_2.rs\", \"src/cli/tests_apply_11.rs\", \"src/cli/status_diagnostics.rs\", \"src/cli/tests_misc_6.rs\", \"src/cli/tests_apply_1.rs\", \"src/cli/tests_misc_10.rs\", \"src/cli/tests_cov_notify.rs\", \"src/cli/tests_status_core_5.rs\", \"src/cli/tests_validate_core.rs\", \"src/cli/graph_intelligence_ext.rs\", \"src/cli/tests_apply_20.rs\", \"src/cli/tests_cov_notify_2.rs\", \"src/cli/graph_quality.rs\", \"src/cli/tests_cov_fleet.rs\", \"src/cli/tests_graph_core_3.rs\", \"src/cli/tests_cov_dispatch_3.rs\", \"src/cli/validate_paths.rs\", \"src/cli/tests_apply_21.rs\", \"src/cli/dispatch_status.rs\", \"src/cli/tests_status_core_7.rs\", \"src/cli/status_maturity.rs\", \"src/cli/tests_apply_18.rs\", \"src/cli/tests_status_core_1.rs\", \"src/cli/tests_apply_19.rs\", \"src/cli/tests_misc_8.rs\", \"src/cli/tests_apply_7.rs\", \"src/cli/tests_apply_5.rs\", \"src/cli/status_recovery.rs\", \"src/cli/graph_topology.rs\", \"src/cli/tests_status_core_4.rs\", \"src/cli/tests_apply_15.rs\", \"src/cli/tests_fleet_ops.rs\", \"src/cli/validate_ordering.rs\", \"src/cli/graph_intelligence_ext2.rs\", \"src/cli/tests_status_core_3.rs\", \"src/cli/tests_validate_core_1.rs\", \"src/cli/tests_status_core_9.rs\", \"src/cli/graph_intelligence.rs\", \"src/cli/tests_drift.rs\", \"src/cli/tests_apply_16.rs\", \"src/cli/validate_ownership.rs\", \"src/cli/tests_apply_8.rs\", \"src/cli/tests_cov_args_extra.rs\", \"src/cli/graph_export.rs\", \"src/cli/dispatch_status_ext.rs\", \"src/cli/tests_validate_core_2_b.rs\", \"src/cli/tests_apply_12.rs\", \"src/cli/status_intelligence_ext2.rs\", \"src/cli/status_intelligence_ext.rs\", \"src/cli/status_quality.rs\", \"src/cli/tests_apply_17.rs\", \"src/cli/status_resilience.rs\", \"src/cli/tests_apply_13.rs\", \"src/cli/tests_validate_core_1_b.rs\", \"src/cli/graph_advanced.rs\", \"src/cli/status_operational_ext2.rs\", \"src/cli/tests_misc_9.rs\", \"src/cli/tests_graph_core_1.rs\", \"src/cli/tests_init.rs\", \"src/cli/tests_cov_notify_4.rs\", \"src/cli/tests_apply_14.rs\", \"src/cli/tests_misc_4.rs\", \"src/cli/dispatch_apply.rs\", \"src/cli/tests_apply_4.rs\", \"src/cli/tests_status_core_8.rs\", \"src/cli/tests_apply_22.rs\", \"src/resources/network.rs\", \"benches/core_bench.rs\"])" + }, + { + "hypothesis": "Spec & Roadmap Quality", + "method": "SpecQuality", + "falsified": false, + "is_blocking": true, + "explanation": "No spec file found (optional)", + "evidence_summary": null + }, + { + "hypothesis": "All changes pushed", + "method": "GitHubSync", + "falsified": true, + "is_blocking": true, + "explanation": "2 uncommitted file(s)", + "evidence_summary": "GitState { unpushed_commits: 0, dirty_files: 2 }" + }, + { + "hypothesis": "All examples compile and run", + "method": "ExamplesCompile", + "falsified": false, + "is_blocking": true, + "explanation": "No examples cache (run 'cargo build --examples' to populate)", + "evidence_summary": null + }, + { + "hypothesis": "pmat-book validation passes", + "method": "BookValidation", + "falsified": false, + "is_blocking": true, + "explanation": "pmat-book not found (skipping validation)", + "evidence_summary": null + }, + { + "hypothesis": "No new SATD markers (TODO/FIXME/HACK)", + "method": "SatdDetection", + "falsified": false, + "is_blocking": true, + "explanation": "No new SATD markers (0 existing)", + "evidence_summary": null + }, + { + "hypothesis": "No new dead code introduced", + "method": "DeadCodeDetection", + "falsified": false, + "is_blocking": true, + "explanation": "No dead code detected", + "evidence_summary": null + }, + { + "hypothesis": "All files have >= 95% coverage", + "method": "PerFileCoverage", + "falsified": false, + "is_blocking": true, + "explanation": "No per-file coverage data (run 'make coverage'), threshold: 95.0%", + "evidence_summary": null + }, + { + "hypothesis": "make lint passes", + "method": "LintPass", + "falsified": false, + "is_blocking": true, + "explanation": "PASSED (cached 0 min ago)", + "evidence_summary": null + }, + { + "hypothesis": "All match arm variants have test coverage", + "method": "VariantCoverage", + "falsified": true, + "is_blocking": true, + "explanation": "6 untested match variant(s): src/resources/package.rs::apt\", \"present, src/resources/package.rs::apt\", \"absent, src/resources/package.rs::cargo\", \"present, src/resources/package.rs::uv\", \"present, src/resources/package.rs::uv\", \"absent, src/resources/package.rs::other_provider, other_state", + "evidence_summary": "FileList([\"src/resources/package.rs\", \"src/resources/package.rs\", \"src/resources/package.rs\", \"src/resources/package.rs\", \"src/resources/package.rs\", \"src/resources/package.rs\"])" + }, + { + "hypothesis": "No fix-after-fix chains exceed limit", + "method": "FixChainLimit", + "falsified": false, + "is_blocking": true, + "explanation": "No fix chains > 3 consecutive commits", + "evidence_summary": null + }, + { + "hypothesis": "Cross-crate integration tests pass", + "method": "CrossCrateParity", + "falsified": false, + "is_blocking": false, + "explanation": "No cross-crate config (create .pmat-work/cross-crate.json to enable)", + "evidence_summary": null + }, + { + "hypothesis": "No performance regressions detected", + "method": "RegressionGate", + "falsified": false, + "is_blocking": false, + "explanation": "No benchmark cache (run benchmarks to populate .pmat-metrics/benchmark-status.json)", + "evidence_summary": null + }, + { + "hypothesis": "No incomplete proofs (sorry) introduced", + "method": "FormalProofVerification", + "falsified": false, + "is_blocking": false, + "explanation": "No .lean files with sorry found", + "evidence_summary": null + } + ], + "overrides": [], + "summary": { + "total": 22, + "passed": 19, + "failed": 3, + "warnings": 0, + "overridden": 0, + "allows_completion": false, + "health_score": 0.8636363636363636 + }, + "content_hash": "1f58d629f028cd2dc50db6affc16fc19ccfcabb2cd006e543c0e30885cad44d9" +} \ No newline at end of file diff --git a/.pmat-work/PMAT-028/falsification/receipt-2026-03-02T22-08-19.288186800+00-00.json b/.pmat-work/PMAT-028/falsification/receipt-2026-03-02T22-08-19.288186800+00-00.json new file mode 100644 index 00000000..f5ec3562 --- /dev/null +++ b/.pmat-work/PMAT-028/falsification/receipt-2026-03-02T22-08-19.288186800+00-00.json @@ -0,0 +1,196 @@ +{ + "id": "019cb098-5558-7ec1-97f1-0f16adae8f95", + "git_sha": "b49ff3d4c40ffe0ce3b24d098b95df8b1b2e94cd", + "timestamp": "2026-03-02T22:08:19.288186800+00:00", + "trigger": "WorkComplete", + "work_item_id": "PMAT-028", + "verdicts": [ + { + "hypothesis": "All baseline files still exist", + "method": "ManifestIntegrity", + "falsified": false, + "is_blocking": true, + "explanation": "All 658 files present", + "evidence_summary": null + }, + { + "hypothesis": "The falsifier is active and detecting (Meta-Check)", + "method": "MetaFalsification", + "falsified": false, + "is_blocking": true, + "explanation": "Detected dummy gaming pattern correctly", + "evidence_summary": null + }, + { + "hypothesis": "No coverage exclusion gaming", + "method": "CoverageGaming", + "falsified": false, + "is_blocking": true, + "explanation": "No gaming patterns found in 668 files", + "evidence_summary": null + }, + { + "hypothesis": "All changed lines are covered", + "method": "DifferentialCoverage", + "falsified": false, + "is_blocking": true, + "explanation": "23 changed files (coverage check requires llvm-cov data)", + "evidence_summary": null + }, + { + "hypothesis": "Total coverage >= 95%", + "method": "AbsoluteCoverage", + "falsified": false, + "is_blocking": true, + "explanation": "No coverage data (run 'make coverage' to establish baseline), threshold: 95.0%", + "evidence_summary": null + }, + { + "hypothesis": "TDG score >= baseline", + "method": "TdgRegression", + "falsified": false, + "is_blocking": true, + "explanation": "No TDG data (baseline: 0.0)", + "evidence_summary": null + }, + { + "hypothesis": "No function exceeds complexity 20", + "method": "ComplexityRegression", + "falsified": false, + "is_blocking": true, + "explanation": "Complexity check passed", + "evidence_summary": null + }, + { + "hypothesis": "No vulnerable dependencies added", + "method": "SupplyChainIntegrity", + "falsified": false, + "is_blocking": true, + "explanation": "No vulnerabilities (cached 4 min ago)", + "evidence_summary": null + }, + { + "hypothesis": "No file exceeds 500 lines", + "method": "FileSizeRegression", + "falsified": true, + "is_blocking": true, + "explanation": "92 file(s) exceed 500 lines: src/core/scoring.rs (619 lines), src/core/executor/machine.rs (533 lines), src/core/planner/tests_hash.rs (503 lines), src/core/resolver/tests_resource.rs (560 lines), src/cli/tests_graph_core_2.rs (1041 lines), src/cli/graph_scoring.rs (655 lines), src/cli/status_resource_intel.rs (719 lines), src/cli/status_operational.rs (529 lines), src/cli/tests_apply_10.rs (583 lines), src/cli/tests_status_core_6.rs (705 lines), src/cli/status_security.rs (523 lines), src/cli/dispatch_notify.rs (728 lines), src/cli/commands/status_args.rs (676 lines), src/cli/commands/apply_args.rs (680 lines), src/cli/tests_cov_remaining_10.rs (559 lines), src/cli/status_fleet_insight.rs (706 lines), src/cli/tests_validate_core_2.rs (815 lines), src/cli/dispatch_validate.rs (1168 lines), src/cli/tests_cov_remaining_11.rs (710 lines), src/cli/tests_status_core_2.rs (707 lines), src/cli/status_intelligence.rs (656 lines), src/cli/dispatch_graph.rs (1142 lines), src/cli/tests_apply_9.rs (585 lines), src/cli/mod.rs (612 lines), src/cli/tests_misc_2.rs (517 lines), src/cli/tests_apply_11.rs (584 lines), src/cli/status_diagnostics.rs (578 lines), src/cli/tests_misc_6.rs (582 lines), src/cli/tests_apply_1.rs (514 lines), src/cli/tests_misc_10.rs (660 lines), src/cli/tests_cov_notify.rs (789 lines), src/cli/tests_status_core_5.rs (703 lines), src/cli/tests_validate_core.rs (511 lines), src/cli/graph_intelligence_ext.rs (759 lines), src/cli/tests_apply_20.rs (591 lines), src/cli/tests_cov_notify_2.rs (529 lines), src/cli/graph_quality.rs (506 lines), src/cli/tests_cov_fleet.rs (526 lines), src/cli/tests_graph_core_3.rs (757 lines), src/cli/tests_cov_dispatch_3.rs (501 lines), src/cli/validate_paths.rs (517 lines), src/cli/tests_apply_21.rs (591 lines), src/cli/dispatch_status.rs (1448 lines), src/cli/tests_status_core_7.rs (703 lines), src/cli/status_maturity.rs (857 lines), src/cli/tests_apply_18.rs (585 lines), src/cli/tests_status_core_1.rs (701 lines), src/cli/tests_apply_19.rs (589 lines), src/cli/tests_misc_8.rs (620 lines), src/cli/tests_apply_7.rs (585 lines), src/cli/tests_apply_5.rs (585 lines), src/cli/status_recovery.rs (677 lines), src/cli/graph_topology.rs (525 lines), src/cli/tests_status_core_4.rs (707 lines), src/cli/tests_apply_15.rs (584 lines), src/cli/tests_fleet_ops.rs (531 lines), src/cli/validate_ordering.rs (675 lines), src/cli/graph_intelligence_ext2.rs (643 lines), src/cli/tests_status_core_3.rs (705 lines), src/cli/tests_validate_core_1.rs (814 lines), src/cli/tests_status_core_9.rs (528 lines), src/cli/graph_intelligence.rs (591 lines), src/cli/tests_drift.rs (541 lines), src/cli/tests_apply_16.rs (585 lines), src/cli/validate_ownership.rs (610 lines), src/cli/tests_apply_8.rs (586 lines), src/cli/tests_cov_args_extra.rs (538 lines), src/cli/graph_export.rs (517 lines), src/cli/dispatch_status_ext.rs (637 lines), src/cli/tests_validate_core_2_b.rs (667 lines), src/cli/tests_apply_12.rs (584 lines), src/cli/status_intelligence_ext2.rs (624 lines), src/cli/status_intelligence_ext.rs (801 lines), src/cli/status_quality.rs (685 lines), src/cli/tests_apply_17.rs (586 lines), src/cli/status_resilience.rs (699 lines), src/cli/tests_apply_13.rs (584 lines), src/cli/tests_validate_core_1_b.rs (655 lines), src/cli/graph_advanced.rs (551 lines), src/cli/status_operational_ext2.rs (556 lines), src/cli/tests_misc_9.rs (621 lines), src/cli/tests_graph_core_1.rs (1033 lines), src/cli/tests_init.rs (553 lines), src/cli/tests_cov_notify_4.rs (504 lines), src/cli/tests_apply_14.rs (584 lines), src/cli/tests_misc_4.rs (521 lines), src/cli/dispatch_apply.rs (568 lines), src/cli/tests_apply_4.rs (585 lines), src/cli/tests_status_core_8.rs (704 lines), src/cli/tests_apply_22.rs (588 lines), src/resources/network.rs (535 lines), benches/core_bench.rs (610 lines)", + "evidence_summary": "FileList([\"src/core/scoring.rs\", \"src/core/executor/machine.rs\", \"src/core/planner/tests_hash.rs\", \"src/core/resolver/tests_resource.rs\", \"src/cli/tests_graph_core_2.rs\", \"src/cli/graph_scoring.rs\", \"src/cli/status_resource_intel.rs\", \"src/cli/status_operational.rs\", \"src/cli/tests_apply_10.rs\", \"src/cli/tests_status_core_6.rs\", \"src/cli/status_security.rs\", \"src/cli/dispatch_notify.rs\", \"src/cli/commands/status_args.rs\", \"src/cli/commands/apply_args.rs\", \"src/cli/tests_cov_remaining_10.rs\", \"src/cli/status_fleet_insight.rs\", \"src/cli/tests_validate_core_2.rs\", \"src/cli/dispatch_validate.rs\", \"src/cli/tests_cov_remaining_11.rs\", \"src/cli/tests_status_core_2.rs\", \"src/cli/status_intelligence.rs\", \"src/cli/dispatch_graph.rs\", \"src/cli/tests_apply_9.rs\", \"src/cli/mod.rs\", \"src/cli/tests_misc_2.rs\", \"src/cli/tests_apply_11.rs\", \"src/cli/status_diagnostics.rs\", \"src/cli/tests_misc_6.rs\", \"src/cli/tests_apply_1.rs\", \"src/cli/tests_misc_10.rs\", \"src/cli/tests_cov_notify.rs\", \"src/cli/tests_status_core_5.rs\", \"src/cli/tests_validate_core.rs\", \"src/cli/graph_intelligence_ext.rs\", \"src/cli/tests_apply_20.rs\", \"src/cli/tests_cov_notify_2.rs\", \"src/cli/graph_quality.rs\", \"src/cli/tests_cov_fleet.rs\", \"src/cli/tests_graph_core_3.rs\", \"src/cli/tests_cov_dispatch_3.rs\", \"src/cli/validate_paths.rs\", \"src/cli/tests_apply_21.rs\", \"src/cli/dispatch_status.rs\", \"src/cli/tests_status_core_7.rs\", \"src/cli/status_maturity.rs\", \"src/cli/tests_apply_18.rs\", \"src/cli/tests_status_core_1.rs\", \"src/cli/tests_apply_19.rs\", \"src/cli/tests_misc_8.rs\", \"src/cli/tests_apply_7.rs\", \"src/cli/tests_apply_5.rs\", \"src/cli/status_recovery.rs\", \"src/cli/graph_topology.rs\", \"src/cli/tests_status_core_4.rs\", \"src/cli/tests_apply_15.rs\", \"src/cli/tests_fleet_ops.rs\", \"src/cli/validate_ordering.rs\", \"src/cli/graph_intelligence_ext2.rs\", \"src/cli/tests_status_core_3.rs\", \"src/cli/tests_validate_core_1.rs\", \"src/cli/tests_status_core_9.rs\", \"src/cli/graph_intelligence.rs\", \"src/cli/tests_drift.rs\", \"src/cli/tests_apply_16.rs\", \"src/cli/validate_ownership.rs\", \"src/cli/tests_apply_8.rs\", \"src/cli/tests_cov_args_extra.rs\", \"src/cli/graph_export.rs\", \"src/cli/dispatch_status_ext.rs\", \"src/cli/tests_validate_core_2_b.rs\", \"src/cli/tests_apply_12.rs\", \"src/cli/status_intelligence_ext2.rs\", \"src/cli/status_intelligence_ext.rs\", \"src/cli/status_quality.rs\", \"src/cli/tests_apply_17.rs\", \"src/cli/status_resilience.rs\", \"src/cli/tests_apply_13.rs\", \"src/cli/tests_validate_core_1_b.rs\", \"src/cli/graph_advanced.rs\", \"src/cli/status_operational_ext2.rs\", \"src/cli/tests_misc_9.rs\", \"src/cli/tests_graph_core_1.rs\", \"src/cli/tests_init.rs\", \"src/cli/tests_cov_notify_4.rs\", \"src/cli/tests_apply_14.rs\", \"src/cli/tests_misc_4.rs\", \"src/cli/dispatch_apply.rs\", \"src/cli/tests_apply_4.rs\", \"src/cli/tests_status_core_8.rs\", \"src/cli/tests_apply_22.rs\", \"src/resources/network.rs\", \"benches/core_bench.rs\"])" + }, + { + "hypothesis": "Spec & Roadmap Quality", + "method": "SpecQuality", + "falsified": false, + "is_blocking": true, + "explanation": "No spec file found (optional)", + "evidence_summary": null + }, + { + "hypothesis": "All changes pushed", + "method": "GitHubSync", + "falsified": true, + "is_blocking": true, + "explanation": "2 uncommitted file(s)", + "evidence_summary": "GitState { unpushed_commits: 0, dirty_files: 2 }" + }, + { + "hypothesis": "All examples compile and run", + "method": "ExamplesCompile", + "falsified": false, + "is_blocking": true, + "explanation": "No examples cache (run 'cargo build --examples' to populate)", + "evidence_summary": null + }, + { + "hypothesis": "pmat-book validation passes", + "method": "BookValidation", + "falsified": false, + "is_blocking": true, + "explanation": "pmat-book not found (skipping validation)", + "evidence_summary": null + }, + { + "hypothesis": "No new SATD markers (TODO/FIXME/HACK)", + "method": "SatdDetection", + "falsified": false, + "is_blocking": true, + "explanation": "No new SATD markers (0 existing)", + "evidence_summary": null + }, + { + "hypothesis": "No new dead code introduced", + "method": "DeadCodeDetection", + "falsified": false, + "is_blocking": true, + "explanation": "No dead code detected", + "evidence_summary": null + }, + { + "hypothesis": "All files have >= 95% coverage", + "method": "PerFileCoverage", + "falsified": false, + "is_blocking": true, + "explanation": "No per-file coverage data (run 'make coverage'), threshold: 95.0%", + "evidence_summary": null + }, + { + "hypothesis": "make lint passes", + "method": "LintPass", + "falsified": false, + "is_blocking": true, + "explanation": "PASSED (cached 0 min ago)", + "evidence_summary": null + }, + { + "hypothesis": "All match arm variants have test coverage", + "method": "VariantCoverage", + "falsified": true, + "is_blocking": true, + "explanation": "6 untested match variant(s): src/resources/package.rs::apt\", \"present, src/resources/package.rs::apt\", \"absent, src/resources/package.rs::cargo\", \"present, src/resources/package.rs::uv\", \"present, src/resources/package.rs::uv\", \"absent, src/resources/package.rs::other_provider, other_state", + "evidence_summary": "FileList([\"src/resources/package.rs\", \"src/resources/package.rs\", \"src/resources/package.rs\", \"src/resources/package.rs\", \"src/resources/package.rs\", \"src/resources/package.rs\"])" + }, + { + "hypothesis": "No fix-after-fix chains exceed limit", + "method": "FixChainLimit", + "falsified": false, + "is_blocking": true, + "explanation": "No fix chains > 3 consecutive commits", + "evidence_summary": null + }, + { + "hypothesis": "Cross-crate integration tests pass", + "method": "CrossCrateParity", + "falsified": false, + "is_blocking": false, + "explanation": "No cross-crate config (create .pmat-work/cross-crate.json to enable)", + "evidence_summary": null + }, + { + "hypothesis": "No performance regressions detected", + "method": "RegressionGate", + "falsified": false, + "is_blocking": false, + "explanation": "No benchmark cache (run benchmarks to populate .pmat-metrics/benchmark-status.json)", + "evidence_summary": null + }, + { + "hypothesis": "No incomplete proofs (sorry) introduced", + "method": "FormalProofVerification", + "falsified": false, + "is_blocking": false, + "explanation": "No .lean files with sorry found", + "evidence_summary": null + } + ], + "overrides": [], + "summary": { + "total": 22, + "passed": 19, + "failed": 3, + "warnings": 0, + "overridden": 0, + "allows_completion": false, + "health_score": 0.8636363636363636 + }, + "content_hash": "cfa1f5cbdfde9cfe33b7bfbb4a6ff67ee2d842dc90024e234ce023b774b3f94b" +} \ No newline at end of file diff --git a/.pmat-work/PMAT-028/falsification/receipt-2026-03-02T22-09-13.383425854+00-00.json b/.pmat-work/PMAT-028/falsification/receipt-2026-03-02T22-09-13.383425854+00-00.json new file mode 100644 index 00000000..60589c85 --- /dev/null +++ b/.pmat-work/PMAT-028/falsification/receipt-2026-03-02T22-09-13.383425854+00-00.json @@ -0,0 +1,202 @@ +{ + "id": "019cb099-28a7-7b41-90b4-c63cd7b2d73e", + "git_sha": "ec72a1ceaf620a5b88cd56d23071e292608e6861", + "timestamp": "2026-03-02T22:09:13.383425854+00:00", + "trigger": "WorkComplete", + "work_item_id": "PMAT-028", + "verdicts": [ + { + "hypothesis": "All baseline files still exist", + "method": "ManifestIntegrity", + "falsified": false, + "is_blocking": true, + "explanation": "All 658 files present", + "evidence_summary": null + }, + { + "hypothesis": "The falsifier is active and detecting (Meta-Check)", + "method": "MetaFalsification", + "falsified": false, + "is_blocking": true, + "explanation": "Detected dummy gaming pattern correctly", + "evidence_summary": null + }, + { + "hypothesis": "No coverage exclusion gaming", + "method": "CoverageGaming", + "falsified": false, + "is_blocking": true, + "explanation": "No gaming patterns found in 668 files", + "evidence_summary": null + }, + { + "hypothesis": "All changed lines are covered", + "method": "DifferentialCoverage", + "falsified": false, + "is_blocking": true, + "explanation": "23 changed files (coverage check requires llvm-cov data)", + "evidence_summary": null + }, + { + "hypothesis": "Total coverage >= 95%", + "method": "AbsoluteCoverage", + "falsified": false, + "is_blocking": true, + "explanation": "No coverage data (run 'make coverage' to establish baseline), threshold: 95.0%", + "evidence_summary": null + }, + { + "hypothesis": "TDG score >= baseline", + "method": "TdgRegression", + "falsified": false, + "is_blocking": true, + "explanation": "No TDG data (baseline: 0.0)", + "evidence_summary": null + }, + { + "hypothesis": "No function exceeds complexity 20", + "method": "ComplexityRegression", + "falsified": false, + "is_blocking": true, + "explanation": "Complexity check passed", + "evidence_summary": null + }, + { + "hypothesis": "No vulnerable dependencies added", + "method": "SupplyChainIntegrity", + "falsified": false, + "is_blocking": true, + "explanation": "No vulnerabilities (cached 5 min ago)", + "evidence_summary": null + }, + { + "hypothesis": "No file exceeds 500 lines", + "method": "FileSizeRegression", + "falsified": true, + "is_blocking": true, + "explanation": "92 file(s) exceed 500 lines: src/core/scoring.rs (619 lines), src/core/executor/machine.rs (533 lines), src/core/planner/tests_hash.rs (503 lines), src/core/resolver/tests_resource.rs (560 lines), src/cli/tests_graph_core_2.rs (1041 lines), src/cli/graph_scoring.rs (655 lines), src/cli/status_resource_intel.rs (719 lines), src/cli/status_operational.rs (529 lines), src/cli/tests_apply_10.rs (583 lines), src/cli/tests_status_core_6.rs (705 lines), src/cli/status_security.rs (523 lines), src/cli/dispatch_notify.rs (728 lines), src/cli/commands/status_args.rs (676 lines), src/cli/commands/apply_args.rs (680 lines), src/cli/tests_cov_remaining_10.rs (559 lines), src/cli/status_fleet_insight.rs (706 lines), src/cli/tests_validate_core_2.rs (815 lines), src/cli/dispatch_validate.rs (1168 lines), src/cli/tests_cov_remaining_11.rs (710 lines), src/cli/tests_status_core_2.rs (707 lines), src/cli/status_intelligence.rs (656 lines), src/cli/dispatch_graph.rs (1142 lines), src/cli/tests_apply_9.rs (585 lines), src/cli/mod.rs (612 lines), src/cli/tests_misc_2.rs (517 lines), src/cli/tests_apply_11.rs (584 lines), src/cli/status_diagnostics.rs (578 lines), src/cli/tests_misc_6.rs (582 lines), src/cli/tests_apply_1.rs (514 lines), src/cli/tests_misc_10.rs (660 lines), src/cli/tests_cov_notify.rs (789 lines), src/cli/tests_status_core_5.rs (703 lines), src/cli/tests_validate_core.rs (511 lines), src/cli/graph_intelligence_ext.rs (759 lines), src/cli/tests_apply_20.rs (591 lines), src/cli/tests_cov_notify_2.rs (529 lines), src/cli/graph_quality.rs (506 lines), src/cli/tests_cov_fleet.rs (526 lines), src/cli/tests_graph_core_3.rs (757 lines), src/cli/tests_cov_dispatch_3.rs (501 lines), src/cli/validate_paths.rs (517 lines), src/cli/tests_apply_21.rs (591 lines), src/cli/dispatch_status.rs (1448 lines), src/cli/tests_status_core_7.rs (703 lines), src/cli/status_maturity.rs (857 lines), src/cli/tests_apply_18.rs (585 lines), src/cli/tests_status_core_1.rs (701 lines), src/cli/tests_apply_19.rs (589 lines), src/cli/tests_misc_8.rs (620 lines), src/cli/tests_apply_7.rs (585 lines), src/cli/tests_apply_5.rs (585 lines), src/cli/status_recovery.rs (677 lines), src/cli/graph_topology.rs (525 lines), src/cli/tests_status_core_4.rs (707 lines), src/cli/tests_apply_15.rs (584 lines), src/cli/tests_fleet_ops.rs (531 lines), src/cli/validate_ordering.rs (675 lines), src/cli/graph_intelligence_ext2.rs (643 lines), src/cli/tests_status_core_3.rs (705 lines), src/cli/tests_validate_core_1.rs (814 lines), src/cli/tests_status_core_9.rs (528 lines), src/cli/graph_intelligence.rs (591 lines), src/cli/tests_drift.rs (541 lines), src/cli/tests_apply_16.rs (585 lines), src/cli/validate_ownership.rs (610 lines), src/cli/tests_apply_8.rs (586 lines), src/cli/tests_cov_args_extra.rs (538 lines), src/cli/graph_export.rs (517 lines), src/cli/dispatch_status_ext.rs (637 lines), src/cli/tests_validate_core_2_b.rs (667 lines), src/cli/tests_apply_12.rs (584 lines), src/cli/status_intelligence_ext2.rs (624 lines), src/cli/status_intelligence_ext.rs (801 lines), src/cli/status_quality.rs (685 lines), src/cli/tests_apply_17.rs (586 lines), src/cli/status_resilience.rs (699 lines), src/cli/tests_apply_13.rs (584 lines), src/cli/tests_validate_core_1_b.rs (655 lines), src/cli/graph_advanced.rs (551 lines), src/cli/status_operational_ext2.rs (556 lines), src/cli/tests_misc_9.rs (621 lines), src/cli/tests_graph_core_1.rs (1033 lines), src/cli/tests_init.rs (553 lines), src/cli/tests_cov_notify_4.rs (504 lines), src/cli/tests_apply_14.rs (584 lines), src/cli/tests_misc_4.rs (521 lines), src/cli/dispatch_apply.rs (568 lines), src/cli/tests_apply_4.rs (585 lines), src/cli/tests_status_core_8.rs (704 lines), src/cli/tests_apply_22.rs (588 lines), src/resources/network.rs (535 lines), benches/core_bench.rs (610 lines)", + "evidence_summary": "FileList([\"src/core/scoring.rs\", \"src/core/executor/machine.rs\", \"src/core/planner/tests_hash.rs\", \"src/core/resolver/tests_resource.rs\", \"src/cli/tests_graph_core_2.rs\", \"src/cli/graph_scoring.rs\", \"src/cli/status_resource_intel.rs\", \"src/cli/status_operational.rs\", \"src/cli/tests_apply_10.rs\", \"src/cli/tests_status_core_6.rs\", \"src/cli/status_security.rs\", \"src/cli/dispatch_notify.rs\", \"src/cli/commands/status_args.rs\", \"src/cli/commands/apply_args.rs\", \"src/cli/tests_cov_remaining_10.rs\", \"src/cli/status_fleet_insight.rs\", \"src/cli/tests_validate_core_2.rs\", \"src/cli/dispatch_validate.rs\", \"src/cli/tests_cov_remaining_11.rs\", \"src/cli/tests_status_core_2.rs\", \"src/cli/status_intelligence.rs\", \"src/cli/dispatch_graph.rs\", \"src/cli/tests_apply_9.rs\", \"src/cli/mod.rs\", \"src/cli/tests_misc_2.rs\", \"src/cli/tests_apply_11.rs\", \"src/cli/status_diagnostics.rs\", \"src/cli/tests_misc_6.rs\", \"src/cli/tests_apply_1.rs\", \"src/cli/tests_misc_10.rs\", \"src/cli/tests_cov_notify.rs\", \"src/cli/tests_status_core_5.rs\", \"src/cli/tests_validate_core.rs\", \"src/cli/graph_intelligence_ext.rs\", \"src/cli/tests_apply_20.rs\", \"src/cli/tests_cov_notify_2.rs\", \"src/cli/graph_quality.rs\", \"src/cli/tests_cov_fleet.rs\", \"src/cli/tests_graph_core_3.rs\", \"src/cli/tests_cov_dispatch_3.rs\", \"src/cli/validate_paths.rs\", \"src/cli/tests_apply_21.rs\", \"src/cli/dispatch_status.rs\", \"src/cli/tests_status_core_7.rs\", \"src/cli/status_maturity.rs\", \"src/cli/tests_apply_18.rs\", \"src/cli/tests_status_core_1.rs\", \"src/cli/tests_apply_19.rs\", \"src/cli/tests_misc_8.rs\", \"src/cli/tests_apply_7.rs\", \"src/cli/tests_apply_5.rs\", \"src/cli/status_recovery.rs\", \"src/cli/graph_topology.rs\", \"src/cli/tests_status_core_4.rs\", \"src/cli/tests_apply_15.rs\", \"src/cli/tests_fleet_ops.rs\", \"src/cli/validate_ordering.rs\", \"src/cli/graph_intelligence_ext2.rs\", \"src/cli/tests_status_core_3.rs\", \"src/cli/tests_validate_core_1.rs\", \"src/cli/tests_status_core_9.rs\", \"src/cli/graph_intelligence.rs\", \"src/cli/tests_drift.rs\", \"src/cli/tests_apply_16.rs\", \"src/cli/validate_ownership.rs\", \"src/cli/tests_apply_8.rs\", \"src/cli/tests_cov_args_extra.rs\", \"src/cli/graph_export.rs\", \"src/cli/dispatch_status_ext.rs\", \"src/cli/tests_validate_core_2_b.rs\", \"src/cli/tests_apply_12.rs\", \"src/cli/status_intelligence_ext2.rs\", \"src/cli/status_intelligence_ext.rs\", \"src/cli/status_quality.rs\", \"src/cli/tests_apply_17.rs\", \"src/cli/status_resilience.rs\", \"src/cli/tests_apply_13.rs\", \"src/cli/tests_validate_core_1_b.rs\", \"src/cli/graph_advanced.rs\", \"src/cli/status_operational_ext2.rs\", \"src/cli/tests_misc_9.rs\", \"src/cli/tests_graph_core_1.rs\", \"src/cli/tests_init.rs\", \"src/cli/tests_cov_notify_4.rs\", \"src/cli/tests_apply_14.rs\", \"src/cli/tests_misc_4.rs\", \"src/cli/dispatch_apply.rs\", \"src/cli/tests_apply_4.rs\", \"src/cli/tests_status_core_8.rs\", \"src/cli/tests_apply_22.rs\", \"src/resources/network.rs\", \"benches/core_bench.rs\"])" + }, + { + "hypothesis": "Spec & Roadmap Quality", + "method": "SpecQuality", + "falsified": false, + "is_blocking": true, + "explanation": "No spec file found (optional)", + "evidence_summary": null + }, + { + "hypothesis": "All changes pushed", + "method": "GitHubSync", + "falsified": true, + "is_blocking": true, + "explanation": "2 uncommitted file(s)", + "evidence_summary": "GitState { unpushed_commits: 0, dirty_files: 2 }" + }, + { + "hypothesis": "All examples compile and run", + "method": "ExamplesCompile", + "falsified": false, + "is_blocking": true, + "explanation": "No examples cache (run 'cargo build --examples' to populate)", + "evidence_summary": null + }, + { + "hypothesis": "pmat-book validation passes", + "method": "BookValidation", + "falsified": false, + "is_blocking": true, + "explanation": "pmat-book not found (skipping validation)", + "evidence_summary": null + }, + { + "hypothesis": "No new SATD markers (TODO/FIXME/HACK)", + "method": "SatdDetection", + "falsified": false, + "is_blocking": true, + "explanation": "No new SATD markers (0 existing)", + "evidence_summary": null + }, + { + "hypothesis": "No new dead code introduced", + "method": "DeadCodeDetection", + "falsified": false, + "is_blocking": true, + "explanation": "No dead code detected", + "evidence_summary": null + }, + { + "hypothesis": "All files have >= 95% coverage", + "method": "PerFileCoverage", + "falsified": false, + "is_blocking": true, + "explanation": "No per-file coverage data (run 'make coverage'), threshold: 95.0%", + "evidence_summary": null + }, + { + "hypothesis": "make lint passes", + "method": "LintPass", + "falsified": false, + "is_blocking": true, + "explanation": "PASSED (cached 1 min ago)", + "evidence_summary": null + }, + { + "hypothesis": "All match arm variants have test coverage", + "method": "VariantCoverage", + "falsified": true, + "is_blocking": true, + "explanation": "6 untested match variant(s): src/resources/package.rs::apt\", \"present, src/resources/package.rs::apt\", \"absent, src/resources/package.rs::cargo\", \"present, src/resources/package.rs::uv\", \"present, src/resources/package.rs::uv\", \"absent, src/resources/package.rs::other_provider, other_state", + "evidence_summary": "FileList([\"src/resources/package.rs\", \"src/resources/package.rs\", \"src/resources/package.rs\", \"src/resources/package.rs\", \"src/resources/package.rs\", \"src/resources/package.rs\"])" + }, + { + "hypothesis": "No fix-after-fix chains exceed limit", + "method": "FixChainLimit", + "falsified": false, + "is_blocking": true, + "explanation": "No fix chains > 3 consecutive commits", + "evidence_summary": null + }, + { + "hypothesis": "Cross-crate integration tests pass", + "method": "CrossCrateParity", + "falsified": false, + "is_blocking": false, + "explanation": "No cross-crate config (create .pmat-work/cross-crate.json to enable)", + "evidence_summary": null + }, + { + "hypothesis": "No performance regressions detected", + "method": "RegressionGate", + "falsified": false, + "is_blocking": false, + "explanation": "No benchmark cache (run benchmarks to populate .pmat-metrics/benchmark-status.json)", + "evidence_summary": null + }, + { + "hypothesis": "No incomplete proofs (sorry) introduced", + "method": "FormalProofVerification", + "falsified": false, + "is_blocking": false, + "explanation": "No .lean files with sorry found", + "evidence_summary": null + } + ], + "overrides": [ + { + "claim_id": "file-size", + "ticket": "PMAT-029", + "reason": "Override approved via --override-claims (ticket: PMAT-029)" + } + ], + "summary": { + "total": 22, + "passed": 19, + "failed": 3, + "warnings": 0, + "overridden": 1, + "allows_completion": false, + "health_score": 0.8636363636363636 + }, + "content_hash": "8b4154a56d78a8f879a13541f2f67055461756f3df9b6641813b4fdd2ac5568e" +} \ No newline at end of file diff --git a/.pmat-work/PMAT-028/falsification/receipt-2026-03-02T22-09-21.943749022+00-00.json b/.pmat-work/PMAT-028/falsification/receipt-2026-03-02T22-09-21.943749022+00-00.json new file mode 100644 index 00000000..2d28a015 --- /dev/null +++ b/.pmat-work/PMAT-028/falsification/receipt-2026-03-02T22-09-21.943749022+00-00.json @@ -0,0 +1,196 @@ +{ + "id": "019cb099-4a17-7c10-9ba3-b80a8c5b129c", + "git_sha": "ec72a1ceaf620a5b88cd56d23071e292608e6861", + "timestamp": "2026-03-02T22:09:21.943749022+00:00", + "trigger": "WorkComplete", + "work_item_id": "PMAT-028", + "verdicts": [ + { + "hypothesis": "All baseline files still exist", + "method": "ManifestIntegrity", + "falsified": false, + "is_blocking": true, + "explanation": "All 658 files present", + "evidence_summary": null + }, + { + "hypothesis": "The falsifier is active and detecting (Meta-Check)", + "method": "MetaFalsification", + "falsified": false, + "is_blocking": true, + "explanation": "Detected dummy gaming pattern correctly", + "evidence_summary": null + }, + { + "hypothesis": "No coverage exclusion gaming", + "method": "CoverageGaming", + "falsified": false, + "is_blocking": true, + "explanation": "No gaming patterns found in 668 files", + "evidence_summary": null + }, + { + "hypothesis": "All changed lines are covered", + "method": "DifferentialCoverage", + "falsified": false, + "is_blocking": true, + "explanation": "23 changed files (coverage check requires llvm-cov data)", + "evidence_summary": null + }, + { + "hypothesis": "Total coverage >= 95%", + "method": "AbsoluteCoverage", + "falsified": false, + "is_blocking": true, + "explanation": "No coverage data (run 'make coverage' to establish baseline), threshold: 95.0%", + "evidence_summary": null + }, + { + "hypothesis": "TDG score >= baseline", + "method": "TdgRegression", + "falsified": false, + "is_blocking": true, + "explanation": "No TDG data (baseline: 0.0)", + "evidence_summary": null + }, + { + "hypothesis": "No function exceeds complexity 20", + "method": "ComplexityRegression", + "falsified": false, + "is_blocking": true, + "explanation": "Complexity check passed", + "evidence_summary": null + }, + { + "hypothesis": "No vulnerable dependencies added", + "method": "SupplyChainIntegrity", + "falsified": false, + "is_blocking": true, + "explanation": "No vulnerabilities (cached 5 min ago)", + "evidence_summary": null + }, + { + "hypothesis": "No file exceeds 500 lines", + "method": "FileSizeRegression", + "falsified": true, + "is_blocking": true, + "explanation": "92 file(s) exceed 500 lines: src/core/scoring.rs (619 lines), src/core/executor/machine.rs (533 lines), src/core/planner/tests_hash.rs (503 lines), src/core/resolver/tests_resource.rs (560 lines), src/cli/tests_graph_core_2.rs (1041 lines), src/cli/graph_scoring.rs (655 lines), src/cli/status_resource_intel.rs (719 lines), src/cli/status_operational.rs (529 lines), src/cli/tests_apply_10.rs (583 lines), src/cli/tests_status_core_6.rs (705 lines), src/cli/status_security.rs (523 lines), src/cli/dispatch_notify.rs (728 lines), src/cli/commands/status_args.rs (676 lines), src/cli/commands/apply_args.rs (680 lines), src/cli/tests_cov_remaining_10.rs (559 lines), src/cli/status_fleet_insight.rs (706 lines), src/cli/tests_validate_core_2.rs (815 lines), src/cli/dispatch_validate.rs (1168 lines), src/cli/tests_cov_remaining_11.rs (710 lines), src/cli/tests_status_core_2.rs (707 lines), src/cli/status_intelligence.rs (656 lines), src/cli/dispatch_graph.rs (1142 lines), src/cli/tests_apply_9.rs (585 lines), src/cli/mod.rs (612 lines), src/cli/tests_misc_2.rs (517 lines), src/cli/tests_apply_11.rs (584 lines), src/cli/status_diagnostics.rs (578 lines), src/cli/tests_misc_6.rs (582 lines), src/cli/tests_apply_1.rs (514 lines), src/cli/tests_misc_10.rs (660 lines), src/cli/tests_cov_notify.rs (789 lines), src/cli/tests_status_core_5.rs (703 lines), src/cli/tests_validate_core.rs (511 lines), src/cli/graph_intelligence_ext.rs (759 lines), src/cli/tests_apply_20.rs (591 lines), src/cli/tests_cov_notify_2.rs (529 lines), src/cli/graph_quality.rs (506 lines), src/cli/tests_cov_fleet.rs (526 lines), src/cli/tests_graph_core_3.rs (757 lines), src/cli/tests_cov_dispatch_3.rs (501 lines), src/cli/validate_paths.rs (517 lines), src/cli/tests_apply_21.rs (591 lines), src/cli/dispatch_status.rs (1448 lines), src/cli/tests_status_core_7.rs (703 lines), src/cli/status_maturity.rs (857 lines), src/cli/tests_apply_18.rs (585 lines), src/cli/tests_status_core_1.rs (701 lines), src/cli/tests_apply_19.rs (589 lines), src/cli/tests_misc_8.rs (620 lines), src/cli/tests_apply_7.rs (585 lines), src/cli/tests_apply_5.rs (585 lines), src/cli/status_recovery.rs (677 lines), src/cli/graph_topology.rs (525 lines), src/cli/tests_status_core_4.rs (707 lines), src/cli/tests_apply_15.rs (584 lines), src/cli/tests_fleet_ops.rs (531 lines), src/cli/validate_ordering.rs (675 lines), src/cli/graph_intelligence_ext2.rs (643 lines), src/cli/tests_status_core_3.rs (705 lines), src/cli/tests_validate_core_1.rs (814 lines), src/cli/tests_status_core_9.rs (528 lines), src/cli/graph_intelligence.rs (591 lines), src/cli/tests_drift.rs (541 lines), src/cli/tests_apply_16.rs (585 lines), src/cli/validate_ownership.rs (610 lines), src/cli/tests_apply_8.rs (586 lines), src/cli/tests_cov_args_extra.rs (538 lines), src/cli/graph_export.rs (517 lines), src/cli/dispatch_status_ext.rs (637 lines), src/cli/tests_validate_core_2_b.rs (667 lines), src/cli/tests_apply_12.rs (584 lines), src/cli/status_intelligence_ext2.rs (624 lines), src/cli/status_intelligence_ext.rs (801 lines), src/cli/status_quality.rs (685 lines), src/cli/tests_apply_17.rs (586 lines), src/cli/status_resilience.rs (699 lines), src/cli/tests_apply_13.rs (584 lines), src/cli/tests_validate_core_1_b.rs (655 lines), src/cli/graph_advanced.rs (551 lines), src/cli/status_operational_ext2.rs (556 lines), src/cli/tests_misc_9.rs (621 lines), src/cli/tests_graph_core_1.rs (1033 lines), src/cli/tests_init.rs (553 lines), src/cli/tests_cov_notify_4.rs (504 lines), src/cli/tests_apply_14.rs (584 lines), src/cli/tests_misc_4.rs (521 lines), src/cli/dispatch_apply.rs (568 lines), src/cli/tests_apply_4.rs (585 lines), src/cli/tests_status_core_8.rs (704 lines), src/cli/tests_apply_22.rs (588 lines), src/resources/network.rs (535 lines), benches/core_bench.rs (610 lines)", + "evidence_summary": "FileList([\"src/core/scoring.rs\", \"src/core/executor/machine.rs\", \"src/core/planner/tests_hash.rs\", \"src/core/resolver/tests_resource.rs\", \"src/cli/tests_graph_core_2.rs\", \"src/cli/graph_scoring.rs\", \"src/cli/status_resource_intel.rs\", \"src/cli/status_operational.rs\", \"src/cli/tests_apply_10.rs\", \"src/cli/tests_status_core_6.rs\", \"src/cli/status_security.rs\", \"src/cli/dispatch_notify.rs\", \"src/cli/commands/status_args.rs\", \"src/cli/commands/apply_args.rs\", \"src/cli/tests_cov_remaining_10.rs\", \"src/cli/status_fleet_insight.rs\", \"src/cli/tests_validate_core_2.rs\", \"src/cli/dispatch_validate.rs\", \"src/cli/tests_cov_remaining_11.rs\", \"src/cli/tests_status_core_2.rs\", \"src/cli/status_intelligence.rs\", \"src/cli/dispatch_graph.rs\", \"src/cli/tests_apply_9.rs\", \"src/cli/mod.rs\", \"src/cli/tests_misc_2.rs\", \"src/cli/tests_apply_11.rs\", \"src/cli/status_diagnostics.rs\", \"src/cli/tests_misc_6.rs\", \"src/cli/tests_apply_1.rs\", \"src/cli/tests_misc_10.rs\", \"src/cli/tests_cov_notify.rs\", \"src/cli/tests_status_core_5.rs\", \"src/cli/tests_validate_core.rs\", \"src/cli/graph_intelligence_ext.rs\", \"src/cli/tests_apply_20.rs\", \"src/cli/tests_cov_notify_2.rs\", \"src/cli/graph_quality.rs\", \"src/cli/tests_cov_fleet.rs\", \"src/cli/tests_graph_core_3.rs\", \"src/cli/tests_cov_dispatch_3.rs\", \"src/cli/validate_paths.rs\", \"src/cli/tests_apply_21.rs\", \"src/cli/dispatch_status.rs\", \"src/cli/tests_status_core_7.rs\", \"src/cli/status_maturity.rs\", \"src/cli/tests_apply_18.rs\", \"src/cli/tests_status_core_1.rs\", \"src/cli/tests_apply_19.rs\", \"src/cli/tests_misc_8.rs\", \"src/cli/tests_apply_7.rs\", \"src/cli/tests_apply_5.rs\", \"src/cli/status_recovery.rs\", \"src/cli/graph_topology.rs\", \"src/cli/tests_status_core_4.rs\", \"src/cli/tests_apply_15.rs\", \"src/cli/tests_fleet_ops.rs\", \"src/cli/validate_ordering.rs\", \"src/cli/graph_intelligence_ext2.rs\", \"src/cli/tests_status_core_3.rs\", \"src/cli/tests_validate_core_1.rs\", \"src/cli/tests_status_core_9.rs\", \"src/cli/graph_intelligence.rs\", \"src/cli/tests_drift.rs\", \"src/cli/tests_apply_16.rs\", \"src/cli/validate_ownership.rs\", \"src/cli/tests_apply_8.rs\", \"src/cli/tests_cov_args_extra.rs\", \"src/cli/graph_export.rs\", \"src/cli/dispatch_status_ext.rs\", \"src/cli/tests_validate_core_2_b.rs\", \"src/cli/tests_apply_12.rs\", \"src/cli/status_intelligence_ext2.rs\", \"src/cli/status_intelligence_ext.rs\", \"src/cli/status_quality.rs\", \"src/cli/tests_apply_17.rs\", \"src/cli/status_resilience.rs\", \"src/cli/tests_apply_13.rs\", \"src/cli/tests_validate_core_1_b.rs\", \"src/cli/graph_advanced.rs\", \"src/cli/status_operational_ext2.rs\", \"src/cli/tests_misc_9.rs\", \"src/cli/tests_graph_core_1.rs\", \"src/cli/tests_init.rs\", \"src/cli/tests_cov_notify_4.rs\", \"src/cli/tests_apply_14.rs\", \"src/cli/tests_misc_4.rs\", \"src/cli/dispatch_apply.rs\", \"src/cli/tests_apply_4.rs\", \"src/cli/tests_status_core_8.rs\", \"src/cli/tests_apply_22.rs\", \"src/resources/network.rs\", \"benches/core_bench.rs\"])" + }, + { + "hypothesis": "Spec & Roadmap Quality", + "method": "SpecQuality", + "falsified": false, + "is_blocking": true, + "explanation": "No spec file found (optional)", + "evidence_summary": null + }, + { + "hypothesis": "All changes pushed", + "method": "GitHubSync", + "falsified": true, + "is_blocking": true, + "explanation": "4 uncommitted file(s)", + "evidence_summary": "GitState { unpushed_commits: 0, dirty_files: 4 }" + }, + { + "hypothesis": "All examples compile and run", + "method": "ExamplesCompile", + "falsified": false, + "is_blocking": true, + "explanation": "No examples cache (run 'cargo build --examples' to populate)", + "evidence_summary": null + }, + { + "hypothesis": "pmat-book validation passes", + "method": "BookValidation", + "falsified": false, + "is_blocking": true, + "explanation": "pmat-book not found (skipping validation)", + "evidence_summary": null + }, + { + "hypothesis": "No new SATD markers (TODO/FIXME/HACK)", + "method": "SatdDetection", + "falsified": false, + "is_blocking": true, + "explanation": "No new SATD markers (0 existing)", + "evidence_summary": null + }, + { + "hypothesis": "No new dead code introduced", + "method": "DeadCodeDetection", + "falsified": false, + "is_blocking": true, + "explanation": "No dead code detected", + "evidence_summary": null + }, + { + "hypothesis": "All files have >= 95% coverage", + "method": "PerFileCoverage", + "falsified": false, + "is_blocking": true, + "explanation": "No per-file coverage data (run 'make coverage'), threshold: 95.0%", + "evidence_summary": null + }, + { + "hypothesis": "make lint passes", + "method": "LintPass", + "falsified": false, + "is_blocking": true, + "explanation": "PASSED (cached 1 min ago)", + "evidence_summary": null + }, + { + "hypothesis": "All match arm variants have test coverage", + "method": "VariantCoverage", + "falsified": true, + "is_blocking": true, + "explanation": "6 untested match variant(s): src/resources/package.rs::apt\", \"present, src/resources/package.rs::apt\", \"absent, src/resources/package.rs::cargo\", \"present, src/resources/package.rs::uv\", \"present, src/resources/package.rs::uv\", \"absent, src/resources/package.rs::other_provider, other_state", + "evidence_summary": "FileList([\"src/resources/package.rs\", \"src/resources/package.rs\", \"src/resources/package.rs\", \"src/resources/package.rs\", \"src/resources/package.rs\", \"src/resources/package.rs\"])" + }, + { + "hypothesis": "No fix-after-fix chains exceed limit", + "method": "FixChainLimit", + "falsified": false, + "is_blocking": true, + "explanation": "No fix chains > 3 consecutive commits", + "evidence_summary": null + }, + { + "hypothesis": "Cross-crate integration tests pass", + "method": "CrossCrateParity", + "falsified": false, + "is_blocking": false, + "explanation": "No cross-crate config (create .pmat-work/cross-crate.json to enable)", + "evidence_summary": null + }, + { + "hypothesis": "No performance regressions detected", + "method": "RegressionGate", + "falsified": false, + "is_blocking": false, + "explanation": "No benchmark cache (run benchmarks to populate .pmat-metrics/benchmark-status.json)", + "evidence_summary": null + }, + { + "hypothesis": "No incomplete proofs (sorry) introduced", + "method": "FormalProofVerification", + "falsified": false, + "is_blocking": false, + "explanation": "No .lean files with sorry found", + "evidence_summary": null + } + ], + "overrides": [], + "summary": { + "total": 22, + "passed": 19, + "failed": 3, + "warnings": 0, + "overridden": 0, + "allows_completion": false, + "health_score": 0.8636363636363636 + }, + "content_hash": "68e12e8adf66f9d1ca2b16dc90bd15acebb9b54e752abbbb503a400b7be4d3b6" +} \ No newline at end of file diff --git a/.pmat-work/PMAT-028/rescue/rescue-02b910bf-e6e2-4514-a497-3486f4d186ea.json b/.pmat-work/PMAT-028/rescue/rescue-02b910bf-e6e2-4514-a497-3486f4d186ea.json new file mode 100644 index 00000000..8968c42c --- /dev/null +++ b/.pmat-work/PMAT-028/rescue/rescue-02b910bf-e6e2-4514-a497-3486f4d186ea.json @@ -0,0 +1,21 @@ +{ + "rescue_id": "02b910bf-e6e2-4514-a497-3486f4d186ea", + "work_item_id": "PMAT-028", + "timestamp": "2026-03-02T21:46:42.122751142Z", + "violated_clause": "No file exceeds 500 lines", + "strategy": { + "ManualIntervention": { + "guidance": "Split large files using extract-module refactoring. Target files exceeding the line limit." + } + }, + "diagnosis": { + "summary": "Manual intervention required: Split large files using extract-module refactoring. Target files exceeding the line limit.", + "suggested_actions": [ + "Split large files using extract-module refactoring. Target files exceeding the line limit.", + "Re-run: pmat work complete " + ], + "generated_artifacts": [] + }, + "outcome": "ManualActionRequired", + "retry_allowed": true +} \ No newline at end of file diff --git a/.pmat-work/PMAT-028/rescue/rescue-8143d673-f366-4dc1-a00f-ef137d7b2705.json b/.pmat-work/PMAT-028/rescue/rescue-8143d673-f366-4dc1-a00f-ef137d7b2705.json new file mode 100644 index 00000000..52dd55af --- /dev/null +++ b/.pmat-work/PMAT-028/rescue/rescue-8143d673-f366-4dc1-a00f-ef137d7b2705.json @@ -0,0 +1,21 @@ +{ + "rescue_id": "8143d673-f366-4dc1-a00f-ef137d7b2705", + "work_item_id": "PMAT-028", + "timestamp": "2026-03-02T21:46:42.122705573Z", + "violated_clause": "No vulnerable dependencies added", + "strategy": { + "ManualIntervention": { + "guidance": "Run `cargo audit` to identify vulnerable dependencies, then update or replace them." + } + }, + "diagnosis": { + "summary": "Manual intervention required: Run `cargo audit` to identify vulnerable dependencies, then update or replace them.", + "suggested_actions": [ + "Run `cargo audit` to identify vulnerable dependencies, then update or replace them.", + "Re-run: pmat work complete " + ], + "generated_artifacts": [] + }, + "outcome": "ManualActionRequired", + "retry_allowed": true +} \ No newline at end of file diff --git a/.pmat-work/PMAT-028/rescue/rescue-eb68c057-5cac-4fdf-b0e8-8f56330e998f.json b/.pmat-work/PMAT-028/rescue/rescue-eb68c057-5cac-4fdf-b0e8-8f56330e998f.json new file mode 100644 index 00000000..4afa6dd4 --- /dev/null +++ b/.pmat-work/PMAT-028/rescue/rescue-eb68c057-5cac-4fdf-b0e8-8f56330e998f.json @@ -0,0 +1,21 @@ +{ + "rescue_id": "eb68c057-5cac-4fdf-b0e8-8f56330e998f", + "work_item_id": "PMAT-028", + "timestamp": "2026-03-02T21:46:42.122774677Z", + "violated_clause": "All changes pushed", + "strategy": { + "ManualIntervention": { + "guidance": "Push all local commits: `git push origin HEAD`" + } + }, + "diagnosis": { + "summary": "Manual intervention required: Push all local commits: `git push origin HEAD`", + "suggested_actions": [ + "Push all local commits: `git push origin HEAD`", + "Re-run: pmat work complete " + ], + "generated_artifacts": [] + }, + "outcome": "ManualActionRequired", + "retry_allowed": true +} \ No newline at end of file diff --git a/.pmat-work/PMAT-030/contract.json b/.pmat-work/PMAT-030/contract.json new file mode 100644 index 00000000..24651ab8 --- /dev/null +++ b/.pmat-work/PMAT-030/contract.json @@ -0,0 +1,5897 @@ +{ + "version": "5.0", + "work_item_id": "PMAT-030", + "created_at": "2026-03-02T22:34:12.132637641Z", + "baseline_commit": "6dc1d4c8aecef6270c9d79d5d5ffd398ebff5bab", + "baseline_tdg": 0.0, + "baseline_coverage": 0.0, + "baseline_rust_score": 0.0, + "baseline_file_manifest": { + "files": { + "src/cli/validate_config_quality.rs": { + "content_hash": "f0bb4d6639b69789a74c6fa91155b34ca6600257ca7136f2623ae7e9ab049227", + "lines": 494, + "functions": 26, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/secret_scan.rs": { + "content_hash": "6845f4704ed66bd435c620e0dd83b5e3f8bacb65571ee33d76ec9e16d9a89e5b", + "lines": 200, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_9_b.rs": { + "content_hash": "3a831a32ac2c14170211c76398f8ca81dda570c83f38df1e7ce7cafc5e3bae24", + "lines": 206, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/store_archive.rs": { + "content_hash": "1e3b5b828ede0561463196455eeaf0ca8e3bcaf7a186e4a7c655a77814be7378", + "lines": 216, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/fleet_reporting.rs": { + "content_hash": "0f004041c55291e5130d6b8762217ae7bc3121a309e9f8912ffed6c5ca1b4853", + "lines": 368, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase100.rs": { + "content_hash": "082e88670a307c41e4461619ea486580bab5efcf8b32a2645101677f689fb04c", + "lines": 204, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_fleet_ops.rs": { + "content_hash": "88ab77b4a769be588ba9fed9d48e35d5f7215e7a7476fcc04518e0de5021aaf8", + "lines": 531, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_15.rs": { + "content_hash": "888dabb060c0a2d85d4e41cf85931912a317a4e27fb8626fc54c8e9ac7c447d9", + "lines": 584, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/mod.rs": { + "content_hash": "8d9bb67095febd89ec5e0a9a6e0f1bc97a1454c28d674f36dc5357cdc8f8eeae", + "lines": 240, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/fleet_ops.rs": { + "content_hash": "4018fc6ea23d2e1faec50b593ceadb32beaefc69a1bf76ef39e3c0c0bad3dbf7", + "lines": 422, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/import_cmd.rs": { + "content_hash": "1aac0167c0c8c6a909b5725d36bb3fd5d92a67f1301fa69897be6117fe507246", + "lines": 295, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_7.rs": { + "content_hash": "513e60f3c6deaf043d81e9d38464483ce7cc79d4fb2cf2e6c4b5b26287aead7a", + "lines": 585, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/state/tests_process_lock.rs": { + "content_hash": "41e861f0d13f2c40d1aaeab5a594b62f02b39da9652be90c3991aa573016dc0a", + "lines": 85, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_check.rs": { + "content_hash": "8feb321d977d51fbfcbef8a625c807ddb8fd7c32c56c45bb712ab39423578c64", + "lines": 461, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_1.rs": { + "content_hash": "f5ddacf24be97d134f24e95a58e5f1300c3082766da76ad935e1c7e51fc58b77", + "lines": 701, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch_store.rs": { + "content_hash": "9d5df8d37533f8425e7297d017f2e33c955b76cf82652a1f126e5eb2c0b869de", + "lines": 120, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/tests_dispatch_b.rs": { + "content_hash": "b198ec9a4f125510c39152ba9dd89b831861c481ea5d387a987171a7d88c04c7", + "lines": 309, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_localhost2.rs": { + "content_hash": "dd03bc0e3ec79a5fd6befc95bebe05acb5cf0e136166b08ab2906f12b662f2ed", + "lines": 268, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_secret_scan.rs": { + "content_hash": "cc073b7a66b7a45c5db160d8c6f5cb20f0b9031ec777e36916d178bcde9eaf0f", + "lines": 263, + "functions": 27, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/state/tests_encrypt.rs": { + "content_hash": "07bccfcf40e2b5ad38e718da89204a331512f0c74e8c13dce22e6864e30bc5ac", + "lines": 61, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/conditions.rs": { + "content_hash": "834a0e865f4515947593fc5c5327d23504a78579aa8283aa689dfc48e864f1cf", + "lines": 321, + "functions": 26, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_helpers.rs": { + "content_hash": "f2c5aee07158277b5539833a90498b0755ffe6f1c50d16256a3f0989016bc7b5", + "lines": 150, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_quality.rs": { + "content_hash": "2c94ea204e4a115133bc709888f1e82c24e6253e59a85578bdf7c289a74d90c9", + "lines": 272, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_notify.rs": { + "content_hash": "c413f83c75c094afe92882c50880cdd8db88af26daeea15890fa9614723e78fb", + "lines": 789, + "functions": 45, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_2.rs": { + "content_hash": "b299404221428f44c430c474ff6684c540df14375ce9b1b68d648bc864bf0dc8", + "lines": 426, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_file.rs": { + "content_hash": "b04d499f3404375fc6c01ba7bcf748f8d33f5c515086550b602d3b7f84fe7ec1", + "lines": 308, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/state/mod.rs": { + "content_hash": "e0762e985be68ee38bcbfb5f03e876243ebd68d9184bddca38da517221441a81", + "lines": 335, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/planner/tests_helpers.rs": { + "content_hash": "20e2adedc50de5de8155b3f1060372f90561cc39b21bb5bcbfee8b85718daac2", + "lines": 90, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/drift/mod.rs": { + "content_hash": "b0094bbc32e0db8f94403762405412acca10817454dd12d37a299dadc01c176d", + "lines": 310, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_store_ops.rs": { + "content_hash": "ff798a3ac2085a89bd94731c6894851de85ce3393a5db0cf4cf400e6cad078cf", + "lines": 244, + "functions": 19, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_dispatch_5.rs": { + "content_hash": "b420a2f9200bbb1f3a86f8acf74d3c7556150877527ed8e643baea6b01630020", + "lines": 468, + "functions": 34, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_trends.rs": { + "content_hash": "64ba6ab06691fb40befafabba07c1ca9f42ef1b040dd8a5fc6949d7a03bd9aef", + "lines": 412, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_cache_exec.rs": { + "content_hash": "35bd26e595cbfcc6ab08a3cf4109c77a0bee2946efaa268e648810c6925166be", + "lines": 280, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/recipe/types.rs": { + "content_hash": "3fdb12d938b47d6eec1f737f3bec57f30ddcc53e293239feae792dd37d1b8823", + "lines": 65, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_validate_core_1.rs": { + "content_hash": "894b5d0c5ef5984c2d4fda8ed16182bd45fffa07cad15e9d477a822897fc4d6e", + "lines": 814, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_advanced.rs": { + "content_hash": "67ed06aaadd80dfd88bebac0074a53446643ab1885cb62fdc3a31b750fb9dbaa", + "lines": 372, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_failures.rs": { + "content_hash": "e74487d76644f9f54e751d50cd25018b0339d5b274c12a6a051d7f37269313e7", + "lines": 390, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_status_6.rs": { + "content_hash": "7aad92ee7550f4497bbf6ef8c8450ca3107b215fe6091fcd58bd1c1ba3b7ba8a", + "lines": 485, + "functions": 74, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_notify_2.rs": { + "content_hash": "96b1d9717c6957af6517e4297586f248abe8803f8c282001332cd194aeb284ca", + "lines": 529, + "functions": 49, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_destroy_1.rs": { + "content_hash": "3c0d589f84c8a17e42522d5b8be25e711f6344fedb9b7ce31ada530b64ef7f2d", + "lines": 257, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_7_b.rs": { + "content_hash": "bd7f7b8ac3b3ac62a3c27a9211af78ca6cd5ced4eb5cdcbe1d807fa6f3eb28c7", + "lines": 476, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_predictive.rs": { + "content_hash": "2f34cbe8058c7aaa467db4ced6efa82498cd3c825067615f25616ee8f8f4f381", + "lines": 489, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/planner/mod.rs": { + "content_hash": "7c07701fd6517c704b28c3dc0d946e0cd5adc8ffa371f09449e748734402f036", + "lines": 376, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/tests_hasher.rs": { + "content_hash": "d631ad2b887ce07688a8a0e87a5aff2d55bddd83d2217fb5b8203aac76552631", + "lines": 276, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_1.rs": { + "content_hash": "3b65e06a29308f5383fc8b645ea2e518932fc2f97a6c4a8ffa4f55bff7eb0626", + "lines": 514, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/parse_and_plan.rs": { + "content_hash": "e02dd5813db8ce9426d3038a24a8cbd129e753de4e57630fbaa872b686c7a10b", + "lines": 95, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_drift.rs": { + "content_hash": "5f34e558d5b53c082a28d43579f18cd4962307695c2e9fa782d4c2362399c302", + "lines": 381, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_fleet_c.rs": { + "content_hash": "9a0838106a48d52fbf5786bd4349607cce7a1acf56034112d9e945256a23d2f2", + "lines": 259, + "functions": 24, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/full_stack_deploy.rs": { + "content_hash": "56839d0659adcec2a1d782f0008bbc14a9c272f252bfd46bb5cd7dbe2164032b", + "lines": 185, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/multi_machine.rs": { + "content_hash": "04b230f6137c1cf850adeb484e49ffe4da9df5899f879ec799441db5ff51d36c", + "lines": 212, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_converge.rs": { + "content_hash": "c714edb89b5d6c1a1f63e42aab552d00fc1dfe4c523a43f514862c6c8f3d8320", + "lines": 339, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/planner/tests_when.rs": { + "content_hash": "7d781ca2803bccc31c5a5e4602b67933f9aa421dd2e9f70fa4b5c32eddf38d70", + "lines": 103, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/pin_tripwire.rs": { + "content_hash": "6642a1bbc18f4ff12b66e49e0e7751744ded7a5a4fdfcad6cb8aa991bb6bf3d0", + "lines": 117, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_9.rs": { + "content_hash": "9595bb38a7b853a08bef9958a0dc8652676b31974accc7cd153953e064f65ec2", + "lines": 585, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/sync_exec.rs": { + "content_hash": "4e91b0d79127d3b8c39c7b64ae527a802fdea0be8400406a722d3aa6da41094f", + "lines": 189, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_4.rs": { + "content_hash": "daf747d1945c7b4cc9fdcd35cae653abb2446da79354f4d1ace15a885b27bf08", + "lines": 585, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/planner/tests_describe.rs": { + "content_hash": "92b1a9b0f314c99d48ca801380eea19c8d8a97952ee947a29e25e649e48a7c73", + "lines": 77, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_3.rs": { + "content_hash": "037b95ee9ddbd52fd27e5076ec61dad745a62a96c65b190dcaed86b54f7a2164", + "lines": 443, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_cache.rs": { + "content_hash": "1e4c9ebe04fbde22726ab94687dd01bb3fe069daecfa5777a1108b2f966524bc", + "lines": 252, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_8.rs": { + "content_hash": "beab01b1c6f65e33a645fd11c61613674303bf57467816f1f1fe04ee1b898b50", + "lines": 704, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/gpu.rs": { + "content_hash": "d0ee4e02e497703403c3dfba64280886e5b4d0ee77164f2c1e7bce15b23293c6", + "lines": 196, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/drift/tests_edge_fj132.rs": { + "content_hash": "548bc6e30bbf5689453b1ffefda21385743466c3cf7b8baeba29069d569b3d2a", + "lines": 309, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch.rs": { + "content_hash": "57127062694b8d05fc282807ed5da44ecdcb454a250cb19504e13f39593f38d1", + "lines": 141, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/recipe/validation_types.rs": { + "content_hash": "f68276853e785ea6476c231e7aa420e9b9b4d6af0232dc4cf841ac3bb6849b0c", + "lines": 93, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_lockfile.rs": { + "content_hash": "0365f4c715e27d76c55d45058286cec808c70729a2d965ced366f4d3549f19a1", + "lines": 200, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/drift_detection.rs": { + "content_hash": "6319b9280486dd5580425f9e93df747b1a32d95f0ff06c5bce38f9c0e4ebcd1d", + "lines": 127, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_intelligence.rs": { + "content_hash": "5e77edc6f71d2664eddb5d0231eea7a01170920d47241fb2246ac48edc0251fc", + "lines": 656, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_core.rs": { + "content_hash": "32b268ebe8b7fdcf7fe1782dec7f04469c435abe99547311182d5e3f5afdfbe8", + "lines": 299, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_validate3_d.rs": { + "content_hash": "cf497a238c35b728a1c06baf2cd495c83321eb609903fb1a2af4f6ea5f7e9955", + "lines": 410, + "functions": 51, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/apply_variants.rs": { + "content_hash": "7fb2ff4c429a910521f9baf6668437bca47db6c49ebdc70574e1b38a380731b7", + "lines": 349, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "benches/store_bench.rs": { + "content_hash": "d8b658231c6bc6186a6974c761bbd9cb63e7b6744f60d56f0d570cf760c08feb", + "lines": 401, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase86.rs": { + "content_hash": "153172f7ef3c5139c3921114f76cfc53f40a54d98910d6b36f9f6dbbd6a91413", + "lines": 160, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_3.rs": { + "content_hash": "fa92eb256aacdaa41fd7b5968e61bc3caa011efba331b28f112fa5425904451a", + "lines": 475, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_edge_record.rs": { + "content_hash": "06e43c61e6982f518304ef15053cec6c917db1fceffc74e05ea068d9923ed59a", + "lines": 420, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/mount.rs": { + "content_hash": "c2a3832d37383b154b7771f9a943d0ff31758f4dd6f7367ce8f83bfef994dfd2", + "lines": 72, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_dispatch_store.rs": { + "content_hash": "7736a7d4745be01cf0eaa74fecbd03a67cd393801dc24b4de91990f7de7e7df2", + "lines": 133, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/migrate.rs": { + "content_hash": "55472d0eb74b18c26e56d523f8416c4d51e258223d5ac29ba47d0094221f64a6", + "lines": 433, + "functions": 19, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_graph_core_5.rs": { + "content_hash": "ae3424a2cefb17bb1f2ad298a20b261cbd415c077b7bb9d0706e74ef8fa24479", + "lines": 313, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/network.rs": { + "content_hash": "b1b8abdffb20b6563eb80db130032e0cc1f92f3e86c28f8917d6082e6e211807", + "lines": 535, + "functions": 37, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/blake3_hashing.rs": { + "content_hash": "ccf6727357b9f7774670eba775bfb4ef8ae608dcff6acbf70a4616e73d90f2d4", + "lines": 36, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/functions.rs": { + "content_hash": "31f6358703727288eb835d958f8c712ce3b97f031239d2569e58f9e9aee33c8a", + "lines": 165, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_args_extra_b.rs": { + "content_hash": "99a22cd37a5d03d14d7d61e1da4c41677c3c46a45480c43267aa657134d74bdd", + "lines": 420, + "functions": 41, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_5_b.rs": { + "content_hash": "f53c35dfbba541b5314c96e465bf4d70f91cfb37dfdb542490648323d960f409", + "lines": 474, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/substitution.rs": { + "content_hash": "066e4f1a9d041be568ba6528659f4d869d71368af226e0fc99dfefcb717fc79d", + "lines": 279, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/mod.rs": { + "content_hash": "9f6044672813dbffe20b724482ecb623a36ec42be35c525f8225de85d60206ac", + "lines": 186, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_counts.rs": { + "content_hash": "03cf2179bffbb3dd1c257375fab494bc5d968154375c543492c255fcd99b0f76", + "lines": 97, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_recovery.rs": { + "content_hash": "0d4cfff5a848ceaadac787b245e475aff436cf6297353d029a9b79c26e5dc304", + "lines": 677, + "functions": 22, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_5.rs": { + "content_hash": "1ee9123ad83ec56284041bdc2e895062a51b76ef3fd764d0a72a64adbfacbbd7", + "lines": 703, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_status_3.rs": { + "content_hash": "d953ba308efe6509163a04d8d0ab9b18b59435efe88b5d09bfa8ef2a72a18e10", + "lines": 411, + "functions": 72, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_graph_core_1.rs": { + "content_hash": "b996492b79f04f8f625bd3b70571a2f5141cc8abb40404afd8256f97d6a1af27", + "lines": 1033, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_args.rs": { + "content_hash": "d6ff2578cdef4fb0853e97436d525ab7311339457cbcbd9c0574d2f85ddc7c9b", + "lines": 472, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase101.rs": { + "content_hash": "74758c38fa148996d240fd23b5a951e82edddb5e50b95fd15c449275065a8f57", + "lines": 207, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/store_cache_protocol.rs": { + "content_hash": "e5dadaf2f46a18ca3e6d87c33d85aeac88143a65b406d196220f349109d14778", + "lines": 177, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_status_1.rs": { + "content_hash": "6bec4145c05fa7caaa3d05fdf3515f0782120a8385406fce9df4f4a3c09cd896", + "lines": 467, + "functions": 65, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_waves.rs": { + "content_hash": "982bf7d6f02720c27869d8e00dfd8eb3868b492a65bac78750eedbaf380ddbbd", + "lines": 459, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_6_b.rs": { + "content_hash": "7e2a14df6b54e692c97b64d08ea54685e4e3cf5ad33a56fe6722ef70de1ede3e", + "lines": 474, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_check_2.rs": { + "content_hash": "90f36300ab8d3ac244bea609b6f03f08247aea096fc30cbf25fb45a8cf6cb6f6", + "lines": 411, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_16.rs": { + "content_hash": "f26edc3898c0b3cc4167c24262fd5d6bbe9713971d0bccdb892f27833bd6180f", + "lines": 585, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_validate_ext2.rs": { + "content_hash": "5fbf94a6d3f412b5f5af8345da5944b2f9d0ca47b918e702b9aaf62d44c2c7fd", + "lines": 490, + "functions": 68, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_docker.rs": { + "content_hash": "d9dfa934ac8c8bfff1a3761cf5e0b4520fab47fe3f2996b2b10911788bd874fc", + "lines": 285, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/cache.rs": { + "content_hash": "b0a9420e9c7cad743ca5ee26f5b366e3f64a3599499f83e5dc8d7f526c2570ed", + "lines": 175, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/container_transport.rs": { + "content_hash": "03a9a741dbcb05d75a335dd97099bbcb2021d3b7badd7cec506d15202868b370", + "lines": 120, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/store_convert.rs": { + "content_hash": "9a4f53e95baf8df5a52f8585341337d69fe3b1b7e1586abae21419e9525fdabd", + "lines": 131, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_impact.rs": { + "content_hash": "00544fdc7f7188c598c92156eb38e420e1cd832ce406fcb903a977aa350e6d72", + "lines": 360, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/copia/mod.rs": { + "content_hash": "0e23b4a219ca632f3478d22ef3c04c705251af4838bc344c1e7870ef26b8b6db", + "lines": 239, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/types/state_types.rs": { + "content_hash": "77c870181340cd507179ef384395887fc0b16b2c9cd5c1ebbbfe920576174ba8", + "lines": 298, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_misc_2b.rs": { + "content_hash": "d5b42c215c27b1e08c7756f65bb265500ba10cd24bed9da74ed294ce1cde1ba7", + "lines": 452, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase73.rs": { + "content_hash": "30cf3a82640c3e614ba7b9dce1f9df02aa4c558dc4f1790f239e8d6c125deb16", + "lines": 283, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/lock_lifecycle.rs": { + "content_hash": "1a130f12406efe0f6b2b2fbd421fdd729e31df031526144625fa8fe8529848d1", + "lines": 183, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase97.rs": { + "content_hash": "74f9386a495bd24f35c4a62484a87edae6082d87a1085c0d5469cf4e2043d0d7", + "lines": 190, + "functions": 26, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/mod.rs": { + "content_hash": "d6f20aeacf53c77365727163bc1ba6263497103933a855622e5465ded5bd8891", + "lines": 42, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/service.rs": { + "content_hash": "b196fa1fe260d1ee4fbe5490d9e73fb475310871a762cd9962aa81be2e6bb56b", + "lines": 81, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/convert.rs": { + "content_hash": "ef229b7ab26af27013fe7550151b754c18ad2483b86b34f66d4f7aa3ebc9f83a", + "lines": 225, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_dispatch_3.rs": { + "content_hash": "100af1705a0d16182fe5a8969d0ca78019e0a877b49569b55e27cc654b33b0c9", + "lines": 501, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/tests_anomaly.rs": { + "content_hash": "7f8482500d6ec9b32ab2c892b71c8de993c19359baf1bdfc8d3301d9983d2c77", + "lines": 276, + "functions": 26, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/user_management.rs": { + "content_hash": "778853f748c4e51e356d3964dc284e1644806b380bda3393d2d02dd0ac2137d6", + "lines": 120, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/lock_merge.rs": { + "content_hash": "b4b7097556494d0affa4ecd89af8c3030b55570d213b020fa71d89b534392c9e", + "lines": 210, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_visualization.rs": { + "content_hash": "2226cd8758d6b12cffe2ccafda43f34104bfe7939d93bcfec710cd07bcc216a3", + "lines": 313, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_remaining_3.rs": { + "content_hash": "db47c0551191717e888422f39d498a0d91007c5eacbb1402db5a9561bff12c48", + "lines": 454, + "functions": 42, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/codegen/tests_dispatch.rs": { + "content_hash": "5b506a1421a453948b549e4863516566fbb8877a1c38da5119dfcb97ad105c3a", + "lines": 245, + "functions": 22, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase104.rs": { + "content_hash": "d0db279defc746e4a47f639ad9b51c180869322b81923f9e6111134c8bbf5bd9", + "lines": 213, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_analytics.rs": { + "content_hash": "5d5ee17e1dd1549aa2433d189257f59b54b718eafff552913e5e0187de17a1ea", + "lines": 424, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/tests_hasher_b.rs": { + "content_hash": "f5b697b99c5076d1499ed56d039551e4d573da8e5140ab3199102cdc0ab119a3", + "lines": 265, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase64.rs": { + "content_hash": "d95d5a7569aedecf4c5f7da391965a342aaa6c897069d00986a67b8b41e9a65d", + "lines": 202, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_validate_core_b.rs": { + "content_hash": "f8e8c442d4363e1e2c39eb81b0c3835882c849775cb2d8db0e18cb4e59f8c7d0", + "lines": 495, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_dispatch.rs": { + "content_hash": "6358cf318479593cf597f419d64a74af27bac5f881755714a645d7abd9f4e972", + "lines": 466, + "functions": 29, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/observe.rs": { + "content_hash": "b9dcc21216e088cebd16c810444f8fd4534ee871fb5097886a30e14f62b83e71", + "lines": 363, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_graph3_c.rs": { + "content_hash": "d4d7d08d99de4e8d2d5c7c80c481d2077dbbaee1a84d7cb7a4fb1a8ceb9eed44", + "lines": 267, + "functions": 35, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_remaining_2.rs": { + "content_hash": "2e75f5536689c2c76cefac7ebbfa69de9c81e67487ad5f43b3bc21304178843d", + "lines": 379, + "functions": 50, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_notify_3.rs": { + "content_hash": "216bccf19aab69f190b04af25c296385f62577edc54028435be95a11066c2be7", + "lines": 474, + "functions": 51, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_intelligence_ext2.rs": { + "content_hash": "f1d0f601b3f665c3dc7dc2314caf87827e1ac030ddf81de17aad5e156b307ff6", + "lines": 624, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/container.rs": { + "content_hash": "45a546877c6bdbd441e67802d0eae4567010e93f57f048487a15c690b71c234d", + "lines": 168, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/gpu_container_transport.rs": { + "content_hash": "d23eca486eb1020410cd6f894b19be747524b4552a22ebb07ce5b5e8fe03e84a", + "lines": 220, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase69.rs": { + "content_hash": "2f2bcf585b5143f5b20d41afab3af4b82173d27fc481a5586adc2e418465110d", + "lines": 280, + "functions": 24, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/planner/tests_hash.rs": { + "content_hash": "fa0a25c1be61ccf3f6830d992e536963e5be7dedfd6fbed0980df66e659ba8df", + "lines": 503, + "functions": 26, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase66.rs": { + "content_hash": "0d4492c526b77f8aa5d53713e6a1ef457a203f56bd8742765463fea2cd702256", + "lines": 204, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/tests_container_b.rs": { + "content_hash": "3e362db276afe5b00807edd1bb908ab0d43ede1ac1e2380756745d1dcee91e65", + "lines": 360, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_plan.rs": { + "content_hash": "5aea601bb36efb618cf588cf6b9e5b0bf6d21064478d68de5b8f7571aea43f5c", + "lines": 475, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/recipe/validation.rs": { + "content_hash": "ffaa1f188e22ad0d1fa3d77f17273174eddae18e8e62cdeef3cc7272b34a6dce", + "lines": 36, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_4.rs": { + "content_hash": "adfe0851995390d19faae73140f40d2f5b7c70a730026d0a8410ae7eb122672c", + "lines": 707, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_core.rs": { + "content_hash": "6b23213ebaebf35c315cc8c8b6b36d574434ec9561e378484c287df2ad967f09", + "lines": 378, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/types/tests_config.rs": { + "content_hash": "62f198f513cd6611e7b3746054fbb8f7280ed719277043d12fa10e5729e5586f", + "lines": 447, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_check_1.rs": { + "content_hash": "c973bc13a84441411cb93e5fd8321693edab02f864f5e042455f368cb350c0a1", + "lines": 482, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_fleet_b.rs": { + "content_hash": "079ef5be1709818426bf9b485cfa249617ca2acaf46c0dfbceca1dff39fdcc22", + "lines": 314, + "functions": 30, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_fleet.rs": { + "content_hash": "1c0159832f389c93c2591da2ee366acf6256f9333c0025cdc581eb4e2f525207", + "lines": 526, + "functions": 51, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/hf_config.rs": { + "content_hash": "69473bae90f1e31f7888afc480eceba0ce62a3188f44f2727bde0830c0767bab", + "lines": 293, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_security.rs": { + "content_hash": "534f8faf855d2ebe94871452b0e993c762ba38be7127c95f198d3f6e26dc8c49", + "lines": 436, + "functions": 28, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_paths.rs": { + "content_hash": "f744e57ef946a04fa8ab74b4b2a5c04a382e2ec42a7cf6b3a78fb6467babad98", + "lines": 517, + "functions": 19, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_governance_ext.rs": { + "content_hash": "594e07b068c78f44240d180b9da8754d0800db3c1ff3282436bdf07a126dbaf8", + "lines": 487, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/status_args.rs": { + "content_hash": "b2df8deccc2c8cd18bb80be47098e390cb5dbf7cd6a16c74163be10113c56180", + "lines": 676, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/helpers.rs": { + "content_hash": "7cdf36a2f59e6dcf0e334b47db74a7877ba11321c4565a75c68745817abcec35", + "lines": 74, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/anomaly.rs": { + "content_hash": "239d090e52456c1d1579249311e148080231cd73796da9db0bf333f2fbb0bbf3", + "lines": 331, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/kernel_far.rs": { + "content_hash": "bafdeac640d0494aae58e3ae0512cdafacc7b6aacfa43c014bc085e4a238a600", + "lines": 139, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_8_b.rs": { + "content_hash": "9d0b1701b10b92390265cf41b623c1234fafd0e600e7fedb75a70a73de503993", + "lines": 474, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/codegen/tests_completeness.rs": { + "content_hash": "911cabd0471feabd23fc8d140273235e9042a8d8b8f9b6e8759cdc5c579c92d9", + "lines": 280, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_20.rs": { + "content_hash": "ff9041e68cce47cc5cf528994fd0679b0d7ec933d98b9e618a6a95b35f79512f", + "lines": 591, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_drift.rs": { + "content_hash": "057857ab9c58a347b6da69e3895f2cb9d7c3f93561fdd29858e7fcb4a41b4234", + "lines": 541, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase74.rs": { + "content_hash": "769ca19a23eeea8da2e900c8ab4dca4d1ffcfd0b29c03f9133b8396ef000131a", + "lines": 281, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_lock.rs": { + "content_hash": "f7421ffba17f648c183009ee32a2f9f35e75a8e6870b962a25444f517d30c367", + "lines": 492, + "functions": 65, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/conda.rs": { + "content_hash": "92a0b3d6e29c245f814f7e4b524dfab625f49ab2b6b2f4374a5fc1c445a96d55", + "lines": 307, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase102.rs": { + "content_hash": "28ceaba1ffaf865a6947a081b160e034a05ea8cb3a0969068df6dd7b63d550fc", + "lines": 206, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_filters.rs": { + "content_hash": "2c04e083f7fa64028db31cb2d1a0c8181322a6ab0e715ec3d470d1fd986c4065", + "lines": 400, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_remaining_4.rs": { + "content_hash": "c8529446eb09eb388bd644f5dec34d0a0f65c52a4a3180b6328e168c22ea1313", + "lines": 427, + "functions": 44, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/secrets.rs": { + "content_hash": "128f94dbc3f53c2a599e3c0b70b8efdca8b785b4d3303bfe07bead8a30a65ad6", + "lines": 201, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase98.rs": { + "content_hash": "3ef40d8eb024410a388a63b957bcbd8b4b2de79e9bcf915cbc13ee6c14666cb7", + "lines": 251, + "functions": 33, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/lockfile.rs": { + "content_hash": "be61e70b63d980a44ccc9a57da9cfc04fc6cf842cea0b3724d756dda6c304caf", + "lines": 98, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_resilience.rs": { + "content_hash": "c6fe3613bcb0c1d81ea3370da4237e88a3e0ecb46066f5c9de84aefde1a8acd6", + "lines": 252, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_bash_provability.rs": { + "content_hash": "fb5b01227d3d1ebf0c4b2b25a9585c3a3314a1dc8e3bb3917bff8ef1c7b6072a", + "lines": 137, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_remaining_9.rs": { + "content_hash": "e6392c9f422e76d22599cff1f48d9f31e9b9108407425b644600e96fcaca726f", + "lines": 466, + "functions": 29, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/shell_purifier.rs": { + "content_hash": "f94c295e75a0ac051d88da44468ba898864eb937bfd8edc2409f61e7d0081fc0", + "lines": 125, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/destroy.rs": { + "content_hash": "99e2446766c777d132f7a0fd113bcc5f077e937b9642ae77f67b35523b02a902", + "lines": 275, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase77.rs": { + "content_hash": "69145b26c382ffe4ef2045d6d4ef57b1170bfc14a8e7916f93ed8f5018edfa22", + "lines": 291, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_intelligence.rs": { + "content_hash": "7d8eeb261c0ea722ff0134954f29b9742ef87ae24b9bf2ea78290081e5d3aa25", + "lines": 591, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_security.rs": { + "content_hash": "5d1b6687847ae9c6e7a567c84429575f5119a37a59e1efd0c0a38291e62cd054", + "lines": 523, + "functions": 28, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_compliance_ext.rs": { + "content_hash": "52a51378bc98cdc284777bcdcf3966d365b46e33ec9efe10dd2881a3529cca75", + "lines": 430, + "functions": 26, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/expansion.rs": { + "content_hash": "36e647edd310f9d8f1f30595e6a50c1b5f5f352a5da67ed77f65fa1f77649fe2", + "lines": 110, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_derivation_exec.rs": { + "content_hash": "4b5ee332750b330d1dec8780e7ca966c9d59b0ce17db88a4e0e946fccb94ec6c", + "lines": 281, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_analysis.rs": { + "content_hash": "091ac709f81cbf81016d5afc8919f47ef129402f50c9cd93d069b70a4ffd24ee", + "lines": 315, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/plan_args.rs": { + "content_hash": "9a317401d68dba54b512ebdb9bda678819a39a4d05243b89030a37bca0f46683", + "lines": 85, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_9.rs": { + "content_hash": "12615ab2ab0e95d47c3c356ba5e0e6667a55ca386a23bbac175113fc13e436b0", + "lines": 528, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/profile.rs": { + "content_hash": "f9e15c83686dfd5b0bff531913bd671911c4954ed06050b596785e6a84f6a110", + "lines": 117, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_resources.rs": { + "content_hash": "86864584590b7104eb79dfd942dadbf2edf0539ab749e174a78d2419452cd311", + "lines": 376, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_graph_core_3.rs": { + "content_hash": "6a6e4b1bf89ede7219bbbb1b88aa7d259acf7bafacbae1b432de0948fa4a0f7b", + "lines": 757, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/closure.rs": { + "content_hash": "5fec3b8c5ad2d7118ba1f7757bcbd756b0d424d574d7ca997de51c42ec3e660d", + "lines": 65, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_fleet_ops_1.rs": { + "content_hash": "5db177b33104bf4e9c9a6ae3060e9aebfef6341175f3f69727b3c8c0a51acfbb", + "lines": 50, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_contract_scaffold.rs": { + "content_hash": "0579aec27efbb232895792b359733ae85c571abf51c7e4c5282de8700fa607f1", + "lines": 154, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_resource_intel.rs": { + "content_hash": "86d33a5d43a4e1f5cbe8e5672e93f066e17fe64dd817f2fe5c014a63696f2557", + "lines": 719, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply.rs": { + "content_hash": "4f1d614e3fb5124e194b4f2c9defe98b4a1f0c9a23d2e088c21dbc919b51c539", + "lines": 416, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_validate2_b.rs": { + "content_hash": "974a2b402c5e7bfb983b4cc2cba4dc2ad11b7a87639177521a59d8501ece79f9", + "lines": 386, + "functions": 38, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_6.rs": { + "content_hash": "22c4fa186d85c509e018a731fd3ccdea1d2ae83cd9152786fbda97376fd55c68", + "lines": 401, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_12.rs": { + "content_hash": "a23683659b99ed53f1d94379a414bb1088617b377ef4d672d3c7523e6330e14b", + "lines": 584, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase70.rs": { + "content_hash": "2a92c7115123b83d8d0b4160f3e9332abbea33cd994106a7e8b93c1fc3e2f376", + "lines": 280, + "functions": 24, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase80.rs": { + "content_hash": "e267ae411af084f1442b0496b55e22ff991b270d68e7642f4846bef5f10c9bb7", + "lines": 289, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/apply_helpers.rs": { + "content_hash": "f2146aaa4e9defac6876e53922ffe7d317ccdee4285e8658a6fc5368fe1f935b", + "lines": 131, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase99.rs": { + "content_hash": "3e99a44c3fe4b8c4734bb170b82d7dd8825335c7b3980ef6f7504341aba9e153", + "lines": 237, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase89.rs": { + "content_hash": "70e540ec4031f62163e0d14d04422bcb6c2fed1e957ee5d70ed2e689b4a6c1b8", + "lines": 308, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_graph_core_4.rs": { + "content_hash": "d32b0a6227cd5c5b044c1af69d88b0f1c82c74a32e2a87ffa5304291f1e9512f", + "lines": 92, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_show.rs": { + "content_hash": "c359a181ae6f3ef222eef0553c6d2c97aeb833b8c5cbfcac40da7f46bc9d269f", + "lines": 248, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_8.rs": { + "content_hash": "89614594099be17f2f6a2821b5ad27cd9cf91a944f698a4b769f8f75f7a72c4e", + "lines": 586, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_provider_exec.rs": { + "content_hash": "6b604ee2342537d09cf5d78bb383ed6db8f660d48935d1dd3b0e2ecb691ef659", + "lines": 364, + "functions": 29, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/local.rs": { + "content_hash": "42df3372977903d61a060ee4949826793a11e046b38b022b59743c864b4d4f9a", + "lines": 149, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase63.rs": { + "content_hash": "93d3e0b887e81b6e5c2c73b7f8d09f26bc109f8523e25b3a1bc1e0a6a3bafcdc", + "lines": 193, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/far.rs": { + "content_hash": "705a31a330e322bc78bba74d76cabb4e90d8cecaf72d126745a70886d0a0edf8", + "lines": 196, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/lock_ops.rs": { + "content_hash": "3cd3c37af12704bfc3fa891cbc44f7b36fa604d41e3b72cc0ff281c6b782e362", + "lines": 443, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_resilience.rs": { + "content_hash": "dcea006a4ac80083d38f24c48919388010b334fd0287642546d62f75efb34c93", + "lines": 268, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/history.rs": { + "content_hash": "b71f21a1943143a0694336ed32053d28a4bea1275320430367ba14fa3e64977b", + "lines": 268, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_misc2_b.rs": { + "content_hash": "f18f96451cb4e19cefa0a985dceb3afa1871798d2e3be85141e1685234c17263", + "lines": 298, + "functions": 27, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/purifier.rs": { + "content_hash": "baa6efd98650a7215e3625953387dee9e5dd2124122d2bdcdc5000da2200c967", + "lines": 91, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/validate.rs": { + "content_hash": "6233d0994ccaaafc3c9112422e700b7feceb4883f7baff463b6595bd623d2455", + "lines": 131, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_10.rs": { + "content_hash": "e7a843ea9f0d533ffb309415b24a45c3132dcf8e4b48d21e4850628571201583", + "lines": 583, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/tests_resource.rs": { + "content_hash": "3ea3003b8291fdab8bfb152d49db42e4c45dab1bf916a89bf2e1650f71aff822", + "lines": 560, + "functions": 26, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_transport_2.rs": { + "content_hash": "e7e61b26181d06ba30ff3d35cb9b5c6d5212a30db2af157146d8f1f2be051ab5", + "lines": 467, + "functions": 30, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_2_b.rs": { + "content_hash": "a1eaeaa40f75ae55def5722999b1227c8521a27c8218d074cbfd6b5e6c3df93a", + "lines": 476, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/recipes.rs": { + "content_hash": "5bf513847e93b5f32beb6ae07e4ae664a42f57ef1693e93b1449c4eb9f3a20ef", + "lines": 138, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch_status.rs": { + "content_hash": "2ce47fd7c3525a87d5bf3fc9b4b0eeb71adca86bd4870322292cd259efd1a4f1", + "lines": 1448, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/state_management.rs": { + "content_hash": "f59be77c50f3a54522dee4c421f271bba4e36033ec2c0013173368733f33d7a6", + "lines": 125, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/score_cookbook.rs": { + "content_hash": "67ff3d234d87993e17cf72b00da5d0b9c2c3237f7f09ff2a656c19a60459af18", + "lines": 104, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_parallel.rs": { + "content_hash": "f82bb8f72e4d6b25694ffeb7abaa01e6e77934ee96fd2b897ff6845fb18f6582", + "lines": 404, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_1_b.rs": { + "content_hash": "33221eefa354e0482515d3ac44909c8b218d54435078814040b93ddc6f1d6f31", + "lines": 208, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_graph.rs": { + "content_hash": "d6324c03b4c5dcf421b9d0a587e46c4ddd47629af49d78a4ef5351471ce7b727", + "lines": 335, + "functions": 53, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/state_args.rs": { + "content_hash": "6cc54d6c4a4cff4af87c3b3abe9772c5ce5be1e2ea9647f5c6f8f72350097dcc", + "lines": 53, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/recipe/expansion.rs": { + "content_hash": "83036fee9f0a827503f00b1e4f68d826454a9c419914b30c38ae27f23eec05e8", + "lines": 208, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/helpers_time.rs": { + "content_hash": "3cc6c787859c42c701962a8943fb8d48c502416c59af9add56c40b500a1b278e", + "lines": 82, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/docker.rs": { + "content_hash": "304c938d197087b019e5ef65b74eca68511002b2e9b60a544344c659ca1dbdc6", + "lines": 88, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/event_logging.rs": { + "content_hash": "a824a3e869cc765c381607a296288475026397ea7d5f90a33965d0902109ba22", + "lines": 141, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_args_2_b.rs": { + "content_hash": "0738bf02be170c9d3e3e2d41c1a1ce191e7fa56431c68afc9459427c35b02c1f", + "lines": 161, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/infra.rs": { + "content_hash": "7251b32b2e6046c6473ce1a8606134553996abc1a2419a0c1188f5a0bb622e61", + "lines": 483, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_8.rs": { + "content_hash": "1185e4f85d857d6ec63ecca39b7da844e29f93bc3fd9db14722ca67d425278a5", + "lines": 620, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_convergence.rs": { + "content_hash": "b634cfdcc2e5968ec6f0de4b3047422ebc5496d1a13d9800add776150d37f093", + "lines": 495, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_drift_intel.rs": { + "content_hash": "a1e382537802f1d90981b5a9d78b08857ec2e3f418dd56826c87e5fec3424b36", + "lines": 393, + "functions": 22, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/mod.rs": { + "content_hash": "a7103646daa0f2f7c25ce72ec7a06f770c5aadda9b6481f7b58fdf92680da303", + "lines": 131, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/tests_ssh.rs": { + "content_hash": "81604c0180ad81bcfc76902e10c0f90b1737185a18af42ad22b09888aded4d63", + "lines": 358, + "functions": 37, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_status_4_b.rs": { + "content_hash": "3032f88e69bbee38dc979ff676b6ae8c58e0e085b551bfeafa4b3dec3fdfe768", + "lines": 335, + "functions": 42, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/store_ops.rs": { + "content_hash": "8f1c09ef38818d37d499deae48880fce98e537ec88ed2f717a18775b67cd1f72", + "lines": 311, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/includes.rs": { + "content_hash": "316b75cb0f563a0b3df5e4e18fb2e5a47283f5b73544559bee00e293f58a117a", + "lines": 51, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_mount.rs": { + "content_hash": "5f3ff36a90ea280516cdd7bed4f53353133d7c2d88d79f6eefd3e3fdda931d07", + "lines": 258, + "functions": 19, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/drift/tests_lifecycle.rs": { + "content_hash": "eaa542320d4c1728a3863d206050c808e1f22af47284c1d7489cbadb8c42c872", + "lines": 146, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/store_cache.rs": { + "content_hash": "2aac97200dcf326506b9c07b5c9c02801e250f8644969b137e48f11f4bc97502", + "lines": 266, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_health.rs": { + "content_hash": "967ada2de2f50e004169e6e3dfbc2b75807fd3adecdbe8ada6da3ca827a51172", + "lines": 403, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/mcp/mod.rs": { + "content_hash": "3201dad7d2470e767c9e463c855586d805719b6af472a51bf914d540e6d92687", + "lines": 21, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_6.rs": { + "content_hash": "d66062ef8be94fefd1417d960a820e1f1adf09e2cb1410ada5d04a465cf66300", + "lines": 705, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase88.rs": { + "content_hash": "cfa8ab8cf5825d7e35be208707abdc2be25b856612f93fb9945ad1990a248240", + "lines": 313, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/recipe/tests_validation.rs": { + "content_hash": "61a0c94cfe03eb4f564a727aa353bac5c17c02795165714c76cebb9b4e57ea5a", + "lines": 434, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/scoring.rs": { + "content_hash": "8171a5ffd79df712ac72d34b151c957979eecbebfad376bdc03a7e311b63859f", + "lines": 619, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/mod.rs": { + "content_hash": "a531550613b6809bd1819e24a0825160f11c2ce53bcfd7a5ed0749070a530b55", + "lines": 36, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_convert_exec.rs": { + "content_hash": "492f4073d6e354e01cce99d946506f5e02b3d6d5b9f85861427cb608fc3f824f", + "lines": 294, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_validate_core_2.rs": { + "content_hash": "67567ad5c7465e4d4e14ace33964dc264e07bc82854f5fe42d2ae7cc202a8f4d", + "lines": 815, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/task.rs": { + "content_hash": "cac6107376b85edd8b7c7a1fc9cbe8772a7508d549a74b183420601ddc15ef37", + "lines": 165, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/validation.rs": { + "content_hash": "8346d643a4450c0aa664b04298cd5e3b8483e74ae34344148daa81d625359f30", + "lines": 118, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_2.rs": { + "content_hash": "f3d8545a03426803894163f1ee8e3dcb12b3df37d3a7d7dd98a5e73d86f00e3e", + "lines": 517, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_args_4.rs": { + "content_hash": "2b82c0fb253b1f675d92841e3e329bb18b18c582fc8fdbd01eb3a72070fcf9e7", + "lines": 373, + "functions": 32, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_edge_apply.rs": { + "content_hash": "eed737476c55bb2a27aa55e9ab9172157c484deb7a587f0755efd51c74e71c44", + "lines": 465, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/tests_template.rs": { + "content_hash": "6dc64dac971eaba5ad71d818a09ef20d43bd1a8784af2c8054cdd59506722691", + "lines": 423, + "functions": 30, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_security_ext.rs": { + "content_hash": "f66fe1fc9ea7278efa07102a67120cb60ec48798452be1d870ebc4394f7fa674", + "lines": 486, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_advanced.rs": { + "content_hash": "aa590017de84e89d21e22efdecf1d440d2b7ac635bb710769779c6b2955e21d6", + "lines": 551, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase79.rs": { + "content_hash": "583375143149ffeb8915a78e7db0cd28738fd9c1fc5769cb620471a90a7c6dcc", + "lines": 289, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_store_purity.rs": { + "content_hash": "eebe1c9b5a2e3ca8a5f626c15c2bd1029d84d887f7e111ae56e36c213e051021", + "lines": 191, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_import_cmd.rs": { + "content_hash": "ca8678572947c76d895196e76c9ae6f6acb300fcec1481e9b572e38aae0b484e", + "lines": 228, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_service.rs": { + "content_hash": "650c36e857b38efd8b572e3a91b19bed1bf5328d7af68080a5f4f4fb73ef3d38", + "lines": 421, + "functions": 30, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_diff_cmd.rs": { + "content_hash": "e57e4cd9dc1058e813d4dc380a24eab862caa0758b90fcad6d828ce195ee13e5", + "lines": 497, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/tests_proptest.rs": { + "content_hash": "0eb89718248287a3dfe83e3adb93336309e3831ae0d267cc00b660d9b06e7889", + "lines": 76, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_gpu.rs": { + "content_hash": "3fef1a4a3c63a750a6410c318f593afe6d2de68169f76c456480671f5ace8852", + "lines": 447, + "functions": 29, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_policy.rs": { + "content_hash": "61be353f6ee2e40b9e535c856ebe1c0de628f50f5c1a4b1750834c72b7b9c874", + "lines": 258, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_misc_3.rs": { + "content_hash": "12d7d262f0c2b2c8e449e681dd8f262362e21237040e8da02a8deecf2d527a42", + "lines": 428, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_fleet_reporting.rs": { + "content_hash": "3901fe210760f37694820731b9431fe74558573a333681f17b9da1955f03d19f", + "lines": 86, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_operational_ext2.rs": { + "content_hash": "fdeba2e3ad4a85d5d5aeb8d0718440d13adc7c090c8cd91276ecb23f210bc43e", + "lines": 556, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_validate_core.rs": { + "content_hash": "c1ef02ddf50212d8d094cb6c1c229723f363457794e1a5b5f404081b3f8095a9", + "lines": 511, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_compliance.rs": { + "content_hash": "189ea51340b3381cae608da38eeac89e569cc1f7f918b75cfb66d82a9dff6499", + "lines": 208, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_maturity.rs": { + "content_hash": "efe035a279d4f04b37e591a91b8b4cf96ce24185fafeb5e967b2a0cff197074e", + "lines": 500, + "functions": 26, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_store_import.rs": { + "content_hash": "102b2669a47ca0cb3b214d03010604a50de4d039e80eb4e94b4ba2b92824c7a7", + "lines": 111, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_edge_details.rs": { + "content_hash": "e4b0c31d73409f22aa1213b0376f5e9a02980a317e4ba6670c925afd5f9a51ef", + "lines": 403, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_misc_2.rs": { + "content_hash": "0c72d3e8511ed1c5abac170244cd9ec3a33a39c6fd14f8ce2dacc31e8ed07ac7", + "lines": 391, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase90.rs": { + "content_hash": "e9ec934562b29f5243ff4ce89b3d1c0d5ec5010fa5c8b7b0a10e330c1b86050c", + "lines": 309, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_export.rs": { + "content_hash": "7e4f37f57e8ba466cde502437cdf0bd43eaef2868e103586294a836e10250f3d", + "lines": 517, + "functions": 24, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch_graph.rs": { + "content_hash": "6880907d29ee1e23db3610830ce143e3ce6c1e5d1b9a7d3fa238e5c3d9b98c81", + "lines": 1142, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_core.rs": { + "content_hash": "4d729bb1416b25dbda925c1936253ee3ba2b4f861f3b82d7200ac656a67a1516", + "lines": 223, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_3.rs": { + "content_hash": "2ddf48816c11aede0141eddc648728528b6c55f6e532638c37db7a9e3ef97482", + "lines": 705, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_sync_exec.rs": { + "content_hash": "bb4dc3ceaad23236a7d4e7be78277bb01968a4c119bfcaea2d9f4125afeefd87", + "lines": 385, + "functions": 40, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/lock_core_args.rs": { + "content_hash": "273fd1b5632fc1d2d997ccd6f3b94aea533dd79c2845ebe5abdb246aa7769c80", + "lines": 254, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/drift/tests_basic_b.rs": { + "content_hash": "2a5e76b7562ab9156b12f478491a85958c43330dcd8907caaaa876a76177364c", + "lines": 355, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_show_2.rs": { + "content_hash": "bd627925118bd47ac5bbbca0b90951c6fae93b5bbf1617a2ab27dd5bc6a8f0ce", + "lines": 225, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase67.rs": { + "content_hash": "ec27a9281d427d21d74d40932e78ec67830df492548a4b4cb808f5b48abd75af", + "lines": 191, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/mcp/registry.rs": { + "content_hash": "75647eabf9f4d7b78af10988944732a965bec55d05593469767749cd3d54866f", + "lines": 244, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/store_pin.rs": { + "content_hash": "225c1a08bd1f8c92618529ce4bc3214abd0c58b601a7a8c7408170d728e959b5", + "lines": 211, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_weight.rs": { + "content_hash": "67e5cd261fd46b776e6f950d280ec214968c66ceb74a0a906f03327791b9af44", + "lines": 410, + "functions": 28, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_remaining.rs": { + "content_hash": "b3ddd352bd2e84334ae283aad442cc30f6509aea1a6951c618413b5bc39a37a9", + "lines": 412, + "functions": 36, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/tests_scoring.rs": { + "content_hash": "7a4fddcf8dc5af786a9dbe5148c85780476095ce1c582b13e4cf2f864d017062", + "lines": 367, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/hasher.rs": { + "content_hash": "4a099da8167b27b580663b6be81f6964b35d00c5083a52c4396481338077d97e", + "lines": 93, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_rolling.rs": { + "content_hash": "cbca7f9c8fa3f645deb82608388fe64e767b9550f3388416630c2d5a233b8aad", + "lines": 261, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_observe.rs": { + "content_hash": "acb6154c8558487eee51f8b71d5320750e5c073cc58643ffcd11f53b2e380db0", + "lines": 413, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_provider.rs": { + "content_hash": "223070fc681c59757242061bce3987209d1f621c4ba1cfe92d0dd9d5a318de0e", + "lines": 263, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/reference.rs": { + "content_hash": "c2e29b14ebf4b4fa1e516a86b4a0b8dd7913e73d566f27d15a9fc571f9b3ecc9", + "lines": 80, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase71.rs": { + "content_hash": "6f4a1d72e31d38a48ab0a78dd51638a39bb062d8e9cdef372efd051c655c0abe", + "lines": 279, + "functions": 24, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/subcmd_args.rs": { + "content_hash": "f30161fb246f830e179318201829d0d887db3d017b98a3d18bc50ec637f33e24", + "lines": 120, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/mcp/types.rs": { + "content_hash": "cb8c7e82ad98e5597f9b9c97533399eaf4a0b6d108470ddf272d4ed74b10bc75", + "lines": 186, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_chunker.rs": { + "content_hash": "f0cc30924b1441600d59602f94906775f5a056ade2dd6f6f4c3c5cb9f412e675", + "lines": 136, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/contract_scaffold.rs": { + "content_hash": "50996afc43ee2745591ce7b4ff9a3fb25ea0912354f21bed5a0802871357da84", + "lines": 80, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_14.rs": { + "content_hash": "50450e6aaa6a7fff6ee109442e4ba0fc71a35ae53f7ea8f0e477cf32234fd1ce", + "lines": 584, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/mcp_server.rs": { + "content_hash": "b7126d57d09e74f70c23893061f14c2d061bb44f631451544776b412e52d0a98", + "lines": 53, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_validate.rs": { + "content_hash": "7b9db1114d00359a0bc997e5562cfbdc1c2b59b1e95fb423eaae4f35571af7e0", + "lines": 168, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_paths.rs": { + "content_hash": "98f7992ab6e2fcf7abb582a9ac94899efba591d83ca50724fb4631a5302d1ddc", + "lines": 337, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase106.rs": { + "content_hash": "ab55ebf79c9fc973a5a13a5bc5836d5690ad4f085c37fcf797aace755acfea91", + "lines": 207, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/score.rs": { + "content_hash": "697e597617672776bac2976841e12e91e9b8b040ebbd77b776d0e82c1078754f", + "lines": 51, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/store_gc_lifecycle.rs": { + "content_hash": "84199a2a5d6308319108d5ef380e57da3ed4f1a99c0239bb0fef9327d34ae2be", + "lines": 167, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_plan_1.rs": { + "content_hash": "ee8591122d1888f8a32f1424187ee7ea1750421a8d2ad71729357ad8dd54ca42", + "lines": 184, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/data.rs": { + "content_hash": "e38af36163c68498a96ab1edbb077a08efcad8e2a2e86cea14eba74590b70dbb", + "lines": 139, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_18.rs": { + "content_hash": "5cc232e1bbdfa286c5f61b9dcf404152c154bf83e9c19bc49543fbb7df7a75f4", + "lines": 585, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/test_fixtures.rs": { + "content_hash": "51f211f7c40ee50f9a04e7fbec3829c9349a737038a51803046a47e68842fe36", + "lines": 67, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/tests_dispatch.rs": { + "content_hash": "f8aeeb82af4295c3640425dc973d3fe86cb45df833613c5d243f5bc976cf4cdb", + "lines": 394, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_23.rs": { + "content_hash": "ffcf1444f241cce57ee0d1b35c936fc474b5749af87bdad1c3b5a254773cfa68", + "lines": 260, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/meta.rs": { + "content_hash": "ee76198a36d480e2f1147085306b65a8f851e26665bb42fe1f443aaa38095326", + "lines": 125, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_intelligence_ext.rs": { + "content_hash": "eeb9abf73fbfc962479c96003f7208a7ff1c33a9b00ae21afbc1ce91adcb8d61", + "lines": 759, + "functions": 27, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/diff_cmd.rs": { + "content_hash": "aeca8eb5893d02c7ec86beb7eb0c2f5708d34c497f74ae33047c5d9133ce2a24", + "lines": 378, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/validate_args.rs": { + "content_hash": "9ac072f4f1c1d135c804ee6902413dd30e08d8611f7d04d6d3375a23c236e98e", + "lines": 500, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_topology.rs": { + "content_hash": "7a8a8a0e3dec311df91ea693be873441b2d0db8b81dd09e33ab3d94521411888", + "lines": 484, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_store_archive.rs": { + "content_hash": "bcf1bb0fc5105667e853fbbdf8b7718b9d8dc3f5fcdbbaf525c3a9788bcf7526", + "lines": 143, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_validate_core_3.rs": { + "content_hash": "c94e86e0868d9fd06084bf3fdeb3a05303969bdd50c2ab7dcc054b93cc93b608", + "lines": 246, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/types/resource.rs": { + "content_hash": "58e75f542452698f3ff375faebc9fe6e3672dca984bf84404375aa68fbca6d43", + "lines": 438, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_fleet_insight.rs": { + "content_hash": "9d2c58b613313ecf20a215e5139db11c4cb43f552494b71d4498ddd40fd77e77", + "lines": 706, + "functions": 30, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/state/tests_basic.rs": { + "content_hash": "26773ead1c2a4f5649bafbf9fb0ae4903aa075f74a18d6023262ad0dd7c1071f", + "lines": 354, + "functions": 24, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/helpers.rs": { + "content_hash": "8d2c8e5bf247190920e2d8672061d6e3175f74153bb6556d2bbbda48cfff9a64", + "lines": 227, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_validate.rs": { + "content_hash": "156fe9a3861bd5c1033ce9408b177b24db65749cb8560640fd3b18b532baebb9", + "lines": 311, + "functions": 42, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/user.rs": { + "content_hash": "94af7591c2ddfc0d695c7055344f255a15e8e7c11e805c5222f6ae6df8b4524f", + "lines": 141, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/drift/tests_full.rs": { + "content_hash": "9c60bf9ae7deb70447f2ee2c8caebe6f0f2edfafe2965f4e7c59add1fd83ad87", + "lines": 455, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc.rs": { + "content_hash": "f02bd71207dcab0fe85ea7441c1fd9b931aebae6e582ccdca5124707c38b35d4", + "lines": 436, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch_notify.rs": { + "content_hash": "11d85393b6340e2410ee2de725015ca7e5779a45570d973fcf24b9a3a18e4fe4", + "lines": 728, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_validate_ext4.rs": { + "content_hash": "3bbaca58e02db10087acccffc7840f4b3a4ffeca1e71391f2e92aefa01797f89", + "lines": 71, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "benches/core_bench.rs": { + "content_hash": "2641736063b138182417b8a848286f6f69435d00049397df49c750ecaf7b736b", + "lines": 610, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/resource_types.rs": { + "content_hash": "68f2bbc06de073e745215d0a5f55ec9b778b8f4296d7acdd81c4279d1c75f059", + "lines": 320, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/trace_provenance.rs": { + "content_hash": "9f8a415a0f1e0c25293ebf2aab2a39d1bf6d9b838e101315eb5dec82348c22d4", + "lines": 119, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/mcp/tests_registry.rs": { + "content_hash": "35bcc9a5dc807b410f61dd2d587efc07135c010102abd0a27ce29ea7a32cfbd6", + "lines": 129, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_scoring.rs": { + "content_hash": "4da920733a2851796cfe33fc50b0ddb25b29b090de2c17d63b5da731c61a5014", + "lines": 435, + "functions": 24, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/mod.rs": { + "content_hash": "4d535ecaffc213720a6e09fd33aff2cdb1f434f4d193c96fb5fb2ec1820f2020", + "lines": 115, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_9.rs": { + "content_hash": "1453de79861b5d7e0baa50ac8f399af82c2084516d79817a7db1cd1002cad9e6", + "lines": 621, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_remaining_5.rs": { + "content_hash": "67ff6948936e96d24450ec9fd9a80dcba42f9949406834c38922b4ae89286d88", + "lines": 475, + "functions": 37, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/template.rs": { + "content_hash": "bb4feaae6011fc97fa6a3444be4ca14a2b32d30bc1da14700669e3066c2d35c7", + "lines": 105, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_cov_exec.rs": { + "content_hash": "e7517c1fbd96c00e74f75db28598490453525a425948c823a65de8aca754c5ac", + "lines": 335, + "functions": 26, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_structural.rs": { + "content_hash": "cb2f78d1e49b5d1500240a9ffd4cfa464e4130a810b8fc86ec989160cd044c9e", + "lines": 486, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_file_b.rs": { + "content_hash": "3bec80020c9d09db1945cb4e43c56c0a623cb27e60da53ad8bf3d31594414363", + "lines": 391, + "functions": 32, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/tracer.rs": { + "content_hash": "7ee607dfc9017211051711fad0510f80f7dea80cdb65a7f03528ed64ef39f3cc", + "lines": 488, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_status_4.rs": { + "content_hash": "a817b37be5a555e6c08ac2709b878f1ef3d8268461c49a6de30961c7c41fb390", + "lines": 345, + "functions": 43, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_pin_resolve.rs": { + "content_hash": "596670544d1060d16071fcafd8d4e54ee634df83a3d4497145b0206eb29e1446", + "lines": 210, + "functions": 28, + "max_complexity": 0, + "category": "RustSource" + }, + "tests/container_transport.rs": { + "content_hash": "5eaf35999f82182fc8ffcfa7bba3084e607fcd733f8af0ecaf9e2088926e4e9e", + "lines": 105, + "functions": 0, + "max_complexity": 0, + "category": "TestCode" + }, + "src/core/types/mod.rs": { + "content_hash": "03c03d2a2752ede3f9a5d3d56726cc3e448f874db26732c23f6c26f859565256", + "lines": 30, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_misc_4.rs": { + "content_hash": "a60982c4decfc1da5d2ed6e906ab84833f3c067340e77250c8498f93b290409a", + "lines": 282, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_package_b.rs": { + "content_hash": "327170082ccef8d023ff933d1c4c378affc40c6f34b07f03f4933643f91af617", + "lines": 368, + "functions": 28, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/sandbox_run.rs": { + "content_hash": "58ce624ed70496af87745f25b27f09c3c4d9cff9638123ea2ec63299c5c4f592", + "lines": 148, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_pin_tripwire.rs": { + "content_hash": "4b400e9e27207460dfae9a3686e898af1d62f7dca35656618f6438fd860fd7fd", + "lines": 215, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_lock_core.rs": { + "content_hash": "70adbb33a1eadbd8fcd553e18d283c32833e30995e4c32e7614d648c4c708b88", + "lines": 467, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_remaining_8.rs": { + "content_hash": "c08ba05a5d14178049fc610d8bed82023ae2f09ba65b276812c6c6df1431e7da", + "lines": 486, + "functions": 45, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_helpers.rs": { + "content_hash": "ac376d55982d7b65a4276da58b6e9d09bf96add09cfa19c92116b5dde0b8548a", + "lines": 246, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_includes.rs": { + "content_hash": "d112a8cd39fd0b4f6fc2fab1fe30ba65277f6a6bc48787c2560431abdbddcb7c", + "lines": 432, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase83.rs": { + "content_hash": "9234ec3986faf13c9d6bd8fe87076bb84caab479f5be32081d2b50e7d74b963d", + "lines": 289, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase65.rs": { + "content_hash": "7becd26ed753087000d41cb0848a75dd670d9590ada04d710b194e0fde1b6d92", + "lines": 188, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_resilience.rs": { + "content_hash": "b3bc5904cb1ebdcab05ac2b3d4466bc50fb7f3b7a4e77b83ad1e9058c1f888d8", + "lines": 699, + "functions": 27, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/resource.rs": { + "content_hash": "3bdf0233a3df72792c19239fb2e2f6adaa7797176cc84d5978f3cfd797fcaeb8", + "lines": 71, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/path.rs": { + "content_hash": "e29f0f409a8c4e2af98e7e4a0af071d9b72d16b0cb7c93187f14a57956f5db66", + "lines": 33, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_5.rs": { + "content_hash": "bb5a8f1e67984283ab1d11ed7eaa56c715f6b8f760bcc0efc73792349be31b8a", + "lines": 585, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase95.rs": { + "content_hash": "bf0a5c55af721110cf5d166d463b5925dc6780913ce7fa0a3580884c2f9627b9", + "lines": 215, + "functions": 30, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_remaining_6.rs": { + "content_hash": "102b940279a20a22ba9708ccccc70260cbb63e747a363dd12a2d0b62c9a704c2", + "lines": 492, + "functions": 40, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_package.rs": { + "content_hash": "d4b770875ea35b767d9c9a4d14e1a6bc544930f4414f48114f6dc11c1472f532", + "lines": 281, + "functions": 22, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/provider_exec.rs": { + "content_hash": "ece29886cf9b90d3f5ebd6eabf3d7113d201afba6ce9190e566c1e06fe98a837", + "lines": 244, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_4_b.rs": { + "content_hash": "b7d3a7a8f368bf6584a0d85fc9da929de145f1f5900bf30202a16af31b0a4f3a", + "lines": 476, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/misc_args.rs": { + "content_hash": "523094e0263ddeb5241d7d804636081e17fc86d0dd6ebd6fd63222fe7036dc50", + "lines": 349, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/model.rs": { + "content_hash": "315de56abc4bd3a9fa9849c33393b2fcc058fd1b528bc86fffe972a8912a497b", + "lines": 383, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_args_2.rs": { + "content_hash": "5508e7b804752e76687b26143649c6990e5fca3156c9adf78d7a0317ea861c70", + "lines": 483, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_insights.rs": { + "content_hash": "c202889e1711fc0d1c94aa52e338515e5dcb07ecd74e83f12960bce19ffe1f20", + "lines": 350, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_print_helpers.rs": { + "content_hash": "8ea861672f99ebb214bf16a2f5235442ae438721d22c06efd88d6b4cff1f8c07", + "lines": 183, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_store_cache.rs": { + "content_hash": "92dd6a9231f2e820d39689e46f9fcb93a85e0c5cdbea465c6dc0f89d20dcc2ac", + "lines": 174, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_remaining_12.rs": { + "content_hash": "d79bdd020c7fc177c9e3147e9a7467544c05935bda6602129b239edb19796aa4", + "lines": 453, + "functions": 63, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase61.rs": { + "content_hash": "3c0a05cbc05aeb4276e2c75cd0e8a68e0d2d41b870e7606fc4dddee23df30db1", + "lines": 195, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/derivation.rs": { + "content_hash": "855ef7ff60508ae454f11cda81341dacf9e9f8081c6da2a07dc9adb8f71d98af", + "lines": 209, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_5.rs": { + "content_hash": "824b0d8f75706dbcd9fa8c3b8de4bd7a8d23b17de16c64b462c4fa242d8dcc06", + "lines": 395, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_1.rs": { + "content_hash": "a9585baa58750091b28e6495aebec099df26f3b35db61484f16b32f2c3cfc37e", + "lines": 395, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_validate2.rs": { + "content_hash": "de5ed195297c91cbf1e4853a368f389e6d9471e6e9fae63e7f4820f5dbbaff77", + "lines": 396, + "functions": 30, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_reference.rs": { + "content_hash": "c49c2bddda5b11f68be69125f09c88b8cdf5f063de0bc3175c9feb09b9bf0006", + "lines": 123, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/tests_purifier_b.rs": { + "content_hash": "88ee77a349a942e64af435510638445d0cbde59a2018af5f591f72d4cb56903f", + "lines": 336, + "functions": 19, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/doctor.rs": { + "content_hash": "ff075849846d7cf2678962e124a8ec7d24b3f842ad9282193d05b1f7e83c1bd3", + "lines": 447, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_drift.rs": { + "content_hash": "49e2203aa6db0c38af3d2b3a77926090384e38100fc6b951057dfb559567b9b0", + "lines": 458, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/show.rs": { + "content_hash": "4538451f83bd09570bbd07e938a5555815cb5362176f88d81c937297579fef92", + "lines": 399, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/tests_container.rs": { + "content_hash": "10063bb3e84f26c0b2c758899d3b5a780c5b3a57d5825702a80f0bcf74bad620", + "lines": 468, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/package.rs": { + "content_hash": "dea0855c09f21db400830b1939cd0e162ea27de4a3bfa87bd217a374c4d3528c", + "lines": 196, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/tests_scoring_b.rs": { + "content_hash": "d78bfb4b453e0484eeccc3c859cf0a4217d77e1200e70fd2b947d9f7fc5ab5f3", + "lines": 488, + "functions": 32, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/codegen/test_fixtures.rs": { + "content_hash": "3efa8147df7d4144bdabb3ea06f747bc99c10d77ff6f78b5e405342c5724a99d", + "lines": 331, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_args_3.rs": { + "content_hash": "6fb37cabbcb7b47f98717eb9c3906331482a7e7d0da85209b773dadeb4e6d401", + "lines": 392, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_maturity.rs": { + "content_hash": "86d8871f6417999c5d028f68e3c8eb1a8b837c03d655b8fe91fe5775c4d60b8d", + "lines": 857, + "functions": 37, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_transport.rs": { + "content_hash": "1c444c1c80a71de6090374a70fbfae8059293bda45902f8ceda4ba8c6a93f47c", + "lines": 212, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch_status_ext.rs": { + "content_hash": "38caa2aed92591fe40388046bd7b21fe3209088d0376b921fca0982e63e37c1f", + "lines": 637, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/resource_ops.rs": { + "content_hash": "276472b0a55ffda06dd7a201f583affd113ae6cd5f191f7f0f879650ac1b8134", + "lines": 403, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_lock_core_1.rs": { + "content_hash": "5a2e2f81c6637643d2c491fdaab1073189f2c26c0ac05cd6e0a267b169a86ad7", + "lines": 457, + "functions": 39, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/pepita/mod.rs": { + "content_hash": "352fa33729052c5810ec9130601b9a9be2e8209fd368f98431faa67d1b9abebd", + "lines": 218, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/resource_scripts.rs": { + "content_hash": "bd107a90d40cfa4b2fd7abf5f8793d9414f9e7c1f1894e594d7ea640b68b8ed3", + "lines": 189, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase87.rs": { + "content_hash": "1e84fc118324487ca1d725601d4484cb4ffd00a7ae1757a99e8f754fee9da4ac", + "lines": 301, + "functions": 24, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_scoring.rs": { + "content_hash": "ce25d95e9acb6c99e8078bdf1c933597d73c087d711d7f4b17b7146e6f8f28a9", + "lines": 655, + "functions": 29, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_transport_3.rs": { + "content_hash": "5db5283ea634c9728bf749c2a68817a5460d41466c4128cea901d7e833dfc87e", + "lines": 496, + "functions": 29, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_quality.rs": { + "content_hash": "28bbc55f377fe73d85db97f42ae7d594ba94ebd2885c2dfe60b640ae93f65fc9", + "lines": 685, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/check.rs": { + "content_hash": "ea85e4683f4490afc10d126fb3ebcd379b982ae73f1abf8c68380c7c2281f838", + "lines": 299, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_core.rs": { + "content_hash": "52906653e59d2b705f0221e6d82d69271897aed0864605f1a9fca1c915db5d80", + "lines": 263, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_validate3.rs": { + "content_hash": "2cc0d2323726ddf8a93ae63a7590f55ecb15466f0c9176dee6188c589f5d84ab", + "lines": 410, + "functions": 51, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_dispatch_4.rs": { + "content_hash": "cd7a680a2c785cf0ad6c703f6073369b70160109b5abdbfec4e54cc094312e04", + "lines": 500, + "functions": 18, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/plan.rs": { + "content_hash": "5bf39e0a42f93bb8d2f7421ce84fbd4d3689bb9573947f04a3edca3ccf85cb8e", + "lines": 399, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_ordering.rs": { + "content_hash": "2e61e35656794b31f7833e65bbe6d59235080a09d4f459242812096e7432f856", + "lines": 675, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase68.rs": { + "content_hash": "c0484108b3b14c22a09b33edec63ae0643cd1fa2f18068a72f57ca7d172d8468", + "lines": 209, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_10.rs": { + "content_hash": "66d3de64c23cdbdba6cb3d9bdee6971b446e737c2f431691ec0af0c8a62fe023", + "lines": 252, + "functions": 30, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_queries.rs": { + "content_hash": "4e34a126b8c125dfe51f90a1aafe25a3ccc45747614703985b58203040e5c983", + "lines": 364, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/codegen/dispatch.rs": { + "content_hash": "b0cef52bfba28729d54b320d8a05c52915033e03dbd896d1f0eaca06f6b41b5b", + "lines": 79, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/store_reproducibility.rs": { + "content_hash": "e1fd38b2cc2ade0444e77a0a2d7310b7ca0d2554f9db3ae5ff1753bbc8ddd969", + "lines": 450, + "functions": 19, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_cross.rs": { + "content_hash": "fc8522c2858d35b0f01007c86b2e33dc65f53517580b36cc757545ad72217855", + "lines": 362, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/apply_args.rs": { + "content_hash": "d8a4ea7b767a9afa7d1ef57e7de87dd0a3d3e9247f7822262c6e2084026c0e7a", + "lines": 680, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_show_1.rs": { + "content_hash": "146e30fe694909412f1d8a3157c58e7c8269c41ce0c7f35dc7e817d881833ab4", + "lines": 418, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_safety.rs": { + "content_hash": "6808aa310a9f54ffe84bf5653e735a0ad600c608a907851396bf8c075d52c9cc", + "lines": 495, + "functions": 22, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_status_5.rs": { + "content_hash": "e46802b6e6abde362a1f34bfe75deebde6f8320ba58c70c7a279f28bce983f41", + "lines": 361, + "functions": 59, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_validate_store_purity.rs": { + "content_hash": "1af1deaef29751538178614558ce4777d3929dedbed15ba2c2ac15731e61af2f", + "lines": 155, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/codegen_scripts.rs": { + "content_hash": "1aec4a1f7fbd71e200736351449eb48da43034e7c29c4158c6253d4ec46f47e3", + "lines": 231, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_hooks.rs": { + "content_hash": "5509ac1dc580a0c8a13607ab1d807295391f6dced6375f2a05ba4fae6589bde3", + "lines": 316, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/types/config.rs": { + "content_hash": "273ef42049338b1bcb6eab93232ef065b5848a195af8686dcfa58019bfc7fbb0", + "lines": 373, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/state/tests_helpers.rs": { + "content_hash": "7fc2190767b2cacf33961b927bdfb6be3970becdfd3f787c89fcd4a8e06b95e8", + "lines": 27, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_audit.rs": { + "content_hash": "635bd8f48d74fd82be82f519bad6521032b68127a73aea0816941feac68f0417", + "lines": 460, + "functions": 19, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/workspace.rs": { + "content_hash": "d8b9e8bfa055def6a3546c6467ca5c956337bd0df23c6a27449ce14553cc410d", + "lines": 159, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/copia/tests.rs": { + "content_hash": "99945b226f51c6816a3dd07f49ca4740319bf41000f379e06f00bc7560602e1c", + "lines": 307, + "functions": 0, + "max_complexity": 0, + "category": "TestCode" + }, + "src/cli/status_fleet.rs": { + "content_hash": "0a1e48414bc8db11acbf4507134638e61621e160134e4a6d4d558290a3797a4a", + "lines": 337, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_mount_b.rs": { + "content_hash": "0dd5ebc9614833d1502b0cabcb8b4c027b9b03da239a7015f2daede897b5d563", + "lines": 249, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/recipe/tests_integration.rs": { + "content_hash": "76bdc5f3c0d88749442c9f0438bd278b9c9a65f76aa3ad2210ec0162b1f773ec", + "lines": 453, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/codegen/mod.rs": { + "content_hash": "98e75556969ea2b3ab90bc22de30fcbfd8a303426fb88845768c65bee0a7e51a", + "lines": 15, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase81.rs": { + "content_hash": "ceeb1be347bdf90a1f6618d662a2ee711df8f8a7eb295889934b5374108f4858", + "lines": 289, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_diagnostics.rs": { + "content_hash": "fca182a3d1a07e39525cece8e8c450bbf6acf6c611e06c98d9db2dba73797794", + "lines": 578, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/main.rs": { + "content_hash": "031362bf1ad257336bf8080cd66c53ebbdb5641dba93aef10f20443af6541acb", + "lines": 33, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase82.rs": { + "content_hash": "fa4cef482998707dd19209834ba250b6a3dea79eb38120b118e29795c01b861b", + "lines": 289, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_store_convert.rs": { + "content_hash": "e003bee9b8fba364134cef39f2e81aa6711b6d8e3777690dc846c8e523c4a34a", + "lines": 177, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_validate_core_2_b.rs": { + "content_hash": "01198124b7d2f0142388c8d10e47d29951afcd15008529632783249ba440aedd", + "lines": 667, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_notify_4.rs": { + "content_hash": "131d6aa2f1ff7d1305bac3fc8a1ae4e0c08aa179853dd625dce26fdb85c50d12", + "lines": 504, + "functions": 36, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase103.rs": { + "content_hash": "cbabee64dc0654ef58d19e26d4037ed79847fdf34d04e3b12d51e9cf56b77028", + "lines": 208, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/ssh.rs": { + "content_hash": "e7bb315129a19f0cde6b1f62f0dbb48ec900f31d719affa4474ad1812dffe4a3", + "lines": 202, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/print_helpers.rs": { + "content_hash": "14fab206c24dde8dff130d982296586067b476a1fe46cdb0d4210b463a7bc87e", + "lines": 241, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_hygiene.rs": { + "content_hash": "96676f26059702286ab9a5351f1c895c82a76c22dc3aee5661d13b9308f80174", + "lines": 497, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_history.rs": { + "content_hash": "fbeabf5f857e37748c156384889a1b7ff8e67b4b9ef626077d8e82ffad8bb45d", + "lines": 230, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_resilience_ext.rs": { + "content_hash": "6843520429a2c1c6194e7e26338714bcd0fdb8fc6d348e0eac2a062f07efe26c", + "lines": 352, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_remaining_7.rs": { + "content_hash": "03d4a2bf12817121f557c0251456edbf232593631d66cda7c7ab1747ef609ecb", + "lines": 386, + "functions": 40, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_19.rs": { + "content_hash": "7babc191553334c61ad1b42c509be4cf31542c903bcda395d58fa75e49d903cb", + "lines": 589, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase72.rs": { + "content_hash": "0139d14fca9a40bb4118f91d4fc4ccd9c6a14577494a34ec92f84185ad97add1", + "lines": 279, + "functions": 24, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/tests_data.rs": { + "content_hash": "1f1ae2c8727651048eeff987ddd1cb6b0cd5da5fd1432cf001672485539da462", + "lines": 368, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_lifecycle.rs": { + "content_hash": "e2aa32b5d86669dacd3372184338375a61d4a42d0359a6e206aee5bb0c1bd8f0", + "lines": 285, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_validate_ext3.rs": { + "content_hash": "f18e68a1d2e2d885442eff93ec6df1a493e3fefeeb8ba6f7046c60031990175c", + "lines": 295, + "functions": 42, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_substitution.rs": { + "content_hash": "a0b608f50ca2617ba77c5f17ada0da7109f7687a8cdf67989beb12f962660ade", + "lines": 280, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_resource_detail.rs": { + "content_hash": "fd5b137527c1c122fe0a93aedd0df549c38cc84ecdf1d8193667b4bcf74012b1", + "lines": 466, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_misc.rs": { + "content_hash": "5b2ad6d320371f06b95d99256f679fc0820a723116b8bd52fed4a90751bb7498", + "lines": 463, + "functions": 19, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/tests_purifier.rs": { + "content_hash": "2590f79be5bf58666abe31c1b7294d2a0b87213100b1190097d270ddc6e91915", + "lines": 304, + "functions": 22, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_graph_core_6.rs": { + "content_hash": "5519c2dd3380ae47ec49f8510e654123e544f501bfd99e62cd82b06a809c0aba", + "lines": 312, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_plan_file.rs": { + "content_hash": "18479a77ddfbe1a29914e563331d745113f8800080a19879f28728c00978d59b", + "lines": 224, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_purity.rs": { + "content_hash": "a41138df84992ce18b83b566c73f0b023343475e6c450a8ea31b09f956d5b6ca", + "lines": 186, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/pin_resolve.rs": { + "content_hash": "fe3ca39b83bf797a137d51ed529695127231448405f7044be43ce3474db6ed75", + "lines": 205, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/init.rs": { + "content_hash": "b57d142b97eea723fc121ee587788acfd990a51e9422c82d3ee785b2fdb0d2c9", + "lines": 248, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_validate_ext.rs": { + "content_hash": "1d098ca6d3c70d520c553b51b8c3a1541b549a3e412e1cfba39c8ce76d32449c", + "lines": 486, + "functions": 69, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_apply.rs": { + "content_hash": "0fe8601283da0f753ed01431e5401bab3b82c7243b495696ba658cb24b9d1766", + "lines": 427, + "functions": 33, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_compliance.rs": { + "content_hash": "fe4dc8afed79cac5f9f1ec0a300860a17b11571a8e284bce1c599435fd73b546", + "lines": 327, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/drift/tests_edge_fj132_b.rs": { + "content_hash": "703679ec24f82db736126262db62b34f04517ff4e038279669c874dbaa646fb4", + "lines": 272, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/store_provider_import.rs": { + "content_hash": "c94d617cd5ae49aac9449b53c444890eb8c33633c747854f23eb18fcaab7490a", + "lines": 154, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/template_resolution.rs": { + "content_hash": "fed4c713fe1143b4b6015978ba085cfddb3e62bff74fada57d4196edfe34e2b7", + "lines": 89, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_store_pin.rs": { + "content_hash": "9b1688c31c9ef9884c5450f1b704d487514270fc5f94ade48a1b4e8cade08a4b", + "lines": 178, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/gc.rs": { + "content_hash": "4ee9aa8f03a830997847ee019c423ef14e288ce9345a260316d254cf3c1ab7b1", + "lines": 121, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_operational.rs": { + "content_hash": "c67f575d0b6b37879d87be18a304c51a63b4d127184f0c0b39a4e70ea8c9ce93", + "lines": 529, + "functions": 18, + "max_complexity": 0, + "category": "RustSource" + }, + "src/lib.rs": { + "content_hash": "e0b8dc7a5e97c44562a039ac02eb9134596d8ad98973a25080203f32a92e1067", + "lines": 12, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/sandbox.rs": { + "content_hash": "935b1ae7b717149c9f30c52e6859ac131dd16e0d25ededda34f1405405180873", + "lines": 184, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase96.rs": { + "content_hash": "2ca70a55830fa12021b91459cfd36a7fd2f6f70197ead4d6f109dd06abd98902", + "lines": 224, + "functions": 29, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_governance.rs": { + "content_hash": "3c3cfe711b4c2caba6a2eb351a7d7fe324589a1e4fbb8f51dc32599f0cbda81a", + "lines": 364, + "functions": 27, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_13.rs": { + "content_hash": "1110878080dc7f004e5c4b035c9e0242aa4e5192e8023c8c0878e1a7a0b44167", + "lines": 584, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_concurrent.rs": { + "content_hash": "d06fa49b373312851955fe8ac459c25ea1a833b9c29adfbc9fdb160e11bd5be0", + "lines": 356, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase107.rs": { + "content_hash": "e486299b14d73cd633bb447a4c25ad0e122c296dd1b7bc5d38ad973de7f6df69", + "lines": 225, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_status_7.rs": { + "content_hash": "d3f9cf0e6a16168528c207b05a4896c2a337e3e63097caa895344ea66e8da5e2", + "lines": 380, + "functions": 58, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/validation.rs": { + "content_hash": "7a567c913b4d56dad15ebc937c0c47946b485bc508da83a434fa4f3f2bd38232", + "lines": 133, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/convert_exec.rs": { + "content_hash": "b8e1187b3647fb264ede81b033316c4338448d0a1208bb0610f522f6c246fa31", + "lines": 183, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_score.rs": { + "content_hash": "57a79d5775e1244b3f628ec77fda9295d2c9c2e92cf88ed9a030a9d79f9a1ca2", + "lines": 197, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/pepita/tests.rs": { + "content_hash": "a91a0df7f18b27ee5d840ace7036d0e7b75870bcd26749fc7078087f5aaca17f", + "lines": 365, + "functions": 0, + "max_complexity": 0, + "category": "TestCode" + }, + "src/tripwire/mod.rs": { + "content_hash": "4b7378d6af1834063b09a80e02fd37bbea24ca7aaa934cbd5b0decd9022dcb83", + "lines": 18, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/store_pin_resolve.rs": { + "content_hash": "2ec6dfb445ef7c6d801139db58f6282a1c506dce46001a42dba4f8ed14e166a0", + "lines": 116, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch_validate.rs": { + "content_hash": "d42faa6dcd9c3ef425114529b535325d83e3f10e90e476a07db877caaa6d1a81", + "lines": 1168, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/helpers_state.rs": { + "content_hash": "b97c0209fda99a616045bc2553747a1eaf61a365df9d4436d5fd52119094f234", + "lines": 114, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_doctor.rs": { + "content_hash": "24fbc7d8a065ff4bd1bd7380595e8cc5e5cbc9db2c0fb91e1a2a2ae8a3ae1455", + "lines": 178, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_docker_b.rs": { + "content_hash": "0a11c4be71d555814a46be0622c4e4eec35dde6828a1efcae0c19dab8c274fa8", + "lines": 395, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_far.rs": { + "content_hash": "24550e8b86ecf27dcd0fcb84087f98b1e20953293c06a573be3d0b28b325a7b8", + "lines": 185, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/lint.rs": { + "content_hash": "79fea5af0fb5cb75e072206a20820d9dc06e3fe34e3e626d9992bf84c86fb4f4", + "lines": 259, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_6.rs": { + "content_hash": "5ad945ac1b08da3090f272806b36e6632baebf13aee0dd6a4de1adceb03395b8", + "lines": 582, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_graph_core_b.rs": { + "content_hash": "d02027474bcb89eed4d4fda160b960d2bbae6e561a48fd91412f2dac283ada74", + "lines": 226, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/eventlog.rs": { + "content_hash": "66aa015f1b02ccd27b6e8e9b78b013e6cd3c873ebe2ac8087030588a90185897", + "lines": 105, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_gc_exec.rs": { + "content_hash": "e1fccbbf7f3ada96e33a6782f9c8a65e637f128ec07f668a829743c66fe15bd9", + "lines": 252, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "tests/gpu_container_transport.rs": { + "content_hash": "e3d8b4c7070eb3503b55daa7f013bba02d0a22096beb13eb7002df5d41404b62", + "lines": 226, + "functions": 0, + "max_complexity": 0, + "category": "TestCode" + }, + "build.rs": { + "content_hash": "d68c4b581bc2211c97f952c4cd1aca94426b84e419e52071a421118e381f833c", + "lines": 9, + "functions": 0, + "max_complexity": 0, + "category": "BuildScript" + }, + "src/cli/dispatch_misc.rs": { + "content_hash": "61c9068fcada0637c306cbbe559a6d286b298da3521038558f5de778e1e4a8fd", + "lines": 295, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/drift/tests_fj036.rs": { + "content_hash": "ce89d4858eb542c3e505c8bd744c9ceb7d43ff802fbdf172f084bd088b239aa5", + "lines": 236, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/recipe_expansion.rs": { + "content_hash": "86024e836a99cac3432954bd6bb22bf8c5bbeea7ea22e90457ef213ff07ad7dd", + "lines": 118, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/provider.rs": { + "content_hash": "1e14c29a40c634ac83ecfcc1597d908c02069bbd22a23c97d65cf3489226d1cf", + "lines": 206, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_infra.rs": { + "content_hash": "3b716ac33cc323623c1948692f08077c230694186832a2eaba52778daa11c773", + "lines": 306, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_11.rs": { + "content_hash": "0f99be1bbe1377b6ab724baf304431a900a7361d15b4b82d7d52a43a2dfea94b", + "lines": 584, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_17.rs": { + "content_hash": "7c0212f2ea73638a6baab961322bd7d790910205185aebe8a5a5ead6808b3719", + "lines": 586, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_init.rs": { + "content_hash": "785d117090aa8bf0f15f10f7d17d39f2fd12012ca094f59a1d8793362b8b9f21", + "lines": 553, + "functions": 26, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/tests_container_c.rs": { + "content_hash": "3e362db276afe5b00807edd1bb908ab0d43ede1ac1e2380756745d1dcee91e65", + "lines": 360, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_intelligence_ext2.rs": { + "content_hash": "ddaa73730c7560e3746b74fc84b6d38345ca14c7d20823cd31db285ba95a7500", + "lines": 643, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/store_diff.rs": { + "content_hash": "3604892b9c7259ae2d773fe300b4fb5ab77fb8e982e0188e783e913517c4e5be", + "lines": 161, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_arch.rs": { + "content_hash": "940ec9891e074aa9fd5d4805cacba1d4c7b0d269c952d37ebfc9aba403f3f26b", + "lines": 152, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_21.rs": { + "content_hash": "d73aa2e0be9902490354a498842a6e26f671c12bed8542dac30f82c03ea056cb", + "lines": 591, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core.rs": { + "content_hash": "ec2276a149ff2bab435d03b68e2b4cb0e0bf9500014607f887488c339097d43a", + "lines": 359, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/conda_to_far.rs": { + "content_hash": "7734affa568d41f480d8e38788fe151adef95b1a827dce5b24e559ba866fb11a", + "lines": 110, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_closure.rs": { + "content_hash": "53a8fccc979fbf0bc31d2ed0b0fe0b777a91638869dab844daf3c383240db9bf", + "lines": 183, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/tests_dag.rs": { + "content_hash": "2c13befc9e3d19724bd66f98f9851c85bc9ffad3db5bc12949a471f5be8924cc", + "lines": 287, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/policy.rs": { + "content_hash": "1d649aa9ec5345b621a76ea085fba62cae11b53987b1986c7bef281d1c0a49bf", + "lines": 106, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/derivation_exec.rs": { + "content_hash": "6d0346d5730de8d4bf4d6eea662ffdc505e16d9cadff7bfd183c807dbfc9fa1d", + "lines": 399, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_profile.rs": { + "content_hash": "5910625e51426f1656aca1054eeabf43b8f0c113b4881fb681e4283363b59bdf", + "lines": 104, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_args_extra.rs": { + "content_hash": "7b4da3d7345f30e8e6a1bf7fae6e84e3c3fbf5979f1a015fc41f4094f5af94f6", + "lines": 538, + "functions": 52, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/drift/tests_edge_fj131.rs": { + "content_hash": "c55d3a18a1cadaf071128745394e2cf59de8a5c9806452e07766c38d12490ae6", + "lines": 313, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/apply.rs": { + "content_hash": "05543a44c4da020489c7a65b8e5ae2e594d3e4036c738ec0a8ee8f3525426352", + "lines": 289, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_analytics.rs": { + "content_hash": "8190e30cea38bb3474e443956876f16a86b1b6670f8b7adf1ace5e5745f99b05", + "lines": 450, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_compliance.rs": { + "content_hash": "2c77b5f6328ed8db8bdd89c4ef5821f6af04f93116f92c9f8820286a4e5247ab", + "lines": 347, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_validation.rs": { + "content_hash": "5bf7f82e7efcb46043483e45cf4bb0fe7ca327446b6b8b95f73a24d98a20a383", + "lines": 492, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_core.rs": { + "content_hash": "7b0c3dd5d862930408456a0bb342f7e7b30cc1390732449d6c7402961d8de4a4", + "lines": 448, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_kernel_far.rs": { + "content_hash": "0c3f0f3cd5084c953a428b20d2350063bd53140d61bdeece477c2ddd62087356", + "lines": 404, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/mod.rs": { + "content_hash": "4be4616b935c9a86bd39e95e6310c1c6a1ab7cc607493b9ecd10edf36d2d9325", + "lines": 340, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_derivation.rs": { + "content_hash": "ca933c0431c5cc9b6f89f0db012202a65a6387207bdb00dd80a8cdd2dd9f5016", + "lines": 293, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_repro_score.rs": { + "content_hash": "eb5c877d15c0d4f003c3474c7eaf429919bd55df6a4fd3805415817953193540", + "lines": 183, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_graph2.rs": { + "content_hash": "dc3b9470ab3298589ff28ee972bfde94c64a3a4f54cfd2f5d3fa54dc7a6f8f03", + "lines": 378, + "functions": 53, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/apply_output.rs": { + "content_hash": "a34f54cbc1a73ab2186d7e7d1faaa0fc8d8e0fdaf952f551aaab6200a47d6f8d", + "lines": 404, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_operational_ext.rs": { + "content_hash": "f8f39446b9091ae9178dc210d4b1ff97ff6721feea04ed74490ded0d23196f57", + "lines": 212, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_sandbox_exec.rs": { + "content_hash": "8fdfb88e74621caec25f8073fcf3fdbd10edd452448f4b6b265c55ea9b466ffa", + "lines": 248, + "functions": 18, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/lock_security.rs": { + "content_hash": "8018b5a7797f5483703a32671e476ecbc4f8afe01eb6a727a39679dedb706be6", + "lines": 392, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase76.rs": { + "content_hash": "afcd94e8394a4f54034c13db7138510a2d3818b914bc2df917c4a0fedaafc3f2", + "lines": 290, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_destroy.rs": { + "content_hash": "a59506d1abf95980b7e8a30f62c4efaff1908cc8b33abca1f046a4d6f374eedf", + "lines": 431, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_validate2_c.rs": { + "content_hash": "4f9cdcb7db8755584f85e8c040c3451d3a69b8672a6c675b2871de7580838277", + "lines": 188, + "functions": 18, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/machine.rs": { + "content_hash": "1016a4470cfb85dfcd868df21fe8086a3b18c842765eab1d22f967aff8f525b2", + "lines": 533, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_show_3.rs": { + "content_hash": "69c523ec10fb607ba10cfb566444444314dd0fcb96954a26dcbfd35a9f72674a", + "lines": 256, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/store_args.rs": { + "content_hash": "db2c33c4a8afe4c87911ac213bc4ae980a8a3e552e79ab29d5bfbdd8a63845af", + "lines": 254, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase60.rs": { + "content_hash": "0a27a50ad0d44f4d395d055f56642af8b09be805308194ae89d2b76f03ee51c5", + "lines": 133, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/test_fixtures.rs": { + "content_hash": "0b8fda69d8f277e11569288b038ea6261396ff44b72d25b7410150bd2fb19839", + "lines": 149, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_topology.rs": { + "content_hash": "58dbadcd16996501b6d30be61417f9754f426a86fb2ebe6467302c081a8a0bd7", + "lines": 525, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/types/tests_state.rs": { + "content_hash": "dd2a188c375b0154f75dec150a2cf75406c52e50eae968c3b467146aedef7af5", + "lines": 282, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_transport.rs": { + "content_hash": "c33ab3fd3cb1a5bfe41ffd3bfdd4ac703183e6fdfa303857a21aceb497216f7a", + "lines": 276, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/cron.rs": { + "content_hash": "484d9fd86bd6cc757e67bd4a7b8eeb0f3a8efd9f1a2550414382c8c43a9d3b3f", + "lines": 464, + "functions": 32, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/file.rs": { + "content_hash": "a1facfe1a21635b0eadcf7b24ee4d0bcedb30312b957a665cf5c87ab03c3ea8b", + "lines": 127, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/store_executors.rs": { + "content_hash": "91c8fa816ce193156f8e5c7b1e2738ed8fc211d6c5fdebd31bef9a0182b7e468", + "lines": 390, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_health.rs": { + "content_hash": "0f9113539d8a95272807eab2218080651daf1ddf3b8cce14a28b3d2a4daeaa4e", + "lines": 480, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_triggers.rs": { + "content_hash": "43a2d5e86ff679568c74904081e8bb08984e92df2ad7426961767c3999e3bb68", + "lines": 106, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase84.rs": { + "content_hash": "33863ec3fca34a46d4f8ba2b7c3949438640899e7793463ed3dd93627d48d6ef", + "lines": 289, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_5_b.rs": { + "content_hash": "ae7798e2a3827d2d0946147ea00340787a86e191f15d4b98237d7b4bdd74b75c", + "lines": 207, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/cache_exec.rs": { + "content_hash": "9c8b43112021997d47bcb7775bf13bfc762d02f1ee1cf40f4d902fb070a874f3", + "lines": 265, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_helpers_time.rs": { + "content_hash": "038e90da543fb51cbba559b761d649039ffc84c0aeecab9f9bc0b763aa7efe67", + "lines": 36, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase92.rs": { + "content_hash": "cc5bc0612ff315eaa14e960c3bbbf8c0dccd5663df72c514d0362f04fc6df330", + "lines": 310, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_sandbox.rs": { + "content_hash": "53da5a42b62345bc14b3ed96491582b76080d76c3050b9be2fb06315ca9e2fb8", + "lines": 218, + "functions": 22, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/gc_exec.rs": { + "content_hash": "2af6ad4e5be133d8db7efbc89197594791c8bad9c0c8f8452f6e49244c9b66d4", + "lines": 189, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/store_import.rs": { + "content_hash": "34dd7a36e896a8fe1df30d590376cb8ca314cd4479d41d9e1b29bc6177b5b4f5", + "lines": 191, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_validate_core_1_b.rs": { + "content_hash": "1bd282fda67215bc5451ba254d90569ce29395cd21b45d1ceede7ccb24a60a16", + "lines": 655, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase75.rs": { + "content_hash": "bf07a1a67b718dbbfa557d46495d3bd2da898466891f5526bcd817db3e3e390d", + "lines": 292, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/mcp/tests_handlers.rs": { + "content_hash": "728f0143b27784c3eb680457f9664a4154a1af6a6662bc44e0abb06f699970b4", + "lines": 228, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/dag.rs": { + "content_hash": "fd7c4d014b94120319649575e44755cb7f27c8a6c3149910df5b7e766122500c", + "lines": 150, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/snapshot.rs": { + "content_hash": "83af1a99813a12ae3c8668c3a8a38bdfd54e5efabdd337cce73502b3aaf41950", + "lines": 168, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_extended.rs": { + "content_hash": "b69d7bb4dd1eb9319b0732c2cbae1df057d49234c1eae9cd7423e6c187ee0cea", + "lines": 379, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase78.rs": { + "content_hash": "51ce6b926ea80c7e21546cef0a5f422ca8135e8087f355155495a039d77cf285", + "lines": 289, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/types/policy.rs": { + "content_hash": "9669a0f635a6090ccb2b222823b3632367cd5c303e24c2f47c33c2430c0114ef", + "lines": 118, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/repro_score.rs": { + "content_hash": "868b818e86f30358f42e560e49346e66426f57871f68a406006e9028b2fca262", + "lines": 119, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_graph_core.rs": { + "content_hash": "cdbc15670c287d28cf372460cf34fc03c5a8680b0953cc697279d7774bb53605", + "lines": 423, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/contract_coverage.rs": { + "content_hash": "5daf03a49c3624a4792586195749e18090ccf6d639732dd32efcfc1dd0b59b2e", + "lines": 122, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_status_4_c.rs": { + "content_hash": "3cb668f82e29559aeee7bf75908f8190621ef88a0bcbf38ab26222f450152862", + "lines": 476, + "functions": 56, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_ownership.rs": { + "content_hash": "8c38dfd3544fd20c954d421e06c76df90cb952ccec3f302d02956b2146096460", + "lines": 610, + "functions": 28, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/mod.rs": { + "content_hash": "c36359c0bbbcead0cc16fb65703c8bfba1fa0dee5dc8dfe9e314454d5eece642", + "lines": 27, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_cost.rs": { + "content_hash": "7d4433d13d433d859f8ce786d2dac6d8d4b61318e2972f685f94da84327f86b9", + "lines": 258, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_apply_b.rs": { + "content_hash": "eaf6a58fdb7433433dc3f4414708a46af1b614fd5e7566fbd5aa37aa2169f917", + "lines": 361, + "functions": 26, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/recipe/mod.rs": { + "content_hash": "a40beb6014ade2c9c0a635661efaac91105151fa0efc8d077475cff6f6efc4b8", + "lines": 23, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase62.rs": { + "content_hash": "6f95ab39861fa1e10e27bd13cc4bae119d295cd71df5f20f2e8e6a1d3f725603", + "lines": 194, + "functions": 19, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_path.rs": { + "content_hash": "28b2dc28f29734d1a759e39bf9b5d9d838b0d0bb23a31fc9c3ec7c9080c36b46", + "lines": 95, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_gc.rs": { + "content_hash": "845a11f64740c6ad1c7a6b37bcb8768950f678b431f3ef7942dea10ea5718375", + "lines": 160, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase105.rs": { + "content_hash": "125e47bdfb4e5632a1352a9f73348469d2a113c4dff77b4ae71919315fd0c640", + "lines": 206, + "functions": 31, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_convert.rs": { + "content_hash": "1559a180fa06b8ddf219469771feadd18f677cd82cdf489331ba3f84dc282300", + "lines": 173, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_topology_ext.rs": { + "content_hash": "5ea63a1384c82f316ef7448e73c80696167583f8a22b868509dd6cef478c5afb", + "lines": 124, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/chunker.rs": { + "content_hash": "27d30c5d66393e4c48bf395abe4149e2047aefbb246833baa974b1820adcb437", + "lines": 140, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_contract_coverage.rs": { + "content_hash": "1486025963182ecdc9a8d555929e9d57613dc66463f139225f9f477db4753aa0", + "lines": 293, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_dispatch_2.rs": { + "content_hash": "1fc985791b0269cc12e0d0e2b0cfd4e157aca99b943ad9e9dd9427e475d5caab", + "lines": 483, + "functions": 30, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch_apply.rs": { + "content_hash": "a18773bc1739ead60e53676aa95f738ff93001233d0d113214c56a20231e944b", + "lines": 568, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_remaining_11.rs": { + "content_hash": "14ec70e3cc29bd55a6539552b21da5a84d5b1ad665b6cdcafabd2f49dc264d14", + "lines": 710, + "functions": 30, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase91.rs": { + "content_hash": "fe1cf071401d8d2bdbb1229b8bc4dda46fc56537d1cb101079980bfc36a4b4fe", + "lines": 309, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_7_b.rs": { + "content_hash": "c3a4d11488b362056db0044cb00a679d032a6055d5b07e23560563ead2f5bec0", + "lines": 204, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_graph_core_2.rs": { + "content_hash": "02f18590f6d10e4b1d939241a15d9bac785ac865c4dd244ab4191b5500576f93", + "lines": 1041, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_1_b.rs": { + "content_hash": "d284dc840647a1e7cab3b623de997d50a3263d31ae77db2939044b18a7b096b9", + "lines": 474, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_drift_intel2.rs": { + "content_hash": "6f32e09b223fb4a152deac6b1cdb6b80ef62dc08f2b6da69cc19c4b79649945b", + "lines": 460, + "functions": 18, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/drift/tests_transport.rs": { + "content_hash": "930114ee44480ef88f9e0c153202ece0072243cf38b04d49f517e598b3dd0809", + "lines": 247, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/arch_filtering.rs": { + "content_hash": "0c7b4be49e9498d6b6a8e4277cf7ceb27c84887a8f2dfb8224b20f4cbbe2083c", + "lines": 125, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_graph3.rs": { + "content_hash": "0964177398f72d99d5ea1f4a213a72dd48aad9df5a22c763d23440ef22e037c6", + "lines": 253, + "functions": 33, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase59.rs": { + "content_hash": "d716283070c6018f6228d6aaebe527ce49d4ab8d1f29046af162ad23fccfeca8", + "lines": 120, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_status_2.rs": { + "content_hash": "aecb4e8084ebe53396f124fe0af98547eeca2473f59238fb6a3ebb5f4ed8ebfe", + "lines": 453, + "functions": 64, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_converge2.rs": { + "content_hash": "7687b3a9b2fadbb90b1b12c193058eb20f332f8b79000265df647d579eb41d30", + "lines": 325, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase85.rs": { + "content_hash": "28b08303ce8370db560ecc840ad1351df4368065f506565bbcc28d4ad917ce58", + "lines": 175, + "functions": 23, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/tests_secrets.rs": { + "content_hash": "c3e9a7a11caef27d4950768370be2f68d69ed711fb48393ece5eebaecd99fe80", + "lines": 440, + "functions": 39, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_alerts.rs": { + "content_hash": "5c22a3e00b7ba28ba72eafefabc0e7450e12428873514882f634d0ec56ce8127", + "lines": 377, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/types/tests_resource.rs": { + "content_hash": "c51b45db69f9f9d83857727f88999433664a2ce42bba11070ccea4235c79fd7f", + "lines": 298, + "functions": 29, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/mod.rs": { + "content_hash": "4b0f37eeba3cbd9b6b99885b836021c0c633a3f230673dd066c2048b87e5d5b7", + "lines": 612, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_transport.rs": { + "content_hash": "9be38f2f8c563b82f6df823e7f47e1000f238d7883f930e1b32f8cf3a36b9a5d", + "lines": 487, + "functions": 25, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/drift.rs": { + "content_hash": "6ff6e37736702b9237f75821c99fe3d39fdb3d9996f61a8dfc750ff94c93320f", + "lines": 331, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/purity.rs": { + "content_hash": "be7d1125758a0e3432bd47eb70ebc52484130c0c556fd02d9397638aaf500790", + "lines": 113, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/planner/tests_lifecycle.rs": { + "content_hash": "011ee350e3430b19f9132cdf7b8a760c3e5ff254697a5d5c04abfa2d7ea2746f", + "lines": 224, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_validate3_b.rs": { + "content_hash": "72d2a8a790bcd923af56a5cdf391ac7b36fb20e6165bb3ef0ebf7392dcd45131", + "lines": 366, + "functions": 45, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_remaining_10.rs": { + "content_hash": "11462cfa9ab0f208896de01dd0baf38d4443116ac875f1a2e9b9bb84f0ed33f3", + "lines": 559, + "functions": 33, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_7.rs": { + "content_hash": "48e11dfaa56f1b1f15ef4370098508f3028969f1a681c328ddb6543c49fc1135", + "lines": 396, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/tests_eventlog_b.rs": { + "content_hash": "34a596c285b3642f888d17dacc616138f36a5c6388391a331485fa09f26c4802", + "lines": 270, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch_lock.rs": { + "content_hash": "70b1939da69b07e59f06de53245eff579b01a5a24d775168355cadaf71a1e11a", + "lines": 162, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_queries.rs": { + "content_hash": "fc435d443a5715aba50557e2b267a94ddda0a11233fbdc0376662b99d8f9cec1", + "lines": 250, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/tests_eventlog.rs": { + "content_hash": "6416f4576acad278ca832883c2cfa1e4330e8f987f1c757a990c8837a0af6c30", + "lines": 263, + "functions": 18, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/misc_ops_args.rs": { + "content_hash": "4434ae1f9bacf8084c3ed92d01ce6ec57fc591152957ee1cdcced543d7eafb7d", + "lines": 289, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/tests_functions.rs": { + "content_hash": "afad07b72fb485caea6cbac2f0efce2b0d3c27d9b73008fa8fb1f55345d5f58a", + "lines": 240, + "functions": 28, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_validate_transport.rs": { + "content_hash": "af826465479da479476baf68a2514356e913912de11873d61532a915562a1657", + "lines": 379, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "examples/anomaly_detection.rs": { + "content_hash": "7df1ddb35aa1377af77266b5b10313781ecdd0b715bb78fefaa28d4b1dc9a2b0", + "lines": 123, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_sandbox_run.rs": { + "content_hash": "ff68569c14d4c662b9f22fa67e2e4dffe87892a4c5af7caf9483ca765a108e77", + "lines": 228, + "functions": 18, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_transport.rs": { + "content_hash": "e6020dc225f3929dbf93a9fa1c4abc21bc9b5c0fe089f62c1e0772014bfec906", + "lines": 208, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/mcp/tests_handlers_more.rs": { + "content_hash": "9f521869e1bf0d3061b2311c7fefcdf4f2d9275188bd5604713e252dcd891ad2", + "lines": 349, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_3_b.rs": { + "content_hash": "7f879d507e8f70be38da61e42293acf03bf3025c2efb27a5b2069ac3487c504e", + "lines": 475, + "functions": 2, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_validate3_c.rs": { + "content_hash": "9fd07efa885746790d5b0da5015a316ac1314ea36c23c6a81f5da3174a60d922", + "lines": 454, + "functions": 57, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_analytics_ext.rs": { + "content_hash": "dfd639fb7a3e67c66eea82ed922c7883b45f7f00b94dd0659cf56d48b6cd8ac2", + "lines": 383, + "functions": 28, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/planner/tests_determine.rs": { + "content_hash": "518d489ffb309fa04912d0603043e3a493a8dd735d627d930d2dafa8e267a504", + "lines": 159, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_b.rs": { + "content_hash": "022ccd86512e794a15c77242c1071530dcb99d24620ee43ccba398d0a79802cb", + "lines": 369, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_observability.rs": { + "content_hash": "db0c4b24e95f1e78eb9041308e5bef150b1f4af47d4c9c70afc019edafccdb8c", + "lines": 419, + "functions": 14, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/planner/tests_filter.rs": { + "content_hash": "2827ee3bfa4044aa72aee8cb2748a18cf1199839f9ecadd693ae3e599c0207b7", + "lines": 133, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/planner/tests_plan.rs": { + "content_hash": "06886b0275b2a61d010df1fc8a9b7e279ab76367b6f2a9bf33e1be767ec6071d", + "lines": 357, + "functions": 18, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_store_diff.rs": { + "content_hash": "73079617698d552eaa3ce7ba0b6c405be84c718e78eee852ac638fbbea40ed75", + "lines": 192, + "functions": 20, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_status_core_2.rs": { + "content_hash": "7f31373720dd7f00b8b0cfc724d9c0eb4ff9cb93c8172527b3899862e2d475bc", + "lines": 707, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/lock_core.rs": { + "content_hash": "622ec568ae72b5bd9b6625776af10162ad9ac59d8c8a8d5d8577cd124dace853", + "lines": 453, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_quality.rs": { + "content_hash": "2e47b622070cafeb2e130070cf464fd630b104d8b4a3fed3736403a7628833da", + "lines": 506, + "functions": 38, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/parser/tests_expansion.rs": { + "content_hash": "24c9d29da75808f7c80dc6080ec73de55bf3b681788b8a4d4bbc8ef3a2cc0bde", + "lines": 493, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/lock_audit.rs": { + "content_hash": "781e7c728c7a0b8a9b2204000a53f1fd58ed33aad63202aa5020e3f39e7f3bbd", + "lines": 382, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_lint.rs": { + "content_hash": "5cb83f7f55532c360a592d010ae54ea7f35787782a84aa139281154a04bba24b", + "lines": 196, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_workspace.rs": { + "content_hash": "6bc034afcb07773cf8fb294368c3d8dd2396f64bfb02ae65d5d524ff35e27605", + "lines": 187, + "functions": 12, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/check_test.rs": { + "content_hash": "7ad5988d22f832718573ae82a76be7f2b607c9ec3e1cb2cc6d18c0b7da596da6", + "lines": 254, + "functions": 0, + "max_complexity": 0, + "category": "TestCode" + }, + "src/cli/tests_status_core_7.rs": { + "content_hash": "b53d80fc3bb932221f9f7ac428f3b0c9e3841a0e908ddae73f407958e5be08fc", + "lines": 703, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_ordering_ext.rs": { + "content_hash": "59e95baf8c83c9aa4e209c27a5513debdfb64a4e08693d245d77735b0bfc9100", + "lines": 270, + "functions": 13, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/tests_container_d.rs": { + "content_hash": "711345b985b3ef3ea21c6f626c4fcf835454b7cad6ef9f71d0d94bba04919653", + "lines": 41, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/graph_args.rs": { + "content_hash": "1ca088d8da750f957172e6d6fc1fae080a39d0f03c25448ff2136941d70aaec4", + "lines": 496, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_localhost.rs": { + "content_hash": "954988f33b820310b58963906a52d14efb39fa171ccdce0d5d845e96526d30ca", + "lines": 334, + "functions": 8, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/secrets.rs": { + "content_hash": "f04e8e8de8dbf25c709ab07f8a237dff5fd923b92956dfcff6f3f44e315a9875", + "lines": 154, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/planner/tests_advanced.rs": { + "content_hash": "b622cf123d06945e5dcd11ece3b4c8a67d1add1b535c4d2f3cc4dd14c11b9805", + "lines": 265, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/dispatch_notify_custom.rs": { + "content_hash": "f8037c4ca348c06dc50eb5ee323d77e9412fb370cf0c5299f5b9716b334488d8", + "lines": 427, + "functions": 17, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_fleet_detail.rs": { + "content_hash": "866a7f5e541e1b701ad06df209e70e9849352598fe811a750ac45386f86dd546", + "lines": 483, + "functions": 16, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_intelligence_ext.rs": { + "content_hash": "66d86de02b1b24a4732538620580336edb5c501d9a299fdfbe0b122c0e12643e", + "lines": 801, + "functions": 29, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/lock_repair.rs": { + "content_hash": "5df1a01c6d3e651a03ce69af2bce43587e0caae153bdb9650250bab85e85548e", + "lines": 122, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/tripwire/drift/tests_basic.rs": { + "content_hash": "72e4c5883d2c4806dbeaa8ad813c81a7907bac78e696f353897f47343d83412d", + "lines": 325, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/mcp/handlers.rs": { + "content_hash": "b3f3ba304fa11f48ee3077275ac09caa416279ee0ce7f5a6cab754f428ee4979", + "lines": 491, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/tests_advanced.rs": { + "content_hash": "577782791494f3a2f1f4701ec33e12fe7381a0ab660dc7601d8879297ce6063c", + "lines": 488, + "functions": 9, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_6_b.rs": { + "content_hash": "0ce4c32dfe507762fdacc944cf99a5522bb5f7cd8d80f37128307c3f6f95b46d", + "lines": 207, + "functions": 1, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/status_resources.rs": { + "content_hash": "c30a9bd72485e2d4669f36919b1e0498e8fc5510d523dc308b2b43fe8b21bcf1", + "lines": 260, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/strategies.rs": { + "content_hash": "47300be7d021d6fa65d12516cfe21bc9efa2b9d4d14a702f668fbda29deb6362", + "lines": 129, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/commands/lock_ops_args.rs": { + "content_hash": "0a0ef2dd6cf1e8a992a644dabcd8fdee6fccda5656aa865cbbd989b0b81d48b9", + "lines": 221, + "functions": 0, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_conda.rs": { + "content_hash": "5207a8413f19d7d566942ea05c1b24b717e9273ae0da195c95e8fc4dd68e186b", + "lines": 318, + "functions": 19, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/recipe/tests_expansion.rs": { + "content_hash": "08d5f5a86bead9b806f586ce55375a912d51dd14e8ef67cb04c5ac1bcb228d30", + "lines": 448, + "functions": 22, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_policy.rs": { + "content_hash": "ab672e6d66b48bd9914016ecddf58ca50752c06d0c40579e5679cf4b3869576f", + "lines": 218, + "functions": 7, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/validate_governance.rs": { + "content_hash": "7909756818caadc8ce5782aa8b4993c340675b9502259363f67ea01de304c263", + "lines": 480, + "functions": 22, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_apply_22.rs": { + "content_hash": "bf279a9d6ae125679a585c944782b7210e25699abf2834e397a1242c0378ed0a", + "lines": 588, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/sandbox_exec.rs": { + "content_hash": "81497fc856954a8f238808fef3d031046141e36ca6ff229d057d28c8d31addd8", + "lines": 322, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_helpers_state.rs": { + "content_hash": "bdaf0fef198566aa4ea317fdf578d0d5676e470962159a2bfe61af922a2af1c0", + "lines": 147, + "functions": 5, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/executor/machine_wave.rs": { + "content_hash": "64b36b0379cd03bbed53ef07d45f7c1dcd8681a58ff7a8fdac5b08fc40bf029a", + "lines": 210, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/codegen/tests_coverage.rs": { + "content_hash": "34d3b6fcc4fea7cb616e7538af6d6b508f6ce6933d7a900b3cb70b717d473c61", + "lines": 269, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_hf_config.rs": { + "content_hash": "eb2abc98fdf184aea958e4c5868c7a0f967a227367465aaedd4ad7e992bdb546", + "lines": 373, + "functions": 24, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_graph3_b.rs": { + "content_hash": "0b53e9dd56f69e38122e721290cc6e0d3a8415a07e0c460f2a1103a3bdcfc419", + "lines": 499, + "functions": 67, + "max_complexity": 0, + "category": "RustSource" + }, + "src/transport/pepita.rs": { + "content_hash": "ba21671a08f546817c14a58857d4dfd8e893e2b7a10f1c1d5d187beb0d0e2635", + "lines": 385, + "functions": 15, + "max_complexity": 0, + "category": "RustSource" + }, + "src/resources/tests_user.rs": { + "content_hash": "948e80757627608afc462218c4f2fc974469f0914f19a5ffe516ca4ac79217d7", + "lines": 473, + "functions": 30, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/state/tests_edge.rs": { + "content_hash": "c646c7abf8bf3248333d1de9795e41797d94b5d9398818088aa75b104691ff62", + "lines": 334, + "functions": 18, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/graph_analytics.rs": { + "content_hash": "9e5ee6bf3a334977ca44c02b677f0e56b00a40d97af4c99ffe41ae12d7fab99f", + "lines": 486, + "functions": 28, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/tests_waves.rs": { + "content_hash": "43c4ea3a7fe427029c0a4eff6b84179b4553297a31a7663010151f43ba226022", + "lines": 144, + "functions": 4, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_10.rs": { + "content_hash": "41a6a087a804c30a8cef520b38a978dbc8e73705209cfc23cb9cee7bb37d630c", + "lines": 660, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_phase94.rs": { + "content_hash": "fff4cfa1c2fb77c8c79f9a7610da253dd0e2aa118e2dd7cb3f01779095bf61b1", + "lines": 425, + "functions": 24, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/resolver/tests_helpers.rs": { + "content_hash": "64bebc379fca0c0a1369309d939cc755d17120891ca79b3a9a99971cb7fce950", + "lines": 216, + "functions": 3, + "max_complexity": 0, + "category": "RustSource" + }, + "src/core/store/tests_meta.rs": { + "content_hash": "9f59758cea8e4a8dcc203505a580502736d6f22804d7b695352b0c2795cd307e", + "lines": 130, + "functions": 11, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_misc_4.rs": { + "content_hash": "17f18eefc5dd9b6f13a4e6173a4f78c90284e9b4f98b0d95038f4ef4d0fa8717", + "lines": 521, + "functions": 6, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_cov_misc2.rs": { + "content_hash": "c8b337c89ad6a10b7594a79b366934c6164ac3057d3325805b2c7e6688d9c6d4", + "lines": 301, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_snapshot.rs": { + "content_hash": "c2a2e43628b0107466662faec0816f1055639d40663df4b04855941969b1a437", + "lines": 176, + "functions": 10, + "max_complexity": 0, + "category": "RustSource" + }, + "src/cli/tests_validate_analytics.rs": { + "content_hash": "f16dc801995356b7a8b9c426846d730ce49d410ce932c3b2ec868e51cadbd922", + "lines": 253, + "functions": 21, + "max_complexity": 0, + "category": "RustSource" + } + }, + "coverage_required": [ + "src/core/tests_secrets.rs", + "src/core/recipe/tests_expansion.rs", + "src/core/recipe/tests_integration.rs", + "src/core/recipe/mod.rs", + "src/core/recipe/tests_validation.rs", + "src/core/recipe/validation.rs", + "src/core/recipe/types.rs", + "src/core/recipe/expansion.rs", + "src/core/recipe/validation_types.rs", + "src/core/mod.rs", + "src/core/scoring.rs", + "src/core/tests_scoring_b.rs", + "src/core/executor/strategies.rs", + "src/core/executor/tests_edge_record.rs", + "src/core/executor/tests_edge_apply.rs", + "src/core/executor/tests_advanced.rs", + "src/core/executor/mod.rs", + "src/core/executor/resource_ops.rs", + "src/core/executor/tests_converge2.rs", + "src/core/executor/tests_parallel.rs", + "src/core/executor/machine_wave.rs", + "src/core/executor/tests_filters.rs", + "src/core/executor/test_fixtures.rs", + "src/core/executor/tests_rolling.rs", + "src/core/executor/tests_waves.rs", + "src/core/executor/helpers.rs", + "src/core/executor/tests_localhost.rs", + "src/core/executor/tests_localhost2.rs", + "src/core/executor/tests_hooks.rs", + "src/core/executor/tests_drift.rs", + "src/core/executor/tests_converge.rs", + "src/core/executor/tests_core.rs", + "src/core/executor/tests_edge_details.rs", + "src/core/executor/tests_concurrent.rs", + "src/core/executor/machine.rs", + "src/core/parser/tests_misc_2b.rs", + "src/core/parser/tests_expansion.rs", + "src/core/parser/tests_arch.rs", + "src/core/parser/mod.rs", + "src/core/parser/tests_misc_2.rs", + "src/core/parser/tests_includes.rs", + "src/core/parser/resource_types.rs", + "src/core/parser/tests_validation.rs", + "src/core/parser/tests_misc.rs", + "src/core/parser/policy.rs", + "src/core/parser/includes.rs", + "src/core/parser/validation.rs", + "src/core/parser/tests_misc_3.rs", + "src/core/parser/expansion.rs", + "src/core/parser/tests_core.rs", + "src/core/parser/tests_triggers.rs", + "src/core/parser/recipes.rs", + "src/core/parser/tests_misc_4.rs", + "src/core/parser/tests_policy.rs", + "src/core/migrate.rs", + "src/core/planner/tests_when.rs", + "src/core/planner/tests_advanced.rs", + "src/core/planner/mod.rs", + "src/core/planner/tests_helpers.rs", + "src/core/planner/tests_hash.rs", + "src/core/planner/tests_lifecycle.rs", + "src/core/planner/tests_determine.rs", + "src/core/planner/tests_describe.rs", + "src/core/planner/tests_plan.rs", + "src/core/planner/tests_filter.rs", + "src/core/tests_purifier.rs", + "src/core/purifier.rs", + "src/core/resolver/resource.rs", + "src/core/resolver/mod.rs", + "src/core/resolver/tests_functions.rs", + "src/core/resolver/tests_helpers.rs", + "src/core/resolver/tests_dag.rs", + "src/core/resolver/tests_waves.rs", + "src/core/resolver/dag.rs", + "src/core/resolver/template.rs", + "src/core/resolver/data.rs", + "src/core/resolver/tests_data.rs", + "src/core/resolver/tests_template.rs", + "src/core/resolver/functions.rs", + "src/core/resolver/tests_proptest.rs", + "src/core/resolver/tests_resource.rs", + "src/core/state/tests_edge.rs", + "src/core/state/mod.rs", + "src/core/state/tests_helpers.rs", + "src/core/state/tests_process_lock.rs", + "src/core/state/tests_encrypt.rs", + "src/core/state/tests_basic.rs", + "src/core/tests_scoring.rs", + "src/core/secrets.rs", + "src/core/codegen/tests_completeness.rs", + "src/core/codegen/mod.rs", + "src/core/codegen/test_fixtures.rs", + "src/core/codegen/dispatch.rs", + "src/core/codegen/tests_coverage.rs", + "src/core/codegen/tests_dispatch.rs", + "src/core/conditions.rs", + "src/core/store/tests_sync_exec.rs", + "src/core/store/tests_lockfile.rs", + "src/core/store/convert.rs", + "src/core/store/conda.rs", + "src/core/store/gc.rs", + "src/core/store/tests_convert_exec.rs", + "src/core/store/tests_path.rs", + "src/core/store/store_diff.rs", + "src/core/store/sandbox_exec.rs", + "src/core/store/tests_pin_resolve.rs", + "src/core/store/tests_chunker.rs", + "src/core/store/mod.rs", + "src/core/store/tests_cache.rs", + "src/core/store/substitution.rs", + "src/core/store/far.rs", + "src/core/store/profile.rs", + "src/core/store/path.rs", + "src/core/store/tests_hf_config.rs", + "src/core/store/tests_sandbox.rs", + "src/core/store/secret_scan.rs", + "src/core/store/repro_score.rs", + "src/core/store/contract_scaffold.rs", + "src/core/store/pin_resolve.rs", + "src/core/store/tests_purity.rs", + "src/core/store/tests_substitution.rs", + "src/core/store/validate.rs", + "src/core/store/tests_profile.rs", + "src/core/store/tests_store_diff.rs", + "src/core/store/cache.rs", + "src/core/store/tests_convert.rs", + "src/core/store/sandbox.rs", + "src/core/store/contract_coverage.rs", + "src/core/store/tests_closure.rs", + "src/core/store/lockfile.rs", + "src/core/store/tests_cov_exec.rs", + "src/core/store/gc_exec.rs", + "src/core/store/meta.rs", + "src/core/store/tests_gc_exec.rs", + "src/core/store/chunker.rs", + "src/core/store/kernel_far.rs", + "src/core/store/tests_conda.rs", + "src/core/store/convert_exec.rs", + "src/core/store/pin_tripwire.rs", + "src/core/store/tests_derivation_exec.rs", + "src/core/store/tests_far.rs", + "src/core/store/tests_secret_scan.rs", + "src/core/store/provider_exec.rs", + "src/core/store/sync_exec.rs", + "src/core/store/purity.rs", + "src/core/store/tests_repro_score.rs", + "src/core/store/reference.rs", + "src/core/store/tests_provider.rs", + "src/core/store/tests_validate.rs", + "src/core/store/derivation_exec.rs", + "src/core/store/tests_contract_coverage.rs", + "src/core/store/tests_contract_scaffold.rs", + "src/core/store/hf_config.rs", + "src/core/store/tests_cache_exec.rs", + "src/core/store/tests_sandbox_run.rs", + "src/core/store/tests_pin_tripwire.rs", + "src/core/store/tests_derivation.rs", + "src/core/store/derivation.rs", + "src/core/store/sandbox_run.rs", + "src/core/store/tests_kernel_far.rs", + "src/core/store/tests_meta.rs", + "src/core/store/tests_reference.rs", + "src/core/store/cache_exec.rs", + "src/core/store/tests_sandbox_exec.rs", + "src/core/store/tests_gc.rs", + "src/core/store/tests_provider_exec.rs", + "src/core/store/tests_bash_provability.rs", + "src/core/store/closure.rs", + "src/core/store/provider.rs", + "src/core/tests_purifier_b.rs", + "src/core/types/resource.rs", + "src/core/types/mod.rs", + "src/core/types/tests_state.rs", + "src/core/types/policy.rs", + "src/core/types/config.rs", + "src/core/types/tests_config.rs", + "src/core/types/tests_resource.rs", + "src/core/types/state_types.rs", + "src/mcp/tests_handlers.rs", + "src/mcp/registry.rs", + "src/mcp/mod.rs", + "src/mcp/handlers.rs", + "src/mcp/tests_handlers_more.rs", + "src/mcp/types.rs", + "src/mcp/tests_registry.rs", + "src/cli/tests_misc_5.rs", + "src/cli/tests_phase71.rs", + "src/cli/tests_snapshot.rs", + "src/cli/status_drift_intel.rs", + "src/cli/tests_graph_core_2.rs", + "src/cli/graph_scoring.rs", + "src/cli/validate_maturity.rs", + "src/cli/validate_safety.rs", + "src/cli/status_resource_intel.rs", + "src/cli/status_operational.rs", + "src/cli/tests_misc_1_b.rs", + "src/cli/validate_resources.rs", + "src/cli/snapshot.rs", + "src/cli/tests_misc_9_b.rs", + "src/cli/graph_governance.rs", + "src/cli/drift.rs", + "src/cli/tests_diff_cmd.rs", + "src/cli/tests_phase79.rs", + "src/cli/tests_apply_10.rs", + "src/cli/tests_status_core_6.rs", + "src/cli/status_security.rs", + "src/cli/dispatch_notify.rs", + "src/cli/commands/mod.rs", + "src/cli/commands/misc_ops_args.rs", + "src/cli/commands/status_args.rs", + "src/cli/commands/validate_args.rs", + "src/cli/commands/misc_args.rs", + "src/cli/commands/plan_args.rs", + "src/cli/commands/lock_core_args.rs", + "src/cli/commands/apply_args.rs", + "src/cli/commands/state_args.rs", + "src/cli/commands/store_args.rs", + "src/cli/commands/lock_ops_args.rs", + "src/cli/commands/subcmd_args.rs", + "src/cli/commands/graph_args.rs", + "src/cli/tests_cov_remaining_10.rs", + "src/cli/tests_graph_core.rs", + "src/cli/tests_status_core_3_b.rs", + "src/cli/tests_misc_1.rs", + "src/cli/tests_cov_validate_ext4.rs", + "src/cli/tests_infra.rs", + "src/cli/status_fleet_insight.rs", + "src/cli/tests_validate_core_2.rs", + "src/cli/tests_cov_validate3_d.rs", + "src/cli/tests_phase86.rs", + "src/cli/validate_advanced.rs", + "src/cli/tests_cov_status_1.rs", + "src/cli/dispatch_validate.rs", + "src/cli/tests_cov_remaining_11.rs", + "src/cli/tests_status_core_2.rs", + "src/cli/observe.rs", + "src/cli/tests_cov_dispatch_5.rs", + "src/cli/score.rs", + "src/cli/tests_plan_file.rs", + "src/cli/lock_core.rs", + "src/cli/tests_graph_core_4.rs", + "src/cli/graph_impact.rs", + "src/cli/graph_transport.rs", + "src/cli/tests_validate_core_b.rs", + "src/cli/tests_status_core_5_b.rs", + "src/cli/validate_analytics.rs", + "src/cli/status_fleet.rs", + "src/cli/tests_cov_status_6.rs", + "src/cli/status_compliance.rs", + "src/cli/tests_status_core_8_b.rs", + "src/cli/tests_show_2.rs", + "src/cli/tests_cov_args_4.rs", + "src/cli/print_helpers.rs", + "src/cli/status_intelligence.rs", + "src/cli/dispatch_graph.rs", + "src/cli/tests_apply_9.rs", + "src/cli/tests_score.rs", + "src/cli/mod.rs", + "src/cli/tests_misc_2.rs", + "src/cli/tests_phase88.rs", + "src/cli/validate_quality.rs", + "src/cli/dispatch_misc.rs", + "src/cli/graph_extended.rs", + "src/cli/tests_cov_fleet_b.rs", + "src/cli/tests_show_1.rs", + "src/cli/tests_helpers_state.rs", + "src/cli/tests_phase77.rs", + "src/cli/tests_apply_11.rs", + "src/cli/status_alerts.rs", + "src/cli/validate_hygiene.rs", + "src/cli/status_diagnostics.rs", + "src/cli/tests_helpers.rs", + "src/cli/graph_lifecycle.rs", + "src/cli/tests_misc_6.rs", + "src/cli/tests_apply_1.rs", + "src/cli/store_pin.rs", + "src/cli/tests_misc_10.rs", + "src/cli/tests_dispatch_store.rs", + "src/cli/tests_check.rs", + "src/cli/tests_cov_validate_ext3.rs", + "src/cli/tests_store_archive.rs", + "src/cli/store_import.rs", + "src/cli/tests_cov_notify.rs", + "src/cli/tests_status_core_5.rs", + "src/cli/tests_validate_core.rs", + "src/cli/graph_intelligence_ext.rs", + "src/cli/tests_workspace.rs", + "src/cli/validate_compliance.rs", + "src/cli/tests_apply_20.rs", + "src/cli/tests_cov_remaining_3.rs", + "src/cli/helpers_state.rs", + "src/cli/tests_cov_notify_2.rs", + "src/cli/graph_quality.rs", + "src/cli/store_archive.rs", + "src/cli/tests_cov_fleet.rs", + "src/cli/tests_lock_core.rs", + "src/cli/tests_graph_core_3.rs", + "src/cli/tests_cov_graph3_c.rs", + "src/cli/status_convergence.rs", + "src/cli/tests_cov_status_4.rs", + "src/cli/status_resources.rs", + "src/cli/tests_show.rs", + "src/cli/status_operational_ext.rs", + "src/cli/tests_cov_dispatch_3.rs", + "src/cli/history.rs", + "src/cli/graph_analysis.rs", + "src/cli/tests_cov_status_5.rs", + "src/cli/status_drift_intel2.rs", + "src/cli/test_fixtures.rs", + "src/cli/tests_cov_lock.rs", + "src/cli/tests_show_3.rs", + "src/cli/graph_weight.rs", + "src/cli/validate_paths.rs", + "src/cli/tests_cov_validate3_c.rs", + "src/cli/tests_cov_args.rs", + "src/cli/tests_cov_validate2_b.rs", + "src/cli/tests_graph_core_5.rs", + "src/cli/tests_apply_21.rs", + "src/cli/tests_cov_remaining_2.rs", + "src/cli/graph_cross.rs", + "src/cli/status_core.rs", + "src/cli/helpers.rs", + "src/cli/dispatch_status.rs", + "src/cli/tests_status_core_7.rs", + "src/cli/status_maturity.rs", + "src/cli/validate_compliance_ext.rs", + "src/cli/tests_phase94.rs", + "src/cli/tests_phase100.rs", + "src/cli/status_transport.rs", + "src/cli/store_cache.rs", + "src/cli/tests_phase99.rs", + "src/cli/tests_phase81.rs", + "src/cli/tests_cov_notify_3.rs", + "src/cli/tests_cov_args_2.rs", + "src/cli/tests_apply_18.rs", + "src/cli/tests_phase68.rs", + "src/cli/tests_phase106.rs", + "src/cli/tests_phase85.rs", + "src/cli/tests_cov_fleet_c.rs", + "src/cli/tests_status_queries.rs", + "src/cli/tests_status_core_1.rs", + "src/cli/tests_phase87.rs", + "src/cli/tests_phase65.rs", + "src/cli/tests_validate_core_3.rs", + "src/cli/status_resource_detail.rs", + "src/cli/tests_phase105.rs", + "src/cli/tests_misc.rs", + "src/cli/doctor.rs", + "src/cli/tests_apply_19.rs", + "src/cli/tests_cov_validate3_b.rs", + "src/cli/tests_phase90.rs", + "src/cli/tests_import_cmd.rs", + "src/cli/tests_phase83.rs", + "src/cli/tests_cov_status_2.rs", + "src/cli/tests_phase73.rs", + "src/cli/lock_lifecycle.rs", + "src/cli/status_failures.rs", + "src/cli/tests_phase59.rs", + "src/cli/tests_phase62.rs", + "src/cli/tests_phase96.rs", + "src/cli/tests_apply_3.rs", + "src/cli/tests_status_core_b.rs", + "src/cli/tests_phase98.rs", + "src/cli/tests_fleet_ops_1.rs", + "src/cli/tests_phase76.rs", + "src/cli/workspace.rs", + "src/cli/tests_misc_7_b.rs", + "src/cli/plan.rs", + "src/cli/tests_cov_dispatch_4.rs", + "src/cli/tests_misc_8.rs", + "src/cli/check.rs", + "src/cli/tests_phase82.rs", + "src/cli/tests_apply_7.rs", + "src/cli/tests_apply_5.rs", + "src/cli/tests_cov_status_4_c.rs", + "src/cli/status_recovery.rs", + "src/cli/graph_topology.rs", + "src/cli/status_insights.rs", + "src/cli/tests_phase72.rs", + "src/cli/tests_status_core_4_b.rs", + "src/cli/tests_status_core_4.rs", + "src/cli/fleet_ops.rs", + "src/cli/infra.rs", + "src/cli/validate_security.rs", + "src/cli/tests_store_import.rs", + "src/cli/apply_output.rs", + "src/cli/validate_structural.rs", + "src/cli/tests_phase91.rs", + "src/cli/tests_apply.rs", + "src/cli/tests_check_2.rs", + "src/cli/tests_status_core_10.rs", + "src/cli/tests_cov_transport_3.rs", + "src/cli/init.rs", + "src/cli/tests_phase95.rs", + "src/cli/tests_phase63.rs", + "src/cli/tests_phase66.rs", + "src/cli/tests_apply_15.rs", + "src/cli/tests_fleet_ops.rs", + "src/cli/apply_helpers.rs", + "src/cli/tests_cov_remaining_6.rs", + "src/cli/tests_cov_remaining.rs", + "src/cli/tests_phase84.rs", + "src/cli/tests_phase97.rs", + "src/cli/tests_cov_transport_2.rs", + "src/cli/validate_core.rs", + "src/cli/tests_phase67.rs", + "src/cli/graph_topology_ext.rs", + "src/cli/graph_analytics_ext.rs", + "src/cli/validate_ordering.rs", + "src/cli/graph_intelligence_ext2.rs", + "src/cli/tests_destroy.rs", + "src/cli/tests_fleet_reporting.rs", + "src/cli/tests_cov_dispatch_2.rs", + "src/cli/dispatch.rs", + "src/cli/dispatch_store.rs", + "src/cli/tests_cov_validate_ext2.rs", + "src/cli/tests_phase89.rs", + "src/cli/tests_status_core_3.rs", + "src/cli/tests_validate_core_1.rs", + "src/cli/tests_helpers_time.rs", + "src/cli/tests_status_core_9.rs", + "src/cli/tests_store_convert.rs", + "src/cli/tests_cov_apply.rs", + "src/cli/graph_resilience_ext.rs", + "src/cli/validate_ordering_ext.rs", + "src/cli/tests_cov_status_3.rs", + "src/cli/tests_status_core_6_b.rs", + "src/cli/graph_intelligence.rs", + "src/cli/dispatch_notify_custom.rs", + "src/cli/tests_drift.rs", + "src/cli/tests_apply_23.rs", + "src/cli/tests_cov_args_3.rs", + "src/cli/tests_apply_16.rs", + "src/cli/tests_misc_3.rs", + "src/cli/validate_ownership.rs", + "src/cli/secrets.rs", + "src/cli/tests_cov_args_extra_b.rs", + "src/cli/status_counts.rs", + "src/cli/status_observability.rs", + "src/cli/helpers_time.rs", + "src/cli/tests_cov_graph2.rs", + "src/cli/lock_security.rs", + "src/cli/tests_apply_8.rs", + "src/cli/tests_cov_args_extra.rs", + "src/cli/tests_apply_6.rs", + "src/cli/tests_store_pin.rs", + "src/cli/tests_apply_2.rs", + "src/cli/tests_cov_remaining_7.rs", + "src/cli/graph_export.rs", + "src/cli/tests_cov_args_2_b.rs", + "src/cli/tests_phase101.rs", + "src/cli/graph_resilience.rs", + "src/cli/lock_merge.rs", + "src/cli/dispatch_status_ext.rs", + "src/cli/tests_apply_helpers.rs", + "src/cli/tests_check_1.rs", + "src/cli/validate_policy.rs", + "src/cli/tests_validate_core_2_b.rs", + "src/cli/tests_apply_12.rs", + "src/cli/tests_cov_remaining_8.rs", + "src/cli/status_intelligence_ext2.rs", + "src/cli/status_intelligence_ext.rs", + "src/cli/tests_doctor.rs", + "src/cli/tests_history.rs", + "src/cli/tests_validate_transport.rs", + "src/cli/status_quality.rs", + "src/cli/tests_status_core.rs", + "src/cli/validate_governance.rs", + "src/cli/graph_analytics.rs", + "src/cli/tests_cov_graph3.rs", + "src/cli/tests_destroy_1.rs", + "src/cli/tests_plan.rs", + "src/cli/tests_apply_17.rs", + "src/cli/status_cost.rs", + "src/cli/tests_observe.rs", + "src/cli/tests_cov_remaining_9.rs", + "src/cli/tests_print_helpers.rs", + "src/cli/status_resilience.rs", + "src/cli/dispatch_lock.rs", + "src/cli/graph_paths.rs", + "src/cli/tests_cov_misc2_b.rs", + "src/cli/tests_cov_remaining_12.rs", + "src/cli/status_fleet_detail.rs", + "src/cli/graph_visualization.rs", + "src/cli/status_drift.rs", + "src/cli/tests_cov_dispatch.rs", + "src/cli/tests_phase107.rs", + "src/cli/tests_phase74.rs", + "src/cli/diff_cmd.rs", + "src/cli/tests_cov_status_4_b.rs", + "src/cli/tests_cov_remaining_4.rs", + "src/cli/validate_governance_ext.rs", + "src/cli/validate_security_ext.rs", + "src/cli/tests_status_core_7_b.rs", + "src/cli/tests_apply_13.rs", + "src/cli/tests_phase104.rs", + "src/cli/tests_cov_misc2.rs", + "src/cli/tests_apply_6_b.rs", + "src/cli/status_queries.rs", + "src/cli/tests_phase60.rs", + "src/cli/destroy.rs", + "src/cli/status_trends.rs", + "src/cli/validate_transport.rs", + "src/cli/store_ops.rs", + "src/cli/tests_validate_core_1_b.rs", + "src/cli/tests_misc_5_b.rs", + "src/cli/validate_audit.rs", + "src/cli/tests_graph_core_b.rs", + "src/cli/tests_cov_transport.rs", + "src/cli/validate_topology.rs", + "src/cli/lint.rs", + "src/cli/fleet_reporting.rs", + "src/cli/import_cmd.rs", + "src/cli/tests_phase61.rs", + "src/cli/tests_cov_validate2.rs", + "src/cli/tests_cov_validate.rs", + "src/cli/status_analytics.rs", + "src/cli/lock_audit.rs", + "src/cli/tests_cov_status_7.rs", + "src/cli/validate_scoring.rs", + "src/cli/tests_cov_validate_ext.rs", + "src/cli/graph_advanced.rs", + "src/cli/status_operational_ext2.rs", + "src/cli/tests_misc_9.rs", + "src/cli/tests_status_core_2_b.rs", + "src/cli/tests_phase70.rs", + "src/cli/tests_cov_graph.rs", + "src/cli/graph_compliance.rs", + "src/cli/tests_graph_core_1.rs", + "src/cli/tests_phase64.rs", + "src/cli/tests_validate_analytics.rs", + "src/cli/status_health.rs", + "src/cli/graph_core.rs", + "src/cli/show.rs", + "src/cli/tests_init.rs", + "src/cli/status_predictive.rs", + "src/cli/tests_phase69.rs", + "src/cli/tests_phase103.rs", + "src/cli/tests_phase92.rs", + "src/cli/tests_cov_apply_b.rs", + "src/cli/tests_cov_remaining_5.rs", + "src/cli/validate_config_quality.rs", + "src/cli/validate_store_purity.rs", + "src/cli/tests_cov_notify_4.rs", + "src/cli/tests_apply_14.rs", + "src/cli/tests_phase78.rs", + "src/cli/tests_misc_4.rs", + "src/cli/dispatch_apply.rs", + "src/cli/tests_phase80.rs", + "src/cli/tests_store_ops.rs", + "src/cli/tests_phase102.rs", + "src/cli/tests_lock_core_1.rs", + "src/cli/graph_health.rs", + "src/cli/tests_plan_1.rs", + "src/cli/tests_graph_core_6.rs", + "src/cli/lock_ops.rs", + "src/cli/store_convert.rs", + "src/cli/tests_cov_validate3.rs", + "src/cli/tests_misc_7.rs", + "src/cli/tests_store_cache.rs", + "src/cli/tests_validate_store_purity.rs", + "src/cli/tests_apply_4.rs", + "src/cli/tests_lint.rs", + "src/cli/tests_status_core_1_b.rs", + "src/cli/lock_repair.rs", + "src/cli/tests_status_core_8.rs", + "src/cli/tests_cov_validate2_c.rs", + "src/cli/validate_resilience.rs", + "src/cli/tests_cov_graph3_b.rs", + "src/cli/tests_phase75.rs", + "src/cli/apply.rs", + "src/cli/apply_variants.rs", + "src/cli/tests_apply_22.rs", + "src/main.rs", + "src/copia/mod.rs", + "src/transport/container.rs", + "src/transport/tests_dispatch_b.rs", + "src/transport/tests_ssh.rs", + "src/transport/tests_container_b.rs", + "src/transport/tests_container.rs", + "src/transport/mod.rs", + "src/transport/tests_container_c.rs", + "src/transport/pepita.rs", + "src/transport/ssh.rs", + "src/transport/tests_dispatch.rs", + "src/transport/tests_container_d.rs", + "src/transport/local.rs", + "src/resources/gpu.rs", + "src/resources/tests_user.rs", + "src/resources/mod.rs", + "src/resources/task.rs", + "src/resources/cron.rs", + "src/resources/pepita/mod.rs", + "src/resources/tests_file.rs", + "src/resources/tests_mount_b.rs", + "src/resources/mount.rs", + "src/resources/tests_docker.rs", + "src/resources/docker.rs", + "src/resources/user.rs", + "src/resources/tests_mount.rs", + "src/resources/model.rs", + "src/resources/network.rs", + "src/resources/tests_service.rs", + "src/resources/tests_docker_b.rs", + "src/resources/tests_file_b.rs", + "src/resources/file.rs", + "src/resources/tests_package.rs", + "src/resources/tests_package_b.rs", + "src/resources/package.rs", + "src/resources/tests_gpu.rs", + "src/resources/service.rs", + "src/lib.rs", + "src/tripwire/tests_anomaly.rs", + "src/tripwire/mod.rs", + "src/tripwire/anomaly.rs", + "src/tripwire/eventlog.rs", + "src/tripwire/drift/tests_fj036.rs", + "src/tripwire/drift/mod.rs", + "src/tripwire/drift/tests_lifecycle.rs", + "src/tripwire/drift/tests_edge_fj132_b.rs", + "src/tripwire/drift/tests_basic_b.rs", + "src/tripwire/drift/tests_edge_fj131.rs", + "src/tripwire/drift/tests_transport.rs", + "src/tripwire/drift/tests_edge_fj132.rs", + "src/tripwire/drift/tests_full.rs", + "src/tripwire/drift/tests_basic.rs", + "src/tripwire/tests_hasher_b.rs", + "src/tripwire/tests_eventlog_b.rs", + "src/tripwire/hasher.rs", + "src/tripwire/tests_eventlog.rs", + "src/tripwire/tracer.rs", + "src/tripwire/tests_hasher.rs", + "benches/core_bench.rs", + "benches/store_bench.rs", + "examples/mcp_server.rs", + "examples/multi_machine.rs", + "examples/arch_filtering.rs", + "examples/store_provider_import.rs", + "examples/parse_and_plan.rs", + "examples/store_cache_protocol.rs", + "examples/store_executors.rs", + "examples/state_management.rs", + "examples/template_resolution.rs", + "examples/gpu_container_transport.rs", + "examples/blake3_hashing.rs", + "examples/full_stack_deploy.rs", + "examples/store_pin_resolve.rs", + "examples/validation.rs", + "examples/codegen_scripts.rs", + "examples/resource_scripts.rs", + "examples/trace_provenance.rs", + "examples/anomaly_detection.rs", + "examples/score_cookbook.rs", + "examples/conda_to_far.rs", + "examples/store_reproducibility.rs", + "examples/recipe_expansion.rs", + "examples/container_transport.rs", + "examples/shell_purifier.rs", + "examples/event_logging.rs", + "examples/store_gc_lifecycle.rs", + "examples/user_management.rs", + "examples/drift_detection.rs" + ], + "manifest_hash": "bdf2f693be4f3e80367f8193aac510a69eb3409d9c6fd9cdd34bbc9fe4014b22" + }, + "thresholds": { + "min_coverage_pct": 95.0, + "min_per_file_coverage_pct": 95.0, + "max_tdg_regression": 0.0, + "max_function_complexity": 20, + "max_file_lines": 500, + "min_spec_score": 95, + "require_github_sync": true, + "require_spec_update": true, + "require_roadmap_update": true, + "block_on_new_satd": true, + "block_on_new_dead_code": true, + "require_lint_pass": true, + "max_fix_chain": 3, + "block_on_untested_variants": true, + "block_on_cross_crate_failure": false, + "block_on_regression": false, + "require_proof_verification": false, + "max_sorry_count": 0, + "min_theorem_coverage": 0.0, + "block_on_file_size": true + }, + "claims": [ + { + "hypothesis": "All baseline files still exist", + "falsification_method": "ManifestIntegrity", + "evidence_required": { + "FileList": [] + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "The falsifier is active and detecting (Meta-Check)", + "falsification_method": "MetaFalsification", + "evidence_required": { + "CounterExample": { + "details": "" + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "No coverage exclusion gaming", + "falsification_method": "CoverageGaming", + "evidence_required": { + "FileList": [] + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "All changed lines are covered", + "falsification_method": "DifferentialCoverage", + "evidence_required": { + "NumericComparison": { + "actual": 0.0, + "threshold": 100.0 + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "Total coverage >= 95%", + "falsification_method": "AbsoluteCoverage", + "evidence_required": { + "NumericComparison": { + "actual": 0.0, + "threshold": 95.0 + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "TDG score >= baseline", + "falsification_method": "TdgRegression", + "evidence_required": { + "NumericComparison": { + "actual": 0.0, + "threshold": 0.0 + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "No function exceeds complexity 20", + "falsification_method": "ComplexityRegression", + "evidence_required": { + "NumericComparison": { + "actual": 0.0, + "threshold": 20.0 + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "No vulnerable dependencies added", + "falsification_method": "SupplyChainIntegrity", + "evidence_required": { + "CounterExample": { + "details": "" + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "No file exceeds 500 lines", + "falsification_method": "FileSizeRegression", + "evidence_required": { + "NumericComparison": { + "actual": 0.0, + "threshold": 500.0 + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "Spec & Roadmap Quality", + "falsification_method": "SpecQuality", + "evidence_required": { + "NumericComparison": { + "actual": 0.0, + "threshold": 95.0 + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "All changes pushed", + "falsification_method": "GitHubSync", + "evidence_required": { + "GitState": { + "unpushed_commits": 0, + "dirty_files": 0 + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "All examples compile and run", + "falsification_method": "ExamplesCompile", + "evidence_required": { + "CounterExample": { + "details": "" + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "pmat-book validation passes", + "falsification_method": "BookValidation", + "evidence_required": { + "CounterExample": { + "details": "" + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "No new SATD markers (TODO/FIXME/HACK)", + "falsification_method": "SatdDetection", + "evidence_required": { + "FileList": [] + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "No new dead code introduced", + "falsification_method": "DeadCodeDetection", + "evidence_required": { + "FileList": [] + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "All files have >= 95% coverage", + "falsification_method": "PerFileCoverage", + "evidence_required": { + "FileList": [] + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "make lint passes", + "falsification_method": "LintPass", + "evidence_required": { + "BooleanCheck": false + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "All match arm variants have test coverage", + "falsification_method": "VariantCoverage", + "evidence_required": { + "FileList": [] + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "No fix-after-fix chains exceed limit", + "falsification_method": "FixChainLimit", + "evidence_required": { + "NumericComparison": { + "actual": 0.0, + "threshold": 3.0 + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "Cross-crate integration tests pass", + "falsification_method": "CrossCrateParity", + "evidence_required": { + "BooleanCheck": false + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "No performance regressions detected", + "falsification_method": "RegressionGate", + "evidence_required": { + "NumericComparison": { + "actual": 0.0, + "threshold": 0.0 + } + }, + "result": null, + "override_info": null + }, + { + "hypothesis": "No incomplete proofs (sorry) introduced", + "falsification_method": "FormalProofVerification", + "evidence_required": { + "NumericComparison": { + "actual": 0.0, + "threshold": 0.0 + } + }, + "result": null, + "override_info": null + } + ], + "profile": "Pmat", + "require": [ + { + "id": "require.compiles", + "kind": "Require", + "description": "Project builds successfully", + "falsification_method": "ManifestIntegrity", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "require.tests_exist", + "kind": "Require", + "description": "At least one test exists", + "falsification_method": "MetaFalsification", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "require.manifest_integrity", + "kind": "Require", + "description": "FileManifest anti-gaming check", + "falsification_method": "ManifestIntegrity", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "require.meta_falsification", + "kind": "Require", + "description": "Falsifier self-check active", + "falsification_method": "MetaFalsification", + "threshold": null, + "blocking": true, + "source": "Default" + } + ], + "ensure": [ + { + "id": "ensure.tests_pass", + "kind": "Ensure", + "description": "All tests pass", + "falsification_method": "MetaFalsification", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.git_sync", + "kind": "Ensure", + "description": "All changes pushed to remote", + "falsification_method": "GitHubSync", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.no_regression", + "kind": "Ensure", + "description": "No previously-passing test now fails", + "falsification_method": "MetaFalsification", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.coverage", + "kind": "Ensure", + "description": "Coverage >= 95%", + "falsification_method": "AbsoluteCoverage", + "threshold": { + "Numeric": { + "metric": "coverage_pct", + "op": "Gte", + "value": 95.0 + } + }, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.differential_coverage", + "kind": "Ensure", + "description": "Changed lines must be covered", + "falsification_method": "DifferentialCoverage", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.supply_chain", + "kind": "Ensure", + "description": "No vulnerable dependencies", + "falsification_method": "SupplyChainIntegrity", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.examples_compile", + "kind": "Ensure", + "description": "All examples compile and run", + "falsification_method": "ExamplesCompile", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.tdg_regression", + "kind": "Ensure", + "description": "TDG score >= baseline", + "falsification_method": "TdgRegression", + "threshold": { + "Delta": { + "metric": "tdg_score", + "op": "Gte", + "value": 0.0 + } + }, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.coverage_gaming", + "kind": "Ensure", + "description": "No coverage exclusion gaming", + "falsification_method": "CoverageGaming", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.spec_quality", + "kind": "Ensure", + "description": "Spec score meets threshold", + "falsification_method": "SpecQuality", + "threshold": { + "Numeric": { + "metric": "spec_score", + "op": "Gte", + "value": 95.0 + } + }, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.book_validation", + "kind": "Ensure", + "description": "pmat-book validation passes", + "falsification_method": "BookValidation", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.per_file_coverage", + "kind": "Ensure", + "description": "All files >= 95% coverage", + "falsification_method": "PerFileCoverage", + "threshold": { + "Numeric": { + "metric": "per_file_coverage_pct", + "op": "Gte", + "value": 95.0 + } + }, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.variant_coverage", + "kind": "Ensure", + "description": "All match arm variants tested", + "falsification_method": "VariantCoverage", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "ensure.cross_crate_parity", + "kind": "Ensure", + "description": "Cross-crate integration tests pass", + "falsification_method": "CrossCrateParity", + "threshold": null, + "blocking": false, + "source": "Default" + } + ], + "invariant": [ + { + "id": "invariant.compiles", + "kind": "Invariant", + "description": "Project compiles at every checkpoint", + "falsification_method": "ManifestIntegrity", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "invariant.file_size", + "kind": "Invariant", + "description": "No file exceeds 500 lines", + "falsification_method": "FileSizeRegression", + "threshold": { + "Numeric": { + "metric": "max_file_lines", + "op": "Lte", + "value": 500.0 + } + }, + "blocking": true, + "source": "Default" + }, + { + "id": "invariant.lint", + "kind": "Invariant", + "description": "cargo clippy passes", + "falsification_method": "LintPass", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "invariant.complexity", + "kind": "Invariant", + "description": "No function exceeds complexity 20", + "falsification_method": "ComplexityRegression", + "threshold": { + "Numeric": { + "metric": "max_complexity", + "op": "Lte", + "value": 20.0 + } + }, + "blocking": true, + "source": "Default" + }, + { + "id": "invariant.satd", + "kind": "Invariant", + "description": "No new SATD markers", + "falsification_method": "SatdDetection", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "invariant.dead_code", + "kind": "Invariant", + "description": "No new dead code introduced", + "falsification_method": "DeadCodeDetection", + "threshold": null, + "blocking": true, + "source": "Default" + }, + { + "id": "invariant.fix_chain", + "kind": "Invariant", + "description": "Fix-after-fix chains within limit", + "falsification_method": "FixChainLimit", + "threshold": { + "Numeric": { + "metric": "fix_chain_count", + "op": "Lte", + "value": 3.0 + } + }, + "blocking": true, + "source": "Default" + } + ], + "excluded_claims": [], + "iteration": 1, + "inherited_postconditions": [], + "contract_quality": { + "active_claims": 25, + "applicable_claims": 25, + "score": 1.0, + "rating": "Full" + } +} \ No newline at end of file diff --git a/.pmat-work/PMAT-030/falsification/receipt-2026-03-02T22-48-10.798515004+00-00.json b/.pmat-work/PMAT-030/falsification/receipt-2026-03-02T22-48-10.798515004+00-00.json new file mode 100644 index 00000000..0c77570c --- /dev/null +++ b/.pmat-work/PMAT-030/falsification/receipt-2026-03-02T22-48-10.798515004+00-00.json @@ -0,0 +1,196 @@ +{ + "id": "019cb0bc-d32e-7d21-be34-cac18e022ce1", + "git_sha": "dfbe5a19540030741deda0983594fe50056c671d", + "timestamp": "2026-03-02T22:48:10.798515004+00:00", + "trigger": "WorkComplete", + "work_item_id": "PMAT-030", + "verdicts": [ + { + "hypothesis": "All baseline files still exist", + "method": "ManifestIntegrity", + "falsified": false, + "is_blocking": true, + "explanation": "All 668 files present", + "evidence_summary": null + }, + { + "hypothesis": "The falsifier is active and detecting (Meta-Check)", + "method": "MetaFalsification", + "falsified": false, + "is_blocking": true, + "explanation": "Detected dummy gaming pattern correctly", + "evidence_summary": null + }, + { + "hypothesis": "No coverage exclusion gaming", + "method": "CoverageGaming", + "falsified": false, + "is_blocking": true, + "explanation": "No gaming patterns found in 674 files", + "evidence_summary": null + }, + { + "hypothesis": "All changed lines are covered", + "method": "DifferentialCoverage", + "falsified": false, + "is_blocking": true, + "explanation": "7 changed files (coverage check requires llvm-cov data)", + "evidence_summary": null + }, + { + "hypothesis": "Total coverage >= 95%", + "method": "AbsoluteCoverage", + "falsified": false, + "is_blocking": true, + "explanation": "No coverage data (run 'make coverage' to establish baseline), threshold: 95.0%", + "evidence_summary": null + }, + { + "hypothesis": "TDG score >= baseline", + "method": "TdgRegression", + "falsified": false, + "is_blocking": true, + "explanation": "No TDG data (baseline: 0.0)", + "evidence_summary": null + }, + { + "hypothesis": "No function exceeds complexity 20", + "method": "ComplexityRegression", + "falsified": false, + "is_blocking": true, + "explanation": "Complexity check passed", + "evidence_summary": null + }, + { + "hypothesis": "No vulnerable dependencies added", + "method": "SupplyChainIntegrity", + "falsified": false, + "is_blocking": true, + "explanation": "No vulnerabilities (cached 44 min ago)", + "evidence_summary": null + }, + { + "hypothesis": "No file exceeds 500 lines", + "method": "FileSizeRegression", + "falsified": true, + "is_blocking": true, + "explanation": "92 file(s) exceed 500 lines: src/core/scoring.rs (619 lines), src/core/executor/machine.rs (533 lines), src/core/planner/tests_hash.rs (503 lines), src/core/resolver/tests_resource.rs (560 lines), src/cli/tests_graph_core_2.rs (1041 lines), src/cli/graph_scoring.rs (655 lines), src/cli/status_resource_intel.rs (719 lines), src/cli/status_operational.rs (529 lines), src/cli/tests_apply_10.rs (583 lines), src/cli/tests_status_core_6.rs (705 lines), src/cli/status_security.rs (523 lines), src/cli/dispatch_notify.rs (728 lines), src/cli/commands/status_args.rs (676 lines), src/cli/commands/apply_args.rs (680 lines), src/cli/tests_cov_remaining_10.rs (559 lines), src/cli/status_fleet_insight.rs (706 lines), src/cli/tests_validate_core_2.rs (815 lines), src/cli/dispatch_validate.rs (1168 lines), src/cli/tests_cov_remaining_11.rs (710 lines), src/cli/tests_status_core_2.rs (707 lines), src/cli/status_intelligence.rs (656 lines), src/cli/dispatch_graph.rs (1142 lines), src/cli/tests_apply_9.rs (585 lines), src/cli/mod.rs (612 lines), src/cli/tests_misc_2.rs (517 lines), src/cli/tests_apply_11.rs (584 lines), src/cli/status_diagnostics.rs (578 lines), src/cli/tests_misc_6.rs (582 lines), src/cli/tests_apply_1.rs (514 lines), src/cli/tests_misc_10.rs (660 lines), src/cli/tests_cov_notify.rs (789 lines), src/cli/tests_status_core_5.rs (703 lines), src/cli/tests_validate_core.rs (511 lines), src/cli/graph_intelligence_ext.rs (759 lines), src/cli/tests_apply_20.rs (591 lines), src/cli/tests_cov_notify_2.rs (529 lines), src/cli/graph_quality.rs (506 lines), src/cli/tests_cov_fleet.rs (526 lines), src/cli/tests_graph_core_3.rs (757 lines), src/cli/tests_cov_dispatch_3.rs (501 lines), src/cli/validate_paths.rs (517 lines), src/cli/tests_apply_21.rs (591 lines), src/cli/dispatch_status.rs (1448 lines), src/cli/tests_status_core_7.rs (703 lines), src/cli/status_maturity.rs (857 lines), src/cli/tests_apply_18.rs (585 lines), src/cli/tests_status_core_1.rs (701 lines), src/cli/tests_apply_19.rs (589 lines), src/cli/tests_misc_8.rs (620 lines), src/cli/tests_apply_7.rs (585 lines), src/cli/tests_apply_5.rs (585 lines), src/cli/status_recovery.rs (677 lines), src/cli/graph_topology.rs (525 lines), src/cli/tests_status_core_4.rs (707 lines), src/cli/tests_apply_15.rs (584 lines), src/cli/tests_fleet_ops.rs (531 lines), src/cli/validate_ordering.rs (675 lines), src/cli/graph_intelligence_ext2.rs (643 lines), src/cli/tests_status_core_3.rs (705 lines), src/cli/tests_validate_core_1.rs (814 lines), src/cli/tests_status_core_9.rs (528 lines), src/cli/graph_intelligence.rs (591 lines), src/cli/tests_drift.rs (541 lines), src/cli/tests_apply_16.rs (585 lines), src/cli/validate_ownership.rs (610 lines), src/cli/tests_apply_8.rs (586 lines), src/cli/tests_cov_args_extra.rs (538 lines), src/cli/graph_export.rs (517 lines), src/cli/dispatch_status_ext.rs (637 lines), src/cli/tests_validate_core_2_b.rs (667 lines), src/cli/tests_apply_12.rs (584 lines), src/cli/status_intelligence_ext2.rs (624 lines), src/cli/status_intelligence_ext.rs (801 lines), src/cli/status_quality.rs (685 lines), src/cli/tests_apply_17.rs (586 lines), src/cli/status_resilience.rs (699 lines), src/cli/tests_apply_13.rs (584 lines), src/cli/tests_validate_core_1_b.rs (655 lines), src/cli/graph_advanced.rs (551 lines), src/cli/status_operational_ext2.rs (556 lines), src/cli/tests_misc_9.rs (621 lines), src/cli/tests_graph_core_1.rs (1033 lines), src/cli/tests_init.rs (553 lines), src/cli/tests_cov_notify_4.rs (504 lines), src/cli/tests_apply_14.rs (584 lines), src/cli/tests_misc_4.rs (521 lines), src/cli/dispatch_apply.rs (568 lines), src/cli/tests_apply_4.rs (585 lines), src/cli/tests_status_core_8.rs (704 lines), src/cli/tests_apply_22.rs (588 lines), src/resources/network.rs (535 lines), benches/core_bench.rs (610 lines)", + "evidence_summary": "FileList([\"src/core/scoring.rs\", \"src/core/executor/machine.rs\", \"src/core/planner/tests_hash.rs\", \"src/core/resolver/tests_resource.rs\", \"src/cli/tests_graph_core_2.rs\", \"src/cli/graph_scoring.rs\", \"src/cli/status_resource_intel.rs\", \"src/cli/status_operational.rs\", \"src/cli/tests_apply_10.rs\", \"src/cli/tests_status_core_6.rs\", \"src/cli/status_security.rs\", \"src/cli/dispatch_notify.rs\", \"src/cli/commands/status_args.rs\", \"src/cli/commands/apply_args.rs\", \"src/cli/tests_cov_remaining_10.rs\", \"src/cli/status_fleet_insight.rs\", \"src/cli/tests_validate_core_2.rs\", \"src/cli/dispatch_validate.rs\", \"src/cli/tests_cov_remaining_11.rs\", \"src/cli/tests_status_core_2.rs\", \"src/cli/status_intelligence.rs\", \"src/cli/dispatch_graph.rs\", \"src/cli/tests_apply_9.rs\", \"src/cli/mod.rs\", \"src/cli/tests_misc_2.rs\", \"src/cli/tests_apply_11.rs\", \"src/cli/status_diagnostics.rs\", \"src/cli/tests_misc_6.rs\", \"src/cli/tests_apply_1.rs\", \"src/cli/tests_misc_10.rs\", \"src/cli/tests_cov_notify.rs\", \"src/cli/tests_status_core_5.rs\", \"src/cli/tests_validate_core.rs\", \"src/cli/graph_intelligence_ext.rs\", \"src/cli/tests_apply_20.rs\", \"src/cli/tests_cov_notify_2.rs\", \"src/cli/graph_quality.rs\", \"src/cli/tests_cov_fleet.rs\", \"src/cli/tests_graph_core_3.rs\", \"src/cli/tests_cov_dispatch_3.rs\", \"src/cli/validate_paths.rs\", \"src/cli/tests_apply_21.rs\", \"src/cli/dispatch_status.rs\", \"src/cli/tests_status_core_7.rs\", \"src/cli/status_maturity.rs\", \"src/cli/tests_apply_18.rs\", \"src/cli/tests_status_core_1.rs\", \"src/cli/tests_apply_19.rs\", \"src/cli/tests_misc_8.rs\", \"src/cli/tests_apply_7.rs\", \"src/cli/tests_apply_5.rs\", \"src/cli/status_recovery.rs\", \"src/cli/graph_topology.rs\", \"src/cli/tests_status_core_4.rs\", \"src/cli/tests_apply_15.rs\", \"src/cli/tests_fleet_ops.rs\", \"src/cli/validate_ordering.rs\", \"src/cli/graph_intelligence_ext2.rs\", \"src/cli/tests_status_core_3.rs\", \"src/cli/tests_validate_core_1.rs\", \"src/cli/tests_status_core_9.rs\", \"src/cli/graph_intelligence.rs\", \"src/cli/tests_drift.rs\", \"src/cli/tests_apply_16.rs\", \"src/cli/validate_ownership.rs\", \"src/cli/tests_apply_8.rs\", \"src/cli/tests_cov_args_extra.rs\", \"src/cli/graph_export.rs\", \"src/cli/dispatch_status_ext.rs\", \"src/cli/tests_validate_core_2_b.rs\", \"src/cli/tests_apply_12.rs\", \"src/cli/status_intelligence_ext2.rs\", \"src/cli/status_intelligence_ext.rs\", \"src/cli/status_quality.rs\", \"src/cli/tests_apply_17.rs\", \"src/cli/status_resilience.rs\", \"src/cli/tests_apply_13.rs\", \"src/cli/tests_validate_core_1_b.rs\", \"src/cli/graph_advanced.rs\", \"src/cli/status_operational_ext2.rs\", \"src/cli/tests_misc_9.rs\", \"src/cli/tests_graph_core_1.rs\", \"src/cli/tests_init.rs\", \"src/cli/tests_cov_notify_4.rs\", \"src/cli/tests_apply_14.rs\", \"src/cli/tests_misc_4.rs\", \"src/cli/dispatch_apply.rs\", \"src/cli/tests_apply_4.rs\", \"src/cli/tests_status_core_8.rs\", \"src/cli/tests_apply_22.rs\", \"src/resources/network.rs\", \"benches/core_bench.rs\"])" + }, + { + "hypothesis": "Spec & Roadmap Quality", + "method": "SpecQuality", + "falsified": false, + "is_blocking": true, + "explanation": "No spec file found (optional)", + "evidence_summary": null + }, + { + "hypothesis": "All changes pushed", + "method": "GitHubSync", + "falsified": true, + "is_blocking": true, + "explanation": "3 uncommitted file(s)", + "evidence_summary": "GitState { unpushed_commits: 0, dirty_files: 3 }" + }, + { + "hypothesis": "All examples compile and run", + "method": "ExamplesCompile", + "falsified": false, + "is_blocking": true, + "explanation": "No examples cache (run 'cargo build --examples' to populate)", + "evidence_summary": null + }, + { + "hypothesis": "pmat-book validation passes", + "method": "BookValidation", + "falsified": false, + "is_blocking": true, + "explanation": "pmat-book not found (skipping validation)", + "evidence_summary": null + }, + { + "hypothesis": "No new SATD markers (TODO/FIXME/HACK)", + "method": "SatdDetection", + "falsified": false, + "is_blocking": true, + "explanation": "No new SATD markers (0 existing)", + "evidence_summary": null + }, + { + "hypothesis": "No new dead code introduced", + "method": "DeadCodeDetection", + "falsified": false, + "is_blocking": true, + "explanation": "No dead code detected", + "evidence_summary": null + }, + { + "hypothesis": "All files have >= 95% coverage", + "method": "PerFileCoverage", + "falsified": false, + "is_blocking": true, + "explanation": "No per-file coverage data (run 'make coverage'), threshold: 95.0%", + "evidence_summary": null + }, + { + "hypothesis": "make lint passes", + "method": "LintPass", + "falsified": false, + "is_blocking": true, + "explanation": "PASSED (cached 40 min ago)", + "evidence_summary": null + }, + { + "hypothesis": "All match arm variants have test coverage", + "method": "VariantCoverage", + "falsified": false, + "is_blocking": true, + "explanation": "7 changed file(s) -- all match variants tested", + "evidence_summary": null + }, + { + "hypothesis": "No fix-after-fix chains exceed limit", + "method": "FixChainLimit", + "falsified": false, + "is_blocking": true, + "explanation": "No fix chains > 3 consecutive commits", + "evidence_summary": null + }, + { + "hypothesis": "Cross-crate integration tests pass", + "method": "CrossCrateParity", + "falsified": false, + "is_blocking": false, + "explanation": "No cross-crate config (create .pmat-work/cross-crate.json to enable)", + "evidence_summary": null + }, + { + "hypothesis": "No performance regressions detected", + "method": "RegressionGate", + "falsified": false, + "is_blocking": false, + "explanation": "No benchmark cache (run benchmarks to populate .pmat-metrics/benchmark-status.json)", + "evidence_summary": null + }, + { + "hypothesis": "No incomplete proofs (sorry) introduced", + "method": "FormalProofVerification", + "falsified": false, + "is_blocking": false, + "explanation": "No .lean files with sorry found", + "evidence_summary": null + } + ], + "overrides": [], + "summary": { + "total": 22, + "passed": 20, + "failed": 2, + "warnings": 0, + "overridden": 0, + "allows_completion": false, + "health_score": 0.9090909090909091 + }, + "content_hash": "9e0e9a442a4b41f44c80d67e35a6f427b2335f54fce3457a74b0954819e71818" +} \ No newline at end of file diff --git a/.pmat-work/PMAT-030/falsification/receipt-2026-03-02T22-49-05.739595620+00-00.json b/.pmat-work/PMAT-030/falsification/receipt-2026-03-02T22-49-05.739595620+00-00.json new file mode 100644 index 00000000..0037bd34 --- /dev/null +++ b/.pmat-work/PMAT-030/falsification/receipt-2026-03-02T22-49-05.739595620+00-00.json @@ -0,0 +1,202 @@ +{ + "id": "019cb0bd-a9cb-7770-9194-290c60a32634", + "git_sha": "5048fe8930de53cf22902ffa48f98368296b9135", + "timestamp": "2026-03-02T22:49:05.739595620+00:00", + "trigger": "WorkComplete", + "work_item_id": "PMAT-030", + "verdicts": [ + { + "hypothesis": "All baseline files still exist", + "method": "ManifestIntegrity", + "falsified": false, + "is_blocking": true, + "explanation": "All 668 files present", + "evidence_summary": null + }, + { + "hypothesis": "The falsifier is active and detecting (Meta-Check)", + "method": "MetaFalsification", + "falsified": false, + "is_blocking": true, + "explanation": "Detected dummy gaming pattern correctly", + "evidence_summary": null + }, + { + "hypothesis": "No coverage exclusion gaming", + "method": "CoverageGaming", + "falsified": false, + "is_blocking": true, + "explanation": "No gaming patterns found in 674 files", + "evidence_summary": null + }, + { + "hypothesis": "All changed lines are covered", + "method": "DifferentialCoverage", + "falsified": false, + "is_blocking": true, + "explanation": "7 changed files (coverage check requires llvm-cov data)", + "evidence_summary": null + }, + { + "hypothesis": "Total coverage >= 95%", + "method": "AbsoluteCoverage", + "falsified": false, + "is_blocking": true, + "explanation": "No coverage data (run 'make coverage' to establish baseline), threshold: 95.0%", + "evidence_summary": null + }, + { + "hypothesis": "TDG score >= baseline", + "method": "TdgRegression", + "falsified": false, + "is_blocking": true, + "explanation": "No TDG data (baseline: 0.0)", + "evidence_summary": null + }, + { + "hypothesis": "No function exceeds complexity 20", + "method": "ComplexityRegression", + "falsified": false, + "is_blocking": true, + "explanation": "Complexity check passed", + "evidence_summary": null + }, + { + "hypothesis": "No vulnerable dependencies added", + "method": "SupplyChainIntegrity", + "falsified": false, + "is_blocking": true, + "explanation": "No vulnerabilities (cached 45 min ago)", + "evidence_summary": null + }, + { + "hypothesis": "No file exceeds 500 lines", + "method": "FileSizeRegression", + "falsified": true, + "is_blocking": true, + "explanation": "92 file(s) exceed 500 lines: src/core/scoring.rs (619 lines), src/core/executor/machine.rs (533 lines), src/core/planner/tests_hash.rs (503 lines), src/core/resolver/tests_resource.rs (560 lines), src/cli/tests_graph_core_2.rs (1041 lines), src/cli/graph_scoring.rs (655 lines), src/cli/status_resource_intel.rs (719 lines), src/cli/status_operational.rs (529 lines), src/cli/tests_apply_10.rs (583 lines), src/cli/tests_status_core_6.rs (705 lines), src/cli/status_security.rs (523 lines), src/cli/dispatch_notify.rs (728 lines), src/cli/commands/status_args.rs (676 lines), src/cli/commands/apply_args.rs (680 lines), src/cli/tests_cov_remaining_10.rs (559 lines), src/cli/status_fleet_insight.rs (706 lines), src/cli/tests_validate_core_2.rs (815 lines), src/cli/dispatch_validate.rs (1168 lines), src/cli/tests_cov_remaining_11.rs (710 lines), src/cli/tests_status_core_2.rs (707 lines), src/cli/status_intelligence.rs (656 lines), src/cli/dispatch_graph.rs (1142 lines), src/cli/tests_apply_9.rs (585 lines), src/cli/mod.rs (612 lines), src/cli/tests_misc_2.rs (517 lines), src/cli/tests_apply_11.rs (584 lines), src/cli/status_diagnostics.rs (578 lines), src/cli/tests_misc_6.rs (582 lines), src/cli/tests_apply_1.rs (514 lines), src/cli/tests_misc_10.rs (660 lines), src/cli/tests_cov_notify.rs (789 lines), src/cli/tests_status_core_5.rs (703 lines), src/cli/tests_validate_core.rs (511 lines), src/cli/graph_intelligence_ext.rs (759 lines), src/cli/tests_apply_20.rs (591 lines), src/cli/tests_cov_notify_2.rs (529 lines), src/cli/graph_quality.rs (506 lines), src/cli/tests_cov_fleet.rs (526 lines), src/cli/tests_graph_core_3.rs (757 lines), src/cli/tests_cov_dispatch_3.rs (501 lines), src/cli/validate_paths.rs (517 lines), src/cli/tests_apply_21.rs (591 lines), src/cli/dispatch_status.rs (1448 lines), src/cli/tests_status_core_7.rs (703 lines), src/cli/status_maturity.rs (857 lines), src/cli/tests_apply_18.rs (585 lines), src/cli/tests_status_core_1.rs (701 lines), src/cli/tests_apply_19.rs (589 lines), src/cli/tests_misc_8.rs (620 lines), src/cli/tests_apply_7.rs (585 lines), src/cli/tests_apply_5.rs (585 lines), src/cli/status_recovery.rs (677 lines), src/cli/graph_topology.rs (525 lines), src/cli/tests_status_core_4.rs (707 lines), src/cli/tests_apply_15.rs (584 lines), src/cli/tests_fleet_ops.rs (531 lines), src/cli/validate_ordering.rs (675 lines), src/cli/graph_intelligence_ext2.rs (643 lines), src/cli/tests_status_core_3.rs (705 lines), src/cli/tests_validate_core_1.rs (814 lines), src/cli/tests_status_core_9.rs (528 lines), src/cli/graph_intelligence.rs (591 lines), src/cli/tests_drift.rs (541 lines), src/cli/tests_apply_16.rs (585 lines), src/cli/validate_ownership.rs (610 lines), src/cli/tests_apply_8.rs (586 lines), src/cli/tests_cov_args_extra.rs (538 lines), src/cli/graph_export.rs (517 lines), src/cli/dispatch_status_ext.rs (637 lines), src/cli/tests_validate_core_2_b.rs (667 lines), src/cli/tests_apply_12.rs (584 lines), src/cli/status_intelligence_ext2.rs (624 lines), src/cli/status_intelligence_ext.rs (801 lines), src/cli/status_quality.rs (685 lines), src/cli/tests_apply_17.rs (586 lines), src/cli/status_resilience.rs (699 lines), src/cli/tests_apply_13.rs (584 lines), src/cli/tests_validate_core_1_b.rs (655 lines), src/cli/graph_advanced.rs (551 lines), src/cli/status_operational_ext2.rs (556 lines), src/cli/tests_misc_9.rs (621 lines), src/cli/tests_graph_core_1.rs (1033 lines), src/cli/tests_init.rs (553 lines), src/cli/tests_cov_notify_4.rs (504 lines), src/cli/tests_apply_14.rs (584 lines), src/cli/tests_misc_4.rs (521 lines), src/cli/dispatch_apply.rs (568 lines), src/cli/tests_apply_4.rs (585 lines), src/cli/tests_status_core_8.rs (704 lines), src/cli/tests_apply_22.rs (588 lines), src/resources/network.rs (535 lines), benches/core_bench.rs (610 lines)", + "evidence_summary": "FileList([\"src/core/scoring.rs\", \"src/core/executor/machine.rs\", \"src/core/planner/tests_hash.rs\", \"src/core/resolver/tests_resource.rs\", \"src/cli/tests_graph_core_2.rs\", \"src/cli/graph_scoring.rs\", \"src/cli/status_resource_intel.rs\", \"src/cli/status_operational.rs\", \"src/cli/tests_apply_10.rs\", \"src/cli/tests_status_core_6.rs\", \"src/cli/status_security.rs\", \"src/cli/dispatch_notify.rs\", \"src/cli/commands/status_args.rs\", \"src/cli/commands/apply_args.rs\", \"src/cli/tests_cov_remaining_10.rs\", \"src/cli/status_fleet_insight.rs\", \"src/cli/tests_validate_core_2.rs\", \"src/cli/dispatch_validate.rs\", \"src/cli/tests_cov_remaining_11.rs\", \"src/cli/tests_status_core_2.rs\", \"src/cli/status_intelligence.rs\", \"src/cli/dispatch_graph.rs\", \"src/cli/tests_apply_9.rs\", \"src/cli/mod.rs\", \"src/cli/tests_misc_2.rs\", \"src/cli/tests_apply_11.rs\", \"src/cli/status_diagnostics.rs\", \"src/cli/tests_misc_6.rs\", \"src/cli/tests_apply_1.rs\", \"src/cli/tests_misc_10.rs\", \"src/cli/tests_cov_notify.rs\", \"src/cli/tests_status_core_5.rs\", \"src/cli/tests_validate_core.rs\", \"src/cli/graph_intelligence_ext.rs\", \"src/cli/tests_apply_20.rs\", \"src/cli/tests_cov_notify_2.rs\", \"src/cli/graph_quality.rs\", \"src/cli/tests_cov_fleet.rs\", \"src/cli/tests_graph_core_3.rs\", \"src/cli/tests_cov_dispatch_3.rs\", \"src/cli/validate_paths.rs\", \"src/cli/tests_apply_21.rs\", \"src/cli/dispatch_status.rs\", \"src/cli/tests_status_core_7.rs\", \"src/cli/status_maturity.rs\", \"src/cli/tests_apply_18.rs\", \"src/cli/tests_status_core_1.rs\", \"src/cli/tests_apply_19.rs\", \"src/cli/tests_misc_8.rs\", \"src/cli/tests_apply_7.rs\", \"src/cli/tests_apply_5.rs\", \"src/cli/status_recovery.rs\", \"src/cli/graph_topology.rs\", \"src/cli/tests_status_core_4.rs\", \"src/cli/tests_apply_15.rs\", \"src/cli/tests_fleet_ops.rs\", \"src/cli/validate_ordering.rs\", \"src/cli/graph_intelligence_ext2.rs\", \"src/cli/tests_status_core_3.rs\", \"src/cli/tests_validate_core_1.rs\", \"src/cli/tests_status_core_9.rs\", \"src/cli/graph_intelligence.rs\", \"src/cli/tests_drift.rs\", \"src/cli/tests_apply_16.rs\", \"src/cli/validate_ownership.rs\", \"src/cli/tests_apply_8.rs\", \"src/cli/tests_cov_args_extra.rs\", \"src/cli/graph_export.rs\", \"src/cli/dispatch_status_ext.rs\", \"src/cli/tests_validate_core_2_b.rs\", \"src/cli/tests_apply_12.rs\", \"src/cli/status_intelligence_ext2.rs\", \"src/cli/status_intelligence_ext.rs\", \"src/cli/status_quality.rs\", \"src/cli/tests_apply_17.rs\", \"src/cli/status_resilience.rs\", \"src/cli/tests_apply_13.rs\", \"src/cli/tests_validate_core_1_b.rs\", \"src/cli/graph_advanced.rs\", \"src/cli/status_operational_ext2.rs\", \"src/cli/tests_misc_9.rs\", \"src/cli/tests_graph_core_1.rs\", \"src/cli/tests_init.rs\", \"src/cli/tests_cov_notify_4.rs\", \"src/cli/tests_apply_14.rs\", \"src/cli/tests_misc_4.rs\", \"src/cli/dispatch_apply.rs\", \"src/cli/tests_apply_4.rs\", \"src/cli/tests_status_core_8.rs\", \"src/cli/tests_apply_22.rs\", \"src/resources/network.rs\", \"benches/core_bench.rs\"])" + }, + { + "hypothesis": "Spec & Roadmap Quality", + "method": "SpecQuality", + "falsified": false, + "is_blocking": true, + "explanation": "No spec file found (optional)", + "evidence_summary": null + }, + { + "hypothesis": "All changes pushed", + "method": "GitHubSync", + "falsified": true, + "is_blocking": true, + "explanation": "2 uncommitted file(s)", + "evidence_summary": "GitState { unpushed_commits: 0, dirty_files: 2 }" + }, + { + "hypothesis": "All examples compile and run", + "method": "ExamplesCompile", + "falsified": false, + "is_blocking": true, + "explanation": "No examples cache (run 'cargo build --examples' to populate)", + "evidence_summary": null + }, + { + "hypothesis": "pmat-book validation passes", + "method": "BookValidation", + "falsified": false, + "is_blocking": true, + "explanation": "pmat-book not found (skipping validation)", + "evidence_summary": null + }, + { + "hypothesis": "No new SATD markers (TODO/FIXME/HACK)", + "method": "SatdDetection", + "falsified": false, + "is_blocking": true, + "explanation": "No new SATD markers (0 existing)", + "evidence_summary": null + }, + { + "hypothesis": "No new dead code introduced", + "method": "DeadCodeDetection", + "falsified": false, + "is_blocking": true, + "explanation": "No dead code detected", + "evidence_summary": null + }, + { + "hypothesis": "All files have >= 95% coverage", + "method": "PerFileCoverage", + "falsified": false, + "is_blocking": true, + "explanation": "No per-file coverage data (run 'make coverage'), threshold: 95.0%", + "evidence_summary": null + }, + { + "hypothesis": "make lint passes", + "method": "LintPass", + "falsified": false, + "is_blocking": true, + "explanation": "PASSED (cached 41 min ago)", + "evidence_summary": null + }, + { + "hypothesis": "All match arm variants have test coverage", + "method": "VariantCoverage", + "falsified": false, + "is_blocking": true, + "explanation": "7 changed file(s) -- all match variants tested", + "evidence_summary": null + }, + { + "hypothesis": "No fix-after-fix chains exceed limit", + "method": "FixChainLimit", + "falsified": false, + "is_blocking": true, + "explanation": "No fix chains > 3 consecutive commits", + "evidence_summary": null + }, + { + "hypothesis": "Cross-crate integration tests pass", + "method": "CrossCrateParity", + "falsified": false, + "is_blocking": false, + "explanation": "No cross-crate config (create .pmat-work/cross-crate.json to enable)", + "evidence_summary": null + }, + { + "hypothesis": "No performance regressions detected", + "method": "RegressionGate", + "falsified": false, + "is_blocking": false, + "explanation": "No benchmark cache (run benchmarks to populate .pmat-metrics/benchmark-status.json)", + "evidence_summary": null + }, + { + "hypothesis": "No incomplete proofs (sorry) introduced", + "method": "FormalProofVerification", + "falsified": false, + "is_blocking": false, + "explanation": "No .lean files with sorry found", + "evidence_summary": null + } + ], + "overrides": [ + { + "claim_id": "file-size", + "ticket": "PMAT-029", + "reason": "Override approved via --override-claims (ticket: PMAT-029)" + } + ], + "summary": { + "total": 22, + "passed": 20, + "failed": 2, + "warnings": 0, + "overridden": 1, + "allows_completion": false, + "health_score": 0.9090909090909091 + }, + "content_hash": "621cbc0cd330809bbc0408f404873b3e2f7f29cbc2353df0e336a002919c0e3c" +} \ No newline at end of file diff --git a/.pmat-work/PMAT-030/rescue/rescue-30ed642b-b488-4521-b1f0-29de8679cfeb.json b/.pmat-work/PMAT-030/rescue/rescue-30ed642b-b488-4521-b1f0-29de8679cfeb.json new file mode 100644 index 00000000..d6ee100a --- /dev/null +++ b/.pmat-work/PMAT-030/rescue/rescue-30ed642b-b488-4521-b1f0-29de8679cfeb.json @@ -0,0 +1,21 @@ +{ + "rescue_id": "30ed642b-b488-4521-b1f0-29de8679cfeb", + "work_item_id": "PMAT-030", + "timestamp": "2026-03-02T22:48:10.798787696Z", + "violated_clause": "All changes pushed", + "strategy": { + "ManualIntervention": { + "guidance": "Push all local commits: `git push origin HEAD`" + } + }, + "diagnosis": { + "summary": "Manual intervention required: Push all local commits: `git push origin HEAD`", + "suggested_actions": [ + "Push all local commits: `git push origin HEAD`", + "Re-run: pmat work complete " + ], + "generated_artifacts": [] + }, + "outcome": "ManualActionRequired", + "retry_allowed": true +} \ No newline at end of file diff --git a/.pmat-work/PMAT-030/rescue/rescue-79a9497b-d2d6-46b7-98f2-d8c06475c4ae.json b/.pmat-work/PMAT-030/rescue/rescue-79a9497b-d2d6-46b7-98f2-d8c06475c4ae.json new file mode 100644 index 00000000..133de20a --- /dev/null +++ b/.pmat-work/PMAT-030/rescue/rescue-79a9497b-d2d6-46b7-98f2-d8c06475c4ae.json @@ -0,0 +1,21 @@ +{ + "rescue_id": "79a9497b-d2d6-46b7-98f2-d8c06475c4ae", + "work_item_id": "PMAT-030", + "timestamp": "2026-03-02T22:48:10.798741937Z", + "violated_clause": "No file exceeds 500 lines", + "strategy": { + "ManualIntervention": { + "guidance": "Split large files using extract-module refactoring. Target files exceeding the line limit." + } + }, + "diagnosis": { + "summary": "Manual intervention required: Split large files using extract-module refactoring. Target files exceeding the line limit.", + "suggested_actions": [ + "Split large files using extract-module refactoring. Target files exceeding the line limit.", + "Re-run: pmat work complete " + ], + "generated_artifacts": [] + }, + "outcome": "ManualActionRequired", + "retry_allowed": true +} \ No newline at end of file diff --git a/.pmat-work/PMAT-030/rescue/rescue-7eb21007-3582-44e8-82e5-3b6502945ecf.json b/.pmat-work/PMAT-030/rescue/rescue-7eb21007-3582-44e8-82e5-3b6502945ecf.json new file mode 100644 index 00000000..ae1b4209 --- /dev/null +++ b/.pmat-work/PMAT-030/rescue/rescue-7eb21007-3582-44e8-82e5-3b6502945ecf.json @@ -0,0 +1,21 @@ +{ + "rescue_id": "7eb21007-3582-44e8-82e5-3b6502945ecf", + "work_item_id": "PMAT-030", + "timestamp": "2026-03-02T22:49:05.739871488Z", + "violated_clause": "All changes pushed", + "strategy": { + "ManualIntervention": { + "guidance": "Push all local commits: `git push origin HEAD`" + } + }, + "diagnosis": { + "summary": "Manual intervention required: Push all local commits: `git push origin HEAD`", + "suggested_actions": [ + "Push all local commits: `git push origin HEAD`", + "Re-run: pmat work complete " + ], + "generated_artifacts": [] + }, + "outcome": "ManualActionRequired", + "retry_allowed": true +} \ No newline at end of file diff --git a/.pmat-work/deny-cache.txt b/.pmat-work/deny-cache.txt new file mode 100644 index 00000000..9c4524d2 --- /dev/null +++ b/.pmat-work/deny-cache.txt @@ -0,0 +1 @@ +advisories ok, bans ok, licenses FAILED, sources ok diff --git a/.pmat-work/ledger.jsonl b/.pmat-work/ledger.jsonl new file mode 100644 index 00000000..3da2e14f --- /dev/null +++ b/.pmat-work/ledger.jsonl @@ -0,0 +1,17 @@ +{"receipt_id":"019caf2c-9c95-7dd3-a8cb-9f3fd43c6d37","work_item_id":"PMAT-022","timestamp":"2026-03-02T15:31:02.421563273+00:00","git_sha":"84433302ec6739ce35f65c2d1ca8986767549141","trigger":"WorkComplete","passed":17,"failed":5,"overridden":0,"allows_completion":false,"content_hash":"c7cdae7ee85938fcf9340b9af632068a30842a1e479fb19a429658b6115427b6"} +{"receipt_id":"019cb084-4951-7c12-83ce-3af2efaed19b","work_item_id":"PMAT-027","timestamp":"2026-03-02T21:46:25.489495139+00:00","git_sha":"2611c9da7913b519c49e79cfee316a7ba3548393","trigger":"WorkComplete","passed":17,"failed":5,"overridden":0,"allows_completion":false,"content_hash":"7d22502e60e64cd1c4ae28475aa5187c35aab963312772d3418dd1258d2f3433"} +{"receipt_id":"019cb084-8a4a-73d2-9809-bd8822d3ceba","work_item_id":"PMAT-028","timestamp":"2026-03-02T21:46:42.122482155+00:00","git_sha":"2611c9da7913b519c49e79cfee316a7ba3548393","trigger":"WorkComplete","passed":17,"failed":5,"overridden":0,"allows_completion":false,"content_hash":"bb1dda45f61ff0ad02a773e818692206b1b4ab8577b47f2fc9cea861880d2b6d"} +{"receipt_id":"019cb087-06bf-7c90-857c-9fe4310d6967","work_item_id":"PMAT-027","timestamp":"2026-03-02T21:49:25.055851545+00:00","git_sha":"2611c9da7913b519c49e79cfee316a7ba3548393","trigger":"WorkComplete","passed":17,"failed":5,"overridden":0,"allows_completion":false,"content_hash":"bbef69882f3689a7678ab19685eece22fac839912701cdc7e84725c2239e3841"} +{"receipt_id":"019cb091-505f-7c90-ab75-385b651dd32c","work_item_id":"PMAT-028","timestamp":"2026-03-02T22:00:39.263374974+00:00","git_sha":"1ec766854bdd4f50bd1aef5c2d720d46a79c473c","trigger":"WorkComplete","passed":17,"failed":5,"overridden":0,"allows_completion":false,"content_hash":"169fdcbd076c7b1ce06d0b5dfac76ca656560ae7a3072927e9644c5aaebf7211"} +{"receipt_id":"019cb091-6141-7792-9084-8aa5513636d1","work_item_id":"PMAT-028","timestamp":"2026-03-02T22:00:43.585794020+00:00","git_sha":"1ec766854bdd4f50bd1aef5c2d720d46a79c473c","trigger":"WorkComplete","passed":17,"failed":5,"overridden":0,"allows_completion":false,"content_hash":"faacfaeba32dc1d2607e463c1c5b3d68adf491a6c53c4dcedf19dacec75542f7"} +{"receipt_id":"019cb092-ed5b-7f40-b926-635e7cf00bc6","work_item_id":"PMAT-028","timestamp":"2026-03-02T22:02:24.987396504+00:00","git_sha":"1ec766854bdd4f50bd1aef5c2d720d46a79c473c","trigger":"WorkComplete","passed":17,"failed":5,"overridden":1,"allows_completion":false,"content_hash":"a15c3817028122cf60605553c3b799c25190d26098fc534ee16cf1901856db06"} +{"receipt_id":"019cb094-dcc7-7600-9c36-e3b7507047b0","work_item_id":"PMAT-028","timestamp":"2026-03-02T22:04:31.815641836+00:00","git_sha":"b2cafb93396f6d3e03aab6137741b02967da11db","trigger":"WorkComplete","passed":20,"failed":2,"overridden":0,"allows_completion":false,"content_hash":"f4c8fa6858be7b63c80338dc4a3d31a91740854c5079810a732aeb47a64c09bb"} +{"receipt_id":"019cb095-7e34-78d3-807a-cd314b8c89ab","work_item_id":"PMAT-028","timestamp":"2026-03-02T22:05:13.140306394+00:00","git_sha":"b2cafb93396f6d3e03aab6137741b02967da11db","trigger":"WorkComplete","passed":19,"failed":3,"overridden":1,"allows_completion":false,"content_hash":"5ec962267878bf515a42fd5a55e28d5c1e8e57eae36141dc2f3d2b7e68e24bc4"} +{"receipt_id":"019cb096-5995-79e3-92d7-f965c0d3d6c3","work_item_id":"PMAT-028","timestamp":"2026-03-02T22:06:09.301266287+00:00","git_sha":"f4a4cf135492461bd3d230d5a163d286bcaeb8a1","trigger":"WorkComplete","passed":19,"failed":3,"overridden":1,"allows_completion":false,"content_hash":"368750ad348c39ea672b35ca40dfbf3784574d00dc064dc040936e9effac3536"} +{"receipt_id":"019cb097-e9c7-7ed0-8103-d6125cf103e3","work_item_id":"PMAT-028","timestamp":"2026-03-02T22:07:51.751464363+00:00","git_sha":"b49ff3d4c40ffe0ce3b24d098b95df8b1b2e94cd","trigger":"WorkComplete","passed":20,"failed":2,"overridden":0,"allows_completion":false,"content_hash":"154497477fe00ccf7a8bf65c5c3c05f10326206d9629b93d50fe110b279a0f99"} +{"receipt_id":"019cb098-0a37-7601-9ddc-68d192571f8e","work_item_id":"PMAT-028","timestamp":"2026-03-02T22:08:00.055600464+00:00","git_sha":"b49ff3d4c40ffe0ce3b24d098b95df8b1b2e94cd","trigger":"WorkComplete","passed":19,"failed":3,"overridden":0,"allows_completion":false,"content_hash":"1f58d629f028cd2dc50db6affc16fc19ccfcabb2cd006e543c0e30885cad44d9"} +{"receipt_id":"019cb098-5558-7ec1-97f1-0f16adae8f95","work_item_id":"PMAT-028","timestamp":"2026-03-02T22:08:19.288186800+00:00","git_sha":"b49ff3d4c40ffe0ce3b24d098b95df8b1b2e94cd","trigger":"WorkComplete","passed":19,"failed":3,"overridden":0,"allows_completion":false,"content_hash":"cfa1f5cbdfde9cfe33b7bfbb4a6ff67ee2d842dc90024e234ce023b774b3f94b"} +{"receipt_id":"019cb099-28a7-7b41-90b4-c63cd7b2d73e","work_item_id":"PMAT-028","timestamp":"2026-03-02T22:09:13.383425854+00:00","git_sha":"ec72a1ceaf620a5b88cd56d23071e292608e6861","trigger":"WorkComplete","passed":19,"failed":3,"overridden":1,"allows_completion":false,"content_hash":"8b4154a56d78a8f879a13541f2f67055461756f3df9b6641813b4fdd2ac5568e"} +{"receipt_id":"019cb099-4a17-7c10-9ba3-b80a8c5b129c","work_item_id":"PMAT-028","timestamp":"2026-03-02T22:09:21.943749022+00:00","git_sha":"ec72a1ceaf620a5b88cd56d23071e292608e6861","trigger":"WorkComplete","passed":19,"failed":3,"overridden":0,"allows_completion":false,"content_hash":"68e12e8adf66f9d1ca2b16dc90bd15acebb9b54e752abbbb503a400b7be4d3b6"} +{"receipt_id":"019cb0bc-d32e-7d21-be34-cac18e022ce1","work_item_id":"PMAT-030","timestamp":"2026-03-02T22:48:10.798515004+00:00","git_sha":"dfbe5a19540030741deda0983594fe50056c671d","trigger":"WorkComplete","passed":20,"failed":2,"overridden":0,"allows_completion":false,"content_hash":"9e0e9a442a4b41f44c80d67e35a6f427b2335f54fce3457a74b0954819e71818"} +{"receipt_id":"019cb0bd-a9cb-7770-9194-290c60a32634","work_item_id":"PMAT-030","timestamp":"2026-03-02T22:49:05.739595620+00:00","git_sha":"5048fe8930de53cf22902ffa48f98368296b9135","trigger":"WorkComplete","passed":20,"failed":2,"overridden":1,"allows_completion":false,"content_hash":"621cbc0cd330809bbc0408f404873b3e2f7f29cbc2353df0e336a002919c0e3c"} diff --git a/.pmat-work/lint-cache.txt b/.pmat-work/lint-cache.txt new file mode 100644 index 00000000..e43d1d53 --- /dev/null +++ b/.pmat-work/lint-cache.txt @@ -0,0 +1 @@ +cargo clippy --all-targets -- -D warnings diff --git a/.pmat/bug-hunter-cache/0fac17ffca2a31df.json b/.pmat/bug-hunter-cache/0fac17ffca2a31df.json new file mode 100644 index 00000000..3b60c56f --- /dev/null +++ b/.pmat/bug-hunter-cache/0fac17ffca2a31df.json @@ -0,0 +1 @@ +{"findings":[{"id":"BH-MUT-0001","file":"src/cli/mod.rs","line":986,"column":null,"title":"Boolean logic mutation target","description":"Complex boolean expression; verify test coverage catches negation mutations","severity":"Low","category":"LogicErrors","suspiciousness":0.4,"discovered_by":"Falsify","evidence":[{"evidence_type":"MutationSurvival","description":"Mutant bool_1 SURVIVED","data":"SURVIVED"}],"suggested_fix":null,"related":[],"regression_risk":null,"blame_author":null,"blame_commit":null,"blame_date":null},{"id":"BH-MUT-0001","file":"src/core/codegen.rs","line":215,"column":null,"title":"Boolean logic mutation target","description":"Complex boolean expression; verify test coverage catches negation mutations","severity":"Low","category":"LogicErrors","suspiciousness":0.4,"discovered_by":"Falsify","evidence":[{"evidence_type":"MutationSurvival","description":"Mutant bool_1 SURVIVED","data":"SURVIVED"}],"suggested_fix":null,"related":[],"regression_risk":null,"blame_author":null,"blame_commit":null,"blame_date":null},{"id":"BH-MUT-0001","file":"src/core/executor.rs","line":226,"column":null,"title":"Boolean logic mutation target","description":"Complex boolean expression; verify test coverage catches negation mutations","severity":"Low","category":"LogicErrors","suspiciousness":0.4,"discovered_by":"Falsify","evidence":[{"evidence_type":"MutationSurvival","description":"Mutant bool_1 SURVIVED","data":"SURVIVED"}],"suggested_fix":null,"related":[],"regression_risk":null,"blame_author":null,"blame_commit":null,"blame_date":null},{"id":"BH-MUT-0001","file":"src/core/parser.rs","line":68,"column":null,"title":"Boolean logic mutation target","description":"Complex boolean expression; verify test coverage catches negation mutations","severity":"Low","category":"LogicErrors","suspiciousness":0.4,"discovered_by":"Falsify","evidence":[{"evidence_type":"MutationSurvival","description":"Mutant bool_1 SURVIVED","data":"SURVIVED"}],"suggested_fix":null,"related":[],"regression_risk":null,"blame_author":null,"blame_commit":null,"blame_date":null},{"id":"BH-MUT-0002","file":"src/core/parser.rs","line":122,"column":null,"title":"Boolean logic mutation target","description":"Complex boolean expression; verify test coverage catches negation mutations","severity":"Low","category":"LogicErrors","suspiciousness":0.4,"discovered_by":"Falsify","evidence":[{"evidence_type":"MutationSurvival","description":"Mutant bool_2 SURVIVED","data":"SURVIVED"}],"suggested_fix":null,"related":[],"regression_risk":null,"blame_author":null,"blame_commit":null,"blame_date":null},{"id":"BH-MUT-0001","file":"src/core/recipe.rs","line":164,"column":null,"title":"Boolean logic mutation target","description":"Complex boolean expression; verify test coverage catches negation mutations","severity":"Low","category":"LogicErrors","suspiciousness":0.4,"discovered_by":"Falsify","evidence":[{"evidence_type":"MutationSurvival","description":"Mutant bool_1 SURVIVED","data":"SURVIVED"}],"suggested_fix":null,"related":[],"regression_risk":null,"blame_author":null,"blame_commit":null,"blame_date":null},{"id":"BH-MUT-0002","file":"src/core/recipe.rs","line":273,"column":null,"title":"Boolean logic mutation target","description":"Complex boolean expression; verify test coverage catches negation mutations","severity":"Low","category":"LogicErrors","suspiciousness":0.4,"discovered_by":"Falsify","evidence":[{"evidence_type":"MutationSurvival","description":"Mutant bool_2 SURVIVED","data":"SURVIVED"}],"suggested_fix":null,"related":[],"regression_risk":null,"blame_author":null,"blame_commit":null,"blame_date":null},{"id":"BH-MUT-0003","file":"src/core/recipe.rs","line":552,"column":null,"title":"Boolean logic mutation target","description":"Complex boolean expression; verify test coverage catches negation mutations","severity":"Low","category":"LogicErrors","suspiciousness":0.4,"discovered_by":"Falsify","evidence":[{"evidence_type":"MutationSurvival","description":"Mutant bool_3 SURVIVED","data":"SURVIVED"}],"suggested_fix":null,"related":[],"regression_risk":null,"blame_author":null,"blame_commit":null,"blame_date":null},{"id":"BH-MUT-0004","file":"src/core/recipe.rs","line":769,"column":null,"title":"Boolean logic mutation target","description":"Complex boolean expression; verify test coverage catches negation mutations","severity":"Low","category":"LogicErrors","suspiciousness":0.4,"discovered_by":"Falsify","evidence":[{"evidence_type":"MutationSurvival","description":"Mutant bool_4 SURVIVED","data":"SURVIVED"}],"suggested_fix":null,"related":[],"regression_risk":null,"blame_author":null,"blame_commit":null,"blame_date":null},{"id":"BH-MUT-0001","file":"src/resources/package.rs","line":26,"column":null,"title":"Boolean logic mutation target","description":"Complex boolean expression; verify test coverage catches negation mutations","severity":"Low","category":"LogicErrors","suspiciousness":0.4,"discovered_by":"Falsify","evidence":[{"evidence_type":"MutationSurvival","description":"Mutant bool_1 SURVIVED","data":"SURVIVED"}],"suggested_fix":null,"related":[],"regression_risk":null,"blame_author":null,"blame_commit":null,"blame_date":null},{"id":"BH-MUT-0002","file":"src/resources/package.rs","line":33,"column":null,"title":"Boolean logic mutation target","description":"Complex boolean expression; verify test coverage catches negation mutations","severity":"Low","category":"LogicErrors","suspiciousness":0.4,"discovered_by":"Falsify","evidence":[{"evidence_type":"MutationSurvival","description":"Mutant bool_2 SURVIVED","data":"SURVIVED"}],"suggested_fix":null,"related":[],"regression_risk":null,"blame_author":null,"blame_commit":null,"blame_date":null},{"id":"BH-MUT-0003","file":"src/resources/package.rs","line":102,"column":null,"title":"Boolean logic mutation target","description":"Complex boolean expression; verify test coverage catches negation mutations","severity":"Low","category":"LogicErrors","suspiciousness":0.4,"discovered_by":"Falsify","evidence":[{"evidence_type":"MutationSurvival","description":"Mutant bool_3 SURVIVED","data":"SURVIVED"}],"suggested_fix":null,"related":[],"regression_risk":null,"blame_author":null,"blame_commit":null,"blame_date":null},{"id":"BH-MUT-0004","file":"src/resources/package.rs","line":122,"column":null,"title":"Boolean logic mutation target","description":"Complex boolean expression; verify test coverage catches negation mutations","severity":"Low","category":"LogicErrors","suspiciousness":0.4,"discovered_by":"Falsify","evidence":[{"evidence_type":"MutationSurvival","description":"Mutant bool_4 SURVIVED","data":"SURVIVED"}],"suggested_fix":null,"related":[],"regression_risk":null,"blame_author":null,"blame_commit":null,"blame_date":null},{"id":"BH-MUT-0005","file":"src/resources/package.rs","line":129,"column":null,"title":"Boolean logic mutation target","description":"Complex boolean expression; verify test coverage catches negation mutations","severity":"Low","category":"LogicErrors","suspiciousness":0.4,"discovered_by":"Falsify","evidence":[{"evidence_type":"MutationSurvival","description":"Mutant bool_5 SURVIVED","data":"SURVIVED"}],"suggested_fix":null,"related":[],"regression_risk":null,"blame_author":null,"blame_commit":null,"blame_date":null},{"id":"BH-MUT-0006","file":"src/resources/package.rs","line":136,"column":null,"title":"Boolean logic mutation target","description":"Complex boolean expression; verify test coverage catches negation mutations","severity":"Low","category":"LogicErrors","suspiciousness":0.4,"discovered_by":"Falsify","evidence":[{"evidence_type":"MutationSurvival","description":"Mutant bool_6 SURVIVED","data":"SURVIVED"}],"suggested_fix":null,"related":[],"regression_risk":null,"blame_author":null,"blame_commit":null,"blame_date":null},{"id":"BH-MUT-0001","file":"src/transport/mod.rs","line":26,"column":null,"title":"Boolean logic mutation target","description":"Complex boolean expression; verify test coverage catches negation mutations","severity":"Low","category":"LogicErrors","suspiciousness":0.4,"discovered_by":"Falsify","evidence":[{"evidence_type":"MutationSurvival","description":"Mutant bool_1 SURVIVED","data":"SURVIVED"}],"suggested_fix":null,"related":[],"regression_risk":null,"blame_author":null,"blame_commit":null,"blame_date":null},{"id":"BH-MUT-0001","file":"src/tripwire/eventlog.rs","line":65,"column":null,"title":"Boolean logic mutation target","description":"Complex boolean expression; verify test coverage catches negation mutations","severity":"Low","category":"LogicErrors","suspiciousness":0.4,"discovered_by":"Falsify","evidence":[{"evidence_type":"MutationSurvival","description":"Mutant bool_1 SURVIVED","data":"SURVIVED"}],"suggested_fix":null,"related":[],"regression_risk":null,"blame_author":null,"blame_commit":null,"blame_date":null},{"id":"BH-MUT-0002","file":"src/tripwire/eventlog.rs","line":123,"column":null,"title":"Boundary condition mutation target","description":"Off-by-one errors are common; this comparison should be mutation-tested","severity":"Medium","category":"LogicErrors","suspiciousness":0.6,"discovered_by":"Falsify","evidence":[{"evidence_type":"MutationSurvival","description":"Mutant boundary_2 SURVIVED","data":"SURVIVED"}],"suggested_fix":null,"related":[],"regression_risk":null,"blame_author":null,"blame_commit":null,"blame_date":null},{"id":"BH-MUT-0003","file":"src/tripwire/eventlog.rs","line":201,"column":null,"title":"Boolean logic mutation target","description":"Complex boolean expression; verify test coverage catches negation mutations","severity":"Low","category":"LogicErrors","suspiciousness":0.4,"discovered_by":"Falsify","evidence":[{"evidence_type":"MutationSurvival","description":"Mutant bool_3 SURVIVED","data":"SURVIVED"}],"suggested_fix":null,"related":[],"regression_risk":null,"blame_author":null,"blame_commit":null,"blame_date":null}],"mode":"Falsify","config_hash":"0fac17ffca2a31df"} \ No newline at end of file diff --git a/.pmat/bug-hunter-cache/e25da52c902f7dd5.json b/.pmat/bug-hunter-cache/e25da52c902f7dd5.json new file mode 100644 index 00000000..88b72100 --- /dev/null +++ b/.pmat/bug-hunter-cache/e25da52c902f7dd5.json @@ -0,0 +1 @@ +{"findings":[{"id":"BH-MUT-0001","file":"src/cli/mod.rs","line":986,"column":null,"title":"Boolean logic mutation target","description":"Complex boolean expression; verify test coverage catches negation mutations","severity":"Low","category":"LogicErrors","suspiciousness":0.4,"discovered_by":"Falsify","evidence":[{"evidence_type":"MutationSurvival","description":"Mutant bool_1 SURVIVED","data":"SURVIVED"}],"suggested_fix":null,"related":[],"regression_risk":null,"blame_author":null,"blame_commit":null,"blame_date":null},{"id":"BH-MUT-0001","file":"src/core/codegen.rs","line":211,"column":null,"title":"Boolean logic mutation target","description":"Complex boolean expression; verify test coverage catches negation mutations","severity":"Low","category":"LogicErrors","suspiciousness":0.4,"discovered_by":"Falsify","evidence":[{"evidence_type":"MutationSurvival","description":"Mutant bool_1 SURVIVED","data":"SURVIVED"}],"suggested_fix":null,"related":[],"regression_risk":null,"blame_author":null,"blame_commit":null,"blame_date":null},{"id":"BH-MUT-0001","file":"src/core/executor.rs","line":226,"column":null,"title":"Boolean logic mutation target","description":"Complex boolean expression; verify test coverage catches negation mutations","severity":"Low","category":"LogicErrors","suspiciousness":0.4,"discovered_by":"Falsify","evidence":[{"evidence_type":"MutationSurvival","description":"Mutant bool_1 SURVIVED","data":"SURVIVED"}],"suggested_fix":null,"related":[],"regression_risk":null,"blame_author":null,"blame_commit":null,"blame_date":null},{"id":"BH-MUT-0001","file":"src/core/parser.rs","line":68,"column":null,"title":"Boolean logic mutation target","description":"Complex boolean expression; verify test coverage catches negation mutations","severity":"Low","category":"LogicErrors","suspiciousness":0.4,"discovered_by":"Falsify","evidence":[{"evidence_type":"MutationSurvival","description":"Mutant bool_1 SURVIVED","data":"SURVIVED"}],"suggested_fix":null,"related":[],"regression_risk":null,"blame_author":null,"blame_commit":null,"blame_date":null},{"id":"BH-MUT-0002","file":"src/core/parser.rs","line":122,"column":null,"title":"Boolean logic mutation target","description":"Complex boolean expression; verify test coverage catches negation mutations","severity":"Low","category":"LogicErrors","suspiciousness":0.4,"discovered_by":"Falsify","evidence":[{"evidence_type":"MutationSurvival","description":"Mutant bool_2 SURVIVED","data":"SURVIVED"}],"suggested_fix":null,"related":[],"regression_risk":null,"blame_author":null,"blame_commit":null,"blame_date":null},{"id":"BH-MUT-0001","file":"src/core/recipe.rs","line":162,"column":null,"title":"Boolean logic mutation target","description":"Complex boolean expression; verify test coverage catches negation mutations","severity":"Low","category":"LogicErrors","suspiciousness":0.4,"discovered_by":"Falsify","evidence":[{"evidence_type":"MutationSurvival","description":"Mutant bool_1 SURVIVED","data":"SURVIVED"}],"suggested_fix":null,"related":[],"regression_risk":null,"blame_author":null,"blame_commit":null,"blame_date":null},{"id":"BH-MUT-0002","file":"src/core/recipe.rs","line":270,"column":null,"title":"Boolean logic mutation target","description":"Complex boolean expression; verify test coverage catches negation mutations","severity":"Low","category":"LogicErrors","suspiciousness":0.4,"discovered_by":"Falsify","evidence":[{"evidence_type":"MutationSurvival","description":"Mutant bool_2 SURVIVED","data":"SURVIVED"}],"suggested_fix":null,"related":[],"regression_risk":null,"blame_author":null,"blame_commit":null,"blame_date":null},{"id":"BH-MUT-0003","file":"src/core/recipe.rs","line":548,"column":null,"title":"Boolean logic mutation target","description":"Complex boolean expression; verify test coverage catches negation mutations","severity":"Low","category":"LogicErrors","suspiciousness":0.4,"discovered_by":"Falsify","evidence":[{"evidence_type":"MutationSurvival","description":"Mutant bool_3 SURVIVED","data":"SURVIVED"}],"suggested_fix":null,"related":[],"regression_risk":null,"blame_author":null,"blame_commit":null,"blame_date":null},{"id":"BH-MUT-0004","file":"src/core/recipe.rs","line":765,"column":null,"title":"Boolean logic mutation target","description":"Complex boolean expression; verify test coverage catches negation mutations","severity":"Low","category":"LogicErrors","suspiciousness":0.4,"discovered_by":"Falsify","evidence":[{"evidence_type":"MutationSurvival","description":"Mutant bool_4 SURVIVED","data":"SURVIVED"}],"suggested_fix":null,"related":[],"regression_risk":null,"blame_author":null,"blame_commit":null,"blame_date":null},{"id":"BH-MUT-0001","file":"src/resources/package.rs","line":26,"column":null,"title":"Boolean logic mutation target","description":"Complex boolean expression; verify test coverage catches negation mutations","severity":"Low","category":"LogicErrors","suspiciousness":0.4,"discovered_by":"Falsify","evidence":[{"evidence_type":"MutationSurvival","description":"Mutant bool_1 SURVIVED","data":"SURVIVED"}],"suggested_fix":null,"related":[],"regression_risk":null,"blame_author":null,"blame_commit":null,"blame_date":null},{"id":"BH-MUT-0002","file":"src/resources/package.rs","line":102,"column":null,"title":"Boolean logic mutation target","description":"Complex boolean expression; verify test coverage catches negation mutations","severity":"Low","category":"LogicErrors","suspiciousness":0.4,"discovered_by":"Falsify","evidence":[{"evidence_type":"MutationSurvival","description":"Mutant bool_2 SURVIVED","data":"SURVIVED"}],"suggested_fix":null,"related":[],"regression_risk":null,"blame_author":null,"blame_commit":null,"blame_date":null},{"id":"BH-MUT-0003","file":"src/resources/package.rs","line":109,"column":null,"title":"Boolean logic mutation target","description":"Complex boolean expression; verify test coverage catches negation mutations","severity":"Low","category":"LogicErrors","suspiciousness":0.4,"discovered_by":"Falsify","evidence":[{"evidence_type":"MutationSurvival","description":"Mutant bool_3 SURVIVED","data":"SURVIVED"}],"suggested_fix":null,"related":[],"regression_risk":null,"blame_author":null,"blame_commit":null,"blame_date":null},{"id":"BH-MUT-0001","file":"src/transport/mod.rs","line":26,"column":null,"title":"Boolean logic mutation target","description":"Complex boolean expression; verify test coverage catches negation mutations","severity":"Low","category":"LogicErrors","suspiciousness":0.4,"discovered_by":"Falsify","evidence":[{"evidence_type":"MutationSurvival","description":"Mutant bool_1 SURVIVED","data":"SURVIVED"}],"suggested_fix":null,"related":[],"regression_risk":null,"blame_author":null,"blame_commit":null,"blame_date":null},{"id":"BH-MUT-0001","file":"src/tripwire/eventlog.rs","line":65,"column":null,"title":"Boolean logic mutation target","description":"Complex boolean expression; verify test coverage catches negation mutations","severity":"Low","category":"LogicErrors","suspiciousness":0.4,"discovered_by":"Falsify","evidence":[{"evidence_type":"MutationSurvival","description":"Mutant bool_1 SURVIVED","data":"SURVIVED"}],"suggested_fix":null,"related":[],"regression_risk":null,"blame_author":null,"blame_commit":null,"blame_date":null},{"id":"BH-MUT-0002","file":"src/tripwire/eventlog.rs","line":123,"column":null,"title":"Boundary condition mutation target","description":"Off-by-one errors are common; this comparison should be mutation-tested","severity":"Medium","category":"LogicErrors","suspiciousness":0.6,"discovered_by":"Falsify","evidence":[{"evidence_type":"MutationSurvival","description":"Mutant boundary_2 SURVIVED","data":"SURVIVED"}],"suggested_fix":null,"related":[],"regression_risk":null,"blame_author":null,"blame_commit":null,"blame_date":null},{"id":"BH-MUT-0003","file":"src/tripwire/eventlog.rs","line":201,"column":null,"title":"Boolean logic mutation target","description":"Complex boolean expression; verify test coverage catches negation mutations","severity":"Low","category":"LogicErrors","suspiciousness":0.4,"discovered_by":"Falsify","evidence":[{"evidence_type":"MutationSurvival","description":"Mutant bool_3 SURVIVED","data":"SURVIVED"}],"suggested_fix":null,"related":[],"regression_risk":null,"blame_author":null,"blame_commit":null,"blame_date":null}],"mode":"Falsify","config_hash":"e25da52c902f7dd5"} \ No newline at end of file diff --git a/.pmat/context.db b/.pmat/context.db new file mode 100644 index 00000000..49657f73 Binary files /dev/null and b/.pmat/context.db differ diff --git a/.pmat/context.idx/manifest.json b/.pmat/context.idx/manifest.json new file mode 100644 index 00000000..c106082e --- /dev/null +++ b/.pmat/context.idx/manifest.json @@ -0,0 +1,688 @@ +{ + "version": "1.4.0", + "built_at": "2026-03-02T22:47:39.038189144+00:00", + "project_root": "/home/noah/src/forjar", + "function_count": 4460, + "file_count": 674, + "languages": [ + "Rust" + ], + "avg_tdg_score": 0.12338185, + "file_checksums": { + "src/cli/status_intelligence_ext.rs": "66d86de02b1b24a4732538620580336edb5c501d9a299fdfbe0b122c0e12643e", + "src/mcp/types.rs": "cb8c7e82ad98e5597f9b9c97533399eaf4a0b6d108470ddf272d4ed74b10bc75", + "src/cli/validate_governance.rs": "7909756818caadc8ce5782aa8b4993c340675b9502259363f67ea01de304c263", + "src/resources/mount.rs": "c2a3832d37383b154b7771f9a943d0ff31758f4dd6f7367ce8f83bfef994dfd2", + "src/cli/tests_apply_11.rs": "0f99be1bbe1377b6ab724baf304431a900a7361d15b4b82d7d52a43a2dfea94b", + "src/cli/status_compliance.rs": "2c77b5f6328ed8db8bdd89c4ef5821f6af04f93116f92c9f8820286a4e5247ab", + "src/cli/tests_cov_validate3_c.rs": "9fd07efa885746790d5b0da5015a316ac1314ea36c23c6a81f5da3174a60d922", + "src/core/store/tests_falsify_spec_e.rs": "3973d529c803469dfb110396fa766a4d976b9e9a9b4c4d6286ee400cb8962843", + "src/cli/history.rs": "b71f21a1943143a0694336ed32053d28a4bea1275320430367ba14fa3e64977b", + "src/core/executor/tests_edge_details.rs": "e4b0c31d73409f22aa1213b0376f5e9a02980a317e4ba6670c925afd5f9a51ef", + "src/core/state/mod.rs": "e0762e985be68ee38bcbfb5f03e876243ebd68d9184bddca38da517221441a81", + "src/core/state/tests_helpers.rs": "7fc2190767b2cacf33961b927bdfb6be3970becdfd3f787c89fcd4a8e06b95e8", + "src/cli/tests_cov_fleet_b.rs": "079ef5be1709818426bf9b485cfa249617ca2acaf46c0dfbceca1dff39fdcc22", + "src/core/tests_purifier.rs": "2590f79be5bf58666abe31c1b7294d2a0b87213100b1190097d270ddc6e91915", + "src/cli/tests_status_core_10.rs": "66d3de64c23cdbdba6cb3d9bdee6971b446e737c2f431691ec0af0c8a62fe023", + "src/cli/tests_phase71.rs": "6f4a1d72e31d38a48ab0a78dd51638a39bb062d8e9cdef372efd051c655c0abe", + "src/cli/diff_cmd.rs": "aeca8eb5893d02c7ec86beb7eb0c2f5708d34c497f74ae33047c5d9133ce2a24", + "src/cli/status_maturity.rs": "86d8871f6417999c5d028f68e3c8eb1a8b837c03d655b8fe91fe5775c4d60b8d", + "src/cli/tests_phase66.rs": "0d4492c526b77f8aa5d53713e6a1ef457a203f56bd8742765463fea2cd702256", + "src/cli/status_resilience.rs": "b3bc5904cb1ebdcab05ac2b3d4466bc50fb7f3b7a4e77b83ad1e9058c1f888d8", + "src/tripwire/mod.rs": "4b7378d6af1834063b09a80e02fd37bbea24ca7aaa934cbd5b0decd9022dcb83", + "src/cli/tests_phase104.rs": "d0db279defc746e4a47f639ad9b51c180869322b81923f9e6111134c8bbf5bd9", + "examples/arch_filtering.rs": "0c7b4be49e9498d6b6a8e4277cf7ceb27c84887a8f2dfb8224b20f4cbbe2083c", + "src/cli/tests_cov_dispatch.rs": "6358cf318479593cf597f419d64a74af27bac5f881755714a645d7abd9f4e972", + "examples/gpu_container_transport.rs": "d23eca486eb1020410cd6f894b19be747524b4552a22ebb07ce5b5e8fe03e84a", + "examples/state_management.rs": "f59be77c50f3a54522dee4c421f271bba4e36033ec2c0013173368733f33d7a6", + "src/core/store/mod.rs": "f322252097a658ada2cb517a62cfa118fe09b23b0b51cc2149c8d33e80c795f0", + "src/cli/tests_apply_9.rs": "9595bb38a7b853a08bef9958a0dc8652676b31974accc7cd153953e064f65ec2", + "src/core/executor/tests_parallel.rs": "f82bb8f72e4d6b25694ffeb7abaa01e6e77934ee96fd2b897ff6845fb18f6582", + "src/core/store/tests_contract_scaffold.rs": "0579aec27efbb232895792b359733ae85c571abf51c7e4c5282de8700fa607f1", + "src/core/codegen/test_fixtures.rs": "3efa8147df7d4144bdabb3ea06f747bc99c10d77ff6f78b5e405342c5724a99d", + "src/cli/tests_phase94.rs": "fff4cfa1c2fb77c8c79f9a7610da253dd0e2aa118e2dd7cb3f01779095bf61b1", + "src/cli/graph_lifecycle.rs": "e2aa32b5d86669dacd3372184338375a61d4a42d0359a6e206aee5bb0c1bd8f0", + "src/cli/tests_phase80.rs": "e267ae411af084f1442b0496b55e22ff991b270d68e7642f4846bef5f10c9bb7", + "tests/container_transport.rs": "5eaf35999f82182fc8ffcfa7bba3084e607fcd733f8af0ecaf9e2088926e4e9e", + "src/transport/tests_container_b.rs": "3e362db276afe5b00807edd1bb908ab0d43ede1ac1e2380756745d1dcee91e65", + "src/cli/drift.rs": "6ff6e37736702b9237f75821c99fe3d39fdb3d9996f61a8dfc750ff94c93320f", + "src/core/executor/test_fixtures.rs": "51f211f7c40ee50f9a04e7fbec3829c9349a737038a51803046a47e68842fe36", + "src/core/store/reference.rs": "c2e29b14ebf4b4fa1e516a86b4a0b8dd7913e73d566f27d15a9fc571f9b3ecc9", + "src/cli/status_resources.rs": "c30a9bd72485e2d4669f36919b1e0498e8fc5510d523dc308b2b43fe8b21bcf1", + "src/cli/tests_cov_misc2.rs": "c8b337c89ad6a10b7594a79b366934c6164ac3057d3325805b2c7e6688d9c6d4", + "src/cli/tests_cov_args.rs": "d6ff2578cdef4fb0853e97436d525ab7311339457cbcbd9c0574d2f85ddc7c9b", + "src/cli/tests_cov_graph3_b.rs": "0b53e9dd56f69e38122e721290cc6e0d3a8415a07e0c460f2a1103a3bdcfc419", + "src/core/resolver/tests_proptest.rs": "0eb89718248287a3dfe83e3adb93336309e3831ae0d267cc00b660d9b06e7889", + "src/cli/tests_show_1.rs": "146e30fe694909412f1d8a3157c58e7c8269c41ce0c7f35dc7e817d881833ab4", + "src/cli/status_alerts.rs": "5c22a3e00b7ba28ba72eafefabc0e7450e12428873514882f634d0ec56ce8127", + "src/cli/lock_audit.rs": "781e7c728c7a0b8a9b2204000a53f1fd58ed33aad63202aa5020e3f39e7f3bbd", + "src/cli/helpers_time.rs": "3cc6c787859c42c701962a8943fb8d48c502416c59af9add56c40b500a1b278e", + "src/cli/tests_status_core_3_b.rs": "7f879d507e8f70be38da61e42293acf03bf3025c2efb27a5b2069ac3487c504e", + "src/core/store/sync_exec.rs": "4e91b0d79127d3b8c39c7b64ae527a802fdea0be8400406a722d3aa6da41094f", + "src/cli/validate_safety.rs": "6808aa310a9f54ffe84bf5653e735a0ad600c608a907851396bf8c075d52c9cc", + "src/cli/tests_apply_18.rs": "5cc232e1bbdfa286c5f61b9dcf404152c154bf83e9c19bc49543fbb7df7a75f4", + "src/core/executor/tests_drift.rs": "5f34e558d5b53c082a28d43579f18cd4962307695c2e9fa782d4c2362399c302", + "src/cli/graph_topology.rs": "58dbadcd16996501b6d30be61417f9754f426a86fb2ebe6467302c081a8a0bd7", + "src/core/types/resource.rs": "58e75f542452698f3ff375faebc9fe6e3672dca984bf84404375aa68fbca6d43", + "src/cli/apply_output.rs": "a34f54cbc1a73ab2186d7e7d1faaa0fc8d8e0fdaf952f551aaab6200a47d6f8d", + "src/cli/secrets.rs": "f04e8e8de8dbf25c709ab07f8a237dff5fd923b92956dfcff6f3f44e315a9875", + "src/cli/tests_phase103.rs": "cbabee64dc0654ef58d19e26d4037ed79847fdf34d04e3b12d51e9cf56b77028", + "src/core/codegen/dispatch.rs": "b0cef52bfba28729d54b320d8a05c52915033e03dbd896d1f0eaca06f6b41b5b", + "src/cli/tests_phase91.rs": "fe1cf071401d8d2bdbb1229b8bc4dda46fc56537d1cb101079980bfc36a4b4fe", + "src/cli/dispatch_apply.rs": "a18773bc1739ead60e53676aa95f738ff93001233d0d113214c56a20231e944b", + "src/tripwire/drift/tests_edge_fj132.rs": "548bc6e30bbf5689453b1ffefda21385743466c3cf7b8baeba29069d569b3d2a", + "src/core/tests_secrets.rs": "c3e9a7a11caef27d4950768370be2f68d69ed711fb48393ece5eebaecd99fe80", + "src/tripwire/tests_hasher.rs": "d631ad2b887ce07688a8a0e87a5aff2d55bddd83d2217fb5b8203aac76552631", + "examples/anomaly_detection.rs": "7df1ddb35aa1377af77266b5b10313781ecdd0b715bb78fefaa28d4b1dc9a2b0", + "src/core/recipe/tests_validation.rs": "61a0c94cfe03eb4f564a727aa353bac5c17c02795165714c76cebb9b4e57ea5a", + "src/cli/tests_graph_core_2.rs": "02f18590f6d10e4b1d939241a15d9bac785ac865c4dd244ab4191b5500576f93", + "src/cli/check_test.rs": "7ad5988d22f832718573ae82a76be7f2b607c9ec3e1cb2cc6d18c0b7da596da6", + "src/cli/dispatch_status_ext.rs": "38caa2aed92591fe40388046bd7b21fe3209088d0376b921fca0982e63e37c1f", + "src/cli/tests_status_core_8_b.rs": "9d0b1701b10b92390265cf41b623c1234fafd0e600e7fedb75a70a73de503993", + "src/core/store/kernel_far.rs": "bafdeac640d0494aae58e3ae0512cdafacc7b6aacfa43c014bc085e4a238a600", + "examples/full_stack_deploy.rs": "56839d0659adcec2a1d782f0008bbc14a9c272f252bfd46bb5cd7dbe2164032b", + "src/cli/status_queries.rs": "4e34a126b8c125dfe51f90a1aafe25a3ccc45747614703985b58203040e5c983", + "src/cli/tests_cov_notify_3.rs": "216bccf19aab69f190b04af25c296385f62577edc54028435be95a11066c2be7", + "src/cli/lock_security.rs": "8018b5a7797f5483703a32671e476ecbc4f8afe01eb6a727a39679dedb706be6", + "src/cli/tests_phase62.rs": "6f95ab39861fa1e10e27bd13cc4bae119d295cd71df5f20f2e8e6a1d3f725603", + "src/cli/graph_cross.rs": "fc8522c2858d35b0f01007c86b2e33dc65f53517580b36cc757545ad72217855", + "src/cli/tests_apply_2.rs": "b299404221428f44c430c474ff6684c540df14375ce9b1b68d648bc864bf0dc8", + "examples/codegen_scripts.rs": "1aec4a1f7fbd71e200736351449eb48da43034e7c29c4158c6253d4ec46f47e3", + "src/cli/tests_cov_validate_ext2.rs": "5fbf94a6d3f412b5f5af8345da5944b2f9d0ca47b918e702b9aaf62d44c2c7fd", + "src/core/executor/tests_advanced.rs": "577782791494f3a2f1f4701ec33e12fe7381a0ab660dc7601d8879297ce6063c", + "src/cli/tests_import_cmd.rs": "ca8678572947c76d895196e76c9ae6f6acb300fcec1481e9b572e38aae0b484e", + "src/core/store/cache_exec.rs": "9c8b43112021997d47bcb7775bf13bfc762d02f1ee1cf40f4d902fb070a874f3", + "src/transport/tests_container_c.rs": "3e362db276afe5b00807edd1bb908ab0d43ede1ac1e2380756745d1dcee91e65", + "src/cli/mod.rs": "4b0f37eeba3cbd9b6b99885b836021c0c633a3f230673dd066c2048b87e5d5b7", + "src/cli/validate_compliance_ext.rs": "52a51378bc98cdc284777bcdcf3966d365b46e33ec9efe10dd2881a3529cca75", + "src/core/state/tests_encrypt.rs": "07bccfcf40e2b5ad38e718da89204a331512f0c74e8c13dce22e6864e30bc5ac", + "src/cli/validate_quality.rs": "2c94ea204e4a115133bc709888f1e82c24e6253e59a85578bdf7c289a74d90c9", + "src/cli/tests_phase75.rs": "bf07a1a67b718dbbfa557d46495d3bd2da898466891f5526bcd817db3e3e390d", + "src/tripwire/drift/tests_basic_b.rs": "2a5e76b7562ab9156b12f478491a85958c43330dcd8907caaaa876a76177364c", + "src/core/parser/tests_triggers.rs": "43a2d5e86ff679568c74904081e8bb08984e92df2ad7426961767c3999e3bb68", + "src/cli/tests_misc_5_b.rs": "ae7798e2a3827d2d0946147ea00340787a86e191f15d4b98237d7b4bdd74b75c", + "build.rs": "d68c4b581bc2211c97f952c4cd1aca94426b84e419e52071a421118e381f833c", + "src/resources/tests_user.rs": "948e80757627608afc462218c4f2fc974469f0914f19a5ffe516ca4ac79217d7", + "src/core/store/pin_tripwire.rs": "6642a1bbc18f4ff12b66e49e0e7751744ded7a5a4fdfcad6cb8aa991bb6bf3d0", + "src/core/store/conda.rs": "92a0b3d6e29c245f814f7e4b524dfab625f49ab2b6b2f4374a5fc1c445a96d55", + "src/core/store/tests_cov_exec.rs": "e7517c1fbd96c00e74f75db28598490453525a425948c823a65de8aca754c5ac", + "src/cli/tests_phase84.rs": "33863ec3fca34a46d4f8ba2b7c3949438640899e7793463ed3dd93627d48d6ef", + "src/core/store/tests_kernel_far.rs": "0c3f0f3cd5084c953a428b20d2350063bd53140d61bdeece477c2ddd62087356", + "src/core/types/tests_resource.rs": "c51b45db69f9f9d83857727f88999433664a2ce42bba11070ccea4235c79fd7f", + "src/cli/validate_core.rs": "52906653e59d2b705f0221e6d82d69271897aed0864605f1a9fca1c915db5d80", + "src/cli/tests_cov_args_2.rs": "5508e7b804752e76687b26143649c6990e5fca3156c9adf78d7a0317ea861c70", + "src/resources/tests_package.rs": "d4b770875ea35b767d9c9a4d14e1a6bc544930f4414f48114f6dc11c1472f532", + "src/resources/task.rs": "cac6107376b85edd8b7c7a1fc9cbe8772a7508d549a74b183420601ddc15ef37", + "examples/store_executors.rs": "91c8fa816ce193156f8e5c7b1e2738ed8fc211d6c5fdebd31bef9a0182b7e468", + "examples/validation.rs": "8346d643a4450c0aa664b04298cd5e3b8483e74ae34344148daa81d625359f30", + "src/core/codegen/tests_dispatch.rs": "5b506a1421a453948b549e4863516566fbb8877a1c38da5119dfcb97ad105c3a", + "src/cli/tests_dispatch_store.rs": "7736a7d4745be01cf0eaa74fecbd03a67cd393801dc24b4de91990f7de7e7df2", + "src/cli/tests_validate_core_1_b.rs": "1bd282fda67215bc5451ba254d90569ce29395cd21b45d1ceede7ccb24a60a16", + "src/cli/tests_fleet_ops_1.rs": "5db177b33104bf4e9c9a6ae3060e9aebfef6341175f3f69727b3c8c0a51acfbb", + "src/cli/tests_cov_status_4_c.rs": "3cb668f82e29559aeee7bf75908f8190621ef88a0bcbf38ab26222f450152862", + "src/core/store/tests_far.rs": "24550e8b86ecf27dcd0fcb84087f98b1e20953293c06a573be3d0b28b325a7b8", + "src/cli/graph_transport.rs": "e6020dc225f3929dbf93a9fa1c4abc21bc9b5c0fe089f62c1e0772014bfec906", + "src/cli/test_fixtures.rs": "0b8fda69d8f277e11569288b038ea6261396ff44b72d25b7410150bd2fb19839", + "src/cli/validate_transport.rs": "c33ab3fd3cb1a5bfe41ffd3bfdd4ac703183e6fdfa303857a21aceb497216f7a", + "src/resources/tests_mount.rs": "5f3ff36a90ea280516cdd7bed4f53353133d7c2d88d79f6eefd3e3fdda931d07", + "benches/store_bench.rs": "d8b658231c6bc6186a6974c761bbd9cb63e7b6744f60d56f0d570cf760c08feb", + "src/core/executor/machine.rs": "1016a4470cfb85dfcd868df21fe8086a3b18c842765eab1d22f967aff8f525b2", + "src/cli/commands/plan_args.rs": "9a317401d68dba54b512ebdb9bda678819a39a4d05243b89030a37bca0f46683", + "src/core/store/tests_validate.rs": "7b9db1114d00359a0bc997e5562cfbdc1c2b59b1e95fb423eaae4f35571af7e0", + "src/core/store/sandbox_run.rs": "58ce624ed70496af87745f25b27f09c3c4d9cff9638123ea2ec63299c5c4f592", + "src/cli/tests_misc_9_b.rs": "3a831a32ac2c14170211c76398f8ca81dda570c83f38df1e7ce7cafc5e3bae24", + "src/cli/tests_phase101.rs": "74758c38fa148996d240fd23b5a951e82edddb5e50b95fd15c449275065a8f57", + "src/core/store/tests_convert_exec.rs": "492f4073d6e354e01cce99d946506f5e02b3d6d5b9f85861427cb608fc3f824f", + "src/cli/tests_misc_1_b.rs": "33221eefa354e0482515d3ac44909c8b218d54435078814040b93ddc6f1d6f31", + "src/core/store/tests_gc.rs": "845a11f64740c6ad1c7a6b37bcb8768950f678b431f3ef7942dea10ea5718375", + "src/core/resolver/data.rs": "e38af36163c68498a96ab1edbb077a08efcad8e2a2e86cea14eba74590b70dbb", + "src/cli/tests_cov_validate.rs": "156fe9a3861bd5c1033ce9408b177b24db65749cb8560640fd3b18b532baebb9", + "src/cli/tests_phase86.rs": "153172f7ef3c5139c3921114f76cfc53f40a54d98910d6b36f9f6dbbd6a91413", + "src/cli/tests_phase82.rs": "fa4cef482998707dd19209834ba250b6a3dea79eb38120b118e29795c01b861b", + "src/transport/tests_container.rs": "10063bb3e84f26c0b2c758899d3b5a780c5b3a57d5825702a80f0bcf74bad620", + "src/transport/local.rs": "42df3372977903d61a060ee4949826793a11e046b38b022b59743c864b4d4f9a", + "src/core/resolver/tests_helpers.rs": "64bebc379fca0c0a1369309d939cc755d17120891ca79b3a9a99971cb7fce950", + "src/cli/tests_cov_remaining_5.rs": "67ff6948936e96d24450ec9fd9a80dcba42f9949406834c38922b4ae89286d88", + "src/cli/validate_analytics.rs": "5d5ee17e1dd1549aa2433d189257f59b54b718eafff552913e5e0187de17a1ea", + "src/cli/validate_store_purity.rs": "eebe1c9b5a2e3ca8a5f626c15c2bd1029d84d887f7e111ae56e36c213e051021", + "src/core/resolver/tests_dag.rs": "2c13befc9e3d19724bd66f98f9851c85bc9ffad3db5bc12949a471f5be8924cc", + "src/core/state/tests_basic.rs": "26773ead1c2a4f5649bafbf9fb0ae4903aa075f74a18d6023262ad0dd7c1071f", + "src/core/types/mod.rs": "03c03d2a2752ede3f9a5d3d56726cc3e448f874db26732c23f6c26f859565256", + "src/cli/tests_misc_7.rs": "48e11dfaa56f1b1f15ef4370098508f3028969f1a681c328ddb6543c49fc1135", + "src/cli/commands/status_args.rs": "b2df8deccc2c8cd18bb80be47098e390cb5dbf7cd6a16c74163be10113c56180", + "src/cli/tests_phase64.rs": "d95d5a7569aedecf4c5f7da391965a342aaa6c897069d00986a67b8b41e9a65d", + "src/core/store/substitution.rs": "066e4f1a9d041be568ba6528659f4d869d71368af226e0fc99dfefcb717fc79d", + "src/cli/store_convert.rs": "9a4f53e95baf8df5a52f8585341337d69fe3b1b7e1586abae21419e9525fdabd", + "src/cli/graph_health.rs": "967ada2de2f50e004169e6e3dfbc2b75807fd3adecdbe8ada6da3ca827a51172", + "src/core/planner/tests_plan.rs": "06886b0275b2a61d010df1fc8a9b7e279ab76367b6f2a9bf33e1be767ec6071d", + "src/cli/lock_repair.rs": "5df1a01c6d3e651a03ce69af2bce43587e0caae153bdb9650250bab85e85548e", + "src/resources/tests_file.rs": "b04d499f3404375fc6c01ba7bcf748f8d33f5c515086550b602d3b7f84fe7ec1", + "src/cli/tests_validate_core_2.rs": "67567ad5c7465e4d4e14ace33964dc264e07bc82854f5fe42d2ae7cc202a8f4d", + "src/cli/tests_misc_4.rs": "17f18eefc5dd9b6f13a4e6173a4f78c90284e9b4f98b0d95038f4ef4d0fa8717", + "src/cli/tests_lock_core_1.rs": "5a2e2f81c6637643d2c491fdaab1073189f2c26c0ac05cd6e0a267b169a86ad7", + "src/core/store/convert.rs": "ef229b7ab26af27013fe7550151b754c18ad2483b86b34f66d4f7aa3ebc9f83a", + "src/core/store/tests_conda.rs": "5207a8413f19d7d566942ea05c1b24b717e9273ae0da195c95e8fc4dd68e186b", + "src/tripwire/tests_eventlog_b.rs": "34a596c285b3642f888d17dacc616138f36a5c6388391a331485fa09f26c4802", + "src/core/recipe/tests_integration.rs": "76bdc5f3c0d88749442c9f0438bd278b9c9a65f76aa3ad2210ec0162b1f773ec", + "src/cli/tests_store_archive.rs": "bcf1bb0fc5105667e853fbbdf8b7718b9d8dc3f5fcdbbaf525c3a9788bcf7526", + "src/core/planner/tests_advanced.rs": "b622cf123d06945e5dcd11ece3b4c8a67d1add1b535c4d2f3cc4dd14c11b9805", + "src/core/state/tests_process_lock.rs": "41e861f0d13f2c40d1aaeab5a594b62f02b39da9652be90c3991aa573016dc0a", + "src/cli/tests_store_convert.rs": "e003bee9b8fba364134cef39f2e81aa6711b6d8e3777690dc846c8e523c4a34a", + "src/cli/commands/misc_ops_args.rs": "4434ae1f9bacf8084c3ed92d01ce6ec57fc591152957ee1cdcced543d7eafb7d", + "src/cli/tests_cov_misc2_b.rs": "f18f96451cb4e19cefa0a985dceb3afa1871798d2e3be85141e1685234c17263", + "src/cli/tests_status_core_2_b.rs": "a1eaeaa40f75ae55def5722999b1227c8521a27c8218d074cbfd6b5e6c3df93a", + "src/cli/lock_core.rs": "622ec568ae72b5bd9b6625776af10162ad9ac59d8c8a8d5d8577cd124dace853", + "src/mcp/tests_handlers_more.rs": "9f521869e1bf0d3061b2311c7fefcdf4f2d9275188bd5604713e252dcd891ad2", + "src/cli/tests_observe.rs": "acb6154c8558487eee51f8b71d5320750e5c073cc58643ffcd11f53b2e380db0", + "src/resources/package.rs": "dea0855c09f21db400830b1939cd0e162ea27de4a3bfa87bd217a374c4d3528c", + "src/cli/tests_destroy.rs": "a59506d1abf95980b7e8a30f62c4efaff1908cc8b33abca1f046a4d6f374eedf", + "examples/shell_purifier.rs": "f94c295e75a0ac051d88da44468ba898864eb937bfd8edc2409f61e7d0081fc0", + "examples/event_logging.rs": "a824a3e869cc765c381607a296288475026397ea7d5f90a33965d0902109ba22", + "src/core/store/path.rs": "e29f0f409a8c4e2af98e7e4a0af071d9b72d16b0cb7c93187f14a57956f5db66", + "src/cli/validate_scoring.rs": "4da920733a2851796cfe33fc50b0ddb25b29b090de2c17d63b5da731c61a5014", + "src/core/types/tests_config.rs": "62f198f513cd6611e7b3746054fbb8f7280ed719277043d12fa10e5729e5586f", + "src/cli/tests_status_core_8.rs": "beab01b1c6f65e33a645fd11c61613674303bf57467816f1f1fe04ee1b898b50", + "src/core/planner/tests_describe.rs": "92b1a9b0f314c99d48ca801380eea19c8d8a97952ee947a29e25e649e48a7c73", + "src/cli/tests_misc_10.rs": "41a6a087a804c30a8cef520b38a978dbc8e73705209cfc23cb9cee7bb37d630c", + "src/cli/tests_phase95.rs": "bf0a5c55af721110cf5d166d463b5925dc6780913ce7fa0a3580884c2f9627b9", + "src/cli/tests_cov_args_extra.rs": "7b4da3d7345f30e8e6a1bf7fae6e84e3c3fbf5979f1a015fc41f4094f5af94f6", + "src/core/store/tests_sandbox_exec.rs": "8fdfb88e74621caec25f8073fcf3fdbd10edd452448f4b6b265c55ea9b466ffa", + "src/cli/tests_phase98.rs": "3ef40d8eb024410a388a63b957bcbd8b4b2de79e9bcf915cbc13ee6c14666cb7", + "src/cli/tests_status_queries.rs": "fc435d443a5715aba50557e2b267a94ddda0a11233fbdc0376662b99d8f9cec1", + "src/resources/tests_docker.rs": "d9dfa934ac8c8bfff1a3761cf5e0b4520fab47fe3f2996b2b10911788bd874fc", + "src/resources/file.rs": "a1facfe1a21635b0eadcf7b24ee4d0bcedb30312b957a665cf5c87ab03c3ea8b", + "src/tripwire/drift/mod.rs": "b0094bbc32e0db8f94403762405412acca10817454dd12d37a299dadc01c176d", + "src/cli/tests_phase63.rs": "93d3e0b887e81b6e5c2c73b7f8d09f26bc109f8523e25b3a1bc1e0a6a3bafcdc", + "examples/store_provider_import.rs": "c94d617cd5ae49aac9449b53c444890eb8c33633c747854f23eb18fcaab7490a", + "src/cli/store_ops.rs": "8f1c09ef38818d37d499deae48880fce98e537ec88ed2f717a18775b67cd1f72", + "src/core/resolver/mod.rs": "a531550613b6809bd1819e24a0825160f11c2ce53bcfd7a5ed0749070a530b55", + "src/cli/tests_cov_dispatch_4.rs": "cd7a680a2c785cf0ad6c703f6073369b70160109b5abdbfec4e54cc094312e04", + "src/core/parser/tests_includes.rs": "d112a8cd39fd0b4f6fc2fab1fe30ba65277f6a6bc48787c2560431abdbddcb7c", + "src/core/store/purity.rs": "be7d1125758a0e3432bd47eb70ebc52484130c0c556fd02d9397638aaf500790", + "src/core/planner/tests_filter.rs": "2827ee3bfa4044aa72aee8cb2748a18cf1199839f9ecadd693ae3e599c0207b7", + "src/cli/tests_phase73.rs": "30cf3a82640c3e614ba7b9dce1f9df02aa4c558dc4f1790f239e8d6c125deb16", + "src/core/store/tests_pin_resolve.rs": "596670544d1060d16071fcafd8d4e54ee634df83a3d4497145b0206eb29e1446", + "src/mcp/registry.rs": "75647eabf9f4d7b78af10988944732a965bec55d05593469767749cd3d54866f", + "src/cli/tests_validate_core_2_b.rs": "01198124b7d2f0142388c8d10e47d29951afcd15008529632783249ba440aedd", + "src/cli/status_diagnostics.rs": "fca182a3d1a07e39525cece8e8c450bbf6acf6c611e06c98d9db2dba73797794", + "examples/multi_machine.rs": "04b230f6137c1cf850adeb484e49ffe4da9df5899f879ec799441db5ff51d36c", + "src/core/mod.rs": "c36359c0bbbcead0cc16fb65703c8bfba1fa0dee5dc8dfe9e314454d5eece642", + "src/core/store/tests_reference.rs": "c49c2bddda5b11f68be69125f09c88b8cdf5f063de0bc3175c9feb09b9bf0006", + "src/cli/tests_phase74.rs": "769ca19a23eeea8da2e900c8ab4dca4d1ffcfd0b29c03f9133b8396ef000131a", + "src/tripwire/drift/tests_lifecycle.rs": "eaa542320d4c1728a3863d206050c808e1f22af47284c1d7489cbadb8c42c872", + "src/cli/validate_compliance.rs": "fe4dc8afed79cac5f9f1ec0a300860a17b11571a8e284bce1c599435fd73b546", + "src/cli/commands/misc_args.rs": "523094e0263ddeb5241d7d804636081e17fc86d0dd6ebd6fd63222fe7036dc50", + "src/core/store/gc_exec.rs": "2af6ad4e5be133d8db7efbc89197594791c8bad9c0c8f8452f6e49244c9b66d4", + "src/resources/tests_gpu.rs": "3fef1a4a3c63a750a6410c318f593afe6d2de68169f76c456480671f5ace8852", + "src/core/store/tests_secret_scan.rs": "cc073b7a66b7a45c5db160d8c6f5cb20f0b9031ec777e36916d178bcde9eaf0f", + "src/cli/tests_cov_lock.rs": "f7421ffba17f648c183009ee32a2f9f35e75a8e6870b962a25444f517d30c367", + "src/cli/validate_paths.rs": "f744e57ef946a04fa8ab74b4b2a5c04a382e2ec42a7cf6b3a78fb6467babad98", + "src/core/planner/mod.rs": "7c07701fd6517c704b28c3dc0d946e0cd5adc8ffa371f09449e748734402f036", + "src/core/codegen/mod.rs": "98e75556969ea2b3ab90bc22de30fcbfd8a303426fb88845768c65bee0a7e51a", + "src/cli/status_resource_detail.rs": "fd5b137527c1c122fe0a93aedd0df549c38cc84ecdf1d8193667b4bcf74012b1", + "src/cli/tests_apply_6.rs": "22c4fa186d85c509e018a731fd3ccdea1d2ae83cd9152786fbda97376fd55c68", + "src/cli/tests_graph_core_4.rs": "d32b0a6227cd5c5b044c1af69d88b0f1c82c74a32e2a87ffa5304291f1e9512f", + "src/core/tests_scoring.rs": "7a4fddcf8dc5af786a9dbe5148c85780476095ce1c582b13e4cf2f864d017062", + "src/core/state/tests_edge.rs": "c646c7abf8bf3248333d1de9795e41797d94b5d9398818088aa75b104691ff62", + "src/transport/mod.rs": "9f6044672813dbffe20b724482ecb623a36ec42be35c525f8225de85d60206ac", + "src/cli/tests_check_2.rs": "90f36300ab8d3ac244bea609b6f03f08247aea096fc30cbf25fb45a8cf6cb6f6", + "src/core/store/tests_cache.rs": "1e4c9ebe04fbde22726ab94687dd01bb3fe069daecfa5777a1108b2f966524bc", + "src/cli/tests_phase85.rs": "28b08303ce8370db560ecc840ad1351df4368065f506565bbcc28d4ad917ce58", + "src/cli/import_cmd.rs": "1aac0167c0c8c6a909b5725d36bb3fd5d92a67f1301fa69897be6117fe507246", + "src/core/recipe/expansion.rs": "83036fee9f0a827503f00b1e4f68d826454a9c419914b30c38ae27f23eec05e8", + "src/core/store/tests_provider.rs": "223070fc681c59757242061bce3987209d1f621c4ba1cfe92d0dd9d5a318de0e", + "src/cli/tests_graph_core_b.rs": "d02027474bcb89eed4d4fda160b960d2bbae6e561a48fd91412f2dac283ada74", + "src/cli/commands/subcmd_args.rs": "f30161fb246f830e179318201829d0d887db3d017b98a3d18bc50ec637f33e24", + "src/cli/tests_phase69.rs": "2f2bcf585b5143f5b20d41afab3af4b82173d27fc481a5586adc2e418465110d", + "examples/blake3_hashing.rs": "ccf6727357b9f7774670eba775bfb4ef8ae608dcff6acbf70a4616e73d90f2d4", + "src/core/parser/tests_arch.rs": "940ec9891e074aa9fd5d4805cacba1d4c7b0d269c952d37ebfc9aba403f3f26b", + "src/transport/tests_dispatch_b.rs": "b198ec9a4f125510c39152ba9dd89b831861c481ea5d387a987171a7d88c04c7", + "src/cli/graph_intelligence_ext2.rs": "ddaa73730c7560e3746b74fc84b6d38345ca14c7d20823cd31db285ba95a7500", + "src/cli/dispatch_misc.rs": "61c9068fcada0637c306cbbe559a6d286b298da3521038558f5de778e1e4a8fd", + "src/resources/tests_docker_b.rs": "0a11c4be71d555814a46be0622c4e4eec35dde6828a1efcae0c19dab8c274fa8", + "src/core/types/state_types.rs": "77c870181340cd507179ef384395887fc0b16b2c9cd5c1ebbbfe920576174ba8", + "src/core/store/sandbox_exec.rs": "81497fc856954a8f238808fef3d031046141e36ca6ff229d057d28c8d31addd8", + "src/core/store/tests_profile.rs": "5910625e51426f1656aca1054eeabf43b8f0c113b4881fb681e4283363b59bdf", + "src/core/executor/tests_rolling.rs": "cbca7f9c8fa3f645deb82608388fe64e767b9550f3388416630c2d5a233b8aad", + "src/core/store/tests_derivation.rs": "ca933c0431c5cc9b6f89f0db012202a65a6387207bdb00dd80a8cdd2dd9f5016", + "src/resources/docker.rs": "304c938d197087b019e5ef65b74eca68511002b2e9b60a544344c659ca1dbdc6", + "examples/mcp_server.rs": "b7126d57d09e74f70c23893061f14c2d061bb44f631451544776b412e52d0a98", + "src/cli/tests_cov_validate3_d.rs": "cf497a238c35b728a1c06baf2cd495c83321eb609903fb1a2af4f6ea5f7e9955", + "src/cli/tests_phase68.rs": "c0484108b3b14c22a09b33edec63ae0643cd1fa2f18068a72f57ca7d172d8468", + "src/core/store/contract_scaffold.rs": "50996afc43ee2745591ce7b4ff9a3fb25ea0912354f21bed5a0802871357da84", + "src/cli/tests_apply_14.rs": "50450e6aaa6a7fff6ee109442e4ba0fc71a35ae53f7ea8f0e477cf32234fd1ce", + "src/cli/tests_misc_2.rs": "f3d8545a03426803894163f1ee8e3dcb12b3df37d3a7d7dd98a5e73d86f00e3e", + "src/cli/tests_apply_13.rs": "1110878080dc7f004e5c4b035c9e0242aa4e5192e8023c8c0878e1a7a0b44167", + "src/cli/tests_phase59.rs": "d716283070c6018f6228d6aaebe527ce49d4ab8d1f29046af162ad23fccfeca8", + "src/cli/tests_workspace.rs": "6bc034afcb07773cf8fb294368c3d8dd2396f64bfb02ae65d5d524ff35e27605", + "src/cli/tests_cov_args_3.rs": "6fb37cabbcb7b47f98717eb9c3906331482a7e7d0da85209b773dadeb4e6d401", + "src/cli/tests_cov_status_1.rs": "6bec4145c05fa7caaa3d05fdf3515f0782120a8385406fce9df4f4a3c09cd896", + "src/cli/snapshot.rs": "83af1a99813a12ae3c8668c3a8a38bdfd54e5efabdd337cce73502b3aaf41950", + "src/main.rs": "031362bf1ad257336bf8080cd66c53ebbdb5641dba93aef10f20443af6541acb", + "src/cli/tests_phase96.rs": "2ca70a55830fa12021b91459cfd36a7fd2f6f70197ead4d6f109dd06abd98902", + "src/cli/tests_cov_remaining_8.rs": "c08ba05a5d14178049fc610d8bed82023ae2f09ba65b276812c6c6df1431e7da", + "src/cli/dispatch.rs": "57127062694b8d05fc282807ed5da44ecdcb454a250cb19504e13f39593f38d1", + "src/resources/pepita/tests.rs": "a91a0df7f18b27ee5d840ace7036d0e7b75870bcd26749fc7078087f5aaca17f", + "src/core/types/tests_state.rs": "dd2a188c375b0154f75dec150a2cf75406c52e50eae968c3b467146aedef7af5", + "src/core/resolver/tests_resource.rs": "3ea3003b8291fdab8bfb152d49db42e4c45dab1bf916a89bf2e1650f71aff822", + "src/cli/store_import.rs": "34dd7a36e896a8fe1df30d590376cb8ca314cd4479d41d9e1b29bc6177b5b4f5", + "src/cli/tests_validate_core.rs": "c1ef02ddf50212d8d094cb6c1c229723f363457794e1a5b5f404081b3f8095a9", + "src/core/store/tests_lockfile.rs": "0365f4c715e27d76c55d45058286cec808c70729a2d965ced366f4d3549f19a1", + "src/cli/tests_cov_validate_ext4.rs": "3bbaca58e02db10087acccffc7840f4b3a4ffeca1e71391f2e92aefa01797f89", + "src/cli/tests_cov_status_5.rs": "e46802b6e6abde362a1f34bfe75deebde6f8320ba58c70c7a279f28bce983f41", + "src/resources/user.rs": "94af7591c2ddfc0d695c7055344f255a15e8e7c11e805c5222f6ae6df8b4524f", + "src/core/store/convert_exec.rs": "b8e1187b3647fb264ede81b033316c4338448d0a1208bb0610f522f6c246fa31", + "examples/container_transport.rs": "03a9a741dbcb05d75a335dd97099bbcb2021d3b7badd7cec506d15202868b370", + "src/cli/observe.rs": "b9dcc21216e088cebd16c810444f8fd4534ee871fb5097886a30e14f62b83e71", + "src/cli/tests_validate_analytics.rs": "f16dc801995356b7a8b9c426846d730ce49d410ce932c3b2ec868e51cadbd922", + "src/cli/tests_validate_core_1.rs": "894b5d0c5ef5984c2d4fda8ed16182bd45fffa07cad15e9d477a822897fc4d6e", + "src/core/parser/includes.rs": "316b75cb0f563a0b3df5e4e18fb2e5a47283f5b73544559bee00e293f58a117a", + "src/cli/tests_cov_dispatch_2.rs": "1fc985791b0269cc12e0d0e2b0cfd4e157aca99b943ad9e9dd9427e475d5caab", + "src/cli/tests_doctor.rs": "24fbc7d8a065ff4bd1bd7380595e8cc5e5cbc9db2c0fb91e1a2a2ae8a3ae1455", + "src/cli/status_insights.rs": "c202889e1711fc0d1c94aa52e338515e5dcb07ecd74e83f12960bce19ffe1f20", + "src/core/store/repro_score.rs": "868b818e86f30358f42e560e49346e66426f57871f68a406006e9028b2fca262", + "src/cli/tests_apply_15.rs": "888dabb060c0a2d85d4e41cf85931912a317a4e27fb8626fc54c8e9ac7c447d9", + "src/cli/tests_status_core.rs": "ec2276a149ff2bab435d03b68e2b4cb0e0bf9500014607f887488c339097d43a", + "src/cli/tests_phase79.rs": "583375143149ffeb8915a78e7db0cd28738fd9c1fc5769cb620471a90a7c6dcc", + "src/cli/commands/graph_args.rs": "1ca088d8da750f957172e6d6fc1fae080a39d0f03c25448ff2136941d70aaec4", + "src/core/parser/tests_core.rs": "32b268ebe8b7fdcf7fe1782dec7f04469c435abe99547311182d5e3f5afdfbe8", + "src/cli/validate_advanced.rs": "67ed06aaadd80dfd88bebac0074a53446643ab1885cb62fdc3a31b750fb9dbaa", + "examples/recipe_expansion.rs": "86024e836a99cac3432954bd6bb22bf8c5bbeea7ea22e90457ef213ff07ad7dd", + "src/cli/status_convergence.rs": "b634cfdcc2e5968ec6f0de4b3047422ebc5496d1a13d9800add776150d37f093", + "src/core/store/tests_sandbox_run.rs": "ff68569c14d4c662b9f22fa67e2e4dffe87892a4c5af7caf9483ca765a108e77", + "src/cli/tests_show_3.rs": "69c523ec10fb607ba10cfb566444444314dd0fcb96954a26dcbfd35a9f72674a", + "src/cli/tests_status_core_b.rs": "022ccd86512e794a15c77242c1071530dcb99d24620ee43ccba398d0a79802cb", + "src/cli/dispatch_graph.rs": "6880907d29ee1e23db3610830ce143e3ce6c1e5d1b9a7d3fa238e5c3d9b98c81", + "src/core/store/tests_path.rs": "28b2dc28f29734d1a759e39bf9b5d9d838b0d0bb23a31fc9c3ec7c9080c36b46", + "src/cli/tests_cov_status_4.rs": "a817b37be5a555e6c08ac2709b878f1ef3d8268461c49a6de30961c7c41fb390", + "src/cli/tests_misc_7_b.rs": "c3a4d11488b362056db0044cb00a679d032a6055d5b07e23560563ead2f5bec0", + "src/core/resolver/tests_data.rs": "1f1ae2c8727651048eeff987ddd1cb6b0cd5da5fd1432cf001672485539da462", + "src/cli/tests_store_import.rs": "102b2669a47ca0cb3b214d03010604a50de4d039e80eb4e94b4ba2b92824c7a7", + "src/cli/validate_ordering.rs": "2e61e35656794b31f7833e65bbe6d59235080a09d4f459242812096e7432f856", + "src/core/store/meta.rs": "ee76198a36d480e2f1147085306b65a8f851e26665bb42fe1f443aaa38095326", + "src/core/parser/tests_misc_2b.rs": "d5b42c215c27b1e08c7756f65bb265500ba10cd24bed9da74ed294ce1cde1ba7", + "src/cli/validate_governance_ext.rs": "594e07b068c78f44240d180b9da8754d0800db3c1ff3282436bdf07a126dbaf8", + "src/cli/graph_impact.rs": "00544fdc7f7188c598c92156eb38e420e1cd832ce406fcb903a977aa350e6d72", + "src/cli/tests_status_core_5.rs": "1ee9123ad83ec56284041bdc2e895062a51b76ef3fd764d0a72a64adbfacbbd7", + "src/resources/network.rs": "b1b8abdffb20b6563eb80db130032e0cc1f92f3e86c28f8917d6082e6e211807", + "src/cli/tests_cov_notify_4.rs": "131d6aa2f1ff7d1305bac3fc8a1ae4e0c08aa179853dd625dce26fdb85c50d12", + "examples/resource_scripts.rs": "bd107a90d40cfa4b2fd7abf5f8793d9414f9e7c1f1894e594d7ea640b68b8ed3", + "examples/drift_detection.rs": "6319b9280486dd5580425f9e93df747b1a32d95f0ff06c5bce38f9c0e4ebcd1d", + "src/cli/status_analytics.rs": "8190e30cea38bb3474e443956876f16a86b1b6670f8b7adf1ace5e5745f99b05", + "src/cli/tests_cov_dispatch_5.rs": "b420a2f9200bbb1f3a86f8acf74d3c7556150877527ed8e643baea6b01630020", + "src/core/parser/recipes.rs": "5bf513847e93b5f32beb6ae07e4ae664a42f57ef1693e93b1449c4eb9f3a20ef", + "src/cli/tests_phase72.rs": "0139d14fca9a40bb4118f91d4fc4ccd9c6a14577494a34ec92f84185ad97add1", + "src/core/store/tests_falsify_spec_b.rs": "0af6bda12ec714ee8b2cc60fa919c2947dcb5c9d30b76ea62c6e79cd510f6379", + "src/cli/tests_drift.rs": "057857ab9c58a347b6da69e3895f2cb9d7c3f93561fdd29858e7fcb4a41b4234", + "src/resources/gpu.rs": "d0ee4e02e497703403c3dfba64280886e5b4d0ee77164f2c1e7bce15b23293c6", + "src/cli/lock_merge.rs": "b4b7097556494d0affa4ecd89af8c3030b55570d213b020fa71d89b534392c9e", + "src/core/codegen/tests_coverage.rs": "34d3b6fcc4fea7cb616e7538af6d6b508f6ce6933d7a900b3cb70b717d473c61", + "src/core/store/lockfile.rs": "be61e70b63d980a44ccc9a57da9cfc04fc6cf842cea0b3724d756dda6c304caf", + "src/cli/tests_cov_transport_2.rs": "e7e61b26181d06ba30ff3d35cb9b5c6d5212a30db2af157146d8f1f2be051ab5", + "src/core/store/tests_repro_score.rs": "eb5c877d15c0d4f003c3474c7eaf429919bd55df6a4fd3805415817953193540", + "src/cli/tests_apply_16.rs": "f26edc3898c0b3cc4167c24262fd5d6bbe9713971d0bccdb892f27833bd6180f", + "src/cli/tests_cov_remaining_7.rs": "03d4a2bf12817121f557c0251456edbf232593631d66cda7c7ab1747ef609ecb", + "src/core/store/contract_coverage.rs": "5daf03a49c3624a4792586195749e18090ccf6d639732dd32efcfc1dd0b59b2e", + "src/cli/tests_cov_status_7.rs": "d3f9cf0e6a16168528c207b05a4896c2a337e3e63097caa895344ea66e8da5e2", + "src/cli/tests_apply_1.rs": "3b65e06a29308f5383fc8b645ea2e518932fc2f97a6c4a8ffa4f55bff7eb0626", + "src/core/executor/mod.rs": "8d9bb67095febd89ec5e0a9a6e0f1bc97a1454c28d674f36dc5357cdc8f8eeae", + "src/cli/tests_status_core_1_b.rs": "d284dc840647a1e7cab3b623de997d50a3263d31ae77db2939044b18a7b096b9", + "src/core/parser/policy.rs": "1d649aa9ec5345b621a76ea085fba62cae11b53987b1986c7bef281d1c0a49bf", + "src/cli/tests_phase102.rs": "28ceaba1ffaf865a6947a081b160e034a05ea8cb3a0969068df6dd7b63d550fc", + "src/copia/tests.rs": "99945b226f51c6816a3dd07f49ca4740319bf41000f379e06f00bc7560602e1c", + "src/cli/validate_ownership.rs": "8c38dfd3544fd20c954d421e06c76df90cb952ccec3f302d02956b2146096460", + "src/core/store/tests_cache_exec.rs": "35bd26e595cbfcc6ab08a3cf4109c77a0bee2946efaa268e648810c6925166be", + "src/cli/commands/store_args.rs": "db2c33c4a8afe4c87911ac213bc4ae980a8a3e552e79ab29d5bfbdd8a63845af", + "src/cli/graph_topology_ext.rs": "5ea63a1384c82f316ef7448e73c80696167583f8a22b868509dd6cef478c5afb", + "src/cli/tests_status_core_3.rs": "2ddf48816c11aede0141eddc648728528b6c55f6e532638c37db7a9e3ef97482", + "src/tripwire/drift/tests_basic.rs": "72e4c5883d2c4806dbeaa8ad813c81a7907bac78e696f353897f47343d83412d", + "src/cli/lock_lifecycle.rs": "1a130f12406efe0f6b2b2fbd421fdd729e31df031526144625fa8fe8529848d1", + "src/cli/tests_cov_graph3_c.rs": "d4d7d08d99de4e8d2d5c7c80c481d2077dbbaee1a84d7cb7a4fb1a8ceb9eed44", + "src/cli/tests_cov_fleet_c.rs": "9a0838106a48d52fbf5786bd4349607cce7a1acf56034112d9e945256a23d2f2", + "src/cli/graph_export.rs": "7e4f37f57e8ba466cde502437cdf0bd43eaef2868e103586294a836e10250f3d", + "src/core/tests_purifier_b.rs": "88ee77a349a942e64af435510638445d0cbde59a2018af5f591f72d4cb56903f", + "src/cli/tests_graph_core.rs": "cdbc15670c287d28cf372460cf34fc03c5a8680b0953cc697279d7774bb53605", + "src/cli/validate_audit.rs": "635bd8f48d74fd82be82f519bad6521032b68127a73aea0816941feac68f0417", + "src/tripwire/drift/tests_transport.rs": "930114ee44480ef88f9e0c153202ece0072243cf38b04d49f517e598b3dd0809", + "src/cli/tests_misc_6.rs": "5ad945ac1b08da3090f272806b36e6632baebf13aee0dd6a4de1adceb03395b8", + "src/cli/tests_cov_apply_b.rs": "eaf6a58fdb7433433dc3f4414708a46af1b614fd5e7566fbd5aa37aa2169f917", + "src/core/executor/tests_concurrent.rs": "d06fa49b373312851955fe8ac459c25ea1a833b9c29adfbc9fdb160e11bd5be0", + "src/cli/validate_topology.rs": "7a8a8a0e3dec311df91ea693be873441b2d0db8b81dd09e33ab3d94521411888", + "src/core/resolver/functions.rs": "31f6358703727288eb835d958f8c712ce3b97f031239d2569e58f9e9aee33c8a", + "src/cli/graph_visualization.rs": "2226cd8758d6b12cffe2ccafda43f34104bfe7939d93bcfec710cd07bcc216a3", + "src/cli/validate_structural.rs": "cb2f78d1e49b5d1500240a9ffd4cfa464e4130a810b8fc86ec989160cd044c9e", + "src/cli/tests_phase88.rs": "cfa8ab8cf5825d7e35be208707abdc2be25b856612f93fb9945ad1990a248240", + "src/cli/tests_plan.rs": "5aea601bb36efb618cf588cf6b9e5b0bf6d21064478d68de5b8f7571aea43f5c", + "src/cli/tests_validate_transport.rs": "af826465479da479476baf68a2514356e913912de11873d61532a915562a1657", + "src/core/store/sandbox.rs": "935b1ae7b717149c9f30c52e6859ac131dd16e0d25ededda34f1405405180873", + "src/cli/graph_intelligence.rs": "7d8eeb261c0ea722ff0134954f29b9742ef87ae24b9bf2ea78290081e5d3aa25", + "src/cli/tests_history.rs": "fbeabf5f857e37748c156384889a1b7ff8e67b4b9ef626077d8e82ffad8bb45d", + "src/resources/tests_service.rs": "650c36e857b38efd8b572e3a91b19bed1bf5328d7af68080a5f4f4fb73ef3d38", + "src/core/executor/tests_hooks.rs": "5509ac1dc580a0c8a13607ab1d807295391f6dced6375f2a05ba4fae6589bde3", + "src/core/recipe/types.rs": "3fdb12d938b47d6eec1f737f3bec57f30ddcc53e293239feae792dd37d1b8823", + "src/core/store/far.rs": "705a31a330e322bc78bba74d76cabb4e90d8cecaf72d126745a70886d0a0edf8", + "src/core/store/pin_resolve.rs": "fe3ca39b83bf797a137d51ed529695127231448405f7044be43ce3474db6ed75", + "src/cli/status_fleet_insight.rs": "9d2c58b613313ecf20a215e5139db11c4cb43f552494b71d4498ddd40fd77e77", + "src/cli/score.rs": "697e597617672776bac2976841e12e91e9b8b040ebbd77b776d0e82c1078754f", + "src/cli/tests_apply_6_b.rs": "0ce4c32dfe507762fdacc944cf99a5522bb5f7cd8d80f37128307c3f6f95b46d", + "src/cli/tests_cov_validate2.rs": "de5ed195297c91cbf1e4853a368f389e6d9471e6e9fae63e7f4820f5dbbaff77", + "src/cli/validate_policy.rs": "ab672e6d66b48bd9914016ecddf58ca50752c06d0c40579e5679cf4b3869576f", + "src/cli/tests_init.rs": "785d117090aa8bf0f15f10f7d17d39f2fd12012ca094f59a1d8793362b8b9f21", + "src/cli/tests_apply.rs": "4f1d614e3fb5124e194b4f2c9defe98b4a1f0c9a23d2e088c21dbc919b51c539", + "examples/score_cookbook.rs": "67ff3d234d87993e17cf72b00da5d0b9c2c3237f7f09ff2a656c19a60459af18", + "src/cli/tests_apply_17.rs": "7c0212f2ea73638a6baab961322bd7d790910205185aebe8a5a5ead6808b3719", + "src/core/store/derivation_exec.rs": "6d0346d5730de8d4bf4d6eea662ffdc505e16d9cadff7bfd183c807dbfc9fa1d", + "src/cli/tests_phase61.rs": "3c0a05cbc05aeb4276e2c75cd0e8a68e0d2d41b870e7606fc4dddee23df30db1", + "examples/user_management.rs": "778853f748c4e51e356d3964dc284e1644806b380bda3393d2d02dd0ac2137d6", + "src/cli/tests_fleet_ops.rs": "88ab77b4a769be588ba9fed9d48e35d5f7215e7a7476fcc04518e0de5021aaf8", + "src/core/executor/tests_converge.rs": "c714edb89b5d6c1a1f63e42aab552d00fc1dfe4c523a43f514862c6c8f3d8320", + "src/core/resolver/tests_waves.rs": "43c4ea3a7fe427029c0a4eff6b84179b4553297a31a7663010151f43ba226022", + "src/cli/tests_status_core_2.rs": "7f31373720dd7f00b8b0cfc724d9c0eb4ff9cb93c8172527b3899862e2d475bc", + "src/transport/pepita.rs": "ba21671a08f546817c14a58857d4dfd8e893e2b7a10f1c1d5d187beb0d0e2635", + "src/cli/tests_cov_status_3.rs": "d953ba308efe6509163a04d8d0ab9b18b59435efe88b5d09bfa8ef2a72a18e10", + "src/tripwire/hasher.rs": "4a099da8167b27b580663b6be81f6964b35d00c5083a52c4396481338077d97e", + "examples/conda_to_far.rs": "7734affa568d41f480d8e38788fe151adef95b1a827dce5b24e559ba866fb11a", + "src/tripwire/drift/tests_fj036.rs": "ce89d4858eb542c3e505c8bd744c9ceb7d43ff802fbdf172f084bd088b239aa5", + "src/cli/status_drift.rs": "49e2203aa6db0c38af3d2b3a77926090384e38100fc6b951057dfb559567b9b0", + "src/core/store/tests_contract_coverage.rs": "1486025963182ecdc9a8d555929e9d57613dc66463f139225f9f477db4753aa0", + "src/core/store/gc.rs": "4ee9aa8f03a830997847ee019c423ef14e288ce9345a260316d254cf3c1ab7b1", + "src/core/purifier.rs": "baa6efd98650a7215e3625953387dee9e5dd2124122d2bdcdc5000da2200c967", + "src/cli/helpers_state.rs": "b97c0209fda99a616045bc2553747a1eaf61a365df9d4436d5fd52119094f234", + "src/cli/status_operational.rs": "c67f575d0b6b37879d87be18a304c51a63b4d127184f0c0b39a4e70ea8c9ce93", + "src/core/executor/tests_core.rs": "7b0c3dd5d862930408456a0bb342f7e7b30cc1390732449d6c7402961d8de4a4", + "src/cli/graph_quality.rs": "2e47b622070cafeb2e130070cf464fd630b104d8b4a3fed3736403a7628833da", + "src/cli/tests_phase87.rs": "1e84fc118324487ca1d725601d4484cb4ffd00a7ae1757a99e8f754fee9da4ac", + "src/cli/status_recovery.rs": "0d4cfff5a848ceaadac787b245e475aff436cf6297353d029a9b79c26e5dc304", + "src/cli/validate_security.rs": "534f8faf855d2ebe94871452b0e993c762ba38be7127c95f198d3f6e26dc8c49", + "src/cli/validate_security_ext.rs": "f66fe1fc9ea7278efa07102a67120cb60ec48798452be1d870ebc4394f7fa674", + "src/core/recipe/validation.rs": "ffaa1f188e22ad0d1fa3d77f17273174eddae18e8e62cdeef3cc7272b34a6dce", + "src/core/parser/tests_policy.rs": "61be353f6ee2e40b9e535c856ebe1c0de628f50f5c1a4b1750834c72b7b9c874", + "src/cli/tests_cov_status_6.rs": "7aad92ee7550f4497bbf6ef8c8450ca3107b215fe6091fcd58bd1c1ba3b7ba8a", + "src/cli/status_drift_intel2.rs": "6f32e09b223fb4a152deac6b1cdb6b80ef62dc08f2b6da69cc19c4b79649945b", + "src/cli/tests_phase81.rs": "ceeb1be347bdf90a1f6618d662a2ee711df8f8a7eb295889934b5374108f4858", + "src/cli/tests_phase60.rs": "0a27a50ad0d44f4d395d055f56642af8b09be805308194ae89d2b76f03ee51c5", + "src/cli/validate_config_quality.rs": "f0bb4d6639b69789a74c6fa91155b34ca6600257ca7136f2623ae7e9ab049227", + "src/cli/tests_store_ops.rs": "ff798a3ac2085a89bd94731c6894851de85ce3393a5db0cf4cf400e6cad078cf", + "src/cli/tests_plan_1.rs": "ee8591122d1888f8a32f1424187ee7ea1750421a8d2ad71729357ad8dd54ca42", + "src/cli/tests_lock_core.rs": "70adbb33a1eadbd8fcd553e18d283c32833e30995e4c32e7614d648c4c708b88", + "src/cli/tests_graph_core_6.rs": "5519c2dd3380ae47ec49f8510e654123e544f501bfd99e62cd82b06a809c0aba", + "src/cli/tests_apply_5.rs": "bb5a8f1e67984283ab1d11ed7eaa56c715f6b8f760bcc0efc73792349be31b8a", + "src/resources/tests_package_b.rs": "327170082ccef8d023ff933d1c4c378affc40c6f34b07f03f4933643f91af617", + "src/cli/tests_cov_transport_3.rs": "5db5283ea634c9728bf749c2a68817a5460d41466c4128cea901d7e833dfc87e", + "src/cli/tests_status_core_7.rs": "b53d80fc3bb932221f9f7ac428f3b0c9e3841a0e908ddae73f407958e5be08fc", + "src/cli/tests_phase100.rs": "082e88670a307c41e4461619ea486580bab5efcf8b32a2645101677f689fb04c", + "src/cli/tests_cov_remaining_4.rs": "c8529446eb09eb388bd644f5dec34d0a0f65c52a4a3180b6328e168c22ea1313", + "src/cli/graph_paths.rs": "98f7992ab6e2fcf7abb582a9ac94899efba591d83ca50724fb4631a5302d1ddc", + "src/core/scoring.rs": "8171a5ffd79df712ac72d34b151c957979eecbebfad376bdc03a7e311b63859f", + "src/cli/validate_hygiene.rs": "96676f26059702286ab9a5351f1c895c82a76c22dc3aee5661d13b9308f80174", + "src/cli/tests_store_cache.rs": "92dd6a9231f2e820d39689e46f9fcb93a85e0c5cdbea465c6dc0f89d20dcc2ac", + "src/core/executor/machine_wave.rs": "64b36b0379cd03bbed53ef07d45f7c1dcd8681a58ff7a8fdac5b08fc40bf029a", + "src/tripwire/drift/tests_full.rs": "9c60bf9ae7deb70447f2ee2c8caebe6f0f2edfafe2965f4e7c59add1fd83ad87", + "examples/parse_and_plan.rs": "e02dd5813db8ce9426d3038a24a8cbd129e753de4e57630fbaa872b686c7a10b", + "src/cli/graph_analysis.rs": "091ac709f81cbf81016d5afc8919f47ef129402f50c9cd93d069b70a4ffd24ee", + "src/cli/tests_cov_validate2_b.rs": "974a2b402c5e7bfb983b4cc2cba4dc2ad11b7a87639177521a59d8501ece79f9", + "src/mcp/tests_registry.rs": "35bcc9a5dc807b410f61dd2d587efc07135c010102abd0a27ce29ea7a32cfbd6", + "src/core/secrets.rs": "128f94dbc3f53c2a599e3c0b70b8efdca8b785b4d3303bfe07bead8a30a65ad6", + "src/cli/tests_phase77.rs": "69145b26c382ffe4ef2045d6d4ef57b1170bfc14a8e7916f93ed8f5018edfa22", + "src/cli/tests_cov_status_2.rs": "aecb4e8084ebe53396f124fe0af98547eeca2473f59238fb6a3ebb5f4ed8ebfe", + "src/core/parser/validation.rs": "7a567c913b4d56dad15ebc937c0c47946b485bc508da83a434fa4f3f2bd38232", + "src/core/parser/tests_validation.rs": "5bf7f82e7efcb46043483e45cf4bb0fe7ca327446b6b8b95f73a24d98a20a383", + "src/cli/status_fleet.rs": "0a1e48414bc8db11acbf4507134638e61621e160134e4a6d4d558290a3797a4a", + "src/cli/tests_cov_apply.rs": "0fe8601283da0f753ed01431e5401bab3b82c7243b495696ba658cb24b9d1766", + "src/mcp/tests_handlers.rs": "728f0143b27784c3eb680457f9664a4154a1af6a6662bc44e0abb06f699970b4", + "src/cli/tests_status_core_4_b.rs": "b7d3a7a8f368bf6584a0d85fc9da929de145f1f5900bf30202a16af31b0a4f3a", + "src/core/planner/tests_helpers.rs": "20e2adedc50de5de8155b3f1060372f90561cc39b21bb5bcbfee8b85718daac2", + "src/cli/dispatch_lock.rs": "70b1939da69b07e59f06de53245eff579b01a5a24d775168355cadaf71a1e11a", + "src/cli/status_trends.rs": "64ba6ab06691fb40befafabba07c1ca9f42ef1b040dd8a5fc6949d7a03bd9aef", + "src/cli/tests_apply_22.rs": "bf279a9d6ae125679a585c944782b7210e25699abf2834e397a1242c0378ed0a", + "src/cli/tests_cov_args_4.rs": "2b82c0fb253b1f675d92841e3e329bb18b18c582fc8fdbd01eb3a72070fcf9e7", + "src/transport/tests_ssh.rs": "81604c0180ad81bcfc76902e10c0f90b1737185a18af42ad22b09888aded4d63", + "examples/store_pin_resolve.rs": "2ec6dfb445ef7c6d801139db58f6282a1c506dce46001a42dba4f8ed14e166a0", + "src/core/store/tests_provider_exec.rs": "6b604ee2342537d09cf5d78bb383ed6db8f660d48935d1dd3b0e2ecb691ef659", + "src/core/recipe/validation_types.rs": "f68276853e785ea6476c231e7aa420e9b9b4d6af0232dc4cf841ac3bb6849b0c", + "src/core/store/tests_hf_config.rs": "eb2abc98fdf184aea958e4c5868c7a0f967a227367465aaedd4ad7e992bdb546", + "src/core/store/tests_derivation_exec.rs": "4b5ee332750b330d1dec8780e7ca966c9d59b0ce17db88a4e0e946fccb94ec6c", + "src/core/parser/tests_misc_2.rs": "0c72d3e8511ed1c5abac170244cd9ec3a33a39c6fd14f8ce2dacc31e8ed07ac7", + "src/cli/tests_diff_cmd.rs": "e57e4cd9dc1058e813d4dc380a24eab862caa0758b90fcad6d828ce195ee13e5", + "src/core/store/tests_falsify_spec_d.rs": "caaad83fc6b0d5654e65619acdb67dfd9991a2c8d9a947abd8bf243a00f647b6", + "src/cli/status_cost.rs": "7d4433d13d433d859f8ce786d2dac6d8d4b61318e2972f685f94da84327f86b9", + "src/cli/tests_graph_core_5.rs": "ae3424a2cefb17bb1f2ad298a20b261cbd415c077b7bb9d0706e74ef8fa24479", + "src/core/store/hf_config.rs": "69473bae90f1e31f7888afc480eceba0ce62a3188f44f2727bde0830c0767bab", + "src/cli/tests_helpers_state.rs": "bdaf0fef198566aa4ea317fdf578d0d5676e470962159a2bfe61af922a2af1c0", + "src/cli/tests_fleet_reporting.rs": "3901fe210760f37694820731b9431fe74558573a333681f17b9da1955f03d19f", + "src/cli/tests_phase78.rs": "51ce6b926ea80c7e21546cef0a5f422ca8135e8087f355155495a039d77cf285", + "src/cli/destroy.rs": "99e2446766c777d132f7a0fd113bcc5f077e937b9642ae77f67b35523b02a902", + "src/cli/status_intelligence.rs": "5e77edc6f71d2664eddb5d0231eea7a01170920d47241fb2246ac48edc0251fc", + "src/core/store/tests_sync_exec.rs": "bb4dc3ceaad23236a7d4e7be78277bb01968a4c119bfcaea2d9f4125afeefd87", + "src/resources/model.rs": "315de56abc4bd3a9fa9849c33393b2fcc058fd1b528bc86fffe972a8912a497b", + "src/cli/tests_phase76.rs": "afcd94e8394a4f54034c13db7138510a2d3818b914bc2df917c4a0fedaafc3f2", + "src/cli/tests_cov_remaining_11.rs": "14ec70e3cc29bd55a6539552b21da5a84d5b1ad665b6cdcafabd2f49dc264d14", + "src/cli/tests_misc.rs": "f02bd71207dcab0fe85ea7441c1fd9b931aebae6e582ccdca5124707c38b35d4", + "src/cli/commands/apply_args.rs": "d8a4ea7b767a9afa7d1ef57e7de87dd0a3d3e9247f7822262c6e2084026c0e7a", + "src/cli/tests_phase67.rs": "ec27a9281d427d21d74d40932e78ec67830df492548a4b4cb808f5b48abd75af", + "src/core/store/tests_convert.rs": "1559a180fa06b8ddf219469771feadd18f677cd82cdf489331ba3f84dc282300", + "src/cli/dispatch_store.rs": "9d5df8d37533f8425e7297d017f2e33c955b76cf82652a1f126e5eb2c0b869de", + "src/cli/graph_intelligence_ext.rs": "eeb9abf73fbfc962479c96003f7208a7ff1c33a9b00ae21afbc1ce91adcb8d61", + "src/tripwire/tests_eventlog.rs": "6416f4576acad278ca832883c2cfa1e4330e8f987f1c757a990c8837a0af6c30", + "src/cli/tests_apply_10.rs": "e7a843ea9f0d533ffb309415b24a45c3132dcf8e4b48d21e4850628571201583", + "src/core/executor/tests_filters.rs": "2c04e083f7fa64028db31cb2d1a0c8181322a6ab0e715ec3d470d1fd986c4065", + "src/cli/tests_misc_1.rs": "a9585baa58750091b28e6495aebec099df26f3b35db61484f16b32f2c3cfc37e", + "src/cli/tests_check.rs": "8feb321d977d51fbfcbef8a625c807ddb8fd7c32c56c45bb712ab39423578c64", + "src/cli/tests_helpers.rs": "f2c5aee07158277b5539833a90498b0755ffe6f1c50d16256a3f0989016bc7b5", + "src/core/store/tests_closure.rs": "53a8fccc979fbf0bc31d2ed0b0fe0b777a91638869dab844daf3c383240db9bf", + "src/cli/tests_phase89.rs": "70e540ec4031f62163e0d14d04422bcb6c2fed1e957ee5d70ed2e689b4a6c1b8", + "src/cli/graph_extended.rs": "b69d7bb4dd1eb9319b0732c2cbae1df057d49234c1eae9cd7423e6c187ee0cea", + "src/cli/validate_ordering_ext.rs": "59e95baf8c83c9aa4e209c27a5513debdfb64a4e08693d245d77735b0bfc9100", + "src/cli/tests_misc_3.rs": "fa92eb256aacdaa41fd7b5968e61bc3caa011efba331b28f112fa5425904451a", + "src/cli/tests_print_helpers.rs": "8ea861672f99ebb214bf16a2f5235442ae438721d22c06efd88d6b4cff1f8c07", + "src/core/codegen/tests_completeness.rs": "911cabd0471feabd23fc8d140273235e9042a8d8b8f9b6e8759cdc5c579c92d9", + "src/core/planner/tests_hash.rs": "fa0a25c1be61ccf3f6830d992e536963e5be7dedfd6fbed0980df66e659ba8df", + "src/core/planner/tests_lifecycle.rs": "011ee350e3430b19f9132cdf7b8a760c3e5ff254697a5d5c04abfa2d7ea2746f", + "src/core/conditions.rs": "834a0e865f4515947593fc5c5327d23504a78579aa8283aa689dfc48e864f1cf", + "src/cli/dispatch_notify_custom.rs": "f8037c4ca348c06dc50eb5ee323d77e9412fb370cf0c5299f5b9716b334488d8", + "src/cli/lint.rs": "79fea5af0fb5cb75e072206a20820d9dc06e3fe34e3e626d9992bf84c86fb4f4", + "src/copia/mod.rs": "0e23b4a219ca632f3478d22ef3c04c705251af4838bc344c1e7870ef26b8b6db", + "src/mcp/mod.rs": "3201dad7d2470e767c9e463c855586d805719b6af472a51bf914d540e6d92687", + "src/core/tests_scoring_b.rs": "d78bfb4b453e0484eeccc3c859cf0a4217d77e1200e70fd2b947d9f7fc5ab5f3", + "src/cli/tests_status_core_1.rs": "f5ddacf24be97d134f24e95a58e5f1300c3082766da76ad935e1c7e51fc58b77", + "src/cli/graph_governance.rs": "3c3cfe711b4c2caba6a2eb351a7d7fe324589a1e4fbb8f51dc32599f0cbda81a", + "src/cli/tests_cov_validate3_b.rs": "72d2a8a790bcd923af56a5cdf391ac7b36fb20e6165bb3ef0ebf7392dcd45131", + "src/cli/tests_cov_remaining_12.rs": "d79bdd020c7fc177c9e3147e9a7467544c05935bda6602129b239edb19796aa4", + "src/transport/ssh.rs": "e7bb315129a19f0cde6b1f62f0dbb48ec900f31d719affa4474ad1812dffe4a3", + "src/core/planner/tests_determine.rs": "518d489ffb309fa04912d0603043e3a493a8dd735d627d930d2dafa8e267a504", + "src/tripwire/eventlog.rs": "66aa015f1b02ccd27b6e8e9b78b013e6cd3c873ebe2ac8087030588a90185897", + "src/cli/tests_graph_core_3.rs": "6a6e4b1bf89ede7219bbbb1b88aa7d259acf7bafacbae1b432de0948fa4a0f7b", + "src/cli/tests_cov_dispatch_3.rs": "100af1705a0d16182fe5a8969d0ca78019e0a877b49569b55e27cc654b33b0c9", + "src/cli/tests_infra.rs": "3b716ac33cc323623c1948692f08077c230694186832a2eaba52778daa11c773", + "src/cli/status_health.rs": "0f9113539d8a95272807eab2218080651daf1ddf3b8cce14a28b3d2a4daeaa4e", + "src/tripwire/tests_hasher_b.rs": "f5b697b99c5076d1499ed56d039551e4d573da8e5140ab3199102cdc0ab119a3", + "src/core/resolver/dag.rs": "fd7c4d014b94120319649575e44755cb7f27c8a6c3149910df5b7e766122500c", + "src/resources/service.rs": "b196fa1fe260d1ee4fbe5490d9e73fb475310871a762cd9962aa81be2e6bb56b", + "src/core/executor/resource_ops.rs": "276472b0a55ffda06dd7a201f583affd113ae6cd5f191f7f0f879650ac1b8134", + "src/cli/print_helpers.rs": "14fab206c24dde8dff130d982296586067b476a1fe46cdb0d4210b463a7bc87e", + "src/core/executor/tests_converge2.rs": "7687b3a9b2fadbb90b1b12c193058eb20f332f8b79000265df647d579eb41d30", + "src/cli/commands/lock_ops_args.rs": "0a0ef2dd6cf1e8a992a644dabcd8fdee6fccda5656aa865cbbd989b0b81d48b9", + "src/cli/status_core.rs": "4d729bb1416b25dbda925c1936253ee3ba2b4f861f3b82d7200ac656a67a1516", + "src/cli/tests_apply_3.rs": "037b95ee9ddbd52fd27e5076ec61dad745a62a96c65b190dcaed86b54f7a2164", + "src/cli/status_security.rs": "5d1b6687847ae9c6e7a567c84429575f5119a37a59e1efd0c0a38291e62cd054", + "src/cli/commands/mod.rs": "4be4616b935c9a86bd39e95e6310c1c6a1ab7cc607493b9ecd10edf36d2d9325", + "src/core/store/tests_falsify_spec_f.rs": "bfa242e593377f89935e060e8deaa612e67466604ec3edbdcbcbf0d9e169e8c4", + "src/cli/show.rs": "4538451f83bd09570bbd07e938a5555815cb5362176f88d81c937297579fef92", + "src/cli/commands/lock_core_args.rs": "273fd1b5632fc1d2d997ccd6f3b94aea533dd79c2845ebe5abdb246aa7769c80", + "src/core/store/tests_substitution.rs": "a0b608f50ca2617ba77c5f17ada0da7109f7687a8cdf67989beb12f962660ade", + "src/core/store/tests_falsify_spec_a.rs": "3ad95f04868b915c3e67b4fd71741732df115dde75748cdaefe4ecce72749bae", + "src/cli/tests_cov_remaining_10.rs": "11462cfa9ab0f208896de01dd0baf38d4443116ac875f1a2e9b9bb84f0ed33f3", + "src/cli/tests_destroy_1.rs": "3c0d589f84c8a17e42522d5b8be25e711f6344fedb9b7ce31ada530b64ef7f2d", + "benches/core_bench.rs": "2641736063b138182417b8a848286f6f69435d00049397df49c750ecaf7b736b", + "src/core/executor/tests_edge_apply.rs": "eed737476c55bb2a27aa55e9ab9172157c484deb7a587f0755efd51c74e71c44", + "src/cli/tests_phase107.rs": "e486299b14d73cd633bb447a4c25ad0e122c296dd1b7bc5d38ad973de7f6df69", + "src/cli/tests_status_core_7_b.rs": "bd7f7b8ac3b3ac62a3c27a9211af78ca6cd5ced4eb5cdcbe1d807fa6f3eb28c7", + "src/cli/tests_plan_file.rs": "18479a77ddfbe1a29914e563331d745113f8800080a19879f28728c00978d59b", + "src/cli/lock_ops.rs": "3cd3c37af12704bfc3fa891cbc44f7b36fa604d41e3b72cc0ff281c6b782e362", + "src/core/parser/tests_misc.rs": "5b2ad6d320371f06b95d99256f679fc0820a723116b8bd52fed4a90751bb7498", + "src/core/migrate.rs": "55472d0eb74b18c26e56d523f8416c4d51e258223d5ac29ba47d0094221f64a6", + "src/core/types/policy.rs": "9669a0f635a6090ccb2b222823b3632367cd5c303e24c2f47c33c2430c0114ef", + "src/cli/status_fleet_detail.rs": "866a7f5e541e1b701ad06df209e70e9849352598fe811a750ac45386f86dd546", + "src/cli/graph_analytics.rs": "9e5ee6bf3a334977ca44c02b677f0e56b00a40d97af4c99ffe41ae12d7fab99f", + "src/cli/tests_misc_9.rs": "1453de79861b5d7e0baa50ac8f399af82c2084516d79817a7db1cd1002cad9e6", + "src/cli/tests_apply_21.rs": "d73aa2e0be9902490354a498842a6e26f671c12bed8542dac30f82c03ea056cb", + "src/lib.rs": "e0b8dc7a5e97c44562a039ac02eb9134596d8ad98973a25080203f32a92e1067", + "src/core/resolver/template.rs": "bb4feaae6011fc97fa6a3444be4ca14a2b32d30bc1da14700669e3066c2d35c7", + "src/transport/container.rs": "45a546877c6bdbd441e67802d0eae4567010e93f57f048487a15c690b71c234d", + "src/cli/validate_resilience.rs": "dcea006a4ac80083d38f24c48919388010b334fd0287642546d62f75efb34c93", + "src/core/store/tests_falsify_spec_c.rs": "05ce19acee1ac617757d437c88f6af254f8c800ca35d38aaa91e35ceab4b30b5", + "src/core/resolver/tests_template.rs": "6dc64dac971eaba5ad71d818a09ef20d43bd1a8784af2c8054cdd59506722691", + "src/cli/tests_status_core_6_b.rs": "7e2a14df6b54e692c97b64d08ea54685e4e3cf5ad33a56fe6722ef70de1ede3e", + "src/cli/graph_advanced.rs": "aa590017de84e89d21e22efdecf1d440d2b7ac635bb710769779c6b2955e21d6", + "src/cli/apply.rs": "05543a44c4da020489c7a65b8e5ae2e594d3e4036c738ec0a8ee8f3525426352", + "src/cli/store_archive.rs": "1e3b5b828ede0561463196455eeaf0ca8e3bcaf7a186e4a7c655a77814be7378", + "src/tripwire/drift/tests_edge_fj132_b.rs": "703679ec24f82db736126262db62b34f04517ff4e038279669c874dbaa646fb4", + "src/core/store/store_diff.rs": "3604892b9c7259ae2d773fe300b4fb5ab77fb8e982e0188e783e913517c4e5be", + "src/cli/apply_helpers.rs": "f2146aaa4e9defac6876e53922ffe7d317ccdee4285e8658a6fc5368fe1f935b", + "src/core/store/derivation.rs": "855ef7ff60508ae454f11cda81341dacf9e9f8081c6da2a07dc9adb8f71d98af", + "src/cli/tests_apply_8.rs": "89614594099be17f2f6a2821b5ad27cd9cf91a944f698a4b769f8f75f7a72c4e", + "src/cli/tests_apply_19.rs": "7babc191553334c61ad1b42c509be4cf31542c903bcda395d58fa75e49d903cb", + "src/cli/status_resource_intel.rs": "86d33a5d43a4e1f5cbe8e5672e93f066e17fe64dd817f2fe5c014a63696f2557", + "src/cli/plan.rs": "5bf39e0a42f93bb8d2f7421ce84fbd4d3689bb9573947f04a3edca3ccf85cb8e", + "src/cli/status_observability.rs": "db0c4b24e95f1e78eb9041308e5bef150b1f4af47d4c9c70afc019edafccdb8c", + "src/cli/status_operational_ext2.rs": "fdeba2e3ad4a85d5d5aeb8d0718440d13adc7c090c8cd91276ecb23f210bc43e", + "src/cli/graph_compliance.rs": "189ea51340b3381cae608da38eeac89e569cc1f7f918b75cfb66d82a9dff6499", + "src/core/parser/tests_expansion.rs": "24c9d29da75808f7c80dc6080ec73de55bf3b681788b8a4d4bbc8ef3a2cc0bde", + "src/cli/fleet_ops.rs": "4018fc6ea23d2e1faec50b593ceadb32beaefc69a1bf76ef39e3c0c0bad3dbf7", + "src/core/parser/tests_misc_4.rs": "a60982c4decfc1da5d2ed6e906ab84833f3c067340e77250c8498f93b290409a", + "src/core/recipe/mod.rs": "a40beb6014ade2c9c0a635661efaac91105151fa0efc8d077475cff6f6efc4b8", + "src/cli/tests_validate_core_3.rs": "c94e86e0868d9fd06084bf3fdeb3a05303969bdd50c2ab7dcc054b93cc93b608", + "src/cli/tests_cov_status_4_b.rs": "3032f88e69bbee38dc979ff676b6ae8c58e0e085b551bfeafa4b3dec3fdfe768", + "src/cli/tests_validate_core_b.rs": "f8e8c442d4363e1e2c39eb81b0c3835882c849775cb2d8db0e18cb4e59f8c7d0", + "src/transport/tests_container_d.rs": "711345b985b3ef3ea21c6f626c4fcf835454b7cad6ef9f71d0d94bba04919653", + "src/cli/tests_apply_23.rs": "ffcf1444f241cce57ee0d1b35c936fc474b5749af87bdad1c3b5a254773cfa68", + "src/tripwire/drift/tests_edge_fj131.rs": "c55d3a18a1cadaf071128745394e2cf59de8a5c9806452e07766c38d12490ae6", + "src/cli/tests_phase70.rs": "2a92c7115123b83d8d0b4160f3e9332abbea33cd994106a7e8b93c1fc3e2f376", + "src/core/executor/helpers.rs": "8d2c8e5bf247190920e2d8672061d6e3175f74153bb6556d2bbbda48cfff9a64", + "src/cli/tests_cov_remaining_6.rs": "102b940279a20a22ba9708ccccc70260cbb63e747a363dd12a2d0b62c9a704c2", + "src/core/parser/expansion.rs": "36e647edd310f9d8f1f30595e6a50c1b5f5f352a5da67ed77f65fa1f77649fe2", + "src/cli/tests_misc_5.rs": "824b0d8f75706dbcd9fa8c3b8de4bd7a8d23b17de16c64b462c4fa242d8dcc06", + "src/core/store/profile.rs": "f9e15c83686dfd5b0bff531913bd671911c4954ed06050b596785e6a84f6a110", + "src/cli/tests_misc_8.rs": "1185e4f85d857d6ec63ecca39b7da844e29f93bc3fd9db14722ca67d425278a5", + "src/cli/tests_phase90.rs": "e9ec934562b29f5243ff4ce89b3d1c0d5ec5010fa5c8b7b0a10e330c1b86050c", + "src/cli/tests_status_core_4.rs": "adfe0851995390d19faae73140f40d2f5b7c70a730026d0a8410ae7eb122672c", + "src/cli/graph_analytics_ext.rs": "dfd639fb7a3e67c66eea82ed922c7883b45f7f00b94dd0659cf56d48b6cd8ac2", + "examples/store_cache_protocol.rs": "e5dadaf2f46a18ca3e6d87c33d85aeac88143a65b406d196220f349109d14778", + "src/resources/tests_file_b.rs": "3bec80020c9d09db1945cb4e43c56c0a623cb27e60da53ad8bf3d31594414363", + "src/core/resolver/tests_functions.rs": "afad07b72fb485caea6cbac2f0efce2b0d3c27d9b73008fa8fb1f55345d5f58a", + "src/cli/doctor.rs": "ff075849846d7cf2678962e124a8ec7d24b3f842ad9282193d05b1f7e83c1bd3", + "src/cli/status_quality.rs": "28bbc55f377fe73d85db97f42ae7d594ba94ebd2885c2dfe60b640ae93f65fc9", + "src/cli/fleet_reporting.rs": "0f004041c55291e5130d6b8762217ae7bc3121a309e9f8912ffed6c5ca1b4853", + "src/core/store/tests_sandbox.rs": "53da5a42b62345bc14b3ed96491582b76080d76c3050b9be2fb06315ca9e2fb8", + "src/tripwire/anomaly.rs": "239d090e52456c1d1579249311e148080231cd73796da9db0bf333f2fbb0bbf3", + "examples/template_resolution.rs": "fed4c713fe1143b4b6015978ba085cfddb3e62bff74fada57d4196edfe34e2b7", + "src/cli/status_counts.rs": "03cf2179bffbb3dd1c257375fab494bc5d968154375c543492c255fcd99b0f76", + "src/cli/dispatch_validate.rs": "d42faa6dcd9c3ef425114529b535325d83e3f10e90e476a07db877caaa6d1a81", + "src/cli/tests_apply_helpers.rs": "ac376d55982d7b65a4276da58b6e9d09bf96add09cfa19c92116b5dde0b8548a", + "src/resources/mod.rs": "d6f20aeacf53c77365727163bc1ba6263497103933a855622e5465ded5bd8891", + "src/cli/tests_cov_args_2_b.rs": "0738bf02be170c9d3e3e2d41c1a1ce191e7fa56431c68afc9459427c35b02c1f", + "src/resources/tests_mount_b.rs": "0dd5ebc9614833d1502b0cabcb8b4c027b9b03da239a7015f2daede897b5d563", + "src/transport/tests_dispatch.rs": "f8aeeb82af4295c3640425dc973d3fe86cb45df833613c5d243f5bc976cf4cdb", + "src/core/executor/tests_localhost2.rs": "dd03bc0e3ec79a5fd6befc95bebe05acb5cf0e136166b08ab2906f12b662f2ed", + "src/core/store/tests_bash_provability.rs": "fb5b01227d3d1ebf0c4b2b25a9585c3a3314a1dc8e3bb3917bff8ef1c7b6072a", + "src/cli/tests_cov_fleet.rs": "1c0159832f389c93c2591da2ee366acf6256f9333c0025cdc581eb4e2f525207", + "src/cli/tests_cov_args_extra_b.rs": "99a22cd37a5d03d14d7d61e1da4c41677c3c46a45480c43267aa657134d74bdd", + "src/cli/tests_apply_7.rs": "513e60f3c6deaf043d81e9d38464483ce7cc79d4fb2cf2e6c4b5b26287aead7a", + "src/core/executor/tests_waves.rs": "982bf7d6f02720c27869d8e00dfd8eb3868b492a65bac78750eedbaf380ddbbd", + "examples/store_gc_lifecycle.rs": "84199a2a5d6308319108d5ef380e57da3ed4f1a99c0239bb0fef9327d34ae2be", + "src/cli/workspace.rs": "d8b9e8bfa055def6a3546c6467ca5c956337bd0df23c6a27449ce14553cc410d", + "src/cli/graph_scoring.rs": "ce25d95e9acb6c99e8078bdf1c933597d73c087d711d7f4b17b7146e6f8f28a9", + "src/cli/validate_resources.rs": "86864584590b7104eb79dfd942dadbf2edf0539ab749e174a78d2419452cd311", + "src/cli/store_pin.rs": "225c1a08bd1f8c92618529ce4bc3214abd0c58b601a7a8c7408170d728e959b5", + "src/cli/infra.rs": "7251b32b2e6046c6473ce1a8606134553996abc1a2419a0c1188f5a0bb622e61", + "src/cli/dispatch_notify.rs": "11d85393b6340e2410ee2de725015ca7e5779a45570d973fcf24b9a3a18e4fe4", + "src/mcp/handlers.rs": "b3f3ba304fa11f48ee3077275ac09caa416279ee0ce7f5a6cab754f428ee4979", + "src/cli/init.rs": "b57d142b97eea723fc121ee587788acfd990a51e9422c82d3ee785b2fdb0d2c9", + "src/cli/tests_cov_remaining_9.rs": "e6392c9f422e76d22599cff1f48d9f31e9b9108407425b644600e96fcaca726f", + "src/cli/tests_show_2.rs": "bd627925118bd47ac5bbbca0b90951c6fae93b5bbf1617a2ab27dd5bc6a8f0ce", + "src/cli/tests_check_1.rs": "c973bc13a84441411cb93e5fd8321693edab02f864f5e042455f368cb350c0a1", + "examples/trace_provenance.rs": "9f8a415a0f1e0c25293ebf2aab2a39d1bf6d9b838e101315eb5dec82348c22d4", + "src/core/executor/tests_edge_record.rs": "06e43c61e6982f518304ef15053cec6c917db1fceffc74e05ea068d9923ed59a", + "src/cli/tests_snapshot.rs": "c2a2e43628b0107466662faec0816f1055639d40663df4b04855941969b1a437", + "src/cli/tests_graph_core_1.rs": "b996492b79f04f8f625bd3b70571a2f5141cc8abb40404afd8256f97d6a1af27", + "src/cli/tests_cov_validate2_c.rs": "4f9cdcb7db8755584f85e8c040c3451d3a69b8672a6c675b2871de7580838277", + "src/cli/tests_lint.rs": "5cb83f7f55532c360a592d010ae54ea7f35787782a84aa139281154a04bba24b", + "src/cli/tests_cov_transport.rs": "9be38f2f8c563b82f6df823e7f47e1000f238d7883f930e1b32f8cf3a36b9a5d", + "src/core/store/tests_purity.rs": "a41138df84992ce18b83b566c73f0b023343475e6c450a8ea31b09f956d5b6ca", + "src/core/store/validate.rs": "6233d0994ccaaafc3c9112422e700b7feceb4883f7baff463b6595bd623d2455", + "src/cli/tests_cov_graph2.rs": "dc3b9470ab3298589ff28ee972bfde94c64a3a4f54cfd2f5d3fa54dc7a6f8f03", + "src/core/store/provider.rs": "1e14c29a40c634ac83ecfcc1597d908c02069bbd22a23c97d65cf3489226d1cf", + "src/core/store/tests_gc_exec.rs": "e1fccbbf7f3ada96e33a6782f9c8a65e637f128ec07f668a829743c66fe15bd9", + "src/core/store/chunker.rs": "27d30c5d66393e4c48bf395abe4149e2047aefbb246833baa974b1820adcb437", + "src/cli/status_failures.rs": "e74487d76644f9f54e751d50cd25018b0339d5b274c12a6a051d7f37269313e7", + "src/core/recipe/tests_expansion.rs": "08d5f5a86bead9b806f586ce55375a912d51dd14e8ef67cb04c5ac1bcb228d30", + "src/cli/tests_cov_remaining_2.rs": "2e75f5536689c2c76cefac7ebbfa69de9c81e67487ad5f43b3bc21304178843d", + "src/core/parser/tests_misc_3.rs": "12d7d262f0c2b2c8e449e681dd8f262362e21237040e8da02a8deecf2d527a42", + "src/cli/tests_status_core_5_b.rs": "f53c35dfbba541b5314c96e465bf4d70f91cfb37dfdb542490648323d960f409", + "src/cli/tests_phase99.rs": "3e99a44c3fe4b8c4734bb170b82d7dd8825335c7b3980ef6f7504341aba9e153", + "src/cli/tests_store_pin.rs": "9b1688c31c9ef9884c5450f1b704d487514270fc5f94ade48a1b4e8cade08a4b", + "src/cli/dispatch_status.rs": "2ce47fd7c3525a87d5bf3fc9b4b0eeb71adca86bd4870322292cd259efd1a4f1", + "src/cli/tests_phase106.rs": "ab55ebf79c9fc973a5a13a5bc5836d5690ad4f085c37fcf797aace755acfea91", + "src/cli/status_transport.rs": "1c444c1c80a71de6090374a70fbfae8059293bda45902f8ceda4ba8c6a93f47c", + "src/cli/status_intelligence_ext2.rs": "f1d0f601b3f665c3dc7dc2314caf87827e1ac030ddf81de17aad5e156b307ff6", + "src/cli/graph_core.rs": "6b23213ebaebf35c315cc8c8b6b36d574434ec9561e378484c287df2ad967f09", + "src/cli/tests_cov_notify_2.rs": "96b1d9717c6957af6517e4297586f248abe8803f8c282001332cd194aeb284ca", + "src/cli/tests_apply_4.rs": "daf747d1945c7b4cc9fdcd35cae653abb2446da79354f4d1ace15a885b27bf08", + "src/cli/tests_apply_20.rs": "ff9041e68cce47cc5cf528994fd0679b0d7ec933d98b9e618a6a95b35f79512f", + "src/cli/commands/state_args.rs": "6cc54d6c4a4cff4af87c3b3abe9772c5ce5be1e2ea9647f5c6f8f72350097dcc", + "src/cli/tests_cov_validate3.rs": "2cc0d2323726ddf8a93ae63a7590f55ecb15466f0c9176dee6188c589f5d84ab", + "tests/gpu_container_transport.rs": "e3d8b4c7070eb3503b55daa7f013bba02d0a22096beb13eb7002df5d41404b62", + "src/cli/tests_phase83.rs": "9234ec3986faf13c9d6bd8fe87076bb84caab479f5be32081d2b50e7d74b963d", + "src/core/store/tests_chunker.rs": "f0cc30924b1441600d59602f94906775f5a056ade2dd6f6f4c3c5cb9f412e675", + "src/cli/commands/validate_args.rs": "9ac072f4f1c1d135c804ee6902413dd30e08d8611f7d04d6d3375a23c236e98e", + "src/resources/cron.rs": "484d9fd86bd6cc757e67bd4a7b8eeb0f3a8efd9f1a2550414382c8c43a9d3b3f", + "src/cli/tests_cov_graph3.rs": "0964177398f72d99d5ea1f4a213a72dd48aad9df5a22c763d23440ef22e037c6", + "examples/store_reproducibility.rs": "e1fd38b2cc2ade0444e77a0a2d7310b7ca0d2554f9db3ae5ff1753bbc8ddd969", + "src/cli/graph_resilience_ext.rs": "6843520429a2c1c6194e7e26338714bcd0fdb8fc6d348e0eac2a062f07efe26c", + "src/core/store/secret_scan.rs": "6845f4704ed66bd435c620e0dd83b5e3f8bacb65571ee33d76ec9e16d9a89e5b", + "src/cli/status_drift_intel.rs": "a1e382537802f1d90981b5a9d78b08857ec2e3f418dd56826c87e5fec3424b36", + "src/core/resolver/resource.rs": "3bdf0233a3df72792c19239fb2e2f6adaa7797176cc84d5978f3cfd797fcaeb8", + "src/cli/tests_phase105.rs": "125e47bdfb4e5632a1352a9f73348469d2a113c4dff77b4ae71919315fd0c640", + "src/cli/tests_cov_remaining.rs": "b3ddd352bd2e84334ae283aad442cc30f6509aea1a6951c618413b5bc39a37a9", + "src/core/parser/mod.rs": "a7103646daa0f2f7c25ce72ec7a06f770c5aadda9b6481f7b58fdf92680da303", + "src/cli/tests_cov_validate_ext3.rs": "f18e68a1d2e2d885442eff93ec6df1a493e3fefeeb8ba6f7046c60031990175c", + "src/resources/pepita/mod.rs": "352fa33729052c5810ec9130601b9a9be2e8209fd368f98431faa67d1b9abebd", + "src/core/executor/strategies.rs": "47300be7d021d6fa65d12516cfe21bc9efa2b9d4d14a702f668fbda29deb6362", + "src/core/parser/resource_types.rs": "68f2bbc06de073e745215d0a5f55ec9b778b8f4296d7acdd81c4279d1c75f059", + "src/cli/status_operational_ext.rs": "f8f39446b9091ae9178dc210d4b1ff97ff6721feea04ed74490ded0d23196f57", + "src/cli/tests_cov_graph.rs": "d6324c03b4c5dcf421b9d0a587e46c4ddd47629af49d78a4ef5351471ce7b727", + "src/cli/status_predictive.rs": "2f34cbe8058c7aaa467db4ced6efa82498cd3c825067615f25616ee8f8f4f381", + "src/cli/tests_phase92.rs": "cc5bc0612ff315eaa14e960c3bbbf8c0dccd5663df72c514d0362f04fc6df330", + "src/cli/tests_status_core_6.rs": "d66062ef8be94fefd1417d960a820e1f1adf09e2cb1410ada5d04a465cf66300", + "src/core/executor/tests_localhost.rs": "954988f33b820310b58963906a52d14efb39fa171ccdce0d5d845e96526d30ca", + "src/cli/tests_score.rs": "57a79d5775e1244b3f628ec77fda9295d2c9c2e92cf88ed9a030a9d79f9a1ca2", + "src/core/store/tests_store_diff.rs": "73079617698d552eaa3ce7ba0b6c405be84c718e78eee852ac638fbbea40ed75", + "src/cli/tests_cov_validate_ext.rs": "1d098ca6d3c70d520c553b51b8c3a1541b549a3e412e1cfba39c8ce76d32449c", + "src/cli/tests_phase97.rs": "74f9386a495bd24f35c4a62484a87edae6082d87a1085c0d5469cf4e2043d0d7", + "src/core/store/tests_meta.rs": "9f59758cea8e4a8dcc203505a580502736d6f22804d7b695352b0c2795cd307e", + "src/cli/tests_apply_12.rs": "a23683659b99ed53f1d94379a414bb1088617b377ef4d672d3c7523e6330e14b", + "src/cli/store_cache.rs": "2aac97200dcf326506b9c07b5c9c02801e250f8644969b137e48f11f4bc97502", + "src/cli/tests_helpers_time.rs": "038e90da543fb51cbba559b761d649039ffc84c0aeecab9f9bc0b763aa7efe67", + "src/cli/validate_maturity.rs": "efe035a279d4f04b37e591a91b8b4cf96ce24185fafeb5e967b2a0cff197074e", + "src/cli/apply_variants.rs": "7fb2ff4c429a910521f9baf6668437bca47db6c49ebdc70574e1b38a380731b7", + "src/core/store/cache.rs": "b0a9420e9c7cad743ca5ee26f5b366e3f64a3599499f83e5dc8d7f526c2570ed", + "src/cli/tests_cov_remaining_3.rs": "db47c0551191717e888422f39d498a0d91007c5eacbb1402db5a9561bff12c48", + "src/tripwire/tests_anomaly.rs": "7f8482500d6ec9b32ab2c892b71c8de993c19359baf1bdfc8d3301d9983d2c77", + "src/tripwire/tracer.rs": "7ee607dfc9017211051711fad0510f80f7dea80cdb65a7f03528ed64ef39f3cc", + "src/cli/tests_validate_store_purity.rs": "1af1deaef29751538178614558ce4777d3929dedbed15ba2c2ac15731e61af2f", + "src/core/store/closure.rs": "5fec3b8c5ad2d7118ba1f7757bcbd756b0d424d574d7ca997de51c42ec3e660d", + "src/core/store/provider_exec.rs": "ece29886cf9b90d3f5ebd6eabf3d7113d201afba6ce9190e566c1e06fe98a837", + "src/cli/tests_cov_notify.rs": "c413f83c75c094afe92882c50880cdd8db88af26daeea15890fa9614723e78fb", + "src/cli/check.rs": "ea85e4683f4490afc10d126fb3ebcd379b982ae73f1abf8c68380c7c2281f838", + "src/cli/graph_weight.rs": "67e5cd261fd46b776e6f950d280ec214968c66ceb74a0a906f03327791b9af44", + "src/core/store/tests_pin_tripwire.rs": "4b400e9e27207460dfae9a3686e898af1d62f7dca35656618f6438fd860fd7fd", + "src/cli/helpers.rs": "7cdf36a2f59e6dcf0e334b47db74a7877ba11321c4565a75c68745817abcec35", + "src/core/types/config.rs": "273ef42049338b1bcb6eab93232ef065b5848a195af8686dcfa58019bfc7fbb0", + "src/core/planner/tests_when.rs": "7d781ca2803bccc31c5a5e4602b67933f9aa421dd2e9f70fa4b5c32eddf38d70", + "src/cli/tests_show.rs": "c359a181ae6f3ef222eef0553c6d2c97aeb833b8c5cbfcac40da7f46bc9d269f", + "src/cli/tests_status_core_9.rs": "12615ab2ab0e95d47c3c356ba5e0e6667a55ca386a23bbac175113fc13e436b0", + "src/cli/tests_phase65.rs": "7becd26ed753087000d41cb0848a75dd670d9590ada04d710b194e0fde1b6d92", + "src/cli/graph_resilience.rs": "c6fe3613bcb0c1d81ea3370da4237e88a3e0ecb46066f5c9de84aefde1a8acd6" + }, + "last_incremental_changes": 0 +} \ No newline at end of file diff --git a/.pmat/coverage-cache.json b/.pmat/coverage-cache.json new file mode 100644 index 00000000..84876e4e --- /dev/null +++ b/.pmat/coverage-cache.json @@ -0,0 +1 @@ +{"git_hash":"5bd7b593aee4fe1a50a2b7468cf0ef001b7f68cf","coverage_mtime":1772471977,"profdata_dir":"/mnt/nvme-raid0/targets/forjar/llvm-cov-target","files":{}} \ No newline at end of file diff --git a/.pmat/dead-code-cache.json b/.pmat/dead-code-cache.json new file mode 100644 index 00000000..f279db50 --- /dev/null +++ b/.pmat/dead-code-cache.json @@ -0,0 +1,88 @@ +{ + "tree_hash": "65b4b2d5e05f19a53e1d073424a65b2235a0cba6", + "pmat_version": "3.6.1", + "timestamp": "2026-03-02T22:48:10.716967352Z", + "report": { + "files_with_dead_code": [ + { + "file_path": "src/cli/tests_show_3.rs", + "dead_items": [ + { + "name": "write_env_config", + "kind": "Suppressed", + "line": 170, + "column": 1, + "message": "fn `write_env_config` has #[allow(dead_code)] suppression (explicit dead code admission)" + } + ], + "file_dead_percentage": 1.5625 + }, + { + "file_path": "src/cli/tests_init.rs", + "dead_items": [ + { + "name": "write_simple_config", + "kind": "Suppressed", + "line": 133, + "column": 1, + "message": "fn `write_simple_config` has #[allow(dead_code)] suppression (explicit dead code admission)" + } + ], + "file_dead_percentage": 0.7233273056057866 + }, + { + "file_path": "src/cli/tests_infra.rs", + "dead_items": [ + { + "name": "write_output_config", + "kind": "Suppressed", + "line": 281, + "column": 1, + "message": "fn `write_output_config` has #[allow(dead_code)] suppression (explicit dead code admission)" + } + ], + "file_dead_percentage": 1.3071895424836601 + }, + { + "file_path": "src/cli/tests_show.rs", + "dead_items": [ + { + "name": "make_state_dir_with_lock", + "kind": "Suppressed", + "line": 128, + "column": 1, + "message": "fn `make_state_dir_with_lock` has #[allow(dead_code)] suppression (explicit dead code admission)" + } + ], + "file_dead_percentage": 1.6129032258064515 + }, + { + "file_path": "src/cli/tests_apply_1.rs", + "dead_items": [ + { + "name": "make_test_lock", + "kind": "Suppressed", + "line": 488, + "column": 1, + "message": "fn `make_test_lock` has #[allow(dead_code)] suppression (explicit dead code admission)" + }, + { + "name": "make_test_resource_lock", + "kind": "Suppressed", + "line": 504, + "column": 1, + "message": "fn `make_test_resource_lock` has #[allow(dead_code)] suppression (explicit dead code admission)" + } + ], + "file_dead_percentage": 1.556420233463035 + } + ], + "total_dead_items": 6, + "dead_code_percentage": 0.0054229689851365455, + "total_lines": 221281, + "dead_lines": 12, + "dead_by_type": { + "suppressed": 6 + } + } +} \ No newline at end of file diff --git a/.pmat/deny-cache.txt b/.pmat/deny-cache.txt new file mode 100644 index 00000000..9c4524d2 --- /dev/null +++ b/.pmat/deny-cache.txt @@ -0,0 +1 @@ +advisories ok, bans ok, licenses FAILED, sources ok diff --git a/.pmat/deps-cache.json b/.pmat/deps-cache.json new file mode 100644 index 00000000..a64e8912 --- /dev/null +++ b/.pmat/deps-cache.json @@ -0,0 +1,215 @@ +{ + "cargo_lock_mtime": 1772488437, + "transitive_count": 440, + "prod_transitive_count": 303, + "duplicate_crates": [ + { + "name": "thiserror-impl", + "versions": [ + "1.0.69", + "2.0.18" + ] + }, + { + "name": "windows-result", + "versions": [ + "0.1.2", + "0.4.1" + ] + }, + { + "name": "core-foundation", + "versions": [ + "0.10.1", + "0.9.4" + ] + }, + { + "name": "windows_x86_64_gnullvm", + "versions": [ + "0.52.6", + "0.53.1" + ] + }, + { + "name": "windows_aarch64_msvc", + "versions": [ + "0.52.6", + "0.53.1" + ] + }, + { + "name": "windows_aarch64_gnullvm", + "versions": [ + "0.52.6", + "0.53.1" + ] + }, + { + "name": "windows-targets", + "versions": [ + "0.52.6", + "0.53.5" + ] + }, + { + "name": "rand_chacha", + "versions": [ + "0.3.1", + "0.9.0" + ] + }, + { + "name": "windows_x86_64_gnu", + "versions": [ + "0.52.6", + "0.53.1" + ] + }, + { + "name": "rand", + "versions": [ + "0.8.5", + "0.9.2" + ] + }, + { + "name": "rustc-hash", + "versions": [ + "1.1.0", + "2.1.1" + ] + }, + { + "name": "windows_x86_64_msvc", + "versions": [ + "0.52.6", + "0.53.1" + ] + }, + { + "name": "thiserror", + "versions": [ + "1.0.69", + "2.0.18" + ] + }, + { + "name": "self_cell", + "versions": [ + "0.10.3", + "1.2.2" + ] + }, + { + "name": "windows_i686_gnu", + "versions": [ + "0.52.6", + "0.53.1" + ] + }, + { + "name": "toml", + "versions": [ + "0.5.11", + "0.8.23", + "0.9.12+spec-1.1.0" + ] + }, + { + "name": "base64", + "versions": [ + "0.21.7", + "0.22.1" + ] + }, + { + "name": "windows-core", + "versions": [ + "0.57.0", + "0.62.2" + ] + }, + { + "name": "getrandom", + "versions": [ + "0.2.17", + "0.3.4", + "0.4.1" + ] + }, + { + "name": "windows-sys", + "versions": [ + "0.52.0", + "0.59.0", + "0.60.2", + "0.61.2" + ] + }, + { + "name": "hashbrown", + "versions": [ + "0.14.5", + "0.15.5", + "0.16.1" + ] + }, + { + "name": "windows-interface", + "versions": [ + "0.57.0", + "0.59.3" + ] + }, + { + "name": "serde_spanned", + "versions": [ + "0.6.9", + "1.0.4" + ] + }, + { + "name": "windows_i686_msvc", + "versions": [ + "0.52.6", + "0.53.1" + ] + }, + { + "name": "windows_i686_gnullvm", + "versions": [ + "0.52.6", + "0.53.1" + ] + }, + { + "name": "redox_syscall", + "versions": [ + "0.5.18", + "0.7.3" + ] + }, + { + "name": "windows-implement", + "versions": [ + "0.57.0", + "0.60.2" + ] + }, + { + "name": "toml_datetime", + "versions": [ + "0.6.11", + "0.7.5+spec-1.1.0" + ] + }, + { + "name": "rand_core", + "versions": [ + "0.6.4", + "0.9.5" + ] + } + ] +} \ No newline at end of file diff --git a/.pmat/file-health-baseline.json b/.pmat/file-health-baseline.json new file mode 100644 index 00000000..1eb3bd20 --- /dev/null +++ b/.pmat/file-health-baseline.json @@ -0,0 +1,2323 @@ +{ + "version": "1.0", + "generated": "2026-02-27T21:44:45.891141451+00:00", + "files": { + "src/resources/pepita/mod.rs": { + "lines": 219, + "test_lines": 2, + "tlr": 0.00913242, + "health": 50, + "status": "acceptable" + }, + "src/cli/tests_apply_18.rs": { + "lines": 474, + "test_lines": 491, + "tlr": 1.035865, + "health": 95, + "status": "acceptable" + }, + "src/core/recipe/mod.rs": { + "lines": 23, + "test_lines": 4, + "tlr": 0.17391305, + "health": 83, + "status": "ideal" + }, + "src/core/codegen/tests_completeness.rs": { + "lines": 280, + "test_lines": 90, + "tlr": 0.32142857, + "health": 80, + "status": "acceptable" + }, + "src/cli/tests_misc.rs": { + "lines": 409, + "test_lines": 506, + "tlr": 1.2371638, + "health": 95, + "status": "acceptable" + }, + "src/core/recipe/expansion.rs": { + "lines": 150, + "test_lines": 0, + "tlr": 0.0, + "health": 55, + "status": "ideal" + }, + "src/cli/tests_apply_2.rs": { + "lines": 392, + "test_lines": 415, + "tlr": 1.0586735, + "health": 95, + "status": "acceptable" + }, + "src/cli/status_alerts.rs": { + "lines": 361, + "test_lines": 0, + "tlr": 0.0, + "health": 50, + "status": "acceptable" + }, + "src/cli/tests_misc_4.rs": { + "lines": 348, + "test_lines": 394, + "tlr": 1.1321839, + "health": 95, + "status": "acceptable" + }, + "src/resources/mount.rs": { + "lines": 72, + "test_lines": 0, + "tlr": 0.0, + "health": 60, + "status": "ideal" + }, + "src/cli/tests_apply_1.rs": { + "lines": 479, + "test_lines": 514, + "tlr": 1.0730689, + "health": 95, + "status": "acceptable" + }, + "src/core/executor/tests_filters.rs": { + "lines": 391, + "test_lines": 110, + "tlr": 0.28132993, + "health": 71, + "status": "acceptable" + }, + "src/core/types/tests_resource.rs": { + "lines": 298, + "test_lines": 290, + "tlr": 0.97315437, + "health": 95, + "status": "acceptable" + }, + "src/resources/tests_mount.rs": { + "lines": 497, + "test_lines": 330, + "tlr": 0.6639839, + "health": 92, + "status": "acceptable" + }, + "src/core/parser/tests_core.rs": { + "lines": 299, + "test_lines": 140, + "tlr": 0.46822742, + "health": 92, + "status": "acceptable" + }, + "src/core/purifier.rs": { + "lines": 78, + "test_lines": 0, + "tlr": 0.0, + "health": 60, + "status": "ideal" + }, + "src/cli/dispatch_apply.rs": { + "lines": 249, + "test_lines": 0, + "tlr": 0.0, + "health": 50, + "status": "acceptable" + }, + "src/main.rs": { + "lines": 33, + "test_lines": 0, + "tlr": 0.0, + "health": 60, + "status": "ideal" + }, + "src/cli/tests_apply_8.rs": { + "lines": 475, + "test_lines": 492, + "tlr": 1.0357895, + "health": 95, + "status": "acceptable" + }, + "src/core/resolver/mod.rs": { + "lines": 36, + "test_lines": 10, + "tlr": 0.2777778, + "health": 97, + "status": "ideal" + }, + "src/cli/tests_workspace.rs": { + "lines": 199, + "test_lines": 307, + "tlr": 1.5427135, + "health": 100, + "status": "ideal" + }, + "src/cli/tests_apply_7.rs": { + "lines": 474, + "test_lines": 491, + "tlr": 1.035865, + "health": 95, + "status": "acceptable" + }, + "src/cli/tests_apply_14.rs": { + "lines": 474, + "test_lines": 491, + "tlr": 1.035865, + "health": 95, + "status": "acceptable" + }, + "src/core/parser/tests_validation.rs": { + "lines": 492, + "test_lines": 210, + "tlr": 0.42682928, + "health": 79, + "status": "acceptable" + }, + "src/core/migrate.rs": { + "lines": 420, + "test_lines": 452, + "tlr": 1.0761905, + "health": 95, + "status": "acceptable" + }, + "src/cli/history.rs": { + "lines": 263, + "test_lines": 0, + "tlr": 0.0, + "health": 50, + "status": "acceptable" + }, + "src/cli/tests_fleet_reporting.rs": { + "lines": 89, + "test_lines": 126, + "tlr": 1.4157304, + "health": 100, + "status": "ideal" + }, + "src/cli/graph_topology.rs": { + "lines": 341, + "test_lines": 0, + "tlr": 0.0, + "health": 45, + "status": "acceptable" + }, + "src/cli/tests_lock_core.rs": { + "lines": 481, + "test_lines": 606, + "tlr": 1.2598753, + "health": 95, + "status": "acceptable" + }, + "src/cli/tests_check.rs": { + "lines": 471, + "test_lines": 554, + "tlr": 1.1762208, + "health": 95, + "status": "acceptable" + }, + "src/core/planner/tests_filter.rs": { + "lines": 132, + "test_lines": 80, + "tlr": 0.6060606, + "health": 100, + "status": "ideal" + }, + "src/cli/tests_graph_core_1.rs": { + "lines": 438, + "test_lines": 505, + "tlr": 1.152968, + "health": 95, + "status": "acceptable" + }, + "src/core/parser/validation.rs": { + "lines": 125, + "test_lines": 0, + "tlr": 0.0, + "health": 40, + "status": "ideal" + }, + "src/core/executor/test_fixtures.rs": { + "lines": 67, + "test_lines": 0, + "tlr": 0.0, + "health": 60, + "status": "ideal" + }, + "src/core/parser/tests_misc.rs": { + "lines": 463, + "test_lines": 190, + "tlr": 0.41036716, + "health": 78, + "status": "acceptable" + }, + "src/cli/tests_misc_8.rs": { + "lines": 406, + "test_lines": 424, + "tlr": 1.044335, + "health": 95, + "status": "acceptable" + }, + "src/cli/tests_status_core_3.rs": { + "lines": 462, + "test_lines": 499, + "tlr": 1.0800866, + "health": 95, + "status": "acceptable" + }, + "src/cli/lock_repair.rs": { + "lines": 132, + "test_lines": 0, + "tlr": 0.0, + "health": 40, + "status": "ideal" + }, + "src/tripwire/drift/tests_edge_fj131.rs": { + "lines": 312, + "test_lines": 100, + "tlr": 0.32051283, + "health": 73, + "status": "acceptable" + }, + "src/core/resolver/template.rs": { + "lines": 103, + "test_lines": 0, + "tlr": 0.0, + "health": 55, + "status": "ideal" + }, + "src/cli/commands/lock_ops_args.rs": { + "lines": 240, + "test_lines": 0, + "tlr": 0.0, + "health": 55, + "status": "acceptable" + }, + "src/cli/tests_apply_22.rs": { + "lines": 477, + "test_lines": 494, + "tlr": 1.0356394, + "health": 95, + "status": "acceptable" + }, + "src/cli/doctor.rs": { + "lines": 444, + "test_lines": 0, + "tlr": 0.0, + "health": 55, + "status": "acceptable" + }, + "src/core/types/tests_config.rs": { + "lines": 435, + "test_lines": 230, + "tlr": 0.52873564, + "health": 85, + "status": "acceptable" + }, + "src/core/resolver/tests_template.rs": { + "lines": 423, + "test_lines": 290, + "tlr": 0.6855792, + "health": 94, + "status": "acceptable" + }, + "src/core/recipe/validation_types.rs": { + "lines": 93, + "test_lines": 0, + "tlr": 0.0, + "health": 60, + "status": "ideal" + }, + "src/core/executor/tests_waves.rs": { + "lines": 460, + "test_lines": 90, + "tlr": 0.19565217, + "health": 66, + "status": "acceptable" + }, + "src/cli/tests_show_1.rs": { + "lines": 391, + "test_lines": 485, + "tlr": 1.2404093, + "health": 95, + "status": "acceptable" + }, + "src/core/resolver/tests_data.rs": { + "lines": 204, + "test_lines": 80, + "tlr": 0.39215687, + "health": 86, + "status": "acceptable" + }, + "src/cli/mod.rs": { + "lines": 255, + "test_lines": 91, + "tlr": 0.35686275, + "health": 83, + "status": "acceptable" + }, + "src/cli/status_resource_detail.rs": { + "lines": 244, + "test_lines": 0, + "tlr": 0.0, + "health": 40, + "status": "acceptable" + }, + "src/cli/tests_apply_19.rs": { + "lines": 478, + "test_lines": 495, + "tlr": 1.0355649, + "health": 95, + "status": "acceptable" + }, + "src/core/planner/tests_describe.rs": { + "lines": 77, + "test_lines": 100, + "tlr": 1.2987013, + "health": 100, + "status": "ideal" + }, + "src/cli/validate_resources.rs": { + "lines": 386, + "test_lines": 0, + "tlr": 0.0, + "health": 35, + "status": "acceptable" + }, + "src/cli/tests_print_helpers.rs": { + "lines": 193, + "test_lines": 281, + "tlr": 1.4559586, + "health": 100, + "status": "ideal" + }, + "src/cli/tests_apply_21.rs": { + "lines": 480, + "test_lines": 497, + "tlr": 1.0354167, + "health": 95, + "status": "acceptable" + }, + "src/mcp/tests_handlers.rs": { + "lines": 228, + "test_lines": 110, + "tlr": 0.48245615, + "health": 93, + "status": "acceptable" + }, + "src/cli/tests_check_1.rs": { + "lines": 498, + "test_lines": 638, + "tlr": 1.2811245, + "health": 95, + "status": "acceptable" + }, + "src/resources/mod.rs": { + "lines": 33, + "test_lines": 8, + "tlr": 0.24242425, + "health": 92, + "status": "ideal" + }, + "src/cli/tests_destroy_1.rs": { + "lines": 221, + "test_lines": 228, + "tlr": 1.0316743, + "health": 95, + "status": "acceptable" + }, + "src/cli/tests_observe.rs": { + "lines": 286, + "test_lines": 412, + "tlr": 1.4405594, + "health": 95, + "status": "acceptable" + }, + "src/cli/tests_import_cmd.rs": { + "lines": 238, + "test_lines": 326, + "tlr": 1.3697479, + "health": 95, + "status": "acceptable" + }, + "src/resources/service.rs": { + "lines": 497, + "test_lines": 705, + "tlr": 1.418511, + "health": 95, + "status": "acceptable" + }, + "src/cli/tests_drift.rs": { + "lines": 408, + "test_lines": 473, + "tlr": 1.1593137, + "health": 95, + "status": "acceptable" + }, + "src/resources/tests_docker.rs": { + "lines": 276, + "test_lines": 200, + "tlr": 0.7246377, + "health": 95, + "status": "acceptable" + }, + "src/core/planner/tests_plan.rs": { + "lines": 357, + "test_lines": 180, + "tlr": 0.5042017, + "health": 83, + "status": "acceptable" + }, + "src/cli/tests_apply_9.rs": { + "lines": 472, + "test_lines": 489, + "tlr": 1.036017, + "health": 95, + "status": "acceptable" + }, + "src/core/parser/tests_policy.rs": { + "lines": 258, + "test_lines": 90, + "tlr": 0.3488372, + "health": 82, + "status": "acceptable" + }, + "src/core/state/tests_edge.rs": { + "lines": 334, + "test_lines": 180, + "tlr": 0.53892213, + "health": 85, + "status": "acceptable" + }, + "src/core/state/mod.rs": { + "lines": 251, + "test_lines": 5, + "tlr": 0.01992032, + "health": 56, + "status": "acceptable" + }, + "src/cli/apply_helpers.rs": { + "lines": 139, + "test_lines": 0, + "tlr": 0.0, + "health": 45, + "status": "ideal" + }, + "src/core/codegen/test_fixtures.rs": { + "lines": 295, + "test_lines": 0, + "tlr": 0.0, + "health": 55, + "status": "acceptable" + }, + "src/cli/tests_apply_11.rs": { + "lines": 474, + "test_lines": 491, + "tlr": 1.035865, + "health": 95, + "status": "acceptable" + }, + "src/cli/tests_apply_23.rs": { + "lines": 225, + "test_lines": 271, + "tlr": 1.2044444, + "health": 95, + "status": "acceptable" + }, + "src/cli/tests_apply_6.rs": { + "lines": 479, + "test_lines": 496, + "tlr": 1.0354906, + "health": 95, + "status": "acceptable" + }, + "src/cli/commands/misc_ops_args.rs": { + "lines": 306, + "test_lines": 0, + "tlr": 0.0, + "health": 55, + "status": "acceptable" + }, + "src/cli/status_trends.rs": { + "lines": 404, + "test_lines": 0, + "tlr": 0.0, + "health": 45, + "status": "acceptable" + }, + "src/cli/import_cmd.rs": { + "lines": 302, + "test_lines": 0, + "tlr": 0.0, + "health": 50, + "status": "acceptable" + }, + "src/resources/tests_user.rs": { + "lines": 464, + "test_lines": 290, + "tlr": 0.625, + "health": 90, + "status": "acceptable" + }, + "src/cli/tests_apply_20.rs": { + "lines": 480, + "test_lines": 497, + "tlr": 1.0354167, + "health": 95, + "status": "acceptable" + }, + "src/mcp/mod.rs": { + "lines": 21, + "test_lines": 4, + "tlr": 0.1904762, + "health": 85, + "status": "ideal" + }, + "src/core/planner/tests_determine.rs": { + "lines": 158, + "test_lines": 60, + "tlr": 0.37974682, + "health": 90, + "status": "ideal" + }, + "src/tripwire/tracer.rs": { + "lines": 488, + "test_lines": 424, + "tlr": 0.86885244, + "health": 95, + "status": "acceptable" + }, + "src/cli/lock_audit.rs": { + "lines": 385, + "test_lines": 0, + "tlr": 0.0, + "health": 35, + "status": "acceptable" + }, + "src/core/planner/tests_advanced.rs": { + "lines": 264, + "test_lines": 90, + "tlr": 0.3409091, + "health": 82, + "status": "acceptable" + }, + "src/transport/tests_ssh.rs": { + "lines": 358, + "test_lines": 360, + "tlr": 1.0055866, + "health": 95, + "status": "acceptable" + }, + "src/cli/tests_doctor.rs": { + "lines": 187, + "test_lines": 264, + "tlr": 1.4117647, + "health": 100, + "status": "ideal" + }, + "src/cli/lock_core.rs": { + "lines": 458, + "test_lines": 0, + "tlr": 0.0, + "health": 40, + "status": "acceptable" + }, + "src/core/resolver/functions.rs": { + "lines": 165, + "test_lines": 0, + "tlr": 0.0, + "health": 50, + "status": "ideal" + }, + "src/cli/tests_apply_17.rs": { + "lines": 475, + "test_lines": 492, + "tlr": 1.0357895, + "health": 95, + "status": "acceptable" + }, + "src/cli/validate_structural.rs": { + "lines": 497, + "test_lines": 0, + "tlr": 0.0, + "health": 45, + "status": "acceptable" + }, + "src/cli/init.rs": { + "lines": 259, + "test_lines": 0, + "tlr": 0.0, + "health": 45, + "status": "acceptable" + }, + "src/cli/tests_infra.rs": { + "lines": 324, + "test_lines": 501, + "tlr": 1.5462962, + "health": 95, + "status": "acceptable" + }, + "src/tripwire/drift/tests_basic_b.rs": { + "lines": 354, + "test_lines": 110, + "tlr": 0.31073445, + "health": 72, + "status": "acceptable" + }, + "src/core/planner/tests_when.rs": { + "lines": 103, + "test_lines": 80, + "tlr": 0.776699, + "health": 100, + "status": "ideal" + }, + "src/tripwire/drift/mod.rs": { + "lines": 244, + "test_lines": 9, + "tlr": 0.036885247, + "health": 57, + "status": "acceptable" + }, + "src/core/mod.rs": { + "lines": 21, + "test_lines": 4, + "tlr": 0.1904762, + "health": 85, + "status": "ideal" + }, + "src/cli/status_observability.rs": { + "lines": 409, + "test_lines": 0, + "tlr": 0.0, + "health": 50, + "status": "acceptable" + }, + "src/cli/tests_status_core_9.rs": { + "lines": 254, + "test_lines": 311, + "tlr": 1.2244095, + "health": 95, + "status": "acceptable" + }, + "src/cli/tests_status_core_2.rs": { + "lines": 465, + "test_lines": 502, + "tlr": 1.0795699, + "health": 95, + "status": "acceptable" + }, + "src/tripwire/drift/tests_edge_fj132.rs": { + "lines": 310, + "test_lines": 60, + "tlr": 0.19354838, + "health": 66, + "status": "acceptable" + }, + "src/tripwire/tests_eventlog.rs": { + "lines": 263, + "test_lines": 180, + "tlr": 0.68441063, + "health": 95, + "status": "acceptable" + }, + "src/core/executor/tests_edge_apply.rs": { + "lines": 448, + "test_lines": 90, + "tlr": 0.20089285, + "health": 66, + "status": "acceptable" + }, + "src/cli/status_core.rs": { + "lines": 233, + "test_lines": 0, + "tlr": 0.0, + "health": 50, + "status": "acceptable" + }, + "src/cli/lock_security.rs": { + "lines": 400, + "test_lines": 0, + "tlr": 0.0, + "health": 35, + "status": "acceptable" + }, + "src/cli/lint.rs": { + "lines": 268, + "test_lines": 0, + "tlr": 0.0, + "health": 50, + "status": "acceptable" + }, + "src/cli/tests_misc_7.rs": { + "lines": 472, + "test_lines": 490, + "tlr": 1.0381356, + "health": 95, + "status": "acceptable" + }, + "src/core/codegen/tests_dispatch.rs": { + "lines": 245, + "test_lines": 220, + "tlr": 0.8979592, + "health": 95, + "status": "acceptable" + }, + "src/cli/graph_analysis.rs": { + "lines": 328, + "test_lines": 0, + "tlr": 0.0, + "health": 50, + "status": "acceptable" + }, + "src/resources/file.rs": { + "lines": 127, + "test_lines": 0, + "tlr": 0.0, + "health": 55, + "status": "ideal" + }, + "src/core/parser/tests_triggers.rs": { + "lines": 106, + "test_lines": 40, + "tlr": 0.3773585, + "health": 90, + "status": "ideal" + }, + "src/core/planner/tests_hash.rs": { + "lines": 476, + "test_lines": 260, + "tlr": 0.5462185, + "health": 86, + "status": "acceptable" + }, + "src/cli/status_compliance.rs": { + "lines": 325, + "test_lines": 0, + "tlr": 0.0, + "health": 45, + "status": "acceptable" + }, + "src/cli/tests_misc_9.rs": { + "lines": 399, + "test_lines": 427, + "tlr": 1.0701754, + "health": 95, + "status": "acceptable" + }, + "src/cli/apply_variants.rs": { + "lines": 202, + "test_lines": 0, + "tlr": 0.0, + "health": 45, + "status": "acceptable" + }, + "src/core/types/policy.rs": { + "lines": 118, + "test_lines": 0, + "tlr": 0.0, + "health": 60, + "status": "ideal" + }, + "src/core/conditions.rs": { + "lines": 321, + "test_lines": 392, + "tlr": 1.2211838, + "health": 95, + "status": "acceptable" + }, + "src/cli/tests_diff_cmd.rs": { + "lines": 475, + "test_lines": 616, + "tlr": 1.2968421, + "health": 95, + "status": "acceptable" + }, + "src/core/state/tests_process_lock.rs": { + "lines": 85, + "test_lines": 80, + "tlr": 0.9411765, + "health": 100, + "status": "ideal" + }, + "src/cli/tests_fleet_ops_1.rs": { + "lines": 51, + "test_lines": 49, + "tlr": 0.9607843, + "health": 100, + "status": "ideal" + }, + "src/cli/tests_apply_3.rs": { + "lines": 412, + "test_lines": 468, + "tlr": 1.1359223, + "health": 95, + "status": "acceptable" + }, + "src/cli/workspace.rs": { + "lines": 172, + "test_lines": 0, + "tlr": 0.0, + "health": 40, + "status": "ideal" + }, + "src/cli/tests_apply_5.rs": { + "lines": 474, + "test_lines": 491, + "tlr": 1.035865, + "health": 95, + "status": "acceptable" + }, + "src/resources/package.rs": { + "lines": 160, + "test_lines": 0, + "tlr": 0.0, + "health": 55, + "status": "ideal" + }, + "src/core/recipe/tests_integration.rs": { + "lines": 434, + "test_lines": 130, + "tlr": 0.29953918, + "health": 72, + "status": "acceptable" + }, + "src/cli/tests_validate_core.rs": { + "lines": 449, + "test_lines": 555, + "tlr": 1.2360802, + "health": 95, + "status": "acceptable" + }, + "src/cli/lock_lifecycle.rs": { + "lines": 194, + "test_lines": 0, + "tlr": 0.0, + "health": 40, + "status": "ideal" + }, + "src/cli/validate_paths.rs": { + "lines": 289, + "test_lines": 0, + "tlr": 0.0, + "health": 45, + "status": "acceptable" + }, + "src/cli/dispatch.rs": { + "lines": 92, + "test_lines": 0, + "tlr": 0.0, + "health": 60, + "status": "ideal" + }, + "src/core/parser/includes.rs": { + "lines": 51, + "test_lines": 0, + "tlr": 0.0, + "health": 55, + "status": "ideal" + }, + "src/cli/tests_status_core_8.rs": { + "lines": 460, + "test_lines": 497, + "tlr": 1.0804348, + "health": 95, + "status": "acceptable" + }, + "src/resources/user.rs": { + "lines": 141, + "test_lines": 0, + "tlr": 0.0, + "health": 55, + "status": "ideal" + }, + "src/core/recipe/tests_validation.rs": { + "lines": 427, + "test_lines": 200, + "tlr": 0.4683841, + "health": 81, + "status": "acceptable" + }, + "src/cli/graph_visualization.rs": { + "lines": 319, + "test_lines": 0, + "tlr": 0.0, + "health": 45, + "status": "acceptable" + }, + "src/core/codegen/mod.rs": { + "lines": 15, + "test_lines": 5, + "tlr": 0.33333334, + "health": 100, + "status": "ideal" + }, + "src/core/parser/tests_misc_4.rs": { + "lines": 282, + "test_lines": 80, + "tlr": 0.28368795, + "health": 77, + "status": "acceptable" + }, + "src/cli/tests_graph_core_3.rs": { + "lines": 287, + "test_lines": 321, + "tlr": 1.1184669, + "health": 95, + "status": "acceptable" + }, + "src/cli/tests_show_3.rs": { + "lines": 269, + "test_lines": 383, + "tlr": 1.4237918, + "health": 95, + "status": "acceptable" + }, + "src/cli/fleet_ops.rs": { + "lines": 431, + "test_lines": 0, + "tlr": 0.0, + "health": 35, + "status": "acceptable" + }, + "src/resources/tests_package.rs": { + "lines": 467, + "test_lines": 370, + "tlr": 0.7922912, + "health": 95, + "status": "acceptable" + }, + "src/cli/tests_status_core.rs": { + "lines": 441, + "test_lines": 567, + "tlr": 1.2857143, + "health": 95, + "status": "acceptable" + }, + "src/core/types/resource.rs": { + "lines": 376, + "test_lines": 0, + "tlr": 0.0, + "health": 55, + "status": "acceptable" + }, + "src/transport/container.rs": { + "lines": 137, + "test_lines": 0, + "tlr": 0.0, + "health": 55, + "status": "ideal" + }, + "src/cli/tests_misc_3.rs": { + "lines": 403, + "test_lines": 430, + "tlr": 1.0669975, + "health": 95, + "status": "acceptable" + }, + "src/tripwire/drift/tests_basic.rs": { + "lines": 325, + "test_lines": 110, + "tlr": 0.33846155, + "health": 74, + "status": "acceptable" + }, + "src/cli/helpers_state.rs": { + "lines": 126, + "test_lines": 0, + "tlr": 0.0, + "health": 40, + "status": "ideal" + }, + "src/core/secrets.rs": { + "lines": 190, + "test_lines": 0, + "tlr": 0.0, + "health": 60, + "status": "ideal" + }, + "src/cli/tests_graph_core_5.rs": { + "lines": 235, + "test_lines": 389, + "tlr": 1.6553191, + "health": 95, + "status": "acceptable" + }, + "src/cli/tests_validate_core_1.rs": { + "lines": 470, + "test_lines": 547, + "tlr": 1.1638298, + "health": 95, + "status": "acceptable" + }, + "src/core/parser/policy.rs": { + "lines": 106, + "test_lines": 0, + "tlr": 0.0, + "health": 55, + "status": "ideal" + }, + "src/cli/fleet_reporting.rs": { + "lines": 371, + "test_lines": 0, + "tlr": 0.0, + "health": 45, + "status": "acceptable" + }, + "src/core/types/config.rs": { + "lines": 298, + "test_lines": 0, + "tlr": 0.0, + "health": 55, + "status": "acceptable" + }, + "src/cli/tests_destroy.rs": { + "lines": 380, + "test_lines": 425, + "tlr": 1.1184211, + "health": 95, + "status": "acceptable" + }, + "src/transport/tests_dispatch.rs": { + "lines": 391, + "test_lines": 210, + "tlr": 0.5370844, + "health": 85, + "status": "acceptable" + }, + "src/core/resolver/tests_helpers.rs": { + "lines": 196, + "test_lines": 0, + "tlr": 0.0, + "health": 60, + "status": "ideal" + }, + "src/core/resolver/tests_waves.rs": { + "lines": 144, + "test_lines": 40, + "tlr": 0.2777778, + "health": 82, + "status": "ideal" + }, + "src/cli/tests_apply_15.rs": { + "lines": 474, + "test_lines": 491, + "tlr": 1.035865, + "health": 95, + "status": "acceptable" + }, + "src/core/resolver/data.rs": { + "lines": 70, + "test_lines": 0, + "tlr": 0.0, + "health": 60, + "status": "ideal" + }, + "src/cli/tests_apply_12.rs": { + "lines": 473, + "test_lines": 490, + "tlr": 1.0359408, + "health": 95, + "status": "acceptable" + }, + "src/core/executor/tests_parallel.rs": { + "lines": 396, + "test_lines": 90, + "tlr": 0.22727273, + "health": 67, + "status": "acceptable" + }, + "src/core/parser/mod.rs": { + "lines": 129, + "test_lines": 12, + "tlr": 0.093023255, + "health": 67, + "status": "ideal" + }, + "src/resources/network.rs": { + "lines": 481, + "test_lines": 703, + "tlr": 1.4615384, + "health": 95, + "status": "acceptable" + }, + "src/cli/tests_show.rs": { + "lines": 254, + "test_lines": 318, + "tlr": 1.2519685, + "health": 95, + "status": "acceptable" + }, + "src/cli/tests_status_core_4.rs": { + "lines": 465, + "test_lines": 502, + "tlr": 1.0795699, + "health": 95, + "status": "acceptable" + }, + "src/cli/infra.rs": { + "lines": 496, + "test_lines": 0, + "tlr": 0.0, + "health": 35, + "status": "acceptable" + }, + "src/core/parser/expansion.rs": { + "lines": 110, + "test_lines": 0, + "tlr": 0.0, + "health": 55, + "status": "ideal" + }, + "src/cli/tests_show_2.rs": { + "lines": 189, + "test_lines": 196, + "tlr": 1.037037, + "health": 100, + "status": "ideal" + }, + "src/resources/cron.rs": { + "lines": 455, + "test_lines": 673, + "tlr": 1.4791209, + "health": 95, + "status": "acceptable" + }, + "src/transport/tests_dispatch_b.rs": { + "lines": 308, + "test_lines": 200, + "tlr": 0.64935064, + "health": 92, + "status": "acceptable" + }, + "src/cli/apply.rs": { + "lines": 247, + "test_lines": 0, + "tlr": 0.0, + "health": 35, + "status": "acceptable" + }, + "src/cli/tests_plan_1.rs": { + "lines": 185, + "test_lines": 222, + "tlr": 1.2, + "health": 100, + "status": "ideal" + }, + "src/core/state/tests_helpers.rs": { + "lines": 27, + "test_lines": 0, + "tlr": 0.0, + "health": 60, + "status": "ideal" + }, + "src/core/planner/tests_helpers.rs": { + "lines": 81, + "test_lines": 0, + "tlr": 0.0, + "health": 60, + "status": "ideal" + }, + "src/mcp/types.rs": { + "lines": 186, + "test_lines": 0, + "tlr": 0.0, + "health": 60, + "status": "ideal" + }, + "src/mcp/registry.rs": { + "lines": 244, + "test_lines": 4, + "tlr": 0.016393442, + "health": 56, + "status": "acceptable" + }, + "src/tripwire/mod.rs": { + "lines": 18, + "test_lines": 6, + "tlr": 0.33333334, + "health": 100, + "status": "ideal" + }, + "src/core/recipe/types.rs": { + "lines": 65, + "test_lines": 0, + "tlr": 0.0, + "health": 60, + "status": "ideal" + }, + "src/core/executor/tests_drift.rs": { + "lines": 382, + "test_lines": 60, + "tlr": 0.15706806, + "health": 63, + "status": "acceptable" + }, + "src/cli/commands/validate_args.rs": { + "lines": 160, + "test_lines": 0, + "tlr": 0.0, + "health": 60, + "status": "ideal" + }, + "src/cli/commands/misc_args.rs": { + "lines": 344, + "test_lines": 0, + "tlr": 0.0, + "health": 50, + "status": "acceptable" + }, + "src/cli/test_fixtures.rs": { + "lines": 155, + "test_lines": 0, + "tlr": 0.0, + "health": 60, + "status": "ideal" + }, + "src/tripwire/drift/tests_full.rs": { + "lines": 448, + "test_lines": 70, + "tlr": 0.15625, + "health": 63, + "status": "acceptable" + }, + "src/cli/tests_misc_5.rs": { + "lines": 474, + "test_lines": 492, + "tlr": 1.0379747, + "health": 95, + "status": "acceptable" + }, + "src/core/executor/tests_localhost2.rs": { + "lines": 260, + "test_lines": 50, + "tlr": 0.1923077, + "health": 70, + "status": "acceptable" + }, + "src/cli/validate_compliance.rs": { + "lines": 329, + "test_lines": 0, + "tlr": 0.0, + "health": 45, + "status": "acceptable" + }, + "src/cli/status_resources.rs": { + "lines": 271, + "test_lines": 0, + "tlr": 0.0, + "health": 40, + "status": "acceptable" + }, + "src/core/resolver/tests_functions.rs": { + "lines": 240, + "test_lines": 260, + "tlr": 1.0833334, + "health": 95, + "status": "acceptable" + }, + "src/cli/tests_apply_16.rs": { + "lines": 474, + "test_lines": 491, + "tlr": 1.035865, + "health": 95, + "status": "acceptable" + }, + "src/cli/tests_lock_core_1.rs": { + "lines": 492, + "test_lines": 865, + "tlr": 1.7581301, + "health": 95, + "status": "acceptable" + }, + "src/cli/tests_lint.rs": { + "lines": 203, + "test_lines": 260, + "tlr": 1.2807882, + "health": 95, + "status": "acceptable" + }, + "src/cli/tests_status_core_5.rs": { + "lines": 459, + "test_lines": 496, + "tlr": 1.08061, + "health": 95, + "status": "acceptable" + }, + "src/cli/tests_fleet_ops.rs": { + "lines": 463, + "test_lines": 530, + "tlr": 1.1447084, + "health": 95, + "status": "acceptable" + }, + "src/cli/commands/state_args.rs": { + "lines": 57, + "test_lines": 0, + "tlr": 0.0, + "health": 60, + "status": "ideal" + }, + "src/cli/lock_ops.rs": { + "lines": 445, + "test_lines": 0, + "tlr": 0.0, + "health": 45, + "status": "acceptable" + }, + "src/core/executor/resource_ops.rs": { + "lines": 355, + "test_lines": 0, + "tlr": 0.0, + "health": 50, + "status": "acceptable" + }, + "src/core/tests_purifier_b.rs": { + "lines": 299, + "test_lines": 180, + "tlr": 0.6020067, + "health": 95, + "status": "acceptable" + }, + "src/core/resolver/tests_dag.rs": { + "lines": 281, + "test_lines": 200, + "tlr": 0.7117438, + "health": 95, + "status": "acceptable" + }, + "src/transport/tests_container_c.rs": { + "lines": 328, + "test_lines": 110, + "tlr": 0.33536586, + "health": 74, + "status": "acceptable" + }, + "src/resources/docker.rs": { + "lines": 88, + "test_lines": 0, + "tlr": 0.0, + "health": 55, + "status": "ideal" + }, + "src/core/resolver/resource.rs": { + "lines": 64, + "test_lines": 0, + "tlr": 0.0, + "health": 55, + "status": "ideal" + }, + "src/transport/tests_container_b.rs": { + "lines": 328, + "test_lines": 110, + "tlr": 0.33536586, + "health": 74, + "status": "acceptable" + }, + "src/core/types/tests_state.rs": { + "lines": 282, + "test_lines": 150, + "tlr": 0.5319149, + "health": 95, + "status": "acceptable" + }, + "src/cli/dispatch_validate.rs": { + "lines": 113, + "test_lines": 0, + "tlr": 0.0, + "health": 50, + "status": "ideal" + }, + "src/core/executor/tests_edge_details.rs": { + "lines": 386, + "test_lines": 80, + "tlr": 0.20725389, + "health": 66, + "status": "acceptable" + }, + "src/cli/commands/plan_args.rs": { + "lines": 84, + "test_lines": 0, + "tlr": 0.0, + "health": 60, + "status": "ideal" + }, + "src/cli/commands/apply_args.rs": { + "lines": 553, + "test_lines": 0, + "tlr": 0.0, + "health": 25, + "status": "warning" + }, + "src/core/executor/tests_rolling.rs": { + "lines": 262, + "test_lines": 50, + "tlr": 0.1908397, + "health": 70, + "status": "acceptable" + }, + "src/core/executor/machine.rs": { + "lines": 422, + "test_lines": 0, + "tlr": 0.0, + "health": 55, + "status": "acceptable" + }, + "src/cli/snapshot.rs": { + "lines": 182, + "test_lines": 0, + "tlr": 0.0, + "health": 40, + "status": "ideal" + }, + "src/cli/tests_graph_core_4.rs": { + "lines": 100, + "test_lines": 165, + "tlr": 1.65, + "health": 100, + "status": "ideal" + }, + "src/cli/commands/lock_core_args.rs": { + "lines": 271, + "test_lines": 0, + "tlr": 0.0, + "health": 55, + "status": "acceptable" + }, + "src/core/tests_secrets.rs": { + "lines": 410, + "test_lines": 360, + "tlr": 0.8780488, + "health": 95, + "status": "acceptable" + }, + "src/cli/check.rs": { + "lines": 455, + "test_lines": 0, + "tlr": 0.0, + "health": 50, + "status": "acceptable" + }, + "src/cli/graph_cross.rs": { + "lines": 372, + "test_lines": 0, + "tlr": 0.0, + "health": 50, + "status": "acceptable" + }, + "src/cli/validate_quality.rs": { + "lines": 279, + "test_lines": 0, + "tlr": 0.0, + "health": 45, + "status": "acceptable" + }, + "src/cli/helpers_time.rs": { + "lines": 96, + "test_lines": 0, + "tlr": 0.0, + "health": 45, + "status": "ideal" + }, + "src/cli/status_drift.rs": { + "lines": 435, + "test_lines": 0, + "tlr": 0.0, + "health": 45, + "status": "acceptable" + }, + "src/cli/diff_cmd.rs": { + "lines": 324, + "test_lines": 0, + "tlr": 0.0, + "health": 50, + "status": "acceptable" + }, + "src/transport/pepita.rs": { + "lines": 385, + "test_lines": 288, + "tlr": 0.74805194, + "health": 95, + "status": "acceptable" + }, + "src/core/executor/tests_localhost.rs": { + "lines": 326, + "test_lines": 80, + "tlr": 0.24539877, + "health": 69, + "status": "acceptable" + }, + "src/lib.rs": { + "lines": 12, + "test_lines": 0, + "tlr": 0.0, + "health": 60, + "status": "ideal" + }, + "src/core/executor/tests_concurrent.rs": { + "lines": 357, + "test_lines": 60, + "tlr": 0.16806723, + "health": 64, + "status": "acceptable" + }, + "src/core/executor/tests_core.rs": { + "lines": 431, + "test_lines": 90, + "tlr": 0.2088167, + "health": 66, + "status": "acceptable" + }, + "src/core/executor/tests_edge_record.rs": { + "lines": 385, + "test_lines": 50, + "tlr": 0.12987013, + "health": 62, + "status": "acceptable" + }, + "src/core/parser/resource_types.rs": { + "lines": 301, + "test_lines": 0, + "tlr": 0.0, + "health": 55, + "status": "acceptable" + }, + "src/cli/tests_status_core_6.rs": { + "lines": 461, + "test_lines": 498, + "tlr": 1.0802603, + "health": 95, + "status": "acceptable" + }, + "src/core/executor/strategies.rs": { + "lines": 120, + "test_lines": 0, + "tlr": 0.0, + "health": 40, + "status": "ideal" + }, + "src/cli/graph_extended.rs": { + "lines": 394, + "test_lines": 0, + "tlr": 0.0, + "health": 45, + "status": "acceptable" + }, + "src/cli/validate_core.rs": { + "lines": 267, + "test_lines": 0, + "tlr": 0.0, + "health": 50, + "status": "acceptable" + }, + "src/cli/secrets.rs": { + "lines": 165, + "test_lines": 0, + "tlr": 0.0, + "health": 40, + "status": "ideal" + }, + "src/cli/tests_apply_13.rs": { + "lines": 473, + "test_lines": 490, + "tlr": 1.0359408, + "health": 95, + "status": "acceptable" + }, + "src/cli/tests_misc_1.rs": { + "lines": 475, + "test_lines": 493, + "tlr": 1.0378947, + "health": 95, + "status": "acceptable" + }, + "src/cli/status_health.rs": { + "lines": 415, + "test_lines": 0, + "tlr": 0.0, + "health": 50, + "status": "acceptable" + }, + "src/cli/tests_check_2.rs": { + "lines": 425, + "test_lines": 549, + "tlr": 1.2917647, + "health": 95, + "status": "acceptable" + }, + "src/resources/tests_file.rs": { + "lines": 299, + "test_lines": 210, + "tlr": 0.70234114, + "health": 95, + "status": "acceptable" + }, + "src/resources/model.rs": { + "lines": 316, + "test_lines": 296, + "tlr": 0.93670887, + "health": 95, + "status": "acceptable" + }, + "src/core/parser/tests_arch.rs": { + "lines": 152, + "test_lines": 70, + "tlr": 0.46052632, + "health": 96, + "status": "ideal" + }, + "src/core/recipe/tests_expansion.rs": { + "lines": 381, + "test_lines": 210, + "tlr": 0.5511811, + "health": 86, + "status": "acceptable" + }, + "src/core/parser/recipes.rs": { + "lines": 52, + "test_lines": 0, + "tlr": 0.0, + "health": 50, + "status": "ideal" + }, + "src/mcp/tests_registry.rs": { + "lines": 129, + "test_lines": 100, + "tlr": 0.7751938, + "health": 100, + "status": "ideal" + }, + "src/tripwire/drift/tests_fj036.rs": { + "lines": 236, + "test_lines": 50, + "tlr": 0.21186441, + "health": 71, + "status": "acceptable" + }, + "src/cli/tests_status_core_10.rs": { + "lines": 283, + "test_lines": 559, + "tlr": 1.975265, + "health": 95, + "status": "acceptable" + }, + "src/cli/tests_plan.rs": { + "lines": 475, + "test_lines": 560, + "tlr": 1.1789473, + "health": 95, + "status": "acceptable" + }, + "src/cli/show.rs": { + "lines": 399, + "test_lines": 0, + "tlr": 0.0, + "health": 40, + "status": "acceptable" + }, + "src/tripwire/drift/tests_transport.rs": { + "lines": 252, + "test_lines": 80, + "tlr": 0.31746033, + "health": 80, + "status": "acceptable" + }, + "src/tripwire/tests_hasher_b.rs": { + "lines": 244, + "test_lines": 100, + "tlr": 0.40983605, + "health": 87, + "status": "acceptable" + }, + "src/cli/dispatch_misc.rs": { + "lines": 145, + "test_lines": 0, + "tlr": 0.0, + "health": 60, + "status": "ideal" + }, + "src/cli/drift.rs": { + "lines": 330, + "test_lines": 0, + "tlr": 0.0, + "health": 50, + "status": "acceptable" + }, + "src/tripwire/tests_hasher.rs": { + "lines": 277, + "test_lines": 250, + "tlr": 0.9025271, + "health": 95, + "status": "acceptable" + }, + "src/core/parser/tests_expansion.rs": { + "lines": 493, + "test_lines": 170, + "tlr": 0.3448276, + "health": 74, + "status": "acceptable" + }, + "src/cli/tests_validate_core_3.rs": { + "lines": 269, + "test_lines": 503, + "tlr": 1.8698884, + "health": 95, + "status": "acceptable" + }, + "src/core/parser/tests_misc_2.rs": { + "lines": 496, + "test_lines": 180, + "tlr": 0.36290324, + "health": 75, + "status": "acceptable" + }, + "src/cli/tests_snapshot.rs": { + "lines": 186, + "test_lines": 274, + "tlr": 1.4731183, + "health": 100, + "status": "ideal" + }, + "src/cli/tests_misc_10.rs": { + "lines": 343, + "test_lines": 361, + "tlr": 1.0524781, + "health": 95, + "status": "acceptable" + }, + "src/transport/mod.rs": { + "lines": 169, + "test_lines": 7, + "tlr": 0.041420117, + "health": 63, + "status": "ideal" + }, + "src/resources/pepita/tests.rs": { + "lines": 355, + "test_lines": 240, + "tlr": 0.6760563, + "health": 93, + "status": "acceptable" + }, + "src/cli/graph_impact.rs": { + "lines": 373, + "test_lines": 0, + "tlr": 0.0, + "health": 50, + "status": "acceptable" + }, + "src/transport/tests_container.rs": { + "lines": 359, + "test_lines": 140, + "tlr": 0.38997215, + "health": 77, + "status": "acceptable" + }, + "src/cli/tests_graph_core_2.rs": { + "lines": 444, + "test_lines": 511, + "tlr": 1.150901, + "health": 95, + "status": "acceptable" + }, + "src/core/planner/mod.rs": { + "lines": 329, + "test_lines": 9, + "tlr": 0.027355623, + "health": 56, + "status": "acceptable" + }, + "src/cli/status_cost.rs": { + "lines": 265, + "test_lines": 0, + "tlr": 0.0, + "health": 35, + "status": "acceptable" + }, + "src/tripwire/hasher.rs": { + "lines": 93, + "test_lines": 0, + "tlr": 0.0, + "health": 60, + "status": "ideal" + }, + "src/core/executor/tests_converge.rs": { + "lines": 340, + "test_lines": 60, + "tlr": 0.1764706, + "health": 65, + "status": "acceptable" + }, + "src/core/resolver/dag.rs": { + "lines": 151, + "test_lines": 0, + "tlr": 0.0, + "health": 55, + "status": "ideal" + }, + "src/mcp/handlers.rs": { + "lines": 491, + "test_lines": 0, + "tlr": 0.0, + "health": 50, + "status": "acceptable" + }, + "src/cli/tests_validate_core_2.rs": { + "lines": 483, + "test_lines": 569, + "tlr": 1.1780539, + "health": 95, + "status": "acceptable" + }, + "src/cli/apply_output.rs": { + "lines": 281, + "test_lines": 0, + "tlr": 0.0, + "health": 35, + "status": "acceptable" + }, + "src/tripwire/tests_anomaly.rs": { + "lines": 276, + "test_lines": 260, + "tlr": 0.942029, + "health": 95, + "status": "acceptable" + }, + "src/core/tests_purifier.rs": { + "lines": 295, + "test_lines": 210, + "tlr": 0.7118644, + "health": 95, + "status": "acceptable" + }, + "src/core/executor/tests_converge2.rs": { + "lines": 326, + "test_lines": 60, + "tlr": 0.18404908, + "health": 65, + "status": "acceptable" + }, + "src/core/types/mod.rs": { + "lines": 30, + "test_lines": 4, + "tlr": 0.13333334, + "health": 77, + "status": "ideal" + }, + "src/cli/helpers.rs": { + "lines": 86, + "test_lines": 0, + "tlr": 0.0, + "health": 55, + "status": "ideal" + }, + "src/cli/tests_apply.rs": { + "lines": 382, + "test_lines": 408, + "tlr": 1.0680628, + "health": 95, + "status": "acceptable" + }, + "src/tripwire/anomaly.rs": { + "lines": 331, + "test_lines": 0, + "tlr": 0.0, + "health": 55, + "status": "acceptable" + }, + "src/core/codegen/dispatch.rs": { + "lines": 76, + "test_lines": 0, + "tlr": 0.0, + "health": 60, + "status": "ideal" + }, + "src/cli/graph_core.rs": { + "lines": 391, + "test_lines": 0, + "tlr": 0.0, + "health": 50, + "status": "acceptable" + }, + "src/core/codegen/tests_coverage.rs": { + "lines": 269, + "test_lines": 110, + "tlr": 0.40892193, + "health": 87, + "status": "acceptable" + }, + "src/cli/tests_helpers.rs": { + "lines": 162, + "test_lines": 269, + "tlr": 1.6604939, + "health": 100, + "status": "ideal" + }, + "src/transport/ssh.rs": { + "lines": 203, + "test_lines": 0, + "tlr": 0.0, + "health": 50, + "status": "acceptable" + }, + "src/cli/tests_apply_10.rs": { + "lines": 470, + "test_lines": 487, + "tlr": 1.0361702, + "health": 95, + "status": "acceptable" + }, + "src/cli/tests_helpers_time.rs": { + "lines": 38, + "test_lines": 46, + "tlr": 1.2105263, + "health": 100, + "status": "ideal" + }, + "src/resources/tests_docker_b.rs": { + "lines": 275, + "test_lines": 160, + "tlr": 0.58181816, + "health": 95, + "status": "acceptable" + }, + "src/core/executor/helpers.rs": { + "lines": 224, + "test_lines": 0, + "tlr": 0.0, + "health": 45, + "status": "acceptable" + }, + "src/cli/tests_helpers_state.rs": { + "lines": 152, + "test_lines": 190, + "tlr": 1.25, + "health": 100, + "status": "ideal" + }, + "src/cli/commands/graph_args.rs": { + "lines": 172, + "test_lines": 0, + "tlr": 0.0, + "health": 60, + "status": "ideal" + }, + "src/cli/dispatch_lock.rs": { + "lines": 71, + "test_lines": 0, + "tlr": 0.0, + "health": 60, + "status": "ideal" + }, + "src/tripwire/drift/tests_edge_fj132_b.rs": { + "lines": 272, + "test_lines": 90, + "tlr": 0.33088234, + "health": 81, + "status": "acceptable" + }, + "src/cli/tests_history.rs": { + "lines": 242, + "test_lines": 348, + "tlr": 1.4380165, + "health": 95, + "status": "acceptable" + }, + "src/cli/dispatch_notify.rs": { + "lines": 230, + "test_lines": 0, + "tlr": 0.0, + "health": 55, + "status": "acceptable" + }, + "src/cli/lock_merge.rs": { + "lines": 214, + "test_lines": 0, + "tlr": 0.0, + "health": 35, + "status": "acceptable" + }, + "src/cli/tests_status_core_1.rs": { + "lines": 457, + "test_lines": 494, + "tlr": 1.0809628, + "health": 95, + "status": "acceptable" + }, + "src/cli/status_fleet.rs": { + "lines": 342, + "test_lines": 0, + "tlr": 0.0, + "health": 40, + "status": "acceptable" + }, + "src/core/executor/mod.rs": { + "lines": 222, + "test_lines": 18, + "tlr": 0.08108108, + "health": 56, + "status": "acceptable" + }, + "src/cli/tests_misc_2.rs": { + "lines": 377, + "test_lines": 454, + "tlr": 1.204244, + "health": 95, + "status": "acceptable" + }, + "src/cli/destroy.rs": { + "lines": 239, + "test_lines": 0, + "tlr": 0.0, + "health": 45, + "status": "acceptable" + }, + "src/copia/tests.rs": { + "lines": 307, + "test_lines": 260, + "tlr": 0.8469055, + "health": 95, + "status": "acceptable" + }, + "src/core/executor/tests_hooks.rs": { + "lines": 317, + "test_lines": 70, + "tlr": 0.22082019, + "health": 67, + "status": "acceptable" + }, + "src/tripwire/tests_eventlog_b.rs": { + "lines": 265, + "test_lines": 170, + "tlr": 0.6415094, + "health": 95, + "status": "acceptable" + }, + "src/core/executor/tests_advanced.rs": { + "lines": 489, + "test_lines": 90, + "tlr": 0.18404908, + "health": 65, + "status": "acceptable" + }, + "src/cli/plan.rs": { + "lines": 246, + "test_lines": 0, + "tlr": 0.0, + "health": 45, + "status": "acceptable" + }, + "src/cli/tests_status_core_7.rs": { + "lines": 461, + "test_lines": 498, + "tlr": 1.0802603, + "health": 95, + "status": "acceptable" + }, + "src/resources/gpu.rs": { + "lines": 285, + "test_lines": 285, + "tlr": 1.0, + "health": 95, + "status": "acceptable" + }, + "src/core/recipe/validation.rs": { + "lines": 34, + "test_lines": 0, + "tlr": 0.0, + "health": 55, + "status": "ideal" + }, + "src/core/parser/tests_includes.rs": { + "lines": 386, + "test_lines": 110, + "tlr": 0.2849741, + "health": 71, + "status": "acceptable" + }, + "src/tripwire/eventlog.rs": { + "lines": 105, + "test_lines": 0, + "tlr": 0.0, + "health": 60, + "status": "ideal" + }, + "src/resources/tests_file_b.rs": { + "lines": 335, + "test_lines": 270, + "tlr": 0.80597013, + "health": 95, + "status": "acceptable" + }, + "src/core/types/state_types.rs": { + "lines": 298, + "test_lines": 0, + "tlr": 0.0, + "health": 55, + "status": "acceptable" + }, + "src/cli/dispatch_graph.rs": { + "lines": 127, + "test_lines": 0, + "tlr": 0.0, + "health": 50, + "status": "ideal" + }, + "src/cli/status_queries.rs": { + "lines": 369, + "test_lines": 0, + "tlr": 0.0, + "health": 45, + "status": "acceptable" + }, + "src/cli/tests_init.rs": { + "lines": 451, + "test_lines": 687, + "tlr": 1.5232816, + "health": 95, + "status": "acceptable" + }, + "src/cli/tests_status_queries.rs": { + "lines": 110, + "test_lines": 106, + "tlr": 0.96363634, + "health": 100, + "status": "ideal" + }, + "src/cli/dispatch_status.rs": { + "lines": 246, + "test_lines": 0, + "tlr": 0.0, + "health": 45, + "status": "acceptable" + }, + "src/core/executor/machine_wave.rs": { + "lines": 147, + "test_lines": 0, + "tlr": 0.0, + "health": 55, + "status": "ideal" + }, + "src/copia/mod.rs": { + "lines": 239, + "test_lines": 2, + "tlr": 0.008368201, + "health": 55, + "status": "acceptable" + }, + "src/core/resolver/tests_resource.rs": { + "lines": 480, + "test_lines": 210, + "tlr": 0.4375, + "health": 80, + "status": "acceptable" + }, + "src/mcp/tests_handlers_more.rs": { + "lines": 349, + "test_lines": 160, + "tlr": 0.45845273, + "health": 81, + "status": "acceptable" + }, + "src/core/resolver/tests_proptest.rs": { + "lines": 77, + "test_lines": 30, + "tlr": 0.38961038, + "health": 100, + "status": "ideal" + }, + "src/cli/commands/status_args.rs": { + "lines": 312, + "test_lines": 0, + "tlr": 0.0, + "health": 50, + "status": "acceptable" + }, + "src/cli/tests_graph_core.rs": { + "lines": 455, + "test_lines": 600, + "tlr": 1.3186814, + "health": 95, + "status": "acceptable" + }, + "src/cli/observe.rs": { + "lines": 371, + "test_lines": 0, + "tlr": 0.0, + "health": 50, + "status": "acceptable" + }, + "src/cli/validate_policy.rs": { + "lines": 215, + "test_lines": 0, + "tlr": 0.0, + "health": 50, + "status": "acceptable" + }, + "src/cli/tests_apply_helpers.rs": { + "lines": 262, + "test_lines": 409, + "tlr": 1.5610687, + "health": 95, + "status": "acceptable" + }, + "src/transport/local.rs": { + "lines": 149, + "test_lines": 266, + "tlr": 1.7852349, + "health": 100, + "status": "ideal" + }, + "src/core/state/tests_basic.rs": { + "lines": 354, + "test_lines": 240, + "tlr": 0.6779661, + "health": 93, + "status": "acceptable" + }, + "src/cli/commands/mod.rs": { + "lines": 484, + "test_lines": 0, + "tlr": 0.0, + "health": 45, + "status": "acceptable" + }, + "src/cli/print_helpers.rs": { + "lines": 237, + "test_lines": 0, + "tlr": 0.0, + "health": 50, + "status": "acceptable" + }, + "src/core/parser/tests_misc_3.rs": { + "lines": 428, + "test_lines": 150, + "tlr": 0.3504673, + "health": 75, + "status": "acceptable" + }, + "src/cli/tests_misc_6.rs": { + "lines": 469, + "test_lines": 487, + "tlr": 1.0383795, + "health": 95, + "status": "acceptable" + }, + "src/cli/status_convergence.rs": { + "lines": 495, + "test_lines": 0, + "tlr": 0.0, + "health": 45, + "status": "acceptable" + }, + "src/cli/status_failures.rs": { + "lines": 396, + "test_lines": 0, + "tlr": 0.0, + "health": 45, + "status": "acceptable" + }, + "src/cli/tests_apply_4.rs": { + "lines": 474, + "test_lines": 491, + "tlr": 1.035865, + "health": 95, + "status": "acceptable" + } + } +} \ No newline at end of file diff --git a/.pmat/hooks-cache/metrics.json b/.pmat/hooks-cache/metrics.json new file mode 100644 index 00000000..f0d2965f --- /dev/null +++ b/.pmat/hooks-cache/metrics.json @@ -0,0 +1,9 @@ +{ + "total_runs": 0, + "cache_hits": 0, + "cache_misses": 0, + "avg_cache_hit_time_ms": 0.0, + "avg_cache_miss_time_ms": 0.0, + "last_full_rebuild": null, + "cache_size_bytes": 0 +} \ No newline at end of file diff --git a/.pmat/lint-cache.txt b/.pmat/lint-cache.txt new file mode 100644 index 00000000..e43d1d53 --- /dev/null +++ b/.pmat/lint-cache.txt @@ -0,0 +1 @@ +cargo clippy --all-targets -- -D warnings diff --git a/.pmat/metrics/dependencies.json b/.pmat/metrics/dependencies.json new file mode 100644 index 00000000..6b240605 --- /dev/null +++ b/.pmat/metrics/dependencies.json @@ -0,0 +1,191 @@ +{ + "direct_count": 22, + "transitive_count": 303, + "timestamp": "2026-03-02T22:01:11.932460072+00:00", + "previous": { + "direct_count": 22, + "transitive_count": 303, + "timestamp": "2026-03-02T16:26:53.870841423+00:00", + "previous": { + "direct_count": 22, + "transitive_count": 303, + "timestamp": "2026-03-02T16:01:20.579354498+00:00", + "previous": { + "direct_count": 22, + "transitive_count": 303, + "timestamp": "2026-03-02T15:28:18.929091063+00:00", + "previous": { + "direct_count": 22, + "transitive_count": 303, + "timestamp": "2026-03-02T15:17:17.806135364+00:00", + "previous": { + "direct_count": 22, + "transitive_count": 303, + "timestamp": "2026-03-02T14:19:08.946268651+00:00", + "previous": { + "direct_count": 21, + "transitive_count": 303, + "timestamp": "2026-03-02T11:29:48.494454749+00:00", + "previous": { + "direct_count": 21, + "transitive_count": 303, + "timestamp": "2026-03-02T11:08:08.918130871+00:00", + "previous": { + "direct_count": 17, + "transitive_count": 298, + "timestamp": "2026-03-01T22:35:49.988823446+00:00", + "previous": { + "direct_count": 17, + "transitive_count": 298, + "timestamp": "2026-03-01T22:35:37.226397358+00:00", + "previous": { + "direct_count": 17, + "transitive_count": 298, + "timestamp": "2026-03-01T22:28:12.390289280+00:00", + "previous": { + "direct_count": 17, + "transitive_count": 298, + "timestamp": "2026-03-01T22:28:07.904620716+00:00", + "previous": { + "direct_count": 17, + "transitive_count": 298, + "timestamp": "2026-03-01T22:28:02.416682757+00:00", + "previous": { + "direct_count": 17, + "transitive_count": 298, + "timestamp": "2026-02-28T17:06:18.973540984+00:00", + "previous": { + "direct_count": 17, + "transitive_count": 298, + "timestamp": "2026-02-28T17:06:14.574717321+00:00", + "previous": { + "direct_count": 17, + "transitive_count": 298, + "timestamp": "2026-02-28T17:06:10.115741971+00:00", + "previous": { + "direct_count": 17, + "transitive_count": 298, + "timestamp": "2026-02-28T17:06:05.540403322+00:00", + "previous": { + "direct_count": 17, + "transitive_count": 298, + "timestamp": "2026-02-27T21:46:18.483980662+00:00", + "previous": { + "direct_count": 17, + "transitive_count": 298, + "timestamp": "2026-02-27T21:46:14.201792319+00:00", + "previous": { + "direct_count": 17, + "transitive_count": 298, + "timestamp": "2026-02-27T21:46:07.068517166+00:00", + "previous": { + "direct_count": 17, + "transitive_count": 298, + "timestamp": "2026-02-27T21:38:39.818393117+00:00", + "previous": { + "direct_count": 17, + "transitive_count": 298, + "timestamp": "2026-02-27T21:38:35.404005720+00:00", + "previous": { + "direct_count": 17, + "transitive_count": 298, + "timestamp": "2026-02-27T21:38:05.633895835+00:00", + "previous": { + "direct_count": 17, + "transitive_count": 298, + "timestamp": "2026-02-27T21:37:59.712068375+00:00", + "previous": { + "direct_count": 17, + "transitive_count": 298, + "timestamp": "2026-02-27T21:28:02.794621281+00:00", + "previous": { + "direct_count": 17, + "transitive_count": 298, + "timestamp": "2026-02-27T13:47:46.445481024+00:00", + "previous": { + "direct_count": 6, + "transitive_count": 40, + "timestamp": "2026-02-17T08:04:59.131017597+00:00", + "previous": { + "direct_count": 6, + "transitive_count": 40, + "timestamp": "2026-02-17T08:04:55.964668243+00:00", + "previous": { + "direct_count": 6, + "transitive_count": 40, + "timestamp": "2026-02-17T08:04:52.709684566+00:00", + "previous": { + "direct_count": 6, + "transitive_count": 40, + "timestamp": "2026-02-17T08:04:49.279378933+00:00", + "previous": { + "direct_count": 6, + "transitive_count": 40, + "timestamp": "2026-02-17T08:02:22.553662358+00:00", + "previous": { + "direct_count": 6, + "transitive_count": 40, + "timestamp": "2026-02-17T08:01:17.711105988+00:00", + "previous": { + "direct_count": 6, + "transitive_count": 40, + "timestamp": "2026-02-17T07:58:57.752249339+00:00", + "previous": { + "direct_count": 6, + "transitive_count": 40, + "timestamp": "2026-02-17T07:57:12.918756768+00:00", + "previous": { + "direct_count": 6, + "transitive_count": 40, + "timestamp": "2026-02-17T07:55:44.698984849+00:00", + "previous": { + "direct_count": 6, + "transitive_count": 40, + "timestamp": "2026-02-17T07:55:41.132876137+00:00", + "previous": { + "direct_count": 6, + "transitive_count": 40, + "timestamp": "2026-02-17T07:52:48.276976660+00:00", + "previous": { + "direct_count": 6, + "transitive_count": 40, + "timestamp": "2026-02-17T07:52:35.628599+00:00", + "previous": null + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } +} \ No newline at end of file diff --git a/.pmat/project.toml b/.pmat/project.toml new file mode 100644 index 00000000..741e8ac5 --- /dev/null +++ b/.pmat/project.toml @@ -0,0 +1,4 @@ +[pmat] +version = "3.6.1" +last_compliance_check = "2026-03-02T22:01:13.405667522Z" +auto_update = false diff --git a/.pmat/workspace.db b/.pmat/workspace.db new file mode 100644 index 00000000..22718627 Binary files /dev/null and b/.pmat/workspace.db differ diff --git a/.pmat/workspace.idx/manifest.json b/.pmat/workspace.idx/manifest.json new file mode 100644 index 00000000..7bdcd4d3 --- /dev/null +++ b/.pmat/workspace.idx/manifest.json @@ -0,0 +1,63 @@ +{ + "version": "1.4.0", + "built_at": "2026-02-25T15:44:46.602197311+00:00", + "project_root": "/home/noah/src/forjar", + "function_count": 232, + "file_count": 49, + "languages": [ + "Rust" + ], + "avg_tdg_score": 0.23780192, + "file_checksums": { + "src/resources/mount.rs": "9d320c46137288e2e99c0750c6c67111f0e364db7c75499058788bac4a39aebf", + "examples/parse_and_plan.rs": "e02dd5813db8ce9426d3038a24a8cbd129e753de4e57630fbaa872b686c7a10b", + "examples/state_management.rs": "f59be77c50f3a54522dee4c421f271bba4e36033ec2c0013173368733f33d7a6", + "examples/validation.rs": "8346d643a4450c0aa664b04298cd5e3b8483e74ae34344148daa81d625359f30", + "src/core/executor.rs": "d8c3a73a31b3c6895e88f60a1e44a534566f250c59b49d7c4d734f6e8cdaeedd", + "examples/blake3_hashing.rs": "ccf6727357b9f7774670eba775bfb4ef8ae608dcff6acbf70a4616e73d90f2d4", + "examples/container_transport.rs": "03a9a741dbcb05d75a335dd97099bbcb2021d3b7badd7cec506d15202868b370", + "examples/drift_detection.rs": "6319b9280486dd5580425f9e93df747b1a32d95f0ff06c5bce38f9c0e4ebcd1d", + "src/transport/container.rs": "4ec400826f0e619d56d4b7360aba7b77b44c50e9f641d268746d39dc64279aae", + "tests/container_transport.rs": "ed21d83eb2b8fedc6914022f2353497cf7970a656ff89779767b08d375b341ce", + "src/tripwire/mod.rs": "a54fbdd694f4ecbdd35e25d1e3f60777f0d8ff34e763018c07175b93e7ef1661", + "src/core/state.rs": "c389134493e84feddb3355e04f932657d6235d05383b9426fa8f3f81be53f530", + "src/tripwire/drift.rs": "e13c985fe98061060c0d3c56a0a14b3ca1c35c51f8105d234b8cafb33f08ab21", + "examples/resource_scripts.rs": "e3bbfada2d6b3de863e540174f554b66c7e2112c25ebc199bf6df47450152d4d", + "src/main.rs": "7f6f57d99021e7501db8bfcffc09513c31b49fe567cdd2a60631e1af9e445a92", + "examples/multi_machine.rs": "04b230f6137c1cf850adeb484e49ffe4da9df5899f879ec799441db5ff51d36c", + "src/core/mod.rs": "90140a16df4b4d0743d48ef465d10e3e5d9f200eaf0542043d41eabadc9d8af0", + "src/tripwire/eventlog.rs": "0603cbae43e9ca4aef82599d68cd2a9cc3ffed8f45b7bc2fba27a7000c7f550c", + "build.rs": "d68c4b581bc2211c97f952c4cd1aca94426b84e419e52071a421118e381f833c", + "src/transport/local.rs": "fd3d416041ed3449ba03b5db81d143a3140881313eaeaaddab25ce2e7184567b", + "src/core/resolver.rs": "2600cee5dad7fcaf67f4f9915f184712fb0c0ba330bfed77d018df28d07a1ec2", + "src/core/types.rs": "144b835e031d4631753769af26769306e8f0b4eede66f67a5875dda45a296996", + "src/resources/file.rs": "b5179a50f86b30085a413c13b596db6f88e24ec0c93013121393199bc9b633ec", + "examples/full_stack_deploy.rs": "56839d0659adcec2a1d782f0008bbc14a9c272f252bfd46bb5cd7dbe2164032b", + "src/resources/user.rs": "52f2f78aa9f61352a8d2c6b2b99cf8e8fc771ef5e4b65d120b498c3c0928dce1", + "examples/recipe_expansion.rs": "86024e836a99cac3432954bd6bb22bf8c5bbeea7ea22e90457ef213ff07ad7dd", + "src/cli/mod.rs": "f14102f14211201168145f67e5c99165a2c6668d8a92082b01a0ccb0a5f1e249", + "examples/shell_purifier.rs": "b15af8504378687b946c011e667246ea5e45340ce73ecf81441416d8ea16a120", + "examples/codegen_scripts.rs": "58fd2706856e61b8c6227551e977427a62b53bb79a9c55d97829b4040f0d0f78", + "examples/event_logging.rs": "a824a3e869cc765c381607a296288475026397ea7d5f90a33965d0902109ba22", + "src/lib.rs": "75e8bfda89c743aa07eb62584ef64c84d4ade0217ee73ee8f35925a2c8d169ed", + "src/resources/mod.rs": "8944204133e4380534442f37e9729fbf67e0c16da91ca49b0216bbe142a5348e", + "src/tripwire/hasher.rs": "afecfa7ff0e9ff38ff0eae1159a756171eb2afed398c1d4e9609168e390ca44b", + "src/transport/ssh.rs": "6c619aebad06424b50a8a14b348090a1b9a95bde61a3a4422940d1af567df819", + "examples/arch_filtering.rs": "0c7b4be49e9498d6b6a8e4277cf7ceb27c84887a8f2dfb8224b20f4cbbe2083c", + "examples/template_resolution.rs": "fed4c713fe1143b4b6015978ba085cfddb3e62bff74fada57d4196edfe34e2b7", + "src/resources/cron.rs": "642f6429925c36210834d0c28794c891a8696608c2323be1501ae4d8b560ebae", + "src/resources/network.rs": "6d7952b38ff8e0caecbd455da6bc436614979601390d3376532368efcaa07de1", + "benches/core_bench.rs": "f3a19a6eec42513e54e42467bc6b29bcc3184da4b429991a98870810922402b0", + "src/core/purifier.rs": "e0ea799f1717b7cc7cff3890aeb1065054ee36eb8c3a4204b6a24322bdd06e2a", + "src/resources/package.rs": "1da78e48e4715590ca6fad40fc48f281576b99390ce1c4e25711a1420cd1647e", + "src/core/codegen.rs": "f921218ada7f31cf8b3fb04d81388193c22ad1b834154c1d21f87cbc41f52b6f", + "src/core/planner.rs": "5ac29315f7203cece2c90bf7d6f57ba6c4dca5fc05f94e90a78fe1196ca8c083", + "src/resources/docker.rs": "1c790c78cd79c624950be4621e9c68efa24d82d93e31a096088e5f438e8f1a9a", + "examples/user_management.rs": "778853f748c4e51e356d3964dc284e1644806b380bda3393d2d02dd0ac2137d6", + "src/transport/mod.rs": "b72402b7173f841944cce3c0c9af119bd74699f0c6c9a7da9ee8a4c02aba608a", + "src/resources/service.rs": "d6a93d344c222da855ea3585a693982b27852f7e2b0ccc13b259d4bf7075d853", + "src/core/parser.rs": "d780e5bea297efb50e24c434a918da3ca031f883bcc4d30cb5fc9e7a38050672", + "src/core/recipe.rs": "9fe9c62c5bd3a0ae0ba0181d3441a7797aa5d879cb9b2af0525b21c1870c1f85" + }, + "last_incremental_changes": 0 +} \ No newline at end of file diff --git a/CLAUDE.md b/CLAUDE.md index d709cd1f..204c2a90 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -17,7 +17,11 @@ pmat query --coverage-gaps --limit 20 --exclude-tests ## Quality Gates +- **No source file over 500 lines** — split into module directories or extract tests + - Exception: `src/cli/commands/apply_args.rs` (declarative struct, no logic) + - Pre-commit hook enforces complexity; `pmat comply check` enforces file health - All functions must be TDG grade A (complexity <= 10) +- Cognitive complexity per function <= 25 (pre-commit enforced) - Minimum 95% line coverage (`cargo llvm-cov`) - Zero clippy warnings (`cargo clippy -- -D warnings`) - Never use `cargo tarpaulin` — use `cargo llvm-cov` instead diff --git a/Cargo.lock b/Cargo.lock index 9eb5bfff..0ade53eb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -137,9 +137,18 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.101" +version = "1.0.102" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f0e0fee31ef5ed1ba1316088939cea399010ed7731dba877ed44aeb407a75ea" +checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c" + +[[package]] +name = "arbitrary" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3d036a3c4ab069c7b410a2ce876bd74808d2d0888a82667669f8e783a898bf1" +dependencies = [ + "derive_arbitrary", +] [[package]] name = "arc-swap" @@ -199,12 +208,13 @@ checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] name = "bashrs" -version = "6.64.0" +version = "6.65.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6debbdd8d81178fd541c548d349d9d939bff976c9063ffa738b34b85c6f1732c" +checksum = "8499beaaa9138c79e96bb09bd650b1b03823886387f4f720223217c0e61ba34c" dependencies = [ "anyhow", "base64 0.22.1", + "batuta-common", "blake3", "chrono", "clap", @@ -216,6 +226,7 @@ dependencies = [ "proc-macro2", "quote", "rand 0.9.2", + "rand_chacha 0.9.0", "regex", "rustyline", "schemars", @@ -242,6 +253,16 @@ dependencies = [ "serde", ] +[[package]] +name = "batuta-common" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97eb4c76189d694d880ab9affaf6087fb88bc7afe2de7c7e9c9452745788f478" +dependencies = [ + "lz4_flex", + "zstd", +] + [[package]] name = "bech32" version = "0.9.1" @@ -294,9 +315,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.19.1" +version = "3.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dd9dc738b7a8311c7ade152424974d8115f2cdad61e8dab8dac9f2362298510" +checksum = "5d20789868f4b01b2f2caec9f5c4e0213b41e3e5702a50157d699ae31ced2fcb" [[package]] name = "bytes" @@ -304,6 +325,25 @@ version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33" +[[package]] +name = "bzip2" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49ecfb22d906f800d4fe833b6282cf4dc1c298f5057ca0b5445e5c209735ca47" +dependencies = [ + "bzip2-sys", +] + +[[package]] +name = "bzip2-sys" +version = "0.1.13+1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "225bff33b2141874fe80d71e07d6eec4f85c5c216453dd96388240f96e1acc14" +dependencies = [ + "cc", + "pkg-config", +] + [[package]] name = "cast" version = "0.3.0" @@ -412,9 +452,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.58" +version = "4.5.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63be97961acde393029492ce0be7a1af7e323e6bae9511ebfac33751be5e6806" +checksum = "2797f34da339ce31042b27d23607e051786132987f595b02ba4f6a6dffb7030a" dependencies = [ "clap_builder", "clap_derive", @@ -422,9 +462,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.58" +version = "4.5.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f13174bda5dfd69d7e947827e5af4b0f2f94a4a3ee92912fba07a66150f21e2" +checksum = "24a241312cea5059b13574bb9b3861cabf758b879c15190b37b6d6fd63ab6876" dependencies = [ "anstream", "anstyle", @@ -656,6 +696,17 @@ version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d7a1e2f27636f116493b8b860f5546edb47c8d8f8ea73e1d2a20be88e28d1fea" +[[package]] +name = "derive_arbitrary" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e567bd82dcff979e4b03460c307b3cdc9e96fde3d73bed1496d2bc75d9dd62a" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "digest" version = "0.10.7" @@ -859,13 +910,14 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] name = "forjar" -version = "0.1.0" +version = "1.1.0" dependencies = [ "age", "async-trait", "base64 0.22.1", "bashrs", "blake3", + "bzip2", "clap", "clap_complete", "criterion", @@ -875,13 +927,17 @@ dependencies = [ "proptest", "provable-contracts", "provable-contracts-macros", + "regex", "rustc-hash 2.1.1", "schemars", "serde", "serde_json", "serde_yaml_ng", + "tar", "tempfile", "tokio", + "zip", + "zstd", ] [[package]] @@ -1023,20 +1079,20 @@ dependencies = [ "cfg-if", "js-sys", "libc", - "r-efi", + "r-efi 5.3.0", "wasip2", "wasm-bindgen", ] [[package]] name = "getrandom" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "139ef39800118c7683f2fd3c98c1b23c09ae076556b435f8e9064ae108aaeeec" +checksum = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555" dependencies = [ "cfg-if", "libc", - "r-efi", + "r-efi 6.0.0", "wasip2", "wasip3", ] @@ -1130,11 +1186,11 @@ dependencies = [ [[package]] name = "home" -version = "0.5.11" +version = "0.5.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "589533453244b0995c858700322199b2becb13b627df2851f64a2775d024abcf" +checksum = "cc627f471c528ff0c4a49e1d5e60450c8f6461dd6d10ba9dcd3a61d3dff7728d" dependencies = [ - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] @@ -1502,9 +1558,9 @@ checksum = "4b3f7cef34251886990511df1c61443aa928499d598a9473929ab5a90a527304" [[package]] name = "ipnet" -version = "2.11.0" +version = "2.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" +checksum = "d98f6fed1fde3f8c21bc40a1abb88dd75e67924f9cffc3ef95607bad8017f8e2" [[package]] name = "iri-string" @@ -1560,9 +1616,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.85" +version = "0.3.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c942ebf8e95485ca0d52d97da7c5a2c387d0e7f0ba4c35e93bfcaee045955b3" +checksum = "b49715b7073f385ba4bc528e5747d02e66cb39c6146efb66b781f131f0fb399c" dependencies = [ "once_cell", "wasm-bindgen", @@ -1588,20 +1644,21 @@ checksum = "6800badb6cb2082ffd7b6a67e6125bb39f18782f793520caee8cb8846be06112" [[package]] name = "libredox" -version = "0.1.12" +version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d0b95e02c851351f877147b7deea7b1afb1df71b63aa5f8270716e0c5720616" +checksum = "1744e39d1d6a9948f4f388969627434e31128196de472883b39f148769bfe30a" dependencies = [ "bitflags", "libc", - "redox_syscall 0.7.2", + "plain", + "redox_syscall 0.7.3", ] [[package]] name = "linux-raw-sys" -version = "0.11.0" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" +checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53" [[package]] name = "litemap" @@ -1630,6 +1687,12 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" +[[package]] +name = "lz4_flex" +version = "0.11.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08ab2867e3eeeca90e844d1940eab391c9dc5228783db2ed999acbc0a9ed375a" + [[package]] name = "matchers" version = "0.2.0" @@ -1940,18 +2003,18 @@ dependencies = [ [[package]] name = "pin-project" -version = "1.1.10" +version = "1.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a" +checksum = "f1749c7ed4bcaf4c3d0a3efc28538844fb29bcdd7d2b67b2be7e20ba861ff517" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.10" +version = "1.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" +checksum = "d9b20ed30f105399776b9c883e68e536ef602a16ae6f596d2c473591d6ad64c6" dependencies = [ "proc-macro2", "quote", @@ -1960,9 +2023,9 @@ dependencies = [ [[package]] name = "pin-project-lite" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" +checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" [[package]] name = "pin-utils" @@ -1976,6 +2039,12 @@ version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" +[[package]] +name = "plain" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6" + [[package]] name = "plotters" version = "0.3.7" @@ -2141,7 +2210,7 @@ dependencies = [ [[package]] name = "provable-contracts" -version = "0.1.0" +version = "0.1.1" dependencies = [ "serde", "serde_json", @@ -2151,7 +2220,7 @@ dependencies = [ [[package]] name = "provable-contracts-macros" -version = "0.1.0" +version = "0.1.1" dependencies = [ "proc-macro2", "quote", @@ -2234,6 +2303,12 @@ version = "5.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" +[[package]] +name = "r-efi" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" + [[package]] name = "radix_trie" version = "0.2.1" @@ -2343,9 +2418,9 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.7.2" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d94dd2f7cd932d4dc02cc8b2b50dfd38bd079a4e5d79198b99743d7fcf9a4b4" +checksum = "6ce70a74e890531977d37e532c34d45e9055d2409ed08ddba14529471ed0be16" dependencies = [ "bitflags", ] @@ -2375,9 +2450,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.8.9" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a96887878f22d7bad8a3b6dc5b7440e0ada9a245242924394987b21cf2210a4c" +checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a" [[package]] name = "reqwest" @@ -2494,9 +2569,9 @@ dependencies = [ [[package]] name = "rustix" -version = "1.1.3" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "146c9e247ccc180c1f61615433868c99f3de3ae256a30a43b49f67c2d9171f34" +checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190" dependencies = [ "bitflags", "errno", @@ -2928,9 +3003,9 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "syn" -version = "2.0.116" +version = "2.0.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3df424c70518695237746f84cede799c9c58fcb37450d7b23716568cc8bc69cb" +checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" dependencies = [ "proc-macro2", "quote", @@ -3005,12 +3080,12 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.25.0" +version = "3.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0136791f7c95b1f6dd99f9cc786b91bb81c3800b639b3478e561ddb7be95e5f1" +checksum = "82a72c767771b47409d2345987fda8628641887d5466101319899796367354a0" dependencies = [ "fastrand", - "getrandom 0.4.1", + "getrandom 0.4.2", "once_cell", "rustix", "windows-sys 0.61.2", @@ -3103,9 +3178,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.49.0" +version = "1.50.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72a2903cd7736441aac9df9d7688bd0ce48edccaadf181c3b90be801e81d3d86" +checksum = "27ad5e34374e03cfffefc301becb44e9dc3c17584f414349ebe29ed26661822d" dependencies = [ "bytes", "libc", @@ -3120,9 +3195,9 @@ dependencies = [ [[package]] name = "tokio-macros" -version = "2.6.0" +version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5" +checksum = "5c55a2eff8b69ce66c84f85e1da1c233edc36ceb85a2058d11b0d6a3c7e7569c" dependencies = [ "proc-macro2", "quote", @@ -3532,7 +3607,7 @@ version = "1.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b672338555252d43fd2240c714dc444b8c6fb0a5c5335e65a07bba7742735ddb" dependencies = [ - "getrandom 0.4.1", + "getrandom 0.4.2", "js-sys", "serde_core", "wasm-bindgen", @@ -3610,9 +3685,9 @@ dependencies = [ [[package]] name = "wasm-bindgen" -version = "0.2.108" +version = "0.2.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64024a30ec1e37399cf85a7ffefebdb72205ca1c972291c51512360d90bd8566" +checksum = "6532f9a5c1ece3798cb1c2cfdba640b9b3ba884f5db45973a6f442510a87d38e" dependencies = [ "cfg-if", "once_cell", @@ -3623,9 +3698,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.58" +version = "0.4.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70a6e77fd0ae8029c9ea0063f87c46fde723e7d887703d74ad2616d792e51e6f" +checksum = "e9c5522b3a28661442748e09d40924dfb9ca614b21c00d3fd135720e48b67db8" dependencies = [ "cfg-if", "futures-util", @@ -3637,9 +3712,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.108" +version = "0.2.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "008b239d9c740232e71bd39e8ef6429d27097518b6b30bdf9086833bd5b6d608" +checksum = "18a2d50fcf105fb33bb15f00e7a77b772945a2ee45dcf454961fd843e74c18e6" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -3647,9 +3722,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.108" +version = "0.2.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5256bae2d58f54820e6490f9839c49780dff84c65aeab9e772f15d5f0e913a55" +checksum = "03ce4caeaac547cdf713d280eda22a730824dd11e6b8c3ca9e42247b25c631e3" dependencies = [ "bumpalo", "proc-macro2", @@ -3660,9 +3735,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.108" +version = "0.2.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f01b580c9ac74c8d8f0c0e4afb04eeef2acf145458e52c03845ee9cd23e3d12" +checksum = "75a326b8c223ee17883a4251907455a2431acc2791c98c26279376490c378c16" dependencies = [ "unicode-ident", ] @@ -3703,9 +3778,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.85" +version = "0.3.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "312e32e551d92129218ea9a2452120f4aabc03529ef03e4d0d82fb2780608598" +checksum = "854ba17bb104abfb26ba36da9729addc7ce7f06f5c0f90f3c391f8461cca21f9" dependencies = [ "js-sys", "wasm-bindgen", @@ -4199,18 +4274,18 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.8.39" +version = "0.8.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db6d35d663eadb6c932438e763b262fe1a70987f9ae936e60158176d710cae4a" +checksum = "a789c6e490b576db9f7e6b6d661bcc9799f7c0ac8352f56ea20193b2681532e5" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.39" +version = "0.8.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4122cd3169e94605190e77839c9a40d40ed048d305bfdc146e7df40ab0f3e517" +checksum = "f65c489a7071a749c849713807783f70672b28094011623e200cb86dcb835953" dependencies = [ "proc-macro2", "quote", @@ -4292,12 +4367,43 @@ dependencies = [ "syn", ] +[[package]] +name = "zip" +version = "2.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fabe6324e908f85a1c52063ce7aa26b68dcb7eb6dbc83a2d148403c9bc3eba50" +dependencies = [ + "arbitrary", + "bzip2", + "crc32fast", + "crossbeam-utils", + "displaydoc", + "flate2", + "indexmap", + "memchr", + "thiserror 2.0.18", + "zopfli", + "zstd", +] + [[package]] name = "zmij" version = "1.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" +[[package]] +name = "zopfli" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f05cd8797d63865425ff89b5c4a48804f35ba0ce8d125800027ad6017d2b5249" +dependencies = [ + "bumpalo", + "crc32fast", + "log", + "simd-adler32", +] + [[package]] name = "zstd" version = "0.13.3" diff --git a/Cargo.toml b/Cargo.toml index 599c865a..80b44379 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,8 +1,8 @@ [package] name = "forjar" -version = "0.1.0" +version = "1.1.1" edition = "2021" -rust-version = "1.87.0" +rust-version = "1.88.0" authors = ["Pragmatic AI Labs"] description = "Rust-native Infrastructure as Code — bare-metal first, BLAKE3 state, provenance tracing" license = "MIT OR Apache-2.0" @@ -10,7 +10,7 @@ repository = "https://github.com/paiml/forjar" homepage = "https://paiml.com" keywords = ["iac", "infrastructure", "devops", "provisioning", "bare-metal"] categories = ["command-line-utilities", "development-tools"] -exclude = ["benches/", ".pmat/", "state/", "docs/", "examples/", "target/", "*.profraw", "*.profdata", ".vscode/", ".idea/", "proptest-regressions/"] +exclude = ["benches/", ".pmat/", "/state/", "docs/", "examples/", "target/", "*.profraw", "*.profdata", ".vscode/", ".idea/", "proptest-regressions/"] [lints.rust] unsafe_code = "forbid" @@ -25,7 +25,7 @@ serde_yaml_ng = "0.10" serde_json = "1.0" clap = { version = "4", features = ["derive"] } indexmap = { version = "2.7", features = ["serde"] } -provable-contracts-macros = { path = "../provable-contracts/crates/provable-contracts-macros" } +provable-contracts-macros = { version = "0.1", path = "../provable-contracts/crates/provable-contracts-macros" } base64 = "0.22.1" bashrs = "6.64.0" pforge-runtime = "0.1.4" @@ -33,12 +33,17 @@ pforge-config = "0.1.4" tokio = { version = "1.35", features = ["rt-multi-thread", "macros"] } async-trait = "0.1" schemars = { version = "0.8", features = ["derive"] } +regex = "1" rustc-hash = "2" age = { version = "0.11", default-features = false } clap_complete = "4" +zip = { version = "2", default-features = false, features = ["deflate", "bzip2", "zstd"] } +bzip2 = "0.5" +zstd = "0.13" +tar = "0.4" [build-dependencies] -provable-contracts = { path = "../provable-contracts/crates/provable-contracts" } +provable-contracts = { version = "0.1", path = "../provable-contracts/crates/provable-contracts" } [dev-dependencies] tempfile = "3" @@ -49,11 +54,21 @@ proptest = "1" name = "core_bench" harness = false +[[bench]] +name = "store_bench" +harness = false + +[[bench]] +name = "copia_bench" +harness = false + [features] container-test = [] +gpu-container-test = [] [profile.release] opt-level = 3 lto = true codegen-units = 1 strip = true +panic = "abort" diff --git a/Makefile b/Makefile index 63aed8a4..5139846b 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ # forjar - Rust CLI Binary Makefile # Generated by Pragmatic AI Labs MCP Agent Toolkit (pmat) -.PHONY: all check format lint test bench build build-release run clean install help +.PHONY: all check format lint test bench bench-update build build-release run clean install help # Default target: run all checks and build all: format check lint test build @@ -26,6 +26,10 @@ test: bench: cargo bench +# Run benchmarks and update README table +bench-update: + ./scripts/update_bench_table.sh + # Build debug binary build: cargo build diff --git a/README.md b/README.md index 4a958162..920f2e48 100644 --- a/README.md +++ b/README.md @@ -4,8 +4,9 @@

Quick Start · - Book · + Book · Specification · + Cookbook · Benchmarks

@@ -155,6 +156,46 @@ resources: mode: "0755" ``` +See the **[Forjar Cookbook](https://github.com/paiml/forjar-cookbook)** for 67 production-ready recipes covering packages, files, services, Docker, GPU, network, pepita sandboxing, multi-machine stacks, and content-addressed store reproducibility. The cookbook includes a [Reproducibility Series](https://github.com/paiml/forjar-cookbook/blob/master/docs/book/src/recipes/reproducibility.md) (recipes 63-67) demonstrating version pinning, sandboxed builds, SSH caching, CI gates, and profile rollback. + +## Content-Addressed Store + +Forjar includes a Nix-inspired content-addressed store for reproducible builds. Every build output lives at a deterministic path derived from its inputs: + +``` +/var/lib/forjar/store// +├── meta.yaml # Input manifest, provenance +└── content/ # Build output +``` + +### Store Commands + +```bash +forjar pin # Pin all inputs to current versions +forjar pin --check # CI gate — fail if lock file is stale +forjar cache list # List local store entries +forjar cache push user@host:path # Push to SSH binary cache +forjar cache verify # Re-hash all entries +forjar store gc --dry-run # Preview garbage collection +forjar store diff # Diff against upstream origin +forjar store-import apt nginx=1.24.0 # Import from any provider +forjar archive pack # Pack into .far archive +forjar convert --reproducible # Auto-convert recipe to store model +``` + +Supported import providers: `apt`, `cargo`, `uv`, `nix`, `docker`, `tofu`, `terraform`, `apr`. + +### 4-Level Purity Model + +| Level | Name | Requirement | +|-------|------|-------------| +| 0 | Pure | Version + store + sandbox | +| 1 | Pinned | Version + store (no sandbox) | +| 2 | Constrained | Provider-scoped, floating version | +| 3 | Impure | Unconstrained | + +See the [architecture docs](docs/book/src/05-architecture.md) for details on the store model, sandbox lifecycle, substitution protocol, and derivation executor. + ## How It Works 1. **Parse** — Read `forjar.yaml`, validate schema and references @@ -179,6 +220,10 @@ On first failure, execution stops immediately. Partial state is preserved in the cargo bench ``` + + +**Core Operations** + | Operation | Input | Mean | 95% CI | |---|---|---|---| | BLAKE3 hash | 64 B string | 27 ns | +/- 0.5 ns | @@ -191,7 +236,24 @@ cargo bench | Copia delta | 4 MB, 2% change | 1.18 ms | +/- 0.01 ms | | Copia patch gen | 1 MB, 10% change | 60 us | +/- 0.3 us | -Criterion.rs, 100 samples, 3s warm-up. Run locally to reproduce. +**Store Operations** (`cargo bench --bench store_bench`) + +| Operation | Input | Target | +|---|---|---| +| Store path hash | 3 inputs | < 1 us | +| Purity classify | 4 levels | < 1 us | +| Closure hash | 3/10/50 nodes | < 10 us | +| Repro score | 1/5/20 resources | < 100 us | +| FAR encode | 1KB/1MB/10MB | < 100 ms | +| FAR decode | 64KB manifest | < 10 ms | +| Lockfile staleness | 10/100/1K pins | < 1 ms | +| Sandbox validate | 4 presets | < 1 us | +| Derivation closure | 5-input DAG | < 10 us | +| Script purify | small/med/large | < 10 ms | + + + +Criterion.rs, 100 samples, 3s warm-up. Run `make bench-update` to refresh table. ## Falsifiable Claims @@ -243,7 +305,7 @@ Tests: `test_fj012_apply_local_file` ## Testing ```bash -cargo test # 1991 unit tests +cargo test # 6295+ unit tests cargo test -- --nocapture # with output cargo test planner # specific module cargo bench # Criterion benchmarks diff --git a/benches/copia_bench.rs b/benches/copia_bench.rs new file mode 100644 index 00000000..0d15d241 --- /dev/null +++ b/benches/copia_bench.rs @@ -0,0 +1,125 @@ +//! Benchmarks for copia delta sync operations. +//! +//! Run with: cargo bench --bench copia_bench +//! +//! FJ-247: Copia delta sync — signature computation, delta generation, +//! patch script serialization, and signature parsing. + +use criterion::{black_box, criterion_group, criterion_main, BenchmarkId, Criterion}; + +/// Benchmark copia signature computation at various file sizes. +/// Signatures are per-block BLAKE3 hashes (4KB blocks). +fn bench_copia_signatures(c: &mut Criterion) { + use forjar::copia; + + let mut group = c.benchmark_group("copia_signatures"); + for size_mb in [1, 4, 16] { + let data = vec![0xABu8; size_mb * 1024 * 1024]; + group.bench_with_input( + BenchmarkId::from_parameter(format!("{size_mb}MB")), + &data, + |b, data| { + b.iter(|| { + let sigs = copia::compute_signatures(black_box(data)); + black_box(sigs); + }); + }, + ); + } + group.finish(); +} + +/// Benchmark copia delta computation for files with varying change percentages. +/// Simulates model fine-tuning scenarios: 2% change (typical), 50% change, 100% change. +fn bench_copia_delta(c: &mut Criterion) { + use forjar::copia; + + let size = 4 * 1024 * 1024; // 4MB test file + let mut old_data = vec![0u8; size]; + // Make blocks unique + for i in 0..(size / copia::BLOCK_SIZE) { + old_data[i * copia::BLOCK_SIZE] = (i % 256) as u8; + } + let remote_sigs = copia::compute_signatures(&old_data); + + let mut group = c.benchmark_group("copia_delta"); + for change_pct in [2, 10, 50, 100] { + let mut new_data = old_data.clone(); + let blocks = size / copia::BLOCK_SIZE; + let changed = (blocks * change_pct) / 100; + for i in 0..changed { + new_data[i * copia::BLOCK_SIZE] = 0xFF; + } + + group.bench_with_input( + BenchmarkId::from_parameter(format!("{change_pct}pct")), + &new_data, + |b, new_data| { + b.iter(|| { + let delta = copia::compute_delta(black_box(new_data), &remote_sigs); + black_box(delta); + }); + }, + ); + } + group.finish(); +} + +/// Benchmark copia patch script generation (measures serialization overhead). +fn bench_copia_patch_script(c: &mut Criterion) { + use forjar::copia; + + let size = 1024 * 1024; // 1MB + let old_data = vec![0u8; size]; + let remote_sigs = copia::compute_signatures(&old_data); + + // 10% change + let mut new_data = old_data; + let blocks = size / copia::BLOCK_SIZE; + let changed = blocks / 10; + for i in 0..changed { + new_data[i * copia::BLOCK_SIZE] = 0xFF; + } + let delta = copia::compute_delta(&new_data, &remote_sigs); + + c.bench_function("copia_patch_script_1MB_10pct", |b| { + b.iter(|| { + let script = copia::patch_script( + black_box("/opt/models/test.gguf"), + black_box(&delta), + Some("noah"), + None, + Some("0644"), + ); + black_box(script); + }); + }); +} + +/// Benchmark copia signature parsing (measures remote output deserialization). +fn bench_copia_parse_signatures(c: &mut Criterion) { + use forjar::copia; + + // Generate a realistic signature output for 1024 blocks (4MB file) + let mut output = String::from("SIZE:4194304\n"); + for i in 0..1024 { + let hash = blake3::hash(&[i as u8; copia::BLOCK_SIZE]).to_hex(); + output.push_str(&format!("{} {}\n", i, hash)); + } + + c.bench_function("copia_parse_signatures_1024_blocks", |b| { + b.iter(|| { + let sigs = copia::parse_signatures(black_box(&output)).unwrap(); + black_box(sigs); + }); + }); +} + +criterion_group!( + copia_benches, + bench_copia_signatures, + bench_copia_delta, + bench_copia_patch_script, + bench_copia_parse_signatures, +); +criterion_main!(copia_benches); diff --git a/benches/core_bench.rs b/benches/core_bench.rs index 1bba0483..c3cfb318 100644 --- a/benches/core_bench.rs +++ b/benches/core_bench.rs @@ -1,14 +1,5 @@ -//! Benchmarks for forjar core operations. -//! -//! Run with: cargo bench -//! -//! Results include 95% confidence intervals via Criterion. -//! -//! Spec §9 performance targets validated: -//! - validate: < 10ms (pure YAML parse) -//! - plan (3 machines, 20 resources): < 2s -//! - apply (no changes, 3m/20r): < 500ms -//! - drift (local, 100 resources): < 1s +//! Benchmarks for forjar core operations (cargo bench). +//! Spec §9 targets: validate <10ms, plan(3m/20r) <2s, apply(no-change) <500ms, drift(100r) <1s. use criterion::{black_box, criterion_group, criterion_main, BenchmarkId, Criterion}; use forjar::core::{parser, planner, resolver, state}; @@ -105,50 +96,63 @@ resources: }); } +/// Build a linear chain DAG and return (in_degree, adjacency). +fn build_linear_chain( + n: usize, +) -> ( + std::collections::HashMap, + std::collections::HashMap>, +) { + let mut in_degree = std::collections::HashMap::new(); + let mut adjacency: std::collections::HashMap> = + std::collections::HashMap::new(); + for i in 0..n { + let name = format!("node-{i:04}"); + in_degree.entry(name.clone()).or_insert(0); + adjacency.entry(name.clone()).or_default(); + if i > 0 { + let prev = format!("node-{:04}", i - 1); + adjacency.entry(prev).or_default().push(name.clone()); + *in_degree.entry(name).or_insert(0) += 1; + } + } + (in_degree, adjacency) +} + +/// Kahn's topological sort on (in_degree, adjacency). +fn kahns_topo_sort( + in_degree: &mut std::collections::HashMap, + adjacency: &std::collections::HashMap>, +) -> Vec { + let mut queue: std::collections::BinaryHeap> = in_degree + .iter() + .filter(|(_, &d)| d == 0) + .map(|(k, _)| std::cmp::Reverse(k.clone())) + .collect(); + let mut order = Vec::with_capacity(in_degree.len()); + while let Some(std::cmp::Reverse(node)) = queue.pop() { + if let Some(neighbors) = adjacency.get(&node) { + for neighbor in neighbors { + if let Some(d) = in_degree.get_mut(neighbor) { + *d -= 1; + if *d == 0 { + queue.push(std::cmp::Reverse(neighbor.clone())); + } + } + } + } + order.push(node); + } + order +} + fn bench_topo_sort(c: &mut Criterion) { - // Build a linear chain of N nodes let mut group = c.benchmark_group("topo_sort"); for n in [10, 50, 100] { group.bench_with_input(BenchmarkId::from_parameter(n), &n, |b, &n| { b.iter(|| { - let mut in_degree: std::collections::HashMap = - std::collections::HashMap::new(); - let mut adjacency: std::collections::HashMap> = - std::collections::HashMap::new(); - - for i in 0..n { - let name = format!("node-{i:04}"); - in_degree.entry(name.clone()).or_insert(0); - adjacency.entry(name.clone()).or_default(); - - if i > 0 { - let prev = format!("node-{:04}", i - 1); - adjacency.entry(prev).or_default().push(name.clone()); - *in_degree.entry(name).or_insert(0) += 1; - } - } - - // Kahn's algorithm - let mut queue: std::collections::BinaryHeap> = in_degree - .iter() - .filter(|(_, &d)| d == 0) - .map(|(k, _)| std::cmp::Reverse(k.clone())) - .collect(); - - let mut order = Vec::with_capacity(n); - while let Some(std::cmp::Reverse(node)) = queue.pop() { - if let Some(neighbors) = adjacency.get(&node) { - for neighbor in neighbors { - if let Some(d) = in_degree.get_mut(neighbor) { - *d -= 1; - if *d == 0 { - queue.push(std::cmp::Reverse(neighbor.clone())); - } - } - } - } - order.push(node); - } + let (mut in_degree, adjacency) = build_linear_chain(n); + let order = kahns_topo_sort(&mut in_degree, &adjacency); black_box(order); }); }); @@ -156,8 +160,6 @@ fn bench_topo_sort(c: &mut Criterion) { group.finish(); } -// ── Spec §9 Performance Target Benchmarks ────────────────────────── - /// Spec §9: `forjar validate` < 10ms /// Parse + validate a realistic config with 3 machines and 20 resources. fn bench_spec9_validate(c: &mut Criterion) { @@ -215,50 +217,24 @@ resources: }); } -/// Spec §9: `forjar plan` (3 machines, 20 resources) < 2s -/// Plan execution for a realistic config — parse, resolve DAG, diff state. -fn bench_spec9_plan(c: &mut Criterion) { - let dir = tempfile::tempdir().unwrap(); - let config_path = dir.path().join("forjar.yaml"); - let state_dir = dir.path().join("state"); - std::fs::create_dir_all(&state_dir).unwrap(); - +/// Build a 3-machine, 20-resource YAML config with dependency chains for plan benchmarks. +fn build_3m_20r_config_with_deps() -> String { let mut yaml = String::from( - r#"version: "1.0" -name: bench-plan -machines: - web: - hostname: web.example.com - addr: 10.0.1.1 - db: - hostname: db.example.com - addr: 10.0.1.2 - cache: - hostname: cache.example.com - addr: 10.0.1.3 -resources: -"#, + "version: \"1.0\"\nname: bench-plan\nmachines:\n web:\n hostname: web.example.com\n addr: 10.0.1.1\n db:\n hostname: db.example.com\n addr: 10.0.1.2\n cache:\n hostname: cache.example.com\n addr: 10.0.1.3\nresources:\n", ); - for i in 0..8 { yaml.push_str(&format!( " web-pkg-{i}:\n type: package\n machine: web\n provider: apt\n packages: [pkg-{i}]\n" )); } for i in 0..6 { - let dep = if i > 0 { - format!("\n depends_on: [db-file-{}]", i - 1) - } else { - String::new() - }; + let dep = if i > 0 { format!("\n depends_on: [db-file-{}]", i - 1) } else { String::new() }; yaml.push_str(&format!( " db-file-{i}:\n type: file\n machine: db\n path: /etc/db/conf-{i}.yml\n content: \"key: value-{i}\"{dep}\n" )); } for i in 0..4 { - yaml.push_str(&format!( - " cache-svc-{i}:\n type: service\n machine: cache\n name: svc-{i}\n" - )); + yaml.push_str(&format!(" cache-svc-{i}:\n type: service\n machine: cache\n name: svc-{i}\n")); } for i in 0..2 { yaml.push_str(&format!( @@ -266,8 +242,14 @@ resources: i + 1 )); } + yaml +} - std::fs::write(&config_path, &yaml).unwrap(); +/// Spec §9: `forjar plan` (3 machines, 20 resources) < 2s +fn bench_spec9_plan(c: &mut Criterion) { + let dir = tempfile::tempdir().unwrap(); + let config_path = dir.path().join("forjar.yaml"); + std::fs::write(&config_path, build_3m_20r_config_with_deps()).unwrap(); c.bench_function("spec9_plan_3m_20r", |b| { b.iter(|| { @@ -280,18 +262,13 @@ resources: }); } -/// Spec §9: `forjar apply` (no changes) < 500ms -/// Full apply pipeline when all resources are already converged (no-op path). -/// Measures: parse → resolve → plan-with-locks → all NoOp. -fn bench_spec9_apply_no_changes(c: &mut Criterion) { - use forjar::core::types::{ResourceLock, ResourceStatus, ResourceType, StateLock}; +/// Build a 3-machine, 20-resource YAML config and return (yaml, resource_names). +fn build_3m_20r_config() -> ( + String, + Vec<(String, forjar::core::types::ResourceType)>, +) { + use forjar::core::types::ResourceType; - let dir = tempfile::tempdir().unwrap(); - let config_path = dir.path().join("forjar.yaml"); - let state_dir = dir.path().join("state"); - std::fs::create_dir_all(&state_dir).unwrap(); - - // Same 3m/20r config as plan benchmark let mut yaml = String::from( r#"version: "1.0" name: bench-apply @@ -339,10 +316,16 @@ resources: )); resource_names.push((name, ResourceType::Mount)); } + (yaml, resource_names) +} - std::fs::write(&config_path, &yaml).unwrap(); +/// Populate lock files so plan sees "no changes" for all resources. +fn populate_converged_locks( + state_dir: &std::path::Path, + resource_names: &[(String, forjar::core::types::ResourceType)], +) { + use forjar::core::types::{ResourceLock, ResourceStatus, StateLock}; - // Pre-populate lock files for all 3 machines so plan sees "no changes" for (machine_name, hostname) in [ ("web", "web.example.com"), ("db", "db.example.com"), @@ -352,15 +335,8 @@ resources: std::fs::create_dir_all(&machine_dir).unwrap(); let mut resources = indexmap::IndexMap::new(); - for (rname, rtype) in &resource_names { - // Only include resources for this machine - let belongs = match machine_name { - "web" => rname.starts_with("web-"), - "db" => rname.starts_with("db-"), - "cache" => rname.starts_with("cache-"), - _ => false, - }; - if belongs { + for (rname, rtype) in resource_names { + if rname.starts_with(&format!("{machine_name}-")) { resources.insert( rname.clone(), ResourceLock { @@ -386,12 +362,25 @@ resources: }; state::save_lock(&machine_dir, &lock).unwrap(); } +} + +/// Spec §9: `forjar apply` (no changes) < 500ms +/// Full apply pipeline when all resources are already converged (no-op path). +/// Measures: parse → resolve → plan-with-locks → all NoOp. +fn bench_spec9_apply_no_changes(c: &mut Criterion) { + let dir = tempfile::tempdir().unwrap(); + let config_path = dir.path().join("forjar.yaml"); + let state_dir = dir.path().join("state"); + std::fs::create_dir_all(&state_dir).unwrap(); + + let (yaml, resource_names) = build_3m_20r_config(); + std::fs::write(&config_path, &yaml).unwrap(); + populate_converged_locks(&state_dir, &resource_names); c.bench_function("spec9_apply_no_changes_3m_20r", |b| { b.iter(|| { let config = parser::parse_and_validate(black_box(&config_path)).unwrap(); let order = resolver::build_execution_order(&config).unwrap(); - // Load all machine locks let mut locks = std::collections::HashMap::new(); for machine_name in ["web", "db", "cache"] { let machine_dir = state_dir.join(machine_name); @@ -481,116 +470,6 @@ fn bench_spec9_validate_scaling(c: &mut Criterion) { group.finish(); } -// ── FJ-247: Copia Delta Sync Benchmarks ────────────────────────── - -/// Benchmark copia signature computation at various file sizes. -/// Signatures are per-block BLAKE3 hashes (4KB blocks). -fn bench_copia_signatures(c: &mut Criterion) { - use forjar::copia; - - let mut group = c.benchmark_group("copia_signatures"); - for size_mb in [1, 4, 16] { - let data = vec![0xABu8; size_mb * 1024 * 1024]; - group.bench_with_input( - BenchmarkId::from_parameter(format!("{size_mb}MB")), - &data, - |b, data| { - b.iter(|| { - let sigs = copia::compute_signatures(black_box(data)); - black_box(sigs); - }); - }, - ); - } - group.finish(); -} - -/// Benchmark copia delta computation for files with varying change percentages. -/// Simulates model fine-tuning scenarios: 2% change (typical), 50% change, 100% change. -fn bench_copia_delta(c: &mut Criterion) { - use forjar::copia; - - let size = 4 * 1024 * 1024; // 4MB test file - let mut old_data = vec![0u8; size]; - // Make blocks unique - for i in 0..(size / copia::BLOCK_SIZE) { - old_data[i * copia::BLOCK_SIZE] = (i % 256) as u8; - } - let remote_sigs = copia::compute_signatures(&old_data); - - let mut group = c.benchmark_group("copia_delta"); - for change_pct in [2, 10, 50, 100] { - let mut new_data = old_data.clone(); - let blocks = size / copia::BLOCK_SIZE; - let changed = (blocks * change_pct) / 100; - for i in 0..changed { - new_data[i * copia::BLOCK_SIZE] = 0xFF; - } - - group.bench_with_input( - BenchmarkId::from_parameter(format!("{change_pct}pct")), - &new_data, - |b, new_data| { - b.iter(|| { - let delta = copia::compute_delta(black_box(new_data), &remote_sigs); - black_box(delta); - }); - }, - ); - } - group.finish(); -} - -/// Benchmark copia patch script generation (measures serialization overhead). -fn bench_copia_patch_script(c: &mut Criterion) { - use forjar::copia; - - let size = 1024 * 1024; // 1MB - let old_data = vec![0u8; size]; - let remote_sigs = copia::compute_signatures(&old_data); - - // 10% change - let mut new_data = old_data; - let blocks = size / copia::BLOCK_SIZE; - let changed = blocks / 10; - for i in 0..changed { - new_data[i * copia::BLOCK_SIZE] = 0xFF; - } - let delta = copia::compute_delta(&new_data, &remote_sigs); - - c.bench_function("copia_patch_script_1MB_10pct", |b| { - b.iter(|| { - let script = copia::patch_script( - black_box("/opt/models/test.gguf"), - black_box(&delta), - Some("noah"), - None, - Some("0644"), - ); - black_box(script); - }); - }); -} - -/// Benchmark copia signature parsing (measures remote output deserialization). -fn bench_copia_parse_signatures(c: &mut Criterion) { - use forjar::copia; - - // Generate a realistic signature output for 1024 blocks (4MB file) - let mut output = String::from("SIZE:4194304\n"); - for i in 0..1024 { - let hash = blake3::hash(&[i as u8; copia::BLOCK_SIZE]).to_hex(); - output.push_str(&format!("{} {}\n", i, hash)); - } - - c.bench_function("copia_parse_signatures_1024_blocks", |b| { - b.iter(|| { - let sigs = copia::parse_signatures(black_box(&output)).unwrap(); - black_box(sigs); - }); - }); -} - criterion_group!( benches, bench_blake3_string, @@ -602,9 +481,5 @@ criterion_group!( bench_spec9_apply_no_changes, bench_spec9_drift, bench_spec9_validate_scaling, - bench_copia_signatures, - bench_copia_delta, - bench_copia_patch_script, - bench_copia_parse_signatures, ); criterion_main!(benches); diff --git a/benches/store_bench.rs b/benches/store_bench.rs new file mode 100644 index 00000000..6ce6f335 --- /dev/null +++ b/benches/store_bench.rs @@ -0,0 +1,401 @@ +//! Benchmarks for forjar store operations. +//! +//! Run with: cargo bench --bench store_bench +//! +//! Covers: store path hashing, purity classification, closure hashing, +//! reproducibility scoring, FAR encode/decode, lockfile staleness, +//! sandbox validation, derivation closure, and script purification. + +use criterion::{black_box, criterion_group, criterion_main, BenchmarkId, Criterion}; +use std::collections::BTreeMap; + +// ── Store Path ────────────────────────────────────────────────────── + +fn bench_store_path(c: &mut Criterion) { + use forjar::core::store::path::store_path; + + let recipe_hash = "blake3:abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789"; + let inputs = [ + "blake3:1111111111111111111111111111111111111111111111111111111111111111", + "blake3:2222222222222222222222222222222222222222222222222222222222222222", + "blake3:3333333333333333333333333333333333333333333333333333333333333333", + ]; + + c.bench_function("store_path_hash", |b| { + b.iter(|| { + let path = store_path( + black_box(recipe_hash), + black_box(&inputs), + black_box("x86_64"), + black_box("apt"), + ); + black_box(path); + }); + }); +} + +// ── Purity Classification ─────────────────────────────────────────── + +fn bench_purity_classify(c: &mut Criterion) { + use forjar::core::store::purity::{classify, PurityLevel, PuritySignals}; + + let cases = [ + ( + "pure", + PuritySignals { + has_version: true, + has_store: true, + has_sandbox: true, + has_curl_pipe: false, + dep_levels: vec![], + }, + ), + ( + "pinned", + PuritySignals { + has_version: true, + has_store: true, + has_sandbox: false, + has_curl_pipe: false, + dep_levels: vec![], + }, + ), + ( + "constrained", + PuritySignals { + has_version: false, + has_store: false, + has_sandbox: false, + has_curl_pipe: false, + dep_levels: vec![], + }, + ), + ( + "impure", + PuritySignals { + has_version: false, + has_store: false, + has_sandbox: false, + has_curl_pipe: true, + dep_levels: vec![PurityLevel::Impure], + }, + ), + ]; + + let mut group = c.benchmark_group("purity_classify"); + for (label, signals) in &cases { + group.bench_with_input(BenchmarkId::from_parameter(label), signals, |b, sig| { + b.iter(|| { + let result = classify(black_box("test-resource"), black_box(sig)); + black_box(result); + }); + }); + } + group.finish(); +} + +// ── Closure Hash ──────────────────────────────────────────────────── + +fn bench_closure_hash(c: &mut Criterion) { + use forjar::core::store::closure::closure_hash; + + let mut group = c.benchmark_group("closure_hash"); + for n in [3, 10, 50] { + let hashes: Vec = (0..n).map(|i| format!("blake3:{i:064x}")).collect(); + + group.bench_with_input( + BenchmarkId::from_parameter(format!("{n}_nodes")), + &hashes, + |b, hashes| { + b.iter(|| { + let hash = closure_hash(black_box(hashes)); + black_box(hash); + }); + }, + ); + } + group.finish(); +} + +// ── Reproducibility Score ─────────────────────────────────────────── + +fn bench_repro_score(c: &mut Criterion) { + use forjar::core::store::purity::PurityLevel; + use forjar::core::store::repro_score::{compute_score, ReproInput}; + + let mut group = c.benchmark_group("repro_score"); + for n in [1, 5, 20] { + let inputs: Vec = (0..n) + .map(|i| ReproInput { + name: format!("resource-{i}"), + purity: match i % 4 { + 0 => PurityLevel::Pure, + 1 => PurityLevel::Pinned, + 2 => PurityLevel::Constrained, + _ => PurityLevel::Impure, + }, + has_store: i % 2 == 0, + has_lock_pin: i % 3 == 0, + }) + .collect(); + + group.bench_with_input( + BenchmarkId::from_parameter(format!("{n}_resources")), + &inputs, + |b, inputs| { + b.iter(|| { + let score = compute_score(black_box(inputs)); + black_box(score); + }); + }, + ); + } + group.finish(); +} + +// ── FAR Encode ────────────────────────────────────────────────────── + +fn bench_far_encode(c: &mut Criterion) { + use forjar::core::store::far::{encode_far, FarFileEntry, FarManifest, FarProvenance}; + + let mut group = c.benchmark_group("far_encode"); + for size_kb in [1, 1024, 10240] { + let data = vec![0xABu8; size_kb * 1024]; + let chunk_hash = blake3::hash(&data); + let chunks = vec![(*chunk_hash.as_bytes(), data.clone())]; + + let manifest = FarManifest { + name: "bench-package".to_string(), + version: "1.0.0".to_string(), + arch: "x86_64".to_string(), + store_hash: "blake3:abc123".to_string(), + tree_hash: "blake3:def456".to_string(), + file_count: 1, + total_size: (size_kb * 1024) as u64, + files: vec![FarFileEntry { + path: "bin/bench".to_string(), + size: (size_kb * 1024) as u64, + blake3: chunk_hash.to_hex().to_string(), + }], + provenance: FarProvenance { + origin_provider: "bench".to_string(), + origin_ref: None, + origin_hash: None, + created_at: "2026-03-02T00:00:00Z".to_string(), + generator: "forjar-bench".to_string(), + }, + kernel_contracts: None, + }; + + let label = if size_kb >= 1024 { + format!("{}MB", size_kb / 1024) + } else { + format!("{size_kb}KB") + }; + group.bench_with_input(BenchmarkId::from_parameter(&label), &chunks, |b, chunks| { + b.iter(|| { + let mut buf = Vec::with_capacity(size_kb * 1024 + 4096); + encode_far(black_box(&manifest), black_box(chunks), &mut buf).unwrap(); + black_box(buf); + }); + }); + } + group.finish(); +} + +// ── FAR Decode ────────────────────────────────────────────────────── + +fn bench_far_decode(c: &mut Criterion) { + use forjar::core::store::far::{ + decode_far_manifest, encode_far, FarFileEntry, FarManifest, FarProvenance, + }; + + let data = vec![0xABu8; 64 * 1024]; + let chunk_hash = blake3::hash(&data); + let chunks = vec![(*chunk_hash.as_bytes(), data)]; + + let manifest = FarManifest { + name: "bench-decode".to_string(), + version: "1.0.0".to_string(), + arch: "x86_64".to_string(), + store_hash: "blake3:abc123".to_string(), + tree_hash: "blake3:def456".to_string(), + file_count: 1, + total_size: 65536, + files: vec![FarFileEntry { + path: "bin/bench".to_string(), + size: 65536, + blake3: chunk_hash.to_hex().to_string(), + }], + provenance: FarProvenance { + origin_provider: "bench".to_string(), + origin_ref: None, + origin_hash: None, + created_at: "2026-03-02T00:00:00Z".to_string(), + generator: "forjar-bench".to_string(), + }, + kernel_contracts: None, + }; + + let mut encoded = Vec::new(); + encode_far(&manifest, &chunks, &mut encoded).unwrap(); + + c.bench_function("far_decode_manifest_64KB", |b| { + b.iter(|| { + let cursor = std::io::Cursor::new(black_box(&encoded)); + let (m, entries) = decode_far_manifest(cursor).unwrap(); + black_box((m, entries)); + }); + }); +} + +// ── Lockfile Staleness ────────────────────────────────────────────── + +fn bench_lockfile_staleness(c: &mut Criterion) { + use forjar::core::store::lockfile::{check_staleness, LockFile, Pin}; + + let mut group = c.benchmark_group("lockfile_staleness"); + for n in [10, 100, 1000] { + let mut pins = BTreeMap::new(); + let mut current_hashes = BTreeMap::new(); + + for i in 0..n { + let name = format!("pkg-{i:04}"); + let hash = format!("blake3:{i:064x}"); + pins.insert( + name.clone(), + Pin { + provider: "apt".to_string(), + version: Some(format!("1.0.{i}")), + hash: hash.clone(), + git_rev: None, + pin_type: None, + }, + ); + // 10% of pins are stale + let current = if i % 10 == 0 { + format!("blake3:{:064x}", i + 999_999) + } else { + hash + }; + current_hashes.insert(name, current); + } + + let lockfile = LockFile { + schema: "1.0".to_string(), + pins, + }; + + group.bench_with_input( + BenchmarkId::from_parameter(format!("{n}_pins")), + &(&lockfile, ¤t_hashes), + |b, (lockfile, hashes)| { + b.iter(|| { + let stale = check_staleness(black_box(lockfile), black_box(hashes)); + black_box(stale); + }); + }, + ); + } + group.finish(); +} + +// ── Sandbox Validate ──────────────────────────────────────────────── + +fn bench_sandbox_validate(c: &mut Criterion) { + use forjar::core::store::sandbox::{preset_profile, validate_config}; + + let presets = ["full", "network-only", "minimal", "gpu"]; + + let mut group = c.benchmark_group("sandbox_validate"); + for name in &presets { + let config = preset_profile(name).unwrap(); + group.bench_with_input(BenchmarkId::from_parameter(name), &config, |b, config| { + b.iter(|| { + let errors = validate_config(black_box(config)); + black_box(errors); + }); + }); + } + group.finish(); +} + +// ── Derivation Closure Hash ───────────────────────────────────────── + +fn bench_derivation_closure(c: &mut Criterion) { + use forjar::core::store::derivation::{derivation_closure_hash, Derivation, DerivationInput}; + + let mut inputs = BTreeMap::new(); + let mut input_hashes = BTreeMap::new(); + for i in 0..5 { + let name = format!("input-{i}"); + let hash = format!("blake3:{i:064x}"); + inputs.insert( + name.clone(), + DerivationInput::Store { + store: hash.clone(), + }, + ); + input_hashes.insert(name, hash); + } + + let derivation = Derivation { + inputs, + script: "cp -r $inputs/* $out/".to_string(), + sandbox: None, + arch: "x86_64".to_string(), + out_var: "$out".to_string(), + }; + + c.bench_function("derivation_closure_hash_5_inputs", |b| { + b.iter(|| { + let hash = derivation_closure_hash(black_box(&derivation), black_box(&input_hashes)); + black_box(hash); + }); + }); +} + +// ── Purify Script ─────────────────────────────────────────────────── + +fn bench_purify_script(c: &mut Criterion) { + use forjar::core::purifier::purify_script; + + let small = "echo hello\ndate\n"; + let medium = (0..20) + .map(|i| format!("echo \"step {i}\"\nsleep 1\n")) + .collect::(); + let large = (0..100) + .map(|i| { + format!("if [ -f /tmp/test_{i} ]; then\n cat /tmp/test_{i}\n rm /tmp/test_{i}\nfi\n") + }) + .collect::(); + + let mut group = c.benchmark_group("purify_script"); + for (label, script) in [ + ("small", small.to_string()), + ("medium", medium), + ("large", large), + ] { + group.bench_with_input(BenchmarkId::from_parameter(label), &script, |b, script| { + b.iter(|| { + let _ = black_box(purify_script(black_box(script))); + }); + }); + } + group.finish(); +} + +criterion_group!( + store_benches, + bench_store_path, + bench_purity_classify, + bench_closure_hash, + bench_repro_score, + bench_far_encode, + bench_far_decode, + bench_lockfile_staleness, + bench_sandbox_validate, + bench_derivation_closure, + bench_purify_script, +); +criterion_main!(store_benches); diff --git a/docs/book/06-cli.md b/docs/book/06-cli.md deleted file mode 100644 index 1b3a66f2..00000000 --- a/docs/book/06-cli.md +++ /dev/null @@ -1,1545 +0,0 @@ -# CLI Reference - -## Global Usage - -``` -forjar [OPTIONS] -``` - -### Global Options - -| Flag | Description | -|------|-------------| -| `-v, --verbose` | Enable verbose output (diagnostic info to stderr) | -| `--no-color` | Disable colored output (also honors `NO_COLOR` env) | -| `-h, --help` | Print help | -| `-V, --version` | Print version | - -## Commands - -### `forjar init` - -Initialize a new forjar project. - -```bash -forjar init [PATH] -``` - -| Argument | Default | Description | -|----------|---------|-------------| -| `PATH` | `.` | Directory to initialize | - -Creates `forjar.yaml` and `state/` directory. - -### `forjar validate` - -Validate configuration without connecting to machines. - -```bash -forjar validate -f -``` - -| Flag | Default | Description | -|------|---------|-------------| -| `-f, --file` | `forjar.yaml` | Config file path | - -Checks: -- YAML parse validity -- Version is "1.0" -- Name is non-empty -- Resources reference valid machines -- Dependencies reference valid resources -- No circular dependencies -- File state is valid (file, directory, symlink, absent) -- Service state is valid (running, stopped, enabled, disabled) -- Mount state is valid (mounted, unmounted, absent) -- Docker state is valid (running, stopped, absent) -- Network protocol is valid (tcp, udp) and action is valid (allow, deny, reject) -- Cron schedule has exactly 5 fields (min hour dom mon dow) -- Symlink resources have a target field - -### `forjar plan` - -Show execution plan (what would change). - -```bash -forjar plan -f [-m MACHINE] [-r RESOURCE] [-t TAG] [--state-dir DIR] [--json] [--output-dir DIR] [--env-file PATH] -``` - -| Flag | Default | Description | -|------|---------|-------------| -| `-f, --file` | `forjar.yaml` | Config file path | -| `-m, --machine` | all | Filter to specific machine | -| `-r, --resource` | all | Filter to specific resource | -| `-t, --tag` | all | Filter to resources with this tag | -| `--state-dir` | `state` | Directory for lock files | -| `--json` | false | Output plan as JSON | -| `--output-dir` | — | Write generated scripts to directory for auditing | -| `--env-file` | — | Load param overrides from external YAML file | - -Output symbols (text mode): -- `+` Create (new resource) -- `~` Update (state changed) -- `-` Destroy (state=absent) -- ` ` No-op (unchanged) - -JSON mode outputs the full `ExecutionPlan` with changes, actions, and summary counts. - -The `--output-dir` flag writes all generated scripts (check, apply, state_query) per resource to the specified directory. Useful for auditing, code review, and offline inspection of what forjar would execute. - -### `forjar apply` - -Converge infrastructure to desired state. - -```bash -forjar apply -f [-m MACHINE] [-r RESOURCE] [-t TAG] [--force] [--dry-run] [--check] [--no-tripwire] [-p KEY=VALUE] [--auto-commit] [--timeout SECS] [--state-dir DIR] [--json] [--report] [--env-file PATH] -``` - -| Flag | Default | Description | -|------|---------|-------------| -| `-f, --file` | `forjar.yaml` | Config file path | -| `-m, --machine` | all | Filter to specific machine | -| `-r, --resource` | all | Filter to specific resource | -| `-t, --tag` | all | Filter to resources with this tag | -| `--force` | false | Re-apply all resources (ignore cache) | -| `--dry-run` | false | Show plan without executing | -| `--no-tripwire` | false | Skip provenance event logging (faster) | -| `-p, --param` | — | Override parameter: `-p env=production` | -| `--auto-commit` | false | Git commit state after successful apply | -| `--timeout` | — | Timeout per transport operation (seconds) | -| `--state-dir` | `state` | Directory for lock files | -| `--json` | false | Output apply results as JSON | -| `--env-file` | — | Load param overrides from external YAML file | -| `--report` | false | Print per-resource timing report after apply | -| `--check` | false | Run check scripts instead of apply (exit 0=converged, non-zero=needs changes) | -| `--force-unlock` | false | Remove a stale state lock and proceed (use when a previous apply was interrupted) | - -State locking: When apply starts, forjar creates `state/.forjar.lock` containing the current PID. If another apply is already running against the same state directory, the command exits with an error suggesting `--force-unlock`. Stale locks (PID no longer running, detected via `/proc/`) are reported but not automatically removed. The lock file is removed on completion. - -### `forjar drift` - -Detect unauthorized changes (tripwire). - -```bash -forjar drift -f [-m MACHINE] [--state-dir DIR] [--tripwire] [--alert-cmd CMD] [--dry-run] [--json] [--env-file PATH] -``` - -| Flag | Default | Description | -|------|---------|-------------| -| `-f, --file` | `forjar.yaml` | Config file path | -| `-m, --machine` | all | Filter to specific machine | -| `--state-dir` | `state` | Directory for lock files | -| `--tripwire` | false | Exit non-zero on any drift (for CI/cron) | -| `--alert-cmd` | — | Run command on drift detection (sets `$FORJAR_DRIFT_COUNT`) | -| `--auto-remediate` | false | Auto-fix drift: force re-apply all resources to restore desired state | -| `--dry-run` | false | List resources that would be checked without connecting to machines | -| `--json` | false | Output drift report as JSON | -| `--env-file` | — | Load param overrides from external YAML file | - -Drift detection covers **all resource types**: -- **File** resources: BLAKE3 hash of file content on disk vs lock -- **Non-file** resources (package, service, mount, user, cron, docker, network): re-runs the resource's `state_query_script` via transport and compares the BLAKE3 hash of the output against the `live_hash` stored at apply time - -JSON mode outputs `{ "drift_count": N, "findings": [...] }` with machine, resource, expected/actual hash for each finding. - -### `forjar status` - -Show current state from lock files. - -```bash -forjar status [--state-dir DIR] [-m MACHINE] [--json] -``` - -| Flag | Default | Description | -|------|---------|-------------| -| `--state-dir` | `state` | Directory for lock files | -| `-m, --machine` | all | Filter to specific machine | -| `--json` | false | Output status as JSON | - -### `forjar history` - -Show apply history from event logs. - -```bash -forjar history [--state-dir DIR] [-m MACHINE] [-n LIMIT] [--json] -``` - -| Flag | Default | Description | -|------|---------|-------------| -| `--state-dir` | `state` | Directory for lock files | -| `-m, --machine` | all | Filter to specific machine | -| `-n, --limit` | `10` | Show last N apply events | -| `--json` | false | Output as JSON | - -Reads `state/{machine}/events.jsonl` and displays apply start/complete events in reverse chronological order. - -### `forjar show` - -Show the fully resolved config (recipes expanded, templates resolved, secrets injected). - -```bash -forjar show -f [-r RESOURCE] [--json] -``` - -| Flag | Default | Description | -|------|---------|-------------| -| `-f, --file` | `forjar.yaml` | Config file path | -| `-r, --resource` | all | Show specific resource only | -| `--json` | false | Output as JSON instead of YAML | - -Useful for debugging template resolution, recipe expansion, and secrets injection without running apply. - -```bash -# Show full resolved config -forjar show -f forjar.yaml - -# Show single resource (e.g., from a recipe) -forjar show -f forjar.yaml -r web/site-config - -# Pipe to jq for structured queries -forjar show -f forjar.yaml --json | jq '.resources | keys' -``` - -### `forjar graph` - -Show resource dependency graph. - -```bash -forjar graph -f [--format mermaid|dot] -``` - -| Flag | Default | Description | -|------|---------|-------------| -| `-f, --file` | `forjar.yaml` | Config file path | -| `--format` | `mermaid` | Output format: `mermaid` or `dot` | - -Mermaid output can be pasted into GitHub markdown or rendered with mermaid-cli. DOT output is compatible with Graphviz. - -### `forjar destroy` - -Remove all managed resources (reverse teardown). - -```bash -forjar destroy -f [-m MACHINE] [--yes] [--state-dir DIR] -``` - -| Flag | Default | Description | -|------|---------|-------------| -| `-f, --file` | `forjar.yaml` | Config file path | -| `-m, --machine` | all | Filter to specific machine | -| `--yes` | false | **Required** — confirm destructive operation | -| `--state-dir` | `state` | Directory for lock files | - -Resources are removed in reverse topological order (dependents first). On success, state lock files are cleaned up. Requires `--yes` flag as a safety gate. - -### `forjar import` - -Scan a machine and generate a forjar.yaml from its current state. - -```bash -forjar import --addr [--user USER] [--name NAME] [--output FILE] [--scan types] -``` - -| Flag | Default | Description | -|------|---------|-------------| -| `--addr` | — | Machine address (IP, hostname, or `localhost`) | -| `--user` | `root` | SSH user | -| `--name` | derived from addr | Machine name in config | -| `--output` | `forjar.yaml` | Output file path | -| `--scan` | `packages,files,services` | Comma-separated scan types | - -Scan types: `packages` (dpkg), `services` (systemctl), `files` (/etc/*.conf), `users` (non-system users), `cron` (root crontab). The generated config should be reviewed and customized before applying. - -```bash -# Import from a remote machine -forjar import --addr 10.0.0.1 --name prod-web --output prod-web.yaml - -# Import just packages from localhost -forjar import --addr localhost --scan packages -v - -# Import users and cron jobs -forjar import --addr localhost --scan users,cron -v -``` - -### `forjar diff` - -Compare two state snapshots to see what changed between applies. - -```bash -forjar diff [-m MACHINE] [--json] -``` - -| Flag | Default | Description | -|------|---------|-------------| -| `FROM` | — | First state directory (older) | -| `TO` | — | Second state directory (newer) | -| `-m, --machine` | all | Filter to specific machine | -| `--json` | false | Output as JSON | - -Output symbols (text mode): -- `+` Resource added -- `-` Resource removed -- `~` Resource changed (hash or status differs) - -```bash -# Compare before/after state -forjar diff state-before/ state-after/ - -# JSON output for scripting -forjar diff state-v1/ state-v2/ --json - -# Filter to one machine -forjar diff state-v1/ state-v2/ -m web-server -``` - -Useful for auditing what changed across apply runs, reviewing infrastructure changes, and debugging state drift. - -### `forjar check` - -Run check scripts against live machines to verify pre-conditions without applying. - -```bash -forjar check -f [-m MACHINE] [-r RESOURCE] [--tag TAG] [--json] -``` - -| Flag | Default | Description | -|------|---------|-------------| -| `-f, --file` | `forjar.yaml` | Config file path | -| `-m, --machine` | all | Filter to specific machine | -| `-r, --resource` | all | Filter to specific resource | -| `--tag` | all | Filter to resources with this tag | -| `--json` | false | Output as JSON | - -```bash -# Check all resources -forjar check -f forjar.yaml -v - -# Check a specific resource -forjar check -f forjar.yaml -r nginx-config - -# Check only web-tagged resources -forjar check -f forjar.yaml --tag web - -# JSON output for CI pipelines -forjar check -f forjar.yaml --json -``` - -Exits non-zero if any check fails. Useful for pre-flight validation in CI/CD pipelines before running `apply`. - -### `forjar fmt` - -Format (normalize) a forjar.yaml config file. - -```bash -forjar fmt -f [--check] -``` - -| Flag | Default | Description | -|------|---------|-------------| -| `-f, --file` | `forjar.yaml` | Config file path | -| `--check` | false | Check formatting without writing (exit non-zero if unformatted) | - -```bash -# Format a config file in place -forjar fmt -f forjar.yaml - -# Check formatting (useful in CI) -forjar fmt -f forjar.yaml --check -``` - -Parses the YAML, validates it, and re-serializes in canonical format. Idempotent — running twice produces the same output. Use `--check` in CI to enforce consistent formatting. - -### `forjar lint` - -Check config for best practice warnings beyond basic validation. - -```bash -forjar lint -f [--json] [--strict] -``` - -| Flag | Default | Description | -|------|---------|-------------| -| `-f, --file` | `forjar.yaml` | Config file path | -| `--json` | false | Output as JSON | -| `--strict` | false | Enable built-in policy rules (FJ-221) | - -Detects: -- Unused machines (defined but not referenced by any resource) -- Resources without tags (when config has many resources) -- Duplicate content across file resources -- Dependencies on non-existent resources -- Package resources with empty package lists - -With `--strict`, additionally enforces: -- **no_root_owner** — file resources owned by `root` must be tagged `system` -- **require_tags** — all resources must have at least one tag -- **no_privileged_containers** — container machines must not use `--privileged` -- **require_ssh_key** — non-local machines must have `ssh_key` configured - -```bash -# Lint a config file -forjar lint -f forjar.yaml - -# Strict mode with built-in policy rules -forjar lint -f forjar.yaml --strict - -# JSON output for CI -forjar lint -f forjar.yaml --json -``` - -### `forjar rollback` - -Rollback to a previous config revision from git history. - -```bash -forjar rollback -f [-n REVISION] [-m MACHINE] [--dry-run] [--state-dir DIR] -``` - -| Flag | Default | Description | -|------|---------|-------------| -| `-f, --file` | `forjar.yaml` | Config file path | -| `-n, --revision` | `1` | How many git revisions back to rollback (HEAD~N) | -| `-m, --machine` | all | Filter to specific machine | -| `--dry-run` | false | Show what would change without applying | -| `--state-dir` | `state` | Directory for lock files | - -Reads the previous `forjar.yaml` from `git show HEAD~N:`, compares it to the current config, and re-applies the old config with `--force` to converge to the previous desired state. - -```bash -# Preview what rollback would change -forjar rollback --dry-run - -# Rollback to previous version -forjar rollback - -# Rollback to 3 versions ago -forjar rollback -n 3 - -# Rollback specific machine only -forjar rollback -m web-server -``` - -### `forjar anomaly` - -Detect anomalous resource behavior from event history. - -```bash -forjar anomaly [--state-dir DIR] [-m MACHINE] [--min-events N] [--json] -``` - -| Flag | Default | Description | -|------|---------|-------------| -| `--state-dir` | `state` | Directory for lock files | -| `-m, --machine` | all | Filter to specific machine | -| `--min-events` | `3` | Minimum events to consider (ignore resources with fewer) | -| `--json` | false | Output as JSON | - -Analyzes event logs using ML-inspired anomaly detection (FJ-051): -- **High churn**: Abnormally high converge frequency via isolation scoring -- **High failure rate**: Disproportionate failures via isolation scoring -- **Drift events**: Any drift detected in history - -```bash -# Check all machines -forjar anomaly --state-dir state - -# Lower threshold for small deployments -forjar anomaly --min-events 1 - -# JSON output for CI/monitoring -forjar anomaly --json - -# Filter to specific machine -forjar anomaly -m web-server -``` - -### `forjar trace` - -View trace provenance data from apply runs (FJ-050). - -```bash -forjar trace [--state-dir DIR] [-m MACHINE] [--json] -``` - -| Flag | Default | Description | -|------|---------|-------------| -| `--state-dir` | `state` | Directory for state/lock files | -| `-m, --machine` | all | Filter to specific machine | -| `--json` | false | Output as JSON | - -Shows W3C-compatible trace spans recorded during `forjar apply`, including causal ordering via Lamport logical clocks, duration, exit codes, and resource metadata. - -```bash -# View all traces -forjar trace --state-dir state - -# View traces for specific machine -forjar trace -m web-server - -# JSON output for analysis tools -forjar trace --json | jq '.spans[] | select(.exit_code != 0)' - -# Find slowest resources -forjar trace --json | jq '.spans | sort_by(-.duration_us) | .[0:5]' -``` - -Example output: - -``` -Trace: 00000000000000005ce9737d21745945 (3 spans) - [ 1] web apply:data-dir — create ok (122.1ms) - [ 2] web apply:dev-tools — create ok (19.0s) - [ 3] web apply:tool-config — create ok (165.7ms) -``` - -### `forjar migrate` - -Migrate Docker resources to pepita kernel isolation. - -```bash -forjar migrate -f [-o ] -``` - -| Flag | Default | Description | -|------|---------|-------------| -| `-f, --file` | required | Input config file with Docker resources | -| `-o, --output` | none | Output file for migrated config (prints to stdout if omitted) | - -Converts Docker container resources to pepita kernel isolation resources: -- Docker `image` → overlay_lower hint (with warning) -- Docker `ports` → `netns: true` (network namespace isolation) -- Docker `volumes` → bind mount warnings -- Docker `state: running` → `state: present` -- Docker `state: stopped` → `state: absent` -- Docker restart/environment → warnings with migration guidance - -Non-Docker resources are passed through unchanged. - -```bash -# Preview migration (stdout) -forjar migrate -f docker-infra.yaml - -# Write migrated config to file -forjar migrate -f docker-infra.yaml -o pepita-infra.yaml - -# Review warnings, then apply -forjar migrate -f docker-infra.yaml -o new.yaml -forjar validate -f new.yaml -forjar plan -f new.yaml -``` - -## Workspaces - -Workspaces provide isolated state directories for multi-environment workflows. Each workspace stores state in `state///`. - -```bash -# Create and select a workspace -forjar workspace new staging -forjar workspace new production - -# List workspaces (* = active) -forjar workspace list - -# Switch workspace -forjar workspace select production - -# Show current workspace -forjar workspace current - -# Delete a workspace -forjar workspace delete staging --yes -``` - -### Using workspaces with commands - -Use `-w ` to override the active workspace: - -```bash -# Plan against staging state -forjar plan -f forjar.yaml -w staging - -# Apply to production -forjar apply -f forjar.yaml -w production - -# Drift check for staging -forjar drift -f forjar.yaml -w staging -``` - -The `{{params.workspace}}` template variable is automatically injected, enabling workspace-aware configs: - -```yaml -resources: - config: - type: file - machine: web - path: "/etc/app/{{params.workspace}}.conf" - content: "env={{params.workspace}}" -``` - -**Workspace resolution** (first match wins): - -1. `-w ` flag on command -2. `.forjar/workspace` file (set by `workspace select`) -3. `"default"` (no workspace isolation) - -## Policy Enforcement - -Define policy rules in `forjar.yaml` to enforce standards at plan time: - -```yaml -policies: - - type: require - message: "file resources must specify owner" - resource_type: file - field: owner - - - type: deny - message: "files must not be owned by root" - resource_type: file - condition_field: owner - condition_value: root - - - type: warn - message: "all resources should be tagged" - field: tags -``` - -```bash -# Check policies without applying -forjar policy -f forjar.yaml - -# JSON output for CI -forjar policy -f forjar.yaml --json -``` - -Rule types: - -| Type | Behavior | -|------|----------| -| `require` | Resource must have the `field` set. Blocks apply. | -| `deny` | Blocks if `condition_field == condition_value`. | -| `warn` | Advisory only. Logged but does not block. | - -Filters: `resource_type` limits to one resource type; `tag` limits to resources with a specific tag. - -## Triggers - -Define `triggers:` on any resource to force re-apply when a dependency changes: - -```yaml -resources: - nginx-config: - type: file - machine: web - path: /etc/nginx/nginx.conf - content: | - server { listen 80; } - - nginx-service: - type: service - machine: web - name: nginx - depends_on: [nginx-config] - triggers: [nginx-config] -``` - -When `nginx-config` converges (content changed), `nginx-service` is forced to re-apply even if its own state hasn't changed. This is the general-purpose version of the service-specific `restart_on` field — it works on **any** resource type. - -Key differences: - -| Feature | `depends_on` | `restart_on` | `triggers` | -|---------|-------------|-------------|------------| -| Purpose | Execution order | Service restart | Force re-apply | -| Scope | All types | Services only | All types | -| Effect | Runs first | Restarts service | Re-applies resource | - -Multiple triggers are supported: `triggers: [config-a, config-b]` fires if **either** source converges. - -## Notification Hooks - -Configure `policy.notify` to run shell commands after apply or drift events: - -```yaml -policy: - notify: - on_success: "curl -X POST https://hooks.slack.com/... -d '{\"text\": \"{{machine}}: {{converged}} converged\"}'" - on_failure: "echo 'ALERT: {{machine}} failed {{failed}} resources' | mail -s 'forjar failure' ops@example.com" - on_drift: "echo 'Drift detected on {{machine}}: {{drift_count}} resources' >> /var/log/drift.log" -``` - -Template variables: - -| Hook | Variables | -|------|-----------| -| `on_success` | `{{machine}}`, `{{converged}}`, `{{unchanged}}`, `{{failed}}` | -| `on_failure` | `{{machine}}`, `{{converged}}`, `{{unchanged}}`, `{{failed}}` | -| `on_drift` | `{{machine}}`, `{{drift_count}}` | - -Notification hooks are **advisory** — failures are logged as warnings but do not affect the exit code. Hooks run per machine after apply/drift completes. - -## Data Sources - -Define external data sources in the `data:` block. Values are resolved once at plan time and available as `{{data.key}}` templates: - -```yaml -data: - hostname: - type: command - value: "hostname -f" - app_version: - type: file - value: "VERSION" - default: "0.0.0" - dns_addr: - type: dns - value: "api.example.com" - default: "127.0.0.1" - -resources: - config: - type: file - machine: web - path: /etc/app/config.yaml - content: | - hostname: {{data.hostname}} - version: {{data.app_version}} - api_addr: {{data.dns_addr}} -``` - -Data source types: - -| Type | Behavior | -|------|----------| -| `file` | Read file contents (trimmed). Falls back to `default` if missing. | -| `command` | Run shell command, capture stdout (trimmed). Falls back to `default` on failure. | -| `dns` | Resolve hostname to IP address. Falls back to `default` on failure. | - -Data sources are evaluated before template resolution, so `{{data.*}}` variables work anywhere `{{params.*}}` works. - -## Environment Files - -Use `--env-file` to load param overrides from an external YAML file. This enables -environment-specific configurations without modifying `forjar.yaml`: - -```yaml -# envs/production.yaml -data_dir: /mnt/prod/data -log_level: warn -replicas: "3" - -# envs/staging.yaml -data_dir: /tmp/staging -log_level: debug -replicas: "1" -``` - -```bash -# Plan with production params -forjar plan -f forjar.yaml --env-file envs/production.yaml - -# Apply staging -forjar apply -f forjar.yaml --env-file envs/staging.yaml - -# Drift check with production params -forjar drift -f forjar.yaml --env-file envs/production.yaml --state-dir state -``` - -**Param precedence** (last wins): - -1. `params:` in `forjar.yaml` (base defaults) -2. `--env-file` values (environment overrides) -3. `--param KEY=VALUE` flags (CLI overrides) - -## Command Cheat Sheet - -Quick reference for the most common workflows: - -```bash -# First time setup -forjar init my-project -cd my-project - -# Edit → Validate → Plan → Apply cycle -$EDITOR forjar.yaml -forjar validate -f forjar.yaml -forjar plan -f forjar.yaml --state-dir state/ -forjar apply -f forjar.yaml --state-dir state/ - -# Verify idempotency (should report 0 converged) -forjar apply -f forjar.yaml --state-dir state/ - -# Check for unauthorized changes -forjar drift -f forjar.yaml --state-dir state/ - -# View what happened -forjar history --state-dir state/ -n 10 -forjar status --state-dir state/ - -# Debug a specific resource -forjar show -f forjar.yaml -r --json -forjar plan -f forjar.yaml --output-dir /tmp/scripts/ - -# Clean up / format -forjar fmt -f forjar.yaml -forjar lint -f forjar.yaml -``` - -## Pipeline Patterns - -### CI Validation Gate - -Run in CI before merging config changes: - -```bash -#!/bin/bash -set -euo pipefail - -# Validate config syntax and structure -forjar validate -f forjar.yaml - -# Lint for style issues -forjar lint -f forjar.yaml - -# Preview changes (informational) -forjar plan -f forjar.yaml --state-dir state/ - -# Check for formatting issues -forjar fmt -f forjar.yaml --check -``` - -### Production Deploy Pipeline - -```bash -#!/bin/bash -set -euo pipefail - -# 1. Check for drift before applying -forjar drift -f forjar.yaml --state-dir state/ --tripwire || { - echo "Drift detected — review before deploying" - exit 1 -} - -# 2. Apply changes -forjar apply -f forjar.yaml --state-dir state/ - -# 3. Verify state -forjar status --state-dir state/ - -# 4. Commit state changes -git add state/ -git commit -m "forjar: deploy $(date -I)" -``` - -### Scheduled Drift Monitor - -```bash -#!/bin/bash -# Run via cron or systemd timer - -forjar drift -f forjar.yaml --state-dir state/ --tripwire \ - --alert-cmd "/opt/scripts/notify.sh" \ - --json > /var/log/forjar-drift.json 2>&1 - -# --tripwire exits non-zero on drift -# --alert-cmd runs notify script with $FORJAR_DRIFT_COUNT -``` - -## Global Flags - -These flags work with all commands: - -| Flag | Description | -|------|-------------| -| `-f, --file` | Path to forjar.yaml config file | -| `--state-dir` | Path to state directory (default: `state`) | -| `-m, --machine` | Filter to specific machine | -| `-r, --resource` | Filter to specific resource | -| `-t, --tag` | Filter to resources with specific tag | -| `--json` | Output in JSON format (for scripting) | -| `--verbose` | Increase output verbosity | -| `--quiet` | Suppress non-error output | - -## Exit Codes - -| Code | Meaning | -|------|---------| -| 0 | Success (no errors, no drift with `--tripwire`) | -| 1 | Error (validation failure, apply failure, drift detected with `--tripwire`, unformatted file with `fmt --check`) | - -## Command Reference - -### forjar validate - -Validates configuration without touching any machine. Checks: -- YAML syntax -- Schema compliance (version, machines, resources) -- Resource type-specific field requirements -- Machine references -- Dependency graph (cycles, unknown refs, self-deps) -- Recipe expansion and input validation - -```bash -# Validate a config file -forjar validate -f forjar.yaml - -# Validate with verbose output (shows expanded resources) -forjar validate -f forjar.yaml --verbose - -# Validate in CI (non-zero exit on failure) -forjar validate -f forjar.yaml || exit 1 -``` - -### forjar plan - -Shows what would change without applying. Compares desired state hashes against the lock file: - -```bash -# Basic plan -forjar plan -f forjar.yaml --state-dir state/ - -# Plan specific machine -forjar plan -f forjar.yaml --state-dir state/ -m web-server - -# Plan with JSON output -forjar plan -f forjar.yaml --state-dir state/ --json - -# Plan only tagged resources -forjar plan -f forjar.yaml --state-dir state/ --tag critical -``` - -Plan output symbols: -- `+` — Resource will be created (no previous hash) -- `~` — Resource will be updated (hash changed) -- `-` — Resource will be destroyed (state: absent) -- ` ` — Resource is unchanged (hash matches) - -### forjar apply - -Executes the plan — converges infrastructure to desired state: - -```bash -# Standard apply -forjar apply -f forjar.yaml --state-dir state/ - -# Force re-apply everything (ignore hash comparison) -forjar apply -f forjar.yaml --state-dir state/ --force - -# Dry run — show plan only, don't execute -forjar apply -f forjar.yaml --state-dir state/ --dry-run - -# Apply with timeout (per-resource) -forjar apply -f forjar.yaml --state-dir state/ --timeout 120 - -# Apply specific resource only -forjar apply -f forjar.yaml --state-dir state/ -r nginx-config -``` - -### forjar apply --report - -Print per-resource timing report after apply: - -```bash -forjar apply -f forjar.yaml --report -``` - -Shows resource ID, type, status, and duration for each resource. Combine with `--json` for machine-readable output that includes a `resource_reports` array. Apply reports are also persisted to `state//last-apply.yaml`. - -### forjar drift - -Detects unauthorized changes by comparing live state to lock file: - -```bash -# Basic drift check -forjar drift -f forjar.yaml --state-dir state/ - -# Tripwire mode (non-zero exit on drift) -forjar drift -f forjar.yaml --state-dir state/ --tripwire - -# Full drift (re-query all resource types via transport) -forjar drift -f forjar.yaml --state-dir state/ --full - -# Auto-remediate (re-apply drifted resources) -forjar drift -f forjar.yaml --state-dir state/ --auto-remediate - -# With custom alert -forjar drift -f forjar.yaml --state-dir state/ --alert-cmd ./notify.sh -``` - -### forjar anomaly - -Analyzes event log history for suspicious patterns: - -```bash -# Run anomaly detection -forjar anomaly --state-dir state/ - -# JSON output for monitoring integration -forjar anomaly --state-dir state/ --json -``` - -### forjar history - -Shows the event log for a machine: - -```bash -# Last 10 events -forjar history --state-dir state/ - -# Last 50 events for specific machine -forjar history --state-dir state/ -m web-server -n 50 - -# JSON output -forjar history --state-dir state/ --json -``` - -### forjar graph - -Generates a dependency graph in Mermaid format: - -```bash -# Output Mermaid diagram -forjar graph -f forjar.yaml - -# Render in terminal (requires mmdc/mermaid-cli) -forjar graph -f forjar.yaml | mmdc -o graph.png -``` - -### forjar fmt - -Formats forjar.yaml for consistent style: - -```bash -# Format in-place -forjar fmt -f forjar.yaml - -# Check formatting (CI mode — non-zero exit if unformatted) -forjar fmt -f forjar.yaml --check -``` - -## Shell Completion - -### Bash - -```bash -# Generate completion script -forjar completions bash > /etc/bash_completion.d/forjar - -# Or in user directory -forjar completions bash > ~/.local/share/bash-completion/completions/forjar -``` - -### Zsh - -```zsh -# Generate completion script -forjar completions zsh > ~/.zfunc/_forjar - -# Add to .zshrc -fpath=(~/.zfunc $fpath) -autoload -Uz compinit && compinit -``` - -### Fish - -```fish -forjar completions fish > ~/.config/fish/completions/forjar.fish -``` - -## Environment Variables - -| Variable | Description | -|----------|-------------| -| `FORJAR_SECRET_*` | Secret values referenced by `{{secrets.X}}` templates | -| `FORJAR_CONFIG` | Default config file path (alternative to `-f`) | -| `FORJAR_STATE_DIR` | Default state directory (alternative to `--state-dir`) | -| `FORJAR_LOG_LEVEL` | Log verbosity: `error`, `warn`, `info`, `debug`, `trace` | -| `NO_COLOR` | Disable colored output (standard convention) | - -## Command Patterns - -### Pipeline Workflows - -Chain commands for common workflows: - -```bash -# Validate → Plan → Apply (full pipeline) -forjar validate -f forjar.yaml && \ -forjar plan -f forjar.yaml --state-dir state/ && \ -forjar apply -f forjar.yaml --state-dir state/ - -# Drift check → Auto-remediate -forjar drift -f forjar.yaml --state-dir state/ --tripwire || \ -forjar apply -f forjar.yaml --state-dir state/ --force -``` - -### Multi-Environment Management - -```bash -# Apply to staging first, then production -forjar apply -f forjar.yaml --state-dir state-staging/ -p env=staging -forjar drift -f forjar.yaml --state-dir state-staging/ --tripwire -# If staging looks good: -forjar apply -f forjar.yaml --state-dir state-production/ -p env=production -``` - -### Script Auditing - -```bash -# Export all scripts for security review -forjar plan -f forjar.yaml --output-dir /tmp/audit/ - -# Review specific resource scripts -cat /tmp/audit/check_nginx-conf.sh -cat /tmp/audit/apply_nginx-conf.sh - -# Run a check script manually -bash /tmp/audit/check_nginx-conf.sh && echo "Already converged" || echo "Needs apply" -``` - -### Selective Application - -```bash -# Apply only to specific machine -forjar apply -f forjar.yaml --state-dir state/ -m web-server - -# Apply only tagged resources -forjar apply -f forjar.yaml --state-dir state/ --tag critical - -# Apply only specific resource -forjar apply -f forjar.yaml --state-dir state/ -r nginx-conf -``` - -### Import and Bootstrap - -```bash -# Import existing machine state (no changes made) -forjar import -f forjar.yaml -m web-01 --state-dir state/ - -# Initialize a new project -forjar init ./my-infra -cd my-infra -# Edit forjar.yaml, then: -forjar validate -f forjar.yaml -forjar apply -f forjar.yaml --state-dir state/ -``` - -## Exit Codes - -| Code | Meaning | -|------|---------| -| 0 | Success | -| 1 | Error (validation, apply failure, etc.) | -| 2 | Drift detected (for `drift` command) | - -Scripts can use exit codes for automation: - -```bash -if forjar drift -f forjar.yaml --state-dir state/ 2>/dev/null; then - echo "No drift detected" -else - echo "Drift found — reconverging" - forjar apply -f forjar.yaml --state-dir state/ -fi -``` - -## bashrs Lint Integration - -Starting with FJ-036, `forjar lint` includes **bashrs script diagnostics** alongside the config-level lint checks described above. When you run `forjar lint`, forjar generates all three scripts (check, apply, state_query) for every resource in the config and runs each through the bashrs linter. The results are merged into the lint report. - -### What Gets Checked - -For each resource in the config, forjar calls `codegen::check_script`, `codegen::apply_script`, and `codegen::state_query_script` to produce the shell scripts that would be executed during `forjar apply`. Each script is then passed to `purifier::lint_script()`, which runs the bashrs linter and returns diagnostics with severity levels and diagnostic codes. - -Error-severity diagnostics are reported individually by resource and script kind. Warning-severity diagnostics are counted in aggregate. The summary line at the end shows total errors and warnings across all resources. - -### Diagnostic Code Prefixes - -bashrs diagnostics use prefixed codes that indicate the category of the finding: - -| Prefix | Category | Meaning | -|--------|----------|---------| -| **SEC** | Security | Injection risk, unquoted variable expansion, unsafe eval patterns | -| **DET** | Determinism | Non-deterministic commands (date, random, pid) that break reproducibility | -| **IDEM** | Idempotency | Operations that create or modify without checking current state first | -| **SC** | ShellCheck | Standard ShellCheck-equivalent rules (SC2162, SC2086, etc.) | - -SEC-prefixed findings identify shell injection vectors and unsafe variable handling. DET-prefixed findings flag commands whose output varies between runs, which matters for hash-based drift detection. IDEM-prefixed findings flag operations that are not idempotent, meaning running them twice may produce different results. - -### Example Output - -Running `forjar lint` on a config with package and file resources: - -``` -$ forjar lint -f forjar.yaml - warn: bashrs: web-packages/apply [SEC002] unquoted variable: $SUDO - warn: bashrs: deploy-user/apply [SEC002] unquoted variable: $SUDO - warn: bashrs script lint: 0 error(s), 4 warning(s) across 6 resources - -Lint: 3 warning(s) -``` - -In this example, the SEC002 warnings come from the `$SUDO` privilege escalation pattern used by package, user, cron, and network resource handlers. This pattern is intentional -- when `$SUDO` is empty (running as root), the empty expansion causes it to disappear cleanly. bashrs reports it as a warning rather than an error because the pattern is recognized as safe. - -Handlers that produce zero-diagnostic scripts include file, directory, symlink, service, and mount. These handlers use only static, single-quoted arguments with no dynamic variable expansion. - -### JSON Output - -With `--json`, bashrs diagnostics appear in the `findings` array alongside config-level warnings: - -```bash -forjar lint -f forjar.yaml --json -``` - -```json -{ - "warnings": 3, - "findings": [ - "bashrs: web-packages/apply [SEC002] unquoted variable: $SUDO", - "bashrs: deploy-user/apply [SEC002] unquoted variable: $SUDO", - "bashrs script lint: 0 error(s), 4 warning(s) across 6 resources" - ] -} -``` - -### CI Integration - -In CI pipelines, `forjar lint` returns exit code 0 even when warnings are present (warnings are informational). To fail on any bashrs error-severity finding, combine lint with validation: - -```bash -# Validate structure + lint for style and script safety -forjar validate -f forjar.yaml && forjar lint -f forjar.yaml -``` - -If bashrs reports Error-severity diagnostics (as opposed to warnings), those are included as individual lint findings. Since `forjar apply` also validates scripts before execution via `validate_script()`, Error-severity bashrs findings will block apply regardless, but catching them at lint time provides earlier feedback. - -## Exit Code Reference - -Forjar uses a minimal set of exit codes. The main binary (`src/main.rs`) dispatches to command handlers; if any handler returns `Err`, the process exits with code 1. Success always returns code 0. The `drift` command with `--tripwire` uses code 2 to signal drift detection without implying an error in the tool itself. - -| Code | Meaning | Commands | -|------|---------|----------| -| 0 | Success: operation completed without errors or findings | All commands | -| 1 | Error: validation failure, apply failure, parse error, I/O error, or unformatted file (`fmt --check`) | All commands | -| 2 | Drift detected: live state does not match lock file (not an error in forjar itself) | `drift --tripwire` | - -### Per-Command Details - -| Command | Exit 0 | Exit 1 | Exit 2 | -|---------|--------|--------|--------| -| `init` | Project initialized | Directory creation failed | -- | -| `validate` | Config is valid | Parse error, schema violation, cycle detected | -- | -| `plan` | Plan generated | Config invalid, state directory unreadable | -- | -| `apply` | All resources converged or unchanged | Any resource failed, config invalid, transport error | -- | -| `drift` | No drift found | Config invalid, state unreadable, transport error | Drift detected (`--tripwire`) | -| `status` | Status displayed | State directory missing or unreadable | -- | -| `history` | Events displayed | Event log missing or corrupt | -- | -| `show` | Resolved config displayed | Config invalid, template resolution failure | -- | -| `graph` | Graph generated | Config invalid | -- | -| `destroy` | Resources removed | `--yes` not provided, transport error | -- | -| `import` | Config generated | Connection failed, scan error | -- | -| `diff` | Diff displayed | State directories missing or unreadable | -- | -| `check` | All checks passed | Any check failed, transport error | -- | -| `fmt` | File formatted (or already formatted) | Parse error; unformatted file with `--check` | -- | -| `lint` | Lint completed (warnings are informational) | Config invalid | -- | -| `rollback` | Rollback applied | Git history unavailable, apply failure | -- | -| `anomaly` | Analysis completed | State directory unreadable | -- | - -### Scripting with Exit Codes - -```bash -# Gate deployment on validation + drift check -forjar validate -f forjar.yaml || exit 1 -forjar drift -f forjar.yaml --tripwire -case $? in - 0) echo "Clean — proceeding with deploy" ;; - 2) echo "Drift detected — investigate before deploying"; exit 1 ;; - *) echo "Error running drift check"; exit 1 ;; -esac -forjar apply -f forjar.yaml -``` - -The distinction between exit code 1 (tool error) and exit code 2 (drift signal) allows scripts to differentiate between "forjar failed to run" and "forjar ran successfully and found drift." - -### `forjar mcp` - -Start the MCP (Model Context Protocol) server using pforge. This enables -AI agents to manage infrastructure through the same validated pipeline. - -```bash -forjar mcp -``` - -The server runs on stdio transport and exposes 9 tools: -`forjar_validate`, `forjar_plan`, `forjar_drift`, `forjar_lint`, -`forjar_graph`, `forjar_show`, `forjar_status`, `forjar_trace`, -`forjar_anomaly`. - -Configure in your MCP client: - -```json -{ - "mcpServers": { - "forjar": { - "command": "forjar", - "args": ["mcp"] - } - } -} -``` - -Export tool schemas as JSON (for external consumers, IDEs, documentation): - -```bash -forjar mcp --schema > docs/mcp-schema.json -``` - -See Architecture chapter for full tool reference and handler details. - -### `forjar bench` - -Run inline performance benchmarks that validate spec §9 targets. - -```bash -forjar bench -forjar bench --iterations 10000 -forjar bench --json -``` - -| Flag | Description | -|------|-------------| -| `--iterations N` | Iterations per benchmark (default: 1000) | -| `--json` | Output results as JSON | - -Benchmarks: -- **validate** — Parse + validate a 3-machine, 20-resource config -- **plan** — Full plan pipeline: parse → DAG → diff -- **drift** — Load lock + drift detection on 100 resources -- **blake3** — BLAKE3 hash of a 4KB string - -Example output: - -``` -Forjar Performance Benchmarks (1000 iterations) - - Operation Average Target - -------------------------------------------------------- - validate (3m, 20r) 62.0µs < 10ms - plan (3m, 20r) 84.0µs < 2s - drift (100 resources) 356.0µs < 1s - blake3 hash (4KB) 0.5µs < 1µs -``` - -### `forjar state-list` - -Tabular view of all resources in state with type, status, hash prefix, and timestamp. - -```bash -forjar state-list -forjar state-list --machine web01 -forjar state-list --json -``` - -| Flag | Description | -|------|-------------| -| `--state-dir PATH` | State directory (default: `state`) | -| `--machine NAME` | Filter to specific machine | -| `--json` | Output as JSON array | - -### `forjar state-mv` - -Rename a resource in state without re-applying. Preserves hash and metadata. - -```bash -forjar state-mv old-resource-id new-resource-id -forjar state-mv old-name new-name --machine web01 -``` - -| Flag | Description | -|------|-------------| -| `--state-dir PATH` | State directory (default: `state`) | -| `--machine NAME` | Target specific machine | - -### `forjar state-rm` - -Remove a resource from state without destroying it on the machine. - -```bash -forjar state-rm deprecated-resource -forjar state-rm old-config --machine web01 -forjar state-rm legacy --force -``` - -| Flag | Description | -|------|-------------| -| `--state-dir PATH` | State directory (default: `state`) | -| `--machine NAME` | Target specific machine | -| `--force` | Skip dependency check | - -### `forjar output` - -Show resolved output values from the `outputs:` block in forjar.yaml. - -```bash -forjar output # all outputs -forjar output app_url # single key -forjar output --json # JSON format -forjar output -f other.yaml # different config -``` - -| Flag | Description | -|------|-------------| -| `-f PATH` | Path to forjar.yaml (default: `forjar.yaml`) | -| `--json` | Output as JSON | - -Output values support `{{params.*}}` and `{{machine.NAME.FIELD}}` template variables, resolved at display time. - -### `forjar lock` - -Generate a lock file from config without applying anything to machines. Resolves templates, computes BLAKE3 hashes for all desired-state resources, and writes the lock file. Use `--verify` in CI to assert that the committed lock matches the current config. - -```bash -forjar lock -f forjar.yaml # generate lock files -forjar lock -f forjar.yaml --verify # verify lock matches config (exit 1 on mismatch) -forjar lock -f forjar.yaml --json # JSON output -``` - -| Flag | Description | -|------|-------------| -| `-f PATH` | Path to forjar.yaml (default: `forjar.yaml`) | -| `--state-dir PATH` | State directory to write lock files into (default: `state`) | -| `--verify` | Compare computed hashes against existing lock; exit 1 if mismatch | -| `--json` | Output as JSON | - -### `forjar snapshot` - -Save, list, and restore named state snapshots for safe rollbacks and checkpoint-based workflows. - -#### Save a snapshot - -```bash -forjar snapshot save pre-upgrade -forjar snapshot save production-2024-02-26 -forjar snapshot save --state-dir /var/forjar/state backup-name -``` - -Copies the entire `state/` directory to `state/snapshots//`, preserving lock files and event logs for later restore. - -#### List available snapshots - -```bash -forjar snapshot list -forjar snapshot list --json -``` - -Shows all snapshots with creation timestamps. Sample output: - -``` -Snapshots: - pre-upgrade created 2024-02-26 14:32:15 - production-2024-02-26 created 2024-02-26 13:45:22 -``` - -#### Restore a snapshot - -```bash -forjar snapshot restore pre-upgrade -forjar snapshot restore production-2024-02-26 --state-dir /var/forjar/state -``` - -Replaces the current `state/` with the saved snapshot. The previous state is preserved in `state/snapshots/_previous/` for emergency recovery. - -#### Delete a snapshot - -```bash -forjar snapshot delete pre-upgrade -forjar snapshot delete old-backup --force -``` - -Removes a snapshot. Use `--force` to skip confirmation. - -| Flag | Description | -|------|-------------| -| `--state-dir PATH` | State directory (default: `state`) | -| `--json` | Output as JSON | -| `--force` | Skip confirmation prompts | - -**Use case**: Before a major config change, save a snapshot. If the apply fails or causes issues, restore the snapshot to revert state without re-running the previous converge. - -`forjar lock` is useful in CI pipelines where you want to pre-compute and commit the expected lock file, then verify on each run that config and lock stay in sync — without executing any apply against real machines. - -### `forjar schema` - -Export the JSON Schema for `forjar.yaml` to stdout. The schema describes every valid field, type, and constraint for machines, resources, and policy configuration. - -```bash -forjar schema -``` - -No arguments or flags are required. The schema is printed as JSON to stdout. - -#### Use Cases - -**Save to file for IDE integration:** - -```bash -forjar schema > forjar-schema.json -``` - -**VS Code YAML extension** — add to `.vscode/settings.json`: - -```json -{ - "yaml.schemas": { - "./forjar-schema.json": "forjar.yaml" - } -} -``` - -This gives you inline validation, field completion, and hover documentation as you edit `forjar.yaml`. - -**CI validation** — validate config against the schema without connecting to machines: - -```bash -forjar schema > /tmp/schema.json -# Use any JSON Schema validator -``` - -The schema covers the complete `ForjarConfig` structure: `version`, `name`, `description`, `params`, `machines`, `resources` (all 11 types with their fields), `policy`, `recipes`, and `includes`. - -### `forjar watch` - -Watch a config file for changes and automatically re-plan. - -```bash -forjar watch -f [--interval N] [--state-dir DIR] [--apply --yes] -``` - -| Flag | Default | Description | -|------|---------|-------------| -| `-f, --file` | `forjar.yaml` | Config file to watch | -| `--interval` | `2` | Polling interval in seconds | -| `--state-dir` | `state` | Directory for lock files | -| `--apply` | false | Auto-apply on change (requires `--yes`) | -| `--yes` | false | Confirm auto-apply (must be combined with `--apply`) | - -Uses filesystem polling (no inotify dependency). On each detected change, forjar re-reads the config and prints an updated plan. Press `Ctrl-C` to stop. - -**Watch and plan only (safe):** - -```bash -forjar watch -f forjar.yaml -``` - -**Custom polling interval:** - -```bash -forjar watch -f forjar.yaml --interval 5 -``` - -**Auto-apply on change (requires both flags):** - -```bash -forjar watch -f forjar.yaml --apply --yes -``` - -Both `--apply` and `--yes` are required for auto-apply. Passing `--apply` alone will error, preventing accidental unattended applies. diff --git a/docs/book/book.toml b/docs/book/book.toml new file mode 100644 index 00000000..8f45b531 --- /dev/null +++ b/docs/book/book.toml @@ -0,0 +1,9 @@ +[book] +title = "The Forjar Book" +authors = ["PAIML Engineering"] +language = "en" +src = "src" + +[output.html] +default-theme = "navy" +git-repository-url = "https://github.com/paiml/forjar" diff --git a/docs/book/01-getting-started.md b/docs/book/src/01-getting-started.md similarity index 73% rename from docs/book/01-getting-started.md rename to docs/book/src/01-getting-started.md index ab8bf100..4fed310f 100644 --- a/docs/book/01-getting-started.md +++ b/docs/book/src/01-getting-started.md @@ -16,7 +16,7 @@ Verify: forjar --help ``` -You should see forjar's 66 subcommands: `init`, `validate`, `plan`, `apply`, `drift`, `status`, `history`, `destroy`, `import`, `show`, `graph`, `check`, `diff`, `fmt`, `lint`, `rollback`, `anomaly`, `trace`, `migrate`, `mcp`, `bench`, `state-list`, `state-mv`, `state-rm`, `output`, `policy`, `workspace`, `secrets`, `doctor`, `completion`, `lock`, `snapshot`, `schema`, `watch`, `explain`, `env`, `test`, `inventory`, `retry-failed`, `rolling`, `canary`, `audit`, `plan-compact`, `compliance`, `export`, `suggest`, `compare`, `lock-prune`, `env-diff`, `template`, `lock-info`, `lock-compact`, `lock-verify`, `lock-export`, `lock-gc`, `lock-diff`, `lock-merge`, `lock-rebase`, `lock-sign`, `lock-verify-sig`, `lock-compact-all`, `lock-audit-trail`, `lock-rotate-keys`, `lock-backup`. +You should see forjar's 79 subcommands: `init`, `validate`, `plan`, `apply`, `drift`, `status`, `history`, `destroy`, `import`, `show`, `graph`, `check`, `diff`, `fmt`, `lint`, `rollback`, `anomaly`, `trace`, `migrate`, `mcp`, `bench`, `state-list`, `state-mv`, `state-rm`, `output`, `policy`, `workspace`, `secrets`, `doctor`, `completion`, `lock`, `snapshot`, `schema`, `watch`, `explain`, `env`, `test`, `inventory`, `retry-failed`, `rolling`, `canary`, `audit`, `plan-compact`, `compliance`, `export`, `suggest`, `compare`, `lock-prune`, `env-diff`, `template`, `lock-info`, `lock-compact`, `lock-verify`, `lock-export`, `lock-gc`, `lock-diff`, `lock-merge`, `lock-rebase`, `lock-sign`, `lock-verify-sig`, `lock-compact-all`, `lock-audit-trail`, `lock-rotate-keys`, `lock-backup`, `lock-verify-chain`, `lock-stats`, `lock-audit`, `lock-compress`, `lock-defrag`, `lock-normalize`, `lock-validate`, `lock-verify-hmac`, `lock-archive`, `lock-snapshot`, `lock-repair`. ## Your First Project @@ -2663,6 +2663,947 @@ forjar status --trend 20 --state-dir state forjar status --trend 50 --machine gpu-box --json --state-dir state ``` +### Grafana Notification + +Send apply annotations to Grafana for dashboard integration: + +```bash +forjar apply -f forjar.yaml --notify-grafana https://grafana.example.com/api/annotations +``` + +### Security Check + +Scan for insecure permissions, ports, or user configurations: + +```bash +forjar validate -f forjar.yaml --check-security +forjar validate -f forjar.yaml --check-security --json +``` + +### Failure Prediction + +Predict next failure based on historical patterns: + +```bash +forjar status --prediction --state-dir state +forjar status --prediction --machine gpu-box --json --state-dir state +``` + +### Resource Rate Limiting + +Apply at most N resources per minute: + +```bash +forjar apply -f forjar.yaml --rate-limit-resources 10 +``` + +### Graph Hotspots + +Highlight resources with most changes and failures: + +```bash +forjar graph -f forjar.yaml --hotspots +``` + +### Checkpoint Interval + +Save intermediate state during long applies for resumability: + +```bash +forjar apply -f forjar.yaml --checkpoint-interval 60 +``` + +### Capacity Planning + +Show resource utilization vs limits per machine: + +```bash +forjar status --capacity --state-dir state +forjar status --capacity --machine gpu-box --json --state-dir state +``` + +### VictorOps Notification + +Send apply events to VictorOps/Splunk On-Call: + +```bash +forjar apply -f forjar.yaml --notify-victorops your-api-key +``` + +### Deprecation Check + +Warn on deprecated resource fields or types: + +```bash +forjar validate -f forjar.yaml --check-deprecation +forjar validate -f forjar.yaml --check-deprecation --json +``` + +### Cost Estimate + +Estimate resource cost based on type complexity: + +```bash +forjar status --cost-estimate --state-dir state +forjar status --cost-estimate --json --state-dir state +``` + +### Blue/Green Deployment + +Deploy with blue/green machine pairs: + +```bash +forjar apply -f forjar.yaml --blue-green web-blue +``` + +### Graph Timeline + +Show resource application order as ASCII timeline: + +```bash +forjar graph -f forjar.yaml --timeline-graph +``` + +### Lock Chain Verification + +Verify full chain of custody from lock signatures: + +```bash +forjar lock-verify-chain --state-dir state +forjar lock-verify-chain --state-dir state --json +``` + +### Dry Run Cost + +Show estimated changes without applying: + +```bash +forjar apply -f forjar.yaml --dry-run-cost +``` + +### Staleness Report + +Show resources not applied within a configurable window: + +```bash +forjar status --staleness-report 7d --state-dir state +forjar status --staleness-report 30d --machine gpu-box --json --state-dir state +``` + +### Check Drift Risk + +Score drift risk based on resource volatility: + +```bash +forjar validate --check-drift-risk -f forjar.yaml +forjar validate --check-drift-risk -f forjar.yaml --json +``` + +### MS Teams Adaptive Cards + +Send rich Adaptive Card notifications to Microsoft Teams: + +```bash +forjar apply -f forjar.yaml --notify-msteams-adaptive https://outlook.office.com/webhook/... +``` + +### Progressive Rollout + +Apply changes to a percentage of machines progressively: + +```bash +forjar apply -f forjar.yaml --progressive 25 +forjar apply -f forjar.yaml --progressive 50 +``` + +### Approval Webhook + +Require external approval via webhook before applying: + +```bash +forjar apply -f forjar.yaml --approval-webhook https://api.example.com/approve +``` + +### Health Score + +Get a composite health score (0-100) across all machines: + +```bash +forjar status --health-score --state-dir state +forjar status --health-score --state-dir state --json +``` + +### Executive Summary + +One-line per machine summary for dashboards: + +```bash +forjar status --executive-summary --state-dir state +forjar status --executive-summary --state-dir state --json +``` + +### What-If Analysis + +Simulate removing a resource and show transitive impact: + +```bash +forjar graph --what-if base-packages -f forjar.yaml +forjar graph --what-if base-packages -f forjar.yaml --json +``` + +### Lock Stats + +Show lock file statistics (sizes, ages, resource counts): + +```bash +forjar lock-stats --state-dir state +forjar lock-stats --state-dir state --json +``` + +### Check Compliance + +Validate resources against a compliance policy (CIS, SOC2, HIPAA): + +```bash +forjar validate --check-compliance CIS -f forjar.yaml +forjar validate --check-compliance SOC2 -f forjar.yaml --json +forjar validate --check-compliance HIPAA -f forjar.yaml +``` + +### Incident Notification + +POST incidents to PagerDuty/Opsgenie on apply failure: + +```bash +forjar apply -f forjar.yaml --notify-incident ROUTING_KEY_123 +``` + +### Audit Trail + +Show full audit trail with who/what/when for each change: + +```bash +forjar status --audit-trail --state-dir state +forjar status --audit-trail --machine gpu-box --json --state-dir state +``` + +### Sign-Off + +Require named sign-off before apply proceeds: + +```bash +forjar apply -f forjar.yaml --sign-off noah +``` + +### Blast Radius + +Show all resources transitively affected by a change to a target: + +```bash +forjar graph --blast-radius base-packages -f forjar.yaml +forjar graph --blast-radius base-packages -f forjar.yaml --json +``` + +### Lock Audit + +Verify lock file integrity and detect tampering: + +```bash +forjar lock-audit --state-dir state +forjar lock-audit --state-dir state --json +``` + +### Check Portability + +Check resources for platform-specific assumptions: + +```bash +forjar validate --check-portability -f forjar.yaml +forjar validate --check-portability -f forjar.yaml --json +``` + +### AWS SNS Notification + +Publish apply events to AWS SNS topic: + +```bash +forjar apply -f forjar.yaml --notify-sns arn:aws:sns:us-east-1:123456789:forjar-events +``` + +### OpenTelemetry Spans + +POST OpenTelemetry spans for apply execution tracing: + +```bash +forjar apply -f forjar.yaml --telemetry-endpoint https://otel.example.com/v1/traces +``` + +### Runbook Link + +Attach runbook URL to apply for audit trail: + +```bash +forjar apply -f forjar.yaml --runbook https://wiki.example.com/runbook/deploy +``` + +### Resource Graph + +Show resource dependency graph from live state: + +```bash +forjar status --resource-graph --state-dir state +forjar status --resource-graph --machine gpu-box --json --state-dir state +``` + +### Drift Velocity + +Show drift rate over time: + +```bash +forjar status --drift-velocity --state-dir state +forjar status --drift-velocity --machine gpu-box --json --state-dir state +``` + +### Change Impact + +Show direct and indirect impact of changing a resource: + +```bash +forjar graph --change-impact base-packages -f forjar.yaml +forjar graph --change-impact base-packages -f forjar.yaml --json +``` + +### Lock Compress + +Compress old lock files by minifying YAML: + +```bash +forjar lock-compress --state-dir state +forjar lock-compress --state-dir state --json +``` + +### Check Resource Limits + +Validate resource counts don't exceed per-machine limits: + +```bash +forjar validate --check-resource-limits -f forjar.yaml +forjar validate --check-resource-limits -f forjar.yaml --json +``` + +### GCP Pub/Sub Notification + +Publish apply events to Google Cloud Pub/Sub: + +```bash +forjar apply -f forjar.yaml --notify-pubsub projects/my-proj/topics/forjar-events +``` + +### Fleet Strategy + +Fleet-wide rollout strategy (parallel, rolling, canary): + +```bash +forjar apply -f forjar.yaml --fleet-strategy rolling +forjar apply -f forjar.yaml --fleet-strategy canary +``` + +### Pre-Check Script + +Run validation script before apply proceeds: + +```bash +forjar apply -f forjar.yaml --pre-check /usr/local/bin/pre-deploy.sh +``` + +### Fleet Overview + +Aggregated fleet summary across all machines: + +```bash +forjar status --fleet-overview --state-dir state +forjar status --fleet-overview --state-dir state --json +``` + +### Machine Health + +Per-machine health details with resource breakdown: + +```bash +forjar status --machine-health --state-dir state +forjar status --machine-health --machine gpu-box --json --state-dir state +``` + +### Resource Types Graph + +Show graph colored/grouped by resource type: + +```bash +forjar graph --resource-types -f forjar.yaml +forjar graph --resource-types -f forjar.yaml --json +``` + +### Lock Defrag + +Defragment lock files (reorder resources alphabetically): + +```bash +forjar lock-defrag --state-dir state +forjar lock-defrag --state-dir state --json +``` + +### Check Unused Resources + +Detect resources not referenced by any dependency chain: + +```bash +forjar validate --check-unused -f forjar.yaml +forjar validate --check-unused -f forjar.yaml --json +``` + +### AWS EventBridge Notification + +Publish apply events to AWS EventBridge: + +```bash +forjar apply -f forjar.yaml --notify-eventbridge custom-bus +``` + +### Dry Run Graph + +Show execution graph without applying: + +```bash +forjar apply -f forjar.yaml --dry-run-graph +``` + +### Post-Check Script + +Run validation script after apply completes: + +```bash +forjar apply -f forjar.yaml --post-check /usr/local/bin/verify.sh +``` + +### Config Drift + +Compare running state against declared config: + +```bash +forjar status --config-drift --state-dir state +forjar status --config-drift --machine gpu-box --json --state-dir state +``` + +### Convergence Time + +Show average time to convergence per resource: + +```bash +forjar status --convergence-time --state-dir state +forjar status --convergence-time --machine gpu-box --json --state-dir state +``` + +### Topological Levels + +Show resources grouped by topological depth level: + +```bash +forjar graph --topological-levels -f forjar.yaml +forjar graph --topological-levels -f forjar.yaml --json +``` + +### Lock Normalize + +Normalize lock file format for consistency: + +```bash +forjar lock-normalize --state-dir state +forjar lock-normalize --state-dir state --json +``` + +### Advanced Orchestration (FJ-590→FJ-597) + +**Dependency validation** catches unresolved references before apply: + +```bash +forjar validate --check-dependencies -f forjar.yaml +forjar validate --check-dependencies -f forjar.yaml --json +``` + +**Resource timeline** shows event log history: + +```bash +forjar status --resource-timeline --state-dir state +forjar status --resource-timeline --state-dir state --json +``` + +**Error summary** aggregates failures across machines: + +```bash +forjar status --error-summary --state-dir state +forjar status --error-summary --state-dir state --json +``` + +**Execution order** shows the flattened DAG sort: + +```bash +forjar graph --execution-order -f forjar.yaml +forjar graph --execution-order -f forjar.yaml --json +``` + +**Lock validate** checks lock file integrity: + +```bash +forjar lock-validate --state-dir state +forjar lock-validate --state-dir state --json +``` + +**Kafka notifications** stream apply events: + +```bash +forjar apply -f forjar.yaml --notify-kafka my-topic +``` + +### Security Hardening & Audit (FJ-600→FJ-607) + +**Permission validation** checks for insecure file modes and ownership: + +```bash +forjar validate --check-permissions -f forjar.yaml +forjar validate --check-permissions -f forjar.yaml --json +``` + +**Security posture** shows security-relevant resource states: + +```bash +forjar status --security-posture --state-dir state +forjar status --security-posture --state-dir state --json +``` + +**Security boundaries** highlights resources crossing security zones: + +```bash +forjar graph --security-boundaries -f forjar.yaml +forjar graph --security-boundaries -f forjar.yaml --json +``` + +**HMAC verification** checks lock file signatures: + +```bash +forjar lock-verify-hmac --state-dir state +forjar lock-verify-hmac --state-dir state --json +``` + +**Pre-flight checks** gate apply with a validation script: + +```bash +forjar apply -f forjar.yaml --pre-flight "bash /path/to/check.sh" +``` + +### Resource Intelligence & Analytics (FJ-610→FJ-617) + +**Deep idempotency analysis** detects non-idempotent patterns: + +```bash +forjar validate --check-idempotency-deep -f forjar.yaml +forjar validate --check-idempotency-deep -f forjar.yaml --json +``` + +**Resource cost** estimates complexity by resource type: + +```bash +forjar status --resource-cost --state-dir state +forjar status --resource-cost --state-dir state --json +``` + +**Drift forecast** predicts drift risk based on resource types: + +```bash +forjar status --drift-forecast --state-dir state +forjar status --drift-forecast --state-dir state --json +``` + +**Resource age** shows when resources were last applied: + +```bash +forjar graph --resource-age -f forjar.yaml +forjar graph --resource-age -f forjar.yaml --json +``` + +**Lock archive** archives event logs to compressed storage: + +```bash +forjar lock-archive --state-dir state +forjar lock-archive --state-dir state --json +``` + +### Workflow Automation & Pipelines (FJ-620→FJ-627) + +**Machine reachability** validates machine addresses before apply: + +```bash +forjar validate --check-machine-reachability -f forjar.yaml +forjar validate --check-machine-reachability -f forjar.yaml --json +``` + +**Pipeline status** shows CI/CD integration health: + +```bash +forjar status --pipeline-status --state-dir state +forjar status --pipeline-status --state-dir state --json +``` + +**Parallel groups** shows which resources can run concurrently: + +```bash +forjar graph --parallel-groups -f forjar.yaml +forjar graph --parallel-groups -f forjar.yaml --json +``` + +**Lock snapshots** create point-in-time recovery points: + +```bash +forjar lock-snapshot --state-dir state +forjar lock-snapshot --state-dir state --json +``` + +**Resource dependencies** from runtime state: + +```bash +forjar status --resource-dependencies --state-dir state +``` + +### Advanced Diagnostics & Debugging (FJ-630→FJ-637) + +**Circular reference detection** catches circular deps: + +```bash +forjar validate --check-circular-refs -f forjar.yaml +forjar validate --check-circular-refs -f forjar.yaml --json +``` + +**Diagnostic report** provides comprehensive health analysis: + +```bash +forjar status --diagnostic --state-dir state +forjar status --diagnostic --state-dir state --json +``` + +**Critical chain** shows the longest dependency path: + +```bash +forjar graph --critical-chain -f forjar.yaml +forjar graph --critical-chain -f forjar.yaml --json +``` + +**Lock repair** fixes corrupted lock files: + +```bash +forjar lock-repair --state-dir state +forjar lock-repair --state-dir state --json +``` + +### Phase 50 — Production Readiness & Polish (FJ-640→FJ-647) + +**MQTT Notification** (FJ-640): Publish apply events to MQTT brokers for IoT integration. + +```bash +forjar apply -f forjar.yaml --notify-mqtt "infra/events" +``` + +**Naming Convention Validation** (FJ-641): Enforce kebab-case naming conventions across all resources. + +```bash +forjar validate -f forjar.yaml --check-naming-conventions +forjar validate -f forjar.yaml --check-naming-conventions --json +``` + +**Resource Uptime** (FJ-642): Show resource uptime based on convergence history. + +```bash +forjar status --uptime --state-dir state +forjar status --uptime --state-dir state --json +``` + +**Confirmation Message** (FJ-643): Custom confirmation message before apply. + +```bash +forjar apply -f forjar.yaml --confirmation-message "Deploying to production" +``` + +**Dependency Depth** (FJ-644): Show max dependency depth per resource for complexity analysis. + +```bash +forjar graph -f forjar.yaml --dependency-depth +forjar graph -f forjar.yaml --dependency-depth --json +``` + +**Lock History** (FJ-645): Show lock file change history with diffs for audit trail. + +```bash +forjar lock-history --state-dir state +forjar lock-history --state-dir state --json --limit 50 +``` + +**Summary Only** (FJ-646): Show only summary output, no per-resource details. + +```bash +forjar apply -f forjar.yaml --summary-only +``` + +**Recommendations** (FJ-647): State-based recommendations for improving infrastructure health. + +```bash +forjar status --recommendations --state-dir state +forjar status --recommendations --state-dir state --json +``` + +### Phase 51 — Environment & Configuration Management (FJ-650→FJ-657) + +**Redis Notification** (FJ-650): Publish apply events to Redis pub/sub. + +```bash +forjar apply -f forjar.yaml --notify-redis "infra:events" +``` + +**Orphan Detection** (FJ-654): Find resources with no dependents or dependencies. + +```bash +forjar graph -f forjar.yaml --orphan-detection +forjar graph -f forjar.yaml --orphan-detection --json +``` + +**Machine Summary** (FJ-657): Per-machine resource count and health overview. + +```bash +forjar status --machine-summary --state-dir state +forjar status --machine-summary --state-dir state --json +``` + +### Phase 52 — Compliance & Policy Automation (FJ-660→FJ-667) + +**Owner Consistency** (FJ-661): Detect mixed ownership across resources on the same machine. + +```bash +forjar validate -f forjar.yaml --check-owner-consistency +forjar validate -f forjar.yaml --check-owner-consistency --json +``` + +**Cross-Machine Dependencies** (FJ-664): Visualize dependencies that span multiple machines. + +```bash +forjar graph -f forjar.yaml --cross-machine-deps +forjar graph -f forjar.yaml --cross-machine-deps --json +``` + +**Lock Age** (FJ-667): Show when each lock file entry was last updated. + +```bash +forjar status --lock-age --state-dir state +forjar status --lock-age --state-dir state --json +``` + +### Phase 53 — Multi-Environment & Secrets Management (FJ-670→FJ-677) + +**Path Conflict Detection** (FJ-671): Detect overlapping file paths across resources. + +```bash +forjar validate -f forjar.yaml --check-path-conflicts +forjar validate -f forjar.yaml --check-path-conflicts --json +``` + +**Machine Groups** (FJ-674): Group resources by machine in graph output. + +```bash +forjar graph -f forjar.yaml --machine-groups +forjar graph -f forjar.yaml --machine-groups --json +``` + +**Lock Integrity** (FJ-675): Validate lock file structural integrity. + +```bash +forjar lock-integrity --state-dir state +forjar lock-integrity --state-dir state --json +``` + +**Hash Verification** (FJ-677): Verify BLAKE3 hashes in lock files. + +```bash +forjar status --hash-verify --state-dir state +forjar status --hash-verify --state-dir state --json +``` + +### Phase 54 — Observability & Telemetry Deep Dive (FJ-680→FJ-687) + +**Service Dependency Validation** (FJ-681): Validate service dependency chains are satisfiable. + +```bash +forjar validate -f forjar.yaml --check-service-deps +forjar validate -f forjar.yaml --check-service-deps --json +``` + +**Resource Size Estimation** (FJ-682): Show estimated resource sizes (file bytes, package count). + +```bash +forjar status --resource-size --state-dir state +forjar status --resource-size --state-dir state --json +``` + +**Resource Clusters** (FJ-684): Identify tightly-coupled resource clusters in dependency graph. + +```bash +forjar graph -f forjar.yaml --resource-clusters +forjar graph -f forjar.yaml --resource-clusters --json +``` + +**Lock Rehash** (FJ-685): Recompute all lock file hashes from current state. + +```bash +forjar lock-rehash --state-dir state +forjar lock-rehash --state-dir state --json +``` + +**Drift Details All** (FJ-687): Show drift details for all machines at once. + +```bash +forjar status --drift-details-all --state-dir state +forjar status --drift-details-all --state-dir state --json +``` + +### Phase 55 — Advanced Workflow & Pipeline Integration (FJ-690→FJ-697) + +**Template Variable Validation** (FJ-691): Validate all template variables are defined. + +```bash +forjar validate -f forjar.yaml --check-template-vars +forjar validate -f forjar.yaml --check-template-vars --json +``` + +**Last Apply Duration** (FJ-692): Show duration of last apply per resource. + +```bash +forjar status --last-apply-duration --state-dir state +forjar status --last-apply-duration --state-dir state --json +``` + +**Fan-Out Metrics** (FJ-694): Show resource fan-out metrics (how many resources depend on each). + +```bash +forjar graph -f forjar.yaml --fan-out +forjar graph -f forjar.yaml --fan-out --json +``` + +**Lock Restore** (FJ-695): Restore lock state from a named snapshot. + +```bash +forjar lock-restore --state-dir state --name my-snapshot +forjar lock-restore --state-dir state --json +``` + +**Config Hash** (FJ-697): Show hash of current config for change detection. + +```bash +forjar status --config-hash --state-dir state +forjar status --config-hash --state-dir state --json +``` + +### Phase 56 — Security Hardening & Audit Trail (FJ-700→FJ-707) + +**Mode Consistency Validation** (FJ-701): Validate file mode consistency across resources. + +```bash +forjar validate -f forjar.yaml --check-mode-consistency +forjar validate -f forjar.yaml --check-mode-consistency --json +``` + +**Leaf Resources** (FJ-704): Identify leaf resources with no dependents in the DAG. + +```bash +forjar graph -f forjar.yaml --leaf-resources +forjar graph -f forjar.yaml --leaf-resources --json +``` + +**Lock Schema Verification** (FJ-705): Validate lock file schema version compatibility. + +```bash +forjar lock-verify-schema --state-dir state +forjar lock-verify-schema --state-dir state --json +``` + +**Convergence History** (FJ-707): Show convergence trend over time. + +```bash +forjar status --convergence-history --state-dir state +forjar status --convergence-history --state-dir state --json +``` + +### Phase 57 — Fleet Management & Multi-Machine Orchestration (FJ-710→FJ-717) + +**Group Consistency Validation** (FJ-711): Validate user/group consistency across resources. + +```bash +forjar validate -f forjar.yaml --check-group-consistency +forjar validate -f forjar.yaml --check-group-consistency --json +``` + +**Reverse Dependencies** (FJ-714): Show reverse dependency graph (who depends on me). + +```bash +forjar graph -f forjar.yaml --reverse-deps +forjar graph -f forjar.yaml --reverse-deps --json +``` + +**Lock Tagging** (FJ-715): Add metadata tags to lock files. + +```bash +forjar lock-tag --state-dir state --name env --value prod +forjar lock-tag --state-dir state --name env --value prod --json +``` + +**Drift Trend** (FJ-717): Show drift trend over time. + +```bash +forjar status --drift-trend --state-dir state +forjar status --drift-trend --state-dir state --json +``` + +### Phase 58 — Configuration Validation & Schema Evolution (FJ-720→FJ-727) + +**Mount Point Validation** (FJ-721): Validate mount point paths don't conflict. + +```bash +forjar validate -f forjar.yaml --check-mount-points +forjar validate -f forjar.yaml --check-mount-points --json +``` + +**Failed Resources** (FJ-722): Show only failed resources across all machines. + +```bash +forjar status --failed-resources --state-dir state +forjar status --failed-resources --state-dir state --json +``` + +**Depth-First Traversal** (FJ-724): Show depth-first traversal order of dependency graph. + +```bash +forjar graph -f forjar.yaml --depth-first +forjar graph -f forjar.yaml --depth-first --json +``` + +**Lock Schema Migration** (FJ-725): Migrate lock file schema between versions. + +```bash +forjar lock-migrate --state-dir state --from-version 0.9 +forjar lock-migrate --state-dir state --from-version 0.9 --json +``` + +**Resource Types Summary** (FJ-727): Show count per resource type across machines. + +```bash +forjar status --resource-types-summary --state-dir state +forjar status --resource-types-summary --state-dir state --json +``` + ## Next Steps - [Configuration Reference](02-configuration.md) — Complete `forjar.yaml` schema diff --git a/docs/book/02-configuration.md b/docs/book/src/02-configuration.md similarity index 94% rename from docs/book/02-configuration.md rename to docs/book/src/02-configuration.md index 6e4c6e22..dc1c14dd 100644 --- a/docs/book/02-configuration.md +++ b/docs/book/src/02-configuration.md @@ -246,6 +246,84 @@ machines: init: true ``` +### GPU Container Transport + +For GPU workloads (model QA, inference testing), containers need device passthrough and vendor-specific configuration. Forjar supports NVIDIA CUDA, AMD ROCm, and Intel GPU passthrough. + +| Field | Type | Default | Description | +|-------|------|---------|-------------| +| `gpus` | string | -- | NVIDIA GPU passthrough via `--gpus`. Values: `"all"`, `"device=0"`, `"device=0,1"`. Requires NVIDIA Container Toolkit on the host. | +| `devices` | [string] | `[]` | Device passthrough via `--device`. For AMD ROCm: `["/dev/kfd", "/dev/dri"]`. For Intel: `["/dev/dri"]`. | +| `group_add` | [string] | `[]` | Additional groups via `--group-add`. AMD ROCm requires `["video", "render"]` for GPU device access. | +| `env` | map | `{}` | Environment variables via `--env`. Common: `CUDA_VISIBLE_DEVICES`, `ROCR_VISIBLE_DEVICES`. | + +**NVIDIA CUDA container:** + +```yaml +machines: + gpu-cuda: + hostname: gpu-cuda + addr: container + transport: container + roles: [gpu, cuda] + container: + runtime: docker + image: nvidia/cuda:12.4.1-runtime-ubuntu22.04 + gpus: all + env: + CUDA_VISIBLE_DEVICES: "0,1" +``` + +**AMD ROCm container:** + +```yaml +machines: + gpu-rocm: + hostname: gpu-rocm + addr: container + transport: container + roles: [gpu, rocm] + container: + runtime: docker + image: rocm/dev-ubuntu-22.04:6.1 + devices: + - /dev/kfd + - /dev/dri + group_add: + - video + - render + env: + ROCR_VISIBLE_DEVICES: "0" +``` + +**Multi-vendor GPU fleet** -- test the same workload across GPU vendors: + +```yaml +# CUDA + ROCm side by side, parallel apply +machines: + gpu-cuda: + hostname: gpu-cuda + addr: container + transport: container + container: + image: nvidia/cuda:12.4.1-runtime-ubuntu22.04 + gpus: all + env: { CUDA_VISIBLE_DEVICES: "0" } + + gpu-rocm: + hostname: gpu-rocm + addr: container + transport: container + container: + image: rocm/dev-ubuntu-22.04:6.1 + devices: [/dev/kfd, /dev/dri] + group_add: [video, render] + env: { ROCR_VISIBLE_DEVICES: "0" } + +policy: + parallel_machines: true # Test both vendors concurrently +``` + ### Pepita Transport Fields The `pepita:` block configures kernel namespace execution. Requires `CAP_SYS_ADMIN` or root. Zero Docker dependency. diff --git a/docs/book/03-resources.md b/docs/book/src/03-resources.md similarity index 83% rename from docs/book/03-resources.md rename to docs/book/src/03-resources.md index 336fbd7f..c1a9067d 100644 --- a/docs/book/03-resources.md +++ b/docs/book/src/03-resources.md @@ -9,7 +9,7 @@ resources: dev-tools: type: package machine: m1 - provider: apt # apt | cargo | uv + provider: apt # apt | cargo | uv | brew packages: [curl, git, htop] state: present # present (default) | absent version: "1.2.3" # optional version pin @@ -22,6 +22,29 @@ resources: | `apt` | `apt-get install -y` (auto-sudo if non-root) | `package=version` | `apt-get remove -y` | | `cargo` | `cargo install --force` | `package@version` | — | | `uv` | `uv tool install --force` | `package==version` | `uv tool uninstall` | +| `brew` | `brew install` | `package@version` | `brew uninstall` | + +### Cross-Platform Packages (Homebrew) + +Use the `brew` provider for cross-platform package management on macOS and Linux: + +```yaml +resources: + dev-tools: + type: package + machine: m1 + provider: brew + packages: [jq, ripgrep, fd, bat] + + python-pinned: + type: package + machine: m1 + provider: brew + packages: [python] + version: "3.12" +``` + +The brew provider generates idempotent scripts that check `brew list` before installing, avoiding redundant operations. ### Version Pinning @@ -710,41 +733,248 @@ When `checksum` is set, `forjar drift` detects unauthorized model file changes b ## GPU -Manages NVIDIA GPU hardware — driver installation, CUDA toolkit, persistence mode, and compute mode. +Multi-vendor GPU resource handler supporting NVIDIA (CUDA), AMD (ROCm), and CPU (no-op) backends. ```yaml resources: - gpu-driver: + # NVIDIA GPU (default) + gpu-nvidia: type: gpu machine: gpu-box - name: gpu0 - driver_version: "535" - cuda_version: "12.3" + gpu_backend: nvidia + driver_version: "550" + cuda_version: "12.4" devices: [0, 1] persistence_mode: true compute_mode: exclusive_process + + # AMD ROCm GPU + gpu-rocm: + type: gpu + machine: amd-box + gpu_backend: rocm + driver_version: "6.3" + rocm_version: "6.3" + + # CPU-only (no-op, useful for testing) + gpu-cpu: + type: gpu + machine: test-box + gpu_backend: cpu ``` +### GPU Backends + +| Backend | Check | Apply | State Query | +|---------|-------|-------|-------------| +| `nvidia` (default) | `nvidia-smi` + driver version | `apt install nvidia-driver-{ver}`, `cuda-toolkit-{ver}` | `nvidia-smi --query-gpu=...` | +| `rocm` | `rocminfo` + `/sys/module/amdgpu/version` | `apt install amdgpu-dkms rocm-hip-runtime` | `rocminfo` device listing | +| `cpu` | Always passes (no-op) | No-op | `echo cpu-only` | + ### GPU States -- **present** (default): Install driver and CUDA toolkit, enable persistence, set compute mode -- **absent**: Remove NVIDIA drivers +- **present** (default): Install driver and toolkit, enable persistence, set compute mode +- **absent**: Remove GPU drivers (nvidia or rocm) ### GPU Fields | Field | Type | Default | Description | |-------|------|---------|-------------| +| `gpu_backend` | string | `nvidia` | GPU vendor: `nvidia`, `rocm`, or `cpu` | | `name` | string | `gpu0` | GPU resource identifier | -| `driver_version` | string | required | NVIDIA driver version (e.g., `535`) | -| `cuda_version` | string | — | CUDA toolkit version (e.g., `12.3`) | +| `driver_version` | string | required | Driver version (nvidia driver or amdgpu-dkms) | +| `cuda_version` | string | — | CUDA toolkit version (nvidia only) | +| `rocm_version` | string | — | ROCm version (rocm only, e.g., `6.0`) | | `devices` | [integer] | all | GPU device indices | -| `persistence_mode` | bool | `true` | Enable `nvidia-persistenced` service | +| `persistence_mode` | bool | `true` | Enable `nvidia-persistenced` (nvidia) | | `compute_mode` | string | `default` | `default`, `exclusive_process`, or `prohibited` | | `gpu_memory_limit_mb` | integer | — | cgroup GPU memory limit in MB | ### State Query -GPU state is queried via `nvidia-smi --query-gpu=driver_version,compute_mode,memory.total`. This enables drift detection — if someone manually changes the driver version or compute mode, forjar detects it. +GPU state is queried per backend: +- **nvidia**: `nvidia-smi --query-gpu=driver_version,compute_mode,memory.total` +- **rocm**: `rocminfo` for device listing, `/sys/module/amdgpu/version` for driver version +- **cpu**: Returns `cpu-only` (always converged) + +### Conditional GPU Resources in Recipes + +When using GPU resources in recipes, you can conditionally skip GPU-dependent resources in cpu mode using the `when` field with input templates: + +```yaml +recipe: + inputs: + gpu_backend: + default: nvidia + +resources: + gpu-driver: + type: gpu + gpu_backend: "{{inputs.gpu_backend}}" + + model-download: + type: model + depends_on: [gpu-driver] + when: '{{inputs.gpu_backend}} != "cpu"' # skipped in cpu mode +``` + +## Task + +Run arbitrary commands with idempotency checks, timeouts, and output artifact tracking. Tasks are the escape hatch for operations that don't fit other resource types. + +```yaml +resources: + build-app: + type: task + machine: m1 + command: | + gcc -o /opt/app/bin src/main.c -Wall -Wextra + working_dir: /opt/app + timeout: 120 + completion_check: "test -x /opt/app/bin" + output_artifacts: + - /opt/app/bin +``` + +### Idempotency + +Tasks are not inherently idempotent. Use `completion_check` or `output_artifacts` to make them so: + +- **`completion_check`**: A shell command that exits 0 if the task is already done. If it exits 0, the task command is skipped. +- **`output_artifacts`**: A list of file paths. If all exist, the task is considered complete. +- If neither is set, the task runs on every apply. + +### Timeout + +The `timeout` field (in seconds) wraps the command with `timeout(1)`. If the command exceeds the limit, it is killed and the resource fails: + +```yaml +resources: + long-build: + type: task + machine: m1 + command: "make -j$(nproc) all" + working_dir: /opt/project + timeout: 300 +``` + +### Pipeline Pattern + +Chain tasks with `depends_on` to build multi-stage pipelines: + +```yaml +resources: + generate: + type: task + machine: m1 + command: "python3 generate.py > output.json" + working_dir: /opt/pipeline + output_artifacts: [/opt/pipeline/output.json] + + validate: + type: task + machine: m1 + command: "python3 validate.py output.json" + working_dir: /opt/pipeline + completion_check: "test -f /opt/pipeline/validated.ok" + depends_on: [generate] + + deploy: + type: task + machine: m1 + command: "cp output.json /srv/data/" + working_dir: /opt/pipeline + depends_on: [validate] +``` + +### Task Fields + +| Field | Type | Default | Description | +|-------|------|---------|-------------| +| `command` | string | required | Shell command to execute | +| `working_dir` | string | — | Working directory (cd before execution) | +| `timeout` | u64 | — | Timeout in seconds | +| `completion_check` | string | — | Shell command that exits 0 if already done | +| `output_artifacts` | list | `[]` | Files that must exist for task to be considered complete | + +## Recipe (Composition) + +Compose reusable child recipes into larger configurations. Recipe resources reference external recipe YAML files and forward inputs. + +```yaml +resources: + web-stack: + type: recipe + machine: m1 + recipe: web-server + inputs: + domain: example.com + port: 8080 +``` + +### How Expansion Works + +When forjar encounters a `type: recipe` resource, it: + +1. Loads the child recipe file from `recipes/{recipe_name}.yaml` +2. Validates provided inputs against the recipe's `inputs:` declarations +3. Expands child resources with namespaced IDs (e.g., `web-stack/nginx-pkg`) +4. Rewrites internal `depends_on` references to use namespaced IDs +5. Propagates the parent's `machine` target to all child resources + +### Input Forwarding + +Forward parent params to child recipe inputs: + +```yaml +params: + app_name: myapp + listen_port: "8080" + +resources: + app-scaffold: + type: recipe + machine: m1 + recipe: app-scaffold + inputs: + name: "{{params.app_name}}" + port: "{{params.listen_port}}" + + app-config: + type: recipe + machine: m1 + recipe: app-config + inputs: + name: "{{params.app_name}}" + depends_on: [app-scaffold] +``` + +### Nested Recipes + +Recipes can include other recipes up to 8 levels deep. Cycle detection prevents infinite recursion: + +```yaml +# recipes/full-stack.yaml — includes web-server which includes logrotate +recipe: + name: full-stack + inputs: + domain: { type: string } + +resources: + web: + type: recipe + recipe: web-server + inputs: + domain: "{{inputs.domain}}" +``` + +### Recipe Fields + +| Field | Type | Default | Description | +|-------|------|---------|-------------| +| `recipe` | string | required | Recipe name (resolves to `recipes/{name}.yaml`) | +| `inputs` | map | `{}` | Key-value inputs forwarded to the child recipe | +| `machine` | string | — | Target machine (propagated to all child resources) | ## Common Patterns @@ -925,6 +1155,38 @@ resources: Supported operators: `==`, `!=`, `contains`. Template variables: `{{machine.arch}}`, `{{machine.hostname}}`, `{{machine.addr}}`, `{{machine.user}}`, `{{machine.roles}}`, `{{params.*}}`. +**Validating conditional resources:** + +```bash +# Check when-field syntax (FJ-1018) +forjar validate --check-resource-when-condition-syntax -f forjar.yaml + +# Visualize conditional vs unconditional subgraphs (FJ-1019) +forjar graph --resource-dependency-conditional-subgraph -f forjar.yaml +``` + +**GPU backend consistency:** + +When multiple GPU resources exist in a stack, validate that they all reference the same backend: + +```bash +# Check GPU backend consistency across resources (FJ-1014) +forjar validate --check-resource-gpu-backend-consistency -f forjar.yaml +``` + +**Security posture and profiling:** + +```bash +# Fleet security posture score (FJ-1017) +forjar status --fleet-resource-security-posture-score + +# Apply latency p95 per machine (FJ-1013) +forjar status --machine-resource-apply-latency-p95 + +# Bridge criticality in dependency graph (FJ-1015) +forjar graph --resource-dependency-bridge-criticality -f forjar.yaml +``` + ### Resource Iteration Use `count:` or `for_each:` to create multiple resources from a single declaration. diff --git a/docs/book/04-recipes.md b/docs/book/src/04-recipes.md similarity index 100% rename from docs/book/04-recipes.md rename to docs/book/src/04-recipes.md diff --git a/docs/book/05-architecture.md b/docs/book/src/05-architecture.md similarity index 86% rename from docs/book/05-architecture.md rename to docs/book/src/05-architecture.md index a40df69a..b7373106 100644 --- a/docs/book/05-architecture.md +++ b/docs/book/src/05-architecture.md @@ -195,6 +195,87 @@ This hash is stored in the lock file. On the next `apply`, the planner computes No API calls needed. Just local hash comparison. Changing any field — content, permissions, image tag, port number, cron schedule — produces a different hash and triggers an update. +## Content-Addressed Store (FJ-1300 series) + +The Nix-compatible reproducible package management system extends BLAKE3 content addressing into a full store model. Every build output is placed under a deterministic path derived from its inputs: + +``` +/var/lib/forjar/store// +├── meta.yaml # Input manifest, provenance, timestamps +└── content/ # Actual build output +``` + +**Store path derivation** (`src/core/store/path.rs`): `store_path = composite_hash([recipe_hash, sorted_input_hashes, arch, provider])`. Identical inputs always produce the same store path. + +**Purity classification** (`src/core/store/purity.rs`): 4-level model classifying each resource: + +| Level | Name | Criteria | +|-------|------|----------| +| 0 | Pure | Version pinned + store + sandbox | +| 1 | Pinned | Version-locked, no sandbox | +| 2 | Constrained | Provider-scoped, floating version | +| 3 | Impure | curl\|bash or unconstrained access | + +Monotonicity invariant: a resource's purity level is at least as impure as its least-pure transitive dependency. + +**Input closure** (`src/core/store/closure.rs`): transitive input closure — the full set of inputs contributing to a store hash. Identical closures produce identical store paths (determinism invariant). Cycle-safe graph traversal with deduplication. + +**Lock file** (`src/core/store/lockfile.rs`): `forjar.inputs.lock.yaml` pins all resolved inputs (provider, version, BLAKE3 hash). Supports staleness detection and completeness checking for CI gates. + +**Reference scanning** (`src/core/store/reference.rs`): conservative scan of store entry outputs for BLAKE3 hash patterns, building the reachability graph needed by garbage collection. + +**Garbage collection** (`src/core/store/gc.rs`): mark-and-sweep starting from GC roots (profile generations, lock file pins, `.gc-roots/` symlinks), following references in `meta.yaml` transitively. Unreachable entries are reported as dead. + +**Reproducibility score** (`src/core/store/repro_score.rs`): 0-100 composite weighted by purity levels (50%), store coverage (30%), and lock coverage (20%). Per-resource breakdown with A-F grading. + +**FAR format** (`src/core/store/far.rs`): Forjar ARchive — BLAKE3 verified streaming, zstd compression, content-defined chunking, inline provenance. Binary layout: magic → manifest → chunk table → chunks → signature. + +**Build sandbox** (`src/core/store/sandbox.rs`): Configuration for isolated store builds. 4 isolation levels (Full/NetworkOnly/Minimal/None) with resource limits (memory, CPUs, timeout), bind mounts, and environment variables. Preset profiles: `full` (no network, seccomp BPF), `network-only` (filesystem isolation only), `minimal` (PID/mount namespaces), `gpu` (network + GPU device passthrough). Extends pepita namespace isolation. + +**Binary cache** (`src/core/store/cache.rs`): SSH-only cache transport — sovereign, no HTTP client crate. Substitution protocol: check local store → check SSH cache sources (in order) → build from scratch. Configuration supports multiple cache sources (SSH/local), auto-push, and entry verification by re-hashing. + +**Universal provider import** (`src/core/store/provider.rs`): Any external tool seeds the forjar store. 8 providers: apt, cargo, uv, nix, docker, tofu, terraform, apr. Each shells out to its native CLI, captures outputs, BLAKE3-hashes them. After import, all store entries are provider-agnostic and distribute identically via SSH. + +**Store derivations** (`src/core/store/derivation.rs`): Take store entries as inputs, transform inside a pepita sandbox, produce a new store entry. `type: derivation` + `inputs:` (store hashes or resource refs) + `script:` (bashrs-purified shell). Closure hashing ensures identical inputs → identical store paths. DAG validation prevents cycles. Derivation purity derived from sandbox config level. + +**Upstream diff/sync** (`src/core/store/store_diff.rs`): Compares store entries against their origin provenance (recorded in `meta.yaml`). Builds sync plans: re-import leaf nodes, replay derivation chains bottom-up. Generates upstream check commands per provider. + +**Recipe conversion** (`src/core/store/convert.rs`): Implements the 5-step conversion ladder for making recipes reproducible: (1) add version pins, (2) enable store, (3) generate lock file, (4) add sandbox (manual), (5) replace curl|bash (manual). Projects purity improvement from automated steps. + +**Tripwire pin integration** (`src/core/store/pin_tripwire.rs`): Extends tripwire upstream detection for lock file awareness. Checks lock file freshness and completeness before apply. Severity levels: Info (all fresh), Warning (stale/missing pins), Error (CI strict mode blocks apply). + +**Validation** (`src/core/store/validate.rs`): Implements `forjar validate --check-recipe-purity` and `--check-reproducibility-score`. Purity validation with minimum level gates. Reproducibility score validation with minimum score thresholds. Formatted reports for CLI output. + +### Store CLI Commands + +The store library modules are exposed through 5 CLI command families: + +| Command | Subcommands | Spec | Module | +|---------|-------------|------|--------| +| `forjar pin` | `--update`, `--check` | FJ-1311–1313 | `store_pin.rs` | +| `forjar cache` | `list`, `push`, `pull`, `verify` | FJ-1323–1324 | `store_cache.rs` | +| `forjar store` | `gc`, `list`, `diff`, `sync` | FJ-1327, FJ-1345 | `store_ops.rs` | +| `forjar archive` | `pack`, `unpack`, `inspect`, `verify` | FJ-1346 | `store_archive.rs` | +| `forjar convert` | `--reproducible` | FJ-1328 | `store_convert.rs` | + +| `forjar store-import` | `--list-providers` | FJ-1333 | `store_import.rs` | + +All commands dispatched through `dispatch_store.rs`. Args defined in `commands/store_args.rs`. + +### Store Runtime Executors + +Three executor modules bridge the gap between store data models and actual build execution: + +| Module | Spec | Purpose | +|--------|------|---------| +| `sandbox_exec.rs` | FJ-1316 | 10-step sandbox lifecycle (namespace, overlay, cgroup, seccomp, build, hash, store, cleanup) | +| `substitution.rs` | FJ-1322 | Full protocol: local store → SSH cache → build fallback → auto-push | +| `derivation_exec.rs` | FJ-1342 | Derivation plan + simulate + DAG execution with store-hit skipping | + +All produce plans/simulations (dry-run-first) without executing I/O directly. + +See `cargo run --example store_reproducibility` for store model demos (16 sections) and `cargo run --example store_executors` for executor demos (8 sections). + ## Shell Purification (FJ-036) Every shell script forjar generates passes through the **bashrs** purification pipeline. This enforces Invariant I8: no raw shell execution. diff --git a/docs/book/src/06-cli.md b/docs/book/src/06-cli.md new file mode 100644 index 00000000..3633bf6e --- /dev/null +++ b/docs/book/src/06-cli.md @@ -0,0 +1,3710 @@ +# CLI Reference + +## Global Usage + +``` +forjar [OPTIONS] +``` + +### Global Options + +| Flag | Description | +|------|-------------| +| `-v, --verbose` | Enable verbose output (diagnostic info to stderr) | +| `--no-color` | Disable colored output (also honors `NO_COLOR` env) | +| `-h, --help` | Print help | +| `-V, --version` | Print version | + +## Commands + +### `forjar init` + +Initialize a new forjar project. + +```bash +forjar init [PATH] +``` + +| Argument | Default | Description | +|----------|---------|-------------| +| `PATH` | `.` | Directory to initialize | + +Creates `forjar.yaml` and `state/` directory. + +### `forjar validate` + +Validate configuration without connecting to machines. + +```bash +forjar validate -f +``` + +| Flag | Default | Description | +|------|---------|-------------| +| `-f, --file` | `forjar.yaml` | Config file path | + +Checks: +- YAML parse validity +- Version is "1.0" +- Name is non-empty +- Resources reference valid machines +- Dependencies reference valid resources +- No circular dependencies +- File state is valid (file, directory, symlink, absent) +- Service state is valid (running, stopped, enabled, disabled) +- Mount state is valid (mounted, unmounted, absent) +- Docker state is valid (running, stopped, absent) +- Network protocol is valid (tcp, udp) and action is valid (allow, deny, reject) +- Cron schedule has exactly 5 fields (min hour dom mon dow) +- Symlink resources have a target field + +**Extended validation checks:** + +```bash +# Check resource count per machine (warn if over threshold) +forjar validate -f forjar.yaml --check-resource-count 50 + +# Detect duplicate file paths across resources +forjar validate -f forjar.yaml --check-duplicate-paths + +# JSON output for CI integration +forjar validate -f forjar.yaml --check-duplicate-paths --json + +# Detect circular dependency chains +forjar validate -f forjar.yaml --check-circular-deps + +# Verify all machine references in resources exist +forjar validate -f forjar.yaml --check-machine-refs + +# Check provider consistency per machine +forjar validate -f forjar.yaml --check-provider-consistency + +# Verify state field values for each resource type +forjar validate -f forjar.yaml --check-state-values + +# Detect machines defined but not referenced by any resource +forjar validate -f forjar.yaml --check-unused-machines + +# Verify resource tags follow kebab-case naming conventions +forjar validate -f forjar.yaml --check-tag-consistency + +# Verify all depends_on targets reference existing resources +forjar validate -f forjar.yaml --check-dependency-exists + +# Detect resources targeting the same file path on the same machine +forjar validate -f forjar.yaml --check-path-conflicts-strict + +# Detect duplicate resource base names across groups +forjar validate -f forjar.yaml --check-duplicate-names + +# Verify resource groups are non-empty +forjar validate -f forjar.yaml --check-resource-groups +``` + +### `forjar plan` + +Show execution plan (what would change). + +```bash +forjar plan -f [-m MACHINE] [-r RESOURCE] [-t TAG] [--state-dir DIR] [--json] [--output-dir DIR] [--env-file PATH] +``` + +| Flag | Default | Description | +|------|---------|-------------| +| `-f, --file` | `forjar.yaml` | Config file path | +| `-m, --machine` | all | Filter to specific machine | +| `-r, --resource` | all | Filter to specific resource | +| `-t, --tag` | all | Filter to resources with this tag | +| `--state-dir` | `state` | Directory for lock files | +| `--json` | false | Output plan as JSON | +| `--output-dir` | — | Write generated scripts to directory for auditing | +| `--env-file` | — | Load param overrides from external YAML file | + +Output symbols (text mode): +- `+` Create (new resource) +- `~` Update (state changed) +- `-` Destroy (state=absent) +- ` ` No-op (unchanged) + +JSON mode outputs the full `ExecutionPlan` with changes, actions, and summary counts. + +The `--output-dir` flag writes all generated scripts (check, apply, state_query) per resource to the specified directory. Useful for auditing, code review, and offline inspection of what forjar would execute. + +### `forjar apply` + +Converge infrastructure to desired state. + +```bash +forjar apply -f [-m MACHINE] [-r RESOURCE] [-t TAG] [--force] [--dry-run] [--check] [--no-tripwire] [-p KEY=VALUE] [--auto-commit] [--timeout SECS] [--state-dir DIR] [--json] [--report] [--env-file PATH] +``` + +| Flag | Default | Description | +|------|---------|-------------| +| `-f, --file` | `forjar.yaml` | Config file path | +| `-m, --machine` | all | Filter to specific machine | +| `-r, --resource` | all | Filter to specific resource | +| `-t, --tag` | all | Filter to resources with this tag | +| `--force` | false | Re-apply all resources (ignore cache) | +| `--dry-run` | false | Show plan without executing | +| `--no-tripwire` | false | Skip provenance event logging (faster) | +| `-p, --param` | — | Override parameter: `-p env=production` | +| `--auto-commit` | false | Git commit state after successful apply | +| `--timeout` | — | Timeout per transport operation (seconds) | +| `--state-dir` | `state` | Directory for lock files | +| `--json` | false | Output apply results as JSON | +| `--env-file` | — | Load param overrides from external YAML file | +| `--report` | false | Print per-resource timing report after apply | +| `--check` | false | Run check scripts instead of apply (exit 0=converged, non-zero=needs changes) | +| `--force-unlock` | false | Remove a stale state lock and proceed (use when a previous apply was interrupted) | + +State locking: When apply starts, forjar creates `state/.forjar.lock` containing the current PID. If another apply is already running against the same state directory, the command exits with an error suggesting `--force-unlock`. Stale locks (PID no longer running, detected via `/proc/`) are reported but not automatically removed. The lock file is removed on completion. + +### `forjar drift` + +Detect unauthorized changes (tripwire). + +```bash +forjar drift -f [-m MACHINE] [--state-dir DIR] [--tripwire] [--alert-cmd CMD] [--dry-run] [--json] [--env-file PATH] +``` + +| Flag | Default | Description | +|------|---------|-------------| +| `-f, --file` | `forjar.yaml` | Config file path | +| `-m, --machine` | all | Filter to specific machine | +| `--state-dir` | `state` | Directory for lock files | +| `--tripwire` | false | Exit non-zero on any drift (for CI/cron) | +| `--alert-cmd` | — | Run command on drift detection (sets `$FORJAR_DRIFT_COUNT`) | +| `--auto-remediate` | false | Auto-fix drift: force re-apply all resources to restore desired state | +| `--dry-run` | false | List resources that would be checked without connecting to machines | +| `--json` | false | Output drift report as JSON | +| `--env-file` | — | Load param overrides from external YAML file | + +Drift detection covers **all resource types**: +- **File** resources: BLAKE3 hash of file content on disk vs lock +- **Non-file** resources (package, service, mount, user, cron, docker, network): re-runs the resource's `state_query_script` via transport and compares the BLAKE3 hash of the output against the `live_hash` stored at apply time + +JSON mode outputs `{ "drift_count": N, "findings": [...] }` with machine, resource, expected/actual hash for each finding. + +### `forjar status` + +Show current state from lock files. + +```bash +forjar status [--state-dir DIR] [-m MACHINE] [--json] +``` + +| Flag | Default | Description | +|------|---------|-------------| +| `--state-dir` | `state` | Directory for lock files | +| `-m, --machine` | all | Filter to specific machine | +| `--json` | false | Output status as JSON | + +**Status dashboard flags:** + +```bash +# Show convergence percentage per machine +forjar status --state-dir state --convergence-percentage + +# Show failed resource count per machine +forjar status --state-dir state --failed-count + +# Show drifted resource count per machine +forjar status --state-dir state --drift-count + +# JSON output for all dashboard metrics +forjar status --state-dir state --convergence-percentage --json + +# Show last apply duration per resource +forjar status --state-dir state --resource-duration + +# Show which resources target each machine +forjar status -f forjar.yaml --machine-resource-map + +# Fleet-wide convergence summary +forjar status --state-dir state --fleet-convergence + +# Show BLAKE3 hashes per resource +forjar status --state-dir state --resource-hash + +# Drift percentage per machine +forjar status --state-dir state --machine-drift-summary + +# Show total apply count per machine from event log +forjar status --state-dir state --apply-history-count + +# Show number of lock files across fleet +forjar status --state-dir state --lock-file-count + +# Show resource type breakdown +forjar status -f forjar.yaml --resource-type-distribution + +# Show time since last apply per resource +forjar status --state-dir state --resource-apply-age + +# Show time since first apply per machine +forjar status --state-dir state --machine-uptime + +# Show apply frequency per resource over time +forjar status --state-dir state --resource-churn + +# Show timestamp of last drift detection per resource +forjar status --state-dir state --last-drift-time + +# Show resource count per machine +forjar status -f forjar.yaml --machine-resource-count + +# Weighted convergence score across fleet +forjar status --state-dir state --convergence-score +``` + +### `forjar history` + +Show apply history from event logs. + +```bash +forjar history [--state-dir DIR] [-m MACHINE] [-n LIMIT] [--json] +``` + +| Flag | Default | Description | +|------|---------|-------------| +| `--state-dir` | `state` | Directory for lock files | +| `-m, --machine` | all | Filter to specific machine | +| `-n, --limit` | `10` | Show last N apply events | +| `--json` | false | Output as JSON | + +Reads `state/{machine}/events.jsonl` and displays apply start/complete events in reverse chronological order. + +### `forjar show` + +Show the fully resolved config (recipes expanded, templates resolved, secrets injected). + +```bash +forjar show -f [-r RESOURCE] [--json] +``` + +| Flag | Default | Description | +|------|---------|-------------| +| `-f, --file` | `forjar.yaml` | Config file path | +| `-r, --resource` | all | Show specific resource only | +| `--json` | false | Output as JSON instead of YAML | + +Useful for debugging template resolution, recipe expansion, and secrets injection without running apply. + +```bash +# Show full resolved config +forjar show -f forjar.yaml + +# Show single resource (e.g., from a recipe) +forjar show -f forjar.yaml -r web/site-config + +# Pipe to jq for structured queries +forjar show -f forjar.yaml --json | jq '.resources | keys' +``` + +### `forjar graph` + +Show resource dependency graph. + +```bash +forjar graph -f [--format mermaid|dot] +``` + +| Flag | Default | Description | +|------|---------|-------------| +| `-f, --file` | `forjar.yaml` | Config file path | +| `--format` | `mermaid` | Output format: `mermaid` or `dot` | + +Mermaid output can be pasted into GitHub markdown or rendered with mermaid-cli. DOT output is compatible with Graphviz. + +**Graph analysis flags:** + +```bash +# Show root resources (no dependencies) +forjar graph -f forjar.yaml --root-resources + +# Output as edge list (source → target pairs) +forjar graph -f forjar.yaml --edge-list + +# JSON output for both +forjar graph -f forjar.yaml --root-resources --json +forjar graph -f forjar.yaml --edge-list --json + +# Show disconnected subgraphs (connected components) +forjar graph -f forjar.yaml --connected-components + +# Output graph as adjacency matrix +forjar graph -f forjar.yaml --adjacency-matrix + +# Show longest dependency chain +forjar graph -f forjar.yaml --longest-path + +# Show in-degree (dependents) per resource +forjar graph -f forjar.yaml --in-degree + +# Show out-degree (dependencies) per resource +forjar graph -f forjar.yaml --out-degree + +# Show graph density (edges / max-possible-edges) +forjar graph -f forjar.yaml --density + +# Output resources in valid topological execution order +forjar graph -f forjar.yaml --topological-sort + +# Show resources on the longest dependency chain +forjar graph -f forjar.yaml --critical-path-resources + +# Show sink resources (nothing depends on them) +forjar graph -f forjar.yaml --sink-resources + +# Check if dependency graph is bipartite +forjar graph -f forjar.yaml --bipartite-check +``` + +### `forjar destroy` + +Remove all managed resources (reverse teardown). + +```bash +forjar destroy -f [-m MACHINE] [--yes] [--state-dir DIR] +``` + +| Flag | Default | Description | +|------|---------|-------------| +| `-f, --file` | `forjar.yaml` | Config file path | +| `-m, --machine` | all | Filter to specific machine | +| `--yes` | false | **Required** — confirm destructive operation | +| `--state-dir` | `state` | Directory for lock files | + +Resources are removed in reverse topological order (dependents first). On success, state lock files are cleaned up. Requires `--yes` flag as a safety gate. + +### `forjar import` + +Scan a machine and generate a forjar.yaml from its current state. + +```bash +forjar import --addr [--user USER] [--name NAME] [--output FILE] [--scan types] +``` + +| Flag | Default | Description | +|------|---------|-------------| +| `--addr` | — | Machine address (IP, hostname, or `localhost`) | +| `--user` | `root` | SSH user | +| `--name` | derived from addr | Machine name in config | +| `--output` | `forjar.yaml` | Output file path | +| `--scan` | `packages,files,services` | Comma-separated scan types | + +Scan types: `packages` (dpkg), `services` (systemctl), `files` (/etc/*.conf), `users` (non-system users), `cron` (root crontab). The generated config should be reviewed and customized before applying. + +```bash +# Import from a remote machine +forjar import --addr 10.0.0.1 --name prod-web --output prod-web.yaml + +# Import just packages from localhost +forjar import --addr localhost --scan packages -v + +# Import users and cron jobs +forjar import --addr localhost --scan users,cron -v +``` + +### `forjar diff` + +Compare two state snapshots to see what changed between applies. + +```bash +forjar diff [-m MACHINE] [--json] +``` + +| Flag | Default | Description | +|------|---------|-------------| +| `FROM` | — | First state directory (older) | +| `TO` | — | Second state directory (newer) | +| `-m, --machine` | all | Filter to specific machine | +| `--json` | false | Output as JSON | + +Output symbols (text mode): +- `+` Resource added +- `-` Resource removed +- `~` Resource changed (hash or status differs) + +```bash +# Compare before/after state +forjar diff state-before/ state-after/ + +# JSON output for scripting +forjar diff state-v1/ state-v2/ --json + +# Filter to one machine +forjar diff state-v1/ state-v2/ -m web-server +``` + +Useful for auditing what changed across apply runs, reviewing infrastructure changes, and debugging state drift. + +### `forjar check` + +Run check scripts against live machines to verify pre-conditions without applying. + +```bash +forjar check -f [-m MACHINE] [-r RESOURCE] [--tag TAG] [--json] +``` + +| Flag | Default | Description | +|------|---------|-------------| +| `-f, --file` | `forjar.yaml` | Config file path | +| `-m, --machine` | all | Filter to specific machine | +| `-r, --resource` | all | Filter to specific resource | +| `--tag` | all | Filter to resources with this tag | +| `--json` | false | Output as JSON | + +```bash +# Check all resources +forjar check -f forjar.yaml -v + +# Check a specific resource +forjar check -f forjar.yaml -r nginx-config + +# Check only web-tagged resources +forjar check -f forjar.yaml --tag web + +# JSON output for CI pipelines +forjar check -f forjar.yaml --json +``` + +Exits non-zero if any check fails. Useful for pre-flight validation in CI/CD pipelines before running `apply`. + +### `forjar fmt` + +Format (normalize) a forjar.yaml config file. + +```bash +forjar fmt -f [--check] +``` + +| Flag | Default | Description | +|------|---------|-------------| +| `-f, --file` | `forjar.yaml` | Config file path | +| `--check` | false | Check formatting without writing (exit non-zero if unformatted) | + +```bash +# Format a config file in place +forjar fmt -f forjar.yaml + +# Check formatting (useful in CI) +forjar fmt -f forjar.yaml --check +``` + +Parses the YAML, validates it, and re-serializes in canonical format. Idempotent — running twice produces the same output. Use `--check` in CI to enforce consistent formatting. + +### `forjar lint` + +Check config for best practice warnings beyond basic validation. + +```bash +forjar lint -f [--json] [--strict] +``` + +| Flag | Default | Description | +|------|---------|-------------| +| `-f, --file` | `forjar.yaml` | Config file path | +| `--json` | false | Output as JSON | +| `--strict` | false | Enable built-in policy rules (FJ-221) | + +Detects: +- Unused machines (defined but not referenced by any resource) +- Resources without tags (when config has many resources) +- Duplicate content across file resources +- Dependencies on non-existent resources +- Package resources with empty package lists + +With `--strict`, additionally enforces: +- **no_root_owner** — file resources owned by `root` must be tagged `system` +- **require_tags** — all resources must have at least one tag +- **no_privileged_containers** — container machines must not use `--privileged` +- **require_ssh_key** — non-local machines must have `ssh_key` configured + +```bash +# Lint a config file +forjar lint -f forjar.yaml + +# Strict mode with built-in policy rules +forjar lint -f forjar.yaml --strict + +# JSON output for CI +forjar lint -f forjar.yaml --json +``` + +### `forjar rollback` + +Rollback to a previous config revision from git history. + +```bash +forjar rollback -f [-n REVISION] [-m MACHINE] [--dry-run] [--state-dir DIR] +``` + +| Flag | Default | Description | +|------|---------|-------------| +| `-f, --file` | `forjar.yaml` | Config file path | +| `-n, --revision` | `1` | How many git revisions back to rollback (HEAD~N) | +| `-m, --machine` | all | Filter to specific machine | +| `--dry-run` | false | Show what would change without applying | +| `--state-dir` | `state` | Directory for lock files | + +Reads the previous `forjar.yaml` from `git show HEAD~N:`, compares it to the current config, and re-applies the old config with `--force` to converge to the previous desired state. + +```bash +# Preview what rollback would change +forjar rollback --dry-run + +# Rollback to previous version +forjar rollback + +# Rollback to 3 versions ago +forjar rollback -n 3 + +# Rollback specific machine only +forjar rollback -m web-server +``` + +### `forjar anomaly` + +Detect anomalous resource behavior from event history. + +```bash +forjar anomaly [--state-dir DIR] [-m MACHINE] [--min-events N] [--json] +``` + +| Flag | Default | Description | +|------|---------|-------------| +| `--state-dir` | `state` | Directory for lock files | +| `-m, --machine` | all | Filter to specific machine | +| `--min-events` | `3` | Minimum events to consider (ignore resources with fewer) | +| `--json` | false | Output as JSON | + +Analyzes event logs using ML-inspired anomaly detection (FJ-051): +- **High churn**: Abnormally high converge frequency via isolation scoring +- **High failure rate**: Disproportionate failures via isolation scoring +- **Drift events**: Any drift detected in history + +```bash +# Check all machines +forjar anomaly --state-dir state + +# Lower threshold for small deployments +forjar anomaly --min-events 1 + +# JSON output for CI/monitoring +forjar anomaly --json + +# Filter to specific machine +forjar anomaly -m web-server +``` + +### `forjar trace` + +View trace provenance data from apply runs (FJ-050). + +```bash +forjar trace [--state-dir DIR] [-m MACHINE] [--json] +``` + +| Flag | Default | Description | +|------|---------|-------------| +| `--state-dir` | `state` | Directory for state/lock files | +| `-m, --machine` | all | Filter to specific machine | +| `--json` | false | Output as JSON | + +Shows W3C-compatible trace spans recorded during `forjar apply`, including causal ordering via Lamport logical clocks, duration, exit codes, and resource metadata. + +```bash +# View all traces +forjar trace --state-dir state + +# View traces for specific machine +forjar trace -m web-server + +# JSON output for analysis tools +forjar trace --json | jq '.spans[] | select(.exit_code != 0)' + +# Find slowest resources +forjar trace --json | jq '.spans | sort_by(-.duration_us) | .[0:5]' +``` + +Example output: + +``` +Trace: 00000000000000005ce9737d21745945 (3 spans) + [ 1] web apply:data-dir — create ok (122.1ms) + [ 2] web apply:dev-tools — create ok (19.0s) + [ 3] web apply:tool-config — create ok (165.7ms) +``` + +### `forjar score` + +Compute a multi-dimensional quality score for a config. + +```bash +forjar score [--file FILE] [--status STATUS] [--idempotency CLASS] [--budget-ms MS] [--json] +``` + +| Flag | Default | Description | +|------|---------|-------------| +| `--file, -f` | `forjar.yaml` | Config file path | +| `--status` | `qualified` | Recipe status: qualified, blocked, pending | +| `--idempotency` | `strong` | Idempotency class: strong, weak, eventual | +| `--budget-ms` | `0` | Performance budget (0 = no budget) | +| `--json` | false | Output as JSON | + +Scores 8 dimensions (COR, IDM, PRF, SAF, OBS, DOC, RES, CMP), computes a weighted composite, and assigns a letter grade (A-F). Exit code 0 for grades A-C, exit code 1 for D-F. + +```bash +# Static score (no runtime data) +forjar score --file examples/cookbook/01-developer-workstation.yaml + +# JSON output for CI +forjar score --file forjar.yaml --json | jq '{grade, composite}' + +# Check grade in CI (fails on D/F) +forjar score --file forjar.yaml || echo "Grade below threshold" +``` + +### `forjar migrate` + +Migrate Docker resources to pepita kernel isolation. + +```bash +forjar migrate -f [-o ] +``` + +| Flag | Default | Description | +|------|---------|-------------| +| `-f, --file` | required | Input config file with Docker resources | +| `-o, --output` | none | Output file for migrated config (prints to stdout if omitted) | + +Converts Docker container resources to pepita kernel isolation resources: +- Docker `image` → overlay_lower hint (with warning) +- Docker `ports` → `netns: true` (network namespace isolation) +- Docker `volumes` → bind mount warnings +- Docker `state: running` → `state: present` +- Docker `state: stopped` → `state: absent` +- Docker restart/environment → warnings with migration guidance + +Non-Docker resources are passed through unchanged. + +```bash +# Preview migration (stdout) +forjar migrate -f docker-infra.yaml + +# Write migrated config to file +forjar migrate -f docker-infra.yaml -o pepita-infra.yaml + +# Review warnings, then apply +forjar migrate -f docker-infra.yaml -o new.yaml +forjar validate -f new.yaml +forjar plan -f new.yaml +``` + +## Workspaces + +Workspaces provide isolated state directories for multi-environment workflows. Each workspace stores state in `state///`. + +```bash +# Create and select a workspace +forjar workspace new staging +forjar workspace new production + +# List workspaces (* = active) +forjar workspace list + +# Switch workspace +forjar workspace select production + +# Show current workspace +forjar workspace current + +# Delete a workspace +forjar workspace delete staging --yes +``` + +### Using workspaces with commands + +Use `-w ` to override the active workspace: + +```bash +# Plan against staging state +forjar plan -f forjar.yaml -w staging + +# Apply to production +forjar apply -f forjar.yaml -w production + +# Drift check for staging +forjar drift -f forjar.yaml -w staging +``` + +The `{{params.workspace}}` template variable is automatically injected, enabling workspace-aware configs: + +```yaml +resources: + config: + type: file + machine: web + path: "/etc/app/{{params.workspace}}.conf" + content: "env={{params.workspace}}" +``` + +**Workspace resolution** (first match wins): + +1. `-w ` flag on command +2. `.forjar/workspace` file (set by `workspace select`) +3. `"default"` (no workspace isolation) + +## Policy Enforcement + +Define policy rules in `forjar.yaml` to enforce standards at plan time: + +```yaml +policies: + - type: require + message: "file resources must specify owner" + resource_type: file + field: owner + + - type: deny + message: "files must not be owned by root" + resource_type: file + condition_field: owner + condition_value: root + + - type: warn + message: "all resources should be tagged" + field: tags +``` + +```bash +# Check policies without applying +forjar policy -f forjar.yaml + +# JSON output for CI +forjar policy -f forjar.yaml --json +``` + +Rule types: + +| Type | Behavior | +|------|----------| +| `require` | Resource must have the `field` set. Blocks apply. | +| `deny` | Blocks if `condition_field == condition_value`. | +| `warn` | Advisory only. Logged but does not block. | + +Filters: `resource_type` limits to one resource type; `tag` limits to resources with a specific tag. + +## Triggers + +Define `triggers:` on any resource to force re-apply when a dependency changes: + +```yaml +resources: + nginx-config: + type: file + machine: web + path: /etc/nginx/nginx.conf + content: | + server { listen 80; } + + nginx-service: + type: service + machine: web + name: nginx + depends_on: [nginx-config] + triggers: [nginx-config] +``` + +When `nginx-config` converges (content changed), `nginx-service` is forced to re-apply even if its own state hasn't changed. This is the general-purpose version of the service-specific `restart_on` field — it works on **any** resource type. + +Key differences: + +| Feature | `depends_on` | `restart_on` | `triggers` | +|---------|-------------|-------------|------------| +| Purpose | Execution order | Service restart | Force re-apply | +| Scope | All types | Services only | All types | +| Effect | Runs first | Restarts service | Re-applies resource | + +Multiple triggers are supported: `triggers: [config-a, config-b]` fires if **either** source converges. + +## Notification Hooks + +Configure `policy.notify` to run shell commands after apply or drift events: + +```yaml +policy: + notify: + on_success: "curl -X POST https://hooks.slack.com/... -d '{\"text\": \"{{machine}}: {{converged}} converged\"}'" + on_failure: "echo 'ALERT: {{machine}} failed {{failed}} resources' | mail -s 'forjar failure' ops@example.com" + on_drift: "echo 'Drift detected on {{machine}}: {{drift_count}} resources' >> /var/log/drift.log" +``` + +Template variables: + +| Hook | Variables | +|------|-----------| +| `on_success` | `{{machine}}`, `{{converged}}`, `{{unchanged}}`, `{{failed}}` | +| `on_failure` | `{{machine}}`, `{{converged}}`, `{{unchanged}}`, `{{failed}}` | +| `on_drift` | `{{machine}}`, `{{drift_count}}` | + +Notification hooks are **advisory** — failures are logged as warnings but do not affect the exit code. Hooks run per machine after apply/drift completes. + +## Data Sources + +Define external data sources in the `data:` block. Values are resolved once at plan time and available as `{{data.key}}` templates: + +```yaml +data: + hostname: + type: command + value: "hostname -f" + app_version: + type: file + value: "VERSION" + default: "0.0.0" + dns_addr: + type: dns + value: "api.example.com" + default: "127.0.0.1" + +resources: + config: + type: file + machine: web + path: /etc/app/config.yaml + content: | + hostname: {{data.hostname}} + version: {{data.app_version}} + api_addr: {{data.dns_addr}} +``` + +Data source types: + +| Type | Behavior | +|------|----------| +| `file` | Read file contents (trimmed). Falls back to `default` if missing. | +| `command` | Run shell command, capture stdout (trimmed). Falls back to `default` on failure. | +| `dns` | Resolve hostname to IP address. Falls back to `default` on failure. | + +Data sources are evaluated before template resolution, so `{{data.*}}` variables work anywhere `{{params.*}}` works. + +## Environment Files + +Use `--env-file` to load param overrides from an external YAML file. This enables +environment-specific configurations without modifying `forjar.yaml`: + +```yaml +# envs/production.yaml +data_dir: /mnt/prod/data +log_level: warn +replicas: "3" + +# envs/staging.yaml +data_dir: /tmp/staging +log_level: debug +replicas: "1" +``` + +```bash +# Plan with production params +forjar plan -f forjar.yaml --env-file envs/production.yaml + +# Apply staging +forjar apply -f forjar.yaml --env-file envs/staging.yaml + +# Drift check with production params +forjar drift -f forjar.yaml --env-file envs/production.yaml --state-dir state +``` + +**Param precedence** (last wins): + +1. `params:` in `forjar.yaml` (base defaults) +2. `--env-file` values (environment overrides) +3. `--param KEY=VALUE` flags (CLI overrides) + +## Command Cheat Sheet + +Quick reference for the most common workflows: + +```bash +# First time setup +forjar init my-project +cd my-project + +# Edit → Validate → Plan → Apply cycle +$EDITOR forjar.yaml +forjar validate -f forjar.yaml +forjar plan -f forjar.yaml --state-dir state/ +forjar apply -f forjar.yaml --state-dir state/ + +# Verify idempotency (should report 0 converged) +forjar apply -f forjar.yaml --state-dir state/ + +# Check for unauthorized changes +forjar drift -f forjar.yaml --state-dir state/ + +# View what happened +forjar history --state-dir state/ -n 10 +forjar status --state-dir state/ + +# Debug a specific resource +forjar show -f forjar.yaml -r --json +forjar plan -f forjar.yaml --output-dir /tmp/scripts/ + +# Clean up / format +forjar fmt -f forjar.yaml +forjar lint -f forjar.yaml +``` + +## Pipeline Patterns + +### CI Validation Gate + +Run in CI before merging config changes: + +```bash +#!/bin/bash +set -euo pipefail + +# Validate config syntax and structure +forjar validate -f forjar.yaml + +# Lint for style issues +forjar lint -f forjar.yaml + +# Preview changes (informational) +forjar plan -f forjar.yaml --state-dir state/ + +# Check for formatting issues +forjar fmt -f forjar.yaml --check +``` + +### Production Deploy Pipeline + +```bash +#!/bin/bash +set -euo pipefail + +# 1. Check for drift before applying +forjar drift -f forjar.yaml --state-dir state/ --tripwire || { + echo "Drift detected — review before deploying" + exit 1 +} + +# 2. Apply changes +forjar apply -f forjar.yaml --state-dir state/ + +# 3. Verify state +forjar status --state-dir state/ + +# 4. Commit state changes +git add state/ +git commit -m "forjar: deploy $(date -I)" +``` + +### Scheduled Drift Monitor + +```bash +#!/bin/bash +# Run via cron or systemd timer + +forjar drift -f forjar.yaml --state-dir state/ --tripwire \ + --alert-cmd "/opt/scripts/notify.sh" \ + --json > /var/log/forjar-drift.json 2>&1 + +# --tripwire exits non-zero on drift +# --alert-cmd runs notify script with $FORJAR_DRIFT_COUNT +``` + +## Global Flags + +These flags work with all commands: + +| Flag | Description | +|------|-------------| +| `-f, --file` | Path to forjar.yaml config file | +| `--state-dir` | Path to state directory (default: `state`) | +| `-m, --machine` | Filter to specific machine | +| `-r, --resource` | Filter to specific resource | +| `-t, --tag` | Filter to resources with specific tag | +| `--json` | Output in JSON format (for scripting) | +| `--verbose` | Increase output verbosity | +| `--quiet` | Suppress non-error output | + +## Exit Codes + +| Code | Meaning | +|------|---------| +| 0 | Success (no errors, no drift with `--tripwire`) | +| 1 | Error (validation failure, apply failure, drift detected with `--tripwire`, unformatted file with `fmt --check`) | + +## Command Reference + +### forjar validate + +Validates configuration without touching any machine. Checks: +- YAML syntax +- Schema compliance (version, machines, resources) +- Resource type-specific field requirements +- Machine references +- Dependency graph (cycles, unknown refs, self-deps) +- Recipe expansion and input validation + +```bash +# Validate a config file +forjar validate -f forjar.yaml + +# Validate with verbose output (shows expanded resources) +forjar validate -f forjar.yaml --verbose + +# Validate in CI (non-zero exit on failure) +forjar validate -f forjar.yaml || exit 1 +``` + +### forjar plan + +Shows what would change without applying. Compares desired state hashes against the lock file: + +```bash +# Basic plan +forjar plan -f forjar.yaml --state-dir state/ + +# Plan specific machine +forjar plan -f forjar.yaml --state-dir state/ -m web-server + +# Plan with JSON output +forjar plan -f forjar.yaml --state-dir state/ --json + +# Plan only tagged resources +forjar plan -f forjar.yaml --state-dir state/ --tag critical +``` + +Plan output symbols: +- `+` — Resource will be created (no previous hash) +- `~` — Resource will be updated (hash changed) +- `-` — Resource will be destroyed (state: absent) +- ` ` — Resource is unchanged (hash matches) + +### forjar apply + +Executes the plan — converges infrastructure to desired state: + +```bash +# Standard apply +forjar apply -f forjar.yaml --state-dir state/ + +# Force re-apply everything (ignore hash comparison) +forjar apply -f forjar.yaml --state-dir state/ --force + +# Dry run — show plan only, don't execute +forjar apply -f forjar.yaml --state-dir state/ --dry-run + +# Apply with timeout (per-resource) +forjar apply -f forjar.yaml --state-dir state/ --timeout 120 + +# Apply specific resource only +forjar apply -f forjar.yaml --state-dir state/ -r nginx-config +``` + +### forjar apply --report + +Print per-resource timing report after apply: + +```bash +forjar apply -f forjar.yaml --report +``` + +Shows resource ID, type, status, and duration for each resource. Combine with `--json` for machine-readable output that includes a `resource_reports` array. Apply reports are also persisted to `state//last-apply.yaml`. + +### forjar drift + +Detects unauthorized changes by comparing live state to lock file: + +```bash +# Basic drift check +forjar drift -f forjar.yaml --state-dir state/ + +# Tripwire mode (non-zero exit on drift) +forjar drift -f forjar.yaml --state-dir state/ --tripwire + +# Full drift (re-query all resource types via transport) +forjar drift -f forjar.yaml --state-dir state/ --full + +# Auto-remediate (re-apply drifted resources) +forjar drift -f forjar.yaml --state-dir state/ --auto-remediate + +# With custom alert +forjar drift -f forjar.yaml --state-dir state/ --alert-cmd ./notify.sh +``` + +### forjar anomaly + +Analyzes event log history for suspicious patterns: + +```bash +# Run anomaly detection +forjar anomaly --state-dir state/ + +# JSON output for monitoring integration +forjar anomaly --state-dir state/ --json +``` + +### forjar history + +Shows the event log for a machine: + +```bash +# Last 10 events +forjar history --state-dir state/ + +# Last 50 events for specific machine +forjar history --state-dir state/ -m web-server -n 50 + +# JSON output +forjar history --state-dir state/ --json +``` + +### forjar graph + +Generates a dependency graph in Mermaid format: + +```bash +# Output Mermaid diagram +forjar graph -f forjar.yaml + +# Render in terminal (requires mmdc/mermaid-cli) +forjar graph -f forjar.yaml | mmdc -o graph.png + +# Breadth-first traversal order (topological BFS) +forjar graph -f forjar.yaml --breadth-first + +# Depth-first traversal order +forjar graph -f forjar.yaml --depth-first + +# JSON output for tooling +forjar graph -f forjar.yaml --breadth-first --json +``` + +### forjar validate --check-cron-syntax + +Validates cron schedule expressions in all resources with a `schedule:` field: + +```bash +forjar validate -f forjar.yaml --check-cron-syntax +``` + +Checks each cron field against its valid range (minute 0-59, hour 0-23, day 1-31, month 1-12, weekday 0-6). Reports invalid fields with the resource name. + +### forjar status --resource-health / --machine-health-summary + +Per-resource and per-machine health views: + +```bash +# Per-resource health (converged/failed/drifted) +forjar status --state-dir state/ --resource-health + +# Per-machine health summary with percentages +forjar status --state-dir state/ --machine-health-summary + +# JSON output for monitoring +forjar status --state-dir state/ --machine-health-summary --json +``` + +### forjar apply --notify-ntfy / --only-machine + +Push notifications and machine targeting: + +```bash +# Send apply events to ntfy.sh topic +forjar apply -f forjar.yaml --notify-ntfy my-infra-alerts + +# Apply only to a specific machine +forjar apply -f forjar.yaml --only-machine web-server +``` + +### forjar fmt + +Formats forjar.yaml for consistent style: + +```bash +# Format in-place +forjar fmt -f forjar.yaml + +# Check formatting (CI mode — non-zero exit if unformatted) +forjar fmt -f forjar.yaml --check +``` + +## Shell Completion + +### Bash + +```bash +# Generate completion script +forjar completions bash > /etc/bash_completion.d/forjar + +# Or in user directory +forjar completions bash > ~/.local/share/bash-completion/completions/forjar +``` + +### Zsh + +```zsh +# Generate completion script +forjar completions zsh > ~/.zfunc/_forjar + +# Add to .zshrc +fpath=(~/.zfunc $fpath) +autoload -Uz compinit && compinit +``` + +### Fish + +```fish +forjar completions fish > ~/.config/fish/completions/forjar.fish +``` + +## Environment Variables + +| Variable | Description | +|----------|-------------| +| `FORJAR_SECRET_*` | Secret values referenced by `{{secrets.X}}` templates | +| `FORJAR_CONFIG` | Default config file path (alternative to `-f`) | +| `FORJAR_STATE_DIR` | Default state directory (alternative to `--state-dir`) | +| `FORJAR_LOG_LEVEL` | Log verbosity: `error`, `warn`, `info`, `debug`, `trace` | +| `NO_COLOR` | Disable colored output (standard convention) | + +## Command Patterns + +### Pipeline Workflows + +Chain commands for common workflows: + +```bash +# Validate → Plan → Apply (full pipeline) +forjar validate -f forjar.yaml && \ +forjar plan -f forjar.yaml --state-dir state/ && \ +forjar apply -f forjar.yaml --state-dir state/ + +# Drift check → Auto-remediate +forjar drift -f forjar.yaml --state-dir state/ --tripwire || \ +forjar apply -f forjar.yaml --state-dir state/ --force +``` + +### Multi-Environment Management + +```bash +# Apply to staging first, then production +forjar apply -f forjar.yaml --state-dir state-staging/ -p env=staging +forjar drift -f forjar.yaml --state-dir state-staging/ --tripwire +# If staging looks good: +forjar apply -f forjar.yaml --state-dir state-production/ -p env=production +``` + +### Script Auditing + +```bash +# Export all scripts for security review +forjar plan -f forjar.yaml --output-dir /tmp/audit/ + +# Review specific resource scripts +cat /tmp/audit/check_nginx-conf.sh +cat /tmp/audit/apply_nginx-conf.sh + +# Run a check script manually +bash /tmp/audit/check_nginx-conf.sh && echo "Already converged" || echo "Needs apply" +``` + +### Selective Application + +```bash +# Apply only to specific machine +forjar apply -f forjar.yaml --state-dir state/ -m web-server + +# Apply only tagged resources +forjar apply -f forjar.yaml --state-dir state/ --tag critical + +# Apply only specific resource +forjar apply -f forjar.yaml --state-dir state/ -r nginx-conf +``` + +### Import and Bootstrap + +```bash +# Import existing machine state (no changes made) +forjar import -f forjar.yaml -m web-01 --state-dir state/ + +# Initialize a new project +forjar init ./my-infra +cd my-infra +# Edit forjar.yaml, then: +forjar validate -f forjar.yaml +forjar apply -f forjar.yaml --state-dir state/ +``` + +## Exit Codes + +| Code | Meaning | +|------|---------| +| 0 | Success | +| 1 | Error (validation, apply failure, etc.) | +| 2 | Drift detected (for `drift` command) | + +Scripts can use exit codes for automation: + +```bash +if forjar drift -f forjar.yaml --state-dir state/ 2>/dev/null; then + echo "No drift detected" +else + echo "Drift found — reconverging" + forjar apply -f forjar.yaml --state-dir state/ +fi +``` + +## bashrs Lint Integration + +Starting with FJ-036, `forjar lint` includes **bashrs script diagnostics** alongside the config-level lint checks described above. When you run `forjar lint`, forjar generates all three scripts (check, apply, state_query) for every resource in the config and runs each through the bashrs linter. The results are merged into the lint report. + +### What Gets Checked + +For each resource in the config, forjar calls `codegen::check_script`, `codegen::apply_script`, and `codegen::state_query_script` to produce the shell scripts that would be executed during `forjar apply`. Each script is then passed to `purifier::lint_script()`, which runs the bashrs linter and returns diagnostics with severity levels and diagnostic codes. + +Error-severity diagnostics are reported individually by resource and script kind. Warning-severity diagnostics are counted in aggregate. The summary line at the end shows total errors and warnings across all resources. + +### Diagnostic Code Prefixes + +bashrs diagnostics use prefixed codes that indicate the category of the finding: + +| Prefix | Category | Meaning | +|--------|----------|---------| +| **SEC** | Security | Injection risk, unquoted variable expansion, unsafe eval patterns | +| **DET** | Determinism | Non-deterministic commands (date, random, pid) that break reproducibility | +| **IDEM** | Idempotency | Operations that create or modify without checking current state first | +| **SC** | ShellCheck | Standard ShellCheck-equivalent rules (SC2162, SC2086, etc.) | + +SEC-prefixed findings identify shell injection vectors and unsafe variable handling. DET-prefixed findings flag commands whose output varies between runs, which matters for hash-based drift detection. IDEM-prefixed findings flag operations that are not idempotent, meaning running them twice may produce different results. + +### Example Output + +Running `forjar lint` on a config with package and file resources: + +``` +$ forjar lint -f forjar.yaml + warn: bashrs: web-packages/apply [SEC002] unquoted variable: $SUDO + warn: bashrs: deploy-user/apply [SEC002] unquoted variable: $SUDO + warn: bashrs script lint: 0 error(s), 4 warning(s) across 6 resources + +Lint: 3 warning(s) +``` + +In this example, the SEC002 warnings come from the `$SUDO` privilege escalation pattern used by package, user, cron, and network resource handlers. This pattern is intentional -- when `$SUDO` is empty (running as root), the empty expansion causes it to disappear cleanly. bashrs reports it as a warning rather than an error because the pattern is recognized as safe. + +Handlers that produce zero-diagnostic scripts include file, directory, symlink, service, and mount. These handlers use only static, single-quoted arguments with no dynamic variable expansion. + +### JSON Output + +With `--json`, bashrs diagnostics appear in the `findings` array alongside config-level warnings: + +```bash +forjar lint -f forjar.yaml --json +``` + +```json +{ + "warnings": 3, + "findings": [ + "bashrs: web-packages/apply [SEC002] unquoted variable: $SUDO", + "bashrs: deploy-user/apply [SEC002] unquoted variable: $SUDO", + "bashrs script lint: 0 error(s), 4 warning(s) across 6 resources" + ] +} +``` + +### CI Integration + +In CI pipelines, `forjar lint` returns exit code 0 even when warnings are present (warnings are informational). To fail on any bashrs error-severity finding, combine lint with validation: + +```bash +# Validate structure + lint for style and script safety +forjar validate -f forjar.yaml && forjar lint -f forjar.yaml +``` + +If bashrs reports Error-severity diagnostics (as opposed to warnings), those are included as individual lint findings. Since `forjar apply` also validates scripts before execution via `validate_script()`, Error-severity bashrs findings will block apply regardless, but catching them at lint time provides earlier feedback. + +## Exit Code Reference + +Forjar uses a minimal set of exit codes. The main binary (`src/main.rs`) dispatches to command handlers; if any handler returns `Err`, the process exits with code 1. Success always returns code 0. The `drift` command with `--tripwire` uses code 2 to signal drift detection without implying an error in the tool itself. + +| Code | Meaning | Commands | +|------|---------|----------| +| 0 | Success: operation completed without errors or findings | All commands | +| 1 | Error: validation failure, apply failure, parse error, I/O error, or unformatted file (`fmt --check`) | All commands | +| 2 | Drift detected: live state does not match lock file (not an error in forjar itself) | `drift --tripwire` | + +### Per-Command Details + +| Command | Exit 0 | Exit 1 | Exit 2 | +|---------|--------|--------|--------| +| `init` | Project initialized | Directory creation failed | -- | +| `validate` | Config is valid | Parse error, schema violation, cycle detected | -- | +| `plan` | Plan generated | Config invalid, state directory unreadable | -- | +| `apply` | All resources converged or unchanged | Any resource failed, config invalid, transport error | -- | +| `drift` | No drift found | Config invalid, state unreadable, transport error | Drift detected (`--tripwire`) | +| `status` | Status displayed | State directory missing or unreadable | -- | +| `history` | Events displayed | Event log missing or corrupt | -- | +| `show` | Resolved config displayed | Config invalid, template resolution failure | -- | +| `graph` | Graph generated | Config invalid | -- | +| `destroy` | Resources removed | `--yes` not provided, transport error | -- | +| `import` | Config generated | Connection failed, scan error | -- | +| `diff` | Diff displayed | State directories missing or unreadable | -- | +| `check` | All checks passed | Any check failed, transport error | -- | +| `fmt` | File formatted (or already formatted) | Parse error; unformatted file with `--check` | -- | +| `lint` | Lint completed (warnings are informational) | Config invalid | -- | +| `rollback` | Rollback applied | Git history unavailable, apply failure | -- | +| `anomaly` | Analysis completed | State directory unreadable | -- | + +### Scripting with Exit Codes + +```bash +# Gate deployment on validation + drift check +forjar validate -f forjar.yaml || exit 1 +forjar drift -f forjar.yaml --tripwire +case $? in + 0) echo "Clean — proceeding with deploy" ;; + 2) echo "Drift detected — investigate before deploying"; exit 1 ;; + *) echo "Error running drift check"; exit 1 ;; +esac +forjar apply -f forjar.yaml +``` + +The distinction between exit code 1 (tool error) and exit code 2 (drift signal) allows scripts to differentiate between "forjar failed to run" and "forjar ran successfully and found drift." + +### `forjar mcp` + +Start the MCP (Model Context Protocol) server using pforge. This enables +AI agents to manage infrastructure through the same validated pipeline. + +```bash +forjar mcp +``` + +The server runs on stdio transport and exposes 9 tools: +`forjar_validate`, `forjar_plan`, `forjar_drift`, `forjar_lint`, +`forjar_graph`, `forjar_show`, `forjar_status`, `forjar_trace`, +`forjar_anomaly`. + +Configure in your MCP client: + +```json +{ + "mcpServers": { + "forjar": { + "command": "forjar", + "args": ["mcp"] + } + } +} +``` + +Export tool schemas as JSON (for external consumers, IDEs, documentation): + +```bash +forjar mcp --schema > docs/mcp-schema.json +``` + +See Architecture chapter for full tool reference and handler details. + +### `forjar bench` + +Run inline performance benchmarks that validate spec §9 targets. + +```bash +forjar bench +forjar bench --iterations 10000 +forjar bench --json +``` + +| Flag | Description | +|------|-------------| +| `--iterations N` | Iterations per benchmark (default: 1000) | +| `--json` | Output results as JSON | + +Benchmarks: +- **validate** — Parse + validate a 3-machine, 20-resource config +- **plan** — Full plan pipeline: parse → DAG → diff +- **drift** — Load lock + drift detection on 100 resources +- **blake3** — BLAKE3 hash of a 4KB string + +Example output: + +``` +Forjar Performance Benchmarks (1000 iterations) + + Operation Average Target + -------------------------------------------------------- + validate (3m, 20r) 62.0µs < 10ms + plan (3m, 20r) 84.0µs < 2s + drift (100 resources) 356.0µs < 1s + blake3 hash (4KB) 0.5µs < 1µs +``` + +### `forjar state-list` + +Tabular view of all resources in state with type, status, hash prefix, and timestamp. + +```bash +forjar state-list +forjar state-list --machine web01 +forjar state-list --json +``` + +| Flag | Description | +|------|-------------| +| `--state-dir PATH` | State directory (default: `state`) | +| `--machine NAME` | Filter to specific machine | +| `--json` | Output as JSON array | + +### `forjar state-mv` + +Rename a resource in state without re-applying. Preserves hash and metadata. + +```bash +forjar state-mv old-resource-id new-resource-id +forjar state-mv old-name new-name --machine web01 +``` + +| Flag | Description | +|------|-------------| +| `--state-dir PATH` | State directory (default: `state`) | +| `--machine NAME` | Target specific machine | + +### `forjar state-rm` + +Remove a resource from state without destroying it on the machine. + +```bash +forjar state-rm deprecated-resource +forjar state-rm old-config --machine web01 +forjar state-rm legacy --force +``` + +| Flag | Description | +|------|-------------| +| `--state-dir PATH` | State directory (default: `state`) | +| `--machine NAME` | Target specific machine | +| `--force` | Skip dependency check | + +### `forjar output` + +Show resolved output values from the `outputs:` block in forjar.yaml. + +```bash +forjar output # all outputs +forjar output app_url # single key +forjar output --json # JSON format +forjar output -f other.yaml # different config +``` + +| Flag | Description | +|------|-------------| +| `-f PATH` | Path to forjar.yaml (default: `forjar.yaml`) | +| `--json` | Output as JSON | + +Output values support `{{params.*}}` and `{{machine.NAME.FIELD}}` template variables, resolved at display time. + +### `forjar lock` + +Generate a lock file from config without applying anything to machines. Resolves templates, computes BLAKE3 hashes for all desired-state resources, and writes the lock file. Use `--verify` in CI to assert that the committed lock matches the current config. + +```bash +forjar lock -f forjar.yaml # generate lock files +forjar lock -f forjar.yaml --verify # verify lock matches config (exit 1 on mismatch) +forjar lock -f forjar.yaml --json # JSON output +``` + +| Flag | Description | +|------|-------------| +| `-f PATH` | Path to forjar.yaml (default: `forjar.yaml`) | +| `--state-dir PATH` | State directory to write lock files into (default: `state`) | +| `--verify` | Compare computed hashes against existing lock; exit 1 if mismatch | +| `--json` | Output as JSON | + +### `forjar snapshot` + +Save, list, and restore named state snapshots for safe rollbacks and checkpoint-based workflows. + +#### Save a snapshot + +```bash +forjar snapshot save pre-upgrade +forjar snapshot save production-2024-02-26 +forjar snapshot save --state-dir /var/forjar/state backup-name +``` + +Copies the entire `state/` directory to `state/snapshots//`, preserving lock files and event logs for later restore. + +#### List available snapshots + +```bash +forjar snapshot list +forjar snapshot list --json +``` + +Shows all snapshots with creation timestamps. Sample output: + +``` +Snapshots: + pre-upgrade created 2024-02-26 14:32:15 + production-2024-02-26 created 2024-02-26 13:45:22 +``` + +#### Restore a snapshot + +```bash +forjar snapshot restore pre-upgrade +forjar snapshot restore production-2024-02-26 --state-dir /var/forjar/state +``` + +Replaces the current `state/` with the saved snapshot. The previous state is preserved in `state/snapshots/_previous/` for emergency recovery. + +#### Delete a snapshot + +```bash +forjar snapshot delete pre-upgrade +forjar snapshot delete old-backup --force +``` + +Removes a snapshot. Use `--force` to skip confirmation. + +| Flag | Description | +|------|-------------| +| `--state-dir PATH` | State directory (default: `state`) | +| `--json` | Output as JSON | +| `--force` | Skip confirmation prompts | + +**Use case**: Before a major config change, save a snapshot. If the apply fails or causes issues, restore the snapshot to revert state without re-running the previous converge. + +`forjar lock` is useful in CI pipelines where you want to pre-compute and commit the expected lock file, then verify on each run that config and lock stay in sync — without executing any apply against real machines. + +### `forjar schema` + +Export the JSON Schema for `forjar.yaml` to stdout. The schema describes every valid field, type, and constraint for machines, resources, and policy configuration. + +```bash +forjar schema +``` + +No arguments or flags are required. The schema is printed as JSON to stdout. + +#### Use Cases + +**Save to file for IDE integration:** + +```bash +forjar schema > forjar-schema.json +``` + +**VS Code YAML extension** — add to `.vscode/settings.json`: + +```json +{ + "yaml.schemas": { + "./forjar-schema.json": "forjar.yaml" + } +} +``` + +This gives you inline validation, field completion, and hover documentation as you edit `forjar.yaml`. + +**CI validation** — validate config against the schema without connecting to machines: + +```bash +forjar schema > /tmp/schema.json +# Use any JSON Schema validator +``` + +The schema covers the complete `ForjarConfig` structure: `version`, `name`, `description`, `params`, `machines`, `resources` (all 11 types with their fields), `policy`, `recipes`, and `includes`. + +### Phase 67 — Advanced Graph Analysis & Fleet Monitoring (FJ-797→FJ-804) + +**Orphan Resources** (FJ-797): Detect resources not part of any dependency chain. + +```bash +forjar validate -f forjar.yaml --check-orphan-resources +forjar validate -f forjar.yaml --check-orphan-resources --json +``` + +**Machine Architecture Validation** (FJ-801): Verify machine arch fields are valid. + +```bash +forjar validate -f forjar.yaml --check-machine-arch +forjar validate -f forjar.yaml --check-machine-arch --json +``` + +**Strongly Connected Components** (FJ-799): Find cycles using Tarjan's SCC algorithm. + +```bash +forjar graph -f forjar.yaml --strongly-connected +forjar graph -f forjar.yaml --strongly-connected --json-output +``` + +**Dependency Matrix CSV** (FJ-803): Export dependency matrix as CSV. + +```bash +forjar graph -f forjar.yaml --dependency-matrix-csv +forjar graph -f forjar.yaml --dependency-matrix-csv --json-output +``` + +**Apply Success Rate** (FJ-800): Show success/failure ratio per machine. + +```bash +forjar status --state-dir state --apply-success-rate +forjar status --state-dir state --apply-success-rate --json +``` + +**Error Rate** (FJ-802): Show error rate per machine. + +```bash +forjar status --state-dir state --error-rate +forjar status --state-dir state --error-rate --json +``` + +**Fleet Health Summary** (FJ-804): Aggregated fleet health overview. + +```bash +forjar status --state-dir state --fleet-health-summary +forjar status --state-dir state --fleet-health-summary --json +``` + +### Phase 68 — Fleet Intelligence & Advanced Validation (FJ-805→FJ-812) + +**Validate — resource health conflicts (FJ-805)** + +```bash +forjar validate -f forjar.yaml --check-resource-health-conflicts +forjar validate -f forjar.yaml --check-resource-health-conflicts --json +``` + +**Validate — resource overlap detection (FJ-809)** + +```bash +forjar validate -f forjar.yaml --check-resource-overlap +forjar validate -f forjar.yaml --check-resource-overlap --json +``` + +**Status — machine convergence history (FJ-806)** + +```bash +forjar status --state-dir state --machine-convergence-history +forjar status --state-dir state --machine-convergence-history --machine web +``` + +**Status — drift history timeline (FJ-810)** + +```bash +forjar status --state-dir state --drift-history +forjar status --state-dir state --drift-history --json +``` + +**Status — resource failure rate (FJ-812)** + +```bash +forjar status --state-dir state --resource-failure-rate +forjar status --state-dir state --resource-failure-rate --json +``` + +**Graph — weighted dependency edges (FJ-807)** + +```bash +forjar graph -f forjar.yaml --resource-weight +forjar graph -f forjar.yaml --resource-weight --json-output +``` + +**Graph — dependency depth per resource (FJ-811)** + +```bash +forjar graph -f forjar.yaml --dependency-depth-per-resource +forjar graph -f forjar.yaml --dependency-depth-per-resource --json-output +``` + +**Apply — PagerDuty notifications (FJ-808)** + +```bash +forjar apply -f forjar.yaml --notify-pagerduty +``` + +### Phase 69 — Operational Insights & Governance (FJ-813→FJ-820) + +**Validate — tag convention enforcement (FJ-813)** + +```bash +forjar validate -f forjar.yaml --check-resource-tags +# Tag convention issues (2): +# config-file — no tags assigned +# data-dir — no tags assigned +``` + +**Status — last apply per machine (FJ-814)** + +```bash +forjar status --state-dir state/ --machine-last-apply +# Last apply per machine: +# web-server — 2026-02-28T10:30:00Z +``` + +**Graph — fan-in per resource (FJ-815)** + +```bash +forjar graph -f forjar.yaml --resource-fanin +# Fan-in per resource: +# base-packages — 3 dependents +# config-file — 0 dependents +``` + +**Apply — Discord webhook notifications (FJ-816)** + +```bash +forjar apply -f forjar.yaml --notify-discord-webhook +``` + +**Validate — state consistency check (FJ-817)** + +```bash +forjar validate -f forjar.yaml --check-resource-state-consistency +# All resource states are consistent with their types. +``` + +**Status — fleet drift summary (FJ-818)** + +```bash +forjar status --state-dir state/ --fleet-drift-summary +# Fleet drift summary: +# web-server — 1/5 drifted (20.0%) +``` + +**Graph — isolated subgraphs (FJ-819)** + +```bash +forjar graph -f forjar.yaml --isolated-subgraphs +# Isolated subgraphs (2): +# Subgraph 1: config-file +# Subgraph 2: data-dir +``` + +**Status — resource apply duration (FJ-820)** + +```bash +forjar status --state-dir state/ --resource-apply-duration +# Average apply duration per resource type: +# Package — 2.50s +# File — 0.15s +``` + +### Phase 70 — Advanced Governance & Analytics (FJ-821→FJ-828) + +**Validate — dependency completeness check (FJ-821)** + +```bash +forjar validate -f forjar.yaml --check-resource-dependencies-complete +# All dependency targets exist. +``` + +**Status — machine resource health (FJ-822)** + +```bash +forjar status --state-dir state/ --machine-resource-health +# Machine resource health: +# web-server — converged: 4, failed: 1, drifted: 0 +``` + +**Graph — dependency chain per resource (FJ-823)** + +```bash +forjar graph -f forjar.yaml --resource-dependency-chain web-server +# Dependency chain for web-server: +# base-packages +# system-config +``` + +**Apply — MS Teams webhook notifications (FJ-824)** + +```bash +forjar apply -f forjar.yaml --notify-teams-webhook +``` + +**Validate — machine connectivity check (FJ-825)** + +```bash +forjar validate -f forjar.yaml --check-machine-connectivity +# All machine addresses look valid. +``` + +**Status — fleet convergence trend (FJ-826)** + +```bash +forjar status --state-dir state/ --fleet-convergence-trend +# Fleet convergence trend: +# web-server — 80.0% converged +``` + +**Graph — bottleneck resources (FJ-827)** + +```bash +forjar graph -f forjar.yaml --bottleneck-resources +# Bottleneck resources (high fan-in + fan-out): +# base-packages — fan-in: 3, fan-out: 2 +``` + +**Status — resource state distribution (FJ-828)** + +```bash +forjar status --state-dir state/ --resource-state-distribution +# Resource state distribution: +# CONVERGED — 12 +# FAILED — 2 +# DRIFTED — 1 +``` + +### Phase 71 — Compliance & Observability (FJ-829→FJ-836) + +**Validate — resource naming pattern (FJ-829)** + +```bash +forjar validate -f forjar.yaml --check-resource-naming-pattern "app" +# Resources not matching pattern 'app' (1): +# inference-server +``` + +**Status — machine apply count (FJ-830)** + +```bash +forjar status --state-dir state/ --machine-apply-count +# Apply counts per machine: +# web-01 — 5 resources tracked +# db-01 — 3 resources tracked +``` + +**Graph — critical dependency path (FJ-831)** + +```bash +forjar graph -f forjar.yaml --critical-dependency-path +# Critical dependency path (length 3): +# top → mid → base +``` + +**Validate — resource provider support (FJ-833)** + +```bash +forjar validate -f forjar.yaml --check-resource-provider-support +# All resource types are supported by their providers. +``` + +**Status — fleet apply history (FJ-834)** + +```bash +forjar status --state-dir state/ --fleet-apply-history +# Fleet apply history (most recent): +# web-01 / nginx-config — 2026-02-28T10:30:00Z +``` + +**Graph — resource depth histogram (FJ-835)** + +```bash +forjar graph -f forjar.yaml --resource-depth-histogram +# Resource depth histogram: +# depth 0 — 3 ### +# depth 1 — 2 ## +# depth 2 — 1 # +``` + +**Status — resource hash changes (FJ-836)** + +```bash +forjar status --state-dir state/ --resource-hash-changes +# Resource hashes (5 tracked): +# web-01 / nginx-config — abc123... +``` + +### Phase 72 — Security & Fleet Insights (FJ-837→FJ-844) + +**Validate — secret references (FJ-837)** + +```bash +forjar validate -f forjar.yaml --check-resource-secret-refs +# No secret reference issues found. +``` + +**Status — machine uptime estimate (FJ-838)** + +```bash +forjar status --state-dir state/ --machine-uptime-estimate +# Machine uptime estimates (by tracked resources): +# web-01 — 5 resources with apply history +``` + +**Graph — resource coupling score (FJ-839)** + +```bash +forjar graph -f forjar.yaml --resource-coupling-score +# Resource coupling scores: +# app <-> base — score 3 +``` + +**Validate — idempotency hints (FJ-841)** + +```bash +forjar validate -f forjar.yaml --check-resource-idempotency-hints +# All resources have idempotency characteristics. +``` + +**Status — fleet resource type breakdown (FJ-842)** + +```bash +forjar status --state-dir state/ --fleet-resource-type-breakdown +# Fleet resource type breakdown: +# Package — 8 +# File — 5 +# Service — 3 +``` + +**Graph — resource change frequency (FJ-843)** + +```bash +forjar graph -f forjar.yaml --resource-change-frequency +# Estimated change frequency (by dependency impact): +# base — score 3 +# app — score 1 +``` + +**Status — resource convergence time (FJ-844)** + +```bash +forjar status --state-dir state/ --resource-convergence-time +# Average convergence time per resource: +# nginx-config — 1.23s +``` + +### Phase 73 — Drift Intelligence & Governance (FJ-845→FJ-852) + +**Validate — dependency depth limit (FJ-845)** + +```bash +forjar validate -f forjar.yaml --check-resource-dependency-depth 3 +# All dependency chains within limit (3). +``` + +**Status — machine drift age (FJ-846)** + +```bash +forjar status --state-dir state/ --machine-drift-age +# Machine drift age (drifted resource count): +# web1 — 2 drifted resources +``` + +**Graph — resource impact score (FJ-847)** + +```bash +forjar graph -f forjar.yaml --resource-impact-score +# Resource impact scores (dependents + depth): +# ssl-cert — score 4 +# base-packages — score 2 +``` + +**Validate — machine affinity (FJ-849)** + +```bash +forjar validate -f forjar.yaml --check-resource-machine-affinity +# All resources have valid machine affinity. +``` + +**Status — fleet failed resources (FJ-850)** + +```bash +forjar status --state-dir state/ --fleet-failed-resources +# No failed resources across fleet. +``` + +**Graph — resource stability score (FJ-851)** + +```bash +forjar graph -f forjar.yaml --resource-stability-score +# Resource stability scores (higher = more stable): +# nginx-config — score 13 +# base-packages — score 10 +``` + +**Status — resource dependency health (FJ-852)** + +```bash +forjar status --state-dir state/ --resource-dependency-health +# Resource dependency health: +# web1 / nginx — 5 converged deps +``` + +#### Phase 74 — Predictive Analysis & Fleet Governance + +**Validate — check resource drift risk (FJ-853)** + +```bash +forjar validate -f forjar.yaml --check-resource-drift-risk +# Resource drift risk scores: +# nginx-config — risk 3 (file, 1 dependent) +# base-packages — risk 1 (package, 0 dependents) +``` + +**Status — machine resource age distribution (FJ-854)** + +```bash +forjar status --state-dir state/ --machine-resource-age-distribution +# Machine resource age distribution: +# web1 — 3 resources, oldest 45d, newest 2d +``` + +**Graph — resource dependency fanout (FJ-855)** + +```bash +forjar graph -f forjar.yaml --resource-dependency-fanout +# Resource dependency fan-out: +# base-packages — fan-out 4 +# nginx-config — fan-out 1 +``` + +**Apply — notify with custom headers (FJ-856)** + +```bash +forjar apply -f forjar.yaml --state-dir state/ \ + --notify-custom-headers "https://hooks.example.com/forjar|Authorization:Bearer tok123|X-Source:forjar" +``` + +**Validate — check resource tag coverage (FJ-857)** + +```bash +forjar validate -f forjar.yaml --check-resource-tag-coverage +# Tag coverage: 3/5 resources tagged (60%) +# Missing tags: db-config, log-rotate +``` + +**Status — fleet convergence velocity (FJ-858)** + +```bash +forjar status --state-dir state/ --fleet-convergence-velocity +# Fleet convergence velocity: +# web1 — 100% converged +# db1 — 80% converged +``` + +**Graph — resource dependency weight (FJ-859)** + +```bash +forjar graph -f forjar.yaml --resource-dependency-weight +# Resource dependency weights: +# base-packages → nginx-config — weight 2 +# nginx-config → nginx-service — weight 1 +``` + +**Status — resource failure correlation (FJ-860)** + +```bash +forjar status --state-dir state/ --resource-failure-correlation +# Resource failure correlation: +# nginx (Package) — failed on 2 machines: web1, web2 +``` + +#### Phase 75 — Resource Lifecycle & Operational Intelligence + +**Validate — check resource lifecycle hooks (FJ-861)** + +```bash +forjar validate -f forjar.yaml --check-resource-lifecycle-hooks +# All lifecycle hook references are valid. +``` + +**Status — machine resource churn rate (FJ-862)** + +```bash +forjar status --state-dir state/ --machine-resource-churn-rate +# Machine resource churn rate: +# web1 — 5 resources tracked +# db1 — 3 resources tracked +``` + +**Graph — resource dependency bottleneck (FJ-863)** + +```bash +forjar graph -f forjar.yaml --resource-dependency-bottleneck +# Dependency bottlenecks (fan-in + fan-out): +# base-packages — fan-in 0, fan-out 3, total 3 +# nginx-config — fan-in 1, fan-out 2, total 3 +``` + +**Apply — notify with custom JSON (FJ-864)** + +```bash +forjar apply -f forjar.yaml --state-dir state/ \ + --notify-custom-json "https://hooks.example.com|{\"status\":\"{{status}}\",\"config\":\"{{config}}\"}" +``` + +**Validate — check resource provider version (FJ-865)** + +```bash +forjar validate -f forjar.yaml --check-resource-provider-version +# All provider versions are compatible. +``` + +**Status — fleet resource staleness (FJ-866)** + +```bash +forjar status --state-dir state/ --fleet-resource-staleness +# Fleet resource staleness (oldest first): +# web1 / nginx — last applied 2025-01-15T10:30:00Z +# db1 / postgres — last applied 2025-02-01T14:00:00Z +``` + +**Graph — resource type clustering (FJ-867)** + +```bash +forjar graph -f forjar.yaml --resource-type-clustering +# Resource type clusters: +# Package — 3 resources: nginx, curl, base-packages +# File — 2 resources: nginx-config, app-config +# Service — 1 resource: nginx-service +``` + +**Status — machine convergence trend (FJ-868)** + +```bash +forjar status --state-dir state/ --machine-convergence-trend +# Machine convergence trend: +# web1 — 5/5 converged (100.0%) +# db1 — 2/3 converged (66.7%) +``` + +#### Phase 76 — Capacity Planning & Configuration Analytics + +**Validate — check resource naming convention (FJ-869)** + +```bash +forjar validate -f forjar.yaml --check-resource-naming-convention +# All resources follow naming conventions. +``` + +**Status — machine capacity utilization (FJ-870)** + +```bash +forjar status --state-dir state/ --machine-capacity-utilization +# Machine capacity utilization: +# web1 — 5 resources +# db1 — 3 resources +``` + +**Graph — resource dependency cycle risk (FJ-871)** + +```bash +forjar graph -f forjar.yaml --resource-dependency-cycle-risk +# Dependency cycle risks: +# app ↔ config — mutual depth 1 +``` + +**Apply — notify with custom filter (FJ-872)** + +```bash +forjar apply -f forjar.yaml --state-dir state/ \ + --notify-custom-filter "https://hooks.example.com|type:Package,status:Failed" +``` + +**Validate — check resource idempotency (FJ-873)** + +```bash +forjar validate -f forjar.yaml --check-resource-idempotency +# All resources appear idempotent-safe. +``` + +**Status — fleet configuration entropy (FJ-874)** + +```bash +forjar status --state-dir state/ --fleet-configuration-entropy +# Fleet configuration entropy (8 total resources): +# Package — 4 (50.0%) +# File — 3 (37.5%) +# Service — 1 (12.5%) +``` + +**Graph — resource impact radius (FJ-875)** + +```bash +forjar graph -f forjar.yaml --resource-impact-radius +# Resource impact radius (blast radius): +# base-packages — impact radius 3 +# nginx-config — impact radius 1 +# nginx-service — impact radius 0 +``` + +**Status — machine resource freshness (FJ-876)** + +```bash +forjar status --state-dir state/ --machine-resource-freshness +# Machine resource freshness (oldest first): +# web1 / nginx-config — last applied 2025-01-15T10:30:00Z +# web1 / nginx — last applied 2025-02-01T14:00:00Z +``` + +#### Phase 77 — Operational Maturity & Compliance Automation + +**Validate — check resource documentation (FJ-877)** + +```bash +forjar validate -f forjar.yaml --check-resource-documentation +# Resources missing documentation: +# data-dir +# dev-tools +``` + +**Status — machine error budget (FJ-878)** + +```bash +forjar status --state-dir state/ --machine-error-budget +# Machine error budget (failed / total): +# web1 — 1/5 failed (20.0% error budget consumed) +``` + +**Graph — resource dependency health map (FJ-879)** + +```bash +forjar graph -f forjar.yaml --resource-dependency-health-map +# Dependency health map: +# base (no dependencies) +# app → base +``` + +**Validate — check resource ownership (FJ-881)** + +```bash +forjar validate -f forjar.yaml --check-resource-ownership +# Resources missing ownership (no tags or resource_group): +# data-dir +# dev-tools +``` + +**Status — fleet compliance score (FJ-882)** + +```bash +forjar status --state-dir state/ --fleet-compliance-score +# Fleet compliance score: 80.0% (4/5 resources converged) +``` + +**Graph — resource change propagation (FJ-883)** + +```bash +forjar graph -f forjar.yaml --resource-change-propagation +# Change propagation analysis (resources by impact depth): +# base — propagation depth 2 +# middleware — propagation depth 1 +``` + +**Status — machine mean time to recovery (FJ-884)** + +```bash +forjar status --state-dir state/ --machine-mean-time-to-recovery +# Machine mean time to recovery: +# web1 — event data present +``` + +#### Phase 78 — Automation Intelligence & Fleet Optimization + +**Validate — check resource secret exposure (FJ-885)** + +```bash +forjar validate -f examples/dogfood-packages.yaml --check-resource-secret-exposure +# No secret exposures detected. + +forjar validate -f examples/dogfood-packages.yaml --check-resource-secret-exposure --json +# {"secret_exposures":[]} +``` + +**Status — machine resource dependency health (FJ-886)** + +```bash +forjar status --state-dir state/ --machine-resource-dependency-health +# Machine resource dependency health: +# web1 — 3/4 healthy +``` + +**Graph — resource dependency depth analysis (FJ-887)** + +```bash +forjar graph -f examples/dogfood-packages.yaml --resource-dependency-depth-analysis +# Dependency depth analysis (deepest first): +# tool-config — depth 1 +# data-dir — depth 0 +# dev-tools — depth 0 +``` + +**Validate — check resource tag standards (FJ-889)** + +```bash +forjar validate -f examples/dogfood-packages.yaml --check-resource-tag-standards +# All resource tags follow naming standards. +``` + +**Status — fleet resource type health (FJ-890)** + +```bash +forjar status --state-dir state/ --fleet-resource-type-health +# Fleet resource type health: +# File — 2/3 converged +# Package — 5/5 converged +``` + +**Graph — resource dependency fan analysis (FJ-891)** + +```bash +forjar graph -f examples/dogfood-packages.yaml --resource-dependency-fan-analysis +# Fan-in/fan-out analysis: +# dev-tools — fan-in: 1, fan-out: 0 +# tool-config — fan-in: 0, fan-out: 1 +# data-dir — fan-in: 0, fan-out: 0 +``` + +**Status — machine resource convergence rate (FJ-892)** + +```bash +forjar status --state-dir state/ --machine-resource-convergence-rate +# Machine resource convergence rate: +# web1 — 3/4 converged (75.0%) +``` + +#### Phase 79 — Security Hardening & Operational Insights + +**Validate — check resource privilege escalation (FJ-893)** + +```bash +forjar validate -f examples/dogfood-packages.yaml --check-resource-privilege-escalation +# No privilege escalation risks detected. +``` + +**Status — machine resource failure correlation (FJ-894)** + +```bash +forjar status --state-dir state/ --machine-resource-failure-correlation +# Resource failure correlations: +# nginx — failed on: web1, web2 +``` + +**Graph — resource dependency isolation score (FJ-895)** + +```bash +forjar graph -f examples/dogfood-packages.yaml --resource-dependency-isolation-score +# Dependency isolation scores (1.0 = fully isolated): +# data-dir — 1.00 +# dev-tools — 0.50 +# tool-config — 0.50 +``` + +**Validate — check resource update safety (FJ-897)** + +```bash +forjar validate -f examples/dogfood-packages.yaml --check-resource-update-safety +# All resources can be safely updated. +``` + +**Status — fleet resource age distribution (FJ-898)** + +```bash +forjar status --state-dir state/ --fleet-resource-age-distribution +# Fleet resource age distribution: +# has_applied_at — 5 resources +# no_applied_at — 2 resources +``` + +**Graph — resource dependency stability score (FJ-899)** + +```bash +forjar graph -f examples/dogfood-packages.yaml --resource-dependency-stability-score +# Dependency stability scores (1.0 = most stable): +# data-dir — 1.00 +# dev-tools — 1.00 +# tool-config — 0.50 +``` + +**Status — machine resource rollback readiness (FJ-900)** + +```bash +forjar status --state-dir state/ --machine-resource-rollback-readiness +# Machine rollback readiness: +# web1 — partial (lock only, no snapshots) +``` + +#### Phase 80 — Operational Resilience & Configuration Intelligence + +**Validate — check resource cross-machine consistency (FJ-901)** + +```bash +forjar validate -f examples/dogfood-packages.yaml --check-resource-cross-machine-consistency +# No cross-machine inconsistencies found. +``` + +**Status — machine resource health trend (FJ-902)** + +```bash +forjar status --state-dir state/ --machine-resource-health-trend +# Machine resource health trends: +# web1 — current data only (no historical trend) +``` + +**Graph — resource dependency critical path length (FJ-903)** + +```bash +forjar graph -f examples/dogfood-packages.yaml --resource-dependency-critical-path-length +# Critical path lengths (longest chain to root): +# tool-config — 2 +# data-dir — 1 +# dev-tools — 1 +``` + +**Validate — check resource version pinning (FJ-905)** + +```bash +forjar validate -f examples/dogfood-packages.yaml --check-resource-version-pinning +# Resources without pinned versions: +# dev-tools +``` + +**Status — fleet resource drift velocity (FJ-906)** + +```bash +forjar status --state-dir state/ --fleet-resource-drift-velocity +# Fleet resource drift velocity: +# web1 — 1/4 drifted (25.0%) +``` + +**Graph — resource dependency redundancy score (FJ-907)** + +```bash +forjar graph -f examples/dogfood-packages.yaml --resource-dependency-redundancy-score +# Redundancy scores (higher = more redundant paths): +# data-dir — 0.00 +# dev-tools — 0.00 +# tool-config — 0.00 +``` + +**Status — machine resource apply success trend (FJ-908)** + +```bash +forjar status --state-dir state/ --machine-resource-apply-success-trend +# Machine apply success trends: +# web1 — event history available +``` + +#### Phase 81 — Predictive Analytics & Configuration Quality + +**Validate — check resource dependency completeness (FJ-909)** + +```bash +forjar validate -f examples/dogfood-packages.yaml --check-resource-dependency-completeness +# All dependency references are complete. +``` + +**Status — machine resource MTTR estimate (FJ-910)** + +```bash +forjar status --state-dir state/ --machine-resource-mttr-estimate +# Machine MTTR estimates: +# intel — no data +``` + +**Graph — resource dependency centrality score (FJ-911)** + +```bash +forjar graph -f examples/dogfood-packages.yaml --resource-dependency-centrality-score +# Betweenness centrality scores: +# data-dir — 0.000 +# dev-tools — 0.000 +# tool-config — 0.000 +``` + +**Validate — check resource state coverage (FJ-913)** + +```bash +forjar validate -f examples/dogfood-packages.yaml --check-resource-state-coverage +# Resources without explicit state: +# dev-tools +# tool-config +``` + +**Status — fleet resource convergence forecast (FJ-914)** + +```bash +forjar status --state-dir state/ --fleet-resource-convergence-forecast +# No convergence forecast data available. +``` + +**Graph — resource dependency bridge detection (FJ-915)** + +```bash +forjar graph -f examples/dogfood-packages.yaml --resource-dependency-bridge-detection +# Bridge edges (1): +# tool-config → dev-tools +``` + +**Status — machine resource error budget forecast (FJ-916)** + +```bash +forjar status --state-dir state/ --machine-resource-error-budget-forecast +# No error budget forecast data available. +``` + +**Validate — check resource rollback safety (FJ-917)** + +```bash +forjar validate -f examples/dogfood-triggers.yaml --check-resource-rollback-safety +# Resources with rollback safety concerns: +# app-service — triggers 1 other resources +# monitoring — triggers 2 other resources +``` + +**Status — machine resource dependency lag (FJ-918)** + +```bash +forjar status --state-dir state/ --machine-resource-dependency-lag +# No dependency lag data available. +``` + +**Graph — resource dependency cluster coefficient (FJ-919)** + +```bash +forjar graph -f examples/dogfood-triggers.yaml --resource-dependency-cluster-coefficient +# Clustering coefficients: +# app-config — 0.000 +# app-service — 0.000 +# monitoring — 0.000 +``` + +**Validate — check resource config maturity (FJ-921)** + +```bash +forjar validate -f examples/dogfood-tags.yaml --check-resource-config-maturity +# Resource configuration maturity scores: +# db-config — 1/5 +# web-config — 1/5 +``` + +**Status — fleet resource dependency lag (FJ-922)** + +```bash +forjar status --state-dir state/ --fleet-resource-dependency-lag +# Fleet dependency lag: 0/0 resources converged (0.0% lagging) +``` + +**Graph — resource dependency modularity score (FJ-923)** + +```bash +forjar graph -f examples/dogfood-triggers.yaml --resource-dependency-modularity-score +# Modularity score: 0.500 +# Community 0 — app-config, app-service, monitoring +``` + +**Status — machine resource config drift rate (FJ-924)** + +```bash +forjar status --state-dir state/ --machine-resource-config-drift-rate +# No configuration drift rate data available. +``` + +#### Phase 83 — Advanced Graph Analytics & Fleet Observability (FJ-925→FJ-932) + +```bash +forjar validate -f forjar.yaml --check-resource-dependency-ordering +# All resource dependencies are topologically valid. +``` + +```bash +forjar validate -f forjar.yaml --check-resource-tag-completeness +# Resources missing tags: +# nginx-pkg +``` + +```bash +forjar status --state-dir state/ --machine-resource-convergence-lag +# No convergence lag data available. +``` + +```bash +forjar status --state-dir state/ --fleet-resource-convergence-lag +# Fleet convergence lag: 0 resources lagging +``` + +```bash +forjar status --state-dir state/ --machine-resource-dependency-depth +# No dependency depth data available. +``` + +```bash +forjar graph -f forjar.yaml --resource-dependency-diameter +# Graph diameter: 1 +``` + +```bash +forjar graph -f forjar.yaml --resource-dependency-eccentricity +# Resource eccentricity: +# app — eccentricity 1 +# base — eccentricity 0 +``` + +#### Phase 84 — Compliance Analytics & Infrastructure Forecasting (FJ-933→FJ-940) + +```bash +# FJ-933: Check resource naming standards (no spaces, lowercase start, no double underscores) +forjar validate -f forjar.yaml --check-resource-naming-standards +# All resource names follow naming conventions. + +# FJ-934: Convergence velocity per machine (converged/total ratio) +forjar status --state-dir state --machine-resource-convergence-velocity +# Convergence velocity: +# web — 0.8750 +# db — 1.0000 + +# FJ-935: Dependency graph edge density +forjar graph -f forjar.yaml --resource-dependency-density +# Graph density: 0.1667 (4 nodes, 1 edges) + +# FJ-936: Route notifications by resource type +forjar apply -f forjar.yaml --notify-custom-routing "file:slack|package:email|service:pagerduty" + +# FJ-937: Detect asymmetric dependency declarations +forjar validate -f forjar.yaml --check-resource-dependency-symmetry +# No asymmetric dependencies detected. + +# FJ-938: Fleet-wide convergence velocity +forjar status --state-dir state --fleet-resource-convergence-velocity +# Fleet convergence velocity: 0.9375 (2 machines) + +# FJ-939: Transitive reduction ratio in dependency graph +forjar graph -f forjar.yaml --resource-dependency-transitivity +# Transitivity: 0/3 edges redundant (ratio: 0.0000) + +# FJ-940: Failure recurrence per machine +forjar status --state-dir state --machine-resource-failure-recurrence +# Failure recurrence: +# web — 2 failed resources +``` + +#### Phase 85 — Advanced Compliance & Dependency Intelligence (FJ-941→FJ-948) + +```bash +# FJ-941: Detect circular alias references +forjar validate -f forjar.yaml --check-resource-circular-alias +# No circular alias references detected. + +# FJ-942: Drift frequency per machine +forjar status --state-dir state --machine-resource-drift-frequency +# Drift frequency: +# web — 3 drifted resources + +# FJ-943: Fan-out analysis (outgoing dependency edges) +forjar graph -f forjar.yaml --resource-dependency-fan-out +# Fan-out analysis (max: 3): +# app — 3 outgoing +# base — 0 outgoing + +# FJ-944: Deduplicate notifications within a time window +forjar apply -f forjar.yaml --notify-custom-dedup-window "https://hooks.example.com|60" + +# FJ-945: Warn when dependency depth exceeds threshold +forjar validate -f forjar.yaml --check-resource-dependency-depth-limit +# All dependency chains within depth limit (5). + +# FJ-946: Fleet-wide drift frequency +forjar status --state-dir state --fleet-resource-drift-frequency +# Fleet drift frequency: 5 drifted resources across 2 machines + +# FJ-947: Fan-in analysis (incoming dependency edges) +forjar graph -f forjar.yaml --resource-dependency-fan-in +# Fan-in analysis (max: 2): +# base — 2 incoming +# app — 0 incoming + +# FJ-948: Apply duration trend per machine +forjar status --state-dir state --machine-resource-apply-duration-trend +# Apply duration trends: +# web — avg 1.3000s +# db — avg 0.8500s +``` + +#### Phase 86 — Resource Lifecycle & Configuration Maturity (FJ-949→FJ-956) + +```bash +# FJ-949: Detect unused parameters +forjar validate -f forjar.yaml --check-resource-unused-params +# Unused parameters: +# base_dir + +# FJ-950: Convergence streak per machine +forjar status --state-dir state --machine-resource-convergence-streak +# Convergence streaks: +# web — 2 consecutive converged + +# FJ-951: Dependency path count +forjar graph -f forjar.yaml --resource-dependency-path-count +# Total dependency paths: 1 (2 nodes) + +# FJ-952: Rate-limit notifications per channel +forjar apply -f forjar.yaml --notify-custom-rate-limit "https://hooks.example.com|10/min" + +# FJ-953: Machine resource balance check +forjar validate -f forjar.yaml --check-resource-machine-balance +# Resource distribution is balanced (ratio: 0.0000). + +# FJ-954: Fleet-wide convergence streak +forjar status --state-dir state --fleet-resource-convergence-streak +# Fleet convergence streak avg: 2.0000 (1 machines) + +# FJ-955: Articulation points in dependency graph +forjar graph -f forjar.yaml --resource-dependency-articulation-points +# No articulation points found. + +# FJ-956: Error distribution per machine +forjar status --state-dir state --machine-resource-error-distribution +# Error distribution: +# web — 1 failed, 1 drifted +``` + +#### Phase 87 — Configuration Drift Analytics & Dependency Health (FJ-957→FJ-964) + +```bash +# FJ-957: Content hash consistency check +forjar validate -f forjar.yaml --check-resource-content-hash-consistency +# All content hashes are consistent. + +# FJ-958: Drift age per machine resource +forjar status --state-dir state --machine-resource-drift-age +# Drift ages: +# web/config — 2.00h drifted + +# FJ-959: Longest dependency path (critical chain) +forjar graph -f forjar.yaml --resource-dependency-longest-path +# Longest dependency path (2 hops): +# c → b → a + +# FJ-960: Exponential backoff for notification retries +forjar apply -f forjar.yaml --notify-custom-backoff "https://hooks.example.com|exponential" + +# FJ-961: Dependency reference completeness +forjar validate -f forjar.yaml --check-resource-dependency-refs +# All dependency references are valid. + +# FJ-962: Fleet-wide drift age aggregation +forjar status --state-dir state --fleet-resource-drift-age +# Fleet drift age: avg 2.00h across 1 drifted resources + +# FJ-963: Strongly connected components +forjar graph -f forjar.yaml --resource-dependency-strongly-connected +# No strongly connected components found (DAG is acyclic). + +# FJ-964: Recovery rate per machine +forjar status --state-dir state --machine-resource-recovery-rate +# Recovery rates: +# web — 50.0% recovered +``` + +#### Phase 88 — Drift Velocity, Trigger Refs & Topological Depth (FJ-965→FJ-972) + +```bash +# FJ-965: Validate trigger references +forjar validate -f forjar.yaml --check-resource-trigger-refs +# All trigger references are valid. + +# FJ-966: Drift velocity per machine +forjar status --state-dir state --machine-resource-drift-velocity +# Drift velocities: +# web — 0.50 drifts/hour + +# FJ-967: Topological depth of each resource +forjar graph -f forjar.yaml --resource-dependency-topological-depth +# Topological depth (max: 4): +# monitor — depth 4 +# app — depth 3 + +# FJ-968: Circuit breaker for notification failures +forjar apply -f forjar.yaml --notify-custom-circuit-breaker "https://hooks.example.com|5" + +# FJ-969: Parameter type safety validation +forjar validate -f forjar.yaml --check-resource-param-type-safety +# All parameter types look consistent. + +# FJ-970: Fleet-wide recovery rate +forjar status --state-dir state --fleet-resource-recovery-rate +# Fleet recovery rate: 75.0% across 2 machines + +# FJ-971: Weak dependency links (cascading failure risk) +forjar graph -f forjar.yaml --resource-dependency-weak-links +# Weak links (shared dependencies, cascading risk): +# config → base_dir (2 dependents) + +# FJ-972: Convergence efficiency per machine +forjar status --state-dir state --machine-resource-convergence-efficiency +# Convergence efficiency: +# web — 80.0% (4 converged / 5 total) +``` + +#### Phase 89 — Dependency Visualization & Fleet Health Scoring (FJ-973→FJ-980) + +```bash +# FJ-973: Environment variable consistency check +forjar validate -f forjar.yaml --check-resource-env-consistency +# All environment variable references are consistent. + +# FJ-974: Apply frequency per machine +forjar status --state-dir state --machine-resource-apply-frequency +# Apply frequencies: +# web — 6 resources applied + +# FJ-975: Minimum edge cut (bridge detection) +forjar graph -f forjar.yaml --resource-dependency-minimum-cut +# Minimum cut edges (bridges): +# app → migrations + +# FJ-976: Dead-letter queue for failed notifications +forjar apply -f forjar.yaml --notify-custom-dead-letter "https://hooks.example.com|my-dlq" + +# FJ-977: Secret rotation policy validation +forjar validate -f forjar.yaml --check-resource-secret-rotation +# All secret resources have rotation metadata. + +# FJ-978: Composite fleet health score +forjar status --state-dir state --fleet-resource-health-score +# Fleet health score: 83% (5 converged, 1 drifted, 0 failed of 6 total) + +# FJ-979: Dominator tree (single points of failure) +forjar graph -f forjar.yaml --resource-dependency-dominator-tree +# Dominator tree (single points of failure): +# base_dir — dominates 5 resources + +# FJ-980: Machine staleness index +forjar status --state-dir state --machine-resource-staleness-index +# Staleness index (higher = more stale): +# web — 0.6042 +``` + +#### Phase 90 — Resource Lifecycle & Dependency Resilience (FJ-981→FJ-988) + +```bash +# FJ-981: Resource lifecycle completeness check +forjar validate -f forjar.yaml --check-resource-lifecycle-completeness +# All resources have complete lifecycle definitions. + +# FJ-982: Drift recurrence per machine +forjar status --state-dir state --machine-resource-drift-recurrence +# Drift recurrence: +# web — 3 resources drifted + +# FJ-983: Edge resilience scores (0=bridge, 1=resilient) +forjar graph -f forjar.yaml --resource-dependency-resilience-score +# Edge resilience scores (0=bridge, 1=resilient): +# app → migrations — 0.00 +# config → base_dir — 1.00 + +# FJ-984: Custom escalation notifications +forjar apply -f forjar.yaml --notify-custom-escalation "https://hooks.example.com|warning" + +# FJ-985: Resource-provider compatibility check +forjar validate -f forjar.yaml --check-resource-provider-compatibility +# All resource types are compatible with providers. + +# FJ-986: Fleet drift heatmap +forjar status --state-dir state --fleet-resource-drift-heatmap +# Drift heatmap: +# web 2/6 ( 33.3%) +# db 0/4 ( 0.0%) + +# FJ-987: PageRank importance ranking +forjar graph -f forjar.yaml --resource-dependency-pagerank +# PageRank importance scores: +# base_dir — 0.321761 +# migrations — 0.181574 + +# FJ-988: Convergence trend (p90) +forjar status --state-dir state --machine-resource-convergence-trend-p90 +# Convergence trend: +# web — 80.0% converged (5 resources) +``` + +#### Phase 91 — Advanced Governance & Operational Depth (FJ-989→FJ-996) + +```bash +# FJ-989: Enforce naming conventions on resource names +forjar validate -f forjar.yaml --check-resource-naming-convention-strict +# All resource names follow naming conventions. + +# FJ-990: Drift age in hours per resource +forjar status --state-dir state --machine-resource-drift-age-hours +# Drift age (hours): +# web/config — 2.00h + +# FJ-991: Betweenness centrality for each resource +forjar graph -f forjar.yaml --resource-dependency-betweenness-centrality +# Betweenness centrality: +# base_dir — 8.0000 +# config — 3.0000 + +# FJ-992: Correlate notifications by time window +forjar apply -f forjar.yaml --notify-custom-correlation "https://hooks.example.com|30s" + +# FJ-993: Idempotency annotation check +forjar validate -f forjar.yaml --check-resource-idempotency-annotations +# Resources without idempotency annotations: 6 + +# FJ-994: Convergence percentiles (p50, p90, p99) +forjar status --state-dir state --fleet-resource-convergence-percentile +# Convergence percentiles (3 machines): +# p50 — 85.0% +# p90 — 100.0% +# p99 — 100.0% + +# FJ-995: Transitive closure size per resource +forjar graph -f forjar.yaml --resource-dependency-closure-size +# Transitive closure sizes: +# healthcheck — 5 reachable +# app — 4 reachable + +# FJ-996: Error rate per machine +forjar status --state-dir state --machine-resource-error-rate +# Error rates: +# web — 0.0% (0/6 failed) +``` + +#### Phase 92 — Fleet Observability & Dependency Topology (FJ-997→FJ-1004) + +```bash +# FJ-997: Resource content size limit check +forjar validate -f forjar.yaml --check-resource-content-size-limit +# All resource content within size limits (10240 bytes). + +# FJ-998: Convergence gap per machine +forjar status --state-dir state --machine-resource-convergence-gap +# Convergence gap (0=fully converged): +# web — 20.0% gap (5 resources) + +# FJ-999: Eccentricity map (max distance from each node) +forjar graph -f forjar.yaml --resource-dependency-eccentricity-map +# Eccentricity map: +# healthcheck — 4 +# app — 3 + +# FJ-1000: Sample notifications at configurable rate +forjar apply -f forjar.yaml --notify-custom-sampling "https://hooks.example.com|10" + +# FJ-1001: Fan-in/fan-out limit check +forjar validate -f forjar.yaml --check-resource-dependency-fan-limit +# All resources within fan-in/fan-out limit (10). + +# FJ-1002: Error distribution across fleet +forjar status --state-dir state --fleet-resource-error-distribution +# Error distribution: +# web 1/6 +# db 0/4 + +# FJ-1003: Diameter path (longest shortest path) +forjar graph -f forjar.yaml --resource-dependency-diameter-path +# Graph diameter: 4 (path: healthcheck → app → migrations → config → base_dir) + +# FJ-1004: Convergence stability score +forjar status --state-dir state --machine-resource-convergence-stability +# Convergence stability: 87.5% (mean: 90.0%, 3 machines) +``` + +#### Phase 95 — Operational Resilience & Runtime Diagnostics (FJ-1021→FJ-1028) + +```bash +# FJ-1021: Fleet apply success rate trend +forjar status --state-dir state --fleet-apply-success-rate-trend +# web: 66.7% (2/3) +# db: 100.0% (4/4) + +# FJ-1022: Lifecycle hook coverage check +forjar validate -f forjar.yaml --check-resource-lifecycle-hook-coverage +# warning: nginx-svc (service) has no lifecycle hooks +# warning: vim-pkg (package) has no lifecycle hooks + +# FJ-1023: Parallel execution groups +forjar graph -f forjar.yaml --resource-dependency-parallel-groups +# Group 0 (parallel): base_dir, config +# Group 1 (parallel): app, migrations +# Group 2 (parallel): healthcheck + +# FJ-1024: Drift flapping detection +forjar status --state-dir state --machine-resource-drift-flapping +# config: drifted (file) +# nginx: drifted (service) + +# FJ-1025: Secret rotation age check +forjar validate -f forjar.yaml --check-resource-secret-rotation-age +# review: db_password contains encrypted secret (rotation recommended) + +# FJ-1026: Execution cost estimation +forjar graph -f forjar.yaml --resource-dependency-execution-cost +# Total resources: 5 +# Total estimated cost: 12 +# Critical path cost: 9 (path: base_dir → app → healthcheck) + +# FJ-1027: Drift type heatmap +forjar status --state-dir state --fleet-resource-type-drift-heatmap +# file: 3 drifted across 2 machines +# service: 1 drifted across 1 machines + +# FJ-1028: Dependency chain depth check +forjar validate -f forjar.yaml --check-resource-dependency-chain-depth +# All dependency chains within depth limit (10). +``` + +#### Phase 96 — Transport Diagnostics & Recipe Governance (FJ-1029→FJ-1036) + +```bash +# FJ-1029: SSH connection health per machine +forjar status --state-dir ./state --machine-ssh-connection-health +# === Machine SSH Connection Health === +# ✓ web: transport=local, healthy=true + +# FJ-1030: Recipe input completeness check +forjar validate -f forjar.yaml --check-recipe-input-completeness +# No missing recipe input references found. + +# FJ-1031: Recipe expansion map +forjar graph -f forjar.yaml --resource-recipe-expansion-map +# Resources grouped by type (no recipe origin): +# file -> config, readme +# package -> vim, curl + +# FJ-1032: Lock file staleness report +forjar status --state-dir ./state --lock-file-staleness-report +# === Lock File Staleness Report === +# web: generated=2026-02-28T00:00:00Z, resources=3, size=512B + +# FJ-1033: Cross-machine content duplicates +forjar validate -f forjar.yaml --check-resource-cross-machine-content-duplicates +# No cross-machine content duplicates found. + +# FJ-1034: Critical chain path analysis +forjar graph -f forjar.yaml --resource-dependency-critical-chain-path +# Critical chain path (3 nodes): +# repo -> build -> deploy + +# FJ-1035: Fleet transport method summary +forjar status --state-dir ./state --fleet-transport-method-summary +# === Fleet Transport Method Summary === +# Local: 1 machines ["web"] +# SSH: 2 machines ["db", "cache"] + +# FJ-1036: Machine reference validity +forjar validate -f forjar.yaml --check-resource-machine-reference-validity +# No machine reference violations found. +``` + +#### Phase 97 — State Analytics & Capacity Planning (FJ-1037→FJ-1044) + +```bash +# FJ-1037: Fleet state churn analysis +forjar status --state-dir ./state --fleet-state-churn-analysis +# === Fleet State Churn Analysis === +# web: resources=5, drifted=0, churn=stable + +# FJ-1038: Resource health correlation +forjar validate -f forjar.yaml --check-resource-health-correlation +# Dependency hub: base-config (depended on by 4 resources) + +# FJ-1039: Apply order simulation +forjar graph -f forjar.yaml --resource-apply-order-simulation +# Level 1 (parallel): base-pkg, base-config +# Level 2 (parallel): app-config +# Level 3 (parallel): app-service + +# FJ-1040: Config maturity score +forjar status --state-dir ./state --config-maturity-score +# === Config Maturity Score === +# web: score=80/100, grade=B + +# FJ-1041: Dependency optimization +forjar validate -f forjar.yaml --check-dependency-optimization +# Redundant edge: svc -> base (already reachable via svc -> cfg -> base) + +# FJ-1042: Resource provenance summary +forjar graph -f forjar.yaml --resource-provenance-summary +# (file, web): 3 resources, avg depth 1.3 +# (package, web): 2 resources, avg depth 0.0 + +# FJ-1043: Fleet capacity utilization +forjar status --state-dir ./state --fleet-capacity-utilization +# === Fleet Capacity Utilization === +# Machines: 3, Resources: 15, Avg: 5.0/machine + +# FJ-1044: Resource consolidation opportunities +forjar validate -f forjar.yaml --check-resource-consolidation-opportunities +# No consolidation opportunities found. +``` + +#### Phase 98 — Compliance Automation & Drift Intelligence (FJ-1045→FJ-1052) + +```bash +# FJ-1045: Fleet drift velocity trend +forjar status --state-dir ./state --fleet-drift-velocity-trend +# === Fleet Drift Velocity Trend === +# web: drifted=1/5, velocity=low + +# FJ-1046: Resource compliance tags +forjar validate -f forjar.yaml --check-resource-compliance-tags +# Resources missing compliance tags (2): +# warning: app-config has no tags matching compliance keywords + +# FJ-1047: Resource dependency risk score +forjar graph -f forjar.yaml --resource-dependency-risk-score +# Risk scores: +# base-pkg: risk=0.82 (high fan-in, infra layer) +# app-service: risk=0.35 (leaf, app layer) + +# FJ-1048: Machine convergence window +forjar status --state-dir ./state --machine-convergence-window +# === Machine Convergence Window === +# web: converged=4/5, window=80% + +# FJ-1049: Resource rollback coverage +forjar validate -f forjar.yaml --check-resource-rollback-coverage +# Resources lacking rollback coverage (1): +# warning: app-service — no pre_apply or post_apply hook defined + +# FJ-1050: Resource dependency layering +forjar graph -f forjar.yaml --resource-dependency-layering +# Layers: +# infra: base-pkg (1) +# config: app-config (1) +# app: app-service (1) + +# FJ-1051: Fleet resource age histogram +forjar status --state-dir ./state --fleet-resource-age-histogram +# === Resource Age Histogram === +# <1h: 2, 1-24h: 3, 1-7d: 0, >7d: 0 + +# FJ-1052: Resource dependency balance +forjar validate -f forjar.yaml --check-resource-dependency-balance +# Dependency balance: max fan-in=3 (base-pkg), mean=1.2 +``` + +#### Phase 99 — Security Posture & Resource Lifecycle (FJ-1053→FJ-1060) + +```bash +# FJ-1053: Fleet security posture summary +forjar status --state-dir ./state --fleet-security-posture-summary +# === Fleet Security Posture === +# web: secret_refs=2, privileged=1, tls=1, posture=moderate + +# FJ-1054: Resource secret scope +forjar validate -f forjar.yaml --check-resource-secret-scope +# Secret scope warnings: db-creds deploys to 2 machines + +# FJ-1055: Resource lifecycle stage map +forjar graph -f forjar.yaml --resource-lifecycle-stage-map +# Lifecycle stages: +# active: app-config, app-service +# stable: base-pkg +# deprecated: legacy-cron + +# FJ-1056: Machine resource freshness index +forjar status --state-dir ./state --machine-resource-freshness-index +# === Machine Resource Freshness Index === +# web: freshness=95/100, generated_at=2026-02-28T00:00:00Z + +# FJ-1057: Resource deprecation usage +forjar validate -f forjar.yaml --check-resource-deprecation-usage +# warning: new-svc depends on deprecated resource old-config + +# FJ-1058: Resource dependency age overlay +forjar graph -f forjar.yaml --resource-dependency-age-overlay +# Dependency age overlay (3 edges): +# cfg (file) -> pkg (package) +# svc (service) -> cfg (file) + +# FJ-1059: Fleet resource type coverage +forjar status --state-dir ./state --fleet-resource-type-coverage +# === Fleet Resource Type Coverage === +# file | 3 machine(s): db, web, worker +# package | 2 machine(s): db, web + +# FJ-1060: Resource when condition coverage +forjar validate -f forjar.yaml --check-resource-when-condition-coverage +# warning: b depends on conditional a but has no when clause +``` + +#### Phase 100 — Operational Intelligence & Graph Health (FJ-1061→FJ-1068) + +```bash +# FJ-1061: Fleet apply cadence +forjar status --state-dir ./state --fleet-apply-cadence +# === Fleet Apply Cadence === +# web: last_apply=2026-02-28T00:00:00Z, cadence=daily + +# FJ-1062: Resource dependency symmetry (deep) +forjar validate -f forjar.yaml --check-resource-dependency-symmetry-deep +# Dependency symmetry (deep): ok (0 asymmetric pairs) + +# FJ-1063: Resource dependency health overlay +forjar graph -f forjar.yaml --resource-dependency-health-overlay +# Dependency health overlay: +# pkg (package) [healthy] -> cfg (file) [healthy] + +# FJ-1064: Machine resource error classification +forjar status --state-dir ./state --machine-resource-error-classification +# === Machine Resource Error Classification === +# web: converged=1, drifted=1, failed=0 + +# FJ-1065: Resource tag namespace +forjar validate -f forjar.yaml --check-resource-tag-namespace +# Tag namespace analysis: 1 namespaced, 1 unnamespaced + +# FJ-1066: Resource dependency width analysis +forjar graph -f forjar.yaml --resource-dependency-width-analysis +# Dependency width analysis: +# level 0: 2 nodes (a, b) +# level 1: 1 nodes (c) +# max_width=2 + +# FJ-1067: Fleet resource convergence summary +forjar status --state-dir ./state --fleet-resource-convergence-summary +# === Fleet Resource Convergence Summary === +# web: converged=1, drifted=1, total=2, pct=50.0% + +# FJ-1068: Resource machine capacity +forjar validate -f forjar.yaml --check-resource-machine-capacity +# Machine capacity: m has 1 resource(s) (within limits) +``` + +#### Phase 101 — Fleet Insight & Dependency Quality (FJ-1069→FJ-1076) + +```bash +# FJ-1069: Fleet resource staleness report +forjar status --state-dir ./state --fleet-resource-staleness-report +# === Fleet Resource Staleness Report === +# web: age=2 days, fresh +# db: age=10 days, STALE (>7d threshold) + +# FJ-1070: Resource dependency fan-out limit +forjar validate -f forjar.yaml --check-resource-dependency-fan-out-limit +# Fan-out analysis: all resources within limit (max 10) + +# FJ-1071: Resource dependency critical path highlight +forjar graph -f forjar.yaml --resource-dependency-critical-path-highlight +# Critical path (length=3): +# base-pkg -> app-config -> app-service + +# FJ-1072: Machine resource type distribution +forjar status --state-dir ./state --machine-resource-type-distribution +# === Machine Resource Type Distribution === +# web: file=3, service=2, package=1 + +# FJ-1073: Resource tag required keys +forjar validate -f forjar.yaml --check-resource-tag-required-keys +# Tag key analysis: 2 resources missing required keys (env, team, tier) + +# FJ-1074: Resource dependency bottleneck detection +forjar graph -f forjar.yaml --resource-dependency-bottleneck-detection +# Bottlenecks: +# base-pkg (fan-in=3): depended on by app-config, app-service, cron-job + +# FJ-1075: Fleet machine health score +forjar status --state-dir ./state --fleet-machine-health-score +# === Fleet Machine Health Score === +# web: 75.0/100 (converged=80%, drifted=15%, failed=5%) + +# FJ-1076: Resource content drift risk +forjar validate -f forjar.yaml --check-resource-content-drift-risk +# Drift risk scores: +# app-service (service): risk=6 (base=4, deps=2) +# app-config (file): risk=4 (base=3, deps=1) +``` + +#### Phase 102 — Resource Intelligence & Topology Insight (FJ-1077→FJ-1084) + +```bash +# FJ-1077: Fleet resource dependency lag report +forjar status --state-dir ./state --fleet-resource-dependency-lag-report +# === Fleet Resource Dependency Lag === +# web: 1 lagging (of 2 total) + +# FJ-1078: Resource circular dependency depth +forjar validate -f forjar.yaml --check-resource-circular-dependency-depth +# Circular dependency check: ok (0 cycles found) + +# FJ-1079: Resource topology cluster analysis +forjar graph -f forjar.yaml --resource-topology-cluster-analysis +# Topology cluster analysis (2 cluster(s)): +# Cluster 0 (2 member(s)): app-config, base-pkg +# Cluster 1 (1 member(s)): standalone-cron + +# FJ-1080: Machine resource convergence rate trend +forjar status --state-dir ./state --machine-resource-convergence-rate-trend +# === Machine Resource Convergence Rate Trend === +# web: 50.0% (1 converged / 2 total) + +# FJ-1081: Resource orphan detection (deep) +forjar validate -f forjar.yaml --check-resource-orphan-detection-deep +# Orphan detection: ok (0 unreachable resources) + +# FJ-1082: Resource dependency island detection +forjar graph -f forjar.yaml --resource-dependency-island-detection +# Dependency island detection (1 island(s)): +# standalone-cron + +# FJ-1083: Fleet resource apply lag +forjar status --state-dir ./state --fleet-resource-apply-lag +# === Fleet Resource Apply Lag === +# web: 0d (generated_at=2026-02-28T00:00:00Z) + +# FJ-1084: Resource provider diversity +forjar validate -f forjar.yaml --check-resource-provider-diversity +# Provider diversity: 3 types found (file, package, service) +``` + +#### Phase 103 — Fleet Analytics & Configuration Quality (FJ-1085→FJ-1092) + +```bash +# FJ-1085: Fleet resource error rate trend +forjar status --state-dir ./state --fleet-resource-error-rate-trend +# === Fleet Resource Error Rate Trend === +# web: 0.0% error rate (0 failed / 2 total) + +# FJ-1086: Resource dependency isolation +forjar validate -f forjar.yaml --check-resource-dependency-isolation +# Dependency isolation: 1 cross-stage dependency found + +# FJ-1087: Resource dependency depth histogram +forjar graph -f forjar.yaml --resource-dependency-depth-histogram-analysis +# Depth histogram: +# depth 0: 1 resource(s) +# depth 1: 1 resource(s) + +# FJ-1088: Machine resource drift recovery time +forjar status --state-dir ./state --machine-resource-drift-recovery-time +# === Machine Resource Drift Recovery Time === +# web: 60s estimated (1 drifted resource) + +# FJ-1089: Resource tag value consistency +forjar validate -f forjar.yaml --check-resource-tag-value-consistency +# Tag consistency: 1 warning (inconsistent tags in file group) + +# FJ-1090: Resource dependency redundancy analysis +forjar graph -f forjar.yaml --resource-dependency-redundancy-analysis +# Redundancy analysis: 1 redundant edge (c->a already reachable via b) + +# FJ-1091: Fleet resource config complexity score +forjar status --state-dir ./state --fleet-resource-config-complexity-score +# === Fleet Resource Config Complexity Score === +# web: score=30 (2 resources, 2 types) + +# FJ-1092: Resource machine distribution balance +forjar validate -f forjar.yaml --check-resource-machine-distribution-balance +# Distribution balance: balanced (1 machine) +``` + +#### Phase 104 — Operational Maturity & Dependency Governance (FJ-1093→FJ-1100) + +```bash +# FJ-1093: Fleet resource maturity index +forjar status --state-dir ./state --fleet-resource-maturity-index +# === Fleet Resource Maturity Index === +# web: maturity=0.50 (1 converged, 1 drifted) + +# FJ-1094: Resource dependency version drift +forjar validate -f forjar.yaml --check-resource-dependency-version-drift +# Version drift: 0 warnings (no version-pinned dependencies outdated) + +# FJ-1095: Resource dependency change impact radius +forjar graph -f forjar.yaml --resource-dependency-change-impact-radius +# Change impact radius: +# a: 2 downstream resources affected + +# FJ-1096: Machine resource convergence stability index +forjar status --state-dir ./state --machine-resource-convergence-stability-index +# === Machine Resource Convergence Stability Index === +# web: stability=0.50 (1 converged, 1 drifted) + +# FJ-1097: Resource naming length limit +forjar validate -f forjar.yaml --check-resource-naming-length-limit +# Naming length: 0 warnings (all names within limit) + +# FJ-1098: Resource dependency sibling analysis +forjar graph -f forjar.yaml --resource-dependency-sibling-analysis +# Sibling analysis: +# b, c share parent: a + +# FJ-1099: Fleet resource drift pattern analysis +forjar status --state-dir ./state --fleet-resource-drift-pattern-analysis +# === Fleet Resource Drift Pattern Analysis === +# web: 1 drift pattern (service resources drift most) + +# FJ-1100: Resource type coverage per machine +forjar validate -f forjar.yaml --check-resource-type-coverage-per-machine +# Type coverage: m1 has [file, service], m2 has [file] (missing: service) +``` + +#### Phase 105 — Fleet Resilience & Configuration Hygiene (FJ-1101→FJ-1108) + +```bash +# FJ-1101: Fleet resource apply success trend +forjar status --state-dir ./state --fleet-resource-apply-success-trend +# === Fleet Resource Apply Success Trend === +# web: 50.0% success (1 converged / 2 total) + +# FJ-1102: Resource dependency depth variance +forjar validate -f forjar.yaml --check-resource-dependency-depth-variance +# Dependency depth variance: 2.0 (min=0, max=2, resources=3) + +# FJ-1103: Resource dependency fan-in hotspot +forjar graph -f forjar.yaml --resource-dependency-fan-in-hotspot +# Fan-in hotspots: +# a: fan_in=3 (depended on by: b, c, d) + +# FJ-1104: Machine resource drift age distribution +forjar status --state-dir ./state --machine-resource-drift-age-distribution-report +# === Machine Resource Drift Age Distribution === +# web: 1 converged, 1 drifted, 0 failed + +# FJ-1105: Resource tag key naming +forjar validate -f forjar.yaml --check-resource-tag-key-naming +# Tag key naming: 0 warnings (all keys follow conventions) + +# FJ-1106: Cross-machine dependency bridges +forjar graph -f forjar.yaml --resource-dependency-cross-machine-bridge +# Cross-machine bridges: +# b -> a (m2 -> m1) + +# FJ-1107: Fleet resource convergence gap analysis +forjar status --state-dir ./state --fleet-resource-convergence-gap-analysis +# === Fleet Resource Convergence Gap Analysis === +# fleet_average: 50.0% +# web: 50.0% (gap: 0.0%) + +# FJ-1108: Resource content length limit +forjar validate -f forjar.yaml --check-resource-content-length-limit +# Content length: 0 resources exceed limit (4096 chars) +``` + +#### Phase 106 — Dependency Intelligence & Fleet Configuration (FJ-1109→FJ-1116) + +```bash +# FJ-1109: Fleet resource type drift correlation +forjar status --state-dir ./state --fleet-resource-type-drift-correlation +# === Fleet Resource Type Drift Correlation === +# file: 1 drifted / 1 total (100.0%) +# service: 1 drifted / 1 total (100.0%) + +# FJ-1110: Resource dependency completeness audit +forjar validate -f forjar.yaml --check-resource-dependency-completeness-audit +# Dependency completeness: 3 resources, 2 with deps, 0 missing refs + +# FJ-1111: Resource dependency weight analysis +forjar graph -f forjar.yaml --resource-dependency-weight-analysis +# Dependency weights: +# a: weight=2 (depended on by 2 resources) +# b: weight=0 (leaf) + +# FJ-1112: Machine resource apply cadence report +forjar status --state-dir ./state --machine-resource-apply-cadence-report +# === Machine Resource Apply Cadence Report === +# web: 2 resources, estimated cadence: daily + +# FJ-1113: Resource machine coverage gap +forjar validate -f forjar.yaml --check-resource-machine-coverage-gap +# Machine coverage: m1 has 1 resource, m2 has 0 (gap detected) + +# FJ-1114: Resource dependency topological summary +forjar graph -f forjar.yaml --resource-dependency-topological-summary +# Topological order: +# 1. a (depth 0) +# 2. b (depth 1) +# 3. c (depth 2) + +# FJ-1115: Fleet resource drift recovery trend +forjar status --state-dir ./state --fleet-resource-drift-recovery-trend +# === Fleet Resource Drift Recovery Trend === +# web: 50.0% recovery (1 converged from 2 total) + +# FJ-1116: Resource path depth limit +forjar validate -f forjar.yaml --check-resource-path-depth-limit +# Path depth: 0 resources exceed limit (10 segments) +``` + +#### Phase 107 — Resource Quality Scoring & Fleet Drift Analytics (FJ-1117→FJ-1124) + +```bash +# FJ-1117: Fleet resource quality score +forjar status --state-dir ./state --fleet-resource-quality-score +# === Fleet Resource Quality Score === +# web: 75.0% quality (convergence + freshness composite) + +# FJ-1118: Resource dependency ordering consistency +forjar validate -f forjar.yaml --check-resource-dependency-ordering-consistency +# Dependency ordering: 3 resources, 0 inconsistencies + +# FJ-1119: Resource dependency critical path +forjar graph -f forjar.yaml --resource-dependency-critical-path +# Critical path (length 3): a -> b -> c + +# FJ-1120: Machine resource drift pattern classification +forjar status --state-dir ./state --machine-resource-drift-pattern-classification +# === Drift Pattern Classification === +# web: 1 chronic, 0 transient, 0 new + +# FJ-1121: Resource tag value format +forjar validate -f forjar.yaml --check-resource-tag-value-format +# Tag format: 3 resources checked, 0 warnings + +# FJ-1122: Resource dependency cluster analysis +forjar graph -f forjar.yaml --resource-dependency-cluster-analysis +# Dependency clusters: +# Cluster 0 (3 resources): a, b, c + +# FJ-1123: Fleet resource convergence window analysis +forjar status --state-dir ./state --fleet-resource-convergence-window-analysis +# === Convergence Window Analysis === +# web: 50.0% converged, window estimate: moderate + +# FJ-1124: Resource provider version pinning +forjar validate -f forjar.yaml --check-resource-provider-version-pinning +# Version pinning: 1 pinned / 3 total resources +``` + +### `forjar watch` + +Watch a config file for changes and automatically re-plan. + +```bash +forjar watch -f [--interval N] [--state-dir DIR] [--apply --yes] +``` + +| Flag | Default | Description | +|------|---------|-------------| +| `-f, --file` | `forjar.yaml` | Config file to watch | +| `--interval` | `2` | Polling interval in seconds | +| `--state-dir` | `state` | Directory for lock files | +| `--apply` | false | Auto-apply on change (requires `--yes`) | +| `--yes` | false | Confirm auto-apply (must be combined with `--apply`) | + +Uses filesystem polling (no inotify dependency). On each detected change, forjar re-reads the config and prints an updated plan. Press `Ctrl-C` to stop. + +**Watch and plan only (safe):** + +```bash +forjar watch -f forjar.yaml +``` + +**Custom polling interval:** + +```bash +forjar watch -f forjar.yaml --interval 5 +``` + +**Auto-apply on change (requires both flags):** + +```bash +forjar watch -f forjar.yaml --apply --yes +``` + +Both `--apply` and `--yes` are required for auto-apply. Passing `--apply` alone will error, preventing accidental unattended applies. diff --git a/docs/book/07-cookbook.md b/docs/book/src/07-cookbook.md similarity index 51% rename from docs/book/07-cookbook.md rename to docs/book/src/07-cookbook.md index 2b9ced18..e28f6b99 100644 --- a/docs/book/07-cookbook.md +++ b/docs/book/src/07-cookbook.md @@ -392,6 +392,93 @@ cargo run -- drift -f dogfood.yaml --state-dir /tmp/dogfood cargo run -- apply -f dogfood.yaml --state-dir /tmp/dogfood --force ``` +## Forjar Score + +Every config receives a **Forjar Score** — a multi-dimensional quality grade from A through F. Run `forjar score` to get a breakdown: + +```bash +# Score a config (static analysis only) +forjar score --file forjar.yaml + +# Score with custom status/idempotency +forjar score --file forjar.yaml --status qualified --idempotency strong + +# JSON output for CI pipelines +forjar score --file forjar.yaml --json +``` + +Example output: + +``` +Forjar Score: 83 (Grade C) +======================================== + COR Correctness 100/100 20%w [####################] + IDM Idempotency 100/100 20%w [####################] + PRF Performance 85/100 15%w [#################...] + SAF Safety 82/100 15%w [################....] + OBS Observability 60/100 10%w [############........] + DOC Documentation 90/100 8%w [##################..] + RES Resilience 50/100 7%w [##########..........] + CMP Composability 35/100 5%w [#######.............] + + Composite: 83/100 + Grade: C +``` + +### Scoring Dimensions + +| Code | Dimension | Weight | What It Measures | +|------|-----------|--------|------------------| +| COR | Correctness | 20% | Converges from clean state, all resources pass | +| IDM | Idempotency | 20% | Zero changes on re-apply, stable hashes | +| PRF | Performance | 15% | Within time budget, fast re-apply | +| SAF | Safety | 15% | No 0777, no curl\|bash, explicit modes/owners | +| OBS | Observability | 10% | Outputs, tripwire, notify hooks | +| DOC | Documentation | 8% | Description, naming, comments | +| RES | Resilience | 7% | Failure policy, dependency DAG, lifecycle hooks | +| CMP | Composability | 5% | Params, templates, tags, includes | + +### Grade Gates + +| Grade | Composite | Min Dimension | Meaning | +|-------|-----------|---------------|---------| +| A | >= 90 | >= 80 | Production-hardened | +| B | >= 75 | >= 60 | Solid, minor gaps | +| C | >= 60 | >= 40 | Functional but rough | +| D | >= 40 | any | Bare minimum | +| F | < 40 | any | Blocked/pending/failing | + +Grade A requires *every* dimension >= 80, so you can't game the score by overperforming in easy dimensions. + +### Improving Your Score + +Common improvements to raise your grade: + +- **SAF**: Add explicit `mode` and `owner` to all file resources, pin package versions +- **OBS**: Add `outputs:` section, enable `tripwire: true`, configure `notify:` hooks +- **RES**: Set `failure: continue_independent`, add `depends_on` for DAG coverage, add `pre_apply`/`post_apply` hooks +- **CMP**: Use `params:` for configurable values, add `tags:` and `resource_group:` to resources + +### Programmatic Scoring + +```rust +use forjar::core::scoring; +use forjar::core::parser; + +let yaml = std::fs::read_to_string("forjar.yaml").unwrap(); +let config = parser::parse_config(&yaml).unwrap(); +let input = scoring::ScoringInput { + status: "qualified".to_string(), + idempotency: "strong".to_string(), + budget_ms: 60000, + runtime: None, // static-only +}; +let result = scoring::compute(&config, &input); +println!("Grade: {} ({})", result.grade, result.composite); +``` + +See `cargo run --example score_cookbook` for a complete example that scores all cookbook recipes. + ## Emergency Rollback When a bad config change reaches production, rollback to the previous known-good state: @@ -831,6 +918,161 @@ resources: depends_on: [sshd-config] ``` +## Task: Build Pipeline + +Use `type: task` for multi-stage build pipelines with completion checks and timeouts: + +```yaml +resources: + generate-source: + type: task + machine: build-host + command: | + mkdir -p src + cat > src/main.c <<'CSRC' + #include + int main() { printf("OK\n"); return 0; } + CSRC + working_dir: /opt/pipeline + completion_check: "test -f /opt/pipeline/src/main.c" + output_artifacts: + - /opt/pipeline/src/main.c + + compile: + type: task + machine: build-host + command: "gcc -o artifacts/app src/main.c -Wall" + working_dir: /opt/pipeline + timeout: 120 + completion_check: "test -x /opt/pipeline/artifacts/app" + output_artifacts: + - /opt/pipeline/artifacts/app + depends_on: [generate-source] + + run-tests: + type: task + machine: build-host + command: | + OUTPUT=$(./artifacts/app) + [ "$OUTPUT" = "OK" ] && echo PASS > artifacts/result.txt + working_dir: /opt/pipeline + timeout: 60 + completion_check: "grep -q PASS /opt/pipeline/artifacts/result.txt 2>/dev/null" + depends_on: [compile] +``` + +Key patterns: +- `completion_check` makes tasks idempotent — re-apply skips completed stages +- `timeout` prevents hung builds from blocking the pipeline +- `output_artifacts` tracks what each stage produces +- `depends_on` chains stages in order + +## Recipe: Nested Composition + +Use `type: recipe` to compose reusable sub-recipes with input forwarding: + +```yaml +# forjar.yaml — parent config +params: + app_name: myapp + app_port: "8080" + +resources: + app-scaffold: + type: recipe + machine: target + recipe: app-scaffold + inputs: + app_name: "{{params.app_name}}" + + app-config: + type: recipe + machine: target + recipe: app-config + inputs: + app_name: "{{params.app_name}}" + port: "{{params.app_port}}" + depends_on: [app-scaffold] +``` + +```yaml +# recipes/app-scaffold.yaml — child recipe +recipe: + name: app-scaffold + inputs: + app_name: { type: string } + +resources: + config-dir: + type: file + path: "/etc/apps/{{inputs.app_name}}" + state: directory + owner: root + mode: "0755" + + log-dir: + type: file + path: "/var/log/apps/{{inputs.app_name}}" + state: directory + owner: root + mode: "0755" +``` + +After expansion, resources are namespaced: `app-scaffold/config-dir`, `app-scaffold/log-dir`, `app-config/app-conf`, etc. Internal `depends_on` references are rewritten to use the namespaced IDs. + +## Pepita: Kernel Sandbox + +Use `type: pepita` for bare-metal kernel isolation without Docker: + +```yaml +resources: + build-sandbox: + type: pepita + machine: build-host + name: build-sandbox + state: present + chroot_dir: /var/lib/forjar/rootfs/jammy + overlay_lower: /var/lib/forjar/pepita/lower + overlay_upper: /var/lib/forjar/pepita/upper + overlay_merged: /var/lib/forjar/pepita/merged + memory_limit: 2048 + cpuset: "0-3" + netns: true +``` + +This creates: +- A cgroups v2 group at `/sys/fs/cgroup/forjar-build-sandbox` with 2 GiB memory limit +- CPU affinity bound to cores 0-3 +- An isolated network namespace `forjar-build-sandbox` +- An overlayfs mount with copy-on-write writes to the upper layer + +## Model: ML Artifact Management + +Use `type: model` for ML model downloads with BLAKE3 integrity: + +```yaml +resources: + tinyllama: + type: model + machine: gpu-box + name: tinyllama + source: "TheBloke/TinyLlama-1.1B-GGUF" + path: /opt/models/tinyllama.gguf + cache_dir: /var/cache/apr + state: present + + custom-model: + type: model + machine: gpu-box + name: custom-v1 + source: "https://example.com/models/custom-v1.bin" + path: /opt/models/custom-v1.bin + checksum: "abc123..." + state: present +``` + +Sources: HuggingFace repo ID (uses `apr pull`), HTTP URL (uses `curl`), or local path (uses `cp`). When `checksum` is set, drift detection verifies BLAKE3 hashes to catch unauthorized model swaps. + ## Pattern: Staged Rollout Apply changes to canary machines first, then the fleet: @@ -1256,6 +1498,105 @@ resources: Available functions: `upper`, `lower`, `trim`, `default`, `replace`, `env`, `b3sum`, `join`, `split`. All support nested calls and `params.*`/`machine.*` argument references. +## Sovereign AI Cookbook + +The [sovereign-ai-cookbook](https://github.com/paiml/sovereign-ai-cookbook) repo provides complete forjar deployment configs for the PAIML/APR sovereign AI stack. All stacks use docker container targets for testing — swap to SSH for production. + +### Available Stacks + +| Stack | Components | Description | +|-------|-----------|-------------| +| `01-inference` | realizar | Single-machine GPU model serving | +| `02-training` | entrenar | LoRA fine-tuning pipeline | +| `03-rag` | trueno-db, trueno-rag, realizar | Retrieval-augmented generation | +| `04-speech` | whisper-apr | Automatic speech recognition | +| `05-distributed-inference` | repartir, realizar | Multi-node inference | +| `06-full-stack` | all components | Complete sovereign AI lab | +| `07-data-pipeline` | alimentar, entrenar, realizar | Ingest → train → serve | +| `08-observability` | renacer, Jaeger, Grafana | Monitoring and tracing | + +### Quick Start + +```bash +git clone https://github.com/paiml/sovereign-ai-cookbook +cd sovereign-ai-cookbook + +# Validate all stacks +make validate + +# Plan a single stack +forjar plan -f stacks/01-inference/forjar.yaml + +# Apply (deploys to docker container) +forjar apply -f stacks/01-inference/forjar.yaml +``` + +### Architecture + +``` +┌──────────────────┐ +│ monitor-box │ renacer + Grafana + Jaeger + pacha +└────────┬─────────┘ + │ + ┌────┼────┐ + │ │ │ +┌───▼┐ ┌▼──┐ ┌▼────┐ +│gpu │ │rag│ │work-│ realizar + entrenar | trueno-db + trueno-rag + whisper-apr | repartir +│box │ │box│ │ er │ +└────┘ └───┘ └─────┘ +``` + +Each stack composes reusable recipes from `recipes/`. Recipes are machine-agnostic — the stack's `forjar.yaml` binds them to specific machines. + +### Writing Custom Stacks + +Compose recipes in a new `stacks/` directory: + +```yaml +version: "1.0" +name: my-custom-stack + +machines: + box: + hostname: box + addr: container + transport: container + container: + runtime: docker + image: forjar-test-target + ephemeral: true + init: true + +resources: + serving: + type: recipe + machine: box + recipe: realizar-serve + inputs: + model_path: /opt/models/my-model.gguf + port: 8080 + user: realizar + + registry: + type: recipe + machine: box + recipe: pacha-registry + inputs: + port: 8070 + user: pacha +``` + +For production, change `addr: container` to a real IP and add `ssh_key`: + +```yaml +machines: + box: + hostname: gpu-prod-01 + addr: 10.0.1.10 + user: deploy + ssh_key: ~/.ssh/deploy_key +``` + ## Pre-flight Checks with Doctor Run `forjar doctor` before apply to verify system prerequisites: @@ -1284,3 +1625,550 @@ Example output: ``` Checks are context-aware — SSH is only checked if your config has remote machines, Docker only if you have container machines, and age identity only if your config contains `ENC[age,...]` markers. + +## Security Scanning and Policy Gates + +Forjar includes a static IaC security scanner (`forjar security-scan`) that detects security smells in your configs before deployment. + +### Scan a Config + +```bash +# Scan for all security issues +forjar security-scan -f infra.yaml + +# JSON output for CI integration +forjar security-scan -f infra.yaml --json + +# Fail CI on critical/high findings +forjar security-scan -f infra.yaml --fail-on high +``` + +### Security Rules + +| Rule | Category | Severity | Description | +|------|----------|----------|-------------| +| SS-1 | Hard-coded secrets | Critical | Passwords, tokens, API keys in plain text | +| SS-2 | HTTP without TLS | High | Unencrypted HTTP URLs (use HTTPS) | +| SS-3 | World-accessible | High | File permissions allowing world access | +| SS-4 | Missing integrity check | Medium | External files without BLAKE3 verification | +| SS-5 | Privileged container | Critical | Docker running with elevated permissions | +| SS-6 | No resource limits | Low | Containers without CPU/memory bounds | +| SS-7 | Weak cryptography | High | MD5, SHA1, DES, RC4, SSLv3, TLSv1.0 | +| SS-8 | Insecure protocol | High | telnet://, ftp://, rsh:// in configs | +| SS-9 | Unrestricted network | Medium | Binding to 0.0.0.0 (all interfaces) | +| SS-10 | Sensitive data | Critical | PII patterns (SSN, credit card numbers) | + +### Pre-Apply Security Gate + +Add `security_gate` to your policy to block applies with security findings: + +```yaml +version: "1.0" +name: secure-infra + +policy: + security_gate: high # Block on critical or high findings + +resources: + web-config: + type: file + machine: web-server + target: /etc/nginx/nginx.conf + source: https://example.com/nginx.conf # SS-4: needs integrity check +``` + +With `security_gate: high`, `forjar apply` will refuse to run if any critical or high severity findings exist. Severity thresholds: `critical`, `high`, `medium`, `low`. + +## Cookbook Recipe Index + +The `examples/cookbook/` directory contains validated recipes covering common infrastructure patterns: + +| # | Recipe | Resources | Key Types | Phase | +|---|--------|-----------|-----------|-------| +| 01 | Developer Workstation | 7 | package, user, file | Core | +| 02 | Web Server (Nginx) | 8 | package, file, service, network | Core | +| 03 | PostgreSQL | 8 | package, file, service, cron | Core | +| 04 | Monitoring Stack | 8 | docker, file, network | Core | +| 05 | Redis Cache | 4 | docker, file, network | Core | +| 06 | CI Runner | 9 | package, file, user, docker | GPU/HW | +| 07 | ROCm GPU | 4 | gpu, user, package, cron | GPU/HW | +| 08 | NVIDIA GPU | 4 | gpu, user, package, cron | GPU/HW | +| 09 | Secure Baseline | 7 | package, file, service, network | Core | +| 10 | NFS Server | 5 | package, file, service, mount | GPU/HW | +| 11 | Dev Shell | 4 | package, file | Nix-style | +| 12 | Toolchain Pin | 6 | file, cron | Nix-style | +| 13 | Build Sandbox | 4 | package, file | Nix-style | +| 14 | System Profile | 9 | package, user, file | Nix-style | +| 15 | Multi-Project Workspace | 9 | package, file | Nix-style | +| 16 | Rust Release Build | 4 | package, file | Rust Build | +| 17 | Static Musl Build | 5 | package, file | Rust Build | +| 19 | Cross-Compilation | 7 | package, file | Rust Build | +| 20 | Sovereign Stack Release | 7 | package, file | Rust Build | +| 21 | APR Model Pipeline | 9 | file, cron | Rust Build | +| 22 | Secrets Lifecycle | 7 | file, cron | Ops | +| 23 | TLS Certificates | 7 | file, cron | Ops | +| 24 | Fleet Provisioning | 8 | package, file, cron | Ops | +| 25 | APT Repository | 5 | file | Packages | +| 26 | .deb Package Build | 7 | package, file | Packages | +| 27 | Private APT Repo | 8 | package, file, service, network | Packages | +| 28 | RPM Build | 7 | package, file | Packages | +| 29 | Distribution Pipeline | 8 | package, file | Packages | +| 30 | Saved Plan Files | 5 | file | OpenTofu | +| 31 | JSON Plan Format | 4 | package, file | OpenTofu | +| 32 | Check Blocks | 4 | package, file | OpenTofu | +| 33 | Lifecycle Protection | 5 | file | OpenTofu | +| 34 | Moved Blocks | 3 | package, file | OpenTofu | +| 35 | Refresh-Only Mode | 4 | file | OpenTofu | +| 36 | Resource Targeting | 5 | package, file | OpenTofu | +| 37 | Testing DSL | 4 | package, file | OpenTofu | +| 38 | State Encryption | 6 | file | OpenTofu | +| 39 | Cross-Config Outputs | 4 | file | OpenTofu | +| 40 | Scheduled Tasks | 8 | cron, file | Linux Admin | +| 41 | User Provisioning | 7 | user, file | Linux Admin | +| 42 | Kernel Tuning | 5 | file | Linux Admin | +| 43 | Log Management | 7 | package, file, cron | Linux Admin | +| 44 | Time Sync (Chrony) | 5 | package, file, service | Linux Admin | +| 45 | Systemd Units | 6 | file, cron | Linux Admin | +| 46 | Resource Limits | 4 | file | Linux Admin | +| 47 | Automated Patching | 6 | package, file, cron | Linux Admin | +| 48 | Hostname & Locale | 6 | file | Linux Admin | +| 49 | Swap & Memory | 4 | file, cron | Linux Admin | +| 50 | Failure: Partial Apply | 4 | package, file | Failure Mode | +| 51 | Failure: State Recovery | 5 | file | Failure Mode | +| 52 | Failure: Crash Resilience | 4 | file | Failure Mode | +| 53 | Stack: Dev Server | 7 | package, file, user | Composability | +| 54 | Stack: Web Production | 8 | package, file | Composability | +| 55 | Stack: GPU Lab | 7 | package, file, user | Composability | +| 56 | Stack: Build Farm | 8 | package, file | Composability | +| 57 | Stack: Package Pipeline | 8 | package, file | Composability | +| 58 | Stack: ML Inference | 8 | file | Composability | +| 59 | Stack: CI Infrastructure | 7 | package, file, user | Composability | +| 60 | Stack: Sovereign AI | 11 | package, file, user | Composability | +| 61 | Stack: Fleet Baseline | 7 | package, file | Composability | +| 62 | Stack: Cross-Distro Release | 8 | package, file | Composability | +| 63 | Store: Version-Pinned | 5 | file | Store | +| 64 | Store: Cargo Sandbox | 5 | file | Store | +| 65 | Store: SSH Cache | 4 | file | Store | +| 66 | Store: Repro CI Gate | 5 | file | Store | +| 67 | Store: Profile Rollback | 5 | file | Store | +| 68 | Mount: NFS/Bind/Tmpfs | 7 | mount, file, cron | Resource Type | +| 69 | Pepita: Kernel Sandbox | 8 | pepita, file | Resource Type | +| 70 | Model: ML Download | 7 | model, file | Resource Type | +| 71 | Task: Build Pipeline | 7 | task, file | Resource Type | +| 72 | Recipe: Composition | 6 | recipe, file | Resource Type | + +| 73 | pforge MCP Server | 6 | package, file, service, task | Agent Infrastructure | +| 74 | Agent Deployment | 7 | package, file, task | Agent Infrastructure | + +Score all recipes programmatically: + +```bash +cargo run --example score_cookbook +``` + +## Agent Infrastructure + +Recipes 73-74 deploy LLM agent infrastructure using forjar primitives. + +### pforge MCP Server (Recipe 73) + +Deploys the pforge MCP server for agent-accessible infrastructure management: + +```yaml +data: + pforge: + type: forjar-state + state_dir: ../mcp-server/state + outputs: + - pforge_endpoint + max_staleness: 1h +``` + +Resources: forjar binary (cargo), config directory, server config YAML, state directory, systemd service, health check task. + +### Agent Deployment (Recipe 74) + +Composable recipe for deploying an LLM agent with model, GPU, and MCP configuration: + +```bash +# Deploy with custom parameters +forjar apply -f 74-agent-deployment.yaml \ + --set agent_name=code-assistant \ + --set model_name=llama-3.1-70b \ + --set gpu_backend=nvidia \ + --set mcp_port=8800 +``` + +Layers: base packages, model cache directory, agent config, MCP tools config, health check. All parameterized for any model/GPU combination. + +## Sudo Elevation and SBOM Generation + +### Per-Resource Sudo Elevation + +Use the `sudo: true` field on any resource to run its apply script with elevated privileges: + +```yaml +resources: + system-packages: + type: package + machine: web + provider: apt + packages: [nginx, curl, htop] + sudo: true # Runs apt-get with sudo when non-root + + nginx-config: + type: file + machine: web + path: /etc/nginx/nginx.conf + source: configs/nginx.conf + sudo: true # Needs sudo for /etc/ writes + + app-config: + type: file + machine: web + path: /home/app/config.yaml + source: configs/app.yaml + # No sudo needed — user-writable path +``` + +When `sudo: true`, forjar wraps the generated script: +- If already root (`id -u == 0`): runs script as-is +- If non-root: wraps with `sudo bash -c '...'` + +### SBOM Generation + +Generate a Software Bill of Materials for all managed infrastructure: + +```bash +# Text table output +forjar sbom -f forjar.yaml + +# SPDX 2.3 JSON output (machine-readable) +forjar sbom -f forjar.yaml --json + +# With state directory for BLAKE3 hashes +forjar sbom -f forjar.yaml --state-dir state --json > sbom.spdx.json +``` + +The SBOM includes: +- **Package resources**: Each package with provider and version +- **Docker images**: Image name, tag, and content hash +- **Model artifacts**: Source URL, version, and BLAKE3 checksum +- **File resources with sources**: Downloaded files with state hashes + +## Debug Trace Mode + +Use `--trace` on apply to print generated scripts before execution: + +```bash +forjar apply --trace + +# Output includes: +# [TRACE] base-packages script: +# set -euo pipefail +# ...apt-get install... +# [TRACE] nginx-config script: +# set -euo pipefail +# ...base64 -d... +``` + +Trace mode implies `--verbose` and shows the full bash script that will be sent to each transport (local, SSH, container). + +## Cryptographic Bill of Materials (CBOM) + +Generate a cryptographic inventory of all algorithms used in your infrastructure: + +```bash +# Text table output +forjar cbom + +# JSON output +forjar cbom --json +``` + +CBOM automatically detects: +- **BLAKE3** — State hashing and resource integrity +- **X25519/age** — Secrets encryption +- **Ed25519/RSA** — SSH transport keys +- **X.509/TLS** — Certificate management +- **SHA-256** — Docker image digests + +## Convergence Proof + +Prove that your configuration will converge from any reachable state: + +```bash +# Prove convergence for all resources +forjar prove + +# Prove for a specific machine +forjar prove --machine web-01 + +# JSON output for CI integration +forjar prove --json +``` + +The convergence proof validates five properties: +1. **Codegen completeness** — All resources produce check/apply/state_query scripts +2. **DAG acyclicity** — No circular dependencies +3. **State coverage** — Resources have corresponding state entries +4. **Hash determinism** — Same config produces identical state_query scripts +5. **Idempotency structure** — Apply scripts use `set -euo pipefail` + +## Least-Privilege Analysis + +Analyze the minimum permissions required per resource: + +```bash +# Text output — shows which resources need root +forjar privilege-analysis + +# Filter to a specific machine +forjar privilege-analysis --machine web-01 + +# JSON output for CI integration +forjar privilege-analysis --json +``` + +Reports privilege levels: `unprivileged`, `system-write`, `package-manager`, `service-control`, `network-config`, `sudo`. + +## SLSA Provenance Attestation + +Generate in-toto-style SLSA Level 3 provenance attestations: + +```bash +# Generate provenance attestation +forjar provenance + +# JSON output (in-toto v0.1 format) +forjar provenance --json + +# Scoped to one machine +forjar provenance --machine web-01 +``` + +Links config BLAKE3 hash -> plan hash -> state hashes in a tamper-evident chain. + +## Merkle DAG Lineage + +Visualize the Merkle tree over your dependency graph: + +```bash +# Show Merkle hashes for each resource +forjar lineage + +# JSON output with merkle_root +forjar lineage --json +``` + +Each node's hash incorporates its dependencies' hashes, so any change propagates up the Merkle tree — enabling tamper detection of the full dependency chain. + +## Recipe Bundles + +Package your config with all dependencies for air-gap transfer: + +```bash +# Dry-run: show bundle manifest +forjar bundle + +# Include state files +forjar bundle --include-state + +# Write to file +forjar bundle --output my-stack.tar +``` + +Each file gets a BLAKE3 hash for integrity verification during transfer. + +## Model Card Generation + +Generate model cards documenting ML resources in your stack: + +```bash +# Text output +forjar model-card + +# JSON output +forjar model-card --json +``` + +Detects model resources by type, tags (`ml`, `model`), or resource group (`models`). + +## Agent SBOM + +Generate an agent-specific bill of materials: + +```bash +# Text output +forjar agent-sbom + +# JSON output +forjar agent-sbom --json +``` + +Detects: model resources, GPU runtimes, MCP/pforge-tagged services, agent containers, inference services. + +## SVG Graph Export + +Export your dependency graph as a standalone SVG image: + +```bash +forjar graph --format svg > graph.svg +``` + +The SVG output includes color-coded nodes by resource type, arrow markers for dependencies, and a grid layout — no external renderer required. + +## Training Reproducibility Proof + +Generate a cryptographic reproducibility certificate for ML training runs: + +```bash +# Generate reproducibility proof +forjar repro-proof -f training.yaml --state-dir state + +# JSON output for CI integration +forjar repro-proof -f training.yaml --state-dir state --json +``` + +The certificate includes: config BLAKE3 hash, git SHA, store artifact hashes, state hash, and a composite certificate hash. Use this to prove identical training outputs given identical inputs. + +## Bundle Integrity Verification + +Verify the integrity of a bundle's constituent files after air-gap transfer: + +```bash +# Verify all files against BLAKE3 hashes +forjar bundle -f forjar.yaml --verify +``` + +Re-hashes every file (config, store, state) and reports pass/fail per file — detects corruption or tampering during physical media transfer. + +## Data Freshness Monitoring + +Monitor data artifact freshness with configurable SLA thresholds: + +```bash +# Check all artifacts are fresh (default 24h SLA) +forjar data-freshness -f forjar.yaml + +# Custom SLA: 8 hours max age +forjar data-freshness -f forjar.yaml --max-age 8 + +# JSON for CI pipelines +forjar data-freshness -f forjar.yaml --json +``` + +Reports stale/fresh/missing status per artifact (output_artifacts, store files, state locks). Returns non-zero if any artifact exceeds the SLA. + +## Data Validation + +Validate data integrity across your infrastructure: + +```bash +# Validate all resources +forjar data-validate -f forjar.yaml + +# Validate specific resource +forjar data-validate -f forjar.yaml --resource data-loader +``` + +Checks: file existence, non-empty, BLAKE3 integrity hashes, store content-addressing consistency. + +## Training Checkpoint Management + +Track and manage ML training checkpoints: + +```bash +# List all checkpoints (sorted newest-first) +forjar checkpoint -f training.yaml + +# Garbage collect, keep latest 3 +forjar checkpoint -f training.yaml --gc --keep 3 + +# Filter by machine +forjar checkpoint -f training.yaml --machine gpu-box +``` + +Detects checkpoint resources by type (model), tags (checkpoint/training/ml), or resource_group (checkpoints). + +## Dataset Lineage + +Track data pipeline lineage with Merkle-hashed dependency graphs: + +```bash +# Show dataset lineage graph +forjar dataset-lineage -f pipeline.yaml + +# JSON output for tooling +forjar dataset-lineage -f pipeline.yaml --json +``` + +Builds a lineage graph from data-tagged resources, tracking source → transform → output dependencies with BLAKE3 content hashes. + +## Data Sovereignty + +Audit data sovereignty compliance across your infrastructure: + +```bash +# Show sovereignty report +forjar sovereignty -f forjar.yaml + +# JSON for compliance tooling +forjar sovereignty -f forjar.yaml --json +``` + +Tag resources with `jurisdiction:EU`, `classification:PII`, `residency:eu-west-1` to track data governance. Reports tagged vs untagged resources and state file hashes. + +## Cost Estimation + +Static cost analysis before applying: + +```bash +forjar cost-estimate -f forjar.yaml +forjar cost-estimate -f forjar.yaml --json +``` + +Estimates execution time per resource by type (package: ~30s, file: ~2s, model: ~300s, GPU: ~60s). Reports total sequential time and complexity classification. + +## Model Evaluation Pipeline + +Gate model promotion with evaluation checks: + +```bash +forjar model-eval -f training.yaml +forjar model-eval -f training.yaml --resource eval-run --json +``` + +Evaluates model/ml/eval-tagged resources. Checks that `completion_check` is defined and `output_artifacts` exist. Returns non-zero if evaluations fail. + +## Agent Infrastructure Recipes + +### Single MCP Server + +Deploy a pforge MCP server with health monitoring: + +```bash +forjar apply -f examples/pforge-mcp-server.yaml +``` + +4-phase pipeline: install pforge binary → write config → start service → health check. + +### Full Agent Deployment + +Composable agent recipe: GPU + model + config + MCP + health: + +```bash +forjar apply -f examples/agent-deployment.yaml +``` + +5-phase pipeline with template parameters for model, GPU driver, and MCP port. + +### Multi-Agent Fleet + +Deploy across GPU fleet with load balancing and tool permission policies: + +```bash +forjar apply -f examples/multi-agent-fleet.yaml +``` + +3-machine deployment with nginx upstream load balancer, per-agent tool-policy.yaml enforcement, and fleet health checks. diff --git a/docs/book/08-state-management.md b/docs/book/src/08-state-management.md similarity index 90% rename from docs/book/08-state-management.md rename to docs/book/src/08-state-management.md index 3e8248f5..3e076910 100644 --- a/docs/book/08-state-management.md +++ b/docs/book/src/08-state-management.md @@ -1018,3 +1018,140 @@ forjar apply -f forjar.yaml --force ### Event Log Compatibility The event log (`events.jsonl`) does not have a schema version. Each line is a self-contained JSON object with an `event` field that identifies its type. Consumers should ignore unknown event types rather than failing. This design means the event log format is forward-compatible indefinitely — new event types can be added without breaking existing log parsers. + +## Output Persistence and Cross-Stack Data Flow + +Forjar persists resolved output values in the global lock file, enabling cross-stack data flow between independent configurations. + +### How It Works + +When a config declares `outputs:`, forjar resolves the template expressions and stores them in `forjar.lock.yaml` after every successful apply: + +```yaml +# forjar.yaml (producer) +outputs: + db_host: + value: "{{machines.db.addr}}" + description: "Database server address" + api_port: + value: "{{params.port}}" + description: "API server port" +``` + +After apply, the global lock includes: + +```yaml +# state/forjar.lock.yaml +schema: '1.0' +name: database-stack +last_apply: 2026-03-01T14:00:00Z +generator: forjar 1.1.1 +machines: + db: + resources: 5 + converged: 5 + failed: 0 + last_apply: 2026-03-01T14:00:00Z +outputs: + db_host: 10.0.0.5 + api_port: "8080" +``` + +### Consuming Outputs + +Another config reads these outputs via the `forjar-state` data source: + +```yaml +# forjar.yaml (consumer) +data: + db: + type: forjar-state + state_dir: ../database-stack/state + outputs: + - db_host + max_staleness: 24h # warn if producer hasn't applied in 24 hours +``` + +The `max_staleness` field triggers a warning if the producer's `last_apply` timestamp is older than the threshold. Supported units: `s` (seconds), `m` (minutes), `h` (hours), `d` (days). + +### Viewing Outputs + +```bash +# Show all resolved outputs +forjar output -f forjar.yaml + +# Show a specific output +forjar output -f forjar.yaml --key db_host + +# JSON output for scripting +forjar output -f forjar.yaml --json +``` + +## State Integrity Verification + +Forjar writes a BLAKE3 sidecar file (`.b3`) alongside every lock file. Before apply, integrity is verified automatically. + +### Sidecar Files + +After writing `state.lock.yaml`, forjar also writes `state.lock.yaml.b3` containing the BLAKE3 hash of the lock file contents. This enables detection of tampering or corruption. + +``` +state/ + forjar.lock.yaml # Global lock + forjar.lock.yaml.b3 # BLAKE3 hash sidecar + web/ + state.lock.yaml # Per-machine lock + state.lock.yaml.b3 # BLAKE3 hash sidecar +``` + +### Pre-Apply Verification + +Before every apply, forjar checks: + +1. All lock files are valid YAML (catches corruption) +2. Lock file content matches its `.b3` sidecar hash (catches tampering) + +Missing sidecars produce a warning (backward-compatible with older state). Hash mismatches produce an error and block apply unless `--yes` is used. + +### Manual Verification + +```bash +# Verify lock file integrity +forjar lock-verify --state-dir state + +# Override integrity check +forjar apply -f forjar.yaml --yes +``` + +## Event-Sourced State Reconstruction + +Forjar can reconstruct the state of any machine at any point in time by replaying the event log. + +### Usage + +```bash +# Reconstruct state at a specific timestamp +forjar state-reconstruct --machine web --at 2026-03-01T14:00:00Z + +# JSON output +forjar state-reconstruct --machine web --at 2026-03-01T14:00:00Z --json + +# Custom state directory +forjar state-reconstruct --machine web --at 2026-03-01T14:00:00Z --state-dir state +``` + +### How It Works + +The `state-reconstruct` command reads `state//events.jsonl` and replays events chronologically up to the specified timestamp: + +- `resource_converged` events set the resource to converged with its hash +- `resource_failed` events set the resource to failed with error details +- `drift_detected` events update the resource to drifted status + +The result is a `StateLock` representing the machine's state at that moment. + +### Use Cases + +- **Point-in-time recovery**: Understand what was deployed at a specific moment +- **Audit**: Verify what resources were active during an incident +- **Debugging**: Compare reconstructed state at two timestamps to find what changed diff --git a/docs/book/09-drift-and-tripwire.md b/docs/book/src/09-drift-and-tripwire.md similarity index 100% rename from docs/book/09-drift-and-tripwire.md rename to docs/book/src/09-drift-and-tripwire.md diff --git a/docs/book/10-testing-and-ci.md b/docs/book/src/10-testing-and-ci.md similarity index 92% rename from docs/book/10-testing-and-ci.md rename to docs/book/src/10-testing-and-ci.md index 44d229d6..07df462f 100644 --- a/docs/book/10-testing-and-ci.md +++ b/docs/book/src/10-testing-and-ci.md @@ -223,8 +223,9 @@ The forjar repository runs 5 CI jobs on every push and pull request: |-----|-------------|---------| | **test** | `cargo test --all-targets` + `cargo clippy` | Regressions, type errors, lint warnings | | **container-test** | Build test-target Docker image + `cargo test --features container-test` | Container transport regressions | +| **gpu-container-test** | `cargo test --features gpu-container-test` (NVIDIA + AMD GPU hosts) | GPU device passthrough, env var propagation, cross-vendor parity | | **fmt** | `cargo fmt --check` | Style violations | -| **dogfood** | Validate all 18 dogfood configs, run all 19 examples, verify MCP schema | Codegen regressions, parser changes, example breakage | +| **dogfood** | Validate all 30 dogfood configs, run all 20 examples, verify MCP schema | Codegen regressions, parser changes, example breakage | | **bench** | `cargo bench --no-run` + `forjar bench --iterations 10 --json` | Compile errors in benchmarks, smoke-test performance | The dogfood job is particularly valuable — it validates that every resource type's codegen produces parseable configs and that all examples demonstrate working code paths. Any change to parser validation, resource handlers, or template resolution that breaks a dogfood config or example will fail this job. @@ -592,6 +593,41 @@ forjar drift -f test-matrix.yaml --state-dir /tmp/test-state/ # Clean up (ephemeral: true handles container cleanup) ``` +### GPU Container Testing + +Test GPU workloads across vendors using forjar's multi-vendor GPU container transport: + +```bash +# Run GPU-specific integration tests (requires Docker + GPU drivers) +cargo test --features gpu-container-test +``` + +The GPU test matrix covers 7 tests across 2 vendors: + +| Test | Vendor | What it verifies | +|------|--------|-----------------| +| CUDA lifecycle | NVIDIA | ensure/exec/cleanup with `--gpus all` | +| nvidia-smi | NVIDIA | GPU visible and queryable in container | +| CUDA env vars | NVIDIA | `CUDA_VISIBLE_DEVICES` passed via `--env` | +| ROCm lifecycle | AMD | ensure/exec/cleanup with `--device /dev/kfd /dev/dri` | +| ROCm devices | AMD | `/dev/kfd` and `/dev/dri` accessible in container | +| ROCm env vars | AMD | `ROCR_VISIBLE_DEVICES` passed via `--env` | +| Cross-vendor | Both | Identical config deployed to both CUDA and ROCm | + +To test a model QA workflow across GPU vendors: + +```bash +# Validate the multi-GPU dogfood configs +forjar validate -f examples/dogfood-multi-gpu.yaml +forjar validate -f examples/dogfood-apr-qa.yaml + +# Plan without applying (preview resource creation) +forjar plan -f examples/dogfood-apr-qa.yaml --state-dir /tmp/gpu-qa + +# Run the GPU example (no Docker required) +cargo run --example gpu_container_transport +``` + ### Testing Recipes in Isolation Test recipes independently before using them in production configs: @@ -1172,3 +1208,37 @@ Any regression > 5% will be flagged in the Criterion report. For CI integration, - name: Benchmark run: cargo bench -- --output-format bencher | tee bench-output.txt ``` + +## Property-Based Idempotency Testing + +Forjar uses [proptest](https://crates.io/crates/proptest) to verify idempotency properties that must hold for all inputs, not just specific test cases. + +### Core Properties + +Three idempotency properties are tested with random inputs: + +1. **BLAKE3 hash idempotency**: Same content always produces the same hash. This ensures the planner's skip-if-converged logic is correct. + +2. **Lock file serde roundtrip**: Serializing a `StateLock` to YAML and deserializing it back produces an identical struct. This ensures state is never lost during save/load cycles. + +3. **Converged-state-is-noop**: When a resource's current hash matches the desired hash, no action is needed. This is the fundamental idempotency guarantee. + +### Template Determinism + +Template resolution (`{{params.key}}`) is also property-tested: + +- Same params always resolve to the same output +- Missing params consistently produce errors +- Literal strings (no `{{...}}`) pass through unchanged + +### Running Property Tests + +```bash +# Run all proptest tests +cargo test proptest + +# Run with more cases (default: 256) +PROPTEST_CASES=1000 cargo test proptest +``` + +Property tests generate random `Resource`, `StateLock`, and `GlobalLock` values using strategies defined in `src/core/types/tests_proptest_resource.rs`. diff --git a/docs/book/11-troubleshooting.md b/docs/book/src/11-troubleshooting.md similarity index 100% rename from docs/book/11-troubleshooting.md rename to docs/book/src/11-troubleshooting.md diff --git a/docs/book/src/12-store.md b/docs/book/src/12-store.md new file mode 100644 index 00000000..1f51d34e --- /dev/null +++ b/docs/book/src/12-store.md @@ -0,0 +1,316 @@ +# Content-Addressed Store + +Forjar's content-addressed store provides reproducible, hermetic package +management inspired by [Nix](https://nixos.org/). Every build output is +placed under a deterministic path derived from its inputs, ensuring that +identical inputs always produce identical store paths. + +## Store Model + +``` +/var/lib/forjar/store/ +├── / +│ ├── meta.yaml # Provenance, input hashes, timestamps +│ └── content/ # Build output (files, dirs) +└── .gc-roots/ # Symlinks to live store paths +``` + +Store entries are **write-once**: once created, they are never modified. +Updates produce new entries with new hashes. The hash is computed from: + +- Recipe hash +- Sorted input hashes (closure) +- Target architecture +- Provider identifier + +## Provider Import Pipeline + +External tools seed the store via the **provider import** bridge +(`src/core/store/provider_exec.rs`): + +1. **Validate** import config (reference, arch, provider-specific rules) +2. **Generate** CLI command via `provider::import_command()` +3. **I8 gate** — validate script via bashrs (`purifier::validate_script()`) +4. **Create** staging directory +5. **Execute** via transport layer (`transport::exec_script_timeout()`) +6. **Hash** staging output (BLAKE3 composite of all files) +7. **Atomic move** staging → store (`rename()`) +8. **Write** `meta.yaml` with provenance chain + +Supported providers: `apt`, `cargo`, `uv`, `nix`, `docker`, `tofu`, +`terraform`, `apr`. + +## Substitution Protocol + +Before building, forjar checks if the result already exists: + +1. **Compute** closure hash from inputs +2. **Check local store** → `LocalHit` (skip everything) +3. **Check SSH caches** in order → `CacheHit` (pull via rsync) +4. **Cache miss** → build from scratch in sandbox +5. **Store** result locally +6. **Auto-push** to first SSH cache (if configured) + +Cache transport uses SSH+rsync — no HTTP, no tokens, no TLS complexity. +See `src/core/store/cache_exec.rs` for the execution bridge. + +## Sandbox Lifecycle + +Sandboxed builds follow a 10-step lifecycle +(`src/core/store/sandbox_exec.rs`): + +| Step | Description | +|------|-------------| +| 1 | Create PID/mount/net namespace (pepita) | +| 2 | Mount overlayfs (lower=inputs, upper=tmpfs) | +| 3 | Bind inputs read-only | +| 4 | Apply cgroup limits (memory, CPU) | +| 5 | Apply seccomp BPF (Full level: deny connect/mount/ptrace) | +| 6 | Execute bashrs-purified build script | +| 7 | Extract outputs from `$out` | +| 8 | Compute BLAKE3 hash of output directory | +| 9 | Atomic move to content-addressed store | +| 10 | Destroy namespace and clean up | + +Sandbox levels: + +- **Full** — no network, read-only inputs, seccomp BPF, cgroups +- **NetworkOnly** — network allowed, filesystem isolation enforced +- **Minimal** — PID/mount namespaces only +- **None** — legacy behavior (no sandbox) + +## Derivation Model + +A derivation takes store entries as inputs, applies a transformation +inside a sandbox, and produces a new store entry. Derivations form a +**DAG** (directed acyclic graph) — each node depends on its inputs. + +```yaml +derivation: + inputs: + base: { store: "blake3:abc123..." } + config: { resource: "my-config" } + script: | + cp -r $inputs/base/* $out/ + patch -p1 < $inputs/config/patch.diff + sandbox: + level: full +``` + +Execution: `src/core/store/derivation_exec.rs` resolves inputs, computes +closure hashes, checks for store hits, and delegates to the sandbox for +cache-miss builds. + +## Garbage Collection + +GC uses a **mark-and-sweep** algorithm: + +1. **Roots** — profile generations, lock file pins, `.gc-roots/` symlinks +2. **Mark** — BFS from roots following `references` in `meta.yaml` +3. **Sweep** — remove unreachable entries + +The execution bridge (`src/core/store/gc_exec.rs`) adds: + +- Path traversal protection (prevents `../../` attacks) +- Dry-run mode (report what would be deleted) +- GC journal for recovery diagnosis +- Partial failure continuation + +## Pin Resolution + +Lock file pins are resolved by querying providers +(`src/core/store/pin_resolve.rs`): + +| Provider | Command | +|----------|---------| +| apt | `apt-cache policy ` | +| cargo | `cargo search --limit 1` | +| nix | `nix eval nixpkgs#.version --raw` | +| uv/pip | `pip index versions ` | +| docker | `docker image inspect ` | +| apr | `apr info --format version` | + +## FAR Archive Format + +FAR (Forjar ARchive) is a binary format for distributing store +entries, kernel contracts, and model artifacts. Layout: + +``` +magic(12) → manifest_len(8) → zstd(manifest_yaml) + → chunk_count(8) → chunk_table(48*N) + → zstd(chunks) → sig_len(8) → sig +``` + +Key properties: + +- **Streaming decode** — manifest and chunk table are read without + loading chunk data, enabling inspection of large archives +- **Zstd compression** — both manifest and chunks are zstd-compressed +- **BLAKE3 per-chunk hashing** — 64KB fixed-size chunks, each with + its own BLAKE3 hash for verified streaming +- **Binary Merkle tree** — tree root hash for integrity verification +- **Kernel contract metadata** — optional field for model onboarding + (model type, required ops, coverage percentage) + +```bash +# Pack a store entry into a FAR archive +forjar archive pack blake3:abc123 -o output.far + +# Inspect a FAR archive (manifest only, no data load) +forjar archive inspect output.far + +# Unpack a FAR archive into the store +forjar archive unpack output.far + +# Verify archive integrity +forjar archive verify output.far +``` + +See `cargo run --example store_far_archive` for a complete demo. + +## Secret Scanning (Phase I) + +All sensitive values in forjar configs must use `ENC[age,...]` +encryption. The secret scanner enforces this with 15 regex patterns: + +| Pattern | Detects | +|---------|---------| +| `aws_access_key` | AKIA prefix + 16 alphanumeric | +| `aws_secret_key` | aws_secret_access_key assignments | +| `private_key_pem` | RSA/EC/DSA/OPENSSH PEM headers | +| `github_token` | ghp_/ghs_ + 36+ chars | +| `generic_api_key` | api_key/apikey assignments | +| `generic_secret` | password/secret/token assignments | +| `jwt_token` | eyJ...eyJ JWT format | +| `slack_webhook` | hooks.slack.com/services URLs | +| `gcp_service_key` | "type": "service_account" JSON | +| `stripe_key` | sk_live/sk_test + 20+ chars | +| `database_url_pass` | mysql/postgres/mongodb with password | +| `base64_private` | private.key base64 assignments | +| `hex_secret_32` | 32+ hex char secret/key values | +| `ssh_password` | sshpass -p commands | +| `age_plaintext` | AGE-SECRET-KEY-1 raw values | + +Scanning is integrated into config validation (`scan_yaml_str()`) and +can be run on raw text (`scan_text()`). Age-encrypted values +(`ENC[age,...]`) bypass all pattern checks. + +See `cargo run --example store_secret_scan` for a complete demo. + +## Bash Provability (I8 Invariant) + +**Invariant I8**: No raw shell execution — all shell is bashrs- +validated before reaching the transport layer. + +Three validation levels: + +1. **`validate_script()`** — lint-based, errors only (fast path) +2. **`lint_script()`** — full diagnostics including warnings +3. **`purify_script()`** — parse, purify AST, reformat (strongest) + +The recommended entry point is `validate_or_purify()`: validates +first (fast path), falls back to full purification if needed. + +I8 enforcement points: + +- `provider_exec.rs` — provider import commands +- `sandbox_run.rs` — sandbox build scripts +- `derivation_exec.rs` — derivation scripts +- `gc_exec.rs` — GC sweep commands +- `cache_exec.rs` — cache transport commands +- `sync_exec.rs` — diff/sync commands + +See `cargo run --example store_bash_provability` for a complete demo. + +## Performance Benchmarks (Phase J) + +Store operations are benchmarked with Criterion.rs: + +```bash +# Run all store benchmarks +cargo bench --bench store_bench + +# Run core benchmarks +cargo bench --bench core_bench +``` + +| Operation | Module | Description | +|-----------|--------|-------------| +| store_path_hash | `path.rs` | BLAKE3 composite path derivation | +| purity_classify | `purity.rs` | 4-level purity classification | +| closure_hash | `closure.rs` | Transitive dependency closure | +| repro_score | `repro_score.rs` | Reproducibility scoring | +| far_encode | `far.rs` | FAR archive binary encoding | +| far_decode | `far.rs` | FAR manifest streaming decode | +| chunk_bytes | `chunker.rs` | Fixed-size 64KB chunking | +| tree_hash | `chunker.rs` | Binary Merkle tree root | +| secret_scan | `secret_scan.rs` | 15-pattern regex detection | +| bash_validate | `purifier.rs` | bashrs I8 shell validation | + +See `cargo run --example store_benchmarks` for a demo of all +benchmarked operations with timing output. + +## Execution Layer (Phase L) + +All store operations are bridged to actual execution via the transport +layer. Each bridge module validates commands (I8) before execution and +handles rollback on failure. + +| Bridge | Module | CLI Command | +|--------|--------|-------------| +| Provider import | `provider_exec.rs` | `forjar store-import ` | +| GC sweep | `gc_exec.rs` | `forjar store gc [--dry-run]` | +| Pin resolution | `pin_resolve.rs` | `forjar pin [--check]` | +| Cache transport | `cache_exec.rs` | `forjar cache push/pull` | +| Convert apply | `convert_exec.rs` | `forjar convert --reproducible --apply` | +| Store diff/sync | `sync_exec.rs` | `forjar store diff/sync --apply` | +| Sandbox build | `sandbox_run.rs` | (internal — called by derivation executor) | + +### Store Import Example + +```bash +# Import nginx from apt into the content-addressed store +forjar store-import apt nginx --version 1.24.0 + +# Import a Docker image +forjar store-import docker alpine:3.18 + +# List supported providers +forjar store-import --list-providers +``` + +### GC Example + +```bash +# See what would be deleted (dry-run) +forjar store gc --dry-run + +# Actually delete unreachable entries +forjar store gc + +# Keep last 10 profile generations +forjar store gc --keep-generations 10 +``` + +### Convert Example + +```bash +# Analyze conversion opportunities +forjar convert --reproducible -f myconfig.yaml + +# Apply conversion (backup + modify YAML + lock file) +forjar convert --reproducible --apply -f myconfig.yaml +``` + +## Key Invariants + +- **I8**: All shell scripts validated via bashrs before execution +- **Purity monotonicity**: resource purity ≥ max(dependency purity) +- **Write-once store**: hash = identity, atomic creation via temp+rename +- **Closure determinism**: identical inputs → identical store hashes +- **Provenance tracking**: every entry records origin provider, ref, hash + +## References + +- Phase L Execution Spec: `docs/specifications/store/phase-l-execution.md` +- Store Specification Index: `docs/specifications/store/README.md` diff --git a/docs/book/README.md b/docs/book/src/README.md similarity index 100% rename from docs/book/README.md rename to docs/book/src/README.md diff --git a/docs/book/src/SUMMARY.md b/docs/book/src/SUMMARY.md new file mode 100644 index 00000000..f17b8dd0 --- /dev/null +++ b/docs/book/src/SUMMARY.md @@ -0,0 +1,15 @@ +# Summary + +- [Introduction](./README.md) +- [Getting Started](./01-getting-started.md) +- [Configuration Reference](./02-configuration.md) +- [Resource Types](./03-resources.md) +- [Recipes](./04-recipes.md) +- [Architecture](./05-architecture.md) +- [CLI Reference](./06-cli.md) +- [Cookbook](./07-cookbook.md) +- [State Management](./08-state-management.md) +- [Drift Detection & Tripwire](./09-drift-and-tripwire.md) +- [Testing & CI/CD Integration](./10-testing-and-ci.md) +- [Troubleshooting](./11-troubleshooting.md) +- [Content-Addressed Store](./12-store.md) diff --git a/docs/roadmaps/roadmap.yaml b/docs/roadmaps/roadmap.yaml new file mode 100644 index 00000000..019ca65a --- /dev/null +++ b/docs/roadmaps/roadmap.yaml @@ -0,0 +1,581 @@ +roadmap_version: '1.0' +github_enabled: true +github_repo: paiml/forjar +roadmap: +- id: PMAT-001 + github_issue: null + item_type: task + title: 'FJ-1304: Reference scanning for store paths' + status: completed + priority: high + assigned_to: null + created: 2026-03-02T11:08:54Z + updated: 2026-03-02T11:09:05.080467577+00:00 + spec: null + acceptance_criteria: + - Scan store entry outputs for references to other store paths. Build reachability graph for GC. + phases: [] + subtasks: [] + estimated_effort: null + labels: [] + notes: null +- id: PMAT-002 + github_issue: null + item_type: task + title: 'FJ-1305: Purity classification and analysis' + status: completed + priority: high + assigned_to: null + created: 2026-03-02T11:09:01Z + updated: 2026-03-02T11:09:01Z + spec: null + acceptance_criteria: + - '4-level purity model: Pure(0), Pinned(1), Constrained(2), Impure(3). Static analysis of recipe resources.' + phases: [] + subtasks: [] + estimated_effort: null + labels: [] + notes: null +- id: PMAT-003 + github_issue: null + item_type: task + title: 'FJ-1307: Input closure tracking' + status: completed + priority: high + assigned_to: null + created: 2026-03-02T11:09:01Z + updated: 2026-03-02T11:09:01Z + spec: null + acceptance_criteria: + - Compute transitive input closure. Closure hash via composite_hash over sorted input hashes. + phases: [] + subtasks: [] + estimated_effort: null + labels: [] + notes: null +- id: PMAT-004 + github_issue: null + item_type: task + title: 'FJ-1310: Lock file format' + status: completed + priority: high + assigned_to: null + created: 2026-03-02T11:09:01Z + updated: 2026-03-02T11:09:01Z + spec: null + acceptance_criteria: + - 'forjar.inputs.lock.yaml: schema, pins with provider/version/hash. Read/write/diff.' + phases: [] + subtasks: [] + estimated_effort: null + labels: [] + notes: null +- id: PMAT-005 + github_issue: null + item_type: task + title: 'FJ-1325: GC roots and mark-and-sweep' + status: completed + priority: medium + assigned_to: null + created: 2026-03-02T11:09:01Z + updated: 2026-03-02T11:09:01Z + spec: null + acceptance_criteria: + - GC roots from profile symlinks, lock file pins. Mark-and-sweep follows references in meta.yaml. + phases: [] + subtasks: [] + estimated_effort: null + labels: [] + notes: null +- id: PMAT-006 + github_issue: null + item_type: task + title: 'FJ-1329: Reproducibility score' + status: completed + priority: medium + assigned_to: null + created: 2026-03-02T11:09:01Z + updated: 2026-03-02T11:09:01Z + spec: null + acceptance_criteria: + - 0-100 score based on purity levels, store coverage, input lock coverage. + phases: [] + subtasks: [] + estimated_effort: null + labels: [] + notes: null +- id: PMAT-007 + github_issue: null + item_type: task + title: 'FJ-1315: Build sandbox config' + status: completed + priority: medium + assigned_to: null + created: 2026-03-02T12:00:00Z + updated: 2026-03-02T12:00:00Z + spec: null + acceptance_criteria: + - Sandbox config struct with level/memory/cpus/timeout. Validation. SandboxProfile presets. + phases: [] + subtasks: [] + estimated_effort: null + labels: [] + notes: null +- id: PMAT-008 + github_issue: null + item_type: task + title: 'FJ-1320: Binary cache config and substitution protocol' + status: completed + priority: medium + assigned_to: null + created: 2026-03-02T12:00:00Z + updated: 2026-03-02T12:00:00Z + spec: null + acceptance_criteria: + - Cache source config (SSH/local). Substitution protocol (check local, check cache, build). SubstitutionResult. + phases: [] + subtasks: [] + estimated_effort: null + labels: [] + notes: null +- id: PMAT-009 + github_issue: null + item_type: task + title: 'FJ-1333: Universal provider import interface' + status: completed + priority: medium + assigned_to: null + created: 2026-03-02T12:00:00Z + updated: 2026-03-02T12:00:00Z + spec: null + acceptance_criteria: + - ProviderImport trait. ImportResult. Provider config for apt/cargo/uv/nix/docker/tofu. Import pipeline. + phases: [] + subtasks: [] + estimated_effort: null + labels: [] + notes: null +- id: PMAT-010 + github_issue: null + item_type: task + title: 'FJ-1341: Store derivation model' + status: completed + priority: medium + assigned_to: null + created: 2026-03-02T12:00:00Z + updated: 2026-03-02T12:00:00Z + spec: null + acceptance_criteria: + - Derivation struct with inputs/script/sandbox. DerivationResult. Closure computation. DAG validation. + phases: [] + subtasks: [] + estimated_effort: null + labels: [] + notes: null +- id: PMAT-011 + github_issue: null + item_type: task + title: 'FJ-1345: Upstream diff and sync model' + status: completed + priority: medium + assigned_to: null + created: 2026-03-02T13:00:00Z + updated: 2026-03-02T13:00:00Z + spec: null + acceptance_criteria: + - DiffResult, SyncPlan structs. compute_diff, build_sync_plan. Upstream check commands. + phases: [] + subtasks: [] + estimated_effort: null + labels: [] + notes: null +- id: PMAT-012 + github_issue: null + item_type: task + title: 'FJ-1328: Recipe conversion strategy' + status: completed + priority: medium + assigned_to: null + created: 2026-03-02T13:00:00Z + updated: 2026-03-02T13:00:00Z + spec: null + acceptance_criteria: + - 5-step conversion ladder analysis. ConversionReport with auto/manual changes. Purity projection. + phases: [] + subtasks: [] + estimated_effort: null + labels: [] + notes: null +- id: PMAT-013 + github_issue: null + item_type: task + title: 'FJ-1311: forjar pin CLI command' + status: completed + priority: high + assigned_to: null + created: 2026-03-02T14:00:00Z + updated: 2026-03-02T14:00:00Z + spec: null + acceptance_criteria: + - forjar pin / --update / --check CLI commands wired to lockfile module. 11 tests. + phases: [] + subtasks: [] + estimated_effort: null + labels: [] + notes: null +- id: PMAT-014 + github_issue: null + item_type: task + title: 'FJ-1323: forjar cache CLI command' + status: completed + priority: medium + assigned_to: null + created: 2026-03-02T14:00:00Z + updated: 2026-03-02T14:00:00Z + spec: null + acceptance_criteria: + - forjar cache list/push/pull/verify CLI wired to cache module. 11 tests. + phases: [] + subtasks: [] + estimated_effort: null + labels: [] + notes: null +- id: PMAT-015 + github_issue: null + item_type: task + title: 'FJ-1327: forjar store gc/list/diff/sync CLI' + status: completed + priority: medium + assigned_to: null + created: 2026-03-02T14:00:00Z + updated: 2026-03-02T14:00:00Z + spec: null + acceptance_criteria: + - forjar store gc/list/diff/sync CLI wired to gc/store_diff modules. 13 tests. + phases: [] + subtasks: [] + estimated_effort: null + labels: [] + notes: null +- id: PMAT-016 + github_issue: null + item_type: task + title: 'FJ-1346: forjar archive pack/unpack/inspect/verify CLI' + status: completed + priority: medium + assigned_to: null + created: 2026-03-02T14:00:00Z + updated: 2026-03-02T14:00:00Z + spec: null + acceptance_criteria: + - forjar archive pack/unpack/inspect/verify CLI wired to FAR module. 10 tests. + phases: [] + subtasks: [] + estimated_effort: null + labels: [] + notes: null +- id: PMAT-017 + github_issue: null + item_type: task + title: 'FJ-1328: forjar convert --reproducible CLI' + status: completed + priority: medium + assigned_to: null + created: 2026-03-02T14:00:00Z + updated: 2026-03-02T14:00:00Z + spec: null + acceptance_criteria: + - forjar convert --reproducible CLI wired to conversion analysis module. 7 tests. + phases: [] + subtasks: [] + estimated_effort: null + labels: [] + notes: null +- id: PMAT-018 + github_issue: null + item_type: task + title: 'FJ-1333: forjar store-import CLI — universal provider import' + status: completed + priority: medium + assigned_to: null + created: 2026-03-02T15:00:00Z + updated: 2026-03-02T15:00:00Z + spec: null + acceptance_criteria: + - forjar store-import CLI with 8 providers. 14 tests. + phases: [] + subtasks: [] + estimated_effort: null + labels: [] + notes: null +- id: PMAT-019 + github_issue: null + item_type: task + title: 'FJ-1316: Sandbox lifecycle executor' + status: completed + priority: high + assigned_to: null + created: 2026-03-02T15:30:00Z + updated: 2026-03-02T15:30:00Z + spec: null + acceptance_criteria: + - 10-step sandbox lifecycle plan generator. Seccomp BPF for Full level. 16 tests. + phases: [] + subtasks: [] + estimated_effort: null + labels: [] + notes: null +- id: PMAT-020 + github_issue: null + item_type: task + title: 'FJ-1322: Substitution protocol executor' + status: completed + priority: high + assigned_to: null + created: 2026-03-02T15:30:00Z + updated: 2026-03-02T15:30:00Z + spec: null + acceptance_criteria: + - 'Full substitution protocol: local store, SSH cache, build fallback, auto-push. 10 tests.' + phases: [] + subtasks: [] + estimated_effort: null + labels: [] + notes: null +- id: PMAT-021 + github_issue: null + item_type: task + title: 'FJ-1342: Derivation lifecycle executor' + status: completed + priority: high + assigned_to: null + created: 2026-03-02T15:30:00Z + updated: 2026-03-02T15:30:00Z + spec: null + acceptance_criteria: + - Derivation plan + simulate + DAG execution. Store hit skipping. 14 tests. + phases: [] + subtasks: [] + estimated_effort: null + labels: [] + notes: null +- id: PMAT-022 + github_issue: null + item_type: task + title: 'FJ-1366: Fix broken examples and update spec status markers' + status: completed + priority: high + assigned_to: null + created: 2026-03-02T15:26:30Z + updated: 2026-03-02T15:31:13Z + spec: null + acceptance_criteria: + - All examples compile with new store/script fields, Phase L spec header updated, Phases E/F/H descriptions updated + phases: [] + subtasks: [] + estimated_effort: null + labels: [] + notes: null +- id: PMAT-023 + github_issue: null + item_type: task + title: 'FJ-1367: Wire store CLI commands to execution bridges' + status: completed + priority: high + assigned_to: null + created: 2026-03-02T15:26:32Z + updated: 2026-03-02T15:41:12Z + spec: null + acceptance_criteria: + - Connect store gc, pin, convert --apply, store diff, store sync, store import CLI subcommands to the new _exec modules + phases: [] + subtasks: [] + estimated_effort: null + labels: [] + notes: null +- id: PMAT-024 + github_issue: null + item_type: task + title: 'FJ-1368: Store execution integration examples' + status: completed + priority: medium + assigned_to: null + created: 2026-03-02T15:26:33Z + updated: 2026-03-02T15:45:58Z + spec: null + acceptance_criteria: + - Add cargo run --example demos for gc_exec, pin_resolve, cache_exec, convert_exec, sync_exec workflows + phases: [] + subtasks: [] + estimated_effort: null + labels: [] + notes: null +- id: PMAT-025 + github_issue: null + item_type: task + title: 'FJ-1369: Book and cookbook store operations updates' + status: completed + priority: medium + assigned_to: null + created: 2026-03-02T15:26:35Z + updated: 2026-03-02T15:48:16Z + spec: null + acceptance_criteria: + - Expand 12-store.md book chapter with execution details, add forjar-cookbook store-operations recipe + phases: [] + subtasks: [] + estimated_effort: null + labels: [] + notes: null +- id: PMAT-026 + github_issue: null + item_type: task + title: 'FJ-1370: Add CLI tests for execution bridge wiring' + status: completed + priority: high + assigned_to: null + created: 2026-03-02T15:49:35Z + updated: 2026-03-02T15:51:35Z + spec: null + acceptance_criteria: + - Add tests for convert --apply, gc sweep execution, cache pull wiring, sync --apply paths + phases: [] + subtasks: [] + estimated_effort: null + labels: [] + notes: null +- id: PMAT-027 + github_issue: null + item_type: task + title: 'FJ-1371: Wire cache pull to cache_exec and add version resolution' + status: completed + priority: medium + assigned_to: null + created: 2026-03-02T15:49:37Z + updated: 2026-03-02T22:09:42Z + spec: null + acceptance_criteria: + - Connect cmd_cache_pull to cache_exec::pull_from_cache, add version resolution in convert_exec + phases: [] + subtasks: [] + estimated_effort: null + labels: [] + notes: null +- id: PMAT-028 + github_issue: null + item_type: task + title: 'FJ-1372: Boost test coverage to 95% target' + status: completed + priority: medium + assigned_to: null + created: 2026-03-02T16:51:01Z + updated: 2026-03-02T22:09:38Z + spec: null + acceptance_criteria: [] + phases: [] + subtasks: [] + estimated_effort: null + labels: [] + notes: null +- id: PMAT-029 + github_issue: null + item_type: task + title: 'DEBT: Split 92 oversized files under 500-line limit' + status: planned + priority: low + assigned_to: null + created: 2026-03-02T22:01:31Z + updated: 2026-03-02T22:01:31Z + spec: null + acceptance_criteria: + - 'Pre-existing tech debt: 92 source files exceed the 500-line file size limit. Most are test files and CLI dispatch modules. Needs systematic splitting.' + phases: [] + subtasks: [] + estimated_effort: null + labels: [] + notes: null +- id: PMAT-030 + github_issue: null + item_type: task + title: 'FJ-1366: Falsify store spec — type/enum/fn existence tests' + status: completed + priority: high + assigned_to: null + created: 2026-03-02T22:33:52Z + updated: 2026-03-02T22:49:16Z + spec: null + acceptance_criteria: + - 'Falsification tests verifying all 12 phase spec claims: types exist, enums have correct variants, functions exist, numeric thresholds hold' + phases: [] + subtasks: [] + estimated_effort: null + labels: [] + notes: null +- id: PMAT-031 + github_issue: null + item_type: task + title: 'FJ-1373: Store FAR archive example + book section' + status: completed + priority: high + assigned_to: null + created: 2026-03-03T09:47:06Z + updated: 2026-03-03T13:44:07.160784672+00:00 + spec: null + acceptance_criteria: + - cargo run --example store_far_archive passes, book 12-store.md updated with FAR section + phases: [] + subtasks: [] + estimated_effort: null + labels: [] + notes: null +- id: PMAT-032 + github_issue: null + item_type: task + title: 'FJ-1374: Store secret scan example + book section' + status: completed + priority: high + assigned_to: null + created: 2026-03-03T09:47:07Z + updated: 2026-03-03T13:46:01.502311411+00:00 + spec: null + acceptance_criteria: + - cargo run --example store_secret_scan passes, book 12-store.md updated with security section + phases: [] + subtasks: [] + estimated_effort: null + labels: [] + notes: null +- id: PMAT-033 + github_issue: null + item_type: task + title: 'FJ-1375: Store bash provability example + book section' + status: completed + priority: high + assigned_to: null + created: 2026-03-03T09:47:08Z + updated: 2026-03-03T13:47:06.977103823+00:00 + spec: null + acceptance_criteria: + - cargo run --example store_bash_provability passes, book 12-store.md updated with I8 section + phases: [] + subtasks: [] + estimated_effort: null + labels: [] + notes: null +- id: PMAT-034 + github_issue: null + item_type: task + title: 'FJ-1376: Store benchmarks example + cookbook update' + status: completed + priority: medium + assigned_to: null + created: 2026-03-03T09:47:08Z + updated: 2026-03-03T13:48:47.314022166+00:00 + spec: null + acceptance_criteria: + - cargo run --example store_benchmarks passes, cookbook reproducibility.md enhanced + phases: [] + subtasks: [] + estimated_effort: null + labels: [] + notes: null diff --git a/docs/roadmaps/roadmap.yaml.lock b/docs/roadmaps/roadmap.yaml.lock new file mode 100644 index 00000000..e69de29b diff --git a/docs/specifications/ForjarDependencyGraph.als b/docs/specifications/ForjarDependencyGraph.als new file mode 100644 index 00000000..c87d557a --- /dev/null +++ b/docs/specifications/ForjarDependencyGraph.als @@ -0,0 +1,143 @@ +/* + * FJ-049: Alloy specification of forjar dependency graph. + * + * Verifies structural properties: + * - No cycles in resource dependency graph + * - Unique topological ordering with deterministic tie-breaking + * - All dependencies are satisfiable (no dangling references) + * - Machines partition resources correctly + * + * Run with: Alloy Analyzer 6+ or alloy4fun.mit.edu + */ + +-- Resources have names and optional dependencies +sig Resource { + name: one Name, + depends_on: set Resource, + machine: one Machine, + resource_type: one ResourceType +} + +sig Name {} + +sig Machine { + hostname: one Name +} + +abstract sig ResourceType {} +one sig Package, File, Service, Mount, Template, Script, Cron, Exec extends ResourceType {} + +-- The dependency graph +fun dep_graph : Resource -> Resource { + depends_on +} + +-- Topological ordering position +sig Position { + resource: one Resource, + index: one Int +} + +-- ============ FACTS (well-formedness constraints) ============ + +-- F1: No self-loops +fact no_self_loops { + no r: Resource | r in r.depends_on +} + +-- F2: No cycles (transitive closure has no self-loops) +fact no_cycles { + no r: Resource | r in r.^depends_on +} + +-- F3: All dependencies reference existing resources +fact deps_exist { + all r: Resource | r.depends_on in Resource +} + +-- F4: Resource names are unique +fact unique_names { + all disj r1, r2: Resource | r1.name != r2.name +} + +-- F5: Position indices are unique and non-negative +fact valid_positions { + all disj p1, p2: Position | p1.index != p2.index + all p: Position | p.index >= 0 +} + +-- F6: Every resource has exactly one position +fact complete_ordering { + all r: Resource | one p: Position | p.resource = r +} + +-- F7: Dependencies come before dependents in ordering +fact topo_order { + all r: Resource, d: r.depends_on | + let pr = { p: Position | p.resource = r }, + pd = { p: Position | p.resource = d } | + pd.index < pr.index +} + +-- ============ ASSERTIONS (properties to verify) ============ + +-- A1: Topological order respects all transitive dependencies +assert transitive_order { + all r: Resource, d: r.^depends_on | + let pr = { p: Position | p.resource = r }, + pd = { p: Position | p.resource = d } | + pd.index < pr.index +} + +-- A2: Roots (no dependencies) can be first +assert roots_can_be_first { + all r: Resource | no r.depends_on implies + some p: Position | p.resource = r and p.index = 0 +} + +-- A3: Number of positions equals number of resources +assert complete_coverage { + #Position = #Resource +} + +-- A4: Each machine's resources form a connected subgraph +-- (resources on same machine that depend on each other) +assert machine_locality { + all r: Resource, d: r.depends_on | + r.machine = d.machine or d.machine != r.machine + -- (dependencies can cross machines; this is a non-trivial check + -- that the model allows both local and cross-machine deps) +} + +-- ============ PREDICATES ============ + +-- Show a valid 3-resource linear chain +pred linear_chain { + #Resource = 3 + some disj a, b, c: Resource | + b.depends_on = a and c.depends_on = b and no a.depends_on +} + +-- Show a valid diamond dependency +pred diamond { + #Resource = 4 + some disj a, b, c, d: Resource | + b.depends_on = a and c.depends_on = a and + d.depends_on = b + c and no a.depends_on +} + +-- Show independent resources (no dependencies) +pred independent { + #Resource = 3 + all r: Resource | no r.depends_on +} + +-- ============ CHECK / RUN ============ + +check transitive_order for 6 +check complete_coverage for 6 +check machine_locality for 6 + +run linear_chain for 3 but exactly 3 Resource, exactly 3 Position +run diamond for 4 but exactly 4 Resource, exactly 4 Position +run independent for 3 but exactly 3 Resource, exactly 3 Position diff --git a/docs/specifications/ForjarExecution.tla b/docs/specifications/ForjarExecution.tla new file mode 100644 index 00000000..17e1942a --- /dev/null +++ b/docs/specifications/ForjarExecution.tla @@ -0,0 +1,137 @@ +---------------------------- MODULE ForjarExecution ---------------------------- +\* FJ-042: TLA+ specification of the forjar execution model. +\* +\* This specification model-checks the plan-apply protocol for: +\* - Safety: no resource is applied out of dependency order +\* - Liveness: all reachable resources eventually converge +\* - Idempotency: applying a converged system is a no-op +\* - Termination: the apply loop terminates in bounded steps +\* +\* Run with: tlc ForjarExecution.tla +\* Or use the TLA+ Toolbox / VS Code extension. +\* +\* Model parameters: +\* RESOURCES: {"pkg-nginx", "file-config", "svc-nginx"} +\* DEPENDENCIES: {<<"file-config", "pkg-nginx">>, <<"svc-nginx", "file-config">>} + +EXTENDS Naturals, Sequences, FiniteSets, TLC + +CONSTANTS + RESOURCES, \* Set of resource names + DEPENDENCIES \* Set of <> pairs + +VARIABLES + state, \* Function: resource -> {"pending", "converged", "failed"} + applied, \* Set of resources that have been applied in this round + plan, \* Sequence of resources in topological order + phase \* "planning" | "applying" | "done" + +vars == <> + +\* ---------- Type invariant ---------- + +TypeOK == + /\ state \in [RESOURCES -> {"pending", "converged", "failed"}] + /\ applied \subseteq RESOURCES + /\ phase \in {"planning", "applying", "done"} + +\* ---------- Dependency helpers ---------- + +\* Resource r's dependencies (things r depends on) +DepsOf(r) == {d \in RESOURCES : <> \in DEPENDENCIES} + +\* A resource is ready when all its dependencies are converged +Ready(r) == \A d \in DepsOf(r) : state[d] = "converged" + +\* ---------- Topological sort (simplified: pick any ready resource) ---------- + +PickReady == {r \in RESOURCES : r \notin applied /\ Ready(r) /\ state[r] # "converged"} + +\* ---------- Initial state ---------- + +Init == + /\ state = [r \in RESOURCES |-> "pending"] + /\ applied = {} + /\ plan = <<>> + /\ phase = "planning" + +\* ---------- Planning phase ---------- + +PlanStep == + /\ phase = "planning" + /\ phase' = "applying" + /\ UNCHANGED <> + +\* ---------- Apply phase ---------- + +ApplyResource == + /\ phase = "applying" + /\ PickReady # {} + /\ \E r \in PickReady : + /\ state' = [state EXCEPT ![r] = "converged"] + /\ applied' = applied \cup {r} + /\ UNCHANGED <> + +\* ---------- Completion ---------- + +Complete == + /\ phase = "applying" + /\ PickReady = {} + /\ phase' = "done" + /\ UNCHANGED <> + +\* ---------- Idempotent re-apply (no-op when converged) ---------- + +IdempotentReapply == + /\ phase = "done" + /\ \A r \in RESOURCES : state[r] = "converged" + \* Re-applying is a no-op: state doesn't change + /\ UNCHANGED vars + +\* ---------- Next-state relation ---------- + +Next == + \/ PlanStep + \/ ApplyResource + \/ Complete + \/ IdempotentReapply + +\* ---------- Fairness ---------- + +Fairness == WF_vars(ApplyResource) /\ WF_vars(Complete) + +Spec == Init /\ [][Next]_vars /\ Fairness + +\* ---------- Safety properties ---------- + +\* S1: No resource is applied before its dependencies +SafetyDependencyOrder == + \A r \in applied : \A d \in DepsOf(r) : d \in applied + +\* S2: Once converged, state does not regress to pending +SafetyNoRegression == + [][ + \A r \in RESOURCES : + state[r] = "converged" => state'[r] = "converged" + ]_state + +\* ---------- Liveness properties ---------- + +\* L1: Every resource eventually converges (assuming no failures) +LivenessAllConverge == + <>(\A r \in RESOURCES : state[r] = "converged") + +\* L2: The apply phase eventually completes +LivenessTermination == + <>(phase = "done") + +\* ---------- Idempotency property ---------- + +\* I1: In done state with all converged, re-running apply produces no state change +IdempotencyProperty == + []( + (phase = "done" /\ \A r \in RESOURCES : state[r] = "converged") + => [][UNCHANGED state]_state + ) + +================================================================================ diff --git a/docs/specifications/forjar-cookbook.md b/docs/specifications/forjar-cookbook.md new file mode 100644 index 00000000..a9753e81 --- /dev/null +++ b/docs/specifications/forjar-cookbook.md @@ -0,0 +1,4328 @@ +# Forjar Cookbook + +**Repo**: `forjar-cookbook` (separate repo — NOT part of forjar) +**Purpose**: Qualification suite that proves forjar works on real infrastructure +**Primary runner**: Self-hosted Intel (bare-metal, 32-core Xeon, 283 GB RAM, 2x AMD GPU) + +--- + +## What This Repo Is + +`forjar-cookbook` is a **separate Rust project** that exists to flush out bugs and missing features in forjar. It is NOT a documentation exercise — it is a living test harness. + +Every recipe in this repo is a real forjar config that gets applied to real machines. When a recipe exposes a bug or missing feature in forjar, we: + +1. **Stop** — record the gap in the qualification checklist +2. **Implement** — fix the bug or add the feature in the `forjar` repo +3. **Release** — publish the new forjar version +4. **Retry** — re-run the recipe and mark it qualified + +This is the forjar equivalent of `apr-model-qa-playbook` — a systematic qualification framework where tests own the README checklist. + +### What This Repo Is NOT + +- Not a documentation-only spec +- Not part of the forjar repo +- Not aspirational — every recipe either passes or has a tracked blocker +- Not GitHub Actions-first — the self-hosted runner is the primary target + +--- + +## Repo Structure + +``` +forjar-cookbook/ +├── Cargo.toml # Rust workspace (edition 2024) +├── Makefile # All developer targets +├── README.md # Live qualification dashboard (test-managed) +├── CLAUDE.md # Project-specific instructions +├── crates/ +│ ├── cookbook-runner/ # Recipe execution harness +│ │ ├── src/lib.rs # Apply recipe, capture results, timing +│ │ └── src/main.rs # CLI: validate, qualify, score +│ ├── cookbook-qualify/ # README sync + qualification logic +│ │ ├── src/lib.rs # CSV parse, table generate, README update +│ │ └── src/main.rs # Binary: cookbook-readme-sync +│ └── cookbook-examples/ # cargo run --example targets +│ └── examples/ +│ ├── validate_all.rs # Validate every recipe config +│ ├── plan_all.rs # Plan every recipe (dry-run) +│ ├── apply_container.rs # Apply Tier 2 recipes in containers +│ ├── qualify_recipe.rs # Full qualification cycle for one recipe +│ ├── idempotency_check.rs # Two-apply idempotency test +│ └── score_all.rs # Score all recipes, update CSV +├── recipes/ # Forjar YAML configs (the actual recipes) +│ ├── 01-developer-workstation.yaml +│ ├── 02-web-server.yaml +│ ├── ... +│ └── 62-stack-cross-distro.yaml +├── configs/ # Container-testable variants +│ ├── container-01-devbox.yaml +│ ├── container-02-webserver.yaml +│ └── ... +├── docs/ +│ ├── certifications/ +│ │ └── recipes.csv # Source of truth: recipe qualification status +│ └── book/ # mdBook source +│ ├── book.toml +│ └── src/ +│ ├── SUMMARY.md +│ ├── introduction.md +│ ├── getting-started.md +│ ├── recipes/ # One chapter per recipe category +│ │ ├── infrastructure.md +│ │ ├── nix-style.md +│ │ ├── rust-builds.md +│ │ ├── packages.md +│ │ ├── opentofu-patterns.md +│ │ ├── linux-admin.md +│ │ ├── failure-modes.md +│ │ └── composition.md +│ ├── qualification.md # How the qualification process works +│ ├── runner-setup.md # Self-hosted runner provisioning guide +│ └── troubleshooting.md +├── scripts/ +│ ├── check-docs-consistency.sh # Verify README vs CSV parity +│ ├── coverage-check.sh # Enforce 95% threshold +│ └── qualify-all.sh # Run full qualification suite on runner +├── tests/ +│ └── integration_tests.rs # Workspace-level integration tests +└── .github/workflows/ + ├── ci.yml # fmt + clippy + test + coverage + score + docs + ├── qualify-runner.yml # Self-hosted runner qualification (primary) + └── book.yml # mdBook build + deploy +``` + +--- + +## Quality Gates + +This repo enforces the same standards as forjar itself: + +| Gate | Tool | Threshold | +|------|------|-----------| +| **Test coverage** | `cargo llvm-cov` | >= 95% line coverage | +| **Lint** | `cargo clippy -- -D warnings` | Zero warnings | +| **Format** | `cargo fmt --check` | Zero diff | +| **Code health** | `pmat comply check` | All files pass | +| **Shell safety** | `bashrs` | All scripts + Makefile linted | +| **Complexity** | Pre-commit hooks | Cyclomatic <= 30, cognitive <= 25 | +| **File size** | Pre-commit hooks | No source file > 500 lines | +| **Docs consistency** | `./scripts/check-docs-consistency.sh` | README matches CSV | +| **Examples** | `cargo run --example validate_all` | All recipes validate | + +### Makefile Targets + +```makefile +check: fmt-check lint test docs-check # Full gate chain +test: # cargo test --workspace +lint: # cargo clippy -- -D warnings +fmt-check: # cargo fmt --check +coverage: # cargo llvm-cov --workspace --lib --html +coverage-check: # ./scripts/coverage-check.sh (>=95%) +docs-check: # ./scripts/check-docs-consistency.sh +examples: # cargo run --example validate_all && ... +update-qualifications: # cargo run --bin cookbook-readme-sync --quiet +score: # cargo run --example score_all (updates CSV) +score-recipe RECIPE=01: # cookbook-runner score (static analysis) +qualify-recipe RECIPE=01: # cookbook-runner qualify (full cycle) +qualify-all: # ./scripts/qualify-all.sh (self-hosted runner) +book: # mdbook build docs/book +bashrs-lint: # bashrs lint scripts/ Makefile +``` + +### cookbook-runner CLI + +The `cookbook-runner` binary provides three subcommands: + +``` +cookbook-runner validate --file # Validate config (forjar validate + plan) +cookbook-runner qualify --file # Full qualification: validate → plan → apply → idempotency → score +cookbook-runner score --file # Static-only score (no apply) — SAF/OBS/DOC/RES/CMP dimensions +``` + +The `score` subcommand accepts `--status`, `--idempotency`, and `--budget-ms` flags for runtime context when scoring without a live apply. Without runtime data, COR/IDM/PRF dimensions are 0 (static-only mode). + +The `qualify` subcommand automatically computes and appends the ForjarScore after qualification completes. It uses `runtime_data_from_qualify()` to build the runtime context from actual apply results. + +--- + +## Qualification Dashboard (README.md) + +The README contains a live qualification table bounded by HTML comment markers, generated from `docs/certifications/recipes.csv`. Tests own this table — it is never hand-edited. + +### Markers + +```markdown + +**Qualification Summary** (updated: 2026-03-01) + +| Status | Count | +|--------|-------| +| Qualified | 57 | +| Blocked | 5 | + +| # | Recipe | Status | Grade | Score | Blocker | +|---|--------|--------|-------|-------|---------| +| 1 | developer-workstation | QUALIFIED | A | 94 | — | +| 7 | rocm-gpu | BLOCKED | F | — | FJ-1126 | +| 53 | stack-dev-server | QUALIFIED | A | 94 | — | +... + +``` + +### CSV Source of Truth + +`docs/certifications/recipes.csv` (23 columns — extended with ForjarScore): + +```csv +recipe_num,name,category,status,tier,idempotency,first_ms,idem_ms,blocker,blocker_desc,date,by,score,grade,cor,idm,prf,saf,obs,doc,res,cmp,ver +1,developer-workstation,infra,qualified,2+3,strong,1032,23,,,2026-03-01,cookbook-runner,94,A,100,100,95,97,90,80,80,85,1.0 +7,rocm-gpu,gpu,blocked,3,strong,,,FJ-1126,ROCm userspace,,,0,F,0,0,0,0,0,0,0,0,1.0 +``` + +### Sync Binary + +`crates/cookbook-qualify/src/lib.rs`: + +```rust +pub const START_MARKER: &str = ""; +pub const END_MARKER: &str = ""; + +pub fn parse_csv(content: &str) -> Result>; +pub fn generate_summary(recipes: &[RecipeQualification], timestamp: &str) -> String; +pub fn generate_table(recipes: &[RecipeQualification]) -> String; +pub fn update_readme(readme: &str, table_content: &str) -> Result; +pub fn write_csv(recipes: &[RecipeQualification]) -> String; +``` + +Invoked via `make update-qualifications` → `cargo run --bin cookbook-readme-sync --quiet`. + +### The Qualification Cycle + +``` +Recipe YAML written + │ + ▼ + forjar validate ← Tier 1: does it parse? + │ + ▼ + forjar plan ← Tier 1: does the DAG resolve? + │ + ▼ + forjar apply (container) ← Tier 2: does it converge in a container? + │ + ▼ + forjar apply (runner) ← Tier 3: does it converge on bare metal? + │ + ▼ + Second apply = 0 changes ← Idempotency proven + │ + ▼ + Timing within budget ← Performance proven + │ + ▼ + ForjarScore computed ← 8-dimension quality grade (A through F) + │ + ▼ + Mark QUALIFIED in CSV ← cookbook-runner updates CSV with score + │ + ▼ + cookbook-readme-sync ← README table regenerated with grades +``` + +### When a Recipe Fails + +If a recipe fails because forjar is missing a feature or has a bug: + +1. **Mark BLOCKED** in CSV with `blocker_ticket` (e.g., `FJ-XXXX`) and `blocker_description` +2. **File the issue** in the forjar repo +3. **Implement the fix** in forjar +4. **Bump forjar version** in cookbook's `Cargo.toml` (or `forjar` binary version) +5. **Re-run the recipe** — `make qualify-recipe RECIPE=NN` +6. **Mark QUALIFIED** when it passes — `cookbook-runner` updates CSV + README automatically + +This feedback loop is the entire point of the repo. The cookbook is a forcing function for forjar quality. + +--- + +## Self-Hosted Runner (Primary) + +The Intel runner is the **primary qualification target**. GitHub Actions `ubuntu-latest` is secondary — useful for Tier 1/2 validation, but the real qualification happens on bare metal. + +### Intel Runner (`ssh intel` — Mac Pro) + +- **OS**: Ubuntu 22.04 (Jammy), kernel 6.8.0-101-generic +- **CPU**: 32-core Intel Xeon W +- **RAM**: 283 GB +- **Storage**: 3.6 TB NVMe RAID-0 +- **GPU**: 2x AMD Radeon Pro W5700X (Navi 10), in-tree `amdgpu` driver +- **Docker**: 29.2.1 +- **GPU devices**: `/dev/kfd`, `/dev/dri/renderD128`, `/dev/dri/renderD129` +- **ROCm userspace**: Not yet installed (FJ-1126) +- **Network**: Full (real UFW, SSH, NFS-capable) +- **Forjar**: Installed from source (`cargo install --path .`) + +### Why Self-Hosted is Primary + +| Concern | GitHub Actions | Self-Hosted Intel | +|---------|---------------|-------------------| +| Systemd | Stubbed/absent | Real systemd, real units | +| apt installs | Work but ephemeral | Work and persist for idempotency testing | +| Firewall (ufw) | Can't enforce | Real enforcement | +| GPU | None | 2x AMD Radeon Pro W5700X | +| Kernel modules | Limited | Full (amdgpu, nfs, cgroups v2) | +| NFS mounts | Impossible | Real NFS server + client | +| Pepita isolation | No cgroups v2 | Full kernel namespace support | +| Docker socket | DinD hacks | Native Docker daemon | +| Persistence | Destroyed after job | State survives for drift testing | + +### Runner CI Workflow + +`.github/workflows/qualify-runner.yml`: + +```yaml +name: Qualify on Runner +on: + workflow_dispatch: + inputs: + recipe: + description: 'Recipe number (or "all")' + default: 'all' + push: + paths: ['recipes/**', 'configs/**'] + +jobs: + qualify: + runs-on: self-hosted + steps: + - uses: actions/checkout@v4 + - name: Install forjar (latest) + run: cargo install --path ../forjar --locked + - name: Qualify recipes + run: | + if [ "${{ inputs.recipe }}" = "all" ]; then + ./scripts/qualify-all.sh + else + make qualify-recipe RECIPE=${{ inputs.recipe }} + fi + - name: Update qualification dashboard + run: make update-qualifications + - name: Commit results + run: | + git add docs/certifications/recipes.csv README.md + git diff --cached --quiet || git commit -m "qual: update recipe status" +``` + +### GitHub Actions CI Workflow (Secondary) + +`.github/workflows/ci.yml`: + +```yaml +name: CI +on: [push, pull_request] + +jobs: + check: # fmt + clippy + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@stable + - uses: Swatinem/rust-cache@v2 + - run: cargo fmt --check + - run: cargo clippy --workspace --all-targets -- -D warnings + + test: # full test suite + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@stable + - uses: Swatinem/rust-cache@v2 + - run: cargo test --workspace + + coverage: # >= 95% line coverage + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@stable + - uses: Swatinem/rust-cache@v2 + - run: cargo install cargo-llvm-cov + - run: cargo llvm-cov --workspace --lib --lcov --output-path lcov.info + - run: ./scripts/coverage-check.sh + + score: # static-only scoring (no forjar binary needed) + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@stable + - uses: Swatinem/rust-cache@v2 + - run: cargo run --example score_all + + docs: # README/CSV consistency + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - run: ./scripts/check-docs-consistency.sh +``` + +**Note**: `validate_all` and `plan_all` require the `forjar` binary installed (`Command::new("forjar")`), so they run only on the self-hosted runner. The `score_all` example is pure library code and runs in CI without forjar. + +--- + +## Testability Tiers + +### Tier 1: YAML Validation + +**What it tests**: config parsing, schema validation, template resolution, dependency graph, plan generation, codegen script output. + +**How**: `forjar validate -f ` + `forjar plan -f --state-dir /tmp/test`. + +**Where**: GitHub Actions `ubuntu-latest` (secondary) + self-hosted runner. + +**Coverage**: Tests that the *right shell scripts* are generated — does not test that they *work*. + +### Tier 2: Container Transport + +**What it tests**: full apply cycle inside a Docker container. `check_script` → `apply_script` → `state_query_script` → BLAKE3 hash → lock file. + +**How**: `forjar apply -f --state-dir /tmp/test --yes` where machines use `transport: container`. + +**Where**: GitHub Actions `ubuntu-latest` (Docker pre-installed) + self-hosted runner (native Docker). + +**Coverage**: file, package (apt), service (systemd-stub), user, cron, network (ufw), docker. Does NOT cover: mount, GPU, model, pepita. + +### Tier 3: Bare-Metal Convergence (Self-Hosted Only) + +**What it tests**: actual convergence on real hardware. Real apt, real systemd, real kernel modules, real GPU. + +**How**: `forjar apply -f --state-dir /tmp/test --yes` on the self-hosted runner (local transport). + +**Where**: Self-hosted Intel runner ONLY. + +**Coverage**: Everything — GPU, mount, model downloads, pepita kernel isolation, real firewall. + +--- + +## Idempotency Contract + +Every recipe MUST satisfy this contract, enforced by `cookbook-runner`: + +``` +Apply #1: converge from clean state → N changes applied +Apply #2: re-apply immediately → 0 changes, exit code 0 +Assert: state hash #1 == state hash #2 +``` + +### Test Protocol + +```bash +# First apply — converge +forjar apply -f "$config" --state-dir /tmp/idem --yes 2>&1 | tee /tmp/apply1.log +HASH1=$(cat /tmp/idem/*/state.lock.yaml | b3sum | cut -d' ' -f1) + +# Second apply — must be no-op +forjar apply -f "$config" --state-dir /tmp/idem --yes 2>&1 | tee /tmp/apply2.log +HASH2=$(cat /tmp/idem/*/state.lock.yaml | b3sum | cut -d' ' -f1) + +# Assert idempotency +grep -q "0 changed" /tmp/apply2.log || { echo "FAIL: second apply made changes"; exit 1; } +[ "$HASH1" = "$HASH2" ] || { echo "FAIL: state hash drift"; exit 1; } +``` + +### Idempotency Violations to Watch For + +| Pattern | Symptom | Root Cause | +|---------|---------|------------| +| File content with timestamps | Hash changes on every apply | Template contains `{{now}}` or similar | +| apt-get always runs | `NEED_INSTALL=1` every time | Check script doesn't detect installed package | +| Service restarts on re-apply | `restart_on` triggers fire | Config file hash changes due to whitespace/ordering | +| Cron jobs duplicated | Multiple crontab entries | No idempotent crontab management | +| Overlay remounted | Mount detected as missing | Check script doesn't survive reboot | + +### Per-Recipe Idempotency Classification + +| Class | Meaning | Example | +|-------|---------|---------| +| **Strong** | Deterministic — same inputs always produce identical state hash | File, package, user, network | +| **Weak** | Idempotent (zero changes on re-apply) but hash may vary due to external state | Service (PID changes), docker (container ID), model (remote checksum) | +| **Eventual** | May require multiple applies to converge (dependency resolution) | Recipe composition with cross-machine dependencies | + +--- + +## Performance Budget + +Every recipe has a convergence time target. These are enforced by `cookbook-runner` — exceeding the budget is a qualification failure. + +### Convergence Time Targets + +| Recipe Category | First Apply (clean) | Second Apply (idempotent) | Rationale | +|----------------|--------------------|-----------------------------|-----------| +| File-only (dotfiles, configs) | < 5s | < 1s | No package downloads | +| Package + file (devbox, baseline) | < 60s | < 2s | apt-get dominates first apply | +| Service lifecycle (web, postgres) | < 90s | < 3s | Package install + service start | +| Docker containers (redis, monitoring) | < 120s | < 5s | Image pull dominates first apply | +| Rust build (release, musl) | < 300s | < 5s | Cargo compile dominates | +| Model pipeline (APR compile) | < 600s | < 5s | Model download + conversion | +| GPU qualification | < 30s | < 2s | Driver check only | +| Linux admin (cron, users, sysctl) | < 10s | < 1s | File deploys, no package installs | +| Full stack composition | < 600s | < 10s | Sum of components | + +### Measurement Protocol + +```bash +# Measure first-apply time +START=$(date +%s%N) +forjar apply -f "$config" --state-dir /tmp/perf --yes +END=$(date +%s%N) +FIRST_MS=$(( (END - START) / 1000000 )) + +# Measure idempotent-apply time +START=$(date +%s%N) +forjar apply -f "$config" --state-dir /tmp/perf --yes +END=$(date +%s%N) +IDEM_MS=$(( (END - START) / 1000000 )) + +echo "first_apply_ms=$FIRST_MS idempotent_apply_ms=$IDEM_MS" +``` + +### Performance Regression Detection + +`cookbook-runner` captures timing for each recipe and compares against the budget table. Exceeding the budget by >50% fails qualification. Timing history is stored in `docs/certifications/recipes.csv` for trend analysis. + +--- + +## Forjar Score + +Every recipe receives a **Forjar Score** — a multi-dimensional quality grade from A through F. The score is deterministic (same inputs always produce the same grade), automatically computed by `cookbook-qualify`, and designed so that A-grade is genuinely hard to achieve. All 62 recipes are designed as A-grade targets (57 qualified at A-grade, 5 blocked on hardware). + +### Scoring Dimensions + +| Dim | Code | Weight | What It Measures | +|-----|------|--------|------------------| +| Correctness | COR | 20% | Converges from clean state | +| Idempotency | IDM | 20% | Zero changes on re-apply, stable hashes | +| Performance | PRF | 15% | Within time budget, fast re-apply | +| Safety | SAF | 15% | No dangerous patterns (0777, curl\|bash, open ports) | +| Observability | OBS | 10% | State hashes, outputs, drift hooks, notification config | +| Documentation | DOC | 8% | Comment ratio >=15%, header metadata, description | +| Resilience | RES | 7% | Failure policy, dependency DAG, lifecycle hooks | +| Composability | CMP | 5% | Params, tags, templates, includes, multi-machine | + +### Grade Gates + +The composite score is the weighted sum of all dimensions (0–100). However, **minimum-per-dimension gates** prevent gaming by overperforming in easy dimensions while neglecting hard ones. + +| Grade | Composite | Min Dimension | Meaning | +|-------|-----------|---------------|---------| +| A | >= 90 | >= 80 | Production-hardened, hand to any SRE | +| B | >= 75 | >= 60 | Solid, minor gaps | +| C | >= 60 | >= 40 | Functional but rough | +| D | >= 40 | any | Bare minimum | +| F | < 40 | any | Or: blocked/pending/never-qualified | + +**Why A is hard**: A recipe scoring 100 in 7 dimensions but 70 in Documentation still gets B (min dimension < 80). Every dimension must be >= 80. + +### Hard-Fail Conditions (Automatic F) + +- `status == blocked` or `status == pending` (never qualified) +- Validation fails (`forjar validate` exit != 0) +- Plan fails (`forjar plan` exit != 0) +- First apply fails (`forjar apply` exit != 0) + +Any hard-fail condition produces grade F regardless of dimension scores. + +### Dimension Scoring Formulas + +Each dimension scores 0–100. Points are additive within each dimension. + +**COR — Correctness (20%)** +- validate_pass: +20 +- plan_pass: +20 +- first_apply_pass: +40 +- all_resources_converged: +10 +- state_lock_written: +10 +- Penalty: -2 per warning (max -10) + +**IDM — Idempotency (20%)** +- second_apply_pass: +30 +- zero_changes_on_reapply: +30 +- hash_stable: +20 +- Idempotency class bonus: strong +20, weak +10, eventual +0 +- Penalty: -10 per changed resource on 2nd apply + +**PRF — Performance (15%)** +- First apply vs budget: <=50% → 50pts, <=75% → 40, <=100% → 30, <=150% → 15 +- Idempotent timing: <=2s → 30pts, <=5s → 25, <=10s → 15 +- Efficiency ratio (idem/first): <=5% → 20pts, <=10% → 15, <=25% → 10 + +**SAF — Safety (15%)** — Starts at 100, deductions: +- Critical: mode 0777 (-30), curl\|bash (-30), root+0666 (-20), wide-open ports (-15) +- Moderate: no explicit mode on file (-5), no explicit owner (-3), no version pin (-3) +- Hard cap at 40 if any critical violation exists + +**OBS — Observability (10%)** +- tripwire_policy present: +15 +- lock_file configured: +15 +- outputs section: +10 +- File mode coverage (% of files with explicit mode): up to +15 (full credit if no file resources) +- Owner coverage (% of files with explicit owner): up to +15 (full credit if no file resources) +- Notify hooks (on_success/on_failure/on_drift): up to +20 + +**DOC — Documentation (8%)** +- Comment ratio: >=15% → 40pts, >=10% → 30, >=5% → 20 +- Header metadata (recipe#): +10 +- Header metadata (tier): +10 +- Header metadata (idempotency): +10 +- description field present: +15 +- Descriptive name (not generic): +5 + +**RES — Resilience (7%)** +- failure policy (continue_independent): +20 +- ssh_retries > 1: +10 +- Dependency DAG ratio: >=50% → 30pts, >=30% → 20 +- pre_apply hook: +10 +- post_apply hook: +10 + +**CMP — Composability (5%)** +- params with defaults: +20 +- templates used: +10 +- includes: +10 +- tags on resources: +15 +- resource_groups: +15 +- multi-machine: +10 +- recipe nesting: +15 + +### CSV Schema Extension + +The qualification CSV extends from 12 to 23 columns. New fields: + +| Column | Type | Description | +|--------|------|-------------| +| score | u32 | Composite score (0–100) | +| grade | String | Letter grade (A/B/C/D/F) | +| cor | u32 | Correctness dimension (0–100) | +| idm | u32 | Idempotency dimension (0–100) | +| prf | u32 | Performance dimension (0–100) | +| saf | u32 | Safety dimension (0–100) | +| obs | u32 | Observability dimension (0–100) | +| doc | u32 | Documentation dimension (0–100) | +| res | u32 | Resilience dimension (0–100) | +| cmp | u32 | Composability dimension (0–100) | +| score_version | String | Scoring algorithm version (e.g., "1.0") | + +Backward compatibility: missing fields default to 0/empty when parsing older CSV files. + +### README Table Rendering + +The qualification table includes a **Grade** column with shields.io badges: +- A: `brightgreen` +- B: `blue` +- C: `yellow` +- D: `orange` +- F: `red` + +The summary section includes a **Grade Distribution** row showing counts per grade. + +### Worked Example + +Consider Recipe #1 (developer-workstation) with full qualification data: + +``` +COR: 100 (all steps pass, converged, state lock written) +IDM: 100 (second apply passes, zero changes, hash stable, strong class) +PRF: 95 (first apply 7.5s vs 60s budget = 12.5%, idem 408ms, ratio 5.4%) +SAF: 97 (explicit mode/owner on all files, -3 for no version pin on packages) +OBS: 90 (tripwire, lock_file, outputs, file mode/owner coverage 100%, notify 3/3) +DOC: 80 (10%+ comments, header with recipe#/tier/idempotency, description, dash name) +RES: 80 (continue_independent, ssh_retries=3, DAG 50%+, pre_apply, post_apply) +CMP: 85 (params, templates, includes×2, tags, resource_groups) + +Composite: 100×0.20 + 100×0.20 + 95×0.15 + 97×0.15 + 90×0.10 + 80×0.08 + 80×0.07 + 85×0.05 + = 20.0 + 20.0 + 14.25 + 14.55 + 9.0 + 6.4 + 5.6 + 4.25 = 94.05 → 94 + +Min dimension: DOC = 80 (>= 80 ✓) +Grade: A (composite 94 >= 90, min dimension 80 >= 80) +``` + +All 56 qualified recipes achieve A-grade through: shared includes (CMP+25), inline comments (DOC+10), dependency DAGs (RES+10), budget-aware PRF scoring, and full policy configuration (OBS+20). + +--- + +## Cookbook Recipes + +### 1. Developer Workstation + +**Tier**: 1 (validate) + 2 (container apply for file/package subset) + +Provision a development machine with tools, dotfiles, and directory structure. This is what `infra/forjar.yaml` already does for the Intel runner. + +**Resources**: package (cargo, apt), file (dotfiles, directories) + +**Testable in CI**: +- Tier 1: validate config, verify plan output, check codegen scripts +- Tier 2: apply inside container — apt packages install, files land at correct paths with correct permissions, template params resolve + +**Recipe inputs**: +| Input | Type | Default | Description | +|-------|------|---------|-------------| +| `user` | string | required | Unix username | +| `home` | path | `/home/{{inputs.user}}` | Home directory | +| `editor` | enum | `vim` | `vim` / `nano` / `emacs` | +| `shell_framework` | enum | `pzsh` | `pzsh` / `oh-my-zsh` / `none` | +| `cargo_tools` | string | `ripgrep,fd-find,bat` | Comma-separated cargo packages | + +**Resources** (7): +- `dev-packages` — apt: build-essential, curl, git, tmux, htop +- `cargo-tools` — cargo: from `cargo_tools` input +- `home-dir` — directory: `{{inputs.home}}` with correct owner +- `gitconfig` — file: `.gitconfig` with user/editor +- `vimrc` — file: `.vimrc` (when editor=vim) +- `tmux-conf` — file: `.tmux.conf` +- `shell-rc` — file: `.zshrc` or `.bashrc` with framework eval + +--- + +### 2. Web Application Server + +**Tier**: 1 + 2 (full container apply) + +Nginx reverse proxy + application config + firewall + TLS cert directories. + +**Testable in CI**: +- Tier 1: validate, plan, codegen +- Tier 2: full container apply — apt install nginx, deploy config files, set up firewall rules (ufw), create TLS directories. Verify idempotency. + +**Recipe inputs**: +| Input | Type | Default | Description | +|-------|------|---------|-------------| +| `domain` | string | required | Domain name | +| `port` | int | `443` | Listen port | +| `upstream_port` | int | `8080` | App backend port | +| `tls_email` | string | `""` | Let's Encrypt email (empty = self-signed) | +| `log_level` | enum | `warn` | `error` / `warn` / `info` / `debug` | + +**Resources** (8): +- `nginx-pkg` — apt: nginx +- `tls-dir` — directory: `/etc/nginx/ssl/{{inputs.domain}}` +- `nginx-site` — file: `/etc/nginx/sites-available/{{inputs.domain}}` +- `nginx-enable` — symlink: sites-enabled → sites-available +- `nginx-service` — service: nginx (running, enabled, restart_on: nginx-site) +- `firewall-https` — network: allow {{inputs.port}}/tcp +- `firewall-http` — network: allow 80/tcp (for ACME challenges) +- `firewall-deny-upstream` — network: deny {{inputs.upstream_port}}/tcp from 0.0.0.0/0 + +--- + +### 3. PostgreSQL Database Server + +**Tier**: 1 + 2 (container apply with apt) + +Production PostgreSQL with tuned config, backup cron, and firewall lockdown. + +**Testable in CI**: +- Tier 1: validate, plan +- Tier 2: container apply — install postgresql, deploy pg_hba.conf and postgresql.conf, create backup script, set up cron, configure firewall + +**Recipe inputs**: +| Input | Type | Default | Description | +|-------|------|---------|-------------| +| `pg_version` | string | `16` | PostgreSQL major version | +| `listen_addresses` | string | `localhost` | Bind addresses | +| `max_connections` | int | `200` | Connection limit | +| `shared_buffers` | string | `256MB` | Shared memory | +| `backup_schedule` | string | `0 2 * * *` | Backup cron (2 AM daily) | +| `backup_dir` | path | `/var/backups/postgresql` | Backup destination | +| `allowed_cidr` | string | `127.0.0.1/32` | pg_hba.conf client CIDR | + +**Resources** (8): +- `pg-pkg` — apt: postgresql-{{inputs.pg_version}} +- `pg-conf` — file: postgresql.conf (tuned settings) +- `pg-hba` — file: pg_hba.conf (auth rules) +- `pg-service` — service: postgresql (running, enabled, restart_on: pg-conf, pg-hba) +- `backup-dir` — directory: {{inputs.backup_dir}} +- `backup-script` — file: `/usr/local/bin/pg-backup.sh` +- `backup-cron` — cron: pg_basebackup on schedule +- `firewall-pg` — network: allow 5432/tcp from {{inputs.allowed_cidr}} + +--- + +### 4. Monitoring Stack (Prometheus + Grafana) + +**Tier**: 1 + 2 (container apply for config/directories; Docker resources for the services) + +Lightweight monitoring: Prometheus scrapes node_exporter + app metrics, Grafana dashboards. + +**Testable in CI**: +- Tier 1: validate, plan +- Tier 2: container apply — directory structure, config files, Docker container resources (prometheus, grafana, node_exporter), firewall rules + +**Recipe inputs**: +| Input | Type | Default | Description | +|-------|------|---------|-------------| +| `prometheus_port` | int | `9090` | Prometheus listen port | +| `grafana_port` | int | `3000` | Grafana listen port | +| `retention_days` | int | `30` | Metric retention | +| `scrape_targets` | string | `localhost:9100` | Comma-separated scrape endpoints | +| `grafana_admin_password` | string | `admin` | Initial Grafana password | + +**Resources** (8): +- `prometheus-data` — directory: `/var/lib/prometheus` +- `prometheus-config` — file: `/etc/prometheus/prometheus.yml` (scrape config) +- `prometheus` — docker: prom/prometheus (ports, volumes, restart: always) +- `grafana-data` — directory: `/var/lib/grafana` +- `grafana` — docker: grafana/grafana (ports, volumes, env, restart: always) +- `node-exporter` — docker: prom/node-exporter (host network, restart: always) +- `firewall-grafana` — network: allow {{inputs.grafana_port}}/tcp +- `firewall-prometheus` — network: deny {{inputs.prometheus_port}}/tcp from 0.0.0.0/0 + +--- + +### 5. Redis Cache + +**Tier**: 1 + 2 + +Redis with persistence config, memory limits, and firewall. + +**Testable in CI**: +- Tier 2: container apply — Docker resource for Redis container, config file, firewall + +**Recipe inputs**: +| Input | Type | Default | Description | +|-------|------|---------|-------------| +| `port` | int | `6379` | Redis listen port | +| `maxmemory` | string | `256mb` | Memory limit | +| `maxmemory_policy` | enum | `allkeys-lru` | Eviction policy | +| `appendonly` | bool | `true` | AOF persistence | + +**Resources** (4): +- `redis-data` — directory: `/var/lib/redis` +- `redis-config` — file: `/etc/redis/redis.conf` +- `redis` — docker: redis:7-alpine (ports, volumes, command, restart: always) +- `firewall-redis` — network: deny {{inputs.port}}/tcp from 0.0.0.0/0 + +--- + +### 6. CI Runner (GitHub Actions Self-Hosted) + +**Tier**: 1 + 3 (validated in CI, converged on real runner hardware) + +Provision a self-hosted GitHub Actions runner with Docker, build tools, and Rust toolchain. This is the recipe that bootstraps the Intel runner itself. + +**Testable in CI**: +- Tier 1: validate, plan, codegen review +- Tier 3: apply on Intel runner — installs runner agent, Docker, Rust, registers with GitHub + +**Recipe inputs**: +| Input | Type | Default | Description | +|-------|------|---------|-------------| +| `runner_name` | string | required | GitHub runner name | +| `runner_labels` | string | `self-hosted,linux,x86_64` | Comma-separated labels | +| `github_org` | string | required | GitHub org or user | +| `github_repo` | string | `""` | Specific repo (empty = org-level) | +| `runner_user` | string | `runner` | Unix user for the runner | +| `work_dir` | path | `/opt/actions-runner/_work` | Runner work directory | +| `docker_compose` | bool | `true` | Install docker-compose | + +**Resources** (9): +- `runner-user` — user: system account for runner agent +- `runner-deps` — package (apt): curl, jq, git, build-essential, pkg-config, libssl-dev +- `docker-pkg` — package (apt): docker-ce, docker-ce-cli, containerd.io +- `docker-group` — user config: add runner_user to docker group +- `docker-service` — service: docker (running, enabled) +- `runner-dir` — directory: `/opt/actions-runner` +- `runner-install` — file: install script (download + configure actions-runner) +- `runner-service` — service: actions.runner (running, enabled) +- `firewall-outbound` — network: allow 443/tcp (GitHub API) + +--- + +### 7. ROCm GPU Workstation + +**Tier**: 1 + 3 (validated in CI, converged on Intel runner) + +AMD GPU development environment: ROCm userspace, kernel driver verification, HIP toolkit. + +**Testable in CI**: +- Tier 1: validate, plan, verify check_script/apply_script codegen +- Tier 3: apply on Intel runner — verify amdgpu driver, install rocminfo, verify GPU device access + +**Recipe inputs**: +| Input | Type | Default | Description | +|-------|------|---------|-------------| +| `gpu_name` | string | `gpu0` | GPU resource name | +| `driver_version` | string | `""` | Expected driver version or `kernel-*` for in-tree | +| `rocm_version` | string | `""` | ROCm version to install (empty = latest) | +| `install_hip` | bool | `false` | Install HIP development toolkit | +| `user` | string | required | User to add to video/render groups | + +**Resources** (5): +- `amd-gpu` — gpu: backend=rocm, driver_version, rocm_version +- `gpu-user-groups` — user: add {{inputs.user}} to video, render groups +- `rocm-tools` — package (apt): rocminfo, rocm-smi-lib +- `hip-dev` — package (apt): hip-dev (when install_hip=true) +- `gpu-health-cron` — cron: `rocm-smi --showtemp` every 6h to syslog + +--- + +### 8. NVIDIA GPU + CUDA Server + +**Tier**: 1 + 3 (needs NVIDIA hardware — not available on Intel runner) + +NVIDIA GPU with CUDA toolkit, persistence mode, compute mode lockdown. + +**Testable in CI**: +- Tier 1: validate, plan, codegen review +- Tier 3: requires a runner with NVIDIA GPU (blocked: FJ-1127) + +**Recipe inputs**: +| Input | Type | Default | Description | +|-------|------|---------|-------------| +| `driver_version` | string | `550` | NVIDIA driver version | +| `cuda_version` | string | `12.4` | CUDA toolkit version | +| `compute_mode` | enum | `default` | `default` / `exclusive_process` / `prohibited` | +| `persistence_mode` | bool | `true` | Enable nvidia-persistenced | +| `gpu_devices` | string | `all` | GPU indices or "all" | + +**Resources** (4): +- `nvidia-gpu` — gpu: backend=nvidia, driver, cuda, compute_mode, persistence +- `nvidia-container` — package (apt): nvidia-container-toolkit (for Docker GPU passthrough) +- `gpu-health-cron` — cron: `nvidia-smi --query-gpu=...` every 6h +- `firewall-deny-gpu-api` — network: deny 8080/tcp from 0.0.0.0/0 + +--- + +### 9. Secure Baseline + +**Tier**: 1 + 2 + +Minimal security hardening: SSH config, firewall defaults, fail2ban, automatic updates. + +**Testable in CI**: +- Tier 2: container apply — SSH config deployed, UFW rules applied, fail2ban config landed + +**Recipe inputs**: +| Input | Type | Default | Description | +|-------|------|---------|-------------| +| `ssh_port` | int | `22` | SSH listen port | +| `allowed_ssh_cidr` | string | `0.0.0.0/0` | Allowed SSH source CIDR | +| `auto_updates` | bool | `true` | Enable unattended-upgrades | +| `fail2ban_maxretry` | int | `5` | Login attempts before ban | + +**Resources** (7): +- `security-pkgs` — package (apt): fail2ban, unattended-upgrades, ufw +- `sshd-config` — file: `/etc/ssh/sshd_config` (no root login, key-only auth, custom port) +- `sshd-service` — service: sshd (running, enabled, restart_on: sshd-config) +- `fail2ban-config` — file: `/etc/fail2ban/jail.local` +- `fail2ban-service` — service: fail2ban (running, enabled, restart_on: fail2ban-config) +- `firewall-ssh` — network: allow {{inputs.ssh_port}}/tcp from {{inputs.allowed_ssh_cidr}} +- `firewall-default-deny` — network: deny 0/tcp from 0.0.0.0/0 + +--- + +### 10. NFS File Server + +**Tier**: 1 + 3 (mount resources need real kernel) + +NFS exports from a file server + NFS mounts on client machines. + +**Testable in CI**: +- Tier 1: validate, plan, codegen +- Tier 3: apply on Intel runner (both NFS server exports and client mounts) + +**Recipe inputs** (server): +| Input | Type | Default | Description | +|-------|------|---------|-------------| +| `export_path` | path | required | Directory to export | +| `allowed_network` | string | `192.168.0.0/24` | NFS client CIDR | +| `options` | string | `rw,sync,no_subtree_check` | Export options | + +**Recipe inputs** (client): +| Input | Type | Default | Description | +|-------|------|---------|-------------| +| `server_addr` | string | required | NFS server IP/hostname | +| `remote_path` | path | required | Server export path | +| `mount_point` | path | required | Local mount point | + +**Resources** (server — 4): +- `nfs-pkg` — package (apt): nfs-kernel-server +- `export-dir` — directory: {{inputs.export_path}} +- `exports-config` — file: `/etc/exports` +- `nfs-service` — service: nfs-kernel-server (running, enabled, restart_on: exports-config) + +**Resources** (client — 3): +- `nfs-client-pkg` — package (apt): nfs-common +- `mount-point` — directory: {{inputs.mount_point}} +- `nfs-mount` — mount: {{inputs.server_addr}}:{{inputs.remote_path}} on {{inputs.mount_point}} + +--- + +## CI Integration Plan + +CI is split across two workflows. The self-hosted runner workflow is the primary qualification pipeline. + +### `ci.yml` — Code Quality (GitHub Actions `ubuntu-latest`) + +Runs on every push and PR. Guards code quality, not recipe qualification. + +| Job | What it does | +|-----|-------------| +| `check` | `cargo fmt --check` + `cargo clippy --workspace --all-targets -- -D warnings` | +| `test` | `cargo test --workspace` | +| `coverage` | `cargo install cargo-llvm-cov` + `cargo llvm-cov` >= 95% threshold | +| `score` | `cargo run --example score_all` — static-only scoring (no forjar binary) | +| `docs` | `./scripts/check-docs-consistency.sh` | + +### `qualify-runner.yml` — Recipe Qualification (Self-Hosted Intel) + +The primary pipeline. Runs on push to `recipes/**` or manual dispatch. + +```yaml +name: Qualify on Runner +on: + workflow_dispatch: + inputs: + recipe: + description: 'Recipe number (or "all")' + default: 'all' + push: + paths: ['recipes/**', 'configs/**'] + +jobs: + qualify: + runs-on: self-hosted + steps: + - uses: actions/checkout@v4 + + - name: Install forjar (latest from source) + run: cargo install --path ../forjar --locked + + - name: Qualify recipes + run: | + if [ "${{ inputs.recipe }}" = "all" ]; then + ./scripts/qualify-all.sh + else + make qualify-recipe RECIPE=${{ inputs.recipe }} + fi + + - name: Update qualification dashboard + run: make update-qualifications + + - name: Commit results + run: | + git add docs/certifications/recipes.csv README.md + git diff --cached --quiet || git commit -m "qual: update recipe status" +``` + +### `book.yml` — Documentation (GitHub Actions `ubuntu-latest`) + +Builds and deploys mdBook on push to `docs/book/**`. + +--- + +## Naming Conventions + +| Pattern | Purpose | Example | +|---------|---------|---------| +| `recipes/NN-.yaml` | Recipe config (numbered) | `recipes/01-developer-workstation.yaml` | +| `configs/container-NN-.yaml` | Container-testable variant (Tier 2) | `configs/container-01-devbox.yaml` | + +--- + +## Implementation Priority + +All 9 phases are **complete**. 57 of 62 recipes are qualified at A-grade. 5 recipes are blocked on hardware requirements (GPU, NFS, secrets infrastructure, GPG keys). + +### Phase Summary + +| Phase | Recipes | Status | +|-------|---------|--------| +| 1: Core Infrastructure | #1-6, #9 | **Complete** — all A-grade | +| 2: GPU & Hardware | #7, #8, #10 | **Blocked** — #7 FJ-1126 ROCm, #8 FJ-1127 NVIDIA, #10 FJ-1128 NFS | +| 3: Nix-Style | #11-15 | **Complete** — all A-grade | +| 4: Rust Build Pipelines | #16-21 | **Complete** — all A-grade | +| 5: Package Distribution | #25-29 | **Complete** — #25 blocked (FJ-1130 GPG), rest A-grade | +| 6: Operational Maturity | #22-24 | **Complete** — #22 blocked (FJ-1129 secrets), rest A-grade | +| 7: Linux Administration | #40-49 | **Complete** — all A-grade | +| 8: OpenTofu Patterns | #30-39 | **Complete** — all A-grade | +| 9: Resilience & Composition | #50-62 | **Complete** — all A-grade | + +### Blocked Recipes + +| # | Recipe | Blocker | Requirement | +|---|--------|---------|-------------| +| 7 | ROCm GPU | FJ-1126 | AMD GPU with ROCm driver | +| 8 | NVIDIA GPU | FJ-1127 | NVIDIA GPU with CUDA driver | +| 10 | NFS Server | FJ-1128 | Bare-metal with NFS kernel modules | +| 22 | Secrets Lifecycle | FJ-1129 | age encryption infrastructure | +| 25 | Third-Party APT Repo | FJ-1130 | GPG signing key setup | + +--- + +## Nix-Style Recipes + +Declarative, reproducible, isolated environments using forjar's kernel primitives instead of the Nix store. + +### How It Maps + +| Nix Concept | Forjar Equivalent | Mechanism | +|---|---|---| +| `nix develop` / `nix-shell` | Pepita transport machine | Kernel namespaces + overlayfs | +| `/nix/store` layers | `overlay_lower` / `overlay_upper` | OverlayFS copy-on-write | +| `flake.lock` | `state.lock.yaml` | BLAKE3 content-addressed hashes | +| NixOS modules | Recipes with typed inputs | YAML + `{{inputs.*}}` templates | +| `nix-collect-garbage` | `state: absent` + destroy overlay | Remove upper layer, done | +| Rollback / generations | State lock history + git | `git log` on forjar configs | +| Home Manager | File resources | Already working (dotfiles, configs) | +| `nix build` (hermetic) | Pepita ephemeral sandbox | Overlay + netns isolation + cgroups | +| `nix profile install` | Package resources with versions | apt/cargo with version pinning | + +### What Forjar Adds Beyond Nix + +- **Multi-machine** — `nix develop` is local-only; forjar orchestrates fleets +- **Drift detection** — Nix has no runtime drift detection; forjar watches for unauthorized changes +- **GPU-aware** — Nix has poor GPU/driver support; forjar has first-class GPU resources +- **No new package manager** — uses apt/cargo/uv, not a parallel universe of packages + +### What Nix Does Better (and we don't try to replicate) + +- Content-addressed per-package isolation (each package in its own `/nix/store/-name/`) +- Hermetic builds with no network access +- Atomic profile switching via symlink generations +- Massive package repository (nixpkgs) + +--- + +### 11. Dev Shell (like `nix develop`) + +**Tier**: 1 + 3 (needs real kernel namespaces + overlayfs) + +Per-project isolated development environment. The machine uses pepita transport with overlayfs — packages install into the overlay, not the host. Set `ephemeral: false` to persist across sessions (like `nix develop`), or `ephemeral: true` for throwaway shells (like `nix-shell --pure`). + +**Testable in CI**: +- Tier 1: validate config, verify plan, review codegen scripts +- Tier 3: apply on Intel runner — creates namespace, mounts overlay, installs packages into overlay, drops you into isolated shell + +**Recipe inputs**: +| Input | Type | Default | Description | +|-------|------|---------|-------------| +| `name` | string | required | Environment name (used for namespace + overlay paths) | +| `packages_apt` | string | `""` | Comma-separated apt packages | +| `packages_cargo` | string | `""` | Comma-separated cargo packages | +| `env_vars` | string | `""` | `KEY=VALUE` pairs, comma-separated | +| `memory_mb` | int | `4096` | cgroup memory limit | +| `cpus` | string | `""` | CPU affinity (e.g., `0-3`), empty = all | +| `network` | enum | `host` | `host` (shared network) or `isolated` | +| `ephemeral` | bool | `false` | Destroy after apply | +| `shell_hook` | string | `""` | Command to run on shell entry (like Nix's `shellHook`) | + +**Machine config** (pepita transport): +```yaml +machines: + devshell: + hostname: "devshell-{{inputs.name}}" + addr: pepita + transport: pepita + pepita: + rootfs: / # host root as base layer + memory_mb: "{{inputs.memory_mb}}" + network: "{{inputs.network}}" + filesystem: overlay # CoW — installs don't touch host + ephemeral: "{{inputs.ephemeral}}" +``` + +**Resources** (4): +- `dev-packages-apt` — package (apt): from `packages_apt` input, installed into overlay +- `dev-packages-cargo` — package (cargo): from `packages_cargo` input +- `env-file` — file: `/etc/profile.d/devshell.sh` with env vars + shell hook +- `shell-entry` — file: `/etc/motd` with environment name + loaded packages + +**Key difference from Nix**: packages are real apt/cargo installs but isolated in the overlay. No new package format, no learning curve. Delete the overlay upper dir and you're back to clean host. + +--- + +### 12. Toolchain Pin (like `nix profile`) + +**Tier**: 1 + 2 (container apply for version verification) + +Declare exact versions of compilers and runtimes. Converge to those versions. Drift detection catches unexpected upgrades (e.g., `apt upgrade` bumps Python from 3.11 to 3.12). + +**Testable in CI**: +- Tier 1: validate, plan +- Tier 2: container apply — install pinned packages, verify versions via state query, test drift detection against version changes + +**Recipe inputs**: +| Input | Type | Default | Description | +|-------|------|---------|-------------| +| `rust_version` | string | `""` | Rust toolchain (e.g., `1.82.0`), empty = skip | +| `python_version` | string | `""` | Python version (e.g., `3.11`), empty = skip | +| `node_version` | string | `""` | Node.js major version (e.g., `20`), empty = skip | +| `go_version` | string | `""` | Go version (e.g., `1.22`), empty = skip | + +**Resources** (up to 8, conditional via `when:`): +- `rust-toolchain` — package (cargo): rustup + `rustup default {{inputs.rust_version}}` +- `rust-version-check` — file: `/etc/forjar/toolchain.d/rust` (version pin marker for drift) +- `python-pkg` — package (apt): `python{{inputs.python_version}}` +- `python-version-check` — file: `/etc/forjar/toolchain.d/python` +- `node-pkg` — package (apt): `nodejs` (via nodesource repo for version pinning) +- `node-version-check` — file: `/etc/forjar/toolchain.d/node` +- `go-pkg` — file: `/usr/local/go` (binary tarball install for exact version) +- `go-version-check` — file: `/etc/forjar/toolchain.d/go` + +**Drift detection**: The version-check files contain the expected version string. `forjar drift` hashes these files + the actual binary output of `rustc --version`, `python3 --version`, etc. via state queries. If someone runs `apt upgrade` and Python moves to 3.12, drift fires. + +--- + +### 13. Ephemeral Build Sandbox (like `nix build`) + +**Tier**: 1 + 3 (needs real overlayfs + namespaces) + +Throwaway build environment: overlay on `/`, install build deps, run build, extract artifacts, destroy. Network-isolated to prevent builds from fetching undeclared dependencies (like Nix's `--sandbox`). + +**Testable in CI**: +- Tier 1: validate, plan +- Tier 3: apply on Intel runner — full lifecycle: create overlay → install deps → build → extract → destroy + +**Recipe inputs**: +| Input | Type | Default | Description | +|-------|------|---------|-------------| +| `name` | string | required | Build name | +| `build_deps` | string | required | Comma-separated apt packages | +| `build_command` | string | required | Shell command to run | +| `artifact_paths` | string | required | Comma-separated paths to extract from overlay | +| `output_dir` | path | `/tmp/build-output` | Where to copy artifacts on the host | +| `memory_mb` | int | `8192` | Build memory limit | +| `cpuset` | string | `""` | CPU affinity | +| `network` | enum | `isolated` | `isolated` (hermetic) or `host` (can fetch) | + +**Machine config** (pepita transport, ephemeral): +```yaml +machines: + builder: + hostname: "build-{{inputs.name}}" + addr: pepita + transport: pepita + pepita: + rootfs: / + memory_mb: "{{inputs.memory_mb}}" + network: "{{inputs.network}}" + filesystem: overlay + ephemeral: true # destroy after apply +``` + +**Resources** (4): +- `build-deps` — package (apt): from `build_deps` input +- `build-run` — cron/command: execute `build_command` (one-shot via `pre_apply` hook) +- `extract-artifacts` — file: `post_apply` hook copies `artifact_paths` to host `output_dir` +- `build-manifest` — file: `/build-manifest.json` with inputs, timestamp, BLAKE3 hash of artifacts + +**Key difference from Nix**: no need for a derivation language or Nix store. It's just "spin up overlay, apt install, run command, grab files, tear down." The `ephemeral: true` flag handles cleanup automatically. + +--- + +### 14. System Profile (like NixOS `configuration.nix`) + +**Tier**: 1 + 3 + +The full-machine declarative profile. Composes Dev Shell + Toolchain Pin + infrastructure recipes into one config. This is what `infra/forjar.yaml` already does — formalized as a composable recipe that other teams can fork. + +**Testable in CI**: +- Tier 1: validate, plan, dependency graph analysis +- Tier 3: apply on Intel runner — full machine convergence + +**Recipe inputs**: +| Input | Type | Default | Description | +|-------|------|---------|-------------| +| `user` | string | required | Primary user | +| `home` | path | `/home/{{inputs.user}}` | Home directory | +| `role` | enum | `dev` | `dev` / `gpu-compute` / `ci-runner` / `server` | +| `editor` | enum | `vim` | `vim` / `nano` / `emacs` | +| `shell_framework` | enum | `pzsh` | `pzsh` / `oh-my-zsh` / `none` | +| `cargo_tools` | string | `ripgrep,fd-find,bat,hyperfine` | Cargo-installed CLI tools | +| `gpu_backend` | enum | `none` | `none` / `nvidia` / `rocm` / `cpu` | +| `monitoring` | bool | `true` | Enable Prometheus + node_exporter | + +**Composes these recipes** (via `type: recipe`): +- Developer Workstation (recipe #1) — always +- Secure Baseline (recipe #9) — always +- Toolchain Pin (recipe #12) — always +- ROCm GPU Workstation (recipe #7) — when `gpu_backend=rocm` +- NVIDIA GPU + CUDA (recipe #8) — when `gpu_backend=nvidia` +- Monitoring Stack (recipe #4) — when `monitoring=true` + +**Resources** (composition, ~15-30 depending on role): +```yaml +resources: + base: + type: recipe + machine: target + recipe: recipes/devbox.yaml + inputs: + user: "{{inputs.user}}" + editor: "{{inputs.editor}}" + + security: + type: recipe + machine: target + recipe: recipes/secure-baseline.yaml + depends_on: [base] + + toolchain: + type: recipe + machine: target + recipe: recipes/toolchain-pin.yaml + inputs: + rust_version: "1.82.0" + depends_on: [base] + + gpu: + type: recipe + machine: target + recipe: recipes/rocm-gpu.yaml + when: "{{inputs.gpu_backend}} == rocm" + depends_on: [base] +``` + +This is the Nix equivalent of importing modules in `configuration.nix` — each recipe is a module with typed inputs, and the system profile composes them. + +--- + +### 15. Multi-Project Workspace (like Nix flake workspaces) + +**Tier**: 1 + 3 + +Multiple dev shells sharing a common base overlay but with project-specific upper layers. Like `nix develop .#project-a` vs `.#project-b` — same Rust toolchain, different project deps. + +**Testable in CI**: +- Tier 1: validate all workspace configs +- Tier 3: apply on Intel runner — verify shared base layer, independent upper layers + +**Recipe inputs**: +| Input | Type | Default | Description | +|-------|------|---------|-------------| +| `workspace_name` | string | required | Workspace name | +| `base_packages` | string | `build-essential,curl,git` | Shared base layer packages | +| `projects` | string | required | Comma-separated project names | + +**Architecture**: +``` +overlay_lower: / ← host OS (read-only) + └─ overlay "base": + upper: /var/forjar/ws/base/ ← shared packages (rust, python, etc.) + └─ overlay "project-a": + upper: /var/forjar/ws/project-a/ ← project-specific deps + └─ overlay "project-b": + upper: /var/forjar/ws/project-b/ ← different deps +``` + +Each project gets its own pepita machine with overlayfs stacked on the shared base: + +```yaml +machines: + base: + hostname: "ws-{{inputs.workspace_name}}-base" + addr: pepita + transport: pepita + pepita: + rootfs: / + filesystem: overlay + ephemeral: false + + project-a: + hostname: "ws-{{inputs.workspace_name}}-project-a" + addr: pepita + transport: pepita + pepita: + rootfs: /var/forjar/ws/base/merged # stacks on base overlay + filesystem: overlay + ephemeral: false +``` + +**Resources per project** (3): +- `project-deps` — package: project-specific apt/cargo packages +- `project-env` — file: `/etc/profile.d/project.sh` with project env vars +- `project-config` — file: project-specific tool configs + +**Key advantage over Nix**: multi-machine. The workspace can span multiple hosts — e.g., a GPU project gets its dev shell on the Intel runner, a web project gets its dev shell on a cloud VM, both share the same forjar config. + +--- + +## Nix-Style Recipe Testability Summary + +| # | Recipe | Tier | GitHub Actions | Intel Runner | +|---|--------|------|----------------|--------------| +| 11 | Dev Shell | 1+3 | validate + plan | full apply (namespace + overlay) | +| 12 | Toolchain Pin | 1+2 | validate + container apply | full apply | +| 13 | Build Sandbox | 1+3 | validate + plan | full lifecycle (create → build → extract → destroy) | +| 14 | System Profile | 1+3 | validate + plan | full machine convergence | +| 15 | Multi-Project Workspace | 1+3 | validate + plan | stacked overlays, shared base | + +**Toolchain Pin is the only Nix-style recipe fully testable in GitHub Actions** (Tier 2) because it just uses apt/cargo packages — no kernel namespace or overlayfs needed. The rest require Tier 3 (Intel runner) for the pepita transport. + +--- + +## Rust Build Recipes + +Declarative Rust compilation pipelines — from `cargo install` one-liners to multi-stage static binary builds producing minimal deploy artifacts. + +### Current State + +Forjar's cargo provider (`provider: cargo`) does `cargo install --force ''`. This is fine for dev tooling but insufficient for production builds: + +- No control over release profile, target triple, or RUSTFLAGS +- No musl static linking +- No binary size optimization beyond what Cargo.toml specifies +- No multi-stage: build deps stay on the machine forever +- No cross-compilation +- No artifact extraction or BLAKE3 verification + +The sovereign AI stack binaries on the Intel runner today: + +| Binary | Size | Linked | Notes | +|--------|------|--------|-------| +| `forjar` | 12 MB | dynamic (libssl, libc) | `lto=true, strip=true, codegen-units=1` | +| `pmat` | 39 MB | dynamic | Includes sqlite + full index engine | +| `batuta` | 11 MB | dynamic | Mutation testing engine | +| `pzsh` | 961 KB | dynamic | Already tiny — shell framework | + +Forjar has no openssl/native-tls dependency (uses `age` crate with pure Rust crypto), so musl static builds should work cleanly for fully self-contained binaries. + +### Size Reduction Techniques + +| Technique | Mechanism | Typical Savings | +|-----------|-----------|-----------------| +| `--release` | Optimized codegen | 5-10x vs debug | +| `lto = true` | Link-time optimization across crates | 10-30% | +| `codegen-units = 1` | Better LTO (single codegen unit) | 5-10% | +| `strip = true` | Remove debug symbols | 20-40% | +| `opt-level = "z"` | Optimize for size over speed | 10-20% (slower runtime) | +| `panic = "abort"` | Remove unwinding tables | 5-10% | +| musl static | Eliminate libc/libssl dynamic deps | +size but fully portable | +| `upx --best` | Binary compression | 50-70% (slower startup) | +| Multi-stage | Build deps don't ship | N/A (deployment concern) | + +--- + +### 16. Rust Release Build + +**Tier**: 1 + 2 (container apply) + 3 (Intel runner for real builds) + +Compile a Rust crate with production release settings. Generates a `pre_apply` hook that runs the actual cargo build, then deploys the binary to the target path. + +**Testable in CI**: +- Tier 1: validate, plan, codegen review +- Tier 2: container apply — install Rust toolchain, clone repo, build release binary, verify binary exists at target path +- Tier 3: Intel runner — real build with all optimizations, verify binary size and functionality + +**Recipe inputs**: +| Input | Type | Default | Description | +|-------|------|---------|-------------| +| `crate_name` | string | required | Crate name or path | +| `source` | enum | `crates-io` | `crates-io` / `git` / `path` | +| `source_url` | string | `""` | Git URL or local path (when source != crates-io) | +| `version` | string | `""` | Crate version (crates-io) or git ref | +| `target_path` | path | `/usr/local/bin/{{inputs.crate_name}}` | Where to install the binary | +| `opt_level` | enum | `3` | `3` (speed) / `s` (size) / `z` (min size) | +| `lto` | bool | `true` | Link-time optimization | +| `strip` | bool | `true` | Strip debug symbols | +| `panic` | enum | `unwind` | `unwind` / `abort` | +| `extra_rustflags` | string | `""` | Additional RUSTFLAGS | + +**Resources** (4): +- `rust-toolchain` — package (cargo): ensure rustc/cargo present (bootstraps rustup if missing) +- `build-deps` — package (apt): build-essential, pkg-config, libssl-dev +- `binary` — file: `{{inputs.target_path}}`, `pre_apply` runs the cargo build: + ```bash + CARGO_PROFILE_RELEASE_OPT_LEVEL={{inputs.opt_level}} \ + CARGO_PROFILE_RELEASE_LTO={{inputs.lto}} \ + CARGO_PROFILE_RELEASE_STRIP={{inputs.strip}} \ + CARGO_PROFILE_RELEASE_PANIC={{inputs.panic}} \ + RUSTFLAGS="{{inputs.extra_rustflags}}" \ + cargo install --root /tmp/forjar-build --force '{{inputs.crate_name}}' + cp /tmp/forjar-build/bin/{{inputs.crate_name}} {{inputs.target_path}} + ``` +- `binary-verify` — cron: health check `{{inputs.target_path}} --version` (optional, schedule: empty = disabled) + +--- + +### 17. Static Binary Build (musl) + +**Tier**: 1 + 2 + 3 + +Fully static Linux binary via `x86_64-unknown-linux-musl`. No libc, no libssl, no dynamic deps. Copy to any Linux machine and it runs. This is the Rust equivalent of Go's static binaries. + +**Testable in CI**: +- Tier 1: validate, plan +- Tier 2: container apply — install musl toolchain, build, verify `file` reports "statically linked", verify `ldd` reports "not a dynamic executable" +- Tier 3: Intel runner — build + deploy + verify portability + +**Recipe inputs**: +| Input | Type | Default | Description | +|-------|------|---------|-------------| +| `crate_name` | string | required | Crate name | +| `source` | enum | `crates-io` | `crates-io` / `git` / `path` | +| `source_url` | string | `""` | Git URL or path | +| `version` | string | `""` | Version or git ref | +| `target_path` | path | `/usr/local/bin/{{inputs.crate_name}}` | Install destination | +| `upx` | bool | `false` | Compress with UPX after build | +| `opt_level` | enum | `z` | Default to size-optimized for static builds | +| `panic` | enum | `abort` | Default to abort for static builds (smaller) | + +**Resources** (5): +- `musl-toolchain` — package (apt): `musl-tools` +- `rust-musl-target` — file: `pre_apply` runs `rustup target add x86_64-unknown-linux-musl` +- `upx-pkg` — package (apt): `upx` (when `inputs.upx=true`) +- `build-static` — file: `{{inputs.target_path}}`, `pre_apply` runs: + ```bash + CARGO_PROFILE_RELEASE_OPT_LEVEL={{inputs.opt_level}} \ + CARGO_PROFILE_RELEASE_LTO=true \ + CARGO_PROFILE_RELEASE_STRIP=true \ + CARGO_PROFILE_RELEASE_CODEGEN_UNITS=1 \ + CARGO_PROFILE_RELEASE_PANIC={{inputs.panic}} \ + cargo install --target x86_64-unknown-linux-musl \ + --root /tmp/forjar-build --force '{{inputs.crate_name}}' + BIN=/tmp/forjar-build/bin/{{inputs.crate_name}} + {{#if inputs.upx}}upx --best --lzma "$BIN"{{/if}} + cp "$BIN" {{inputs.target_path}} + ``` +- `verify-static` — file: `post_apply` verifies static linking: + ```bash + file {{inputs.target_path}} | grep -q "statically linked" + echo "BLAKE3: $(b3sum {{inputs.target_path}} | cut -d' ' -f1)" + ls -lh {{inputs.target_path}} | awk '{print "SIZE:", $5}' + ``` + +**Expected sizes** (forjar as reference): + +| Config | Size | Notes | +|--------|------|-------| +| Dynamic release (current) | 12 MB | lto + strip | +| Static musl (opt-level=3) | ~14 MB | Slightly larger (libc inlined) | +| Static musl (opt-level=z) | ~11 MB | Size-optimized | +| Static musl + panic=abort + opt-z | ~10 MB | Minimal | +| Static musl + opt-z + UPX | ~3-4 MB | Compressed, slower startup | + +--- + +### 18. Multi-Stage Build Pipeline + +**Tier**: 1 + 3 (needs pepita overlayfs for true multi-stage) + +The Nix-style build: compile in an ephemeral overlay (build deps install into overlay, not host), extract the binary, destroy the build environment. The host machine never sees build-essential, pkg-config, or 2GB of Cargo registry — only the final binary. + +This is Docker multi-stage builds without Docker. + +**Testable in CI**: +- Tier 1: validate, plan +- Tier 3: Intel runner — full multi-stage lifecycle + +**Recipe inputs**: +| Input | Type | Default | Description | +|-------|------|---------|-------------| +| `crate_name` | string | required | Crate name | +| `source` | enum | `crates-io` | `crates-io` / `git` / `path` | +| `source_url` | string | `""` | Git URL or path | +| `version` | string | `""` | Version or git ref | +| `target_path` | path | `/usr/local/bin/{{inputs.crate_name}}` | Final binary location on host | +| `static_musl` | bool | `true` | Build static musl binary | +| `upx` | bool | `false` | UPX compress | +| `build_memory_mb` | int | `8192` | Build sandbox memory limit | +| `build_cpuset` | string | `""` | Build sandbox CPU affinity | + +**Two machines** — build sandbox (ephemeral) + deploy target: + +```yaml +machines: + # Stage 1: Build environment (ephemeral overlay) + builder: + hostname: build-{{inputs.crate_name}} + addr: pepita + transport: pepita + pepita: + rootfs: / + memory_mb: "{{inputs.build_memory_mb}}" + network: host # needs crates.io access + filesystem: overlay + ephemeral: true # destroy after build + + # Stage 2: Deploy target (real machine) + target: + hostname: "{{machine_hostname}}" + addr: "{{machine_addr}}" +``` + +**Resources — Stage 1 (builder machine)** (4): +- `build-deps` — package (apt): build-essential, pkg-config, musl-tools, libssl-dev +- `rust-toolchain` — package (cargo): rustc + cargo (+ musl target if static) +- `compile` — file: `/tmp/artifact/{{inputs.crate_name}}`, `pre_apply` runs full build +- `checksum` — file: `/tmp/artifact/{{inputs.crate_name}}.b3`, BLAKE3 hash of binary + +**Resources — Stage 2 (target machine)** (2): +- `deploy-binary` — file: `{{inputs.target_path}}`, source from builder artifact +- `verify-deploy` — file: `post_apply` verifies `{{inputs.target_path}} --version` + +**After apply**: builder overlay is destroyed (ephemeral). Target has only the binary — no build-essential, no cargo registry, no intermediate artifacts. Clean machine. + +**Multi-stage size comparison**: +``` +Builder overlay (during build): ~2-4 GB (rustc + cargo + deps + build artifacts) +Builder overlay (after apply): 0 B (ephemeral: true → destroyed) +Target machine (after deploy): ~12 MB (just the binary) +``` + +--- + +### 19. Cross-Compilation Pipeline + +**Tier**: 1 + 3 + +Build for a different architecture than the build host. Compile on the Intel runner (x86_64) for aarch64 targets (Raspberry Pi, Jetson, Graviton). Uses Rust's cross-compilation with `cross` or native `rustup target add`. + +**Testable in CI**: +- Tier 1: validate, plan, codegen review +- Tier 3: Intel runner — build for aarch64, verify with `file` command + +**Recipe inputs**: +| Input | Type | Default | Description | +|-------|------|---------|-------------| +| `crate_name` | string | required | Crate name | +| `source` | enum | `crates-io` | `crates-io` / `git` / `path` | +| `source_url` | string | `""` | Git URL or path | +| `version` | string | `""` | Version or git ref | +| `target_triple` | string | required | Rust target (e.g., `aarch64-unknown-linux-musl`) | +| `linker` | string | `""` | Cross-linker (e.g., `aarch64-linux-gnu-gcc`), empty = auto-detect | +| `target_path` | path | `/tmp/cross-build/{{inputs.crate_name}}` | Output path | +| `static_musl` | bool | `true` | Use musl for static binary | + +**Resources** (5): +- `cross-toolchain` — package (apt): `gcc-aarch64-linux-gnu` (or appropriate cross-compiler) +- `musl-cross` — package (apt): musl-tools for cross target (when static) +- `rust-target` — file: `pre_apply` runs `rustup target add {{inputs.target_triple}}` +- `cargo-config` — file: `~/.cargo/config.toml` with `[target.{{inputs.target_triple}}]` linker setting +- `build-cross` — file: `{{inputs.target_path}}`, `pre_apply` runs: + ```bash + CARGO_TARGET_{{inputs.target_triple | upper | replace("-","_")}}_LINKER={{inputs.linker}} \ + cargo install --target {{inputs.target_triple}} \ + --root /tmp/cross-out --force '{{inputs.crate_name}}' + cp /tmp/cross-out/bin/{{inputs.crate_name}} {{inputs.target_path}} + file {{inputs.target_path}} # verify: "ELF 64-bit ... aarch64" + ``` + +**Useful target triples**: + +| Target | Use Case | +|--------|----------| +| `x86_64-unknown-linux-musl` | Static x86_64 Linux (any distro) | +| `aarch64-unknown-linux-musl` | Static ARM64 Linux (Pi, Jetson, Graviton) | +| `aarch64-unknown-linux-gnu` | Dynamic ARM64 Linux | +| `x86_64-unknown-linux-gnu` | Dynamic x86_64 (default, current) | + +--- + +### 20. Sovereign Stack Release Pipeline + +**Tier**: 1 + 3 + +Build all sovereign AI stack binaries in a single config — forjar, pmat, batuta, pzsh. Multi-stage: build in ephemeral overlay, extract binaries, deploy to target, verify all tools work together. + +This is the dogfood recipe: **forjar building and deploying itself and its siblings**. + +**Testable in CI**: +- Tier 1: validate, plan +- Tier 3: Intel runner — full pipeline, end-to-end + +**Recipe inputs**: +| Input | Type | Default | Description | +|-------|------|---------|-------------| +| `install_dir` | path | `/usr/local/bin` | Binary install directory | +| `source_dir` | path | `/home/noah/src` | Root of source checkouts | +| `static_musl` | bool | `false` | Build static binaries | +| `upx` | bool | `false` | UPX compress | +| `parallel` | bool | `true` | Build crates in parallel | + +**Resources** (10): +- `build-deps` — package (apt): build-essential, pkg-config, musl-tools +- `forjar-build` — file: `{{inputs.install_dir}}/forjar`, `pre_apply` builds from `{{inputs.source_dir}}/forjar` +- `pmat-build` — file: `{{inputs.install_dir}}/pmat`, `pre_apply` builds from `{{inputs.source_dir}}/pmat` +- `batuta-build` — file: `{{inputs.install_dir}}/batuta`, `pre_apply` builds from `{{inputs.source_dir}}/batuta` +- `pzsh-build` — file: `{{inputs.install_dir}}/pzsh`, `pre_apply` builds from `{{inputs.source_dir}}/pzsh` +- `verify-forjar` — cron/file: `post_apply` runs `forjar --version` +- `verify-pmat` — cron/file: `post_apply` runs `pmat --version` +- `verify-batuta` — cron/file: `post_apply` runs `batuta --version` +- `verify-pzsh` — cron/file: `post_apply` runs `pzsh --version` +- `release-manifest` — file: `/etc/forjar/release-manifest.json` with version, BLAKE3 hash, size, build timestamp for each binary + +**Build order** (respects dependencies): +``` +build-deps + ├── forjar-build ──→ verify-forjar ─┐ + ├── pmat-build ────→ verify-pmat ───┤ + ├── batuta-build ──→ verify-batuta ──┼──→ release-manifest + └── pzsh-build ───→ verify-pzsh ────┘ +``` + +With `parallel: true`, all four builds run concurrently (forjar's multi-machine parallel execution). With `static_musl: true`, produces four fully portable binaries totaling ~60 MB (or ~15 MB with UPX). + +--- + +### 21. Compiled APR Model Binary + +**Tier**: 1 + 2 (CI with tiny model) + 3 (Intel runner with GPU inference) + +The full APR model compilation pipeline: pull a model from HuggingFace, convert to APR's native compiled format, build a self-contained inference binary that bundles model weights + runtime, then serve it. The compiled binary is a single executable — no Python, no runtime deps, no model files to manage separately. + +This is the "compile your model into a binary" pattern — like Go embedding assets, but for neural networks. + +**Pipeline stages**: +``` +HuggingFace (GGUF/safetensors) + → apr pull (download + cache) + → apr convert (to .apr format) + → apr compile (model + runtime → single binary) + → deploy binary + → apr serve (or just run the compiled binary) +``` + +**Testable in CI**: +- Tier 1: validate config, plan, codegen review +- Tier 2: container apply with a tiny model — download [SmolLM2-135M](https://huggingface.co/QuantFactory/SmolLM2-135M-GGUF) (88 MB Q2_K) or [TinyLLama-v0](https://huggingface.co/mav23/TinyLLama-v0-GGUF) (4.4 MB Q2_K), run conversion + compilation pipeline, verify binary exists and responds to `--version` +- Tier 3: Intel runner with ROCm — full GPU-accelerated inference serving with real model + +**CI model candidates** (small enough for GitHub Actions): + +| Model | Params | Q2_K Size | Use Case | +|-------|--------|-----------|----------| +| [TinyLLama-v0](https://huggingface.co/mav23/TinyLLama-v0-GGUF) | 4.6M | 4.4 MB | Smoke test — barely a model, but proves the pipeline | +| [SmolLM2-135M](https://huggingface.co/QuantFactory/SmolLM2-135M-GGUF) | 135M | 88 MB | Real model — generates coherent text, fits in CI | +| [SmolLM2-135M-Instruct](https://huggingface.co/bartowski/SmolLM2-135M-Instruct-GGUF) | 135M | 88 MB | Instruction-tuned variant, better for chat/serve testing | + +**Recipe inputs**: +| Input | Type | Default | Description | +|-------|------|---------|-------------| +| `model_source` | string | required | HuggingFace repo ID (e.g., `QuantFactory/SmolLM2-135M-GGUF`) | +| `model_file` | string | `""` | Specific GGUF file from repo (e.g., `SmolLM2-135M.Q2_K.gguf`), empty = auto-detect | +| `model_format` | enum | `gguf` | Source format: `gguf` / `safetensors` | +| `quantization` | string | `q4_k_m` | Quantization level for conversion | +| `compile_target` | enum | `binary` | `binary` (self-contained) / `library` (shared .so) | +| `serve_port` | int | `8080` | Inference HTTP port | +| `gpu_backend` | enum | `cpu` | `cpu` / `nvidia` / `rocm` | +| `gpu_device` | int | `0` | GPU device index | +| `user` | string | `apr` | Service account | +| `install_dir` | path | `/opt/apr` | Base install directory | + +**Resources** (12): + +```yaml +resources: + # ── Stage 1: Prerequisites ── + apr-user: + type: user + name: "{{inputs.user}}" + shell: /usr/sbin/nologin + home: "{{inputs.install_dir}}" + system_user: true + + apr-dirs: + type: file + state: directory + path: "{{inputs.install_dir}}" + owner: "{{inputs.user}}" + mode: "0755" + depends_on: [apr-user] + + apr-cli: + type: package + provider: cargo + packages: [aprender] + depends_on: [] + + # ── Stage 2: Download from HuggingFace ── + model-download: + type: model + name: "{{inputs.model_source}}" + source: "{{inputs.model_source}}" + format: "{{inputs.model_format}}" + quantization: "{{inputs.quantization}}" + path: "{{inputs.install_dir}}/models/source.{{inputs.model_format}}" + cache_dir: "{{inputs.install_dir}}/cache" + owner: "{{inputs.user}}" + depends_on: [apr-dirs, apr-cli] + + # ── Stage 3: Convert to APR format ── + model-convert: + type: file + path: "{{inputs.install_dir}}/models/model.apr" + owner: "{{inputs.user}}" + pre_apply: | + apr convert \ + --input "{{inputs.install_dir}}/models/source.{{inputs.model_format}}" \ + --output "{{inputs.install_dir}}/models/model.apr" \ + --quantization "{{inputs.quantization}}" \ + --format apr + echo "BLAKE3: $(b3sum {{inputs.install_dir}}/models/model.apr | cut -d' ' -f1)" + depends_on: [model-download] + + # ── Stage 4: Compile model into binary ── + model-compile: + type: file + path: "{{inputs.install_dir}}/bin/model-server" + owner: "{{inputs.user}}" + mode: "0755" + pre_apply: | + apr compile \ + --model "{{inputs.install_dir}}/models/model.apr" \ + --output "{{inputs.install_dir}}/bin/model-server" \ + --target "{{inputs.compile_target}}" \ + --backend "{{inputs.gpu_backend}}" + ls -lh "{{inputs.install_dir}}/bin/model-server" + file "{{inputs.install_dir}}/bin/model-server" + echo "BLAKE3: $(b3sum {{inputs.install_dir}}/bin/model-server | cut -d' ' -f1)" + depends_on: [model-convert] + + # ── Stage 5: GPU driver (conditional) ── + gpu-driver: + type: gpu + name: gpu0 + gpu_backend: "{{inputs.gpu_backend}}" + when: "{{inputs.gpu_backend}} != cpu" + depends_on: [] + + # ── Stage 6: Systemd service ── + model-service-unit: + type: file + path: /etc/systemd/system/apr-model.service + content: | + [Unit] + Description=APR Compiled Model Server + After=network.target + + [Service] + Type=simple + User={{inputs.user}} + ExecStart={{inputs.install_dir}}/bin/model-server \ + --port {{inputs.serve_port}} \ + --device {{inputs.gpu_device}} + Restart=on-failure + RestartSec=10 + Environment=APR_GPU_BACKEND={{inputs.gpu_backend}} + + [Install] + WantedBy=multi-user.target + owner: root + mode: "0644" + depends_on: [model-compile] + + model-service: + type: service + name: apr-model + state: running + enabled: true + restart_on: [model-compile, model-service-unit] + depends_on: [model-service-unit, gpu-driver] + + # ── Stage 7: Network + health ── + firewall-model: + type: network + port: "{{inputs.serve_port}}" + protocol: tcp + action: allow + depends_on: [model-service] + + health-check: + type: cron + name: apr-model-health + schedule: "0 */6 * * *" + command: "curl -sf http://localhost:{{inputs.serve_port}}/health || systemctl restart apr-model" + user: root + depends_on: [model-service] + + # ── Manifest ── + build-manifest: + type: file + path: "{{inputs.install_dir}}/manifest.json" + content: | + { + "model_source": "{{inputs.model_source}}", + "model_format": "{{inputs.model_format}}", + "quantization": "{{inputs.quantization}}", + "compile_target": "{{inputs.compile_target}}", + "gpu_backend": "{{inputs.gpu_backend}}", + "binary_path": "{{inputs.install_dir}}/bin/model-server" + } + owner: "{{inputs.user}}" + mode: "0644" + depends_on: [model-compile] +``` + +**DAG execution order**: +``` +apr-user → apr-dirs ─┐ +apr-cli ─────────────┼→ model-download → model-convert → model-compile ─┬→ model-service-unit → model-service → firewall-model +gpu-driver ──────────┼──────────────────────────────────────────────────┘ → health-check + └→ build-manifest +``` + +**Container-testable variant** (Tier 2 — CI with tiny model): + +```yaml +# cookbook-apr-compile-container.yaml +version: "1.0" +name: apr-compile-smoke-test + +machines: + target: + hostname: target + addr: localhost + transport: container + container: + image: forjar-test-target + name: forjar-apr-compile + +resources: + # Use TinyLLama-v0 (4.4 MB) for CI smoke test + apr-compile-test: + type: recipe + machine: target + recipe: recipes/apr-compile.yaml + inputs: + model_source: "mav23/TinyLLama-v0-GGUF" + model_file: "TinyLLama-v0.Q2_K.gguf" + model_format: gguf + quantization: q2_k + gpu_backend: cpu + compile_target: binary + serve_port: 8080 + user: root +``` + +**Intel runner variant** (Tier 3 — real GPU): + +```yaml +# cookbook-apr-compile-rocm.yaml +version: "1.0" +name: apr-compile-rocm + +machines: + intel: + hostname: intel + addr: intel + +resources: + apr-compile-gpu: + type: recipe + machine: intel + recipe: recipes/apr-compile.yaml + inputs: + model_source: "QuantFactory/SmolLM2-135M-GGUF" + model_file: "SmolLM2-135M.Q4_K_M.gguf" + model_format: gguf + quantization: q4_k_m + gpu_backend: rocm + compile_target: binary + serve_port: 8080 + user: noah +``` + +**Why this matters**: The compiled binary pattern eliminates the #1 operational headache with ML deployments — managing model files separately from the serving runtime. A single `scp model-server target:/usr/local/bin/` deploys everything. Drift detection watches the binary hash, not a sprawl of model shards. Rollback is `git revert` on the forjar config + re-apply. + +--- + +### Rust Build Recipe Testability Summary + +| # | Recipe | Tier | GitHub Actions | Intel Runner | +|---|--------|------|----------------|--------------| +| 16 | Rust Release Build | 1+2+3 | validate + container build | real optimized build | +| 17 | Static Binary (musl) | 1+2+3 | validate + container musl build | real static build + size verification | +| 18 | Multi-Stage Pipeline | 1+2 | validate + container build | two-machine build → deploy | +| 19 | Cross-Compilation | 1+3 | validate + plan | x86_64 → aarch64 cross build | +| 20 | Sovereign Stack Release | 1+3 | validate + plan | full stack build + deploy + verify | +| 21 | Compiled APR Model | 1+2+3 | validate + container build w/ 4.4 MB tiny model | ROCm GPU inference on Intel runner | + +**Recipes 16, 17, 18, and 21 are fully testable in GitHub Actions** (Tier 2) using the container transport. Recipe 21 uses [TinyLLama-v0](https://huggingface.co/mav23/TinyLLama-v0-GGUF) (4.4 MB Q2_K) for CI smoke testing — small enough to download and compile in seconds, but exercises the full pipeline. + +--- + +## Secrets & TLS Lifecycle Recipes + +### 22. Secrets Lifecycle (Age Encryption) + +**Tier**: 1 + 2 (full container apply with encrypted secrets) + +End-to-end secret management: key generation, encryption, deployment, rotation, and emergency revocation. Forjar already supports `ENC[age,...]` markers (FJ-200) and secret rotation (FJ-201) — this recipe formalizes the full lifecycle into a testable, repeatable pattern. + +**Testable in CI**: +- Tier 1: validate, plan +- Tier 2: container apply — generate age keypair, encrypt test secrets, deploy config files with `ENC[age,...]` markers, verify decryption at apply time, rotate secrets, verify old secrets are replaced + +**Lifecycle stages**: +``` +keygen → encrypt → deploy → verify → rotate → revoke + │ │ │ │ │ │ + │ │ │ │ │ └─ Emergency: re-encrypt all with new key, + │ │ │ │ │ remove old identity, re-apply + │ │ │ │ └─ Periodic: re-encrypt changed secrets, + │ │ │ │ re-apply, verify no plaintext in state + │ │ │ └─ forjar drift: detect if decrypted file was tampered + │ │ └─ forjar apply: ENC[age,...] → plaintext at deploy time + │ └─ forjar secrets encrypt "" -r + └─ forjar secrets keygen > identity.txt +``` + +**Recipe inputs**: +| Input | Type | Default | Description | +|-------|------|---------|-------------| +| `app_name` | string | required | Application name | +| `identity_path` | path | `~/.config/forjar/identity.txt` | Age identity (private key) file | +| `recipient` | string | required | Age public key for encryption | +| `secrets` | string | required | Comma-separated secret names (e.g., `api_key,db_password,jwt_secret`) | +| `config_dir` | path | `/etc/{{inputs.app_name}}` | Config file directory | +| `rotation_schedule` | string | `0 0 1 * *` | Cron schedule for rotation reminders (monthly default) | + +**Resources** (7): +- `secrets-dir` — directory: `{{inputs.config_dir}}` (mode 0700) +- `identity-check` — file: `pre_apply` verifies identity file exists and is readable +- `app-config` — file: `{{inputs.config_dir}}/config.env` with `ENC[age,...]` markers for each secret, mode 0600 +- `db-credentials` — file: `{{inputs.config_dir}}/db.env` with `ENC[age,...]` database credentials, mode 0600 +- `secret-audit-log` — file: `{{inputs.config_dir}}/audit.log`, `post_apply` appends rotation timestamp +- `rotation-reminder` — cron: reminder to rotate secrets on schedule +- `plaintext-guard` — file: `post_apply` verifies no plaintext secrets appear in state lock file: + ```bash + # Verify: state lock must NOT contain decrypted secret values + grep -r "sk-\|password\|secret" /tmp/state/*/state.lock.yaml && \ + { echo "FAIL: plaintext secret in state lock"; exit 1; } || true + ``` + +**Container-testable variant**: +```yaml +# cookbook-secrets-container.yaml +version: "1.0" +name: cookbook-secrets-test + +machines: + target: + hostname: target + addr: container + transport: container + container: + image: forjar-test-target + name: forjar-cookbook-secrets + +resources: + secrets-lifecycle: + type: recipe + machine: target + recipe: recipes/secrets-lifecycle.yaml + inputs: + app_name: test-app + recipient: "age1ql3z7hjy54pw3hyww5ayyfg7zqgvc7w3j2elw8zmrj2kg5sfn9aqmcac8p" + secrets: "api_key,db_password" +``` + +**Security invariants** (verified in CI): +1. No plaintext secrets in `state.lock.yaml` — only BLAKE3 hashes of deployed files +2. Identity file never copied to target machine — decryption happens locally before deploy +3. `mode: 0600` on all secret-containing files +4. Drift detection fires if secret files are modified outside forjar + +--- + +### 23. TLS Certificate Lifecycle + +**Tier**: 1 + 2 (container apply for config/directory structure) + 3 (Intel runner for real ACME) + +TLS certificate management: self-signed cert generation for dev/test, ACME/Let's Encrypt for production, automated renewal via cron, expiry monitoring, and emergency re-issuance. + +**Testable in CI**: +- Tier 1: validate, plan +- Tier 2: container apply — generate self-signed cert via openssl, deploy to correct paths, verify permissions, test renewal script exists, verify nginx config references correct cert paths +- Tier 3: Intel runner — real ACME challenge against staging Let's Encrypt (if domain available) + +**Recipe inputs**: +| Input | Type | Default | Description | +|-------|------|---------|-------------| +| `domain` | string | required | Primary domain | +| `alt_domains` | string | `""` | Comma-separated SANs | +| `cert_mode` | enum | `self-signed` | `self-signed` / `acme` | +| `acme_email` | string | `""` | Let's Encrypt email (required for acme mode) | +| `acme_server` | enum | `staging` | `staging` / `production` | +| `cert_dir` | path | `/etc/ssl/forjar` | Certificate directory | +| `renewal_days` | int | `30` | Days before expiry to renew | +| `key_type` | enum | `ec` | `ec` (ECDSA P-256) / `rsa` (RSA 2048) | + +**Resources** (8): +- `cert-dir` — directory: `{{inputs.cert_dir}}/{{inputs.domain}}` (mode 0755) +- `private-key-dir` — directory: `{{inputs.cert_dir}}/{{inputs.domain}}/private` (mode 0700) +- `certbot-pkg` — package (apt): certbot (when cert_mode=acme) +- `self-signed-cert` — file: `pre_apply` generates self-signed cert via openssl (when cert_mode=self-signed): + ```bash + openssl req -x509 -newkey ec -pkeyopt ec_paramgen_curve:P-256 \ + -keyout {{inputs.cert_dir}}/{{inputs.domain}}/private/key.pem \ + -out {{inputs.cert_dir}}/{{inputs.domain}}/cert.pem \ + -days 365 -nodes -subj "/CN={{inputs.domain}}" + ``` +- `acme-cert` — file: `pre_apply` runs certbot (when cert_mode=acme): + ```bash + certbot certonly --standalone --non-interactive \ + --agree-tos --email {{inputs.acme_email}} \ + --server https://acme-{{inputs.acme_server}}-v02.api.letsencrypt.org/directory \ + -d {{inputs.domain}} {{inputs.alt_domains | split(",") | map("prepend", "-d ") | join(" ")}} \ + --cert-path {{inputs.cert_dir}}/{{inputs.domain}}/cert.pem \ + --key-path {{inputs.cert_dir}}/{{inputs.domain}}/private/key.pem + ``` +- `renewal-cron` — cron: `certbot renew --deploy-hook "systemctl reload nginx"` (daily check) +- `expiry-monitor` — cron: check cert expiry, alert if < `renewal_days`: + ```bash + EXPIRY=$(openssl x509 -enddate -noout -in {{inputs.cert_dir}}/{{inputs.domain}}/cert.pem | cut -d= -f2) + DAYS_LEFT=$(( ( $(date -d "$EXPIRY" +%s) - $(date +%s) ) / 86400 )) + [ "$DAYS_LEFT" -lt {{inputs.renewal_days}} ] && \ + echo "WARN: {{inputs.domain}} cert expires in $DAYS_LEFT days" | logger -t forjar-tls + ``` +- `cert-permissions` — file: `post_apply` ensures key is 0600, cert is 0644 + +**Drift detection**: forjar hashes the cert and key files. If someone manually replaces a cert (e.g., via certbot outside forjar), drift fires. This is intentional — forjar should be the single source of truth for cert state. + +--- + +## Fleet-Scale Recipes + +### 24. Fleet Provisioning (N-Machine Scale) + +**Tier**: 1 + 2 (container with simulated fleet) + 3 (Intel runner, real multi-machine) + +All previous recipes target 1-3 machines. This recipe demonstrates forjar's `for_each:` and `count:` features at fleet scale — provisioning 10+ machines from a single config with per-machine customization. + +**Testable in CI**: +- Tier 1: validate config with 20 simulated machines, verify plan shows correct DAG +- Tier 2: container apply with `count: 5` to create 5 container "machines", deploy files + packages to each, verify per-machine state locks +- Tier 3: Intel runner — provision 3+ real machines via SSH + +**Recipe inputs**: +| Input | Type | Default | Description | +|-------|------|---------|-------------| +| `fleet_name` | string | required | Fleet name | +| `machine_count` | int | `5` | Number of machines to provision | +| `base_hostname` | string | `node` | Hostname prefix (node-0, node-1, ...) | +| `base_packages` | string | `curl,jq,htop,git` | Packages for every machine | +| `ssh_authorized_keys` | string | `""` | SSH public keys for deploy user | +| `monitoring_endpoint` | string | `""` | Prometheus push gateway URL | +| `tags` | string | `fleet` | Comma-separated resource tags | + +**Pattern A: Homogeneous fleet** — same resources on every machine using `count:`: + +```yaml +version: "1.0" +name: "fleet-{{inputs.fleet_name}}" + +machines: + # In real deployment, these would be SSH targets. + # For CI testing, use container transport with count. + fleet-node: + hostname: "{{inputs.base_hostname}}" + addr: container + transport: container + container: + image: forjar-test-target + name: "forjar-fleet-{{inputs.fleet_name}}" + +resources: + # Base packages on every node + base-packages: + type: package + machine: fleet-node + provider: apt + packages: [curl, jq, htop, git] + tags: [fleet, base] + + # Per-node identity file + node-identity: + type: file + machine: fleet-node + path: "/etc/forjar/node-identity.conf" + content: | + fleet={{inputs.fleet_name}} + node_index={{index}} + hostname={{inputs.base_hostname}}-{{index}} + count: "{{inputs.machine_count}}" + tags: [fleet, identity] + + # Per-node monitoring registration + node-exporter-config: + type: file + machine: fleet-node + path: "/etc/forjar/node-exporter-{{index}}.yaml" + content: | + scrape_configs: + - job_name: "{{inputs.base_hostname}}-{{index}}" + static_configs: + - targets: ["localhost:9100"] + labels: + fleet: "{{inputs.fleet_name}}" + node: "{{index}}" + count: "{{inputs.machine_count}}" + depends_on: [base-packages] + tags: [fleet, monitoring] + + # Fleet manifest — single file listing all nodes + fleet-manifest: + type: file + machine: fleet-node + path: "/etc/forjar/fleet-manifest.json" + content: | + { + "fleet": "{{inputs.fleet_name}}", + "node_count": {{inputs.machine_count}}, + "base_packages": "{{inputs.base_packages}}", + "provisioned_by": "forjar" + } + tags: [fleet, manifest] +``` + +**Pattern B: Heterogeneous fleet** — role-based provisioning using `for_each:`: + +```yaml +resources: + # Different vhost configs per service role + vhost-configs: + type: file + machine: fleet-node + path: "/etc/nginx/sites-available/{{item}}.conf" + content: | + server { + server_name {{item}}.{{inputs.fleet_name}}.internal; + location / { proxy_pass http://127.0.0.1:{{item | port_for_service}}; } + } + for_each: [api, web, worker, scheduler] + tags: [fleet, nginx] + + # Per-environment firewall rules + firewall-rules: + type: network + machine: fleet-node + port: "{{item}}" + protocol: tcp + action: allow + for_each: ["80", "443", "9090", "9100"] + tags: [fleet, firewall] +``` + +**Fleet-scale verification**: +- `forjar plan` outputs correct DAG with `machine_count * resources_per_machine` total resources +- `forjar apply` converges all machines in parallel (default behavior) +- `forjar status` shows per-machine convergence state +- `forjar drift` detects per-machine drift independently +- State locks: one `state.lock.yaml` per machine under `state-dir//` + +**Scale targets**: + +| Fleet Size | Plan Time | First Apply | Idempotent Apply | State Lock Size | +|-----------|-----------|-------------|------------------|-----------------| +| 5 machines | < 500ms | < 120s | < 5s | ~5 KB per machine | +| 20 machines | < 2s | < 300s | < 10s | ~5 KB per machine | +| 100 machines | < 10s | < 600s | < 30s | ~5 KB per machine | + +--- + +## Package Build & Distribution Recipes + +The missing link between "build" and "deploy at scale." Today, forjar installs packages via `apt` or `cargo install`. But production teams don't run `cargo install` on every machine — they build a `.deb` once, host it in a private repo, and `apt install` it across the fleet. These recipes formalize that pipeline. + +### Current Package Provider Landscape + +| Provider | Status | Distro Family | Check | Install | State Query | +|----------|--------|--------------|-------|---------|-------------| +| `apt` | Implemented (FJ-006) | Debian/Ubuntu | `dpkg -l` | `apt-get install` | `dpkg-query -W` | +| `cargo` | Implemented (FJ-006) | Any (Rust) | `command -v` | `cargo install` | `command -v` | +| `uv` | Implemented (FJ-006) | Any (Python) | `uv tool list` | `uv tool install` | `uv tool list` | +| `dnf` | Not implemented | RHEL/Fedora/Rocky | — | — | — | +| `apk` | Not implemented | Alpine | — | — | — | + +### The Production Distribution Pipeline + +``` +Source code + → Build (recipe #16-17: cargo build --release) + → Package (.deb or .rpm with metadata, systemd units, conffiles) + → Sign (GPG signature for authenticity) + → Upload to private repo (apt repo served by nginx) + → Fleet deploy (forjar apply with provider: apt, version pinned) + → Drift detection (BLAKE3 hash of installed package) +``` + +Every stage is a forjar resource. Every stage is testable. + +--- + +### 25. Third-Party APT Repository Management + +**Tier**: 1 + 2 (fully container-testable) + +Adding third-party apt repositories is the #1 thing every Ubuntu server needs after base install — Docker, PostgreSQL PGDG, NodeSource, GitHub CLI, HashiCorp, etc. Today this is manual shell scripting (GPG key download → keyring → sources.list.d → apt update). This recipe makes it declarative. + +**Testable in CI**: +- Tier 2: container apply — add Docker repo to container, verify sources.list.d, verify keyring, `apt-get update` succeeds, install package from new repo + +**Recipe inputs**: +| Input | Type | Default | Description | +|-------|------|---------|-------------| +| `repo_name` | string | required | Repository identifier (e.g., `docker`, `nodesource`) | +| `gpg_key_url` | string | required | URL to GPG key (ASCII-armored or binary) | +| `repo_url` | string | required | APT repository URL | +| `repo_suite` | string | required | Distribution suite (e.g., `jammy`, `stable`) | +| `repo_component` | string | `main` | Repository component | +| `arch` | string | `amd64` | Architecture filter | +| `packages` | string | `""` | Comma-separated packages to install from this repo | +| `pin_priority` | int | `0` | APT pinning priority (0 = no pin, 500 = default, 1000 = force) | + +**Resources** (5): +- `keyring-dir` — file: ensure `/etc/apt/keyrings` exists (mode 0755) +- `gpg-key` — file: `/etc/apt/keyrings/{{inputs.repo_name}}.gpg`, `pre_apply` downloads and dearmors GPG key: + ```bash + curl -fsSL '{{inputs.gpg_key_url}}' | gpg --dearmor -o /etc/apt/keyrings/{{inputs.repo_name}}.gpg + chmod 644 /etc/apt/keyrings/{{inputs.repo_name}}.gpg + ``` +- `sources-list` — file: `/etc/apt/sources.list.d/{{inputs.repo_name}}.list` + ``` + deb [arch={{inputs.arch}} signed-by=/etc/apt/keyrings/{{inputs.repo_name}}.gpg] {{inputs.repo_url}} {{inputs.repo_suite}} {{inputs.repo_component}} + ``` +- `apt-pin` — file: `/etc/apt/preferences.d/{{inputs.repo_name}}` (when pin_priority > 0): + ``` + Package: * + Pin: origin {{inputs.repo_url | hostname}} + Pin-Priority: {{inputs.pin_priority}} + ``` +- `repo-packages` — package (apt): install packages from the new repo (depends_on: sources-list) + +**Common repo presets** (can be parameterized): + +| Repo | `gpg_key_url` | `repo_url` | Packages | +|------|---------------|------------|----------| +| Docker CE | `https://download.docker.com/linux/ubuntu/gpg` | `https://download.docker.com/linux/ubuntu` | docker-ce, docker-ce-cli, containerd.io | +| PostgreSQL PGDG | `https://www.postgresql.org/media/keys/ACCC4CF8.asc` | `http://apt.postgresql.org/pub/repos/apt` | postgresql-16 | +| NodeSource 20 | `https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key` | `https://deb.nodesource.com/node_20.x` | nodejs | +| GitHub CLI | `https://cli.github.com/packages/githubcli-archive-keyring.gpg` | `https://cli.github.com/packages` | gh | +| HashiCorp | `https://apt.releases.hashicorp.com/gpg` | `https://apt.releases.hashicorp.com` | terraform, vault, consul | +| ROCm 6.3 | `https://repo.radeon.com/rocm/rocm.gpg.key` | `https://repo.radeon.com/rocm/apt/6.3` | rocminfo, rocm-smi-lib | + +**Container-testable variant**: +```yaml +# cookbook-apt-repo-container.yaml — add Docker repo in container +version: "1.0" +name: cookbook-apt-repo-test + +machines: + target: + hostname: target + addr: container + transport: container + container: + image: forjar-test-target + name: forjar-apt-repo + +resources: + docker-repo: + type: recipe + machine: target + recipe: recipes/apt-repo.yaml + inputs: + repo_name: docker + gpg_key_url: "https://download.docker.com/linux/ubuntu/gpg" + repo_url: "https://download.docker.com/linux/ubuntu" + repo_suite: jammy + repo_component: stable + packages: "docker-ce-cli" +``` + +--- + +### 26. Build .deb Package from Binary + +**Tier**: 1 + 2 + 3 + +Take a compiled binary (from recipes #16-17) and package it as a proper `.deb` with systemd unit, conffiles, pre/post install scripts, and version metadata. The output is a `.deb` file that can be installed with `dpkg -i` or hosted in a private repo. + +Uses `dpkg-deb` (available everywhere on Debian/Ubuntu) — no external tooling like fpm required. + +**Testable in CI**: +- Tier 2: container apply — build a tiny Rust binary, package as .deb, install with `dpkg -i`, verify `dpkg -l` shows it installed, verify binary runs, verify systemd unit is correct, uninstall cleanly + +**Recipe inputs**: +| Input | Type | Default | Description | +|-------|------|---------|-------------| +| `pkg_name` | string | required | Package name (e.g., `forjar`) | +| `pkg_version` | string | required | Package version (e.g., `1.0.0`) | +| `pkg_description` | string | required | One-line description | +| `pkg_maintainer` | string | required | Maintainer email | +| `binary_path` | path | required | Path to compiled binary | +| `install_path` | path | `/usr/local/bin/{{inputs.pkg_name}}` | Where binary installs | +| `systemd_unit` | string | `""` | Systemd unit file content (empty = no service) | +| `conffiles` | string | `""` | Comma-separated config file paths (preserved on upgrade) | +| `depends` | string | `""` | Comma-separated .deb dependencies | +| `output_dir` | path | `/tmp/deb-output` | Where to write the .deb file | + +**Resources** (7): +- `staging-dir` — file: create staging tree `/tmp/deb-build/{{inputs.pkg_name}}` +- `control-file` — file: `DEBIAN/control` + ``` + Package: {{inputs.pkg_name}} + Version: {{inputs.pkg_version}} + Architecture: amd64 + Maintainer: {{inputs.pkg_maintainer}} + Description: {{inputs.pkg_description}} + Depends: {{inputs.depends}} + ``` +- `conffiles-file` — file: `DEBIAN/conffiles` (when conffiles is non-empty) +- `binary-stage` — file: copy binary into staging tree at correct install path +- `systemd-stage` — file: `lib/systemd/system/{{inputs.pkg_name}}.service` (when systemd_unit non-empty) +- `build-deb` — file: `{{inputs.output_dir}}/{{inputs.pkg_name}}_{{inputs.pkg_version}}_amd64.deb`, `pre_apply`: + ```bash + dpkg-deb --build /tmp/deb-build/{{inputs.pkg_name}} \ + {{inputs.output_dir}}/{{inputs.pkg_name}}_{{inputs.pkg_version}}_amd64.deb + echo "BLAKE3: $(b3sum {{inputs.output_dir}}/*.deb | cut -d' ' -f1)" + dpkg-deb --info {{inputs.output_dir}}/*.deb + ``` +- `verify-install` — package (apt): `post_apply` installs the .deb and verifies: + ```bash + dpkg -i {{inputs.output_dir}}/{{inputs.pkg_name}}_{{inputs.pkg_version}}_amd64.deb + dpkg -l {{inputs.pkg_name}} + {{inputs.install_path}} --version + ``` + +**Output**: a `.deb` file ready for `dpkg -i`, private repo upload, or S3 distribution. + +--- + +### 27. Private APT Repository + +**Tier**: 1 + 2 + 3 + +Host your own apt repository — serve `.deb` files via nginx with GPG signing. Fleet machines point at this repo and install internal packages with standard `apt-get install`. No Artifactory, no Nexus, no SaaS — just nginx + `dpkg-scanpackages` + GPG. + +**Testable in CI**: +- Tier 2: container apply — create repo structure, add a test .deb, generate Packages index, sign with GPG, configure nginx, verify `apt-get update` from the repo works +- Tier 3: Intel runner — serve real .debs, install on same or remote machine + +**Recipe inputs**: +| Input | Type | Default | Description | +|-------|------|---------|-------------| +| `repo_name` | string | required | Repository name | +| `repo_dir` | path | `/var/lib/apt-repo/{{inputs.repo_name}}` | Package storage directory | +| `gpg_key_email` | string | required | GPG key identity for signing | +| `serve_port` | int | `8090` | Nginx listen port | +| `architectures` | string | `amd64` | Comma-separated architectures | +| `codename` | string | `jammy` | Distribution codename | +| `component` | string | `main` | Repository component | + +**Resources** (9): +- `repo-deps` — package (apt): dpkg-dev, gpg, nginx +- `repo-dir` — directory: `{{inputs.repo_dir}}/pool/{{inputs.component}}` +- `repo-conf-dir` — directory: `{{inputs.repo_dir}}/dists/{{inputs.codename}}/{{inputs.component}}/binary-{{inputs.architectures}}` +- `gpg-key` — file: `pre_apply` generates GPG key if not exists: + ```bash + gpg --list-keys '{{inputs.gpg_key_email}}' 2>/dev/null || \ + gpg --batch --gen-key < {{inputs.repo_dir}}/repo.gpg.key + ``` +- `update-script` — file: `/usr/local/bin/apt-repo-update-{{inputs.repo_name}}`, executable script: + ```bash + #!/bin/bash + set -euo pipefail + cd {{inputs.repo_dir}} + dpkg-scanpackages pool/ > dists/{{inputs.codename}}/{{inputs.component}}/binary-{{inputs.architectures}}/Packages + gzip -kf dists/{{inputs.codename}}/{{inputs.component}}/binary-{{inputs.architectures}}/Packages + apt-ftparchive release dists/{{inputs.codename}} > dists/{{inputs.codename}}/Release + gpg --batch --yes --armor --detach-sign -o dists/{{inputs.codename}}/Release.gpg dists/{{inputs.codename}}/Release + gpg --batch --yes --clearsign -o dists/{{inputs.codename}}/InRelease dists/{{inputs.codename}}/Release + echo "Repo updated: $(date -u +%Y-%m-%dT%H:%M:%SZ)" + ``` +- `nginx-site` — file: `/etc/nginx/sites-available/apt-repo-{{inputs.repo_name}}` + ```nginx + server { + listen {{inputs.serve_port}}; + root {{inputs.repo_dir}}; + autoindex on; + location / { + allow all; + } + } + ``` +- `nginx-enable` — file: symlink `sites-enabled` → `sites-available` +- `nginx-service` — service: nginx (running, enabled, restart_on: nginx-site) +- `firewall` — network: allow {{inputs.serve_port}}/tcp + +**Usage pipeline** (combines recipes #17, #26, #27): +```yaml +resources: + # Step 1: Build static binary + build: + type: recipe + machine: build-box + recipe: recipes/rust-static-build.yaml + inputs: + crate_name: forjar + source: path + source_url: /home/noah/src/forjar + + # Step 2: Package as .deb + package: + type: recipe + machine: build-box + recipe: recipes/deb-build.yaml + inputs: + pkg_name: forjar + pkg_version: "1.0.0" + pkg_description: "Declarative infrastructure convergence" + pkg_maintainer: "noah@paiml.com" + binary_path: /usr/local/bin/forjar + systemd_unit: "" + depends_on: [build] + + # Step 3: Upload to private repo + upload: + type: file + machine: repo-server + path: /var/lib/apt-repo/internal/pool/main/forjar_1.0.0_amd64.deb + source: /tmp/deb-output/forjar_1.0.0_amd64.deb + post_apply: /usr/local/bin/apt-repo-update-internal + depends_on: [package] + + # Step 4: Install from repo on fleet + deploy: + type: package + machine: [node-1, node-2, node-3] + provider: apt + packages: [forjar] + version: "1.0.0" + depends_on: [upload] +``` + +--- + +### 28. RPM Package Provider & Build + +**Tier**: 1 + 2 (with Fedora/Rocky container) + 3 + +Extends forjar to RHEL/Fedora/Rocky/Alma Linux via `provider: dnf`. Also provides an RPM build recipe parallel to the .deb recipe (#26). + +**Code change required**: Add `provider: dnf` to `src/resources/package.rs`: + +```rust +"dnf" => { + let checks: Vec = packages.iter() + .map(|p| format!( + "rpm -q '{}' >/dev/null 2>&1 && echo 'installed:{}' || echo 'missing:{}'", + p, p, p + )) + .collect(); + checks.join("\n") +} +``` + +**New test container** for CI: `tests/Dockerfile.test-target-rpm` +```dockerfile +FROM rockylinux:9 +RUN dnf install -y bash coreutils sudo curl ca-certificates \ + rpm-build gcc make && dnf clean all +CMD ["sleep", "infinity"] +``` + +**Recipe inputs** (RPM build): +| Input | Type | Default | Description | +|-------|------|---------|-------------| +| `pkg_name` | string | required | Package name | +| `pkg_version` | string | required | Version | +| `pkg_release` | string | `1` | Release number | +| `pkg_summary` | string | required | Summary line | +| `pkg_license` | string | `MIT` | License | +| `binary_path` | path | required | Compiled binary | +| `install_path` | path | `/usr/local/bin/{{inputs.pkg_name}}` | Install destination | +| `systemd_unit` | string | `""` | Systemd unit content | +| `output_dir` | path | `/tmp/rpm-output` | Output directory | + +**Resources** (6): +- `rpm-deps` — package (dnf): rpm-build, rpmdevtools +- `rpmbuild-tree` — file: `pre_apply` runs `rpmdev-setuptree` +- `spec-file` — file: `~/rpmbuild/SPECS/{{inputs.pkg_name}}.spec`: + ```spec + Name: {{inputs.pkg_name}} + Version: {{inputs.pkg_version}} + Release: {{inputs.pkg_release}}%{?dist} + Summary: {{inputs.pkg_summary}} + License: {{inputs.pkg_license}} + + %description + {{inputs.pkg_summary}} + + %install + mkdir -p %{buildroot}{{inputs.install_path | dirname}} + cp {{inputs.binary_path}} %{buildroot}{{inputs.install_path}} + + %files + {{inputs.install_path}} + ``` +- `build-rpm` — file: `pre_apply` runs `rpmbuild -bb ~/rpmbuild/SPECS/{{inputs.pkg_name}}.spec` +- `copy-output` — file: copy built RPM to `{{inputs.output_dir}}` +- `verify-rpm` — file: `post_apply` runs `rpm -qip {{inputs.output_dir}}/*.rpm` + +**Cross-format build** — combine recipes #26 and #28 to produce both `.deb` and `.rpm` from the same binary: + +```yaml +resources: + build-binary: + type: recipe + machine: build-box + recipe: recipes/rust-static-build.yaml + inputs: { crate_name: forjar, static_musl: true } + + package-deb: + type: recipe + machine: build-box + recipe: recipes/deb-build.yaml + inputs: { pkg_name: forjar, pkg_version: "1.0.0", binary_path: /usr/local/bin/forjar } + depends_on: [build-binary] + + package-rpm: + type: recipe + machine: build-box-rpm # Rocky Linux container + recipe: recipes/rpm-build.yaml + inputs: { pkg_name: forjar, pkg_version: "1.0.0", binary_path: /usr/local/bin/forjar } + depends_on: [build-binary] +``` + +--- + +### 29. Package Distribution Pipeline (Build → Sign → Repo → Fleet) + +**Tier**: 1 + 2 + 3 + +The complete end-to-end pipeline: build a Rust binary, package as `.deb`, sign, upload to private apt repo, deploy to fleet via `apt install`, verify via drift detection. This is the recipe that connects all the pieces. + +**Testable in CI**: +- Tier 2: container apply — full pipeline in a single container (build a tiny Rust crate → .deb → local repo → apt install → verify) +- Tier 3: Intel runner — build forjar itself, .deb, serve from private repo, install on same machine + +**Recipe inputs**: +| Input | Type | Default | Description | +|-------|------|---------|-------------| +| `crate_name` | string | required | Rust crate to build | +| `crate_source` | enum | `path` | `path` / `crates-io` / `git` | +| `crate_path` | string | `""` | Source path or URL | +| `pkg_version` | string | required | Package version | +| `pkg_maintainer` | string | required | Maintainer email | +| `static_musl` | bool | `true` | Build static for portability | +| `repo_server` | string | required | Machine name hosting apt repo | +| `repo_port` | int | `8090` | Repo nginx port | +| `fleet_machines` | string | required | Comma-separated target machine names | + +**DAG**: +``` +rust-static-build (#17) + → deb-build (#26) + → sign (.deb GPG signature) + → upload to private-apt-repo (#27) + → apt-repo-update (regenerate Packages index) + → fleet-deploy (provider: apt, version pinned) + → verify (dpkg -l + binary --version on each machine) + → drift-baseline (BLAKE3 hash of installed binary) +``` + +**This is forjar's answer to**: "How do you go from `git push` to running on 50 machines?" One YAML file, one `forjar apply`. + +--- + +### Package Recipe Testability Summary + +| # | Recipe | Tier | GitHub Actions | Intel Runner | +|---|--------|------|----------------|--------------| +| 25 | Third-Party APT Repo | 1+2 | validate + container apply (add Docker repo, install docker-ce-cli) | — | +| 26 | Build .deb Package | 1+2+3 | validate + container (build tiny binary → .deb → dpkg -i) | build forjar .deb | +| 27 | Private APT Repository | 1+2+3 | validate + container (repo + nginx + apt-get from local) | serve real .debs | +| 28 | RPM Provider & Build | 1+2 | validate + Rocky Linux container (dnf + rpmbuild) | — | +| 29 | Distribution Pipeline | 1+2+3 | validate + container (full pipeline end-to-end) | build forjar → .deb → repo → install | + +**All five recipes are at least Tier 2 testable.** Recipe 28 requires a Rocky Linux container image (`tests/Dockerfile.test-target-rpm`) but no special hardware. Recipe 29 is the integration test that proves all the pieces compose correctly. + +--- + +## Failure Mode Testing + +Production infrastructure fails. World-class tools handle partial failures gracefully — resume where they left off, don't corrupt state, and provide clear diagnostics. This section defines failure scenarios that every recipe must survive. + +### Failure Categories + +| Category | Example | Expected Behavior | +|----------|---------|-------------------| +| **Transient** | apt repo temporarily unreachable | Retry-safe: re-run `forjar apply`, converges without duplication | +| **Partial apply** | 3 of 5 resources succeed, resource 4 fails | State lock records 3 successes; re-apply starts from resource 4 | +| **State corruption** | `state.lock.yaml` deleted or truncated | Full re-convergence from scratch (treats all resources as missing) | +| **Transport failure** | SSH connection drops mid-apply | No half-written files; atomic script execution via pipe-to-bash | +| **Dependency failure** | Package install succeeds but service won't start | Service resource reports failure; dependent resources skipped | +| **Resource conflict** | Two resources write to same file path | Detected at validate time (plan-time conflict detection) | +| **Disk full** | Model download fills disk | Script `set -euo pipefail` catches write failure; partial file cleaned up | + +### Failure Test Recipes + +These are intentionally broken configs that verify forjar's error handling: + +#### `cookbook-failure-partial-apply.yaml` (Tier 2) + +```yaml +# Intentional failure: resource 3 of 4 fails, verify state is consistent +version: "1.0" +name: failure-partial-apply + +machines: + target: + hostname: target + addr: container + transport: container + container: + image: forjar-test-target + name: forjar-failure-test + +resources: + # Resource 1: succeeds + good-file-1: + type: file + machine: target + path: /tmp/good1.txt + content: "success" + + # Resource 2: succeeds + good-file-2: + type: file + machine: target + path: /tmp/good2.txt + content: "success" + depends_on: [good-file-1] + + # Resource 3: FAILS — installs nonexistent package + bad-package: + type: package + machine: target + provider: apt + packages: [this-package-does-not-exist-forjar-test] + depends_on: [good-file-2] + + # Resource 4: should be SKIPPED (depends on failed resource) + post-failure-file: + type: file + machine: target + path: /tmp/should-not-exist.txt + content: "should never be written" + depends_on: [bad-package] +``` + +**Verification**: +```bash +# Apply — should fail on resource 3 +forjar apply -f cookbook-failure-partial-apply.yaml --state-dir /tmp/fail --yes || true + +# Verify: resources 1 and 2 succeeded +[ -f /tmp/fail/target/state.lock.yaml ] || { echo "FAIL: no state lock"; exit 1; } +grep -q "good-file-1" /tmp/fail/target/state.lock.yaml +grep -q "good-file-2" /tmp/fail/target/state.lock.yaml + +# Verify: resource 4 was NOT applied (dependency on failed resource) +docker exec forjar-failure-test test ! -f /tmp/should-not-exist.txt + +# Recovery: fix the config (remove bad-package), re-apply +# Should converge resource 4 without re-applying 1 and 2 +``` + +#### `cookbook-failure-state-recovery.yaml` (Tier 2) + +```yaml +# Test: delete state lock mid-lifecycle, verify full re-convergence +version: "1.0" +name: failure-state-recovery + +machines: + target: + hostname: target + addr: container + transport: container + container: + image: forjar-test-target + name: forjar-state-recovery + +resources: + file-a: + type: file + machine: target + path: /tmp/recovery-a.txt + content: "file-a-content" + + file-b: + type: file + machine: target + path: /tmp/recovery-b.txt + content: "file-b-content" + depends_on: [file-a] +``` + +**Verification**: +```bash +# Apply successfully +forjar apply -f cookbook-failure-state-recovery.yaml --state-dir /tmp/sr --yes + +# Corrupt state — delete lock file +rm /tmp/sr/target/state.lock.yaml + +# Re-apply — should fully re-converge (not error out) +forjar apply -f cookbook-failure-state-recovery.yaml --state-dir /tmp/sr --yes + +# Verify: files still correct, new state lock created +[ -f /tmp/sr/target/state.lock.yaml ] +``` + +#### `cookbook-failure-idempotent-after-crash.yaml` (Tier 2) + +Tests that a recipe converges cleanly even if a previous apply was interrupted. Simulates a crash by applying a config that creates a file, then applying an updated config that changes the file content. Verifies no stale state leaks. + +### Failure Test CI Job + +```yaml +cookbook-failure: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@stable + - uses: Swatinem/rust-cache@v2 + - run: docker build -t forjar-test-target -f tests/Dockerfile.test-target . + - name: Partial apply recovery + run: | + cargo run -- apply -f examples/cookbook-failure-partial-apply.yaml \ + --state-dir /tmp/fail --yes 2>&1 || true + # Verify partial state is consistent + test -f /tmp/fail/target/state.lock.yaml + - name: State lock recovery + run: | + cargo run -- apply -f examples/cookbook-failure-state-recovery.yaml \ + --state-dir /tmp/sr --yes + rm /tmp/sr/target/state.lock.yaml + cargo run -- apply -f examples/cookbook-failure-state-recovery.yaml \ + --state-dir /tmp/sr --yes + test -f /tmp/sr/target/state.lock.yaml +``` + +--- + +## Composability Matrix + +Which recipes layer on top of which, which combos are tested, and which conflict. + +### Composition Rules + +1. **Base layer first** — Secure Baseline (#9) or Developer Workstation (#1) should be the first recipe in any stack +2. **GPU is additive** — ROCm (#7) or NVIDIA (#8) adds to any base, never conflicts +3. **Monitoring is always-on** — Monitoring Stack (#4) layers on top of anything +4. **Secrets are orthogonal** — Secrets Lifecycle (#22) applies to any recipe that deploys config files +5. **TLS wraps services** — TLS Lifecycle (#23) wraps Web Server (#2) or any service with an HTTP port +6. **Nix-style is exclusive** — Dev Shell (#11) / Build Sandbox (#13) use pepita transport, which replaces the machine's transport. Don't combine with container-transport recipes on the same machine. + +### Tested Stacks + +Compositions that are validated end-to-end (config exists + CI test): + +| # | Stack Name | Recipes | Machines | Total Resources | Tier | Grade | +|---|-----------|---------|----------|-----------------|------|-------| +| 53 | **Dev Server** | 1 + 9 + 12 | 1 | ~20 | 1+2 | A (94) | +| 54 | **Web Production** | 2 + 3 + 4 + 9 + 22 + 23 | 2-3 | ~40 | 1+2 | A (94) | +| 55 | **GPU Lab** | 1 + 7 + 4 + 9 | 1 | ~25 | 1+2 | A (94) | +| 56 | **Build Farm** | 13 + 17 + 19 | 1-3 | ~15 | 1+2 | A (94) | +| 57 | **Package Pipeline** | 17 + 26 + 27 + 25 + 24 | 2-5 | ~30 | 1+2 | A (94) | +| 58 | **ML Inference** | 7 + 21 + 4 + 9 + 22 | 1-2 | ~35 | 1+2 | A (93) | +| 59 | **CI Infrastructure** | 6 + 9 + 4 | 1 | ~25 | 1+2 | A (94) | +| 60 | **Sovereign AI** | 1 + 7 + 21 + 4 + 9 + 22 | 3 | ~60 | 1+2 | A (94) | +| 61 | **Fleet Baseline** | 9 + 24 + 4 | 5-20 | 5-20 per machine | 1+2 | A (94) | +| 62 | **Cross-Distro Release** | 17 + 26 + 28 + 29 | 2-3 | ~20 | 1+2 | A (94) | + +### Conflict Matrix + +Combinations that are invalid or require special handling: + +| Recipe A | Recipe B | Conflict | Resolution | +|----------|----------|----------|------------| +| Dev Shell (#11) | Container transport recipes | Transport collision — pepita vs container | Use separate machines | +| NVIDIA GPU (#8) | ROCm GPU (#7) | Same machine, different backends | Use `when:` conditions or separate machines | +| NFS Server (#10) | NFS Client (#10) | Same machine can't be both | Use separate machines | +| Build Sandbox (#13) | Any non-ephemeral recipe | Sandbox is ephemeral — state lost after apply | Extract artifacts before sandbox destruction | +| Self-signed TLS (#23) | ACME TLS (#23) | Same cert_dir, different cert sources | Use different `cert_mode` per domain, not per machine | + +### Composition Pattern + +System Profile (#14) is the canonical composition pattern: + +```yaml +resources: + # Layer 1: Security baseline (always) + security: + type: recipe + recipe: recipes/secure-baseline.yaml + machine: target + + # Layer 2: Developer tools (always) + devtools: + type: recipe + recipe: recipes/devbox.yaml + machine: target + depends_on: [security] + + # Layer 3: GPU (conditional) + gpu: + type: recipe + recipe: recipes/rocm-gpu.yaml + machine: target + when: "{{inputs.gpu_backend}} == rocm" + depends_on: [devtools] + + # Layer 4: Application (conditional) + model-server: + type: recipe + recipe: recipes/apr-compile.yaml + machine: target + when: "{{inputs.role}} == inference" + depends_on: [gpu] + + # Layer 5: Monitoring (always) + monitoring: + type: recipe + recipe: recipes/monitoring.yaml + machine: target + depends_on: [devtools] + + # Layer 6: Secrets (always) + secrets: + type: recipe + recipe: recipes/secrets-lifecycle.yaml + machine: target + depends_on: [security] +``` + +Layers execute in DAG order. Each layer's resources are fully independent — no resource in layer 3 can depend on a specific resource inside layer 1 (only on the layer-1 recipe as a whole). This is the forjar equivalent of NixOS module composition. + +--- + +## Container Transport Config Pattern + +For Tier 2 recipes, the container-testable variant replaces the SSH machine with a container: + +```yaml +# cookbook-webserver-container.yaml +version: "1.0" +name: cookbook-webserver-container-test + +machines: + target: + hostname: target + addr: localhost + transport: container + container: + image: forjar-test-target + name: forjar-cookbook-webserver + +resources: + # Same resources as the recipe, but machine: target + nginx-pkg: + type: package + machine: target + provider: apt + packages: [nginx] + # ... +``` + +This pattern lets every Tier 1 recipe gain a Tier 2 container-testable companion that exercises real shell execution in CI without any hardware dependencies. + +--- + +## OpenTofu-Inspired Patterns + +Patterns borrowed from OpenTofu/Terraform, adapted to forjar's sovereign (no cloud backend), bare-metal-first model. Where OpenTofu uses HCL and cloud APIs, forjar uses YAML and SSH/shell. + +### What Forjar Already Has + +| OpenTofu Feature | Forjar Equivalent | Status | +|-----------------|------------------|--------| +| Workspaces | `forjar workspace new/list/select/delete`, `-w` flag (FJ-210) | Done | +| `terraform state mv` | `forjar state-mv ` (FJ-212) | Done | +| `terraform state rm` | `forjar state-rm ` (FJ-213) | Done | +| `terraform import` | `forjar import --scan-types` (FJ-065, FJ-084) | Done | +| Data sources | `data:` block — file, command, dns types (FJ-223) | Done | +| Provisioners | Native — forjar IS the provisioner (codegen + transport) | N/A | +| Variable validation | Recipe input typing + validation | Done | +| Sensitive values | `ENC[age,...]` markers + age encryption (FJ-200) | Done | +| `terraform plan` | `forjar plan` — DAG-ordered diff | Done | +| Drift detection | `forjar drift` — BLAKE3 content hash | Done | +| Graph visualization | `forjar graph` — Mermaid + DOT output | Done | +| Outputs | `forjar output` — export values from a config | Done | + +### Adopted Patterns + +The following OpenTofu-inspired patterns are implemented as recipes #30-39, all qualified at A-grade. + +--- + +### 30. Saved Plan Files (TOCTOU Safety) + +**OpenTofu equivalent**: `tofu plan -out=plan.bin && tofu apply plan.bin` + +**The problem**: Currently `forjar apply` re-plans internally. In CI/CD, conditions may change between the plan shown in PR review and the actual apply. This is a TOCTOU (time-of-check to time-of-use) vulnerability. + +**Tier**: 1 (validate) + 2 (container apply) + +**Design**: + +```bash +# Save plan to file (CI: PR review step) +forjar plan -f config.yaml --state-dir ./state --out plan.json + +# Apply exact saved plan (CI: merge step) +forjar apply --plan plan.json --state-dir ./state --yes + +# Human-readable plan review +forjar show plan.json + +# Machine-readable plan for policy engines +forjar show --json plan.json +``` + +**Plan file format** (YAML, git-friendly): + +```yaml +# plan.json — forjar saved plan +version: "1.0" +config_hash: "b3:abc123..." # BLAKE3 of source config +state_hash: "b3:def456..." # BLAKE3 of state at plan time +created_at: "2026-03-01T12:00:00Z" +workspace: "default" +actions: + - resource: nginx-pkg + machine: web + action: create + details: + type: package + provider: apt + packages: [nginx] + - resource: nginx-conf + machine: web + action: create + depends_on: [nginx-pkg] + details: + type: file + dest: /etc/nginx/sites-available/default + content_hash: "b3:789abc..." +``` + +**Safety checks on `apply --plan`**: + +1. Config hash must match current config (fail if config was edited after plan) +2. State hash must match current state (fail if another apply ran between plan and apply) +3. Plan file signature verified (optional: age-signed) + +**Idempotency**: Strong — saved plan is a static artifact + +**Convergence budget**: < 1s for plan save, same as regular apply for apply + +**Test config** (`dogfood-saved-plan.yaml`): + +```yaml +version: "1.0" +name: saved-plan-test +machines: + target: + hostname: target + addr: localhost + transport: container + container: + image: forjar-test-target + name: forjar-saved-plan +resources: + test-file: + type: file + machine: target + dest: /tmp/plan-test.txt + content: "planned content" +``` + +**CI verification**: + +```bash +# Plan → save → apply saved → verify +forjar plan -f dogfood-saved-plan.yaml --state-dir /tmp/sp --out /tmp/plan.json +forjar apply --plan /tmp/plan.json --state-dir /tmp/sp --yes +# Tamper config and verify plan rejection +echo " extra: field" >> dogfood-saved-plan.yaml +forjar apply --plan /tmp/plan.json --state-dir /tmp/sp --yes 2>&1 | grep -q "config changed since plan" +``` + +--- + +### 31. JSON Plan Format (Machine-Readable Plans) + +**OpenTofu equivalent**: `tofu show -json plan.bin | jq .` + +**The problem**: `forjar plan` output is human-readable only. Policy engines (OPA/Rego), cost estimators, PR comment bots, and audit systems need structured data. + +**Tier**: 1 (validate JSON schema) + +**Design**: + +```bash +# JSON plan to stdout +forjar plan -f config.yaml --state-dir ./state --json + +# JSON plan to file +forjar plan -f config.yaml --state-dir ./state --json --out plan.json + +# Pipe to policy check +forjar plan -f config.yaml --state-dir ./state --json | opa eval -d policy.rego 'data.forjar.allow' +``` + +**JSON plan schema**: + +```json +{ + "format_version": "1.0", + "forjar_version": "0.9.0", + "config": { + "name": "web-stack", + "hash": "b3:abc...", + "resource_count": 5, + "machine_count": 2 + }, + "state": { + "hash": "b3:def...", + "workspace": "production" + }, + "changes": [ + { + "resource": "nginx-pkg", + "machine": "web", + "action": "create", + "type": "package", + "provider": "apt", + "before": null, + "after": { + "packages": ["nginx"], + "version": null + } + }, + { + "resource": "nginx-conf", + "machine": "web", + "action": "update", + "type": "file", + "before": { + "content_hash": "b3:old..." + }, + "after": { + "content_hash": "b3:new...", + "dest": "/etc/nginx/sites-available/default" + } + } + ], + "summary": { + "create": 3, + "update": 1, + "destroy": 0, + "unchanged": 1, + "total": 5 + } +} +``` + +**OPA policy example** (`policy.rego`): + +```rego +package forjar + +default allow = true + +# Block destroy actions in production +deny[msg] { + input.state.workspace == "production" + change := input.changes[_] + change.action == "destroy" + msg := sprintf("cannot destroy %s in production", [change.resource]) +} + +# Require version pinning for packages +deny[msg] { + change := input.changes[_] + change.type == "package" + change.after.version == null + msg := sprintf("package %s must have pinned version", [change.resource]) +} + +allow = false { count(deny) > 0 } +``` + +--- + +### 32. Check Blocks (Post-Apply Health Assertions) + +**OpenTofu equivalent**: `check "name" { data { ... } assert { ... } }` + +**The problem**: Forjar verifies that resources converged to desired state (file exists, package installed), but doesn't verify functional outcomes (the app responds, the port is open, the cert is valid). These are different questions: "is nginx installed?" vs "does the website return 200?" + +**Tier**: 2 (container transport) + +**Design**: + +```yaml +version: "1.0" +name: web-with-checks +machines: + web: + hostname: web + addr: web-server +resources: + nginx-pkg: + type: package + machine: web + packages: [nginx] + nginx-conf: + type: file + machine: web + dest: /etc/nginx/sites-available/default + content: | + server { listen 80; root /var/www/html; } + depends_on: [nginx-pkg] + nginx-svc: + type: service + machine: web + service_name: nginx + desired_state: running + depends_on: [nginx-conf] + +# Post-apply health checks — run after all resources converge +checks: + http-health: + machine: web + command: "curl -sf http://localhost/ >/dev/null" + expect_exit: 0 + description: "Nginx serves HTTP on port 80" + port-open: + machine: web + command: "ss -tlnp | grep -q ':80 '" + expect_exit: 0 + description: "Port 80 is listening" + config-valid: + machine: web + command: "nginx -t 2>&1" + expect_exit: 0 + description: "Nginx config syntax is valid" +``` + +**Behavior**: + +- `checks:` blocks run AFTER all resources converge (post-apply) +- Failures are **warnings** by default (like OpenTofu check blocks) — they don't roll back the apply +- `--checks=fail` flag makes check failures exit non-zero (CI mode) +- `forjar plan` shows checks that will run +- `forjar check -f config.yaml` runs checks without applying (validation-only mode) +- Check results appear in the provenance event log + +**CI verification**: + +```bash +forjar apply -f config.yaml --state-dir /tmp/state --yes --checks=fail +# Exit code 0 only if all resources converge AND all checks pass +``` + +**Idempotency**: N/A — checks are read-only assertions, not convergent resources + +--- + +### 33. Lifecycle Protection Rules + +**OpenTofu equivalent**: `lifecycle { prevent_destroy = true; ignore_changes = [field]; create_before_destroy = true }` + +**The problem**: Forjar treats all resources equally. A `forjar destroy` will happily delete a PostgreSQL data directory alongside a log rotation config. There's no way to mark critical resources as protected, suppress known-harmless drift, or control replacement ordering. + +**Tier**: 1 (validate) + 2 (container apply) + +**Design**: + +```yaml +version: "1.0" +name: protected-stack +resources: + postgres-data: + type: file + machine: db + dest: /var/lib/postgresql/15/main + mode: "0700" + owner: postgres + lifecycle: + prevent_destroy: true # forjar destroy will skip + warn + + nginx-conf: + type: file + machine: web + dest: /etc/nginx/nginx.conf + lifecycle: + create_before_destroy: true # write new config before removing old + + app-config: + type: file + machine: web + dest: /etc/app/config.yaml + lifecycle: + ignore_drift: [content] # external process manages content; only track existence +``` + +**Three lifecycle rules**: + +| Rule | Behavior | +|------|----------| +| `prevent_destroy: true` | `forjar destroy` skips this resource with a warning. Removing it from config triggers a plan error ("resource X is protected; remove lifecycle.prevent_destroy first"). | +| `create_before_destroy: true` | When a resource must be replaced (content changed), write the new version before removing the old. Relevant for config files with restarts — avoids a window where the config doesn't exist. | +| `ignore_drift: [fields]` | `forjar drift` reports drift on these fields as "suppressed" rather than "detected". `forjar apply` skips convergence for suppressed fields. Useful for fields managed by external systems (autoscaler-managed replica counts, externally-rotated passwords). | + +**CLI interaction**: + +```bash +# Destroy with protected resources — warns but continues for unprotected +forjar destroy -f config.yaml --state-dir ./state --yes +# Output: "SKIP: postgres-data (prevent_destroy); DESTROY: nginx-conf, app-config" + +# Override protection (explicit flag) +forjar destroy -f config.yaml --state-dir ./state --yes --force-destroy +# Output: "DESTROY: postgres-data (PROTECTION OVERRIDDEN), nginx-conf, app-config" +``` + +--- + +### 34. Moved Blocks (Declarative Refactoring) + +**OpenTofu equivalent**: `moved { from = old_name; to = new_name }` + +**The problem**: `forjar state-mv` is an imperative CLI command. If you rename a resource in YAML (e.g., `webserver` → `nginx-web`), forjar sees a destroy + create. The `state-mv` command fixes this, but it requires manual intervention and doesn't survive `forjar plan` in CI. + +**Design**: + +```yaml +version: "1.0" +name: refactored-stack + +# Declarative renames — processed before planning +moved: + - from: webserver + to: nginx-web + - from: db + to: postgres-primary + +resources: + nginx-web: # was "webserver" + type: package + machine: web + packages: [nginx] + postgres-primary: # was "db" + type: package + machine: db + packages: [postgresql-15] +``` + +**Behavior**: + +- `moved:` entries are processed during planning, before the diff +- State is updated in-place (rename key in lock file) +- Plan shows "moved" action instead of destroy + create +- After the first successful apply, the `moved:` block can be removed (it's a one-time migration) +- Circular moves are rejected at validation time +- Moving to a name that already exists in state is rejected + +**Tier**: 1 (validate moved blocks) + 2 (apply with renamed resources in container) + +--- + +### 35. Refresh-Only Mode (Drift Acceptance) + +**OpenTofu equivalent**: `tofu apply -refresh-only` + +**The problem**: `forjar drift` detects drift but the only option is `forjar apply` to reconcile. Sometimes drift is intentional (manual hotfix, autoscaler change) and you want to accept it — update state to match reality without re-converging. + +**Design**: + +```bash +# Detect drift (existing) +forjar drift -f config.yaml --state-dir ./state +# Output: "DRIFT: nginx-conf content changed (b3:old → b3:new)" + +# Accept drift — update state to match current machine state +forjar apply -f config.yaml --state-dir ./state --refresh-only --yes +# Output: "REFRESH: nginx-conf state updated (b3:old → b3:new), 0 changes applied" + +# Selective refresh — only accept drift for specific resources +forjar apply -f config.yaml --state-dir ./state --refresh-only --target nginx-conf --yes +``` + +**Behavior**: + +- Re-runs state query scripts on all (or targeted) resources +- Updates state lock hashes to match current reality +- Does NOT run converge scripts — no changes to the machine +- Event log records `refresh` event type (distinct from `apply`) +- Shows diff of what changed in state + +**Idempotency**: Strong — refresh-only is itself idempotent (running twice produces same state) + +--- + +### 36. Resource Targeting (`--target` Flag) + +**OpenTofu equivalent**: `tofu apply -target=aws_instance.app` + +**The problem**: `forjar apply` converges all resources. When debugging, recovering from partial failure, or bootstrapping, you need to apply a single resource without touching others. + +**Design**: + +```bash +# Apply single resource +forjar apply -f config.yaml --state-dir ./state --target nginx-pkg --yes + +# Apply multiple targets +forjar apply -f config.yaml --state-dir ./state --target nginx-pkg --target nginx-conf --yes + +# Plan for single resource +forjar plan -f config.yaml --state-dir ./state --target nginx-pkg + +# Destroy single resource +forjar destroy -f config.yaml --state-dir ./state --target old-config --yes +``` + +**Dependency behavior**: + +- `--target X` implicitly includes X's dependencies (upstream) +- Does NOT include X's dependents (downstream) — they may be in an inconsistent state +- Warning emitted: "Targeted apply may leave dependents in an inconsistent state" +- `--target X --include-dependents` includes downstream resources too + +**Tier**: 2 (container — apply single resource, verify others unchanged) + +--- + +### 37. Testing DSL (Native Test Runner) + +**OpenTofu equivalent**: `.tftest.hcl` files with `run` blocks, `assert` blocks, `mock_provider` + +**The problem**: Forjar recipe testing currently requires hand-written shell scripts and CI workflow YAML. There's no way to co-locate tests with recipes, run them with a single command, or mock transports. + +**Design**: + +Test files use `.forjar-test.yaml` extension, live alongside the recipe: + +```yaml +# recipes/webserver.forjar-test.yaml +name: webserver-recipe-tests +recipe: recipes/webserver.yaml + +# Test 1: Plan produces expected resources +tests: + - name: plan-produces-nginx + command: plan + inputs: + domain: test.local + port: 8080 + assert: + - resource_exists: nginx-pkg + - resource_exists: nginx-conf + - resource_count: 3 + + # Test 2: Apply converges + - name: apply-converges + command: apply + transport: container + container: + image: forjar-test-target + inputs: + domain: test.local + port: 8080 + assert: + - exit_code: 0 + - resource_state: nginx-pkg + status: present + - file_contains: + path: /etc/nginx/sites-available/default + pattern: "server_name test.local" + + # Test 3: Idempotency + - name: idempotent-reapply + command: apply + depends_on: [apply-converges] # reuses state from previous test + assert: + - changes: 0 + - exit_code: 0 + + # Test 4: Bad input rejected + - name: reject-empty-domain + command: validate + inputs: + domain: "" + port: 8080 + expect_failure: "domain must not be empty" +``` + +**CLI**: + +```bash +# Run all tests for a recipe +forjar test recipes/webserver.forjar-test.yaml + +# Run all tests in a directory +forjar test recipes/ + +# Run specific test by name +forjar test recipes/webserver.forjar-test.yaml --run plan-produces-nginx + +# JSON output for CI +forjar test recipes/ --json +``` + +**Assertions available**: + +| Assertion | What it checks | +|-----------|---------------| +| `exit_code: N` | Apply/plan exit code | +| `changes: N` | Number of resources changed | +| `resource_exists: name` | Resource appears in plan | +| `resource_count: N` | Total resources in plan | +| `resource_state: name` + `status` | Resource converged to expected state | +| `file_contains: path + pattern` | File on target contains pattern | +| `file_absent: path` | File does not exist on target | +| `command_succeeds: cmd` | Shell command exits 0 on target | +| `expect_failure: msg` | Operation fails with expected message | +| `state_hash_stable` | Second apply produces same state hash | + +--- + +### 38. State Encryption (Defense in Depth) + +**OpenTofu equivalent**: Client-side state encryption with passphrase or KMS + +**The problem**: Forjar encrypts secret values with `ENC[age,...]` markers, but the state lock file (`state.lock.yaml`) contains resource hashes, metadata, and potentially sensitive details (file paths, package names, service configurations) in plaintext. If state files are committed to a shared repo, this leaks infrastructure topology. + +**Design**: + +```bash +# Encrypt state at rest (first time — generates age key) +forjar apply -f config.yaml --state-dir ./state --encrypt-state --yes + +# State files are now age-encrypted YAML +cat ./state/web/state.lock.yaml +# age-encryption.org/v1 +# -> X25519 ... +# --- ... + +# Subsequent applies auto-decrypt/re-encrypt with the same key +forjar apply -f config.yaml --state-dir ./state --yes +# (auto-detects encrypted state, decrypts with ~/.config/forjar/state.key) + +# Decrypt for debugging +forjar state-list --state-dir ./state --machine web +# (decrypts in memory, displays plaintext, never writes plaintext to disk) +``` + +**Key management**: + +- State key stored at `~/.config/forjar/state.key` (age secret key) +- Public key stored in config or env var: `FORJAR_STATE_KEY=age1...` +- CI: state key injected via GitHub Actions secret +- Multiple recipients: `--state-recipients age1...,age1...` (team access) +- Key rotation: `forjar state-rekey --new-key age1...` (re-encrypts all state files) + +**Tier**: 1 (validate encrypted state loads) + 2 (container apply with encrypted state round-trip) + +--- + +### 39. Cross-Config Outputs (Multi-Stack Composition) + +**OpenTofu equivalent**: `terraform_remote_state` data source + output values + +**The problem**: Forjar configs are self-contained. A network config can't export a subnet CIDR for an application config to consume. Teams split infrastructure into stacks (network, database, app) but have no way to pass values between them without hardcoding. + +**Design**: + +```yaml +# network-stack.yaml +version: "1.0" +name: network-stack + +outputs: + subnet_cidr: "10.0.1.0/24" + gateway_ip: "10.0.1.1" + +resources: + network-config: + type: file + machine: router + dest: /etc/network/interfaces.d/vlan10 + content: | + auto eth0.10 + iface eth0.10 inet static + address {{outputs.gateway_ip}} + netmask 255.255.255.0 +``` + +```yaml +# app-stack.yaml +version: "1.0" +name: app-stack + +data: + network: + type: forjar-state + state_dir: ./state # reads network-stack's state + config: network-stack # config name to import from + outputs: [subnet_cidr, gateway_ip] + +resources: + app-config: + type: file + machine: app + dest: /etc/app/network.conf + content: | + SUBNET={{data.network.subnet_cidr}} + GATEWAY={{data.network.gateway_ip}} +``` + +**How it works**: + +1. `network-stack` defines `outputs:` — values exported after apply +2. Outputs are stored in state: `./state//outputs.yaml` +3. `app-stack` uses `data.type: forjar-state` to read outputs from another config's state +4. Template resolution substitutes `{{data.network.subnet_cidr}}` with the real value +5. If the upstream state doesn't exist or is missing an output, plan fails with a clear error + +**Tier**: 2 (container — two-config apply sequence, verify output propagation) + +--- + +### Implementation Phase 8: OpenTofu-Inspired Patterns + +| # | Recipe/Feature | Tier | Why | +|---|---------------|------|-----| +| 30 | Saved Plan Files | 1+2 | TOCTOU safety for CI/CD pipelines | +| 31 | JSON Plan Format | 1 | Machine-readable plans for policy engines | +| 32 | Check Blocks | 2 | Post-apply functional health assertions | +| 33 | Lifecycle Protection | 1+2 | Prevent accidental destruction of stateful resources | +| 34 | Moved Blocks | 1+2 | Safe declarative refactoring without destroy/create | +| 35 | Refresh-Only Mode | 2 | Accept intentional drift without re-converging | +| 36 | Resource Targeting | 2 | Surgical apply for debugging and recovery | +| 37 | Testing DSL | 1+2 | Co-located, declarative recipe tests | +| 38 | State Encryption | 1+2 | Defense-in-depth for state files at rest | +| 39 | Cross-Config Outputs | 2 | Multi-stack composition without hardcoding | + +### Implementation Order (Completed) + +All 10 recipes implemented and qualified at A-grade. Implementation order was: + +1. **Saved Plan Files (#30) + JSON Plan (#31)** — Foundation for CI/CD safety +2. **Check Blocks (#32)** — Validates outcomes not just convergence +3. **Lifecycle Protection (#33)** — Production safety +4. **Resource Targeting (#36)** — Operational debugging +5. **Moved Blocks (#34)** — Safe declarative refactoring +6. **Refresh-Only (#35)** — Operational flexibility +7. **Testing DSL (#37)** — Ecosystem maturity +8. **State Encryption (#38)** — Defense in depth via age +9. **Cross-Config Outputs (#39)** — Multi-stack composition + +### OpenTofu Features Deliberately NOT Adopted + +| Feature | Reason | +|---------|--------| +| Remote state backends (S3, Consul) | Violates sovereign principle — state lives in git, not cloud services | +| Provider plugin system | Forjar's resource types are compiled in; no runtime plugin loading needed for bare-metal | +| HCL language | YAML is simpler, more portable, already chosen | +| `count` meta-argument | Forjar uses `for_each:` which is strictly better (no index shifting) | +| `dynamic` blocks | Forjar's template system (`{{inputs.*}}`) handles this more simply | +| Sentinel/OPA integration | OPA can consume JSON plan (#31) directly; no SDK needed | +| Cloud provider APIs | Forjar manages machines via SSH, not cloud APIs — different paradigm | + +--- + +## Linux System Administration Recipes + +Recipes for day-to-day Linux operations — the tasks sysadmins do on every machine. These compose forjar's cron, user, service, file, network, and package resource types into reusable patterns. + +### How It Maps + +| Sysadmin Task | Forjar Resource Types | Converge Pattern | +|--------------|----------------------|-----------------| +| Cron job management | cron + file | Idempotent crontab entries with wrapper scripts | +| User/group provisioning | user + file | System accounts, SSH keys, sudoers | +| Kernel tuning | file + service | sysctl.d drop-ins + `sysctl --system` reload | +| Log management | package + file + service | logrotate configs, journald tuning | +| Time sync | package + file + service | chrony/NTP config + service lifecycle | +| DNS resolution | file + service | resolved config or /etc/resolv.conf | +| Swap management | file (script) + cron | Swapfile creation, sysctl vm.swappiness | +| Systemd units | file + service | Custom unit files + daemon-reload + enable | +| Hostname/locale | file | /etc/hostname, /etc/locale.gen, localectl | +| Resource limits | file | limits.d drop-ins, sysctl | +| Automated patching | package + cron + file | unattended-upgrades + reboot schedule | + +--- + +### 40. Scheduled Task Management (Cron Recipes) + +**Tier**: 1 + 2 + +Demonstrates every cron pattern — periodic scripts, log cleanup, health checks, backup scheduling, and cron environment management. + +**Testable in CI**: +- Tier 1: validate, plan +- Tier 2: container apply — crontab entries written, wrapper scripts deployed, permissions correct + +**Recipe inputs**: + +| Input | Type | Default | Description | +|-------|------|---------|-------------| +| `backup_dir` | path | `/var/backups` | Backup destination | +| `backup_schedule` | string | `0 2 * * *` | Backup cron schedule | +| `log_retention_days` | int | `30` | Days to keep old logs | +| `health_check_url` | string | `""` | URL to ping after backup (empty = skip) | +| `mailto` | string | `root` | Cron MAILTO for error notifications | + +**Resources** (8): + +- `backup-dir` — file (directory): `{{inputs.backup_dir}}`, mode 0750 +- `backup-script` — file: `/usr/local/bin/forjar-backup.sh` + ```bash + #!/bin/bash + set -euo pipefail + DEST="{{inputs.backup_dir}}/$(date +%Y%m%d-%H%M%S)" + mkdir -p "$DEST" + # Configurable backup commands go here + tar czf "$DEST/etc.tar.gz" /etc/ + dpkg --get-selections > "$DEST/packages.list" + {{#if inputs.health_check_url}} + curl -fsS "{{inputs.health_check_url}}" || true + {{/if}} + ``` +- `backup-cron` — cron: `{{inputs.backup_schedule}}` → `/usr/local/bin/forjar-backup.sh`, owner: root +- `log-cleanup-script` — file: `/usr/local/bin/forjar-log-cleanup.sh` + ```bash + #!/bin/bash + find /var/log -name "*.gz" -mtime +{{inputs.log_retention_days}} -delete + find /var/log -name "*.old" -mtime +{{inputs.log_retention_days}} -delete + journalctl --vacuum-time={{inputs.log_retention_days}}d 2>/dev/null || true + ``` +- `log-cleanup-cron` — cron: `0 3 * * 0` (weekly Sunday 3 AM) → log cleanup script +- `cron-env-file` — file: `/etc/cron.d/forjar-env` + ``` + SHELL=/bin/bash + PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin + MAILTO={{inputs.mailto}} + ``` +- `dead-cron-audit-script` — file: `/usr/local/bin/forjar-cron-audit.sh` + ```bash + #!/bin/bash + # Audit: find cron jobs pointing to missing scripts + for user in $(cut -d: -f1 /etc/passwd); do + crontab -l -u "$user" 2>/dev/null | grep -v '^#' | while read -r line; do + cmd=$(echo "$line" | awk '{print $6}') + [ -n "$cmd" ] && [ ! -x "$cmd" ] && echo "DEAD: user=$user cmd=$cmd" + done + done + ``` +- `dead-cron-audit` — cron: `0 6 * * 1` (weekly Monday 6 AM) → audit script + +**Idempotency**: Strong — cron entries are tagged with forjar identifiers, scripts are content-hashed + +**Convergence budget**: < 5s first apply, < 1s idempotent + +--- + +### 41. User & Group Provisioning + +**Tier**: 1 + 2 + +Comprehensive user lifecycle — system accounts, developer accounts, SSH key deployment, sudoers management, group membership. + +**Testable in CI**: +- Tier 2: container apply — users created, groups assigned, SSH keys deployed, sudoers written + +**Recipe inputs**: + +| Input | Type | Default | Description | +|-------|------|---------|-------------| +| `admin_users` | list | required | List of admin usernames | +| `service_user` | string | `"forjar"` | Service account name | +| `ssh_keys` | map | `{}` | Map of username → SSH public key | +| `sudo_nopasswd` | bool | `false` | Allow passwordless sudo for admins | +| `shell` | string | `/bin/bash` | Default shell | +| `home_base` | path | `/home` | Base path for home directories | + +**Resources** (per-user via `for_each`, plus shared): + +- `admin-group` — user: group `forjar-admins`, state: present +- `service-account` — user: `{{inputs.service_user}}`, system: true, shell: `/usr/sbin/nologin`, home: `/var/lib/{{inputs.service_user}}` +- `admin-user-{name}` — user (for_each `admin_users`): create user, groups: [forjar-admins, sudo], shell: `{{inputs.shell}}` +- `ssh-key-{name}` — file (for_each `ssh_keys`): `/home/{name}/.ssh/authorized_keys`, mode 0600, owner: `{name}` +- `sudoers-forjar` — file: `/etc/sudoers.d/forjar-admins`, mode 0440 + ``` + # Managed by forjar — do not edit + %forjar-admins ALL=(ALL) {{#if inputs.sudo_nopasswd}}NOPASSWD:{{/if}} ALL + ``` +- `sudoers-validate` — file: `/usr/local/bin/forjar-sudoers-check.sh` + ```bash + #!/bin/bash + visudo -c -f /etc/sudoers.d/forjar-admins + ``` + +**Idempotency**: Strong — users and groups are checked by name, SSH keys by content hash + +**Convergence budget**: < 5s first apply, < 1s idempotent + +--- + +### 42. Kernel Tuning (sysctl) + +**Tier**: 1 + 2 + +Production kernel parameter tuning via sysctl.d drop-in files. Covers network performance, memory management, security hardening, and file descriptor limits. + +**Testable in CI**: +- Tier 2: container apply — sysctl.d files deployed (sysctl --system may not work in unprivileged containers, but file content is verified) + +**Recipe inputs**: + +| Input | Type | Default | Description | +|-------|------|---------|-------------| +| `profile` | enum | `general` | Tuning profile: `general`, `web`, `database`, `gpu-compute` | +| `max_connections` | int | `65535` | `net.core.somaxconn` | +| `swappiness` | int | `10` | `vm.swappiness` (0–100) | +| `file_max` | int | `2097152` | `fs.file-max` | +| `custom_params` | map | `{}` | Additional sysctl key=value pairs | + +**Resources** (5): + +- `sysctl-network` — file: `/etc/sysctl.d/60-forjar-network.conf` + ```ini + # Managed by forjar — network tuning ({{inputs.profile}} profile) + net.core.somaxconn = {{inputs.max_connections}} + net.ipv4.tcp_max_syn_backlog = {{inputs.max_connections}} + net.ipv4.ip_local_port_range = 1024 65535 + net.ipv4.tcp_tw_reuse = 1 + net.ipv4.tcp_fin_timeout = 15 + net.core.netdev_max_backlog = 65536 + net.core.rmem_max = 16777216 + net.core.wmem_max = 16777216 + ``` +- `sysctl-memory` — file: `/etc/sysctl.d/60-forjar-memory.conf` + ```ini + vm.swappiness = {{inputs.swappiness}} + vm.dirty_ratio = 15 + vm.dirty_background_ratio = 5 + vm.overcommit_memory = 0 + ``` +- `sysctl-security` — file: `/etc/sysctl.d/60-forjar-security.conf` + ```ini + # ICMP hardening + net.ipv4.icmp_echo_ignore_broadcasts = 1 + net.ipv4.icmp_ignore_bogus_error_responses = 1 + # SYN flood protection + net.ipv4.tcp_syncookies = 1 + # Source routing disabled + net.ipv4.conf.all.accept_source_route = 0 + net.ipv4.conf.default.accept_source_route = 0 + # ASLR + kernel.randomize_va_space = 2 + ``` +- `sysctl-filelimits` — file: `/etc/sysctl.d/60-forjar-filelimits.conf` + ```ini + fs.file-max = {{inputs.file_max}} + fs.inotify.max_user_watches = 524288 + ``` +- `sysctl-reload` — service: oneshot script `sysctl --system`, restart_on: [sysctl-network, sysctl-memory, sysctl-security, sysctl-filelimits] + +**Profile presets**: + +| Profile | somaxconn | swappiness | file_max | Extra | +|---------|-----------|-----------|----------|-------| +| `general` | 65535 | 10 | 2097152 | — | +| `web` | 65535 | 10 | 2097152 | `net.ipv4.tcp_keepalive_time=60` | +| `database` | 65535 | 1 | 2097152 | `vm.dirty_background_ratio=3`, `vm.overcommit_memory=2` | +| `gpu-compute` | 4096 | 1 | 2097152 | `vm.nr_hugepages=1024` | + +**Idempotency**: Strong — file content determines convergence, sysctl reload only on change + +**Convergence budget**: < 3s first apply, < 1s idempotent + +--- + +### 43. Log Management (Journald + Logrotate) + +**Tier**: 1 + 2 + +Centralized log configuration — journald tuning, logrotate for application logs, disk usage monitoring. + +**Testable in CI**: +- Tier 2: container apply — config files deployed, logrotate config validated + +**Recipe inputs**: + +| Input | Type | Default | Description | +|-------|------|---------|-------------| +| `journal_max_disk` | string | `500M` | Max persistent journal size | +| `journal_max_age` | string | `30d` | Journal retention period | +| `app_log_paths` | list | `[]` | Application log paths for logrotate | +| `rotate_count` | int | `7` | Logrotate file count | +| `rotate_schedule` | enum | `daily` | daily, weekly, monthly | +| `compress` | bool | `true` | Compress rotated logs | + +**Resources** (6): + +- `logrotate-pkg` — package (apt): logrotate +- `journald-config` — file: `/etc/systemd/journald.conf.d/forjar.conf` + ```ini + [Journal] + SystemMaxUse={{inputs.journal_max_disk}} + MaxRetentionSec={{inputs.journal_max_age}} + MaxFileSec=1day + Compress=yes + ForwardToSyslog=no + ``` +- `journald-restart` — service: systemd-journald (restart_on: journald-config) +- `app-logrotate` — file: `/etc/logrotate.d/forjar-apps` + ``` + {{#each inputs.app_log_paths}} + {{this}} { + {{inputs.rotate_schedule}} + rotate {{inputs.rotate_count}} + {{#if inputs.compress}}compress{{/if}} + delaycompress + missingok + notifempty + create 0640 root adm + } + {{/each}} + ``` +- `logrotate-test-cron` — cron: `0 */6 * * *` → `logrotate -d /etc/logrotate.d/forjar-apps 2>&1 | logger -t forjar-logrotate` (dry-run audit every 6h) +- `disk-usage-alert` — file: `/usr/local/bin/forjar-disk-alert.sh` + ```bash + #!/bin/bash + USAGE=$(df /var/log --output=pcent | tail -1 | tr -d ' %') + [ "$USAGE" -gt 85 ] && logger -p user.warning -t forjar "Log partition at ${USAGE}%" + ``` + + cron: `*/30 * * * *` → disk usage check + +**Idempotency**: Strong — config files content-hashed, service restart only on config change + +**Convergence budget**: < 10s first apply, < 1s idempotent + +--- + +### 44. Time Synchronization (Chrony/NTP) + +**Tier**: 1 + 2 + +Reliable time sync — critical for TLS, logging, distributed systems. Chrony as primary (modern, handles VM migration), with NTP pool configuration. + +**Testable in CI**: +- Tier 2: container apply — chrony installed, config deployed (service won't start in container but config is verified) + +**Recipe inputs**: + +| Input | Type | Default | Description | +|-------|------|---------|-------------| +| `ntp_servers` | list | `[0.pool.ntp.org, 1.pool.ntp.org, 2.pool.ntp.org, 3.pool.ntp.org]` | NTP server list | +| `timezone` | string | `UTC` | System timezone | +| `makestep_threshold` | float | `1.0` | Seconds threshold for step correction | +| `makestep_limit` | int | `3` | Number of step corrections allowed at startup | + +**Resources** (5): + +- `chrony-pkg` — package (apt): chrony +- `remove-systemd-timesyncd` — package (apt): systemd-timesyncd, state: absent (conflicts with chrony) +- `chrony-config` — file: `/etc/chrony/chrony.conf` + ``` + # Managed by forjar + {{#each inputs.ntp_servers}} + server {{this}} iburst + {{/each}} + driftfile /var/lib/chrony/chrony.drift + makestep {{inputs.makestep_threshold}} {{inputs.makestep_limit}} + rtcsync + logdir /var/log/chrony + ``` +- `chrony-service` — service: chrony (running, enabled, restart_on: chrony-config) +- `timezone-config` — file: `/etc/timezone`, content: `{{inputs.timezone}}` + + post_apply: `timedatectl set-timezone {{inputs.timezone}} 2>/dev/null || ln -sf /usr/share/zoneinfo/{{inputs.timezone}} /etc/localtime` + +**Idempotency**: Strong + +**Convergence budget**: < 10s first apply, < 1s idempotent + +--- + +### 45. Custom Systemd Units + +**Tier**: 1 + 2 + +Deploy and manage custom systemd service, timer, and oneshot units. The pattern for any "run my binary as a daemon" task. + +**Testable in CI**: +- Tier 2: container apply — unit files deployed, symlinks created (systemd won't run in container but file content is verified) + +**Recipe inputs**: + +| Input | Type | Default | Description | +|-------|------|---------|-------------| +| `unit_name` | string | required | Systemd unit name (e.g., `myapp`) | +| `exec_start` | string | required | ExecStart command | +| `user` | string | `root` | Run-as user | +| `group` | string | `root` | Run-as group | +| `working_dir` | path | `/` | WorkingDirectory | +| `restart_policy` | enum | `on-failure` | Restart, RestartSec | +| `restart_sec` | int | `5` | RestartSec in seconds | +| `env_vars` | map | `{}` | Environment variables | +| `wants` | list | `[]` | Unit wants (After=, Wants=) | +| `timer_schedule` | string | `""` | OnCalendar for timer unit (empty = no timer, just service) | +| `memory_limit` | string | `""` | MemoryMax (e.g., `512M`) | +| `cpu_quota` | string | `""` | CPUQuota (e.g., `50%`) | +| `sandbox` | bool | `false` | Enable security hardening (NoNewPrivileges, ProtectSystem, etc.) | + +**Resources** (4–6 depending on inputs): + +- `unit-service` — file: `/etc/systemd/system/{{inputs.unit_name}}.service` + ```ini + [Unit] + Description={{inputs.unit_name}} managed by forjar + {{#each inputs.wants}} + After={{this}} + Wants={{this}} + {{/each}} + + [Service] + Type=simple + ExecStart={{inputs.exec_start}} + User={{inputs.user}} + Group={{inputs.group}} + WorkingDirectory={{inputs.working_dir}} + Restart={{inputs.restart_policy}} + RestartSec={{inputs.restart_sec}} + {{#each inputs.env_vars}} + Environment="{{@key}}={{this}}" + {{/each}} + {{#if inputs.memory_limit}} + MemoryMax={{inputs.memory_limit}} + {{/if}} + {{#if inputs.cpu_quota}} + CPUQuota={{inputs.cpu_quota}} + {{/if}} + {{#if inputs.sandbox}} + NoNewPrivileges=yes + ProtectSystem=strict + ProtectHome=yes + PrivateTmp=yes + ReadWritePaths={{inputs.working_dir}} + {{/if}} + + [Install] + WantedBy=multi-user.target + ``` +- `unit-timer` (when `timer_schedule` is set) — file: `/etc/systemd/system/{{inputs.unit_name}}.timer` + ```ini + [Unit] + Description={{inputs.unit_name}} timer managed by forjar + + [Timer] + OnCalendar={{inputs.timer_schedule}} + Persistent=true + + [Install] + WantedBy=timers.target + ``` +- `daemon-reload` — service: oneshot `systemctl daemon-reload`, restart_on: [unit-service, unit-timer] +- `unit-enable` — service: `{{inputs.unit_name}}` (running, enabled, depends_on: daemon-reload) +- `timer-enable` (when `timer_schedule` is set) — service: `{{inputs.unit_name}}.timer` (running, enabled, depends_on: daemon-reload) +- `unit-status-cron` — cron: `*/5 * * * *` → `systemctl is-active {{inputs.unit_name}} || logger -t forjar "{{inputs.unit_name}} is not running"` + +**Idempotency**: Strong — unit files content-hashed, daemon-reload only on change + +**Convergence budget**: < 5s first apply, < 1s idempotent + +--- + +### 46. Resource Limits (ulimits + cgroups) + +**Tier**: 1 + 2 + +System-wide and per-user resource limits — file descriptors, process counts, memory locks, core dumps. + +**Testable in CI**: +- Tier 2: container apply — limits.d files deployed with correct content + +**Recipe inputs**: + +| Input | Type | Default | Description | +|-------|------|---------|-------------| +| `nofile_soft` | int | `65535` | Open file soft limit | +| `nofile_hard` | int | `131072` | Open file hard limit | +| `nproc_soft` | int | `65535` | Process count soft limit | +| `nproc_hard` | int | `131072` | Process count hard limit | +| `memlock` | string | `unlimited` | Memory lock limit (for GPU/RDMA) | +| `core_dumps` | bool | `false` | Enable core dumps | +| `service_users` | list | `[]` | Users to get elevated limits | + +**Resources** (4): + +- `limits-global` — file: `/etc/security/limits.d/99-forjar.conf` + ``` + # Managed by forjar — global resource limits + * soft nofile {{inputs.nofile_soft}} + * hard nofile {{inputs.nofile_hard}} + * soft nproc {{inputs.nproc_soft}} + * hard nproc {{inputs.nproc_hard}} + {{#unless inputs.core_dumps}} + * hard core 0 + {{/unless}} + ``` +- `limits-service-users` — file: `/etc/security/limits.d/98-forjar-services.conf` (when `service_users` non-empty) + ``` + {{#each inputs.service_users}} + {{this}} soft memlock {{inputs.memlock}} + {{this}} hard memlock {{inputs.memlock}} + {{this}} soft nofile {{inputs.nofile_hard}} + {{this}} hard nofile {{inputs.nofile_hard}} + {{/each}} + ``` +- `pam-limits` — file: `/etc/pam.d/common-session` (append line) + ``` + session required pam_limits.so + ``` +- `sysctl-pid-max` — file: `/etc/sysctl.d/60-forjar-pidmax.conf` + ``` + kernel.pid_max = 4194304 + ``` + +**Idempotency**: Strong + +**Convergence budget**: < 3s first apply, < 1s idempotent + +--- + +### 47. Automated Patching & Reboot Schedule + +**Tier**: 1 + 2 + +Unattended security patching with configurable reboot windows. The "set it and forget it" recipe for fleet machines. + +**Testable in CI**: +- Tier 2: container apply — unattended-upgrades config deployed, reboot schedule cron set + +**Recipe inputs**: + +| Input | Type | Default | Description | +|-------|------|---------|-------------| +| `auto_reboot` | bool | `true` | Auto-reboot after kernel updates | +| `reboot_window` | string | `02:00` | Reboot time (24h format) | +| `reboot_day` | string | `Sun` | Reboot day of week | +| `security_only` | bool | `true` | Only install security updates | +| `blacklist_packages` | list | `[]` | Packages to never auto-update | +| `mail_to` | string | `""` | Email for update notifications | +| `pre_reboot_script` | string | `""` | Script to run before reboot (drain, etc.) | + +**Resources** (6): + +- `apt-unattended` — package (apt): unattended-upgrades, apt-listchanges +- `auto-upgrades-config` — file: `/etc/apt/apt.conf.d/20auto-upgrades` + ``` + APT::Periodic::Update-Package-Lists "1"; + APT::Periodic::Unattended-Upgrade "1"; + APT::Periodic::AutocleanInterval "7"; + ``` +- `unattended-config` — file: `/etc/apt/apt.conf.d/50unattended-upgrades` + ``` + Unattended-Upgrade::Allowed-Origins { + "${distro_id}:${distro_codename}-security"; + {{#unless inputs.security_only}} + "${distro_id}:${distro_codename}-updates"; + {{/unless}} + }; + {{#if inputs.blacklist_packages}} + Unattended-Upgrade::Package-Blacklist { + {{#each inputs.blacklist_packages}} + "{{this}}"; + {{/each}} + }; + {{/if}} + Unattended-Upgrade::Automatic-Reboot "{{inputs.auto_reboot}}"; + Unattended-Upgrade::Automatic-Reboot-Time "{{inputs.reboot_window}}"; + {{#if inputs.mail_to}} + Unattended-Upgrade::Mail "{{inputs.mail_to}}"; + {{/if}} + ``` +- `reboot-check-script` — file: `/usr/local/bin/forjar-reboot-check.sh` + ```bash + #!/bin/bash + if [ -f /var/run/reboot-required ]; then + logger -t forjar "Reboot required: $(cat /var/run/reboot-required.pkgs 2>/dev/null)" + {{#if inputs.pre_reboot_script}} + {{inputs.pre_reboot_script}} + {{/if}} + fi + ``` +- `reboot-check-cron` — cron: `0 {{inputs.reboot_window}} * * {{inputs.reboot_day}}` → reboot check script +- `update-status-cron` — cron: `0 8 * * *` → `apt list --upgradable 2>/dev/null | wc -l | xargs -I{} logger -t forjar "Pending updates: {}"` + +**Idempotency**: Strong + +**Convergence budget**: < 15s first apply (apt install), < 1s idempotent + +--- + +### 48. Hostname, Locale & DNS Resolution + +**Tier**: 1 + 2 + +Machine identity and locale — the first things configured on a new machine. + +**Testable in CI**: +- Tier 2: container apply — files deployed with correct content + +**Recipe inputs**: + +| Input | Type | Default | Description | +|-------|------|---------|-------------| +| `hostname` | string | required | Machine hostname (short) | +| `domain` | string | `""` | Domain name (FQDN = hostname.domain) | +| `locale` | string | `en_US.UTF-8` | System locale | +| `timezone` | string | `UTC` | System timezone (defers to recipe #44 if composed) | +| `dns_servers` | list | `[1.1.1.1, 8.8.8.8]` | DNS resolver IPs | +| `search_domains` | list | `[]` | DNS search domains | +| `use_resolved` | bool | `true` | Use systemd-resolved (false = /etc/resolv.conf) | + +**Resources** (6): + +- `hostname-file` — file: `/etc/hostname`, content: `{{inputs.hostname}}` +- `hosts-file` — file: `/etc/hosts` + ``` + 127.0.0.1 localhost + 127.0.1.1 {{inputs.hostname}}{{#if inputs.domain}}.{{inputs.domain}} {{inputs.hostname}}{{/if}} + + ::1 localhost ip6-localhost ip6-loopback + ff02::1 ip6-allnodes + ff02::2 ip6-allrouters + ``` +- `locale-gen` — file: `/etc/locale.gen`, content includes `{{inputs.locale}} UTF-8` + + post_apply: `locale-gen && update-locale LANG={{inputs.locale}}` +- `resolved-config` (when `use_resolved`) — file: `/etc/systemd/resolved.conf.d/forjar.conf` + ```ini + [Resolve] + DNS={{inputs.dns_servers | join " "}} + {{#if inputs.search_domains}} + Domains={{inputs.search_domains | join " "}} + {{/if}} + DNSOverTLS=opportunistic + DNSSEC=allow-downgrade + ``` +- `resolved-service` (when `use_resolved`) — service: systemd-resolved (running, enabled, restart_on: resolved-config) +- `resolv-conf` (when NOT `use_resolved`) — file: `/etc/resolv.conf` + ``` + {{#each inputs.dns_servers}} + nameserver {{this}} + {{/each}} + {{#if inputs.search_domains}} + search {{inputs.search_domains | join " "}} + {{/if}} + ``` + +**Idempotency**: Strong + +**Convergence budget**: < 5s first apply, < 1s idempotent + +--- + +### 49. Swap & Memory Management + +**Tier**: 1 + 2 (file creation testable) + 3 (actual swap activation needs bare-metal) + +Create and manage swapfiles, configure memory pressure behavior. + +**Testable in CI**: +- Tier 2: container apply — swap setup script deployed, sysctl files written +- Tier 3: bare-metal — actual swap activation and verification + +**Recipe inputs**: + +| Input | Type | Default | Description | +|-------|------|---------|-------------| +| `swap_size_mb` | int | `2048` | Swapfile size in MB | +| `swap_path` | path | `/swapfile` | Swapfile location | +| `swappiness` | int | `10` | vm.swappiness (0–100) | +| `vfs_cache_pressure` | int | `50` | vm.vfs_cache_pressure | +| `oom_kill_allocating_task` | bool | `true` | OOM killer targets the allocating process | + +**Resources** (4): + +- `swap-setup-script` — file: `/usr/local/bin/forjar-swap-setup.sh` + ```bash + #!/bin/bash + set -euo pipefail + SWAP="{{inputs.swap_path}}" + SIZE="{{inputs.swap_size_mb}}" + if [ -f "$SWAP" ]; then + CURRENT=$(stat -c%s "$SWAP" 2>/dev/null || echo 0) + DESIRED=$((SIZE * 1024 * 1024)) + [ "$CURRENT" -eq "$DESIRED" ] && exit 0 + swapoff "$SWAP" 2>/dev/null || true + fi + dd if=/dev/zero of="$SWAP" bs=1M count="$SIZE" status=none + chmod 600 "$SWAP" + mkswap "$SWAP" >/dev/null + swapon "$SWAP" + grep -q "$SWAP" /etc/fstab || echo "$SWAP none swap sw 0 0" >> /etc/fstab + ``` +- `swap-setup` — cron: `@reboot` → swap setup script (ensures swap survives reboot) + + also runs as post_apply one-shot +- `sysctl-swap` — file: `/etc/sysctl.d/60-forjar-swap.conf` + ```ini + vm.swappiness = {{inputs.swappiness}} + vm.vfs_cache_pressure = {{inputs.vfs_cache_pressure}} + vm.oom_kill_allocating_task = {{#if inputs.oom_kill_allocating_task}}1{{else}}0{{/if}} + ``` +- `sysctl-swap-reload` — service: oneshot `sysctl --system`, restart_on: sysctl-swap + +**Idempotency**: Weak (swap activation is stateful, but script checks before acting) + +**Convergence budget**: < 10s first apply (dd), < 1s idempotent + +--- + +### Linux Admin Recipe Testability Summary + +| # | Recipe | Tier | Resources | Key Resource Types | +|---|--------|------|-----------|-------------------| +| 40 | Scheduled Tasks (Cron) | 1+2 | 8 | cron, file | +| 41 | User & Group Provisioning | 1+2 | 6+ | user, file | +| 42 | Kernel Tuning (sysctl) | 1+2 | 5 | file, service | +| 43 | Log Management | 1+2 | 6 | package, file, service, cron | +| 44 | Time Sync (Chrony) | 1+2 | 5 | package, file, service | +| 45 | Custom Systemd Units | 1+2 | 4–6 | file, service, cron | +| 46 | Resource Limits (ulimits) | 1+2 | 4 | file | +| 47 | Automated Patching | 1+2 | 6 | package, file, cron | +| 48 | Hostname, Locale & DNS | 1+2 | 6 | file, service | +| 49 | Swap & Memory | 1+2+3 | 4 | file, cron, service | + +### Implementation Phase 9: Linux System Administration + +| # | Recipe | Tier | Why | +|---|--------|------|-----| +| 40 | Scheduled Tasks | 1+2 | Exercises cron resource with real-world patterns | +| 41 | User & Group | 1+2 | Most common sysadmin task; exercises for_each | +| 42 | Kernel Tuning | 1+2 | Every production server needs this | +| 43 | Log Management | 1+2 | Prevents disk exhaustion; exercises package+file+service+cron | +| 44 | Time Sync | 1+2 | Critical for TLS, logs, distributed systems | +| 45 | Systemd Units | 1+2 | The pattern for "deploy my daemon"; most reusable recipe | +| 46 | Resource Limits | 1+2 | Prevents cascading failures from resource exhaustion | +| 47 | Automated Patching | 1+2 | Fleet hygiene; exercises conditional templating | +| 48 | Hostname/Locale/DNS | 1+2 | Day-zero machine identity setup | +| 49 | Swap & Memory | 1+2+3 | Memory management; demonstrates Tier 2 vs Tier 3 split | diff --git a/docs/specifications/forjar-spec.md b/docs/specifications/forjar-spec.md index 19bda151..53524da4 100644 --- a/docs/specifications/forjar-spec.md +++ b/docs/specifications/forjar-spec.md @@ -252,6 +252,37 @@ machines: privileged: false init: true + # NVIDIA GPU container (CUDA workloads — model QA, inference testing) + gpu-cuda: + hostname: gpu-cuda + addr: container + transport: container + container: + runtime: docker + image: nvidia/cuda:12.4.1-runtime-ubuntu22.04 + name: forjar-cuda + gpus: all # --gpus flag (NVIDIA Container Toolkit) + env: + CUDA_VISIBLE_DEVICES: "0,1" + + # AMD ROCm GPU container (HIP/ROCm workloads) + gpu-rocm: + hostname: gpu-rocm + addr: container + transport: container + container: + runtime: docker + image: rocm/dev-ubuntu-22.04:6.1 + name: forjar-rocm + devices: # --device passthrough + - /dev/kfd + - /dev/dri + group_add: # --group-add for device access + - video + - render + env: + ROCR_VISIBLE_DEVICES: "0" + # Pepita kernel namespace target (zero Docker dependency, FJ-230) isolated-box: hostname: isolated-box @@ -479,13 +510,17 @@ cache_dir: ~/.cache/apr # model cache directory state: present | absent ``` -#### `gpu` (Done — FJ-241) +#### `gpu` (Done — FJ-241, FJ-1005) + +Multi-vendor GPU resource handler supporting NVIDIA (CUDA), AMD (ROCm), and CPU (no-op) backends. ```yaml type: gpu machine: -driver_version: "535" # NVIDIA driver version -cuda_version: "12.3" # CUDA toolkit version +gpu_backend: nvidia # nvidia (default) | rocm | cpu +driver_version: "550" # NVIDIA driver, amdgpu-dkms, or "kernel-$(uname -r)" for in-tree +cuda_version: "12.4" # CUDA toolkit version (nvidia only) +rocm_version: "6.0" # ROCm version (rocm only) devices: [0, 1] # GPU indices (default: all) persistence_mode: true # nvidia-persistenced (default: true) compute_mode: default # default | exclusive_process | prohibited @@ -493,6 +528,12 @@ memory_limit_mb: 8192 # optional cgroup GPU memory limit state: present | absent ``` +| Backend | Check | Apply | State Query | +|---------|-------|-------|-------------| +| `nvidia` | `nvidia-smi` + driver version | `apt install nvidia-driver-{ver}`, `cuda-toolkit-{ver}` | `nvidia-smi --query-gpu=...` | +| `rocm` | `rocminfo` or `/sys/module/amdgpu` + version fallback (`/sys/module/amdgpu/version` → `kernel-$(uname -r)`) | `apt install amdgpu-dkms rocm-hip-runtime` | `rocminfo` device listing, version via DKMS or kernel | +| `cpu` | Always passes (no-op) | No-op (`echo gpu-backend: cpu`) | `echo cpu-only` | + #### Common Resource Fields All resource types support the following optional fields in addition to their type-specific fields: @@ -790,6 +831,10 @@ recipes: | `container.ephemeral` | bool | `true` | Destroy container after apply | | `container.privileged` | bool | `false` | Run with `--privileged` | | `container.init` | bool | `true` | Run with `--init` for PID 1 reaping | +| `container.gpus` | string | — | NVIDIA GPU passthrough via `--gpus` (e.g., `"all"`, `"device=0"`) | +| `container.devices` | [string] | `[]` | Device passthrough via `--device` (e.g., `["/dev/kfd", "/dev/dri"]` for AMD ROCm) | +| `container.group_add` | [string] | `[]` | Additional groups via `--group-add` (e.g., `["video", "render"]` for GPU device access) | +| `container.env` | map | `{}` | Environment variables via `--env` (e.g., `CUDA_VISIBLE_DEVICES`, `ROCR_VISIBLE_DEVICES`) | | `pepita` | object | — | Pepita namespace config (required when `transport: pepita`). Done: FJ-230. | | `pepita.rootfs` | string | — | Base rootfs path or `debootstrap:` (e.g., `debootstrap:jammy`) | | `pepita.cgroups.memory_mb` | int | `2048` | Memory limit in MB (cgroup v2 `memory.max`) | @@ -1466,6 +1511,16 @@ forjar schema > forjar-schema.json ## 8. Phased Implementation +### Priority 0: Multi-Vendor GPU Container Transport (v0.x) — Highest Priority + +**Goal**: First-class NVIDIA CUDA, AMD ROCm, and Intel GPU passthrough in container transport — enabling `apr-model-qa-playbook` multi-GPU model QA workflows via forjar. + +| Ticket | Description | Status | +|--------|-------------|--------| +| FJ-738 | Multi-vendor GPU container transport — `container.devices` (--device), `container.group_add` (--group-add), `container.env` (--env) fields on ContainerConfig. NVIDIA via `--gpus`, AMD ROCm via `/dev/kfd` + `/dev/dri` + `video`/`render` groups, Intel via `/dev/dri`. Dogfood: `dogfood-multi-gpu.yaml` (2 machines, 5 resources). 2 new transport tests. | **Done** | +| FJ-739 | GPU container integration tests — feature-gated `--features gpu-container-test`. NVIDIA: verify `nvidia-smi` in container. AMD: verify `/dev/kfd` + `/dev/dri` accessible. Cross-vendor: same model config deployed to both. 7 tests. | **Done** | +| FJ-740 | `apr-model-qa-playbook` integration — `apr-model-qa` recipe (5 resources: workspace, model dir, playbook config, test runner, results dir). Dogfood: `dogfood-apr-qa.yaml` (2 machines × 5 resources = 10 resources). Recipe inputs: model_repo, format, quantization, gpu_vendor, backends, modalities, scenario_count. | **Done** | + ### Phase 1: Foundation (v0.1) — Immediate Need **Goal**: `forjar apply` works on lambda + intel + jetson with packages, files, services, mounts. @@ -2071,14 +2126,918 @@ Forjar provisions the machines these crates run on. Phase 10 makes that provisio | Ticket | Description | Status | |--------|-------------|--------| -| FJ-520 | `forjar apply --notify-grafana ` — send apply annotations to Grafana. Dashboard integration. | Planned | -| FJ-521 | `forjar validate --check-security` — scan for insecure permissions/ports/users. Security audit. | Planned | -| FJ-522 | `forjar status --prediction` — predict next failure based on historical patterns. ML-lite. | Planned | -| FJ-523 | `forjar apply --rate-limit-resources ` — apply at most N resources per minute. Throttle guard. | Planned | -| FJ-524 | `forjar graph --hotspots` — highlight resources with most changes/failures. Heat map. | Planned | -| FJ-525 | `forjar lock gc` — garbage collect orphaned lock entries. State hygiene. | Planned | -| FJ-526 | `forjar apply --checkpoint-interval ` — save intermediate state during long applies. Resumability. | Planned | -| FJ-527 | `forjar status --capacity` — show resource utilization vs limits per machine. Capacity planning. | Planned | +| FJ-520 | `forjar apply --notify-grafana ` — send apply annotations to Grafana. Dashboard integration. | Done | +| FJ-521 | `forjar validate --check-security` — scan for insecure permissions/ports/users. Security audit. | Done | +| FJ-522 | `forjar status --prediction` — predict next failure based on historical patterns. ML-lite. | Done | +| FJ-523 | `forjar apply --rate-limit-resources ` — apply at most N resources per minute. Throttle guard. | Done | +| FJ-524 | `forjar graph --hotspots` — highlight resources with most changes/failures. Heat map. | Done | +| FJ-525 | `forjar lock gc` — garbage collect orphaned lock entries. State hygiene. | Done | +| FJ-526 | `forjar apply --checkpoint-interval ` — save intermediate state during long applies. Resumability. | Done | +| FJ-527 | `forjar status --capacity` — show resource utilization vs limits per machine. Capacity planning. | Done | + +### Phase 39 — v3.9: Multi-Environment & Workflow + +| Ticket | Description | Status | +|--------|-------------|--------| +| FJ-530 | `forjar apply --notify-victorops ` — send apply events to VictorOps/Splunk On-Call. Incident integration. | Done | +| FJ-531 | `forjar validate --check-deprecation` — warn on deprecated resource fields/types. Migration aid. | Done | +| FJ-532 | `forjar status --cost-estimate` — estimate resource cost based on type counts. Budget planning. | Done | +| FJ-533 | `forjar apply --blue-green ` — blue/green deployment with machine pairs. Zero-downtime. | Done | +| FJ-534 | `forjar graph --timeline` — show resource application order as ASCII timeline. Visualization. | Done | +| FJ-535 | `forjar lock verify-chain` — verify full chain of custody from lock signatures. Provenance. | Done | +| FJ-536 | `forjar apply --dry-run-cost` — show estimated cost without applying. Pre-flight analysis. | Done | +| FJ-537 | `forjar status --staleness-report` — show resources not applied within configurable window. Hygiene. | Done | + +### Phase 40 — v4.0: Advanced Analytics & Reporting + +| Ticket | Description | Status | +|--------|-------------|--------| +| FJ-540 | `forjar apply --notify-msteams-adaptive ` — send Adaptive Card to MS Teams. Rich notifications. | Done | +| FJ-541 | `forjar validate --check-drift-risk` — score drift risk based on resource volatility. Proactive guard. | Done | +| FJ-542 | `forjar status --health-score` — composite health score (0-100) across all machines. Dashboard metric. | Done | +| FJ-543 | `forjar apply --progressive ` — progressive rollout (apply to N% of machines). Gradual deploy. | Done | +| FJ-544 | `forjar graph --what-if ` — simulate removing a resource, show impact. Analysis tool. | Done | +| FJ-545 | `forjar lock stats` — show lock file statistics (sizes, ages, resource counts). State overview. | Done | +| FJ-546 | `forjar apply --approval-webhook ` — POST for approval before applying. GitOps gate. | Done | +| FJ-547 | `forjar status --executive-summary` — one-line per machine summary for dashboards. Executive view. | Done | + +### Phase 41 — v4.1: Compliance & Governance + +| Ticket | Description | Status | +|--------|-------------|--------| +| FJ-550 | `forjar apply --notify-incident ` — POST incident to PagerDuty/Opsgenie with full context. Incident response. | Done | +| FJ-551 | `forjar validate --check-compliance ` — validate resources against compliance policy (CIS, SOC2). Governance. | Done | +| FJ-552 | `forjar status --audit-trail` — show full audit trail with who/what/when for each change. Compliance reporting. | Done | +| FJ-553 | `forjar apply --change-window ` — only allow apply during maintenance windows. Change control. | Done (FJ-506) | +| FJ-554 | `forjar graph --blast-radius ` — show all resources affected by a change to target. Risk assessment. | Done | +| FJ-555 | `forjar lock audit` — verify lock file integrity and show tampering evidence. Security audit. | Done | +| FJ-556 | `forjar apply --sign-off ` — require named sign-off before apply proceeds. Approval chain. | Done | +| FJ-557 | `forjar status --sla-report` — SLA compliance report (uptime, MTTR, change frequency). Service level. | Done (FJ-502) | + +### Phase 42 — v4.2: Observability & Telemetry + +| Ticket | Description | Status | +|--------|-------------|--------| +| FJ-560 | `forjar apply --notify-sns ` — publish apply events to AWS SNS topic. Cloud integration. | Done | +| FJ-561 | `forjar validate --check-portability` — check resources for platform-specific assumptions. Cross-platform. | Done | +| FJ-562 | `forjar status --resource-graph` — show resource dependency graph from live state. State visualization. | Done | +| FJ-563 | `forjar apply --telemetry-endpoint ` — POST OpenTelemetry spans for apply execution. Observability. | Done | +| FJ-564 | `forjar graph --change-impact ` — show direct + indirect impact of changing a resource. Planning. | Done | +| FJ-565 | `forjar lock compress` — compress old lock files with zstd. Storage optimization. | Done | +| FJ-566 | `forjar apply --runbook ` — attach runbook URL to apply for audit trail. Documentation link. | Done | +| FJ-567 | `forjar status --drift-velocity` — show drift rate over time (changes per day/week). Trend analysis. | Done | + +### Phase 43 — v4.3: Fleet Management & Scale + +| Ticket | Description | Status | +|--------|-------------|--------| +| FJ-570 | `forjar apply --notify-pubsub ` — publish apply events to Google Cloud Pub/Sub. GCP integration. | Done | +| FJ-571 | `forjar validate --check-resource-limits` — validate resource counts don't exceed per-machine limits. Scale guard. | Done | +| FJ-572 | `forjar status --fleet-overview` — aggregated fleet summary across all machines. Fleet dashboard. | Done | +| FJ-573 | `forjar apply --fleet-strategy ` — fleet-wide rollout strategy (parallel, rolling, canary). Fleet deploy. | Done | +| FJ-574 | `forjar graph --resource-types` — show graph colored/grouped by resource type. Visualization. | Done | +| FJ-575 | `forjar lock defrag` — defragment lock files (reorder resources alphabetically). Maintenance. | Done | +| FJ-576 | `forjar apply --pre-check