Skip to content
This repository was archived by the owner on May 31, 2026. It is now read-only.

fix: health_integration refactor#66

Closed
KooshaPari wants to merge 1 commit into
mainfrom
fix/health-integration
Closed

fix: health_integration refactor#66
KooshaPari wants to merge 1 commit into
mainfrom
fix/health-integration

Conversation

@KooshaPari
Copy link
Copy Markdown
Owner

@KooshaPari KooshaPari commented May 28, 2026

Refactor health integration test.


Note

Medium Risk
Health monitoring behavior changes (errors become unhealthy status; HTTP payload shape shifts from registry to HealthResponse), which can affect operators and any code still expecting the old HealthCheck trait on ComplianceHealthCheck.

Overview
Updates compliance scanner health integration to compile against the current phenotype-health crate (HealthChecker, HealthResponse, HealthCheckResult) instead of removed types (HealthCheck, HealthRegistry, HealthCheckError, shared HealthSnapshot / HealthReport).

health_integration.rs now defines local HealthSnapshot, ReportSummary, and HealthReport for scan-derived reporting, maps snapshots to HealthCheckResult, and adds ComplianceHealthChecker implementing HealthChecker (boxed async check, same severity rules as before). Scan and task failures return HealthStatus::Unhealthy with logging instead of propagating health errors. ComplianceHealthMonitor::build_health_registry returns a populated HealthResponse (aggregated status via worse, per-finding checks) rather than an empty registry stub.

