# Read-only Cargo inventory; no owner gates are run.
def main [repo: string] {
    let root = ($repo | path expand)
    let audit = ($root | path join audit/2026-10-16-acpu-delivery)
    let result = (do { ^cargo metadata --manifest-path ($root | path join Cargo.toml) --no-deps --format-version 1 --locked --offline } | complete)
    if $result.exit_code != 0 { error make {msg: $result.stderr} }
    let metadata = ($result.stdout | from json)
    let current = ($metadata.packages | each {|p| {name: $p.name, targets: ($p.targets | select name kind src_path)}})
    let expected = (open ($audit | path join targets-after.json))
    if $current != $expected { error make {msg: 'actual target inventory differs from recorded post-bridge inventory'} }
    let before = (open ($audit | path join targets-before.json))
    let changes = ($current | each {|p|
        let old = ($before | where name == $p.name | get 0.targets)
        {package: $p.name, retained: ($p.targets | length),
         removed: ($old | where {|t| not ($t in $p.targets)}),
         added: ($p.targets | where {|t| not ($t in $old)})}
    })
    if $changes != (open ($audit | path join target-conservation.json)) {
        error make {msg: 'independent target comparison differs'}
    }
    let standalone = ($current | where name in [metal-benches rane-benches])
    if ($standalone.targets | flatten | where {|t| $t.kind != [bin]} | length) != 0 {
        error make {msg: 'standalone benchmark target kind changed'}
    }
    if ($standalone.targets | flatten | length) != 5 {
        error make {msg: 'standalone benchmark targets missing'}
    }
    {verified: true, command: [cargo metadata --no-deps --format-version 1 --locked --offline],
     recorded: (date now | format date '%+'), changes: $changes, standalone: $standalone
    } | to json | save ($audit | path join delivery-v4/independent-targets.json)
}

Graph