ci: fix remaining external-action failures (a2ml, hypatia, fuzz)#60
Merged
Conversation
…a, fuzz) The last three red lanes from #41 had all moved past their original plumbing errors into genuine, distinct root causes: a2ml — `Validate A2ML manifests` Bump hyperpolymath/a2ml-validate-action fd7b2d8 -> 59145c7. The pinned version pre-dated a2ml-validate-action#12, which treats the whole `.machine_readable/` tree as structural-identity (identity = owning repo + path, not an in-file `name`/`agent-id`). neurophone scores 0 identity errors against 59145c7 with no repo-side .a2ml edits. hypatia — `Hypatia Neurosymbolic Analysis` hypatia-scan.yml had drifted: it did `cd scanner` inside /home/runner/hypatia, but the hypatia repo root has no `scanner/` subdir (mix.exs is at the root), so the build step exited 1. Synced the workflow to the canonical rsr-template-repo version, which builds at `$HOME/hypatia` (`mix escript.build`, binary `hypatia`) and also brings the `|| true` scan guard, correct upload-artifact SHA, concurrency group, pull-requests: write, and continue-on-error on the advisory PR-comment step. fuzz — ClusterFuzzLite The repo root is a *virtual* workspace (no [package]), so building fuzz/Cargo.toml failed "current package believes it's in a workspace when it's not". The fuzz crate now declares its own empty [workspace] table. Also dropped the broken+unused `neurophone path = ".."` dependency (root has no package; the target never used it) and declared `serde_json`, which the target does use. Builds clean locally; fuzz/Cargo.lock committed for reproducibility. Refs #41 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
🔍 Hypatia Security ScanFindings: 22 issues detected
View findings[
{
"reason": "No test directory or test files found",
"type": "no_tests",
"file": "/home/runner/work/neurophone/neurophone",
"action": "flag",
"rule_module": "honest_completion",
"severity": "high",
"deduction": 20
},
{
"reason": "unwrap() without prior check -- DoS via panic (1 occurrences, CWE-754)",
"type": "unwrap_without_check",
"file": "/home/runner/work/neurophone/neurophone/crates/sensors/src/lib.rs",
"action": "flag",
"rule_module": "code_safety",
"severity": "high"
},
{
"reason": "unwrap() without prior check -- DoS via panic (12 occurrences, CWE-754)",
"type": "unwrap_without_check",
"file": "/home/runner/work/neurophone/neurophone/crates/sensors/benches/sensors_bench.rs",
"action": "flag",
"rule_module": "code_safety",
"severity": "high"
},
{
"reason": "unwrap() without prior check -- DoS via panic (5 occurrences, CWE-754)",
"type": "unwrap_without_check",
"file": "/home/runner/work/neurophone/neurophone/crates/llm/benches/llm_bench.rs",
"action": "flag",
"rule_module": "code_safety",
"severity": "high"
},
{
"reason": "unwrap() without prior check -- DoS via panic (2 occurrences, CWE-754)",
"type": "unwrap_without_check",
"file": "/home/runner/work/neurophone/neurophone/crates/lsm/src/lib.rs",
"action": "flag",
"rule_module": "code_safety",
"severity": "high"
},
{
"reason": "expect() in hot path (1 occurrences, CWE-754)",
"type": "expect_in_hot_path",
"file": "/home/runner/work/neurophone/neurophone/crates/lsm/src/lib.rs",
"action": "flag",
"rule_module": "code_safety",
"severity": "medium"
},
{
"reason": "expect() in hot path (1 occurrences, CWE-754)",
"type": "expect_in_hot_path",
"file": "/home/runner/work/neurophone/neurophone/crates/lsm/benches/lsm_bench.rs",
"action": "flag",
"rule_module": "code_safety",
"severity": "medium"
},
{
"reason": "expect() in hot path (2 occurrences, CWE-754)",
"type": "expect_in_hot_path",
"file": "/home/runner/work/neurophone/neurophone/crates/esn/src/lib.rs",
"action": "flag",
"rule_module": "code_safety",
"severity": "medium"
},
{
"reason": "unwrap() without prior check -- DoS via panic (2 occurrences, CWE-754)",
"type": "unwrap_without_check",
"file": "/home/runner/work/neurophone/neurophone/crates/esn/benches/esn_bench.rs",
"action": "flag",
"rule_module": "code_safety",
"severity": "high"
},
{
"reason": "unwrap() without prior check -- DoS via panic (2 occurrences, CWE-754)",
"type": "unwrap_without_check",
"file": "/home/runner/work/neurophone/neurophone/crates/bridge/benches/bridge_bench.rs",
"action": "flag",
"rule_module": "code_safety",
"severity": "high"
}
]Powered by Hypatia Neurosymbolic CI/CD Intelligence |
cflite_pr.yml only watched top-level `Cargo.toml`/`Cargo.lock`, so a change to `fuzz/Cargo.toml` (e.g. the workspace fix in this PR) silently skipped the fuzz lane entirely — the very change most likely to affect fuzzing was never exercised. Broaden to `**/Cargo.toml` / `**/Cargo.lock` (matches root and nested) so fuzz-config changes actually run the lane. Refs #41 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
🔍 Hypatia Security ScanFindings: 22 issues detected
View findings[
{
"reason": "No test directory or test files found",
"type": "no_tests",
"file": "/home/runner/work/neurophone/neurophone",
"action": "flag",
"rule_module": "honest_completion",
"severity": "high",
"deduction": 20
},
{
"reason": "unwrap() without prior check -- DoS via panic (1 occurrences, CWE-754)",
"type": "unwrap_without_check",
"file": "/home/runner/work/neurophone/neurophone/crates/sensors/src/lib.rs",
"action": "flag",
"rule_module": "code_safety",
"severity": "high"
},
{
"reason": "unwrap() without prior check -- DoS via panic (12 occurrences, CWE-754)",
"type": "unwrap_without_check",
"file": "/home/runner/work/neurophone/neurophone/crates/sensors/benches/sensors_bench.rs",
"action": "flag",
"rule_module": "code_safety",
"severity": "high"
},
{
"reason": "unwrap() without prior check -- DoS via panic (5 occurrences, CWE-754)",
"type": "unwrap_without_check",
"file": "/home/runner/work/neurophone/neurophone/crates/llm/benches/llm_bench.rs",
"action": "flag",
"rule_module": "code_safety",
"severity": "high"
},
{
"reason": "unwrap() without prior check -- DoS via panic (2 occurrences, CWE-754)",
"type": "unwrap_without_check",
"file": "/home/runner/work/neurophone/neurophone/crates/lsm/src/lib.rs",
"action": "flag",
"rule_module": "code_safety",
"severity": "high"
},
{
"reason": "expect() in hot path (1 occurrences, CWE-754)",
"type": "expect_in_hot_path",
"file": "/home/runner/work/neurophone/neurophone/crates/lsm/src/lib.rs",
"action": "flag",
"rule_module": "code_safety",
"severity": "medium"
},
{
"reason": "expect() in hot path (1 occurrences, CWE-754)",
"type": "expect_in_hot_path",
"file": "/home/runner/work/neurophone/neurophone/crates/lsm/benches/lsm_bench.rs",
"action": "flag",
"rule_module": "code_safety",
"severity": "medium"
},
{
"reason": "expect() in hot path (2 occurrences, CWE-754)",
"type": "expect_in_hot_path",
"file": "/home/runner/work/neurophone/neurophone/crates/esn/src/lib.rs",
"action": "flag",
"rule_module": "code_safety",
"severity": "medium"
},
{
"reason": "unwrap() without prior check -- DoS via panic (2 occurrences, CWE-754)",
"type": "unwrap_without_check",
"file": "/home/runner/work/neurophone/neurophone/crates/esn/benches/esn_bench.rs",
"action": "flag",
"rule_module": "code_safety",
"severity": "high"
},
{
"reason": "unwrap() without prior check -- DoS via panic (2 occurrences, CWE-754)",
"type": "unwrap_without_check",
"file": "/home/runner/work/neurophone/neurophone/crates/bridge/benches/bridge_bench.rs",
"action": "flag",
"rule_module": "code_safety",
"severity": "high"
}
]Powered by Hypatia Neurosymbolic CI/CD Intelligence |
Pre-existing `cargo fmt --check` failure on `main` (rust-ci `test` lane), unrelated to #41's four external-action lanes but blocking a clean merge. Mechanical fix: rustfmt orders `ndarray_rand::rand_distr` before `ndarray_rand::RandomExt`. 2 files, import-order only, no logic change. Refs #41 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: Jonathan D.A. Jewell <6759885+hyperpolymath@users.noreply.github.com>
🔍 Hypatia Security ScanFindings: 22 issues detected
View findings[
{
"reason": "No test directory or test files found",
"type": "no_tests",
"file": "/home/runner/work/neurophone/neurophone",
"action": "flag",
"rule_module": "honest_completion",
"severity": "high",
"deduction": 20
},
{
"reason": "unwrap() without prior check -- DoS via panic (1 occurrences, CWE-754)",
"type": "unwrap_without_check",
"file": "/home/runner/work/neurophone/neurophone/crates/sensors/src/lib.rs",
"action": "flag",
"rule_module": "code_safety",
"severity": "high"
},
{
"reason": "unwrap() without prior check -- DoS via panic (12 occurrences, CWE-754)",
"type": "unwrap_without_check",
"file": "/home/runner/work/neurophone/neurophone/crates/sensors/benches/sensors_bench.rs",
"action": "flag",
"rule_module": "code_safety",
"severity": "high"
},
{
"reason": "unwrap() without prior check -- DoS via panic (5 occurrences, CWE-754)",
"type": "unwrap_without_check",
"file": "/home/runner/work/neurophone/neurophone/crates/llm/benches/llm_bench.rs",
"action": "flag",
"rule_module": "code_safety",
"severity": "high"
},
{
"reason": "unwrap() without prior check -- DoS via panic (2 occurrences, CWE-754)",
"type": "unwrap_without_check",
"file": "/home/runner/work/neurophone/neurophone/crates/lsm/src/lib.rs",
"action": "flag",
"rule_module": "code_safety",
"severity": "high"
},
{
"reason": "expect() in hot path (1 occurrences, CWE-754)",
"type": "expect_in_hot_path",
"file": "/home/runner/work/neurophone/neurophone/crates/lsm/src/lib.rs",
"action": "flag",
"rule_module": "code_safety",
"severity": "medium"
},
{
"reason": "expect() in hot path (1 occurrences, CWE-754)",
"type": "expect_in_hot_path",
"file": "/home/runner/work/neurophone/neurophone/crates/lsm/benches/lsm_bench.rs",
"action": "flag",
"rule_module": "code_safety",
"severity": "medium"
},
{
"reason": "expect() in hot path (2 occurrences, CWE-754)",
"type": "expect_in_hot_path",
"file": "/home/runner/work/neurophone/neurophone/crates/esn/src/lib.rs",
"action": "flag",
"rule_module": "code_safety",
"severity": "medium"
},
{
"reason": "unwrap() without prior check -- DoS via panic (2 occurrences, CWE-754)",
"type": "unwrap_without_check",
"file": "/home/runner/work/neurophone/neurophone/crates/esn/benches/esn_bench.rs",
"action": "flag",
"rule_module": "code_safety",
"severity": "high"
},
{
"reason": "unwrap() without prior check -- DoS via panic (2 occurrences, CWE-754)",
"type": "unwrap_without_check",
"file": "/home/runner/work/neurophone/neurophone/crates/bridge/benches/bridge_bench.rs",
"action": "flag",
"rule_module": "code_safety",
"severity": "high"
}
]Powered by Hypatia Neurosymbolic CI/CD Intelligence |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Resolves the last three red lanes tracked in #41. Each had moved past its original plumbing error into a genuine, distinct root cause:
@mainnot SHA-pinnedfd7b2d8pre-dated a2ml-validate-action#12; 15.machine_readable/*files lacked an in-file identity field59145c7(treats whole.machine_readable/tree as structural-identity). 0 identity errors with no repo-side.a2mleditshypatia-scan.ymldrifted:cd scannerinto a dir that no longer exists in the hypatia repo (mix.exs is at root) → exit 1rsr-template-repoversion (builds at$HOME/hypatia; also brings|| trueguard, correct artifact SHA, concurrency, continue-on-error on PR comment)fuzz/Cargo.tomlbuild failed "believes it's in a workspace when it's not"; also broken+unusedneurophone path=".."dep and undeclaredserde_json[workspace]tofuzz/Cargo.toml; drop dead dep; declareserde_json; commitfuzz/Cargo.lock. Builds clean locallyVerification
59145c7validator against this repo's pristine tree →Errors: 0.cargo build --manifest-path fuzz/Cargo.toml→Finishedclean.cd scannerstep; will confirm green on CI.K9 already passes on
main. The redundant cross-repo validator PR (a2ml-validate-action#13) was closed as superseded by #12.Refs #41
🤖 Generated with Claude Code