Astrid is a portable, capability-secure operating system for composable software.
This report summarizes scanner evidence for astrid-runtime/astrid, a Rust project with 10,280 GitHub stars. SynthScan examined 555,805 lines of code across 1608 source files, recording 2256 pattern matches distributed across 16 syntactic categories. The legacy adjusted pattern signal is 5.2 (Moderate pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 1914 finding(s).
Are imports declared and package/API names verified? 45 finding(s).
Are wrappers, guards, and repeated structures necessary? 562 finding(s).
Which changes need focused human review? 2256 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 2256 distinct pattern matches across 16 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | Cargo.toml | 81 | # `astrid-gateway` (and `astrid-integration-tests` for the gateway | COMMENT |
| LOW | Cargo.toml | 161 | # capsules to record into the same recorder the gateway exports — | COMMENT |
| LOW | Cargo.toml | 181 | # topic, principal) routing demux so the synchronous `EventBus::publish` | COMMENT |
| LOW | Cargo.toml | 221 | jsonwebtoken = { version = "10.3", default-features = false, features = ["aws_lc_rs", "use_pem"] } | COMMENT |
| LOW | Cargo.toml | 241 | # `rt-multi-thread`). | COMMENT |
| LOW | crates/astrid-capsule-types/src/memory_ledger.rs | 1 | //! Shared per-principal peak-memory accounting ledger. | COMMENT |
| LOW | crates/astrid-capsule-types/src/memory_ledger.rs | 21 | //! linear memory a *prior* leaseholder allocated. The peak is thus an upper | COMMENT |
| LOW | crates/astrid-capsule-types/src/memory_ledger.rs | 41 | COMMENT | |
| LOW | crates/astrid-capsule-types/src/memory_ledger.rs | 81 | // strictly above it. Evicting a bigger user to record a smaller one | COMMENT |
| LOW | crates/astrid-capsule-types/src/limits.rs | 1 | //! Host-derived runtime concurrency limits for the WASM capsule engine. | COMMENT |
| LOW | crates/astrid-capsule-types/src/limits.rs | 41 | /// concurrency ceiling for a capsule's interceptor invocations). | COMMENT |
| LOW | crates/astrid-capsule-types/src/limits.rs | 61 | /// Maximum redirect hops the host follows by default, and the caller ceiling a | COMMENT |
| LOW | crates/astrid-capsule-types/src/limits.rs | 81 | #[must_use] | COMMENT |
| LOW | crates/astrid-capsule-types/src/limits.rs | 101 | pub fn host_io_concurrency_default() -> usize { | COMMENT |
| LOW | crates/astrid-capsule-types/src/limits.rs | 141 | } | COMMENT |
| LOW | crates/astrid-capsule-types/src/limits.rs | 201 | } | COMMENT |
| LOW | crates/astrid-capsule-types/src/limits.rs | 221 | /// caller sets no corresponding `*-ms`. An explicit caller value OVERRIDES the | COMMENT |
| LOW | crates/astrid-capsule-types/src/limits.rs | 241 | /// `connect-ms` (a default, not a ceiling). Host const default: 30s. | COMMENT |
| LOW | crates/astrid-capsule-types/src/limits.rs | 361 | COMMENT | |
| LOW | crates/astrid-capsule-types/src/fuel_ledger.rs | 1 | //! Shared per-principal CPU accounting ledger. | COMMENT |
| LOW | crates/astrid-capsule-types/src/fuel_ledger.rs | 21 | //! ledger had to become cross-capsule first). The run-loop CPU bound remains | COMMENT |
| LOW | crates/astrid-capsule-types/src/fuel_ledger.rs | 81 | /// Cloning is cheap (an `Arc` bump) and every clone observes the same map, so | COMMENT |
| LOW | crates/astrid-capsule-types/src/fuel_ledger.rs | 121 | /// principal. The closure always returns `Some`, so `fetch_update` can never | COMMENT |
| LOW | crates/astrid-capsule-types/src/fuel_ledger.rs | 141 | pub fn total(&self, principal: &PrincipalId) -> u64 { | COMMENT |
| LOW | crates/astrid-capsule-types/src/fuel_ledger.rs | 181 | /// Shared, cloneable per-principal CPU-**rate** limiter — the deny side of the | COMMENT |
| LOW | crates/astrid-capsule-types/src/fuel_ledger.rs | 201 | /// `Mutex`, so distinct principals never contend. This deliberately does not | COMMENT |
| LOW | crates/astrid-capsule-types/src/fuel_ledger.rs | 301 | /// the in-window fuel. Pure helper over a held cell guard. | COMMENT |
| LOW | crates/astrid-capsule-types/src/fuel_ledger.rs | 341 | COMMENT | |
| LOW | crates/astrid-capsule-types/src/fuel_ledger.rs | 401 | /// Attribute `fuel` to `principal`'s current 1-second window (post-hoc, from | COMMENT |
| LOW | crates/astrid-capsule-types/src/fuel_ledger.rs | 461 | }); | COMMENT |
| LOW | …es/astrid-capsule-types/src/capability_presentation.rs | 1 | //! Human-facing presentation for capsule capability grants. | COMMENT |
| LOW | crates/astrid-capsule-types/src/manifest/mod.rs | 21 | /// | COMMENT |
| LOW | crates/astrid-capsule-types/src/manifest/mod.rs | 41 | #[serde(default, deserialize_with = "deserialize_imports_map")] | COMMENT |
| LOW | crates/astrid-capsule-types/src/manifest/mod.rs | 61 | /// Same shape as `publishes`. An entry with a `handler = "..."` field (and | COMMENT |
| LOW | crates/astrid-capsule-types/src/manifest/mod.rs | 81 | #[serde(default, rename = "context_file")] | COMMENT |
| LOW | crates/astrid-capsule-types/src/manifest/mod.rs | 161 | /// carries a `handler` binds that topic to a `#[astrid::interceptor]` | COMMENT |
| LOW | crates/astrid-capsule-types/src/manifest/mod.rs | 201 | D: serde::Deserializer<'de>, | COMMENT |
| LOW | crates/astrid-capsule-types/src/manifest/mod.rs | 341 | /// Optional description of the capsule. | COMMENT |
| LOW | crates/astrid-capsule-types/src/manifest/mod.rs | 381 | /// Unique identifier for this component within the capsule. | COMMENT |
| LOW | crates/astrid-capsule-types/src/manifest/mod.rs | 401 | /// | COMMENT |
| LOW | crates/astrid-capsule-types/src/manifest/mod.rs | 421 | pub description: Option<String>, | COMMENT |
| LOW | crates/astrid-capsule-types/src/manifest/mod.rs | 441 | /// sibling `enum_values` field; the kebab `options-from` form is | COMMENT |
| LOW | crates/astrid-capsule-types/src/manifest/mod.rs | 461 | /// `Shared` and pull host-wide values into its sandbox. The kernel | COMMENT |
| LOW | crates/astrid-capsule-types/src/manifest/mod.rs | 481 | /// Template placeholders use `{key}` syntax, where `key` is the name of | COMMENT |
| LOW | crates/astrid-capsule-types/src/manifest/mod.rs | 501 | /// resolves to a non-empty value after trimming. | COMMENT |
| LOW | crates/astrid-capsule-types/src/manifest/mod.rs | 521 | COMMENT | |
| LOW | crates/astrid-capsule-types/src/manifest/mod.rs | 541 | /// through. The fail-closed default — appropriate for anything an | COMMENT |
| LOW | crates/astrid-capsule-types/src/manifest/mod.rs | 581 | /// Path to the declarative command TOML (if static). | COMMENT |
| LOW | crates/astrid-capsule-types/src/manifest/mod.rs | 601 | COMMENT | |
| LOW | crates/astrid-capsule-types/src/manifest/mod.rs | 621 | /// This type has no manifest or runtime semantics. It remains public only so | COMMENT |
| LOW | crates/astrid-capsule-types/src/manifest/mod.rs | 641 | pub platform: String, | COMMENT |
| LOW | crates/astrid-capsule-types/src/manifest/mod.rs | 661 | /// `[subscribe]` entry's `handler` (must match an | COMMENT |
| LOW | …ates/astrid-capsule-types/src/manifest/capabilities.rs | 1 | //! The `[capabilities]` block — what a capsule asks for from the OS. | COMMENT |
| LOW | …ates/astrid-capsule-types/src/manifest/capabilities.rs | 21 | /// is present for future cross-capsule KV request declarations. | COMMENT |
| LOW | …ates/astrid-capsule-types/src/manifest/capabilities.rs | 41 | /// child, so persistence is an additional operator-reviewed opt-in on top | COMMENT |
| LOW | …ates/astrid-capsule-types/src/manifest/capabilities.rs | 61 | /// literal DNS name or `*` (universal — see security review note | COMMENT |
| LOW | …ates/astrid-capsule-types/src/manifest/capabilities.rs | 81 | /// | COMMENT |
| LOW | …ates/astrid-capsule-types/src/manifest/capabilities.rs | 101 | COMMENT | |
| LOW | …ates/astrid-capsule-types/src/manifest/capabilities.rs | 161 | COMMENT | |
| LOW | crates/astrid-capsule-types/src/manifest/topics.rs | 1 | //! Cargo-shaped `[publish]` / `[subscribe]` tables. | COMMENT |
| 1513 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | crates/astrid-capsule-types/src/fuel_ledger.rs | 599 | // ── FuelRateLimiter (PR2: the deny side) ───────────────────────────── | COMMENT |
| MEDIUM | crates/astrid-capabilities/src/policy.rs | 666 | // ── Device-scope attenuation ────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/astrid-gateway/tests/router.rs | 896 | // ── Device-scoped bearer: key_id extraction + per-key revocation ────── | COMMENT |
| MEDIUM | crates/astrid-gateway/src/routes/distribution.rs | 118 | // ── parsing helpers ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/astrid-gateway/src/routes/principals.rs | 340 | // ── /api/sys/capabilities ──────────────────────────────────────── | COMMENT |
| MEDIUM | crates/astrid-gateway/src/routes/principals.rs | 431 | // ── Device management ──────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/astrid-gateway/src/routes/principals.rs | 582 | // ── Helpers ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/astrid-gateway/src/routes/env.rs | 244 | // ── helpers ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/astrid-gateway/src/routes/capsules.rs | 523 | // ── helpers (kernel client error mapping) ──────────────────────── | COMMENT |
| MEDIUM | crates/astrid-config/src/defaults.toml | 13 | # ============================================================================ | COMMENT |
| MEDIUM | crates/astrid-config/src/defaults.toml | 15 | # ============================================================================ | COMMENT |
| MEDIUM | crates/astrid-config/src/defaults.toml | 47 | # ============================================================================ | COMMENT |
| MEDIUM | crates/astrid-config/src/defaults.toml | 49 | # ============================================================================ | COMMENT |
| MEDIUM | crates/astrid-config/src/defaults.toml | 75 | # ============================================================================ | COMMENT |
| MEDIUM | crates/astrid-config/src/defaults.toml | 77 | # ============================================================================ | COMMENT |
| MEDIUM | crates/astrid-config/src/defaults.toml | 121 | # ============================================================================ | COMMENT |
| MEDIUM | crates/astrid-config/src/defaults.toml | 123 | # ============================================================================ | COMMENT |
| MEDIUM | crates/astrid-config/src/defaults.toml | 136 | # ============================================================================ | COMMENT |
| MEDIUM | crates/astrid-config/src/defaults.toml | 138 | # ============================================================================ | COMMENT |
| MEDIUM | crates/astrid-config/src/defaults.toml | 158 | # ============================================================================ | COMMENT |
| MEDIUM | crates/astrid-config/src/defaults.toml | 160 | # ============================================================================ | COMMENT |
| MEDIUM | crates/astrid-config/src/defaults.toml | 193 | # ============================================================================ | COMMENT |
| MEDIUM | crates/astrid-config/src/defaults.toml | 195 | # ============================================================================ | COMMENT |
| MEDIUM | crates/astrid-config/src/defaults.toml | 243 | # ============================================================================ | COMMENT |
| MEDIUM | crates/astrid-config/src/defaults.toml | 245 | # ============================================================================ | COMMENT |
| MEDIUM | crates/astrid-config/src/defaults.toml | 257 | # ============================================================================ | COMMENT |
| MEDIUM | crates/astrid-config/src/defaults.toml | 259 | # ============================================================================ | COMMENT |
| MEDIUM | crates/astrid-config/src/defaults.toml | 293 | # ============================================================================ | COMMENT |
| MEDIUM | crates/astrid-config/src/defaults.toml | 295 | # ============================================================================ | COMMENT |
| MEDIUM | crates/astrid-config/src/defaults.toml | 311 | # ============================================================================ | COMMENT |
| MEDIUM | crates/astrid-config/src/defaults.toml | 313 | # ============================================================================ | COMMENT |
| MEDIUM | crates/astrid-config/src/defaults.toml | 341 | # ============================================================================ | COMMENT |
| MEDIUM | crates/astrid-config/src/defaults.toml | 343 | # ============================================================================ | COMMENT |
| MEDIUM | crates/astrid-config/src/defaults.toml | 362 | # ============================================================================ | COMMENT |
| MEDIUM | crates/astrid-config/src/defaults.toml | 364 | # ============================================================================ | COMMENT |
| MEDIUM | crates/astrid-config/src/defaults.toml | 399 | # ============================================================================ | COMMENT |
| MEDIUM | crates/astrid-config/src/defaults.toml | 401 | # ============================================================================ | COMMENT |
| MEDIUM | crates/astrid-config/src/defaults.toml | 431 | # ============================================================================ | COMMENT |
| MEDIUM | crates/astrid-config/src/defaults.toml | 433 | # ============================================================================ | COMMENT |
| MEDIUM | crates/astrid-config/src/defaults.toml | 451 | # ============================================================================ | COMMENT |
| MEDIUM | crates/astrid-config/src/defaults.toml | 453 | # ============================================================================ | COMMENT |
| MEDIUM | crates/astrid-config/src/defaults.toml | 466 | # ============================================================================ | COMMENT |
| MEDIUM | crates/astrid-config/src/defaults.toml | 468 | # ============================================================================ | COMMENT |
| MEDIUM | crates/astrid-config/src/defaults.toml | 492 | # ============================================================================ | COMMENT |
| MEDIUM | crates/astrid-config/src/defaults.toml | 494 | # ============================================================================ | COMMENT |
| MEDIUM | crates/astrid-config/src/defaults.toml | 518 | # ============================================================================ | COMMENT |
| MEDIUM | crates/astrid-config/src/defaults.toml | 520 | # ============================================================================ | COMMENT |
| MEDIUM | …integration-tests/tests/management_api_admin_topics.rs | 39 | // ── Fixtures ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …integration-tests/tests/management_api_admin_topics.rs | 139 | // ── Full cross-tenant matrix ───────────────────────────────────────── | COMMENT |
| MEDIUM | …integration-tests/tests/management_api_admin_topics.rs | 202 | // ── Self-scope resolves from target principal ──────────────────────── | COMMENT |
| MEDIUM | …integration-tests/tests/management_api_admin_topics.rs | 227 | // ── Agent built-in caps explicitly list self-admin entries ────────── | COMMENT |
| MEDIUM | …integration-tests/tests/management_api_admin_topics.rs | 248 | // ── Audit method labels ────────────────────────────────────────────── | COMMENT |
| MEDIUM | …integration-tests/tests/management_api_admin_topics.rs | 288 | // ── Wire-format round trips ───────────────────────────────────────── | COMMENT |
| MEDIUM | …integration-tests/tests/management_api_admin_topics.rs | 388 | // ── ArcSwap hot-reload viewed from outside the kernel crate ───────── | COMMENT |
| MEDIUM | …integration-tests/tests/management_api_admin_topics.rs | 471 | // ── Built-in group write protection ───────────────────────────────── | COMMENT |
| MEDIUM | crates/astrid-integration-tests/tests/gateway_e2e.rs | 574 | // ── Kernel boot artefacts on disk ─────────────────────────── | COMMENT |
| MEDIUM | crates/astrid-integration-tests/tests/gateway_e2e.rs | 588 | // ── Gateway state shares the same home ────────────────────── | COMMENT |
| MEDIUM | crates/astrid-integration-tests/tests/gateway_e2e.rs | 621 | // ── Unauthenticated routes against the live state ──────────── | COMMENT |
| MEDIUM | crates/astrid-integration-tests/tests/gateway_e2e.rs | 625 | // ── Audit event bus round-trip ────────────────────────────── | COMMENT |
| MEDIUM | crates/astrid-integration-tests/tests/gateway_e2e.rs | 643 | // ── Cleanup ───────────────────────────────────────────────── | COMMENT |
| 232 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | scripts/test_oci_arm64_container_contract.py | 37 | def test_uses_arch_specific_digest_pinned_ubuntu_base(self) -> None: | CODE |
| LOW⚡ | scripts/test_oci_arm64_container_contract.py | 45 | def test_is_non_root_distro_neutral_and_exposes_no_ports(self) -> None: | CODE |
| LOW⚡ | scripts/test_oci_arm64_container_contract.py | 51 | def test_reuses_the_reviewed_entrypoint_contract(self) -> None: | CODE |
| LOW | scripts/test_oci_arm64_container_contract.py | 81 | def test_derived_images_alias_and_cleanup_the_bound_local_base(self) -> None: | CODE |
| LOW⚡ | scripts/test_oci_arm64_container_contract.py | 93 | def test_restricted_runtime_is_rootless_read_only_and_unprivileged(self) -> None: | CODE |
| LOW⚡ | scripts/test_oci_arm64_container_contract.py | 101 | def test_real_daemon_readiness_and_authenticated_status_are_required(self) -> None: | CODE |
| LOW⚡ | scripts/test_oci_arm64_container_contract.py | 106 | def test_entrypoint_stages_and_reauthenticates_signed_distro(self) -> None: | CODE |
| LOW⚡ | scripts/test_oci_arm64_container_contract.py | 116 | def test_foreground_daemon_allowlist_cannot_enable_ephemeral_mode(self) -> None: | CODE |
| LOW | scripts/test_oci_arm64_container_contract.py | 182 | def test_scan_sbom_and_per_export_blob_evidence_are_required(self) -> None: | CODE |
| LOW | scripts/test_oci_arm64_container_contract.py | 255 | def test_path_filters_and_test_lane_include_shared_binding_contract(self) -> None: | CODE |
| LOW | scripts/test_oci_arm64_container_contract.py | 260 | def test_oidc_signing_requires_manual_protected_main_and_environment(self) -> None: | CODE |
| LOW | scripts/test_oci_arm64_container_contract.py | 271 | def test_workflow_never_invokes_registry_publication_tools(self) -> None: | CODE |
| LOW | scripts/test_oci_arm64_container_contract.py | 288 | def test_workflow_never_uses_mutable_or_canonical_image_tags(self) -> None: | CODE |
| LOW | scripts/test_oci_arm64_container_contract.py | 301 | def test_workflow_cannot_enable_emulation_or_multi_platform_builds(self) -> None: | CODE |
| LOW | scripts/test_macos_release_packaging.py | 51 | def test_package_is_deterministic_and_validates(self) -> None: | CODE |
| LOW | scripts/test_macos_release_packaging.py | 65 | def test_packaging_rejects_redirects(self) -> None: | CODE |
| LOW | scripts/test_macos_release_packaging.py | 77 | def test_packaging_rejects_output_inside_the_release_root(self) -> None: | CODE |
| LOW | scripts/test_macos_release_packaging.py | 86 | def test_validation_rejects_noncanonical_modes(self) -> None: | CODE |
| LOW | scripts/test_macos_release_packaging.py | 105 | def test_validation_requires_every_common_executable(self) -> None: | CODE |
| LOW⚡ | scripts/test_musl_release_manifest.py | 71 | def test_round_trip_is_deterministic_and_bound_to_legacy_release(self) -> None: | CODE |
| LOW⚡ | scripts/test_musl_release_manifest.py | 80 | def test_accepts_exactly_the_two_supported_musl_targets(self) -> None: | CODE |
| LOW⚡ | scripts/test_musl_release_manifest.py | 88 | def test_rejects_missing_duplicate_and_unexpected_targets(self) -> None: | CODE |
| LOW | scripts/test_musl_release_manifest.py | 104 | def test_rejects_every_release_identity_mismatch(self) -> None: | CODE |
| LOW | scripts/test_musl_release_manifest.py | 123 | def test_rejects_a_different_legacy_manifest_digest_or_asset(self) -> None: | CODE |
| LOW | scripts/test_musl_release_manifest.py | 134 | def test_rejects_partial_combined_checksums(self) -> None: | CODE |
| LOW | scripts/test_musl_release_manifest.py | 140 | def test_validate_command_requires_and_checks_the_legacy_manifest(self) -> None: | CODE |
| LOW | scripts/runatal_v1_volume.py | 61 | def physically_valid_record_at(data, offset): | CODE |
| LOW | scripts/runatal_v1_volume.py | 97 | def has_physically_valid_record_after(data, start): | CODE |
| LOW | scripts/runatal_v1_volume.py | 106 | def volume_metadata_mutations(payload): | CODE |
| LOW | scripts/runatal_v1_reader.py | 304 | def validate_content_boundary(left_object, left, right_prefix, profile, memo): | CODE |
| LOW | scripts/runatal_v1_reader.py | 395 | def verify_content_summary_vectors(): | CODE |
| LOW | scripts/runatal_v1_reader.py | 523 | def validate_derivation_invocation(record): | CODE |
| LOW | scripts/runatal_v1_reader.py | 566 | def validate_derivation_evidence(record): | CODE |
| LOW⚡ | scripts/test_changelog.py | 66 | def test_parse_labels_accepts_github_escaped_newline(self): | STRING |
| LOW⚡ | scripts/test_changelog.py | 72 | def test_escaped_newline_does_not_create_partial_label_matches(self): | STRING |
| LOW⚡ | scripts/test_changelog.py | 82 | def test_github_multilabel_payload_skips_changelog_check(self): | STRING |
| LOW⚡ | scripts/test_changelog.py | 92 | def test_code_without_fragment_fails(self): | STRING |
| LOW⚡ | scripts/test_changelog.py | 101 | def test_code_with_fragment_passes(self): | STRING |
| LOW⚡ | scripts/test_changelog.py | 111 | def test_skip_label_passes_without_fragment(self): | STRING |
| LOW⚡ | scripts/test_changelog.py | 121 | def test_docs_only_passes_without_fragment(self): | STRING |
| LOW⚡ | scripts/test_changelog.py | 131 | def test_cargo_lock_requires_fragment(self): | STRING |
| LOW⚡ | scripts/test_changelog.py | 135 | def test_invalid_fragment_name_fails(self): | STRING |
| LOW⚡ | scripts/test_changelog.py | 144 | def test_changelog_md_edit_is_not_enough_for_code(self): | STRING |
| LOW⚡ | scripts/test_changelog.py | 152 | def test_code_plus_changelog_and_fragment_still_fails(self): | STRING |
| LOW⚡ | scripts/test_changelog.py | 161 | def test_release_skip_allows_changelog_and_cargo(self): | STRING |
| LOW⚡ | scripts/test_changelog.py | 241 | def test_roll_rejects_duplicate_version_headings(self): | STRING |
| LOW⚡ | scripts/test_changelog.py | 250 | def test_roll_rejects_staged_and_dated_version_headings(self): | STRING |
| LOW⚡ | scripts/test_changelog.py | 259 | def test_notes_match_awk_style_section_body(self): | STRING |
| LOW⚡ | scripts/test_changelog.py | 268 | def test_roll_command_deletes_fragments(self): | STRING |
| LOW | scripts/test_changelog.py | 172 | def test_empty_fragment_body_fails(self): | STRING |
| LOW | scripts/test_changelog.py | 187 | def test_entry_wraps_prose_as_bullet(self): | STRING |
| LOW | scripts/test_changelog.py | 193 | def test_roll_moves_unreleased_and_fragments_without_touching_history(self): | STRING |
| LOW | scripts/test_changelog.py | 211 | def test_roll_finalizes_matching_staged_version_in_place(self): | STRING |
| LOW | scripts/test_changelog.py | 297 | def test_notes_require_rolled_fails_on_pending_fragment(self): | STRING |
| LOW | scripts/test_validate_release_archive.py | 38 | def test_linux_and_windows_inventories_validate(self) -> None: | CODE |
| LOW | scripts/test_validate_release_archive.py | 48 | def test_missing_provider_is_rejected(self) -> None: | CODE |
| LOW | scripts/test_validate_release_archive.py | 60 | def test_redirecting_member_is_rejected(self) -> None: | CODE |
| LOW⚡ | scripts/test_fskit_app_handoff.py | 66 | def test_cold_install_does_not_signal(self): | STRING |
| LOW⚡ | scripts/test_fskit_app_handoff.py | 71 | def test_verified_old_app_exits_before_replacement(self): | STRING |
| LOW⚡ | scripts/test_fskit_app_handoff.py | 76 | def test_active_mount_refuses_before_signal(self): | STRING |
| 204 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | Cargo.toml | 172 | # Oracle-only dependency for the pre-release chunker evidence harness. Persistent | COMMENT |
| MEDIUM | crates/astrid-cli/src/commands/daemon_control.rs | 26 | //! The identity check is also robust to an in-place upgrade replacing the | COMMENT |
| MEDIUM | crates/astrid-capsule/src/engine/wasm/mod.rs | 143 | /// upward, there is no robust primitive for "contains a repo below", and the | COMMENT |
| MEDIUM | crates/astrid-capsule/src/engine/wasm/mod.rs | 6462 | /// the trap's `Display` string — robust across wasmtime point releases and | COMMENT |
| MEDIUM | scripts/test-gateway-quota-fixture.sh | 3 | # This is a harness regression, not evidence of a real gateway journey. | COMMENT |
| MEDIUM | scripts/e2e/runtime-harness.sh | 382 | # the harness's published/runtime IDs remain `astrid-capsule-*`. Prefer the | COMMENT |
| MEDIUM | scripts/e2e/runtime-harness.sh | 618 | # wall-clock sleep in this runtime harness. | COMMENT |
| MEDIUM | scripts/e2e/runtime-process-helpers.sh | 69 | # This process was launched directly by the harness, so exercise its native | COMMENT |
| MEDIUM | scripts/e2e/runtime-multi-home-smoke.sh | 90 | # installed capsule set before the harness-owned restart. | COMMENT |
| MEDIUM | scripts/e2e/runtime-multi-home-smoke.sh | 110 | # Match the primary harness' non-interactive declared-config install so | COMMENT |
| MEDIUM | scripts/e2e/runtime-multi-home-smoke.sh | 142 | # the harness-owned process so cleanup cannot leave an untracked second home. | COMMENT |
| MEDIUM | .github/workflows/runtime-e2e.yml | 65 | # Runtime budget: the harness has bounded daemon startup, curl/SSE, fake LLM, | COMMENT |
| MEDIUM | .github/workflows/runtime-e2e.yml | 98 | # Install it up front so the runtime harness cannot trigger an | COMMENT |
| MEDIUM | e2e/first-party-capsule-scenarios.toml | 8 | # family. status = "covered" means the current runtime harness executes it. | COMMENT |
| MEDIUM | e2e/capability-scenarios.toml | 7 | # - status = "covered": the current runtime harness asserts allow/deny behavior | COMMENT |
| MEDIUM | e2e/cli-scenarios.toml | 8 | # status = "covered" means the current runtime harness executes an assertion for | COMMENT |
| MEDIUM | e2e/http-scenarios.toml | 8 | # status = "covered" means the current runtime harness executes an assertion for | COMMENT |
| MEDIUM | e2e/runtime-scenario-specs.toml | 6 | # evidence the harness must assert. Drift tests reject mappings to scenarios | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | CHANGELOG.md | 760 | - **Capsule access is now per-principal, enforced kernel-side at dispatch — closing the gap where the capsule tool surfa | CODE |
| MEDIUM | CHANGELOG.md | 825 | - **`astrid capsule new <name>` scaffolds a complete, first-try-compiling tool capsule — with a toolchain preflight and | CODE |
| MEDIUM | CHANGELOG.md | 891 | - **Per-capsule WASM instance pool: principals' interceptors now run concurrently instead of serialising through one `St | CODE |
| MEDIUM | CHANGELOG.md | 1021 | - **Per-capsule WASM instance pool: principals' interceptors now run concurrently instead of serialising through one `St | CODE |
| MEDIUM | CHANGELOG.md | 1100 | - **Per-domain WIT review fixups (PR #752).** A multi-agent review surfaced fixes addressed in-branch before merge: | CODE |
| MEDIUM | README.md | 293 | astrid capsule new my-capsule # scaffold Capsule.toml, Cargo.toml, src/lib.rs, .cargo/config.toml | CODE |
| MEDIUM | crates/astrid-config/src/defaults.toml | 33 | # Maximum context window size in tokens (soft limit for summarization) | COMMENT |
| MEDIUM | crates/astrid-cli/src/commands/capsule/new.rs | 1 | //! `astrid capsule new <name>` — scaffold a complete, first-try-compiling | COMMENT |
| MEDIUM | crates/astrid-cli/src/commands/capsule/new.rs | 112 | /// Every check is fail-FRIENDLY: nothing here aborts the scaffold. A capsule | COMMENT |
| MEDIUM | crates/astrid-cli/src/commands/capsule/new.rs | 130 | // the caller scaffold). | COMMENT |
| MEDIUM | crates/astrid-cli/src/commands/capsule/new.rs | 358 | /// Print the friendly next-steps message after a successful scaffold. | COMMENT |
| MEDIUM | crates/astrid-capsule/src/engine/wasm/mod.rs | 3687 | // cross-principal race that #813 collapsed the orchestration cliff | COMMENT |
| MEDIUM | crates/astrid-capsule/src/engine/wasm/pool.rs | 6 | //! `astrid#813` orchestration cliff (one LLM turn every ~3s, invariant to | COMMENT |
| MEDIUM | crates/astrid-mcp/src/registry.rs | 5 | //! The runtime's agentic loop uses the registry instead of knowing about | COMMENT |
| MEDIUM | …es/astrid-kernel/src/principal_home_migration/tests.rs | 28 | // source root. Normal v2 boot must not scaffold `home/` at all. | COMMENT |
| MEDIUM | docs/astrid-tensor-logic-composition.md | 624 | ### 9.2 Why scaffold now | COMMENT |
| MEDIUM | docs/metrics.md | 292 | ### 4.3 Capsule lifecycle & WASM sandbox (`astrid-capsule`, `astrid-capsule-install`, kernel orchestration) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/test_oci_arm64_container_contract.py | 4 | CODE | |
| LOW | scripts/check_static_elf.py | 4 | CODE | |
| LOW | scripts/nightly_version.py | 4 | CODE | |
| LOW | scripts/test_macos_release_packaging.py | 3 | CODE | |
| LOW | scripts/package_release_archive.py | 4 | CODE | |
| LOW | scripts/test_musl_release_manifest.py | 3 | CODE | |
| LOW | scripts/test_validate_release_archive.py | 3 | CODE | |
| LOW | scripts/test_windows_release_manifest.py | 3 | CODE | |
| LOW | scripts/test_channel_metadata.py | 3 | CODE | |
| LOW | scripts/test_crate_publication.py | 3 | CODE | |
| LOW | scripts/check_dco.py | 4 | CODE | |
| LOW | scripts/test_release_draft_recovery.py | 3 | CODE | |
| LOW | scripts/validate_macos_release.py | 4 | CODE | |
| LOW | scripts/release_manifest.py | 4 | CODE | |
| LOW | scripts/oci_export_binding.py | 4 | CODE | |
| LOW | scripts/test_check_glibc.py | 3 | CODE | |
| LOW | scripts/runatal_v1_physical.py | 11 | CODE | |
| LOW | scripts/runatal_v1_physical.py | 11 | CODE | |
| LOW | scripts/runatal_v1_physical.py | 11 | CODE | |
| LOW | scripts/changelog.py | 4 | CODE | |
| LOW | scripts/channel_publication.py | 4 | CODE | |
| LOW | scripts/test_release_publication.py | 3 | CODE | |
| LOW | scripts/create_oci_test_shuttle.py | 4 | CODE | |
| LOW | scripts/test_nightly_version.py | 3 | CODE | |
| LOW | scripts/test_oci_export_binding.py | 4 | CODE | |
| LOW | scripts/test_release_manifest.py | 3 | CODE | |
| LOW | scripts/oci_release.py | 4 | CODE | |
| LOW | scripts/crate_publication.py | 4 | CODE | |
| LOW | scripts/release_publication.py | 4 | CODE | |
| LOW | scripts/check_glibc.py | 4 | CODE | |
| LOW | scripts/test_check_static_elf.py | 3 | CODE | |
| LOW | scripts/test_channel_publication.py | 3 | CODE | |
| LOW | scripts/musl_release_manifest.py | 4 | CODE | |
| LOW | scripts/validate_release_archive.py | 4 | CODE | |
| LOW | scripts/windows_release_manifest.py | 4 | CODE | |
| LOW | scripts/release_draft_recovery.py | 4 | CODE | |
| LOW | scripts/test_oci_container_contract.py | 4 | CODE | |
| LOW | scripts/classify_release_build_matrix.py | 1 | CODE | |
| LOW | scripts/test_oci_release.py | 4 | CODE | |
| LOW | scripts/channel_metadata.py | 4 | CODE | |
| LOW | scripts/e2e/check-first-party-capsule-commands.py | 4 | CODE | |
| LOW | scripts/e2e/fake-openai-compat.py | 15 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/test_macos_release_packaging.py | 86 | CODE | |
| LOW | scripts/package_release_archive.py | 42 | CODE | |
| LOW | scripts/runatal_v1_volume.py | 135 | CODE | |
| LOW | scripts/runatal_v1_reader.py | 482 | CODE | |
| LOW | scripts/runatal_v1_reader.py | 523 | CODE | |
| LOW | scripts/runatal_v1_reader.py | 566 | CODE | |
| LOW | scripts/runatal_v1_reader.py | 609 | CODE | |
| LOW | scripts/runatal_v1_reader.py | 837 | CODE | |
| LOW | scripts/test_supervised_fskit.py | 75 | CODE | |
| LOW | scripts/test_supervised_fskit.py | 179 | CODE | |
| LOW | scripts/test_supervised_fskit.py | 199 | CODE | |
| LOW | scripts/test_supervised_fskit.py | 210 | CODE | |
| LOW | scripts/release_manifest.py | 88 | CODE | |
| LOW | scripts/release_manifest.py | 221 | CODE | |
| LOW | scripts/release_manifest.py | 396 | CODE | |
| LOW | scripts/test_mcp_http_live.py | 23 | CODE | |
| LOW | scripts/runatal_v1_sketch.py | 124 | CODE | |
| LOW | scripts/runatal_v1_kv.py | 137 | CODE | |
| LOW | scripts/runatal_v1_kv.py | 237 | CODE | |
| LOW | scripts/runatal_v1_physical.py | 246 | CODE | |
| LOW | scripts/runatal_v1_physical.py | 294 | CODE | |
| LOW | scripts/runatal_v1_physical.py | 365 | CODE | |
| LOW | scripts/runatal_v1_physical.py | 450 | CODE | |
| LOW | scripts/runatal_v1_physical.py | 670 | CODE | |
| LOW | scripts/test_release_publication.py | 130 | CODE | |
| LOW | scripts/create_oci_test_shuttle.py | 34 | CODE | |
| LOW | scripts/musl_release_manifest.py | 116 | CODE | |
| LOW | scripts/certify_fskit_local.py | 131 | CODE | |
| LOW | scripts/channel_metadata.py | 352 | CODE | |
| LOW | scripts/ci/with_macos_profiles.py | 44 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | scripts/runatal_v1_reader.py | 405 | except FormatError: | CODE |
| HIGH | scripts/test_mcp_connection_lifetime.py | 68 | except ProcessLookupError: | CODE |
| HIGH | scripts/runatal_v1_fastcdc.py | 266 | except ValueError: | CODE |
| HIGH | scripts/runatal_v1_fastcdc.py | 279 | except ValueError: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH⚡ | scripts/test_runtime_shutdown_diagnostics.py | 28 | stop_daemon || status=$? | CODE |
| HIGH | scripts/e2e/fake-openai-compat.py | 210 | b'"delta":{"content":"still "},"finish_reason":null}]}\n\n' | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | crates/astrid-capsule/src/security/mod.rs | 124 | /// NOTE: This method currently takes no socket path argument because the | COMMENT |
| LOW | crates/astrid-approval/src/manager.rs | 217 | // Step 1: Check if an existing allowance covers this action (atomic find + consume). | COMMENT |
| LOW⚡ | crates/astrid-approval/src/manager.rs | 230 | // Step 2: No allowance — we need user approval | COMMENT |
| LOW⚡ | crates/astrid-approval/src/manager.rs | 233 | // Step 3: Check if handler is available | COMMENT |
| LOW | crates/astrid-approval/src/manager.rs | 252 | // Step 4: Send request to handler with timeout | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | crates/astrid-approval/src/manager.rs | 217 | // Step 1: Check if an existing allowance covers this action (atomic find + consume). | COMMENT |
| LOW⚡ | crates/astrid-approval/src/manager.rs | 230 | // Step 2: No allowance — we need user approval | COMMENT |
| LOW⚡ | crates/astrid-approval/src/manager.rs | 233 | // Step 3: Check if handler is available | COMMENT |
| LOW | crates/astrid-approval/src/manager.rs | 252 | // Step 4: Send request to handler with timeout | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | container/amd64/test.sh | 87 | # Create a test-only local alias from the verified digest for the two derived | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | crates/astrid-hooks/src/handler/agent.rs | 16 | /// TODO: implement real agent handler. For now, it returns a stub response. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | crates/astrid-gateway/src/routes/env.rs | 454 | .get("placeholder") | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/test_fskit_app_handoff.py | 13 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | e2e/concurrency.sh | 51 | except Exception as e: # noqa: BLE001 - reported, not raised | CODE |