IronClaw is an Agent OS focused on privacy, security and extensibility
This report presents the forensic synthetic code analysis of nearai/ironclaw, a Rust project with 12,603 GitHub stars. SynthScan v2.0 examined 1,932,241 lines of code across 4446 source files, recording 8495 pattern matches distributed across 21 syntactic categories. The overall adjusted score of 5.8 places this repository in the Low AI signal band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 8495 distinct pattern matches across 21 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. 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 diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | Cargo.toml | 21 | COMMENT | |
| LOW | Cargo.toml | 41 | # - `unreachable_pub`: flags `pub` items that are not reachable outside their | COMMENT |
| LOW | Cargo.toml | 141 | insta = { version = "1.46.3", features = ["yaml"] } | COMMENT |
| LOW | Cargo.toml | 181 | ironclaw_assistant = { path = "crates/product/ironclaw_assistant", version = "0.1.0", features = ["test-support"] } | COMMENT |
| LOW | Cargo.toml | 221 | # Binary Reborn E2E recovery scenarios replay the milestone-backed durable log | COMMENT |
| LOW | Cargo.toml | 521 | path = "tests/integration/run_artifact_timings.rs" | COMMENT |
| LOW | deny.toml | 1 | [advisories] | COMMENT |
| LOW | rust-toolchain.toml | 1 | # Single source of truth for the Rust toolchain, local and CI. | COMMENT |
| LOW | .coderabbit.yaml | 1 | # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json | COMMENT |
| LOW | .config/nextest.toml | 1 | # Cross-binary parallel test runner config for cargo-nextest. | COMMENT |
| LOW | infra/runner/seed-runner-db.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | infra/runner/seed-runner-db.sh | 61 | } | COMMENT |
| LOW | infra/runner/entrypoint.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | infra/runner/entrypoint.sh | 21 | WORK_DIR="${RUNNER_DATA}/_work" | COMMENT |
| LOW | infra/runner/entrypoint.sh | 61 | # Fallback bootstrap route for when the base64-in-env path blows past | COMMENT |
| LOW | tools/ironclaw_silk_decoder/build.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | tools/ironclaw_stress/src/suite.rs | 281 | case_args.sweep_context_max_messages.clear(); | COMMENT |
| LOW | tools/ironclaw_stress/src/scripted.rs | 1 | //! Scripted tool-call workloads for the API stress scenario. | COMMENT |
| LOW | tools/ironclaw_stress/src/scripted.rs | 21 | //! user marker is compacted out of a long sequential plan, and consecutive | COMMENT |
| LOW | tools/ironclaw_stress/src/scripted.rs | 41 | //! violation — a hard failure). | COMMENT |
| LOW | tools/ironclaw_stress/src/scripted.rs | 61 | //! | COMMENT |
| LOW | tools/ironclaw_stress/src/scripted.rs | 101 | pub(crate) const READBACK_MARKER: &str = "IRONCLAW_STRESS_READBACK"; | COMMENT |
| LOW | tools/ironclaw_stress/src/scripted.rs | 121 | /// quoting, whitespace, tool-result wrapping) exceeds the first-party | COMMENT |
| LOW | tools/ironclaw_stress/src/scripted.rs | 141 | /// the operation's own document and any contending same-user writes. | COMMENT |
| LOW | tools/ironclaw_stress/src/scripted.rs | 161 | /// identity, step counters, the last emitted call id, and digested | COMMENT |
| LOW | tools/ironclaw_stress/src/scripted.rs | 201 | #[value(name = "write_file_roundtrip")] | COMMENT |
| LOW | tools/ironclaw_stress/src/scripted.rs | 481 | /// next step of the operation's plan in order, never batched with | COMMENT |
| LOW | tools/ironclaw_stress/src/scripted.rs | 641 | .collect::<Vec<_>>(); | COMMENT |
| LOW | tools/ironclaw_stress/src/scripted.rs | 721 | /// Convenience wrapper returning only the decision; the mock sidecar uses | COMMENT |
| LOW | tools/ironclaw_stress/src/scripted.rs | 741 | /// The operation this session drives. The full identity (script key, | COMMENT |
| LOW | tools/ironclaw_stress/src/scripted.rs | 761 | /// `not_useful`, missing recovery, or delayed retry without an explicit | COMMENT |
| LOW | tools/ironclaw_stress/src/scripted.rs | 1161 | /// explicit `retry_after_ms` after that delay expires, and the attempt count | COMMENT |
| LOW | tools/ironclaw_stress/src/scripted.rs | 1401 | /// operation. Checkpoints are classified independently and the strictest | COMMENT |
| LOW | tools/ironclaw_stress/src/scripted.rs | 1561 | "limit": MEMORY_SEARCH_LIMIT, | COMMENT |
| LOW | tools/ironclaw_stress/src/scripted.rs | 1601 | /// plan unique, so the production no-progress guard never sees repeated | COMMENT |
| LOW | tools/ironclaw_stress/src/scripted.rs | 3601 | COMMENT | |
| LOW | tools/ironclaw_stress/src/api_capacity.rs | 81 | /// Tool-result messages observed for this bucket's operations (read-back | COMMENT |
| LOW | tools/ironclaw_stress/src/api_capacity.rs | 2741 | } | COMMENT |
| LOW | tools/ironclaw_stress/src/main.rs | 121 | /// Distinct threads per owner-user that share one process-journal mount. Set | COMMENT |
| LOW | tools/ironclaw_stress/src/main.rs | 141 | pub(crate) prefill_concurrency: usize, | COMMENT |
| LOW | tools/ironclaw_stress/src/main.rs | 161 | COMMENT | |
| LOW | tools/ironclaw_stress/src/main.rs | 461 | /// Total threads to seed for the thread-list read workload. | COMMENT |
| LOW | tools/ironclaw_stress/src/main.rs | 501 | COMMENT | |
| LOW | tools/ironclaw_stress/src/tests.rs | 661 | /// only lined up for `.db`, and a string-shaped assertion would have agreed | COMMENT |
| LOW | crates/domains/ironclaw_notifications/src/store.rs | 521 | .with_indexed( | COMMENT |
| LOW | …s/ironclaw_threads/tests/subagent_result_acceptance.rs | 221 | /// A child agent can be prompt-injected, and this door's row is persisted as | COMMENT |
| LOW | …s/ironclaw_threads/tests/subagent_result_acceptance.rs | 341 | COMMENT | |
| LOW | …s/ironclaw_threads/tests/subagent_result_acceptance.rs | 981 | COMMENT | |
| LOW | …s/ironclaw_threads/tests/subagent_result_acceptance.rs | 1001 | /// This case pins today's refusal on the human steering door | COMMENT |
| LOW | …aw_threads/tests/filesystem_session_thread_contract.rs | 2421 | /// this migration the legacy SQL stores held a raw `Arc<libsql::Database>` | COMMENT |
| LOW | …aw_threads/tests/filesystem_session_thread_contract.rs | 5781 | MessageStatus::DeferredBusy, | COMMENT |
| LOW | …tes/domains/ironclaw_threads/src/filesystem_service.rs | 1 | // arch-exempt: large_file, filesystem thread service decomposition, plan #5662 | COMMENT |
| LOW | …tes/domains/ironclaw_threads/src/filesystem_service.rs | 21 | //! ```text | COMMENT |
| LOW | …tes/domains/ironclaw_threads/src/filesystem_service.rs | 201 | message_id: ThreadMessageId, | COMMENT |
| LOW | …tes/domains/ironclaw_threads/src/filesystem_service.rs | 221 | /// [`VirtualPath`](ironclaw_host_api::path::VirtualPath) per its | COMMENT |
| LOW | …tes/domains/ironclaw_threads/src/filesystem_service.rs | 401 | .with_indexed( | COMMENT |
| LOW | …tes/domains/ironclaw_threads/src/filesystem_service.rs | 421 | /// The alias root resolves to a per-(tenant, user) backend path, so the | COMMENT |
| LOW | …tes/domains/ironclaw_threads/src/filesystem_service.rs | 761 | "filesystem CAS retries exhausted accepting inbound message at {}", | COMMENT |
| LOW | …tes/domains/ironclaw_threads/src/filesystem_service.rs | 1481 | thread_id: &ThreadId, | COMMENT |
| LOW | …tes/domains/ironclaw_threads/src/filesystem_service.rs | 4701 | // production backends it always issues | COMMENT |
| 3969 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | release-plz.toml | 6 | # ── Main binary ───────────────────────────────────────────── | COMMENT |
| MEDIUM | release-plz.toml | 13 | # ── Root workspace package ────────────────────────────────── | COMMENT |
| MEDIUM | …s/ironclaw_threads/tests/subagent_result_acceptance.rs | 687 | // ── Two deliveries racing for one claim ─────────────────────────────────── | COMMENT |
| MEDIUM | …s/ironclaw_threads/tests/subagent_result_acceptance.rs | 853 | // ── One dedupe index, not two ───────────────────────────────────────────── | COMMENT |
| MEDIUM | …s/ironclaw_threads/tests/subagent_result_acceptance.rs | 926 | // ── Identity halves must carry a value ──────────────────────────────────── | COMMENT |
| MEDIUM | …s/ironclaw_threads/tests/subagent_result_acceptance.rs | 982 | // ── The steering ladder does not admit a result row ─────────────────────── | COMMENT |
| MEDIUM | …s/ironclaw_threads/tests/subagent_result_acceptance.rs | 1125 | // ── The trait's fail-closed default ─────────────────────────────────────── | COMMENT |
| MEDIUM | …tes/domains/ironclaw_threads/src/filesystem_service.rs | 3991 | // ── Idempotency key shape ────────────────────────────────────── | COMMENT |
| MEDIUM | …tes/domains/ironclaw_threads/src/filesystem_service.rs | 4075 | // ── Paths ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …tes/domains/ironclaw_threads/src/filesystem_service.rs | 4387 | // ── Transcript helpers (shared semantics) ────────────────────── | COMMENT |
| MEDIUM | …tes/domains/ironclaw_threads/src/filesystem_service.rs | 4692 | // ── CAS-aware put with `Unsupported`→`Any` fallback ──────────── | COMMENT |
| MEDIUM | …onclaw_outbound/tests/outbound_state_store_contract.rs | 2204 | // ── F4 — CAS retry / drain / backwards-race regression tests ───────────── | COMMENT |
| MEDIUM | crates/domains/ironclaw_skills/src/selector.rs | 1056 | // ── extract_skill_mentions tests ────────────────────────── | COMMENT |
| MEDIUM | crates/domains/ironclaw_skills/src/selector.rs | 1184 | // ─────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/domains/ironclaw_skills/src/selector.rs | 1186 | // ─────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/domains/ironclaw_skills/src/selector.rs | 1264 | // ─────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/domains/ironclaw_skills/src/selector.rs | 1267 | // ─────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/domains/ironclaw_auth/src/account_state.rs | 12 | //! │◀───────────────────────────┘ │ | COMMENT |
| MEDIUM | crates/domains/ironclaw_auth/src/account_state.rs | 14 | //! │◀────────── disconnect / removal ──────────── Connected / Expired | COMMENT |
| MEDIUM⚡ | …omains/ironclaw_auth/src/product_auth/durable/tests.rs | 3783 | // ── Assert: enumeration is vendor-blind ────────────────────────────────── | COMMENT |
| MEDIUM⚡ | …omains/ironclaw_auth/src/product_auth/durable/tests.rs | 3790 | // ── Assert: negative cases are excluded ─────────────────────────────────── | COMMENT |
| MEDIUM⚡ | …omains/ironclaw_auth/src/product_auth/durable/tests.rs | 3800 | // ── Light secret-material guard: no refresh handle is exposed beyond ────── | COMMENT |
| MEDIUM | …omains/ironclaw_auth/src/product_auth/durable/tests.rs | 1122 | // ─── fix: fs_error maps VersionMismatch to BackendConflict ─────────────────── | COMMENT |
| MEDIUM | …omains/ironclaw_auth/src/product_auth/durable/tests.rs | 1153 | // ─── fix: mark_continuation_dispatched is idempotent ───────────────────────── | COMMENT |
| MEDIUM | …omains/ironclaw_auth/src/product_auth/durable/tests.rs | 1241 | // ─── fix: manual-token submit cleans up secret on write failure ─────────────── | COMMENT |
| MEDIUM | …omains/ironclaw_auth/src/product_auth/durable/tests.rs | 1467 | // ─── fix: durable SecretCleanupService purges secrets on Uninstall ─────────── | COMMENT |
| MEDIUM | …omains/ironclaw_auth/src/product_auth/durable/tests.rs | 1573 | // ─── PROPOSAL §4.5: the linked-device ownership pin, on the durable store ───── | COMMENT |
| MEDIUM | …omains/ironclaw_auth/src/product_auth/durable/tests.rs | 1837 | // ─── fix: lock-cache weak-reference GC actually shrinks the map ────────────── | COMMENT |
| MEDIUM | …omains/ironclaw_auth/src/product_auth/durable/tests.rs | 1865 | // ─── fix: manual-token expiry branch ───────────────────────────────────────── | COMMENT |
| MEDIUM | …omains/ironclaw_auth/src/product_auth/durable/tests.rs | 1908 | // ─── UnavailableAuthProviderClient validates before returning error ─────────── | COMMENT |
| MEDIUM | …omains/ironclaw_auth/src/product_auth/durable/tests.rs | 1958 | // ─── validate_account_list_request boundary cases ──────────────────────────── | COMMENT |
| MEDIUM | …omains/ironclaw_auth/src/product_auth/durable/tests.rs | 2035 | // ── Step 1: initial OAuth flow creates a new account ───────────────────── | COMMENT |
| MEDIUM | …omains/ironclaw_auth/src/product_auth/durable/tests.rs | 2139 | // ── Step 2: re-auth flow bound to the existing account ─────────────────── | COMMENT |
| MEDIUM | …omains/ironclaw_auth/src/product_auth/durable/tests.rs | 2280 | // ── Step 1: initial flow creates the account under `setup_scope`. ───────── | COMMENT |
| MEDIUM | …omains/ironclaw_auth/src/product_auth/durable/tests.rs | 2528 | // ─── fix: OAuth callback CAS-conflict re-read branch ───────────────────────── | COMMENT |
| MEDIUM | …omains/ironclaw_auth/src/product_auth/durable/tests.rs | 2630 | // ─── fix: grant-removal on non-owner account in cleanup_for_lifecycle ───────── | COMMENT |
| MEDIUM | …omains/ironclaw_auth/src/product_auth/durable/tests.rs | 2701 | // ─── fix: select_unique_configured_account and select_configured_account ────── | COMMENT |
| MEDIUM | …omains/ironclaw_auth/src/product_auth/durable/tests.rs | 2990 | // ─── tests: create_flow update_binding validation ───────────────────────────── | COMMENT |
| MEDIUM | …omains/ironclaw_auth/src/product_auth/durable/tests.rs | 3177 | // ─── tests: get_account cross-scope rejection ───────────────────────────────── | COMMENT |
| MEDIUM | …omains/ironclaw_auth/src/product_auth/durable/tests.rs | 3215 | // ─── tests: validate_secret control-char branch ─────────────────────────────── | COMMENT |
| MEDIUM | …omains/ironclaw_auth/src/product_auth/durable/tests.rs | 3271 | // ─── fix: abbyshekit review — expired flow mutation persisted ──────────────── | COMMENT |
| MEDIUM | …omains/ironclaw_auth/src/product_auth/durable/tests.rs | 3556 | // ─── PR #5087 A1: list_refresh_candidates covers all owner-scope shapes ────── | COMMENT |
| MEDIUM | …omains/ironclaw_auth/src/product_auth/durable/tests.rs | 3556 | // ─── PR #5087 A1: list_refresh_candidates covers all owner-scope shapes ────── | COMMENT |
| MEDIUM | …omains/ironclaw_auth/src/product_auth/durable/tests.rs | 3618 | // ── Positive cases: Google Configured + refresh_secret present ──────────── | COMMENT |
| MEDIUM | …omains/ironclaw_auth/src/product_auth/durable/tests.rs | 3698 | // candidate too (the engine sweep applies the recipe threshold) ────────── | COMMENT |
| MEDIUM | …omains/ironclaw_auth/src/product_auth/durable/tests.rs | 3719 | // ── Negative cases: must be excluded ───────────────────────────────────── | COMMENT |
| MEDIUM | …omains/ironclaw_auth/src/product_auth/durable/tests.rs | 3759 | // ── Exercise ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …omains/ironclaw_auth/src/product_auth/durable/tests.rs | 3763 | // ── Assert: all 4 scope shapes are returned ─────────────────────────────── | COMMENT |
| MEDIUM | …omains/ironclaw_auth/src/product_auth/durable/tests.rs | 3820 | // ─── fix: abbyshekit review — manual-token consume only after success ──────── | COMMENT |
| MEDIUM | …omains/ironclaw_auth/src/product_auth/durable/tests.rs | 4340 | // ─── security: complete_credential_selection ownership enforcement ──────────── | COMMENT |
| MEDIUM | …mains/ironclaw_auth/src/product_auth/api/auth/tests.rs | 510 | // ── cancel_blocked_auth_flow service tests ───────────────────────────────── | COMMENT |
| MEDIUM | …mains/ironclaw_auth/src/product_auth/api/auth/tests.rs | 1236 | // ── Case 1: cancel_flow returns Err(FlowAlreadyTerminal) → Ok(()) ─────────── | COMMENT |
| MEDIUM | …mains/ironclaw_auth/src/product_auth/api/auth/tests.rs | 1256 | // ── Case 2: cancel_flow returns Err(Canceled) → Ok(()) ────────────────────── | COMMENT |
| MEDIUM | …mains/ironclaw_auth/src/product_auth/api/auth/tests.rs | 1273 | // ── Negative case: cancel_flow returns a real error → Err propagates ───────── | COMMENT |
| MEDIUM | …mains/ironclaw_trace_commons/src/contribution/queue.rs | 645 | // ── Trace credential resolution (instance enrollment) ──────────────────────── | COMMENT |
| MEDIUM | …ronclaw_trace_commons/src/contribution/tests/claims.rs | 431 | // ── community profile (public_attribution second opt-in) ──────────────── | COMMENT |
| MEDIUM | …onclaw_trace_commons/src/contribution/tests/account.rs | 15 | // ── mock server ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …onclaw_trace_commons/src/contribution/tests/account.rs | 58 | // ── isolated tempdir ───────────────────────────────────────────────── | COMMENT |
| MEDIUM | …onclaw_trace_commons/src/contribution/tests/account.rs | 84 | // ── call under test ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …onclaw_trace_commons/src/contribution/tests/account.rs | 90 | // ── assertions ─────────────────────────────────────────────────────── | COMMENT |
| 958 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …law_webui/frontend/scripts/check-source-conventions.ts | 31 | function isRelativeModuleSpecifier(value: string): boolean { | CODE |
| LOW | crates/product/ironclaw_webui/frontend/src/app/auth.ts | 93 | function consumeLoginTicketFromUrl() { | CODE |
| LOW | …ronclaw_webui/frontend/src/styles/theme-colors.test.ts | 9 | function productionTypeScriptFiles(directory: string): string[] { | CODE |
| LOW | …frontend/src/components/pairing-web-code-panel.test.ts | 19 | function pairingPanelSourceForTest() { | CODE |
| LOW | …webui/frontend/src/components/sidebar-threads.test.tsx | 104 | function renderInteractiveSidebarThreads(props = {}, contextOverrides = {}) { | CODE |
| LOW | …onclaw_webui/frontend/src/lib/interface-preferences.ts | 38 | export function writeShowChatLogsShortcut(show, storage = browserStorage()) { | CODE |
| LOW | …es/product/ironclaw_webui/frontend/src/lib/markdown.ts | 73 | function sanitizerForCurrentWindow(): DOMPurifyInstance { | CODE |
| LOW | …onclaw_webui/frontend/src/lib/sidebar-active-thread.ts | 1 | export function activeRouteThreadIdFromPath(pathname) { | CODE |
| LOW | …onclaw_webui/frontend/src/lib/sidebar-active-thread.ts | 18 | export function routeSynchronizedThreadsState(threadsState, pathname) { | CODE |
| LOW | crates/product/ironclaw_webui/frontend/src/lib/api.ts | 169 | export function setSessionChannelExtensionId(extensionId) { | CODE |
| LOW | crates/product/ironclaw_webui/frontend/src/lib/api.ts | 177 | export function getSessionChannelExtensionId() { | CODE |
| LOW | crates/product/ironclaw_webui/frontend/src/lib/api.ts | 433 | export function listOutboundDeliveryTargets() { | CODE |
| LOW | crates/product/ironclaw_webui/frontend/src/lib/api.ts | 469 | export function getNotificationSetupStatus({ extensionId } = {}) { | CODE |
| LOW⚡ | …aw_webui/frontend/src/lib/channel-connection-events.ts | 10 | export function normalizeConnectionChannel(channel) { | CODE |
| LOW⚡ | …aw_webui/frontend/src/lib/channel-connection-events.ts | 20 | export function channelConnectionDisplayName(channel, displayName = null) { | CODE |
| LOW⚡ | …aw_webui/frontend/src/lib/channel-connection-events.ts | 30 | export function channelConnectionContinuationMessage(channel) { | CODE |
| LOW⚡ | …aw_webui/frontend/src/lib/channel-connection-events.ts | 34 | export function connectionEventMatchesOnboarding(event, onboarding) { | CODE |
| LOW | …aw_webui/frontend/src/lib/channel-connection-events.ts | 95 | export function subscribeChannelConnected(handler) { | CODE |
| LOW | …aw_webui/frontend/src/lib/channel-connection-events.ts | 124 | function parseStoredConnectionEvent(value) { | CODE |
| LOW | …aw_webui/frontend/src/lib/channel-connection-events.ts | 134 | export function rememberChannelConnectionWaiter({ | CODE |
| LOW | …aw_webui/frontend/src/lib/channel-connection-events.ts | 159 | export function forgetChannelConnectionWaiter({ | CODE |
| LOW | …aw_webui/frontend/src/lib/channel-connection-events.ts | 179 | export async function resumeWaitingChannelConnections(event = {}) { | CODE |
| LOW | …aw_webui/frontend/src/lib/channel-connection-events.ts | 225 | function readWaitingChannelConnections() { | CODE |
| LOW | …aw_webui/frontend/src/lib/channel-connection-events.ts | 251 | function writeWaitingChannelConnections(waiters) { | CODE |
| LOW | …rontend/src/lib/product-auth-oauth-events.vm-inline.ts | 13 | export function productAuthOAuthEventsSource() { | CODE |
| LOW | …aw_webui/frontend/src/lib/product-auth-oauth-events.ts | 56 | export function parseProductAuthOAuthCompletion(value) { | CODE |
| LOW | …aw_webui/frontend/src/lib/product-auth-oauth-events.ts | 67 | export function readLatestProductAuthOAuthCompletion(browserWindow) { | CODE |
| LOW | …aw_webui/frontend/src/lib/product-auth-oauth-events.ts | 78 | export function subscribeProductAuthOAuthCompletion(browserWindow, handler) { | CODE |
| LOW | …aw_webui/frontend/src/lib/product-auth-oauth-events.ts | 96 | function isProductAuthOAuthCompletion(payload) { | CODE |
| LOW | …ronclaw_webui/frontend/src/lib/workspace-file-links.ts | 18 | function isSafeDecodedWorkspacePath(path: string): boolean { | CODE |
| LOW | …ronclaw_webui/frontend/src/lib/workspace-file-links.ts | 41 | export function workspaceFilePathFromHref(href: unknown): string | null { | CODE |
| LOW | …ronclaw_webui/frontend/src/lib/workspace-file-links.ts | 74 | export function workspaceFileHrefFromPath(path: unknown): string | null { | CODE |
| LOW | …ronclaw_webui/frontend/src/lib/workspace-file-links.ts | 82 | export function workspaceViewerRouteFromFilePath( | CODE |
| LOW | …onclaw_webui/frontend/src/lib/extension-pairing-api.ts | 19 | export function getExtensionPairingStatus(extensionId) { | CODE |
| LOW | …product/ironclaw_webui/frontend/src/lib/thread-meta.ts | 40 | export function formatThreadActivityLabel(iso) { | CODE |
| LOW | …product/ironclaw_webui/frontend/src/lib/thread-meta.ts | 50 | export function formatThreadActivityTooltip(iso) { | CODE |
| LOW | …/settings/components/model-selection-policy-editor.tsx | 44 | export function ModelSelectionPolicyEditor({ providerState }) { | CODE |
| LOW | …settings/components/user-model-preference-selector.tsx | 8 | export function UserModelPreferenceSelector() { | CODE |
| LOW | …i/frontend/src/pages/settings/components/tools-tab.tsx | 17 | function translatedToolDescription(t, tool) { | CODE |
| LOW | …/pages/settings/components/provider-components.test.ts | 117 | function useProviderManagementActionsStub({ | CODE |
| LOW | …/pages/settings/components/provider-components.test.ts | 200 | function evalIsLoopbackBrowserOrigin({ hostname }) { | CODE |
| LOW | …/pages/settings/components/provider-components.test.ts | 271 | function createProviderCardHarness() { | CODE |
| LOW | …/pages/settings/components/provider-components.test.ts | 316 | function createNearAiSetupMenuHarness() { | CODE |
| LOW | …rontend/src/pages/settings/components/channels-tab.tsx | 122 | function deriveVisibleChannelGroups({ | CODE |
| LOW | …c/pages/settings/hooks/useProviderManagementActions.ts | 12 | export function useProviderManagementActions({ settings, gatewayStatus, searchQuery, t }) { | CODE |
| LOW | …_webui/frontend/src/pages/settings/lib/settings-api.ts | 30 | function persistedToolFromConfigEntry(entry, expectedName, requestedState) { | CODE |
| LOW | …_webui/frontend/src/pages/settings/lib/settings-api.ts | 73 | export function settingsFromOperatorConfig(data) { | CODE |
| LOW | …_webui/frontend/src/pages/settings/lib/settings-api.ts | 206 | export function testLlmProviderConnection(payload) { | CODE |
| LOW | …_webui/frontend/src/pages/settings/lib/settings-api.ts | 230 | export function completeNearaiWalletLogin(payload) { | CODE |
| LOW | …roduct/ironclaw_webui/frontend/src/pages/chat/chat.tsx | 87 | function cancellationFailureDiagnostic(error) { | CODE |
| LOW | …/src/pages/chat/inspector/product-activity-envelope.ts | 47 | function publishCapabilityActivity( | CODE |
| LOW | …/src/pages/chat/inspector/product-activity-envelope.ts | 123 | export function publishProductInspectorEnvelope( | CODE |
| LOW | …i/frontend/src/pages/chat/inspector/inspector-shell.ts | 35 | export function persistInspectorDebugPreference( | CODE |
| LOW | …/frontend/src/pages/chat/inspector/inspector-panel.tsx | 433 | function isNullableBoundedDiagnosticText( | CODE |
| LOW | …/frontend/src/pages/chat/inspector/inspector-panel.tsx | 439 | function isNullableNonNegativeSafeInteger(value: unknown): value is number | null { | CODE |
| LOW | …d/src/pages/chat/inspector/inspector-stream-session.ts | 14 | export function inspectorStreamSessionKey(): string { | CODE |
| LOW | …d/src/pages/chat/inspector/inspector-stream-session.ts | 124 | export function readInspectorStreamMetrics( | CODE |
| LOW | …d/src/pages/chat/inspector/inspector-stream-session.ts | 130 | export function readInspectorStreamCursor( | CODE |
| LOW | …d/src/pages/chat/inspector/inspector-stream-session.ts | 146 | export function recordInspectorDiagnosticUpdate( | CODE |
| LOW | …d/src/pages/chat/inspector/inspector-stream-session.ts | 163 | export function rememberInspectorStreamCursor( | CODE |
| 2345 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH⚡ | tests/e2e/reborn_webui_harness.py | 1044 | let activeStream = null; | CODE |
| HIGH⚡ | tests/e2e/reborn_webui_harness.py | 1051 | if (!activeStream || activeStream.closed) {{ | CODE |
| HIGH⚡ | tests/e2e/reborn_webui_harness.py | 1058 | Boolean(activeStream && !activeStream.closed && activeStream.controller); | CODE |
| HIGH⚡ | tests/e2e/reborn_webui_harness.py | 1060 | Boolean(activeStream && !activeStream.closed && activeStream.resolve); | CODE |
| HIGH⚡ | tests/e2e/reborn_webui_harness.py | 1062 | const closeStream = (stream, error = null) => {{ | CODE |
| HIGH⚡ | tests/e2e/reborn_webui_harness.py | 1063 | if (!stream || stream.closed) return; | CODE |
| HIGH⚡ | tests/e2e/reborn_webui_harness.py | 1072 | if (activeStream === stream) activeStream = null; | CODE |
| HIGH⚡ | tests/e2e/reborn_webui_harness.py | 1076 | const stream = {{ closed: false, controller: null }}; | CODE |
| HIGH⚡ | tests/e2e/reborn_webui_harness.py | 1083 | if (activeStream === stream) activeStream = null; | CODE |
| HIGH⚡ | tests/e2e/reborn_webui_harness.py | 1090 | window.__v2SseUrls.push(request.url); | CODE |
| HIGH⚡ | tests/e2e/reborn_webui_harness.py | 1094 | window.__v2SseRequests.push({{ url: request.url, headers }}); | CODE |
| HIGH⚡ | tests/e2e/reborn_webui_harness.py | 1125 | controller: null, | CODE |
| HIGH⚡ | tests/e2e/reborn_webui_harness.py | 1130 | window.__v2SseUrls.push(request.url); | CODE |
| HIGH⚡ | tests/e2e/reborn_webui_harness.py | 1134 | window.__v2SseRequests.push({{ url: request.url, headers }}); | CODE |
| HIGH⚡ | tests/e2e/reborn_webui_harness.py | 1141 | if (activeStream === stream) activeStream = null; | CODE |
| HIGH | tests/e2e/reborn_webui_harness.py | 1167 | if (activeStream === stream) activeStream = null; | CODE |
| HIGH | tests/e2e/mock_llm.py | 968 | " var skills = (data && data.skills) || [];\n" | CODE |
| HIGH | tests/e2e/mock_llm.py | 999 | " 'Failed to load skills: ' + (e && e.message ? e.message : e) +\n" | CODE |
| HIGH | tests/e2e/helpers.py | 713 | threadId: typeof currentThreadId !== 'undefined' ? currentThreadId : null, | STRING |
| HIGH | tests/e2e/helpers.py | 714 | pendingId: typeof _nextPendingId !== 'undefined' ? _nextPendingId : null, | STRING |
| HIGH | tests/e2e/helpers.py | 738 | if (!pendingThreadId || pendingId === null || pendingId === undefined) return true; | STRING |
| HIGH | tests/e2e/helpers.py | 738 | if (!pendingThreadId || pendingId === null || pendingId === undefined) return true; | STRING |
| HIGH⚡ | tests/e2e/helpers.py | 751 | text: ((content && content.innerText) || last.innerText || '').trim(), | STRING |
| HIGH⚡ | tests/e2e/helpers.py | 759 | const text = ((content && content.innerText) || last.innerText || '').trim(); | STRING |
| HIGH⚡ | tests/e2e/helpers.py | 760 | if (text.length > 0 && pendingForThisSendCleared()) { | STRING |
| HIGH⚡ | tests/e2e/helpers.py | 761 | if (expectedContains && text.includes(expectedContains)) { | STRING |
| HIGH | tests/e2e/helpers.py | 772 | return null; | STRING |
| HIGH⚡ | tests/e2e/scenarios/test_v2_engine_auth_flow.py | 792 | text: ((content && content.innerText) || last.innerText || '').trim(), | STRING |
| HIGH⚡ | tests/e2e/scenarios/test_v2_engine_auth_flow.py | 797 | if (assistants.length > assistantCount && input && !input.disabled) { | STRING |
| HIGH⚡ | tests/e2e/scenarios/test_v2_engine_auth_flow.py | 800 | const text = ((content && content.innerText) || last.innerText || '').trim(); | STRING |
| HIGH⚡ | tests/e2e/scenarios/test_v2_engine_auth_flow.py | 808 | return null; | STRING |
| HIGH | tests/e2e/scenarios/test_v2_engine_auth_flow.py | 855 | text: (tool && tool.textContent || '').trim(), | STRING |
| HIGH | tests/e2e/scenarios/test_csp.py | 50 | found.push(tag + id + cls + '[' + attr + ']'); | CODE |
| HIGH⚡ | tests/e2e/scenarios/test_pending_user_messages.py | 37 | previous = await page.evaluate("() => currentThreadId || null") | CODE |
| HIGH⚡ | tests/e2e/scenarios/test_pending_user_messages.py | 40 | "(prev) => !!currentThreadId && currentThreadId !== prev", | CODE |
| HIGH | tests/e2e/scenarios/test_pending_user_messages.py | 138 | return pending && pending.some(p => p.content === {unique_msg!r}); | CODE |
| HIGH | tests/e2e/scenarios/test_pending_user_messages.py | 203 | return pending && pending.some((p) => | STRING |
| HIGH | tests/e2e/scenarios/test_pending_user_messages.py | 218 | const lastUser = users.length ? users[users.length - 1] : null; | STRING |
| HIGH | tests/e2e/scenarios/test_pending_user_messages.py | 276 | if (arr && arr.some(p => p.content === args.msg)) return false; | CODE |
| HIGH⚡ | tests/e2e/scenarios/test_pending_user_messages.py | 353 | return card && card.offsetParent !== null; | STRING |
| HIGH⚡ | tests/e2e/scenarios/test_pending_user_messages.py | 353 | return card && card.offsetParent !== null; | STRING |
| HIGH | tests/e2e/scenarios/test_v2_activity_shell.py | 71 | " return !!el && el.textContent.trim().length > 0;" | CODE |
| HIGH | …ts/e2e/scenarios/test_routines_tab_after_v2_upgrade.py | 39 | return tab && tab.style.display !== 'none'; | STRING |
| HIGH | …ts/e2e/scenarios/test_routines_tab_after_v2_upgrade.py | 57 | return tab && tab.style.display === 'none'; | STRING |
| HIGH | …ts/e2e/scenarios/test_routines_tab_after_v2_upgrade.py | 75 | return tab && tab.style.display !== 'none'; | STRING |
| HIGH | …ts/e2e/scenarios/test_routines_tab_after_v2_upgrade.py | 211 | return tab && tab.style.display === 'none'; | STRING |
| HIGH | …ts/e2e/scenarios/test_routines_tab_after_v2_upgrade.py | 278 | visible: tab && tab.style.display !== 'none', | STRING |
| HIGH⚡ | tests/e2e/scenarios/test_extensions.py | 1504 | await page.wait_for_function("() => window._lastOpenedUrl !== null && window._lastOpenedUrl !== undefined", timeout= | CODE |
| HIGH | tests/e2e/scenarios/test_extensions.py | 725 | "() => window._lastOpenedUrl !== null && window._lastOpenedUrl !== undefined", | CODE |
| HIGH | tests/e2e/scenarios/test_extensions.py | 917 | await page.wait_for_function("() => window._lastOpenedUrl !== null && window._lastOpenedUrl !== undefined", timeout= | CODE |
| HIGH | tests/e2e/scenarios/test_extensions.py | 1621 | await page.evaluate("window._openedUrl = null; window.open = (url) => { window._openedUrl = url; }") | CODE |
| HIGH | tests/e2e/scenarios/test_extensions.py | 1646 | await page.evaluate("window._openedUrl = null; window.open = (url) => { window._openedUrl = url; return null; }") | CODE |
| HIGH | tests/e2e/scenarios/test_extensions.py | 1205 | handleOnboardingState({ extension_name: 'telegram', state: 'auth_required', instructions: 'pending', auth_ur | STRING |
| HIGH | …2e/scenarios/test_reborn_webui_v2_legacy_auth_flows.py | 80 | window.__openedAuth.push({ url, target, features }); | STRING |
| HIGH | …2e/scenarios/test_reborn_webui_v2_legacy_auth_flows.py | 81 | return null; | STRING |
| HIGH | …2e/scenarios/test_reborn_webui_v2_legacy_auth_flows.py | 600 | window.__openedAuth.push({ kind: "navigate", url: value }); | STRING |
| HIGH | …2e/scenarios/test_reborn_webui_v2_legacy_auth_flows.py | 604 | window.__openedAuth.push({ kind: "open", url, target, features }); | STRING |
| HIGH | tests/e2e/scenarios/test_reborn_webui_v2_smoke.py | 96 | for (let node = element; node && background[3] < 1; node = node.parentElement) { | STRING |
| HIGH | tests/e2e/scenarios/test_reborn_webui_v2_smoke.py | 3086 | return null; | STRING |
| HIGH | …/scenarios/test_reborn_webui_v2_legacy_chat_actions.py | 20 | window.__copiedText = null; | STRING |
| 39 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | …/domains/ironclaw_outbound/src/outbound_state_store.rs | 2231 | // Step 3: simulate the crash window by injecting a dangling conv_a index | COMMENT |
| LOW⚡ | …/domains/ironclaw_outbound/src/outbound_state_store.rs | 2240 | // Step 4: conv_a lookup must be a miss — the primary record lists conv_b, | COMMENT |
| LOW⚡ | …/domains/ironclaw_outbound/src/outbound_state_store.rs | 2755 | // Step 1: store_a writes rec_a (conv index version 1). | COMMENT |
| LOW⚡ | …/domains/ironclaw_outbound/src/outbound_state_store.rs | 2761 | // Step 2: store_b writes rec_b (conv index version 2) — simulates a | COMMENT |
| LOW⚡ | …/domains/ironclaw_outbound/src/outbound_state_store.rs | 2769 | // Step 3: store_a re-records rec_a. The index already carries rec_a | COMMENT |
| LOW⚡ | …/domains/ironclaw_outbound/src/outbound_state_store.rs | 2849 | // Step 1: store_a records rec_a → conv index = [rec_a]. | COMMENT |
| LOW⚡ | …/domains/ironclaw_outbound/src/outbound_state_store.rs | 2855 | // Step 2: store_b records rec_b → conv index = [rec_a, rec_b]. | COMMENT |
| LOW⚡ | …/domains/ironclaw_outbound/src/outbound_state_store.rs | 2861 | // Step 3: store_a removes rec_a. Its snapshot (from step 1) only sees | COMMENT |
| LOW⚡ | …/domains/ironclaw_outbound/src/outbound_state_store.rs | 2870 | // Step 4: only rec_b must survive. | COMMENT |
| LOW | …/domains/ironclaw_outbound/src/outbound_state_store.rs | 2193 | // Step 1: record the route delivered to conv_a. | COMMENT |
| LOW | …/domains/ironclaw_outbound/src/outbound_state_store.rs | 2207 | // Step 2: overwrite the route with conv_b (normal path; conv_a index is cleaned). | COMMENT |
| LOW | …/domains/ironclaw_outbound/src/outbound_state_store.rs | 2251 | // Step 5: conv_b lookup must still return the live route. | COMMENT |
| LOW⚡ | …s/domains/ironclaw_trace_commons/src/onboarding/mod.rs | 265 | // Step 1: Parse the invite URL (trust root). | COMMENT |
| LOW⚡ | …s/domains/ironclaw_trace_commons/src/onboarding/mod.rs | 268 | // Step 2: Stage the keypair BEFORE any network call (retry-safe). | COMMENT |
| LOW⚡ | …s/domains/ironclaw_trace_commons/src/onboarding/mod.rs | 271 | // Step 3: POST to the onboard endpoint. Terminal invite rejections discard | COMMENT |
| LOW⚡ | …s/domains/ironclaw_trace_commons/src/onboarding/mod.rs | 275 | // Step 4: Parse + schema-validate the response body. | COMMENT |
| LOW⚡ | …s/domains/ironclaw_trace_commons/src/onboarding/mod.rs | 278 | // Step 5: Trust anchoring — issuer_url origin must equal invite origin. | COMMENT |
| LOW⚡ | …s/domains/ironclaw_trace_commons/src/onboarding/mod.rs | 290 | // Step 6: Cross-check the server's echoed device_key_id against the value | COMMENT |
| LOW⚡ | …s/domains/ironclaw_trace_commons/src/onboarding/mod.rs | 300 | // Step 7: ingest_url must be HTTPS (loopback http allowed for dev/tests). | COMMENT |
| LOW⚡ | …s/domains/ironclaw_trace_commons/src/onboarding/mod.rs | 303 | // Step 8: Write the tenant key file (pending file deliberately kept). | COMMENT |
| LOW⚡ | …s/domains/ironclaw_trace_commons/src/onboarding/mod.rs | 306 | // Step 9: Write the standing contribution policy. If this fails the pending | COMMENT |
| LOW⚡ | …s/domains/ironclaw_trace_commons/src/onboarding/mod.rs | 311 | // Step 10: Finalize — remove the pending file only now that both the tenant | COMMENT |
| LOW⚡ | …s/domains/ironclaw_trace_commons/src/onboarding/mod.rs | 321 | // Step 11: Sanitize browser-nav hints — drop any non-HTTPS URL (never fatal). | COMMENT |
| LOW | crates/domains/ironclaw_llm/src/openai_codex_session.rs | 356 | // Step 3: Poll for authorization code | COMMENT |
| LOW | crates/domains/ironclaw_llm/src/openai_codex_session.rs | 425 | // Step 4: Exchange authorization code for tokens (form-encoded, per Auth0 spec) | COMMENT |
| LOW⚡ | crates/domains/ironclaw_llm/src/recording.rs | 1850 | // Step 0: user_input "Do something" | COMMENT |
| LOW⚡ | crates/domains/ironclaw_llm/src/recording.rs | 1851 | // Step 1: text response | COMMENT |
| LOW⚡ | crates/domains/ironclaw_llm/src/recording.rs | 1852 | // Step 2: text response (no new user_input since no new user messages) | COMMENT |
| LOW⚡ | crates/domains/ironclaw_llm/src/github_copilot_auth.rs | 297 | // Step 1: Exchange the OAuth token for a Copilot session token. | COMMENT |
| LOW⚡ | crates/domains/ironclaw_llm/src/github_copilot_auth.rs | 301 | // Step 2: Verify the session token works against the models endpoint. | COMMENT |
| LOW | …uct/ironclaw_webui/tests/webui_v2_handlers_contract.rs | 7736 | // Step 1: consume the only slot with a held-open SSE connection | COMMENT |
| LOW | …uct/ironclaw_webui/tests/webui_v2_handlers_contract.rs | 7769 | // Step 2: same-caller WS upgrade must hit the shared cap. Use a | COMMENT |
| LOW | …uct/ironclaw_webui/tests/webui_v2_handlers_contract.rs | 7796 | // Step 3: drop the SSE stream → kernel closes the connection | COMMENT |
| LOW | crates/product/ironclaw_webui/src/auth/github.rs | 372 | /// Step 1: exchange the authorization code for an access token, | COMMENT |
| LOW | …onclaw_turn_runner/src/subagent/await_edge/resolver.rs | 669 | // Step 1: append (idempotent). A re-peeked edge that already carries | COMMENT |
| LOW | …onclaw_turn_runner/src/subagent/await_edge/resolver.rs | 726 | // Step 2: attend. A re-drive that finds the edge already past the | COMMENT |
| LOW | …w_host_runtime/tests/host_runtime_services_contract.rs | 6903 | // Step 1: store error → pre-flight skips → approval gate fires. | COMMENT |
| LOW | …w_host_runtime/tests/host_runtime_services_contract.rs | 6948 | // Step 2: approve WITH the required secret handle granted, so dispatch | COMMENT |
| LOW | …e/scenarios/test_routine_oauth_credential_injection.py | 30 | # Step 1: Ensure gmail is installed and authenticated | COMMENT |
| LOW | …e/scenarios/test_routine_oauth_credential_injection.py | 56 | # Step 2: Navigate browser to routines tab and create a routine | COMMENT |
| LOW | …e/scenarios/test_routine_oauth_credential_injection.py | 70 | # Step 3: Create a routine that calls gmail tool | COMMENT |
| LOW | …e/scenarios/test_routine_oauth_credential_injection.py | 90 | # Step 4: Trigger the routine manually | COMMENT |
| LOW | …e/scenarios/test_routine_oauth_credential_injection.py | 102 | # Step 5: Verify execution succeeded | COMMENT |
| LOW⚡ | tests/e2e/scenarios/test_v2_engine_auth_flow.py | 1768 | # Step 1: Send message triggering the github skill | COMMENT |
| LOW⚡ | tests/e2e/scenarios/test_v2_engine_auth_flow.py | 1791 | # Step 3: Submit a token | COMMENT |
| LOW⚡ | tests/e2e/scenarios/test_v2_engine_auth_flow.py | 1800 | # Step 4: Wait for the retry — the token submission triggers a retry | COMMENT |
| LOW | tests/e2e/scenarios/test_v2_engine_auth_flow.py | 1779 | # Step 2: Wait for auth prompt — verifies NeedAuthentication triggered. | COMMENT |
| LOW | tests/e2e/scenarios/test_v2_engine_auth_flow.py | 1817 | # Step 5: Verify the token was stored and the retry happened | COMMENT |
| LOW⚡ | tests/e2e/scenarios/test_v2_kernel_auth_gateway_flow.py | 459 | # Step 2: Wait for auth prompt / pending gate | COMMENT |
| LOW⚡ | tests/e2e/scenarios/test_v2_kernel_auth_gateway_flow.py | 462 | # Step 3: Submit token via the gate-resolve API endpoint | COMMENT |
| LOW | tests/e2e/scenarios/test_v2_kernel_auth_gateway_flow.py | 445 | # Step 1: Trigger auth flow | COMMENT |
| LOW | tests/e2e/scenarios/test_v2_kernel_auth_gateway_flow.py | 483 | # Step 4: Verify the auth flow completes — send another message | COMMENT |
| LOW⚡ | tests/e2e/scenarios/test_routine_full_job.py | 144 | # Step 1: Create full_job routine via chat | COMMENT |
| LOW⚡ | tests/e2e/scenarios/test_routine_full_job.py | 155 | # Step 2: Trigger the routine | COMMENT |
| LOW⚡ | tests/e2e/scenarios/test_routine_full_job.py | 161 | # Step 3: Wait for the run to complete | COMMENT |
| LOW⚡ | tests/e2e/scenarios/test_routine_full_job.py | 171 | # Step 4: Verify the job reached a success state. | COMMENT |
| LOW⚡ | tests/e2e/scenarios/test_skill_oauth_flow.py | 339 | # Step 4: Wait for the response (either retry or confirmation) | COMMENT |
| LOW⚡ | tests/e2e/scenarios/test_skill_oauth_flow.py | 344 | # Step 5: Verify the token was stored — the response should either | COMMENT |
| LOW | tests/e2e/scenarios/test_skill_oauth_flow.py | 300 | # Step 1: Send a message that needs github auth | COMMENT |
| LOW | tests/e2e/scenarios/test_skill_oauth_flow.py | 311 | # Step 2: Wait for auth prompt | COMMENT |
| 69 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | Cargo.toml | 7 | # stress harness — WS7 relocated it out of `crates/`, which after the | COMMENT |
| MEDIUM | Cargo.toml | 126 | # The Reborn integration harness provisions Postgres testcontainers in every | COMMENT |
| MEDIUM⚡ | Cargo.toml | 154 | # for the integration-test harness (cfg(test) does not propagate into deps). | COMMENT |
| MEDIUM⚡ | Cargo.toml | 156 | # Integration harness builds a fresh in-memory `ReplayPayloadStore` | COMMENT |
| MEDIUM⚡ | Cargo.toml | 161 | # harness registers (`NativeExtensionFactory`), plus scripted channel fakes. | COMMENT |
| MEDIUM | Cargo.toml | 225 | # harness seam) — cfg(test) does not propagate from an integration-test binary into its deps. | COMMENT |
| MEDIUM | Cargo.toml | 227 | # Trigger-conversation binding/session services for the E-TRIGGERED-SUBMIT harness seam — | COMMENT |
| MEDIUM | crates/domains/ironclaw_llm/src/rig_adapter.rs | 1721 | /// Deliberately conservative: matches robust indicators (HTTP 401/403, | COMMENT |
| MEDIUM | …hitecture_tests/tests/reborn_composition_boundaries.rs | 506 | // modules. This keeps the invariant robust across the #3951 finding-#4 | COMMENT |
| MEDIUM | crates/app/ironclaw_cli/src/commands/config/init.rs | 207 | # [harness] | COMMENT |
| MEDIUM | crates/app/ironclaw_cli/src/commands/config/init.rs | 208 | # # Active harness lands with epic #3036. Leave this section commented in | COMMENT |
| MEDIUM | crates/app/ironclaw_cli/src/commands/onboard/prompts.rs | 117 | // Simplest robust hand-off (see this module's doc): drop | COMMENT |
| MEDIUM | …law_extension_contracts/src/product_adapter_section.rs | 403 | //! cases are robust to serde renames; the wire path is covered end-to-end | COMMENT |
| MEDIUM | …onclaw_webui/frontend/src/pages/logs/logs-page.test.ts | 298 | // class string — keeps the test robust to class reordering and to unrelated | COMMENT |
| MEDIUM | …roduct/ironclaw_webui/tests/network_limits_contract.rs | 57 | #[path = "support/harness.rs"] | COMMENT |
| MEDIUM | …es/product/ironclaw_webui/tests/auth_route_contract.rs | 57 | #[path = "support/harness.rs"] | COMMENT |
| MEDIUM | …roduct/ironclaw_webui/tests/headers_errors_contract.rs | 43 | #[path = "support/harness.rs"] | COMMENT |
| MEDIUM | crates/product/ironclaw_webui/tests/support/harness.rs | 9 | //! `#[path = "support/harness.rs"] mod harness;` so a new | COMMENT |
| MEDIUM | crates/product/ironclaw_webui/src/webui_serve.rs | 368 | /// [`Self::canonical_host`] for why this is more robust than | COMMENT |
| MEDIUM | crates/product/ironclaw_assistant/Cargo.toml | 89 | # ProductLive planned-loop harness builds a `FilesystemReplayPayloadStore` over | COMMENT |
| MEDIUM | crates/extensions/packages/memory-native/Cargo.toml | 17 | # Exposes the trait-level contract test harness in | COMMENT |
| MEDIUM | crates/extensions/packages/memory-native/Cargo.toml | 19 | # Off by default so panic-style calls in the harness (`.expect`, | COMMENT |
| MEDIUM | crates/extensions/packages/memory-native/Cargo.toml | 44 | # the `contract_test!` macro. The harness contains `.expect`/`.unwrap`/ | COMMENT |
| MEDIUM | crates/extensions/packages/memory-native/Cargo.toml | 45 | # `assert!*` calls (intentional — it's a test harness) and must stay | COMMENT |
| MEDIUM | crates/substrates/ironclaw_filesystem/src/fault.rs | 114 | /// is the robust, mount-shape-independent target. | COMMENT |
| MEDIUM | crates/loop/ironclaw_hooks/Cargo.toml | 20 | # * the `predicate_state::contract` trait-level test harness, so the durable | COMMENT |
| MEDIUM | crates/loop/ironclaw_hooks/Cargo.toml | 80 | # `harness = false` rationale): each heavy case fills a key to the sample cap, | COMMENT |
| MEDIUM | …ronclaw_hooks/tests/predicate_state_libsql_contract.rs | 6 | //! # Why `harness = false` + a hand-rolled serial runner | COMMENT |
| MEDIUM | …tes/kernel/ironclaw_host_runtime/src/memory_context.rs | 249 | // `Some("")` as equivalent so the comparison is sentinel-robust. | COMMENT |
| MEDIUM | crates/kernel/ironclaw_turns/Cargo.toml | 51 | # Test-only: the durable-read perf harness (`events_query_stress`) builds a real | COMMENT |
| MEDIUM | crates/kernel/ironclaw_turns/Cargo.toml | 60 | # URL is configured). Versions match the workspace integration harness. | COMMENT |
| MEDIUM | tests/integration/wiring_parity.rs | 1 | //! W5-WIRING-PARITY (issue #5637): the harness's `DefaultPlannedRuntimeParts` | COMMENT |
| MEDIUM | tests/integration/changed-coverage-exemptions.toml | 809 | # the hermetic integration harness cannot execute (full class-by-class | COMMENT |
| MEDIUM | tests/integration/support/product_surface.rs | 36 | #[error("failed to create product surface harness tempdir: {0}")] | COMMENT |
| MEDIUM | tests/integration/support/product_surface.rs | 42 | #[error("missing agent id in product surface harness scope")] | COMMENT |
| MEDIUM | tests/integration/support/config.rs | 3 | #![allow(dead_code)] // Shared by staged Reborn harness modules as ports opt in. | COMMENT |
| MEDIUM | …tion/support/doubles/recording_test_capability_port.rs | 1 | #![allow(dead_code)] // Carried from harness.rs's blanket allow: shared across bins with differing usage. | COMMENT |
| MEDIUM | tests/integration/support/harness/options.rs | 121 | /// #5886 harness-wiring seam: when `true`, the harness's `builtin.trigger_list` | COMMENT |
| MEDIUM | tests/integration/support/harness/assembly.rs | 218 | /// #5886 harness-wiring seam: routes ONLY `builtin.trigger_list` dispatch to | COMMENT |
| MEDIUM | tests/test-pages/cnn/source.html | 3380 | new Image().src = prefix + '//tapestry.tapad.com/tapestry/1?ta_partner_id=1969&ta_redirect=' + prefix + enco | CODE |
| MEDIUM | tests/e2e/reborn_webui_harness.py | 508 | # shape. Keep this shared deterministic harness explicit rather | COMMENT |
| MEDIUM | tests/e2e/journey_cases.py | 99 | # Tools outside a world the harness can reset (web-access, nearai) | COMMENT |
| MEDIUM | tests/e2e/journey_cases.py | 468 | # the harness's recording network substrate), so `NONE`. | COMMENT |
| MEDIUM | tests/e2e/scenarios/test_mission_gmail_3133.py | 290 | # to a direct fire so the test stays robust to LLM phrasing | COMMENT |
| MEDIUM | tests/e2e/scenarios/test_extensions.py | 1 | """Scenario: Extensions tab – comprehensive UI coverage. | STRING |
| MEDIUM⚡ | tests/e2e/scenarios/test_journey_coverage.py | 1424 | # `external_write` effect on each manifest tool. The harness used to restate | COMMENT |
| MEDIUM | scripts/test-mutation-audit.sh | 2 | # Self-tests for the mutation-audit harness. | COMMENT |
| MEDIUM | scripts/reborn_webui_v2_live_qa/run_live_qa.py | 209 | # route is still accepted so one harness spans binaries on either side of | COMMENT |
| MEDIUM | scripts/reborn_webui_v2_live_qa/run_live_qa.py | 7017 | # harness tokens BEFORE the chat prompt (per-run ms-suffix nonces on every | COMMENT |
| MEDIUM | scripts/reborn_webui_v2_live_qa/run_live_qa.py | 9033 | # turning model-output variance into a blocking harness failure. | COMMENT |
| MEDIUM | scripts/ci/reborn_pr_test_plan.py | 187 | # `harness/latency/runner` is a standalone cargo project with its own | COMMENT |
| MEDIUM | scripts/ci/reborn_pr_test_plan.py | 233 | # The tool-discovery benchmark is a manual live-model harness. It records | COMMENT |
| MEDIUM | scripts/ci/reborn_pr_test_plan.py | 237 | # The live Telegram release smoke harness (`run_smoke.py` + config + | COMMENT |
| MEDIUM | scripts/ci/reborn_pr_test_plan.py | 361 | # prompt assets of the crates the golden harness composes. A change here still | COMMENT |
| MEDIUM | scripts/ci/test-check-hermetic-env.sh | 5 | # asserts the checker blocks/allows it. Mirrors the temp-repo harness in | COMMENT |
| MEDIUM | scripts/ci/test_reborn_pr_test_plan.py | 599 | # 2026-08-06: the live Telegram release smoke harness — run by | COMMENT |
| MEDIUM | scripts/ci/check-test-suite-boundaries.sh | 11 | # tests/integration/support/ (the roadmap harness), but tests/integration/ | COMMENT |
| MEDIUM | scripts/ci/check-test-suite-boundaries.sh | 13 | # silently pull QA-only fixtures/harness weight into the suites this repo's | COMMENT |
| MEDIUM | scripts/ci/test-reborn-coverage.sh | 152 | # empty-check below and reporting a normal FAIL (the harness runs every case). | COMMENT |
| MEDIUM | scripts/ci/test-reborn-coverage.sh | 1224 | # pattern either) — mirrors the real tests/integration/support/ harness tree. | COMMENT |
| 10 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | Cargo.toml | 33 | # Maintainability guardrails against dead/speculative public API | COMMENT |
| MEDIUM | clippy.toml | 1 | # Complexity guardrails for AI-assisted development quality. | COMMENT |
| MEDIUM | …tes/domains/ironclaw_threads/src/filesystem_service.rs | 4594 | // ordinary transcript content (see crate guardrails). | COMMENT |
| MEDIUM | crates/domains/ironclaw_threads/src/in_memory.rs | 1977 | // ordinary transcript content (see crate guardrails). | COMMENT |
| MEDIUM | crates/domains/ironclaw_conversations/Cargo.toml | 34 | # orchestration reaches it through the `ConversationTurnSubmitter` port that | COMMENT |
| MEDIUM | …/domains/ironclaw_outbound/src/outbound_state_store.rs | 1872 | // The outbound CLAUDE.md guardrails forbid leaking backend error detail | COMMENT |
| MEDIUM | crates/domains/ironclaw_llm/src/bedrock.rs | 108 | // blocks. Messages may carry tool history from prior agentic iterations, | COMMENT |
| MEDIUM | crates/app/ironclaw_composition/CONTRACT.md | 1 | # ironclaw_composition guardrails | COMMENT |
| MEDIUM | crates/app/ironclaw_composition/tests/webui_v2_serve.rs | 2888 | // the deferred JS/e2e scaffold. | COMMENT |
| MEDIUM | crates/app/ironclaw_composition/tests/webui_v2_serve.rs | 3071 | // caller test belongs in a separate JS test scaffold the workspace | COMMENT |
| MEDIUM | crates/app/ironclaw_composition/src/admin_secrets.rs | 9 | //! "explicit admin-scoped API" the `ironclaw_secrets` guardrails anticipate | COMMENT |
| MEDIUM | crates/app/ironclaw_cli/src/commands/serve_sso.rs | 12 | //! is where this crate's guardrails place the `WebuiAuthenticator` | COMMENT |
| MEDIUM | crates/lanes/ironclaw_sandbox/AGENTS.md | 1 | # ironclaw_sandbox guardrails | COMMENT |
| MEDIUM | crates/lanes/ironclaw_sandbox/CLAUDE.md | 1 | # ironclaw_sandbox guardrails | COMMENT |
| MEDIUM | crates/lanes/ironclaw_mcp/AGENTS.md | 1 | # ironclaw_mcp guardrails | COMMENT |
| MEDIUM | crates/lanes/ironclaw_mcp/CLAUDE.md | 1 | # ironclaw_mcp guardrails | COMMENT |
| MEDIUM | crates/product/ironclaw_webui/CONTRACT.md | 1 | # ironclaw_webui guardrails | COMMENT |
| MEDIUM | …tes/product/ironclaw_webui/src/signed_session_login.rs | 8 | //! auth/session model. That keeps the rule from this crate's guardrails | COMMENT |
| MEDIUM | crates/product/ironclaw_webui/src/webui_serve.rs | 155 | /// (host-owned config — per the composition crate guardrails, env reads | COMMENT |
| MEDIUM | …claw_assistant/tests/reborn_services_module_charter.rs | 53 | // A `#[cfg(test)] mod …` is test scaffolding, not charter surface. | COMMENT |
| MEDIUM | …/ironclaw_extension_host/src/channel_host/e2e_tests.rs | 1313 | /// Shared bounded-poll scaffold for `wait_for_approval_prompt_messages` and | COMMENT |
| MEDIUM | …xtensions/packages/memory-native/src/contract_tests.rs | 34 | //! This first scaffold intentionally covers a small surface | COMMENT |
| MEDIUM | …tensions/packages/memory-native/src/repo/filesystem.rs | 316 | /// helper that the scaffold's prior `list_documents` used (PR #3679 | COMMENT |
| MEDIUM | crates/substrates/ironclaw_filesystem/Cargo.toml | 24 | # stale-sweep scaffolding. Never enabled by a shipped artifact. | COMMENT |
| MEDIUM | crates/substrates/ironclaw_filesystem/CONTRACT.md | 1 | # ironclaw_filesystem guardrails | COMMENT |
| MEDIUM | crates/substrates/ironclaw_secrets/src/secret_store.rs | 1629 | // secrets crate guardrails forbid leaking host paths through audit/error | COMMENT |
| MEDIUM | …ates/loop/ironclaw_agent_loop/src/strategies/budget.rs | 32 | /// ceilings. Long agentic coding turns legitimately run hundreds of model | COMMENT |
| MEDIUM | …es/loop/ironclaw_agent_loop/src/strategies/recovery.rs | 248 | /// a couple of quick retries; a long-running agentic turn must ride them out | COMMENT |
| MEDIUM | crates/loop/ironclaw_turn_runner/src/trace_capture.rs | 738 | // agentic turn clear the submission-score gate in production. | COMMENT |
| MEDIUM | …oop/ironclaw_turn_runner/src/planned_driver_factory.rs | 311 | /// Shared scaffold behind `planned_default_profile_definition()`, | COMMENT |
| MEDIUM | …s/kernel/ironclaw_host_runtime/src/services/builder.rs | 476 | // composition, but must not silently satisfy production guardrails. | COMMENT |
| MEDIUM | crates/kernel/ironclaw_trust/CONTRACT.md | 267 | ## 6. Mutation and invalidation orchestration | COMMENT |
| MEDIUM | crates/kernel/ironclaw_trust/src/lib.rs | 29 | //! per-file guardrails, and `docs/internal/reborn/contracts/host-api.md` (in the | COMMENT |
| MEDIUM | tests/integration/extension_delivery.rs | 1454 | // #6520 delivery is event-driven, so poll the wire with the file's | COMMENT |
| MEDIUM | tests/integration/extension_delivery.rs | 1851 | // with the token substituted host-side. #6520 delivery is event-driven, | COMMENT |
| MEDIUM | tests/integration/support/harness_web_access.rs | 26 | #![allow(dead_code)] // Test-only scaffolding; not every consumer exercises every helper. | COMMENT |
| MEDIUM | tests/e2e/mock_llm.py | 1514 | # now the agentic loop should call tools | COMMENT |
| MEDIUM | tests/e2e/mock_llm.py | 1521 | # After a tool result in the agentic loop, signal completion | COMMENT |
| MEDIUM | tests/e2e/mock_llm.py | 1888 | # agentic loop calls the mock LLM again after each tool | COMMENT |
| MEDIUM | tests/e2e/LIVE_TOOL_FAILURES.md | 277 | ### 2. Add runtime claim-vs-effect guardrails | COMMENT |
| MEDIUM | …cs/internal/design/telegram-linked-device/CHECKLIST.md | 111 | ## PR 5 — Package scaffold (fake vendor) | COMMENT |
| MEDIUM | docs/internal/design/telegram-linked-device/PLAN.md | 174 | ## PR 5 — Package scaffold with a fake vendor | COMMENT |
| MEDIUM | docs/internal/design/oobe/PROPOSAL.md | 167 | ### 5.7 D-V1 — Cold-start queued OAuth orchestration | COMMENT |
| MEDIUM⚡ | docs/internal/reborn/target-architecture/CHECKLIST.md | 120 | - [x] Split `ironclaw_extension_manager` out of `extension_host` (the #6616/#6669 arrival inventory: `product_lifecycle` | CODE |
| MEDIUM⚡ | docs/internal/reborn/target-architecture/CHECKLIST.md | 121 | 1. **Five of the nine inventory items moved; four could not, and every reason is structural rather than effort.** ✎ *C | CODE |
| MEDIUM⚡ | docs/internal/reborn/target-architecture/CHECKLIST.md | 122 | 2. ✎ **Amended 2026-08-01 — the row's own inventory contradicts §6.8.3's charter on `product_lifecycle`, and the chart | CODE |
| MEDIUM | docs/internal/reborn/target-architecture/CHECKLIST.md | 372 | - **The resolution that does work, and its true cost — the estimate it was scoped against is low by roughly 5–8×.** Mo | CODE |
| MEDIUM | docs/internal/reborn/target-architecture/CHECKLIST.md | 404 | - [ ] Composition behavior evictions (each its own PR). *Partly landed with #6691 (2026-07-30) — see PROPOSAL §6.10.1 fo | CODE |
| MEDIUM | docs/internal/reborn/target-architecture/PLAN.md | 47 | 2. **⚠ The `extension_manager` split does *not* move "as a unit, like it arrived", and that sentence above is refuted. | CODE |
| MEDIUM | docs/internal/reborn/target-architecture/PROPOSAL.md | 568 | - **6.4.2 `ironclaw_conversations`** — retain, rename internals. External↔canonical binding, actor pairing, accepted-mes | CODE |
| MEDIUM | docs/internal/reborn/target-architecture/PROPOSAL.md | 576 | - **6.4.11 `ironclaw_projects`** — **merge into `ironclaw_identity`** as its `projects` module (decided 2026-07-30; the | CODE |
| MEDIUM | docs/internal/reborn/target-architecture/PROPOSAL.md | 920 | > ✎ **Amended 2026-08-01 (Wave 1 truth audit) — row 1 is wrong about one of its seven, and the wave milestone written on | CODE |
| MEDIUM | docs/internal/reborn/target-architecture/PROPOSAL.md | 925 | > - **⚠ `conversations → turns` carries `removes_in = "WS5"`, and WS5 has now partly landed without it falling.** WS5's | CODE |
| MEDIUM | docs/internal/reborn/target-architecture/PROPOSAL.md | 1298 | **Two further corrections.** (i) `crates/ironclaw_common/AGENTS.md:42` and #6982's body say `ironclaw_llm` has "4 of 7 c | CODE |
| MEDIUM | docs/internal/reborn/contracts/skills-extension.md | 433 | ## 14. In-process extension guardrails | COMMENT |
| MEDIUM | docs/internal/reborn/design-system/PLAN.md | 47 | ## Phase 4 — Interaction & component updates (agentic-first) · [Epic #7782](README.md#epic-ownership-canonical) | COMMENT |
| MEDIUM | docs/internal/apdd-governance-kit/EVALUATION.md | 38 | ### The agentic operating system: four governance layers + a design track | COMMENT |
| MEDIUM | scripts/reborn_webui_v2_live_qa/test_run_live_qa.py | 3888 | # 10H asserts the email hallucination guard, not tool | COMMENT |
| MEDIUM | scripts/ci/reborn_pr_test_plan.py | 505 | # * `mutation-audit.sh` is the audit those guardrails self-test, run by | COMMENT |
| MEDIUM | scripts/ci/test-check-composition-budget.sh | 7 | # budget file, or this test changes — guardrails are code (.claude/rules/ | COMMENT |
| 2 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_validate_reborn_binary_artifact.py | 1 | CODE | |
| LOW | tests/test_smoke_release_binary.py | 1 | CODE | |
| LOW | tests/test_check_reborn_responses_e2e_manifest.py | 1 | CODE | |
| LOW | tests/e2e/live_harness.py | 35 | CODE | |
| LOW | tests/e2e/product_surface_coverage.py | 4 | CODE | |
| LOW | tests/e2e/hermetic_process.py | 3 | CODE | |
| LOW | tests/e2e/provider_fault_proxy.py | 8 | CODE | |
| LOW | tests/e2e/scenarios/test_v2_engine_tool_lifecycle.py | 25 | CODE | |
| LOW | …e/scenarios/test_reborn_webui_v2_legacy_attachments.py | 14 | CODE | |
| LOW | …e/scenarios/test_reborn_webui_v2_legacy_attachments.py | 14 | CODE | |
| LOW | …e/scenarios/test_reborn_webui_v2_legacy_attachments.py | 14 | CODE | |
| LOW | tests/e2e/scenarios/test_v2_notion_mcp_oauth_flow.py | 33 | CODE | |
| LOW | tests/e2e/scenarios/test_v2_notion_mcp_oauth_flow.py | 33 | CODE | |
| LOW | tests/e2e/scenarios/test_v2_notion_mcp_oauth_flow.py | 33 | CODE | |
| LOW | tests/e2e/scenarios/test_provider_fault_proxy.py | 3 | CODE | |
| LOW | …e/scenarios/test_routine_oauth_credential_injection.py | 13 | CODE | |
| LOW | …e/scenarios/test_routine_oauth_credential_injection.py | 16 | CODE | |
| LOW | tests/e2e/scenarios/test_channel_approval_gates.py | 21 | CODE | |
| LOW | tests/e2e/scenarios/test_channel_approval_gates.py | 30 | CODE | |
| LOW | …s/e2e/scenarios/test_reborn_webui_v2_filesystem_api.py | 15 | CODE | |
| LOW | tests/e2e/scenarios/test_mission_gmail_3133.py | 68 | CODE | |
| LOW | tests/e2e/scenarios/test_reborn_webui_v2_session_api.py | 13 | CODE | |
| LOW | …enarios/test_reborn_webui_v2_legacy_settings_search.py | 10 | CODE | |
| LOW | …enarios/test_reborn_webui_v2_legacy_settings_search.py | 10 | CODE | |
| LOW | tests/e2e/scenarios/test_v2_gsuite_oauth_flow.py | 22 | CODE | |
| LOW | tests/e2e/scenarios/test_v2_gsuite_oauth_flow.py | 35 | CODE | |
| LOW | tests/e2e/scenarios/test_v2_gsuite_oauth_flow.py | 35 | CODE | |
| LOW | tests/e2e/scenarios/test_v2_gsuite_oauth_flow.py | 35 | CODE | |
| LOW | …/scenarios/test_reborn_webui_v2_legacy_chat_actions.py | 8 | CODE | |
| LOW | …/scenarios/test_reborn_webui_v2_legacy_chat_actions.py | 8 | CODE | |
| LOW | tests/e2e/scenarios/test_v2_github_pat_flow.py | 33 | CODE | |
| LOW | tests/e2e/scenarios/test_v2_github_pat_flow.py | 41 | CODE | |
| LOW | tests/e2e/scenarios/test_v2_github_pat_flow.py | 41 | CODE | |
| LOW | tests/e2e/scenarios/test_v2_github_pat_flow.py | 41 | CODE | |
| LOW | tests/e2e/scenarios/test_provider_world_isolation.py | 13 | CODE | |
| LOW | …ios/test_reborn_webui_v2_legacy_message_persistence.py | 6 | CODE | |
| LOW | …ios/test_reborn_webui_v2_legacy_message_persistence.py | 6 | CODE | |
| LOW | tests/e2e/scenarios/test_v2_engine_error_handling.py | 30 | CODE | |
| LOW | …ts/e2e/scenarios/test_reborn_webui_v2_legacy_skills.py | 3 | CODE | |
| LOW | tests/e2e/scenarios/test_oauth_credential_fallback.py | 16 | CODE | |
| LOW | tests/e2e/scenarios/test_reborn_v2_file_download.py | 25 | CODE | |
| LOW | tests/e2e/scenarios/test_reborn_v2_file_download.py | 25 | CODE | |
| LOW | tests/e2e/scenarios/test_plan_mode.py | 8 | CODE | |
| LOW | tests/e2e/scenarios/test_plan_mode.py | 8 | CODE | |
| LOW | tests/e2e/scenarios/test_admin_api.py | 32 | CODE | |
| LOW | tests/e2e/scenarios/test_widget_customization.py | 37 | CODE | |
| LOW | tests/e2e/scenarios/test_emulate_build_parity.py | 16 | CODE | |
| LOW | tests/e2e/scenarios/test_auth_no_duplicate_response.py | 33 | CODE | |
| LOW | tests/e2e/scenarios/test_v2_engine_approval_flow.py | 18 | CODE | |
| LOW | …e2e/scenarios/test_reborn_webui_v2_legacy_rendering.py | 6 | CODE | |
| LOW | …e2e/scenarios/test_reborn_webui_v2_legacy_rendering.py | 6 | CODE | |
| LOW | tests/e2e/scenarios/test_skill_oauth_flow.py | 20 | CODE | |
| LOW | tests/e2e/scenarios/test_skill_oauth_flow.py | 20 | CODE | |
| LOW | tests/e2e/scenarios/test_skill_oauth_flow.py | 30 | CODE | |
| LOW | scripts/test-import-reborn-run-artifact.py | 1 | CODE | |
| LOW | scripts/dev_metrics.py | 18 | CODE | |
| LOW | scripts/dev_metrics.py | 26 | CODE | |
| LOW | scripts/import-reborn-run-artifact.py | 4 | CODE | |
| LOW | scripts/test-check-type-duplicates.py | 20 | CODE | |
| LOW | …ripts/reborn_webui_v2_live_qa/external_auth_helpers.py | 3 | CODE | |
| 134 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/e2e/conftest.py | 52 | except Exception: | CODE |
| LOW | tests/e2e/conftest.py | 145 | except Exception: | CODE |
| LOW | tests/e2e/conftest.py | 183 | except Exception: | CODE |
| LOW | tests/e2e/live_harness.py | 147 | except Exception: | CODE |
| LOW | tests/e2e/fake_telegram_api.py | 105 | except Exception: | CODE |
| LOW | tests/e2e/helpers.py | 826 | except Exception: | CODE |
| LOW | tests/e2e/scenarios/test_v2_engine_auth_cancel.py | 235 | except Exception: | CODE |
| LOW | tests/e2e/scenarios/test_v2_engine_auth_flow.py | 687 | except Exception: | CODE |
| LOW | tests/e2e/scenarios/test_v2_kernel_auth_gateway_flow.py | 275 | except Exception: | STRING |
| LOW | …/e2e/scenarios/test_reborn_webui_v2_legacy_projects.py | 253 | except Exception: | CODE |
| LOW | tests/e2e/scenarios/test_message_persistence.py | 315 | except Exception: | CODE |
| LOW | tests/e2e/scenarios/test_message_persistence.py | 447 | except Exception: | CODE |
| LOW | tests/e2e/scenarios/test_reborn_qa_trace_full_path.py | 420 | except Exception as cleanup_error: | CODE |
| MEDIUM | tests/e2e/scenarios/test_v2_auth_oauth_matrix.py | 63 | def _drain_pipes(): | CODE |
| LOW | tests/e2e/scenarios/test_v2_auth_oauth_matrix.py | 102 | except Exception: | CODE |
| LOW | tests/e2e/scenarios/test_v2_auth_oauth_matrix.py | 1341 | except Exception: | CODE |
| LOW⚡ | tests/e2e/scenarios/test_v2_auth_oauth_matrix.py | 477 | except Exception: | STRING |
| LOW⚡ | tests/e2e/scenarios/test_v2_auth_oauth_matrix.py | 481 | except Exception: | STRING |
| LOW | tests/e2e/scenarios/test_v2_auth_oauth_matrix.py | 607 | except Exception: | STRING |
| LOW | tests/e2e/scenarios/test_v2_auth_oauth_matrix.py | 624 | except Exception: | STRING |
| LOW | tests/e2e/scenarios/test_plan_mode.py | 74 | except Exception: | CODE |
| LOW | tests/e2e/scenarios/test_plan_mode.py | 180 | except Exception: | CODE |
| LOW | tests/e2e/scenarios/test_v2_engine_approval_flow.py | 221 | except Exception as e: | CODE |
| LOW⚡ | tests/e2e/scenarios/test_skill_oauth_flow.py | 193 | except Exception: | CODE |
| LOW | scripts/test_dev_metrics.py | 146 | except Exception as e: # noqa: BLE001 | CODE |
| LOW | scripts/e2e-skill-self-creation.sh | 252 | except Exception: | CODE |
| LOW | scripts/reborn_webui_v2_live_qa/slack_helpers.py | 241 | except Exception as exc: | CODE |
| LOW | scripts/reborn_webui_v2_live_qa/slack_helpers.py | 843 | except Exception as exc: | CODE |
| LOW | scripts/reborn_webui_v2_live_qa/slack_helpers.py | 884 | except Exception as exc: | CODE |
| LOW | scripts/reborn_webui_v2_live_qa/slack_helpers.py | 1018 | except Exception as exc: | CODE |
| LOW | scripts/reborn_webui_v2_live_qa/slack_helpers.py | 1247 | except Exception: | CODE |
| LOW | scripts/reborn_webui_v2_live_qa/google_auth_helpers.py | 319 | except Exception as exc: | CODE |
| LOW | scripts/reborn_webui_v2_live_qa/google_auth_helpers.py | 348 | except Exception as exc: | CODE |
| LOW | scripts/reborn_webui_v2_live_qa/google_auth_helpers.py | 498 | except Exception as exc: | CODE |
| MEDIUM | scripts/reborn_webui_v2_live_qa/run_live_qa.py | 2269 | def read_main_text() -> str: | CODE |
| LOW⚡ | scripts/reborn_webui_v2_live_qa/run_live_qa.py | 1539 | except Exception: | CODE |
| LOW⚡ | scripts/reborn_webui_v2_live_qa/run_live_qa.py | 1544 | except Exception as screenshot_exc: | CODE |
| LOW⚡ | scripts/reborn_webui_v2_live_qa/run_live_qa.py | 1553 | except Exception as trace_exc: | CODE |
| LOW⚡ | scripts/reborn_webui_v2_live_qa/run_live_qa.py | 1563 | except Exception as summary_exc: | CODE |
| LOW⚡ | scripts/reborn_webui_v2_live_qa/run_live_qa.py | 2200 | except Exception: | CODE |
| LOW⚡ | scripts/reborn_webui_v2_live_qa/run_live_qa.py | 2212 | except Exception: | CODE |
| LOW⚡ | scripts/reborn_webui_v2_live_qa/run_live_qa.py | 2220 | except Exception: | CODE |
| LOW⚡ | scripts/reborn_webui_v2_live_qa/run_live_qa.py | 2227 | except Exception: | CODE |
| LOW⚡ | scripts/reborn_webui_v2_live_qa/run_live_qa.py | 2234 | except Exception: | CODE |
| LOW | scripts/reborn_webui_v2_live_qa/run_live_qa.py | 983 | except Exception as exc: | CODE |
| LOW | scripts/reborn_webui_v2_live_qa/run_live_qa.py | 1345 | except Exception as exc: | CODE |
| LOW | scripts/reborn_webui_v2_live_qa/run_live_qa.py | 1387 | except Exception as exc: | CODE |
| LOW | scripts/reborn_webui_v2_live_qa/run_live_qa.py | 1424 | except Exception: | CODE |
| LOW | scripts/reborn_webui_v2_live_qa/run_live_qa.py | 1440 | except Exception as exc: | CODE |
| LOW | scripts/reborn_webui_v2_live_qa/run_live_qa.py | 1451 | except Exception as exc: | CODE |
| LOW | scripts/reborn_webui_v2_live_qa/run_live_qa.py | 1910 | except Exception: | CODE |
| LOW | scripts/reborn_webui_v2_live_qa/run_live_qa.py | 1926 | except Exception as exc: | CODE |
| LOW | scripts/reborn_webui_v2_live_qa/run_live_qa.py | 2024 | except Exception: | CODE |
| LOW | scripts/reborn_webui_v2_live_qa/run_live_qa.py | 2134 | except Exception as exc: | CODE |
| LOW | scripts/reborn_webui_v2_live_qa/run_live_qa.py | 2272 | except Exception: | CODE |
| LOW | scripts/reborn_webui_v2_live_qa/run_live_qa.py | 2289 | except Exception: | CODE |
| LOW | scripts/reborn_webui_v2_live_qa/run_live_qa.py | 2299 | except Exception: | CODE |
| LOW | scripts/reborn_webui_v2_live_qa/run_live_qa.py | 2310 | except Exception: | CODE |
| LOW | scripts/reborn_webui_v2_live_qa/run_live_qa.py | 2341 | except Exception: | CODE |
| LOW | scripts/reborn_webui_v2_live_qa/run_live_qa.py | 2353 | except Exception: | CODE |
| 98 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | …/domains/ironclaw_outbound/src/outbound_state_store.rs | 2231 | // Step 3: simulate the crash window by injecting a dangling conv_a index | COMMENT |
| LOW⚡ | …/domains/ironclaw_outbound/src/outbound_state_store.rs | 2240 | // Step 4: conv_a lookup must be a miss — the primary record lists conv_b, | COMMENT |
| LOW⚡ | …/domains/ironclaw_outbound/src/outbound_state_store.rs | 2755 | // Step 1: store_a writes rec_a (conv index version 1). | COMMENT |
| LOW⚡ | …/domains/ironclaw_outbound/src/outbound_state_store.rs | 2761 | // Step 2: store_b writes rec_b (conv index version 2) — simulates a | COMMENT |
| LOW⚡ | …/domains/ironclaw_outbound/src/outbound_state_store.rs | 2769 | // Step 3: store_a re-records rec_a. The index already carries rec_a | COMMENT |
| LOW⚡ | …/domains/ironclaw_outbound/src/outbound_state_store.rs | 2849 | // Step 1: store_a records rec_a → conv index = [rec_a]. | COMMENT |
| LOW⚡ | …/domains/ironclaw_outbound/src/outbound_state_store.rs | 2855 | // Step 2: store_b records rec_b → conv index = [rec_a, rec_b]. | COMMENT |
| LOW⚡ | …/domains/ironclaw_outbound/src/outbound_state_store.rs | 2861 | // Step 3: store_a removes rec_a. Its snapshot (from step 1) only sees | COMMENT |
| LOW⚡ | …/domains/ironclaw_outbound/src/outbound_state_store.rs | 2870 | // Step 4: only rec_b must survive. | COMMENT |
| LOW | …/domains/ironclaw_outbound/src/outbound_state_store.rs | 2193 | // Step 1: record the route delivered to conv_a. | COMMENT |
| LOW | …/domains/ironclaw_outbound/src/outbound_state_store.rs | 2207 | // Step 2: overwrite the route with conv_b (normal path; conv_a index is cleaned). | COMMENT |
| LOW | …/domains/ironclaw_outbound/src/outbound_state_store.rs | 2251 | // Step 5: conv_b lookup must still return the live route. | COMMENT |
| LOW⚡ | …s/domains/ironclaw_trace_commons/src/onboarding/mod.rs | 265 | // Step 1: Parse the invite URL (trust root). | COMMENT |
| LOW⚡ | …s/domains/ironclaw_trace_commons/src/onboarding/mod.rs | 268 | // Step 2: Stage the keypair BEFORE any network call (retry-safe). | COMMENT |
| LOW⚡ | …s/domains/ironclaw_trace_commons/src/onboarding/mod.rs | 271 | // Step 3: POST to the onboard endpoint. Terminal invite rejections discard | COMMENT |
| LOW⚡ | …s/domains/ironclaw_trace_commons/src/onboarding/mod.rs | 275 | // Step 4: Parse + schema-validate the response body. | COMMENT |
| LOW⚡ | …s/domains/ironclaw_trace_commons/src/onboarding/mod.rs | 278 | // Step 5: Trust anchoring — issuer_url origin must equal invite origin. | COMMENT |
| LOW⚡ | …s/domains/ironclaw_trace_commons/src/onboarding/mod.rs | 290 | // Step 6: Cross-check the server's echoed device_key_id against the value | COMMENT |
| LOW⚡ | …s/domains/ironclaw_trace_commons/src/onboarding/mod.rs | 300 | // Step 7: ingest_url must be HTTPS (loopback http allowed for dev/tests). | COMMENT |
| LOW⚡ | …s/domains/ironclaw_trace_commons/src/onboarding/mod.rs | 303 | // Step 8: Write the tenant key file (pending file deliberately kept). | COMMENT |
| LOW⚡ | …s/domains/ironclaw_trace_commons/src/onboarding/mod.rs | 306 | // Step 9: Write the standing contribution policy. If this fails the pending | COMMENT |
| LOW⚡ | …s/domains/ironclaw_trace_commons/src/onboarding/mod.rs | 311 | // Step 10: Finalize — remove the pending file only now that both the tenant | COMMENT |
| LOW⚡ | …s/domains/ironclaw_trace_commons/src/onboarding/mod.rs | 321 | // Step 11: Sanitize browser-nav hints — drop any non-HTTPS URL (never fatal). | COMMENT |
| LOW | crates/domains/ironclaw_llm/src/openai_codex_session.rs | 356 | // Step 3: Poll for authorization code | COMMENT |
| LOW | crates/domains/ironclaw_llm/src/openai_codex_session.rs | 425 | // Step 4: Exchange authorization code for tokens (form-encoded, per Auth0 spec) | COMMENT |
| LOW⚡ | crates/domains/ironclaw_llm/src/recording.rs | 1850 | // Step 0: user_input "Do something" | COMMENT |
| LOW⚡ | crates/domains/ironclaw_llm/src/recording.rs | 1851 | // Step 1: text response | COMMENT |
| LOW⚡ | crates/domains/ironclaw_llm/src/recording.rs | 1852 | // Step 2: text response (no new user_input since no new user messages) | COMMENT |
| LOW⚡ | crates/domains/ironclaw_llm/src/github_copilot_auth.rs | 297 | // Step 1: Exchange the OAuth token for a Copilot session token. | COMMENT |
| LOW⚡ | crates/domains/ironclaw_llm/src/github_copilot_auth.rs | 301 | // Step 2: Verify the session token works against the models endpoint. | COMMENT |
| LOW | …uct/ironclaw_webui/tests/webui_v2_handlers_contract.rs | 7736 | // Step 1: consume the only slot with a held-open SSE connection | COMMENT |
| LOW | …uct/ironclaw_webui/tests/webui_v2_handlers_contract.rs | 7769 | // Step 2: same-caller WS upgrade must hit the shared cap. Use a | COMMENT |
| LOW | …uct/ironclaw_webui/tests/webui_v2_handlers_contract.rs | 7796 | // Step 3: drop the SSE stream → kernel closes the connection | COMMENT |
| LOW | crates/product/ironclaw_webui/src/auth/github.rs | 372 | /// Step 1: exchange the authorization code for an access token, | COMMENT |
| LOW | …onclaw_turn_runner/src/subagent/await_edge/resolver.rs | 669 | // Step 1: append (idempotent). A re-peeked edge that already carries | COMMENT |
| LOW | …onclaw_turn_runner/src/subagent/await_edge/resolver.rs | 726 | // Step 2: attend. A re-drive that finds the edge already past the | COMMENT |
| LOW | …w_host_runtime/tests/host_runtime_services_contract.rs | 6903 | // Step 1: store error → pre-flight skips → approval gate fires. | COMMENT |
| LOW | …w_host_runtime/tests/host_runtime_services_contract.rs | 6948 | // Step 2: approve WITH the required secret handle granted, so dispatch | COMMENT |
| LOW | …e/scenarios/test_routine_oauth_credential_injection.py | 30 | # Step 1: Ensure gmail is installed and authenticated | COMMENT |
| LOW | …e/scenarios/test_routine_oauth_credential_injection.py | 56 | # Step 2: Navigate browser to routines tab and create a routine | COMMENT |
| LOW | …e/scenarios/test_routine_oauth_credential_injection.py | 70 | # Step 3: Create a routine that calls gmail tool | COMMENT |
| LOW | …e/scenarios/test_routine_oauth_credential_injection.py | 90 | # Step 4: Trigger the routine manually | COMMENT |
| LOW | …e/scenarios/test_routine_oauth_credential_injection.py | 102 | # Step 5: Verify execution succeeded | COMMENT |
| LOW⚡ | tests/e2e/scenarios/test_v2_engine_auth_flow.py | 1768 | # Step 1: Send message triggering the github skill | COMMENT |
| LOW⚡ | tests/e2e/scenarios/test_v2_engine_auth_flow.py | 1791 | # Step 3: Submit a token | COMMENT |
| LOW⚡ | tests/e2e/scenarios/test_v2_engine_auth_flow.py | 1800 | # Step 4: Wait for the retry — the token submission triggers a retry | COMMENT |
| LOW | tests/e2e/scenarios/test_v2_engine_auth_flow.py | 1779 | # Step 2: Wait for auth prompt — verifies NeedAuthentication triggered. | COMMENT |
| LOW | tests/e2e/scenarios/test_v2_engine_auth_flow.py | 1817 | # Step 5: Verify the token was stored and the retry happened | COMMENT |
| LOW⚡ | tests/e2e/scenarios/test_v2_kernel_auth_gateway_flow.py | 459 | # Step 2: Wait for auth prompt / pending gate | COMMENT |
| LOW⚡ | tests/e2e/scenarios/test_v2_kernel_auth_gateway_flow.py | 462 | # Step 3: Submit token via the gate-resolve API endpoint | COMMENT |
| LOW | tests/e2e/scenarios/test_v2_kernel_auth_gateway_flow.py | 445 | # Step 1: Trigger auth flow | COMMENT |
| LOW | tests/e2e/scenarios/test_v2_kernel_auth_gateway_flow.py | 483 | # Step 4: Verify the auth flow completes — send another message | COMMENT |
| LOW⚡ | tests/e2e/scenarios/test_routine_full_job.py | 144 | # Step 1: Create full_job routine via chat | COMMENT |
| LOW⚡ | tests/e2e/scenarios/test_routine_full_job.py | 155 | # Step 2: Trigger the routine | COMMENT |
| LOW⚡ | tests/e2e/scenarios/test_routine_full_job.py | 161 | # Step 3: Wait for the run to complete | COMMENT |
| LOW⚡ | tests/e2e/scenarios/test_routine_full_job.py | 171 | # Step 4: Verify the job reached a success state. | COMMENT |
| LOW⚡ | tests/e2e/scenarios/test_skill_oauth_flow.py | 339 | # Step 4: Wait for the response (either retry or confirmation) | COMMENT |
| LOW⚡ | tests/e2e/scenarios/test_skill_oauth_flow.py | 344 | # Step 5: Verify the token was stored — the response should either | COMMENT |
| LOW | tests/e2e/scenarios/test_skill_oauth_flow.py | 300 | # Step 1: Send a message that needs github auth | COMMENT |
| LOW | tests/e2e/scenarios/test_skill_oauth_flow.py | 311 | # Step 2: Wait for auth prompt | COMMENT |
| 1 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/e2e/conftest.py | 121 | CODE | |
| LOW | tests/e2e/conftest.py | 670 | CODE | |
| LOW | tests/e2e/conftest.py | 1091 | CODE | |
| LOW | tests/e2e/conftest.py | 1190 | CODE | |
| LOW | tests/e2e/conftest.py | 1407 | CODE | |
| LOW | tests/e2e/conftest.py | 1505 | CODE | |
| LOW | tests/e2e/conftest.py | 1602 | CODE | |
| LOW | tests/e2e/conftest.py | 1812 | CODE | |
| LOW | tests/e2e/conftest.py | 2003 | CODE | |
| LOW | tests/e2e/conftest.py | 2166 | CODE | |
| LOW | tests/e2e/conftest.py | 2345 | CODE | |
| LOW | tests/e2e/conftest.py | 865 | CODE | |
| LOW | tests/e2e/live_llm_proxy.py | 191 | CODE | |
| LOW | tests/e2e/live_llm_proxy.py | 309 | CODE | |
| LOW | tests/e2e/live_harness.py | 85 | CODE | |
| LOW | tests/e2e/mock_llm.py | 1060 | CODE | |
| LOW | tests/e2e/mock_llm.py | 1528 | CODE | |
| LOW | tests/e2e/mock_llm.py | 1914 | CODE | |
| LOW | tests/e2e/mock_llm.py | 2053 | CODE | |
| LOW | tests/e2e/mock_llm.py | 2087 | CODE | |
| LOW | tests/e2e/mock_llm.py | 2820 | CODE | |
| LOW | tests/e2e/product_surface_coverage.py | 204 | CODE | |
| LOW | tests/e2e/provider_journey_trace.py | 108 | CODE | |
| LOW | tests/e2e/provider_journey_trace.py | 120 | CODE | |
| LOW | tests/e2e/provider_journey_trace.py | 173 | CODE | |
| LOW | tests/e2e/provider_journey_trace.py | 244 | CODE | |
| LOW | tests/e2e/mock_llm_trace.py | 10 | CODE | |
| LOW | tests/e2e/mock_llm_trace.py | 77 | CODE | |
| LOW | tests/e2e/mock_llm_trace.py | 140 | CODE | |
| LOW | tests/e2e/mock_llm_trace.py | 438 | CODE | |
| LOW | tests/e2e/mock_llm_trace.py | 607 | CODE | |
| LOW | tests/e2e/provider_capability_inventory.py | 106 | CODE | |
| LOW | tests/e2e/provider_fault_proxy.py | 333 | CODE | |
| LOW | tests/e2e/helpers.py | 815 | CODE | |
| LOW | tests/e2e/helpers.py | 844 | CODE | |
| LOW | tests/e2e/helpers.py | 817 | CODE | |
| LOW | …scenarios/test_reborn_webui_v2_legacy_responses_api.py | 56 | CODE | |
| LOW | tests/e2e/scenarios/test_mission_gmail_3133.py | 159 | CODE | |
| LOW | tests/e2e/scenarios/test_mission_gmail_3133.py | 244 | CODE | |
| LOW | tests/e2e/scenarios/test_v2_engine_auth_flow.py | 553 | CODE | |
| LOW | tests/e2e/scenarios/test_v2_kernel_auth_gateway_flow.py | 509 | CODE | |
| LOW | tests/e2e/scenarios/test_reborn_webui_v2_smoke.py | 1495 | CODE | |
| LOW | …cenarios/test_reborn_webui_v2_legacy_tool_execution.py | 53 | CODE | |
| LOW | …cenarios/test_reborn_webui_v2_legacy_tool_execution.py | 443 | CODE | |
| LOW | tests/e2e/scenarios/test_tool_execution.py | 24 | CODE | |
| LOW | tests/e2e/scenarios/test_message_persistence.py | 46 | CODE | |
| LOW | tests/e2e/scenarios/test_reborn_qa_trace_full_path.py | 706 | CODE | |
| LOW | tests/e2e/scenarios/test_v2_auth_oauth_matrix.py | 82 | CODE | |
| LOW | tests/e2e/scenarios/test_v2_auth_oauth_matrix.py | 1143 | CODE | |
| LOW | tests/e2e/scenarios/test_journey_coverage.py | 463 | CODE | |
| LOW | tests/e2e/scenarios/test_journey_coverage.py | 543 | CODE | |
| LOW | tests/e2e/scenarios/test_journey_coverage.py | 692 | CODE | |
| LOW | …2e/scenarios/test_reborn_webui_v2_legacy_extensions.py | 185 | CODE | |
| LOW | …2e/scenarios/test_reborn_webui_v2_legacy_extensions.py | 249 | CODE | |
| LOW | tests/e2e/scenarios/test_v2_engine_error_handling.py | 175 | CODE | |
| LOW | tests/e2e/scenarios/test_v2_engine_oauth_google.py | 336 | CODE | |
| LOW | …rios/test_reborn_webui_v2_streaming_run_control_api.py | 28 | CODE | |
| LOW | tests/e2e/scenarios/test_oauth_refresh.py | 120 | CODE | |
| LOW | tests/e2e/scenarios/test_auth_no_duplicate_response.py | 250 | CODE | |
| LOW | tests/e2e/scenarios/test_auth_no_duplicate_response.py | 262 | CODE | |
| 87 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tests/e2e/helpers.py | 0 | selector => { const input = document.queryselector(selector); return !!input && !input.disabled; } | STRING |
| HIGH | tests/e2e/scenarios/test_mission_gmail_3133.py | 0 | selector => { const input = document.queryselector(selector); return !!input && !input.disabled; } | STRING |
| HIGH | tests/e2e/scenarios/test_owner_scope.py | 0 | selector => { const input = document.queryselector(selector); return !!input && !input.disabled; } | STRING |
| HIGH | tests/e2e/scenarios/test_ownership_model.py | 0 | selector => { const input = document.queryselector(selector); return !!input && !input.disabled; } | STRING |
| HIGH | tests/e2e/scenarios/test_wasm_lifecycle.py | 0 | get a specific extension from the extensions list, or none. | STRING |
| HIGH | tests/e2e/scenarios/test_extension_oauth.py | 0 | get a specific extension from the extensions list, or none. | STRING |
| HIGH | tests/e2e/scenarios/test_oauth_url_parameters.py | 0 | get a specific extension from the extensions list, or none. | STRING |
| HIGH | tests/e2e/scenarios/test_mcp_auth_flow.py | 0 | get a specific extension from the extensions list, or none. | STRING |
| HIGH | tests/e2e/scenarios/test_v2_engine_tool_lifecycle.py | 0 | forward llvm coverage env vars from outer environment. | STRING |
| HIGH | tests/e2e/scenarios/test_v2_engine_auth_flow.py | 0 | forward llvm coverage env vars from outer environment. | STRING |
| HIGH | tests/e2e/scenarios/test_v2_engine_error_handling.py | 0 | forward llvm coverage env vars from outer environment. | STRING |
| HIGH | tests/e2e/scenarios/test_v2_engine_oauth_google.py | 0 | forward llvm coverage env vars from outer environment. | STRING |
| HIGH | tests/e2e/scenarios/test_v2_engine_approval_flow.py | 0 | forward llvm coverage env vars from outer environment. | STRING |
| HIGH | tests/e2e/scenarios/test_v2_notion_mcp_oauth_flow.py | 0 | reset mock state between tests so dirty state from a failure doesn't bleed. | STRING |
| HIGH | tests/e2e/scenarios/test_v2_gsuite_oauth_flow.py | 0 | reset mock state between tests so dirty state from a failure doesn't bleed. | STRING |
| HIGH | tests/e2e/scenarios/test_v2_github_pat_flow.py | 0 | reset mock state between tests so dirty state from a failure doesn't bleed. | STRING |
| HIGH | tests/e2e/scenarios/test_v2_auth_oauth_matrix.py | 0 | select user_id, expires_at, updated_at from secrets where name = ? order by updated_at desc limit 1 | STRING |
| HIGH | tests/e2e/scenarios/test_v2_engine_oauth_google.py | 0 | select user_id, expires_at, updated_at from secrets where name = ? order by updated_at desc limit 1 | STRING |
| HIGH | tests/e2e/scenarios/test_oauth_refresh.py | 0 | select user_id, expires_at, updated_at from secrets where name = ? order by updated_at desc limit 1 | STRING |
| HIGH | tests/e2e/scenarios/test_v2_auth_oauth_matrix.py | 0 | update secrets set expires_at = strftime('%y-%m-%dt%h:%m:%fz', 'now', '-1 hour') where user_id = ? and name = ? | STRING |
| HIGH | tests/e2e/scenarios/test_v2_engine_oauth_google.py | 0 | update secrets set expires_at = strftime('%y-%m-%dt%h:%m:%fz', 'now', '-1 hour') where user_id = ? and name = ? | STRING |
| HIGH | tests/e2e/scenarios/test_oauth_refresh.py | 0 | update secrets set expires_at = strftime('%y-%m-%dt%h:%m:%fz', 'now', '-1 hour') where user_id = ? and name = ? | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | …tend/src/pages/chat/chat.inspector-navigation.test.tsx | 143 | assert.equal(stream.controller.abort.mock.calls.at(-1)?.[0], "inspector disposed"); | CODE |
| CRITICAL | …rontend/src/pages/chat/inspector/useInspector.test.tsx | 368 | assert.equal(stream.controller.abort.mock.calls.at(-1)?.[0], "inspector hidden"); | CODE |
| CRITICAL | …rontend/src/pages/chat/inspector/useInspector.test.tsx | 430 | assert.equal(firstStream.controller.abort.mock.calls.at(-1)?.[0], "inspector disposed"); | CODE |
| CRITICAL | …cenario_trigger_create_has_no_delivery_target_field.rs | 95 | let tenant_id = g.shared.product_harness.scope.tenant_id.clone(); | CODE |
| CRITICAL | …oup_triggers/scenario_trigger_persists_after_reopen.rs | 50 | let tenant_id = g.shared.product_harness.scope.tenant_id.clone(); | CODE |
| CRITICAL | tests/test-pages/cnn/source.html | 3944 | window.ClickTaleSettings.ChangeMonitor.PII.Attributes.push({ | CODE |
| CRITICAL | tests/test-pages/cnn/source.html | 3965 | window.ClickTaleSettings.ChangeMonitor.PII.Text.push({ | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | tests/e2e/scenarios/test_v2_engine_auth_flow.py | 1763 | # Create a fresh thread | COMMENT |
| MEDIUM | tests/e2e/scenarios/test_v2_engine_auth_flow.py | 1844 | # Create a fresh thread (credential stored from previous test) | COMMENT |
| MEDIUM | tests/e2e/scenarios/test_pending_user_messages.py | 326 | # Create a new empty thread | COMMENT |
| MEDIUM⚡ | tests/e2e/scenarios/test_tool_permissions.py | 159 | # Create a fresh browser context (new session — no shared cookies/storage) | COMMENT |
| MEDIUM⚡ | tests/e2e/scenarios/test_v2_engine_error_handling.py | 243 | # Create a fresh thread | COMMENT |
| MEDIUM | tests/e2e/scenarios/test_v2_engine_error_handling.py | 301 | # Create a fresh thread | COMMENT |
| MEDIUM | tests/e2e/scenarios/test_v2_engine_oauth_google.py | 633 | # Create a fresh thread | COMMENT |
| MEDIUM | tests/e2e/scenarios/test_v2_engine_oauth_google.py | 684 | # Create a fresh thread | COMMENT |
| MEDIUM | tests/e2e/scenarios/test_v2_engine_oauth_google.py | 729 | # Create a fresh thread | COMMENT |
| MEDIUM | tests/e2e/scenarios/test_v2_engine_oauth_google.py | 859 | # Create a fresh thread | COMMENT |
| MEDIUM | tests/e2e/scenarios/test_skill_oauth_flow.py | 221 | # Create a thread and ask for secrets | COMMENT |
| MEDIUM | scripts/ci/test-check-include-str-paths.sh | 15 | # Create a minimal tree: $1=dir. Populated by the caller before running. | COMMENT |
| MEDIUM | .github/workflows/release-plz.yml | 47 | # Create a PR with the new versions and changelog, preparing the next release. | COMMENT |
| MEDIUM | .github/workflows/ironclaw-release.yml | 307 | # Create a GitHub Release while uploading all files to it | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …contracts/ironclaw_host_api/tests/host_api_contract.rs | 240 | "placeholder": "__credential__" | CODE |
| LOW | …ates/product/ironclaw_webui/frontend/src/i18n/pt-BR.ts | 1087 | "admin.users.displayNamePlaceholder": "Jane Doe", | CODE |
| LOW | crates/product/ironclaw_webui/frontend/src/i18n/de.ts | 1087 | "admin.users.displayNamePlaceholder": "Jane Doe", | CODE |
| LOW | …ates/product/ironclaw_webui/frontend/src/i18n/zh-CN.ts | 1086 | "admin.users.displayNamePlaceholder": "Jane Doe", | CODE |
| LOW | crates/product/ironclaw_webui/frontend/src/i18n/ar.ts | 1087 | "admin.users.displayNamePlaceholder": "Jane Doe", | CODE |
| LOW | crates/product/ironclaw_webui/frontend/src/i18n/es.ts | 1087 | "admin.users.displayNamePlaceholder": "Jane Doe", | CODE |
| LOW | crates/product/ironclaw_webui/frontend/src/i18n/en.ts | 1190 | "admin.users.displayNamePlaceholder": "Jane Doe", | CODE |
| LOW | crates/product/ironclaw_webui/frontend/src/i18n/fr.ts | 1087 | "admin.users.displayNamePlaceholder": "Jane Doe", | CODE |
| LOW | crates/product/ironclaw_webui/frontend/src/i18n/ko.ts | 1087 | "admin.users.displayNamePlaceholder": "Jane Doe", | CODE |
| LOW | crates/product/ironclaw_webui/frontend/src/i18n/ja.ts | 1087 | "admin.users.displayNamePlaceholder": "Jane Doe", | CODE |
| LOW | …sions/ironclaw_extension_host/src/product_lifecycle.rs | 1363 | // is needed to suppress "placeholder" tools, because there are none | COMMENT |
| LOW | …/extensions/packages/google-slides/wasm-src/src/api.rs | 157 | let pt = el["shape"]["placeholder"]["type"] | CODE |
| LOW | …ubstrates/ironclaw_safety/src/model_input_redaction.rs | 444 | | "placeholder" | CODE |
| LOW | …tes/loop/ironclaw_turn_runner/tests/driver_registry.rs | 115 | let fake_key = registry | CODE |
| LOW | …tes/loop/ironclaw_turn_runner/tests/driver_registry.rs | 132 | configured_profiles: vec![ConfiguredRunProfile::enabled("local_reference", fake_key)], | CODE |
| LOW | …tes/loop/ironclaw_turn_runner/tests/driver_registry.rs | 145 | let fake_key = registry | CODE |
| LOW | …tes/loop/ironclaw_turn_runner/tests/driver_registry.rs | 162 | configured_profiles: vec![ConfiguredRunProfile::enabled("local_reference", fake_key)], | CODE |
| LOW | tests/e2e/mock_llm.py | 577 | "Acme Corp", | CODE |
| LOW⚡ | tests/e2e/scenarios/test_extensions.py | 839 | placeholders = [await inputs.nth(i).get_attribute("placeholder") or "" for i in range(input_count)] | CODE |
| LOW | tests/e2e/scenarios/test_reborn_webui_v2_smoke.py | 1356 | "placeholder", "向 IronClaw 提问。" | CODE |
| LOW | …2e/scenarios/test_reborn_webui_v2_legacy_extensions.py | 1746 | "placeholder", "••••••• (leave blank to keep)" | CODE |
| LOW | docs/extensions/google/slides.md | 73 | - _"Replace all occurrences of '[COMPANY]' with 'Acme Corp' across the deck"_ | CODE |
| LOW | scripts/ci/test-reborn-coverage.sh | 915 | GH_TOKEN="fake-token" \ | CODE |
| LOW | scripts/ci/test-reborn-coverage.sh | 938 | GH_TOKEN="fake-token" \ | CODE |
| LOW | scripts/ci/test-reborn-coverage.sh | 958 | GH_TOKEN="fake-token" \ | CODE |
| LOW | scripts/ci/test-reborn-coverage.sh | 988 | GH_TOKEN="fake-token" \ | CODE |
| LOW | scripts/ci/test-reborn-coverage.sh | 996 | GH_TOKEN="fake-token" \ | CODE |
| LOW | scripts/ci/test-reborn-coverage.sh | 1007 | GH_TOKEN="fake-token" \ | CODE |
| LOW | scripts/ci/test-reborn-coverage.sh | 1025 | GH_TOKEN="fake-token" \ | CODE |
| LOW | scripts/ci/test-reborn-coverage.sh | 1045 | GH_TOKEN="fake-token" \ | CODE |
| LOW | scripts/ci/test-reborn-coverage.sh | 1069 | GH_TOKEN="fake-token" \ | CODE |
| LOW | scripts/ci/test-reborn-coverage.sh | 1094 | GH_TOKEN="fake-token" \ | CODE |
| LOW | scripts/ci/test-reborn-coverage.sh | 1121 | GH_TOKEN="fake-token" \ | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | infra/runner/seed-runner-db.sh | 6 | # Usage: | COMMENT |
| LOW | scripts/run-reborn-webui.sh | 12 | # Usage: | COMMENT |
| LOW | scripts/replay-snap.sh | 10 | # Usage: | COMMENT |
| LOW | scripts/mutation-verify-fix.sh | 16 | # Usage: | COMMENT |
| LOW | scripts/build-wasm-extensions.sh | 12 | # Usage: | COMMENT |
| LOW | scripts/e2e-skill-self-creation.sh | 38 | # Usage: | COMMENT |
| LOW | scripts/mutation-audit.sh | 9 | # Usage: | COMMENT |
| LOW | scripts/reborn-e2e-rust.sh | 5 | # Usage: | COMMENT |
| LOW | scripts/dev-setup.sh | 7 | # Usage: | COMMENT |
| LOW | scripts/coverage.sh | 4 | # Usage: | COMMENT |
| LOW | scripts/ci/reborn-coverage-summary.sh | 13 | # Usage: | COMMENT |
| LOW | scripts/ci/check-composition-budget.sh | 15 | # Usage: | COMMENT |
| LOW | scripts/ci/crate-dir.sh | 8 | # Usage: | COMMENT |
| LOW | scripts/ci/reborn-coverage-ratchet.sh | 10 | # Usage: | COMMENT |
| LOW | scripts/ci/reborn-coverage-merge-lcov.sh | 34 | # Usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/e2e/provider_operation_google_docs_cases.py | 146 | def _setup_table_revision_drift(proxy) -> None: | CODE |
| LOW | tests/e2e/provider_operation_google_docs_cases.py | 247 | def _setup_table_drift_after_population(proxy) -> None: | CODE |
| LOW | tests/e2e/provider_operation_google_docs_cases.py | 262 | def _setup_table_success(proxy) -> None: | CODE |
| LOW | tests/e2e/provider_operation_google_docs_cases.py | 279 | def _setup_table_drift_after_header(proxy) -> None: | CODE |
| LOW | tests/e2e/provider_operation_github_pull_cases.py | 184 | async def _updated_pull_outcome(emulate_url: str, preview: dict) -> None: | STRING |
| LOW | tests/e2e/provider_operation_google_drive_cases.py | 84 | async def _update_file_outcome(emulate_url: str, preview: dict) -> None: | CODE |
| LOW | tests/e2e/provider_operation_github_issue_cases.py | 102 | async def _updated_issue_outcome(emulate_url: str, preview: dict) -> None: | CODE |
| LOW | tests/e2e/provider_operation_google_calendar_cases.py | 95 | async def _update_event_outcome(emulate_url: str, preview: dict) -> None: | CODE |
| LOW | tests/e2e/provider_operation_google_calendar_cases.py | 108 | async def _set_reminder_outcome(emulate_url: str, preview: dict) -> None: | CODE |
| LOW | tests/e2e/provider_operation_slack_cases.py | 523 | def _setup_missing_message(proxy) -> None: | CODE |
| LOW | tests/e2e/provider_operation_slack_cases.py | 543 | def _setup_list_members(proxy) -> None: | CODE |
| LOW | tests/e2e/provider_operation_slack_cases.py | 586 | def _setup_empty_members(proxy) -> None: | CODE |
| LOW | tests/e2e/provider_operation_slack_cases.py | 615 | def _setup_empty_slack_history(proxy, endpoint: str) -> None: | CODE |
| LOW⚡ | tests/e2e/provider_operation_slack_cases.py | 626 | def _setup_empty_history(proxy) -> None: | CODE |
| LOW⚡ | tests/e2e/provider_operation_slack_cases.py | 630 | def _setup_empty_thread(proxy) -> None: | CODE |
| LOW⚡ | tests/e2e/provider_operation_slack_cases.py | 634 | def _setup_empty_whoami(proxy) -> None: | CODE |
| LOW⚡ | tests/e2e/scenarios/test_channel_approval_gates.py | 58 | async def _set_tool_permission(base_url: str, tool_name: str, state: str) -> None: | CODE |
| LOW | tests/e2e/scenarios/test_reborn_webui_v2_tool_gates.py | 239 | async def _set_llm_delay(mock_llm_server: str, marker: str) -> None: | CODE |
| LOW | …rios/test_reborn_webui_v2_streaming_run_control_api.py | 266 | async def _set_llm_faults(mock_llm_server: str, faults: list[dict]) -> None: | CODE |
| LOW | tests/e2e/scenarios/test_admin_api.py | 317 | async def set_role(role_name) -> None: | CODE |
| LOW | tests/e2e/scenarios/test_admin_api.py | 333 | async def set_status(action_name, status_name) -> None: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | crates/substrates/ironclaw_secrets/src/lib.rs | 1511 | // rather than honored as requested. Both defend the same invariant: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/e2e/scenarios/test_tool_permissions.py | 57 | # Set echo to a known initial state via REST | COMMENT |
| LOW⚡ | tests/e2e/scenarios/test_tool_permissions.py | 149 | # Set echo to always_allow via REST | COMMENT |
| LOW | tests/e2e/scenarios/test_v2_engine_oauth_google.py | 802 | # Check if a google-related secret exists in the DB (from OAuth or paste flow) | COMMENT |
| LOW | tests/e2e/scenarios/test_skill_oauth_flow.py | 433 | # Check if any auth-related events were emitted. The credential gate | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/e2e/reborn_webui_harness.py | 441 | CODE | |
| LOW | …2e/scenarios/test_reborn_webui_v2_legacy_extensions.py | 185 | CODE | |
| LOW | scripts/reborn_webui_v2_live_qa/case_matrix.py | 19 | CODE | |
| LOW | scripts/reborn_webui_v2_live_qa/run_live_qa.py | 1871 | CODE | |
| LOW | scripts/reborn_webui_v2_live_qa/run_live_qa.py | 5640 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | crates/domains/ironclaw_llm/src/smart_routing.rs | 880 | "i'm unable to", | CODE |