The diff also adds rust/Cargo.lock and many rust/target/** build/cache files; reviewers may want those artifacts dropped from the PR if they were not intentional.

Reviewed by Cursor Bugbot for commit fb5bc0f. Bugbot is set up for automated code reviews on this repo. Configure here.

Co-Authored-By: Claude Opus 4.7 <[email protected]>
Copilot AI review requested due to automatic review settings May 28, 2026 02:41
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot wasn't able to review this pull request because it exceeds the maximum number of files (300). Try reducing the number of changed files and requesting a review from Copilot again.

@codeant-ai
Copy link
Copy Markdown

codeant-ai Bot commented May 28, 2026

Skipping CodeAnt AI review — this PR changes more than 100 files, which usually means a migration, codemod, or vendored drop. Line-level review on diffs this large produces duplicate findings on the same rewrite pattern and drowns out anything that actually matters.

If you still want a review, comment @codeant-ai : review. For better signal, consider splitting the PR into smaller chunks.

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 28, 2026

Important

Review skipped

Too many files!

This PR contains 299 files, which is 149 over the limit of 150.

To get a review, narrow the scope:
• coderabbit review --type committed # exclude uncommitted changes
• coderabbit review --dir # limit to a subdirectory
• coderabbit review --base # compare against a closer base

⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: a15b410d-57b4-4585-9139-dcff4fc11063

📥 Commits

Reviewing files that changed from the base of the PR and between 36862e1 and fb5bc0f.

⛔ Files ignored due to path filters (1)
  • rust/Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing (299)
  • rust/phenotype-compliance-scanner/src/health_integration.rs
  • rust/target/.rustc_info.json
  • rust/target/CACHEDIR.TAG
  • rust/target/debug/.cargo-lock
  • rust/target/debug/.fingerprint/async-trait-b841c56179bc4d7f/dep-lib-async_trait
  • rust/target/debug/.fingerprint/async-trait-b841c56179bc4d7f/invoked.timestamp
  • rust/target/debug/.fingerprint/async-trait-b841c56179bc4d7f/lib-async_trait
  • rust/target/debug/.fingerprint/async-trait-b841c56179bc4d7f/lib-async_trait.json
  • rust/target/debug/.fingerprint/autocfg-ee0b183a9794409b/dep-lib-autocfg
  • rust/target/debug/.fingerprint/autocfg-ee0b183a9794409b/invoked.timestamp
  • rust/target/debug/.fingerprint/autocfg-ee0b183a9794409b/lib-autocfg
  • rust/target/debug/.fingerprint/autocfg-ee0b183a9794409b/lib-autocfg.json
  • rust/target/debug/.fingerprint/bytes-410f68e6fdc67a5e/dep-lib-bytes
  • rust/target/debug/.fingerprint/bytes-410f68e6fdc67a5e/invoked.timestamp
  • rust/target/debug/.fingerprint/bytes-410f68e6fdc67a5e/lib-bytes
  • rust/target/debug/.fingerprint/bytes-410f68e6fdc67a5e/lib-bytes.json
  • rust/target/debug/.fingerprint/bytes-8c3f60db71d6dae3/dep-lib-bytes
  • rust/target/debug/.fingerprint/bytes-8c3f60db71d6dae3/invoked.timestamp
  • rust/target/debug/.fingerprint/bytes-8c3f60db71d6dae3/lib-bytes
  • rust/target/debug/.fingerprint/bytes-8c3f60db71d6dae3/lib-bytes.json
  • rust/target/debug/.fingerprint/cfg-if-26ef73b6fc7ab60c/dep-lib-cfg_if
  • rust/target/debug/.fingerprint/cfg-if-26ef73b6fc7ab60c/invoked.timestamp
  • rust/target/debug/.fingerprint/cfg-if-26ef73b6fc7ab60c/lib-cfg_if
  • rust/target/debug/.fingerprint/cfg-if-26ef73b6fc7ab60c/lib-cfg_if.json
  • rust/target/debug/.fingerprint/cfg-if-d0202b3c1f745d2b/dep-lib-cfg_if
  • rust/target/debug/.fingerprint/cfg-if-d0202b3c1f745d2b/invoked.timestamp
  • rust/target/debug/.fingerprint/cfg-if-d0202b3c1f745d2b/lib-cfg_if
  • rust/target/debug/.fingerprint/cfg-if-d0202b3c1f745d2b/lib-cfg_if.json
  • rust/target/debug/.fingerprint/chacha20-2f908ab869cf1e70/dep-lib-chacha20
  • rust/target/debug/.fingerprint/chacha20-2f908ab869cf1e70/invoked.timestamp
  • rust/target/debug/.fingerprint/chacha20-2f908ab869cf1e70/lib-chacha20
  • rust/target/debug/.fingerprint/chacha20-2f908ab869cf1e70/lib-chacha20.json
  • rust/target/debug/.fingerprint/chacha20-f0e2521cb09c0f4a/dep-lib-chacha20
  • rust/target/debug/.fingerprint/chacha20-f0e2521cb09c0f4a/invoked.timestamp
  • rust/target/debug/.fingerprint/chacha20-f0e2521cb09c0f4a/lib-chacha20
  • rust/target/debug/.fingerprint/chacha20-f0e2521cb09c0f4a/lib-chacha20.json
  • rust/target/debug/.fingerprint/chrono-36ff4c5461bb85b5/dep-lib-chrono
  • rust/target/debug/.fingerprint/chrono-36ff4c5461bb85b5/invoked.timestamp
  • rust/target/debug/.fingerprint/chrono-36ff4c5461bb85b5/lib-chrono
  • rust/target/debug/.fingerprint/chrono-36ff4c5461bb85b5/lib-chrono.json
  • rust/target/debug/.fingerprint/chrono-5d4eaadb90e1207c/dep-lib-chrono
  • rust/target/debug/.fingerprint/chrono-5d4eaadb90e1207c/invoked.timestamp
  • rust/target/debug/.fingerprint/chrono-5d4eaadb90e1207c/lib-chrono
  • rust/target/debug/.fingerprint/chrono-5d4eaadb90e1207c/lib-chrono.json
  • rust/target/debug/.fingerprint/cpufeatures-89d6a6398902038f/dep-lib-cpufeatures
  • rust/target/debug/.fingerprint/cpufeatures-89d6a6398902038f/invoked.timestamp
  • rust/target/debug/.fingerprint/cpufeatures-89d6a6398902038f/lib-cpufeatures
  • rust/target/debug/.fingerprint/cpufeatures-89d6a6398902038f/lib-cpufeatures.json
  • rust/target/debug/.fingerprint/cpufeatures-8c9351eaf15b5c37/dep-lib-cpufeatures
  • rust/target/debug/.fingerprint/cpufeatures-8c9351eaf15b5c37/invoked.timestamp
  • rust/target/debug/.fingerprint/cpufeatures-8c9351eaf15b5c37/lib-cpufeatures
  • rust/target/debug/.fingerprint/cpufeatures-8c9351eaf15b5c37/lib-cpufeatures.json
  • rust/target/debug/.fingerprint/equivalent-80460e64d6b9b6d0/dep-lib-equivalent
  • rust/target/debug/.fingerprint/equivalent-80460e64d6b9b6d0/invoked.timestamp
  • rust/target/debug/.fingerprint/equivalent-80460e64d6b9b6d0/lib-equivalent
  • rust/target/debug/.fingerprint/equivalent-80460e64d6b9b6d0/lib-equivalent.json
  • rust/target/debug/.fingerprint/equivalent-f9867ec3b95f0550/dep-lib-equivalent
  • rust/target/debug/.fingerprint/equivalent-f9867ec3b95f0550/invoked.timestamp
  • rust/target/debug/.fingerprint/equivalent-f9867ec3b95f0550/lib-equivalent
  • rust/target/debug/.fingerprint/equivalent-f9867ec3b95f0550/lib-equivalent.json
  • rust/target/debug/.fingerprint/fastrand-cd63a055a34deaed/dep-lib-fastrand
  • rust/target/debug/.fingerprint/fastrand-cd63a055a34deaed/invoked.timestamp
  • rust/target/debug/.fingerprint/fastrand-cd63a055a34deaed/lib-fastrand
  • rust/target/debug/.fingerprint/fastrand-cd63a055a34deaed/lib-fastrand.json
  • rust/target/debug/.fingerprint/fastrand-f97d89c04ff86cb9/dep-lib-fastrand
  • rust/target/debug/.fingerprint/fastrand-f97d89c04ff86cb9/invoked.timestamp
  • rust/target/debug/.fingerprint/fastrand-f97d89c04ff86cb9/lib-fastrand
  • rust/target/debug/.fingerprint/fastrand-f97d89c04ff86cb9/lib-fastrand.json
  • rust/target/debug/.fingerprint/futures-core-02188e2a86ca1296/dep-lib-futures_core
  • rust/target/debug/.fingerprint/futures-core-02188e2a86ca1296/invoked.timestamp
  • rust/target/debug/.fingerprint/futures-core-02188e2a86ca1296/lib-futures_core
  • rust/target/debug/.fingerprint/futures-core-02188e2a86ca1296/lib-futures_core.json
  • rust/target/debug/.fingerprint/futures-core-95f0cee0781c0b1b/dep-lib-futures_core
  • rust/target/debug/.fingerprint/futures-core-95f0cee0781c0b1b/invoked.timestamp
  • rust/target/debug/.fingerprint/futures-core-95f0cee0781c0b1b/lib-futures_core
  • rust/target/debug/.fingerprint/futures-core-95f0cee0781c0b1b/lib-futures_core.json
  • rust/target/debug/.fingerprint/futures-core-c27d2658ec797d42/dep-lib-futures_core
  • rust/target/debug/.fingerprint/futures-core-c27d2658ec797d42/invoked.timestamp
  • rust/target/debug/.fingerprint/futures-core-c27d2658ec797d42/lib-futures_core
  • rust/target/debug/.fingerprint/futures-core-c27d2658ec797d42/lib-futures_core.json
  • rust/target/debug/.fingerprint/futures-macro-9ce9a8f32ab97639/dep-lib-futures_macro
  • rust/target/debug/.fingerprint/futures-macro-9ce9a8f32ab97639/invoked.timestamp
  • rust/target/debug/.fingerprint/futures-macro-9ce9a8f32ab97639/lib-futures_macro
  • rust/target/debug/.fingerprint/futures-macro-9ce9a8f32ab97639/lib-futures_macro.json
  • rust/target/debug/.fingerprint/futures-task-512ba1d13d39bb9d/dep-lib-futures_task
  • rust/target/debug/.fingerprint/futures-task-512ba1d13d39bb9d/invoked.timestamp
  • rust/target/debug/.fingerprint/futures-task-512ba1d13d39bb9d/lib-futures_task
  • rust/target/debug/.fingerprint/futures-task-512ba1d13d39bb9d/lib-futures_task.json
  • rust/target/debug/.fingerprint/futures-task-65e85351104c725d/dep-lib-futures_task
  • rust/target/debug/.fingerprint/futures-task-65e85351104c725d/invoked.timestamp
  • rust/target/debug/.fingerprint/futures-task-65e85351104c725d/lib-futures_task
  • rust/target/debug/.fingerprint/futures-task-65e85351104c725d/lib-futures_task.json
  • rust/target/debug/.fingerprint/futures-util-2b18020e4d8495fe/dep-lib-futures_util
  • rust/target/debug/.fingerprint/futures-util-2b18020e4d8495fe/invoked.timestamp
  • rust/target/debug/.fingerprint/futures-util-2b18020e4d8495fe/lib-futures_util
  • rust/target/debug/.fingerprint/futures-util-2b18020e4d8495fe/lib-futures_util.json
  • rust/target/debug/.fingerprint/futures-util-e95b0fd94925be8b/dep-lib-futures_util
  • rust/target/debug/.fingerprint/futures-util-e95b0fd94925be8b/invoked.timestamp
  • rust/target/debug/.fingerprint/futures-util-e95b0fd94925be8b/lib-futures_util
  • rust/target/debug/.fingerprint/futures-util-e95b0fd94925be8b/lib-futures_util.json
  • rust/target/debug/.fingerprint/futures-util-eab0f1b06b35b992/dep-lib-futures_util
  • rust/target/debug/.fingerprint/futures-util-eab0f1b06b35b992/invoked.timestamp
  • rust/target/debug/.fingerprint/futures-util-eab0f1b06b35b992/lib-futures_util
  • rust/target/debug/.fingerprint/futures-util-eab0f1b06b35b992/lib-futures_util.json
  • rust/target/debug/.fingerprint/getrandom-24896be022d322eb/build-script-build-script-build
  • rust/target/debug/.fingerprint/getrandom-24896be022d322eb/build-script-build-script-build.json
  • rust/target/debug/.fingerprint/getrandom-24896be022d322eb/dep-build-script-build-script-build
  • rust/target/debug/.fingerprint/getrandom-24896be022d322eb/invoked.timestamp
  • rust/target/debug/.fingerprint/getrandom-4a164a28727a11ff/run-build-script-build-script-build
  • rust/target/debug/.fingerprint/getrandom-4a164a28727a11ff/run-build-script-build-script-build.json
  • rust/target/debug/.fingerprint/getrandom-52cec405a67d83ed/dep-lib-getrandom
  • rust/target/debug/.fingerprint/getrandom-52cec405a67d83ed/invoked.timestamp
  • rust/target/debug/.fingerprint/getrandom-52cec405a67d83ed/lib-getrandom
  • rust/target/debug/.fingerprint/getrandom-52cec405a67d83ed/lib-getrandom.json
  • rust/target/debug/.fingerprint/getrandom-63ace28ea08e18c4/dep-lib-getrandom
  • rust/target/debug/.fingerprint/getrandom-63ace28ea08e18c4/invoked.timestamp
  • rust/target/debug/.fingerprint/getrandom-63ace28ea08e18c4/lib-getrandom
  • rust/target/debug/.fingerprint/getrandom-63ace28ea08e18c4/lib-getrandom.json
  • rust/target/debug/.fingerprint/getrandom-7c672679850c61d5/build-script-build-script-build
  • rust/target/debug/.fingerprint/getrandom-7c672679850c61d5/build-script-build-script-build.json
  • rust/target/debug/.fingerprint/getrandom-7c672679850c61d5/dep-build-script-build-script-build
  • rust/target/debug/.fingerprint/getrandom-7c672679850c61d5/invoked.timestamp
  • rust/target/debug/.fingerprint/getrandom-82099f7f8c157c9e/dep-lib-getrandom
  • rust/target/debug/.fingerprint/getrandom-82099f7f8c157c9e/invoked.timestamp
  • rust/target/debug/.fingerprint/getrandom-82099f7f8c157c9e/lib-getrandom
  • rust/target/debug/.fingerprint/getrandom-82099f7f8c157c9e/lib-getrandom.json
  • rust/target/debug/.fingerprint/getrandom-c3813ffa9debb461/run-build-script-build-script-build
  • rust/target/debug/.fingerprint/getrandom-c3813ffa9debb461/run-build-script-build-script-build.json
  • rust/target/debug/.fingerprint/getrandom-dc4ae44839bf870c/dep-lib-getrandom
  • rust/target/debug/.fingerprint/getrandom-dc4ae44839bf870c/invoked.timestamp
  • rust/target/debug/.fingerprint/getrandom-dc4ae44839bf870c/lib-getrandom
  • rust/target/debug/.fingerprint/getrandom-dc4ae44839bf870c/lib-getrandom.json
  • rust/target/debug/.fingerprint/getrandom-e4131543ce63864a/dep-lib-getrandom
  • rust/target/debug/.fingerprint/getrandom-e4131543ce63864a/invoked.timestamp
  • rust/target/debug/.fingerprint/getrandom-e4131543ce63864a/lib-getrandom
  • rust/target/debug/.fingerprint/getrandom-e4131543ce63864a/lib-getrandom.json
  • rust/target/debug/.fingerprint/hashbrown-d655d88fa2a50db5/dep-lib-hashbrown
  • rust/target/debug/.fingerprint/hashbrown-d655d88fa2a50db5/invoked.timestamp
  • rust/target/debug/.fingerprint/hashbrown-d655d88fa2a50db5/lib-hashbrown
  • rust/target/debug/.fingerprint/hashbrown-d655d88fa2a50db5/lib-hashbrown.json
  • rust/target/debug/.fingerprint/hashbrown-e59a3982d49d870b/dep-lib-hashbrown
  • rust/target/debug/.fingerprint/hashbrown-e59a3982d49d870b/invoked.timestamp
  • rust/target/debug/.fingerprint/hashbrown-e59a3982d49d870b/lib-hashbrown
  • rust/target/debug/.fingerprint/hashbrown-e59a3982d49d870b/lib-hashbrown.json
  • rust/target/debug/.fingerprint/indexmap-ace05c2952209c53/dep-lib-indexmap
  • rust/target/debug/.fingerprint/indexmap-ace05c2952209c53/invoked.timestamp
  • rust/target/debug/.fingerprint/indexmap-ace05c2952209c53/lib-indexmap
  • rust/target/debug/.fingerprint/indexmap-ace05c2952209c53/lib-indexmap.json
  • rust/target/debug/.fingerprint/indexmap-d77127d6128c3fa1/dep-lib-indexmap
  • rust/target/debug/.fingerprint/indexmap-d77127d6128c3fa1/invoked.timestamp
  • rust/target/debug/.fingerprint/indexmap-d77127d6128c3fa1/lib-indexmap
  • rust/target/debug/.fingerprint/indexmap-d77127d6128c3fa1/lib-indexmap.json
  • rust/target/debug/.fingerprint/itoa-2671aa452abccd39/dep-lib-itoa
  • rust/target/debug/.fingerprint/itoa-2671aa452abccd39/invoked.timestamp
  • rust/target/debug/.fingerprint/itoa-2671aa452abccd39/lib-itoa
  • rust/target/debug/.fingerprint/itoa-2671aa452abccd39/lib-itoa.json
  • rust/target/debug/.fingerprint/itoa-c12660818da1cc42/dep-lib-itoa
  • rust/target/debug/.fingerprint/itoa-c12660818da1cc42/invoked.timestamp
  • rust/target/debug/.fingerprint/itoa-c12660818da1cc42/lib-itoa
  • rust/target/debug/.fingerprint/itoa-c12660818da1cc42/lib-itoa.json
  • rust/target/debug/.fingerprint/lazy_static-0b7c419a8c32642d/dep-lib-lazy_static
  • rust/target/debug/.fingerprint/lazy_static-0b7c419a8c32642d/invoked.timestamp
  • rust/target/debug/.fingerprint/lazy_static-0b7c419a8c32642d/lib-lazy_static
  • rust/target/debug/.fingerprint/lazy_static-0b7c419a8c32642d/lib-lazy_static.json
  • rust/target/debug/.fingerprint/lazy_static-f3e84649837d3573/dep-lib-lazy_static
  • rust/target/debug/.fingerprint/lazy_static-f3e84649837d3573/invoked.timestamp
  • rust/target/debug/.fingerprint/lazy_static-f3e84649837d3573/lib-lazy_static
  • rust/target/debug/.fingerprint/lazy_static-f3e84649837d3573/lib-lazy_static.json
  • rust/target/debug/.fingerprint/lock_api-9ac6eab2f5141dfe/dep-lib-lock_api
  • rust/target/debug/.fingerprint/lock_api-9ac6eab2f5141dfe/invoked.timestamp
  • rust/target/debug/.fingerprint/lock_api-9ac6eab2f5141dfe/lib-lock_api
  • rust/target/debug/.fingerprint/lock_api-9ac6eab2f5141dfe/lib-lock_api.json
  • rust/target/debug/.fingerprint/lock_api-b0b014ba706d527d/dep-lib-lock_api
  • rust/target/debug/.fingerprint/lock_api-b0b014ba706d527d/invoked.timestamp
  • rust/target/debug/.fingerprint/lock_api-b0b014ba706d527d/lib-lock_api
  • rust/target/debug/.fingerprint/lock_api-b0b014ba706d527d/lib-lock_api.json
  • rust/target/debug/.fingerprint/log-a0c5d098297c692d/dep-lib-log
  • rust/target/debug/.fingerprint/log-a0c5d098297c692d/invoked.timestamp
  • rust/target/debug/.fingerprint/log-a0c5d098297c692d/lib-log
  • rust/target/debug/.fingerprint/log-a0c5d098297c692d/lib-log.json
  • rust/target/debug/.fingerprint/log-c54a3dc3d4effe83/dep-lib-log
  • rust/target/debug/.fingerprint/log-c54a3dc3d4effe83/invoked.timestamp
  • rust/target/debug/.fingerprint/log-c54a3dc3d4effe83/lib-log
  • rust/target/debug/.fingerprint/log-c54a3dc3d4effe83/lib-log.json
  • rust/target/debug/.fingerprint/matchers-1657f24288b7a456/dep-lib-matchers
  • rust/target/debug/.fingerprint/matchers-1657f24288b7a456/invoked.timestamp
  • rust/target/debug/.fingerprint/matchers-1657f24288b7a456/lib-matchers
  • rust/target/debug/.fingerprint/matchers-1657f24288b7a456/lib-matchers.json
  • rust/target/debug/.fingerprint/matchers-7e566eb641c27fd1/dep-lib-matchers
  • rust/target/debug/.fingerprint/matchers-7e566eb641c27fd1/invoked.timestamp
  • rust/target/debug/.fingerprint/matchers-7e566eb641c27fd1/lib-matchers
  • rust/target/debug/.fingerprint/matchers-7e566eb641c27fd1/lib-matchers.json
  • rust/target/debug/.fingerprint/memchr-3b0a931314e57d5b/dep-lib-memchr
  • rust/target/debug/.fingerprint/memchr-3b0a931314e57d5b/invoked.timestamp
  • rust/target/debug/.fingerprint/memchr-3b0a931314e57d5b/lib-memchr
  • rust/target/debug/.fingerprint/memchr-3b0a931314e57d5b/lib-memchr.json
  • rust/target/debug/.fingerprint/memchr-4a1f11fa94df713e/dep-lib-memchr
  • rust/target/debug/.fingerprint/memchr-4a1f11fa94df713e/invoked.timestamp
  • rust/target/debug/.fingerprint/memchr-4a1f11fa94df713e/lib-memchr
  • rust/target/debug/.fingerprint/memchr-4a1f11fa94df713e/lib-memchr.json
  • rust/target/debug/.fingerprint/mio-88f781f253f66c6d/dep-lib-mio
  • rust/target/debug/.fingerprint/mio-88f781f253f66c6d/invoked.timestamp
  • rust/target/debug/.fingerprint/mio-88f781f253f66c6d/lib-mio
  • rust/target/debug/.fingerprint/mio-88f781f253f66c6d/lib-mio.json
  • rust/target/debug/.fingerprint/mio-8f4417589904042b/dep-lib-mio
  • rust/target/debug/.fingerprint/mio-8f4417589904042b/invoked.timestamp
  • rust/target/debug/.fingerprint/mio-8f4417589904042b/lib-mio
  • rust/target/debug/.fingerprint/mio-8f4417589904042b/lib-mio.json
  • rust/target/debug/.fingerprint/nu-ansi-term-2d27284202eebf21/dep-lib-nu_ansi_term
  • rust/target/debug/.fingerprint/nu-ansi-term-2d27284202eebf21/invoked.timestamp
  • rust/target/debug/.fingerprint/nu-ansi-term-2d27284202eebf21/lib-nu_ansi_term
  • rust/target/debug/.fingerprint/nu-ansi-term-2d27284202eebf21/lib-nu_ansi_term.json
  • rust/target/debug/.fingerprint/nu-ansi-term-b84f602913e962a3/dep-lib-nu_ansi_term
  • rust/target/debug/.fingerprint/nu-ansi-term-b84f602913e962a3/invoked.timestamp
  • rust/target/debug/.fingerprint/nu-ansi-term-b84f602913e962a3/lib-nu_ansi_term
  • rust/target/debug/.fingerprint/nu-ansi-term-b84f602913e962a3/lib-nu_ansi_term.json
  • rust/target/debug/.fingerprint/num-traits-04c98397ed078858/dep-lib-num_traits
  • rust/target/debug/.fingerprint/num-traits-04c98397ed078858/invoked.timestamp
  • rust/target/debug/.fingerprint/num-traits-04c98397ed078858/lib-num_traits
  • rust/target/debug/.fingerprint/num-traits-04c98397ed078858/lib-num_traits.json
  • rust/target/debug/.fingerprint/num-traits-1509a42175fe9272/build-script-build-script-build
  • rust/target/debug/.fingerprint/num-traits-1509a42175fe9272/build-script-build-script-build.json
  • rust/target/debug/.fingerprint/num-traits-1509a42175fe9272/dep-build-script-build-script-build
  • rust/target/debug/.fingerprint/num-traits-1509a42175fe9272/invoked.timestamp
  • rust/target/debug/.fingerprint/num-traits-2699b2e345b66a27/dep-lib-num_traits
  • rust/target/debug/.fingerprint/num-traits-2699b2e345b66a27/invoked.timestamp
  • rust/target/debug/.fingerprint/num-traits-2699b2e345b66a27/lib-num_traits
  • rust/target/debug/.fingerprint/num-traits-2699b2e345b66a27/lib-num_traits.json
  • rust/target/debug/.fingerprint/num-traits-b191203b188409b8/run-build-script-build-script-build
  • rust/target/debug/.fingerprint/num-traits-b191203b188409b8/run-build-script-build-script-build.json
  • rust/target/debug/.fingerprint/once_cell-2565311cad9f2da9/dep-lib-once_cell
  • rust/target/debug/.fingerprint/once_cell-2565311cad9f2da9/invoked.timestamp
  • rust/target/debug/.fingerprint/once_cell-2565311cad9f2da9/lib-once_cell
  • rust/target/debug/.fingerprint/once_cell-2565311cad9f2da9/lib-once_cell.json
  • rust/target/debug/.fingerprint/once_cell-fb34a126ab7ea2f6/dep-lib-once_cell
  • rust/target/debug/.fingerprint/once_cell-fb34a126ab7ea2f6/invoked.timestamp
  • rust/target/debug/.fingerprint/once_cell-fb34a126ab7ea2f6/lib-once_cell
  • rust/target/debug/.fingerprint/once_cell-fb34a126ab7ea2f6/lib-once_cell.json
  • rust/target/debug/.fingerprint/parking_lot-7db1f279e9bdf6d9/dep-lib-parking_lot
  • rust/target/debug/.fingerprint/parking_lot-7db1f279e9bdf6d9/invoked.timestamp
  • rust/target/debug/.fingerprint/parking_lot-7db1f279e9bdf6d9/lib-parking_lot
  • rust/target/debug/.fingerprint/parking_lot-7db1f279e9bdf6d9/lib-parking_lot.json
  • rust/target/debug/.fingerprint/parking_lot-886590eb4288dd1d/dep-lib-parking_lot
  • rust/target/debug/.fingerprint/parking_lot-886590eb4288dd1d/invoked.timestamp
  • rust/target/debug/.fingerprint/parking_lot-886590eb4288dd1d/lib-parking_lot
  • rust/target/debug/.fingerprint/parking_lot-886590eb4288dd1d/lib-parking_lot.json
  • rust/target/debug/.fingerprint/parking_lot_core-74544d7cb356c74c/dep-lib-parking_lot_core
  • rust/target/debug/.fingerprint/parking_lot_core-74544d7cb356c74c/invoked.timestamp
  • rust/target/debug/.fingerprint/parking_lot_core-74544d7cb356c74c/lib-parking_lot_core
  • rust/target/debug/.fingerprint/parking_lot_core-74544d7cb356c74c/lib-parking_lot_core.json
  • rust/target/debug/.fingerprint/parking_lot_core-7be187c98e895939/dep-lib-parking_lot_core
  • rust/target/debug/.fingerprint/parking_lot_core-7be187c98e895939/invoked.timestamp
  • rust/target/debug/.fingerprint/parking_lot_core-7be187c98e895939/lib-parking_lot_core
  • rust/target/debug/.fingerprint/parking_lot_core-7be187c98e895939/lib-parking_lot_core.json
  • rust/target/debug/.fingerprint/parking_lot_core-9fa8d27c4e9ea1f3/run-build-script-build-script-build
  • rust/target/debug/.fingerprint/parking_lot_core-9fa8d27c4e9ea1f3/run-build-script-build-script-build.json
  • rust/target/debug/.fingerprint/parking_lot_core-e71f3f0d12781e68/build-script-build-script-build
  • rust/target/debug/.fingerprint/parking_lot_core-e71f3f0d12781e68/build-script-build-script-build.json
  • rust/target/debug/.fingerprint/parking_lot_core-e71f3f0d12781e68/dep-build-script-build-script-build
  • rust/target/debug/.fingerprint/parking_lot_core-e71f3f0d12781e68/invoked.timestamp
  • rust/target/debug/.fingerprint/phenotype-compliance-scanner-362ccc50a54940c0/dep-lib-phenotype_compliance_scanner
  • rust/target/debug/.fingerprint/phenotype-compliance-scanner-362ccc50a54940c0/invoked.timestamp
  • rust/target/debug/.fingerprint/phenotype-compliance-scanner-362ccc50a54940c0/lib-phenotype_compliance_scanner
  • rust/target/debug/.fingerprint/phenotype-compliance-scanner-362ccc50a54940c0/lib-phenotype_compliance_scanner.json
  • rust/target/debug/.fingerprint/phenotype-compliance-scanner-7fde23b9bb95d227/invoked.timestamp
  • rust/target/debug/.fingerprint/phenotype-compliance-scanner-7fde23b9bb95d227/output-lib-phenotype_compliance_scanner
  • rust/target/debug/.fingerprint/phenotype-compliance-scanner-b41c786e352cced5/dep-test-lib-phenotype_compliance_scanner
  • rust/target/debug/.fingerprint/phenotype-compliance-scanner-b41c786e352cced5/invoked.timestamp
  • rust/target/debug/.fingerprint/phenotype-compliance-scanner-b41c786e352cced5/test-lib-phenotype_compliance_scanner
  • rust/target/debug/.fingerprint/phenotype-compliance-scanner-b41c786e352cced5/test-lib-phenotype_compliance_scanner.json
  • rust/target/debug/.fingerprint/phenotype-health-acf725ed350c27eb/dep-lib-phenotype_health
  • rust/target/debug/.fingerprint/phenotype-health-acf725ed350c27eb/invoked.timestamp
  • rust/target/debug/.fingerprint/phenotype-health-acf725ed350c27eb/lib-phenotype_health
  • rust/target/debug/.fingerprint/phenotype-health-acf725ed350c27eb/lib-phenotype_health.json
  • rust/target/debug/.fingerprint/phenotype-mock-51e9e39f9958f253/dep-lib-phenotype_mock
  • rust/target/debug/.fingerprint/phenotype-mock-51e9e39f9958f253/invoked.timestamp
  • rust/target/debug/.fingerprint/phenotype-mock-51e9e39f9958f253/lib-phenotype_mock
  • rust/target/debug/.fingerprint/phenotype-mock-51e9e39f9958f253/lib-phenotype_mock.json
  • rust/target/debug/.fingerprint/phenotype-mock-5aaee32f3b832e9a/dep-lib-phenotype_mock
  • rust/target/debug/.fingerprint/phenotype-mock-5aaee32f3b832e9a/invoked.timestamp
  • rust/target/debug/.fingerprint/phenotype-mock-5aaee32f3b832e9a/lib-phenotype_mock
  • rust/target/debug/.fingerprint/phenotype-mock-5aaee32f3b832e9a/lib-phenotype_mock.json
  • rust/target/debug/.fingerprint/phenotype-mock-c4bc03fb512defb3/dep-test-lib-phenotype_mock
  • rust/target/debug/.fingerprint/phenotype-mock-c4bc03fb512defb3/invoked.timestamp
  • rust/target/debug/.fingerprint/phenotype-mock-c4bc03fb512defb3/test-lib-phenotype_mock
  • rust/target/debug/.fingerprint/phenotype-mock-c4bc03fb512defb3/test-lib-phenotype_mock.json
  • rust/target/debug/.fingerprint/phenotype-test-fixtures-5ee5ecf852c7ee58/dep-lib-phenotype_test_fixtures
  • rust/target/debug/.fingerprint/phenotype-test-fixtures-5ee5ecf852c7ee58/invoked.timestamp
  • rust/target/debug/.fingerprint/phenotype-test-fixtures-5ee5ecf852c7ee58/lib-phenotype_test_fixtures
  • rust/target/debug/.fingerprint/phenotype-test-fixtures-5ee5ecf852c7ee58/lib-phenotype_test_fixtures.json
  • rust/target/debug/.fingerprint/phenotype-test-fixtures-81de849ec633b144/dep-lib-phenotype_test_fixtures
  • rust/target/debug/.fingerprint/phenotype-test-fixtures-81de849ec633b144/invoked.timestamp
  • rust/target/debug/.fingerprint/phenotype-test-fixtures-81de849ec633b144/lib-phenotype_test_fixtures
  • rust/target/debug/.fingerprint/phenotype-test-fixtures-81de849ec633b144/lib-phenotype_test_fixtures.json
  • rust/target/debug/.fingerprint/phenotype-test-fixtures-d1722b9ec143f9c9/dep-test-lib-phenotype_test_fixtures
  • rust/target/debug/.fingerprint/phenotype-test-fixtures-d1722b9ec143f9c9/invoked.timestamp
  • rust/target/debug/.fingerprint/phenotype-test-fixtures-d1722b9ec143f9c9/test-lib-phenotype_test_fixtures
  • rust/target/debug/.fingerprint/phenotype-test-fixtures-d1722b9ec143f9c9/test-lib-phenotype_test_fixtures.json
  • rust/target/debug/.fingerprint/phenotype-test-infra-4639080f1fd13fea/dep-lib-phenotype_test_infra

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/health-integration
✨ Simplify code
  • Create PR with simplified code
  • Commit simplified code in branch fix/health-integration

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@KooshaPari
Copy link
Copy Markdown
Owner Author

Accidentally committed target/ build artifacts — redoing

@KooshaPari KooshaPari closed this May 28, 2026
@socket-security
Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Addedcargo/​async-trait@​0.1.8910010093100100
Addedcargo/​chrono@​0.4.449910093100100
Addedcargo/​futures-util@​0.3.3210010093100100
Addedcargo/​mockall@​0.13.110010093100100
Addedcargo/​uuid@​1.23.110010093100100

View full report

@KooshaPari KooshaPari deleted the fix/health-integration branch May 28, 2026 02:43
Copy link
Copy Markdown

@cursor cursor Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 2 potential issues.

Fix All in Cursor

Bugbot Autofix is ON, but it could not run because the branch was deleted or merged before autofix could start.

Reviewed by Cursor Bugbot for commit fb5bc0f. Configure here.

@@ -0,0 +1 @@
{"rustc_fingerprint":8767480097696730991,"outputs":{"16573520171876592124":{"success":true,"status":"","code":0,"stdout":"___.exe\nlib___.rlib\n___.dll\n___.dll\n___.lib\n___.dll\nC:\\Users\\koosh\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\npacked\n___\ndebug_assertions\npanic=\"unwind\"\nproc_macro\ntarget_abi=\"\"\ntarget_arch=\"x86_64\"\ntarget_endian=\"little\"\ntarget_env=\"msvc\"\ntarget_family=\"windows\"\ntarget_feature=\"cmpxchg16b\"\ntarget_feature=\"fxsr\"\ntarget_feature=\"sse\"\ntarget_feature=\"sse2\"\ntarget_feature=\"sse3\"\ntarget_has_atomic=\"128\"\ntarget_has_atomic=\"16\"\ntarget_has_atomic=\"32\"\ntarget_has_atomic=\"64\"\ntarget_has_atomic=\"8\"\ntarget_has_atomic=\"ptr\"\ntarget_os=\"windows\"\ntarget_pointer_width=\"64\"\ntarget_vendor=\"pc\"\nwindows\n","stderr":""},"351583688373434005":{"success":true,"status":"","code":0,"stdout":"rustc 1.95.0 (59807616e 2026-04-14)\nbinary: rustc\ncommit-hash: 59807616e1fa2540724bfbac14d7976d7e4a3860\ncommit-date: 2026-04-14\nhost: x86_64-pc-windows-msvc\nrelease: 1.95.0\nLLVM version: 22.1.2\n","stderr":""}},"successes":{}} No newline at end of file
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Build artifacts directory committed to repository

High Severity

The entire rust/target/ directory (Cargo's build output) is being committed to the repository. This includes .rustc_info.json, CACHEDIR.TAG, and hundreds of .fingerprint files. These are machine-generated build artifacts that bloat the repo, cause merge conflicts, and leak local environment details (e.g., C:\Users\koosh\.rustup\... paths). A .gitignore entry for target/ is missing or not effective.

Additional Locations (1)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit fb5bc0f. Configure here.

&self,
project_paths: &[impl AsRef<std::path::Path> + Send + Sync + Clone],
) -> HealthRegistry {
let registry = HealthRegistry::new();
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dead ComplianceHealthCheck struct with unused fields

Low Severity

ComplianceHealthCheck is defined with scanner and project_path fields and a pub fn new() constructor, but it no longer implements any trait or has any methods that use those fields. It's structurally identical to the new ComplianceHealthChecker but without the HealthChecker impl. This appears to be leftover code from the refactor that now serves no purpose.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit fb5bc0f. Configure here.

Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request refactors the compliance scanner's health integration to align with the updated phenotype-health library, replacing the old HealthCheck and HealthRegistry with HealthChecker and HealthResponse. Additionally, Cargo build artifacts under the rust/target/ directory were accidentally committed. Feedback focuses on removing the redundant ComplianceHealthCheck struct, parallelizing the sequential project scans to improve performance, and untracking the committed build artifacts.

Comment on lines +105 to 123
/// Health check based on compliance scan results
#[derive(Debug)]
pub struct ComplianceHealthCheck {
scanner: Arc<crate::ComplianceScanner>,
project_path: std::path::PathBuf,
}

impl ComplianceHealthCheck {
/// Create a new compliance health check
pub fn new(
scanner: Arc<crate::ComplianceScanner>,
project_path: impl AsRef<std::path::Path>,
) -> Self {
Self {
scanner,
project_path: project_path.as_ref().to_path_buf(),
}
}
}
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The ComplianceHealthCheck struct and its implementation are redundant and unused. It appears that ComplianceHealthChecker was introduced to replace it, but the old struct was left behind. Removing this dead code will improve maintainability and keep the codebase clean.

Comment on lines 178 to 194
for path in project_paths {
if let Ok(report) = self.check_project(path).await {
// Create a component health check based on the report
let status = report.overall_status;
overall = overall.worse(report.overall_status);
let component_name = path
.as_ref()
.file_name()
.and_then(|n| n.to_str())
.unwrap_or("unknown")
.to_string();

debug!("Creating health check for {}: {:?}", component_name, status);
let _check = ComponentHealthCheck::new(component_name, status);
// Note: We'd need to register this, but HealthRegistry::register is async
// For now, just log it
debug!(
"Creating health response entry for {}: {:?}",
component_name, report.overall_status
);
checks.extend(report.checks.iter().map(snapshot_to_check_result));
}
}
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

Scanning multiple projects sequentially using .await in a loop can be a significant performance bottleneck, especially when there are many projects or when the scans take some time. Running these scans in parallel using futures_util::future::join_all will greatly improve efficiency.

        let futures = project_paths.iter().cloned().map(|path| async move {
            self.check_project(path).await.ok().map(|report| (path, report))
        });
        let results = futures_util::future::join_all(futures).await;

        for (path, report) in results.into_iter().flatten() {
            overall = overall.worse(report.overall_status);
            let component_name = path
                .as_ref()
                .file_name()
                .and_then(|n| n.to_str())
                .unwrap_or("unknown")
                .to_string();

            debug!(
                "Creating health response entry for {}: {:?}",
                component_name, report.overall_status
            );
            checks.extend(report.checks.iter().map(snapshot_to_check_result));
        }

@@ -0,0 +1 @@
{"rustc_fingerprint":8767480097696730991,"outputs":{"16573520171876592124":{"success":true,"status":"","code":0,"stdout":"___.exe\nlib___.rlib\n___.dll\n___.dll\n___.lib\n___.dll\nC:\\Users\\koosh\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\npacked\n___\ndebug_assertions\npanic=\"unwind\"\nproc_macro\ntarget_abi=\"\"\ntarget_arch=\"x86_64\"\ntarget_endian=\"little\"\ntarget_env=\"msvc\"\ntarget_family=\"windows\"\ntarget_feature=\"cmpxchg16b\"\ntarget_feature=\"fxsr\"\ntarget_feature=\"sse\"\ntarget_feature=\"sse2\"\ntarget_feature=\"sse3\"\ntarget_has_atomic=\"128\"\ntarget_has_atomic=\"16\"\ntarget_has_atomic=\"32\"\ntarget_has_atomic=\"64\"\ntarget_has_atomic=\"8\"\ntarget_has_atomic=\"ptr\"\ntarget_os=\"windows\"\ntarget_pointer_width=\"64\"\ntarget_vendor=\"pc\"\nwindows\n","stderr":""},"351583688373434005":{"success":true,"status":"","code":0,"stdout":"rustc 1.95.0 (59807616e 2026-04-14)\nbinary: rustc\ncommit-hash: 59807616e1fa2540724bfbac14d7976d7e4a3860\ncommit-date: 2026-04-14\nhost: x86_64-pc-windows-msvc\nrelease: 1.95.0\nLLVM version: 22.1.2\n","stderr":""}},"successes":{}} No newline at end of file
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The target/ directory contains build artifacts generated by Cargo. These files should not be committed to SCM. Please remove the target/ directory from git tracking and add it to your .gitignore file.

@sonarqubecloud
Copy link
Copy Markdown

@augmentcode
Copy link
Copy Markdown

augmentcode Bot commented May 28, 2026

🤖 Augment PR Summary

Summary: Refactors the Rust compliance scanner health integration to work with the current phenotype-health API.

Changes:

  • Replaces the removed registry/check traits with HealthChecker, HealthResponse, and HealthCheckResult types.
  • Adds local report structures (HealthSnapshot, ReportSummary, HealthReport) for scan-derived reporting.
  • Introduces ComplianceHealthChecker that runs scans via spawn_blocking and maps scan outcomes to HealthStatus.
  • Updates ComplianceHealthMonitor::build_health_registry to return an aggregated HealthResponse with per-finding check entries.
  • Adds a Rust Cargo.lock file.
  • Includes a large number of rust/target/** build artifacts (fingerprints, binaries, dep files).

Technical Notes: The health HTTP payload shape appears to shift from a registry model to a concrete HealthResponse, and build artifacts in rust/target look environment-specific (Windows paths, compiled outputs).

🤖 Was this summary useful? React with 👍 or 👎

Copy link
Copy Markdown

@augmentcode augmentcode Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review completed. 4 suggestions posted.

Fix All in Augment

Comment augment review to trigger a new review at any time.

@@ -0,0 +1 @@
{"rustc_fingerprint":8767480097696730991,"outputs":{"16573520171876592124":{"success":true,"status":"","code":0,"stdout":"___.exe\nlib___.rlib\n___.dll\n___.dll\n___.lib\n___.dll\nC:\\Users\\koosh\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\npacked\n___\ndebug_assertions\npanic=\"unwind\"\nproc_macro\ntarget_abi=\"\"\ntarget_arch=\"x86_64\"\ntarget_endian=\"little\"\ntarget_env=\"msvc\"\ntarget_family=\"windows\"\ntarget_feature=\"cmpxchg16b\"\ntarget_feature=\"fxsr\"\ntarget_feature=\"sse\"\ntarget_feature=\"sse2\"\ntarget_feature=\"sse3\"\ntarget_has_atomic=\"128\"\ntarget_has_atomic=\"16\"\ntarget_has_atomic=\"32\"\ntarget_has_atomic=\"64\"\ntarget_has_atomic=\"8\"\ntarget_has_atomic=\"ptr\"\ntarget_os=\"windows\"\ntarget_pointer_width=\"64\"\ntarget_vendor=\"pc\"\nwindows\n","stderr":""},"351583688373434005":{"success":true,"status":"","code":0,"stdout":"rustc 1.95.0 (59807616e 2026-04-14)\nbinary: rustc\ncommit-hash: 59807616e1fa2540724bfbac14d7976d7e4a3860\ncommit-date: 2026-04-14\nhost: x86_64-pc-windows-msvc\nrelease: 1.95.0\nLLVM version: 22.1.2\n","stderr":""}},"successes":{}} No newline at end of file
Copy link
Copy Markdown

@augmentcode augmentcode Bot May 28, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

rust/target/.rustc_info.json:1 — This looks like Cargo build output under rust/target/** and is machine-specific; committing it will cause noisy diffs and non-reproducible changes. Consider removing rust/target from the repo and adding it to .gitignore.

Severity: high

Other Locations
  • rust/target/CACHEDIR.TAG:1
  • rust/target/debug/.cargo-lock:1
  • rust/target/debug/incremental/phenotype_testing-09k6i6jmfxc55/s-hixhubs6eu-0jb9h6n.lock:1

Fix This in Augment

🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.

@@ -0,0 +1 @@
C:\Users\koosh\Dev\TestingKit\rust\target\debug\libphenotype_compliance_scanner.rlib: C:\Users\koosh\Dev\TestingKit\rust\phenotype-compliance-scanner\src\async_scan.rs C:\Users\koosh\Dev\TestingKit\rust\phenotype-compliance-scanner\src\lib.rs
Copy link
Copy Markdown

@augmentcode augmentcode Bot May 28, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

rust/target/debug/libphenotype_compliance_scanner.d:1 — This dependency file contains absolute local Windows paths, which are not portable and can leak developer-specific paths. These .d artifacts typically belong in target/ and shouldn’t be committed.

Severity: medium

Other Locations
  • rust/target/debug/libphenotype_mock.d:1
  • rust/target/debug/libphenotype_test_infra.d:1
  • rust/target/debug/libphenotype_testing.d:1

Fix This in Augment

🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.

let mut overall = HealthStatus::Healthy;

for path in project_paths {
if let Ok(report) = self.check_project(path).await {
Copy link
Copy Markdown

@augmentcode augmentcode Bot May 28, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

rust/phenotype-compliance-scanner/src/health_integration.rs:179 — In build_health_registry, failures from check_project() are silently ignored, which can yield an overall Healthy response even when scans are failing. Consider how you want errors to affect overall and whether failed projects should produce an explicit check entry.

Severity: medium

Fix This in Augment

🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.

"Creating health response entry for {}: {:?}",
component_name, report.overall_status
);
checks.extend(report.checks.iter().map(snapshot_to_check_result));
Copy link
Copy Markdown

@augmentcode augmentcode Bot May 28, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

rust/phenotype-compliance-scanner/src/health_integration.rs:192HealthResponse.checks entries are derived only from HealthSnapshot.component (rule/message), while the computed component_name (project name) is only logged. If consumers expect per-project checks, consider whether the check service should include the project identifier to avoid ambiguous names.

Severity: low

Fix This in Augment

🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.

@kilo-code-bot
Copy link
Copy Markdown

kilo-code-bot Bot commented May 28, 2026

Code Review Summary

Status: 3 Issues Found | Recommendation: Address before merge

Overview

Severity Count
CRITICAL 2
WARNING 2
SUGGESTION 0
Issue Details (click to expand)

CRITICAL

File Line Issue
rust/target/.rustc_info.json 1 Build artifacts directory committed to repository - Cargo target/ directory should be in .gitignore and never committed
rust/phenotype-compliance-scanner/src/health_integration.rs 107 Dead code: ComplianceHealthCheck struct defined but has no HealthCheck trait implementation. The new ComplianceHealthChecker implements HealthChecker instead, making this struct unreachable.

WARNING

File Line Issue
rust/phenotype-compliance-scanner/src/health_integration.rs 291-292 Scoring formula issue: 100.0 - (total_weight / actionable_findings as f32) doesn't compound correctly. Example: 1 critical (score 90) equals 2 critical (score 90) due to division. Likely intended: 100.0 - total_weight.min(100.0)
rust/phenotype-compliance-scanner/src/health_integration.rs 188-191 Debug logging may be unnecessary overhead in production. Consider removing or gating behind trace level.
Other Observations (not in diff)

These issues were noted but cannot receive inline comments as they are in unchanged code:

  • The scoring function's edge case for zero actionable findings is handled correctly with early return.
  • Consider adding a rust/.gitignore to exclude /target and other build artifacts.
Files Reviewed (4 files)
  • rust/phenotype-compliance-scanner/src/health_integration.rs - 4 issues (refactored)
  • rust/target/.rustc_info.json - build artifact (should be removed)
  • rust/target/debug/libphenotype_compliance_scanner.d - build artifact (should be removed)
  • rust/Cargo.lock - added (appropriate for workspace)

Reviewed by laguna-m.1-20260312:free · 1,393,586 tokens

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants