IronClaw is an Agent OS focused on privacy, security and extensibility
3447 matches across 17 categories. Click a row to expand file-level details.
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | build.rs | 20 | // ── Git build metadata ───────────────────────────────────────────── |
| MEDIUM | build.rs | 23 | // ── Embed registry manifests ──────────────────────────────────────── |
| MEDIUM | build.rs | 26 | // ── Embed bundled skills ──────────────────────────────────────────── |
| MEDIUM | build.rs | 29 | // ── Build Telegram channel WASM ───────────────────────────────────── |
| MEDIUM | release-plz.toml | 6 | # ── Main binary ───────────────────────────────────────────── |
| MEDIUM | release-plz.toml | 14 | # ── Internal crates (not useful standalone) ───────────────── |
| MEDIUM | tools-src/portfolio/src/live_tests.rs | 202 | // ── NEAR live tests (hit FastNEAR + Intear, no API key needed) ───── |
| MEDIUM | tools-src/portfolio/src/indexer/near.rs | 76 | // ── FastNEAR response types ──────────────────────────────────────── |
| MEDIUM | tools-src/portfolio/src/indexer/near.rs | 119 | // ── Intear token price types (`/list-token-price` shape) ─────────── |
| MEDIUM | tools-src/portfolio/src/indexer/near.rs | 134 | // ── Parsers (pure functions, no I/O) ─────────────────────────────── |
| MEDIUM | tools-src/portfolio/src/indexer/near.rs | 366 | // ── WASM scan (production path) ──────────────────────────────────── |
| MEDIUM | tools-src/portfolio/src/indexer/near.rs | 442 | // ── Tests ────────────────────────────────────────────────────────── |
| MEDIUM | crates/ironclaw_safety/src/policy.rs | 309 | // ── A. Regex backtracking / performance guards ─────────────── |
| MEDIUM | crates/ironclaw_safety/src/policy.rs | 450 | // ── B. Unicode edge cases ──────────────────────────────────── |
| MEDIUM | crates/ironclaw_safety/src/policy.rs | 509 | // ── C. Control character variants ──────────────────────────── |
| MEDIUM | crates/ironclaw_safety/src/sanitizer.rs | 440 | // ── A. Regex backtracking / performance guards ─────────────── |
| MEDIUM | crates/ironclaw_safety/src/sanitizer.rs | 531 | // ── B. Unicode edge cases ──────────────────────────────────── |
| MEDIUM | crates/ironclaw_safety/src/sanitizer.rs | 661 | // ── C. Control character variants ──────────────────────────── |
| MEDIUM | crates/ironclaw_safety/src/lib.rs | 532 | // ── Truncation at multi-byte UTF-8 boundaries ─────────────── |
| MEDIUM | crates/ironclaw_safety/src/lib.rs | 615 | // ── Truncation must not bypass safety checks ─────────────── |
| MEDIUM | crates/ironclaw_safety/src/validator.rs | 478 | // ── A. Performance guards ──────────────────────────────────── |
| MEDIUM | crates/ironclaw_safety/src/validator.rs | 538 | // ── B. Unicode edge cases ──────────────────────────────────── |
| MEDIUM | crates/ironclaw_safety/src/validator.rs | 742 | // ── C. Control character variants ──────────────────────────── |
| MEDIUM | crates/ironclaw_safety/src/credential_detect.rs | 152 | // ── Header name exact match ──────────────────────────────────────── |
| MEDIUM | crates/ironclaw_safety/src/credential_detect.rs | 190 | // ── Header name substring match ──────────────────────────────────── |
| MEDIUM | crates/ironclaw_safety/src/credential_detect.rs | 212 | // ── Header value prefix match ────────────────────────────────────── |
| MEDIUM | crates/ironclaw_safety/src/credential_detect.rs | 234 | // ── Array-format headers ─────────────────────────────────────────── |
| MEDIUM | crates/ironclaw_safety/src/credential_detect.rs | 256 | // ── URL query parameter detection ────────────────────────────────── |
| MEDIUM | crates/ironclaw_safety/src/credential_detect.rs | 294 | // ── False positive checks ────────────────────────────────────────── |
| MEDIUM | crates/ironclaw_safety/src/credential_detect.rs | 353 | // ── URL userinfo detection ───────────────────────────────────────── |
| MEDIUM | crates/ironclaw_safety/src/credential_detect.rs | 388 | // ── B. Unicode edge cases ──────────────────────────────────── |
| MEDIUM | crates/ironclaw_safety/src/credential_detect.rs | 501 | // ── C. Control character variants ──────────────────────────── |
| MEDIUM | crates/ironclaw_safety/src/leak_detector.rs | 19 | //! ┌─────────────────────────────────────────────────────────────────────────────┐ |
| MEDIUM | crates/ironclaw_safety/src/leak_detector.rs | 27 | //! └─────────────────────────────────────────────────────────────────────────────┘ |
| MEDIUM | crates/ironclaw_safety/src/leak_detector.rs | 29 | //! ┌─────────────────────────────────────────────────────────────────────────────┐ |
| MEDIUM | crates/ironclaw_safety/src/leak_detector.rs | 38 | //! └─────────────────────────────────────────────────────────────────────────────┘ |
| MEDIUM | crates/ironclaw_safety/src/leak_detector.rs | 869 | // ── OpenRouter, Anthropic OAuth, Telegram, Groq patterns ──────── |
| MEDIUM | crates/ironclaw_safety/src/leak_detector.rs | 1006 | // ── A. Regex backtracking / performance guards ─────────────── |
| MEDIUM | crates/ironclaw_safety/src/leak_detector.rs | 1314 | // ── B. Unicode edge cases ──────────────────────────────────── |
| MEDIUM | crates/ironclaw_safety/src/leak_detector.rs | 1410 | // ── C. Control character variants ──────────────────────────── |
| MEDIUM | crates/ironclaw_engine/orchestrator/default.py | 34 | # ── Helper functions (self-modifiable glue) ────────────────── |
| MEDIUM | crates/ironclaw_engine/orchestrator/default.py | 374 | # ── Skill selection and injection (self-modifiable) ──────── |
| MEDIUM | crates/ironclaw_engine/orchestrator/default.py | 727 | # ── Main execution loop ───────────────────────────────────── |
| MEDIUM | crates/ironclaw_engine/src/lib.rs | 36 | // ── Re-exports: types ─────────────────────────────────────── |
| MEDIUM | crates/ironclaw_engine/src/lib.rs | 58 | // ── Re-exports: traits ────────────────────────────────────── |
| MEDIUM | crates/ironclaw_engine/src/lib.rs | 65 | // ── Re-exports: capability ──────────────────────────────────── |
| MEDIUM | crates/ironclaw_engine/src/lib.rs | 72 | // ── Re-exports: gate ───────────────────────────────────────── |
| MEDIUM | crates/ironclaw_engine/src/lib.rs | 82 | // ── Re-exports: runtime ─────────────────────────────────────── |
| MEDIUM | crates/ironclaw_engine/src/lib.rs | 102 | // ── Re-exports: executor ────────────────────────────────────── |
| MEDIUM | crates/ironclaw_engine/src/lib.rs | 106 | // ── Re-exports: memory ──────────────────────────────────────── |
| MEDIUM | crates/ironclaw_engine/src/lib.rs | 111 | // ── Re-exports: reliability ────────────────────────────────── |
| MEDIUM | crates/ironclaw_engine/src/lib.rs | 115 | // ── Re-exports: workspace mounts ───────────────────────────── |
| MEDIUM | crates/ironclaw_engine/src/lib.rs | 121 | // ── Test utilities ────────────────────────────────────────── |
| MEDIUM | crates/ironclaw_engine/src/types/thread.rs | 37 | // ── State machine ─────────────────────────────────────────── |
| MEDIUM | crates/ironclaw_engine/src/types/thread.rs | 100 | // ── Thread type ───────────────────────────────────────────── |
| MEDIUM | crates/ironclaw_engine/src/types/thread.rs | 113 | // ── Thread configuration ──────────────────────────────────── |
| MEDIUM | crates/ironclaw_engine/src/types/thread.rs | 200 | // ── Thread ────────────────────────────────────────────────── |
| MEDIUM | crates/ironclaw_engine/src/types/thread.rs | 418 | // ── State machine tests ───────────────────────────────── |
| MEDIUM | crates/ironclaw_engine/src/types/thread.rs | 508 | // ── Thread lifecycle tests ────────────────────────────── |
| MEDIUM | crates/ironclaw_engine/src/types/thread.rs | 572 | // ── Title derivation ───────────────────────────────────── |
| 1034 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | build.rs | 1 | //! Build script: compile Telegram channel WASM from source. |
| LOW | .config/nextest.toml | 1 | # Cross-binary parallel test runner config for cargo-nextest. |
| LOW | channels-src/discord/src/lib.rs | 1 | //! Discord Gateway/Webhook channel for IronClaw. |
| LOW | channels-src/feishu/build.sh | 1 | #!/usr/bin/env bash |
| LOW | channels-src/feishu/src/lib.rs | 1 | // Feishu API types have fields reserved for future use. |
| LOW | channels-src/telegram/build.sh | 1 | #!/usr/bin/env bash |
| LOW | channels-src/telegram/src/lib.rs | 1 | // Telegram API types have fields reserved for future use (entities, reply threading, etc.) |
| LOW | channels-src/telegram/src/lib.rs | 341 | struct TelegramConfig { |
| LOW | channels-src/telegram/src/lib.rs | 361 | /// Whether to respond to all group messages (not just mentions). |
| LOW | channels-src/telegram/src/lib.rs | 1821 | } |
| LOW | channels-src/slack/build.sh | 1 | #!/usr/bin/env bash |
| LOW | channels-src/slack/src/lib.rs | 1 | //! Slack Events API channel for IronClaw. |
| LOW | channels-src/whatsapp/src/lib.rs | 1 | // WhatsApp API types have fields reserved for future use (contacts, statuses, etc.) |
| LOW | channels-src/whatsapp/src/lib.rs | 521 | channel_host::LogLevel::Info, |
| LOW | tools-src/google-docs/src/types.rs | 1 | //! Types for Google Docs API requests and responses. |
| LOW | tools-src/google-docs/src/types.rs | 81 | /// Make text bold. |
| LOW | tools-src/google-docs/src/lib.rs | 1 | //! Google Docs WASM Tool for IronClaw. |
| LOW | tools-src/google-docs/src/lib.rs | 21 | //! - `format_paragraph`: Set heading level, alignment, spacing |
| LOW | tools-src/google-calendar/src/types.rs | 1 | //! Types for Google Calendar API requests and responses. |
| LOW | tools-src/google-calendar/src/types.rs | 41 | |
| LOW | tools-src/google-calendar/src/types.rs | 61 | end_datetime: Option<String>, |
| LOW | tools-src/google-calendar/src/types.rs | 81 | /// The event ID to update. |
| LOW | tools-src/google-calendar/src/lib.rs | 1 | //! Google Calendar WASM Tool for IronClaw. |
| LOW | tools-src/github/src/lib.rs | 1 | //! GitHub WASM Tool for IronClaw. |
| LOW | tools-src/google-sheets/src/types.rs | 1 | //! Types for Google Sheets API requests and responses. |
| LOW | tools-src/google-sheets/src/types.rs | 121 | bold: Option<bool>, |
| LOW | tools-src/google-sheets/src/lib.rs | 1 | //! Google Sheets WASM Tool for IronClaw. |
| LOW | tools-src/google-sheets/src/lib.rs | 21 | //! - `add_sheet`: Add a new sheet (tab) |
| LOW | tools-src/google-drive/src/types.rs | 1 | //! Types for Google Drive API requests and responses. |
| LOW | tools-src/google-drive/src/types.rs | 21 | /// "'folderId' in parents", "sharedWithMe = true". |
| LOW | tools-src/google-drive/src/types.rs | 61 | /// Upload a new file (text content). |
| LOW | tools-src/google-drive/src/types.rs | 81 | file_id: String, |
| LOW | tools-src/google-drive/src/lib.rs | 1 | //! Google Drive WASM Tool for IronClaw. |
| LOW | tools-src/google-drive/src/lib.rs | 21 | //! - `trash_file`: Move to trash |
| LOW | tools-src/telegram/src/session.rs | 1 | use serde::{Deserialize, Serialize}; |
| LOW | tools-src/telegram/src/types.rs | 1 | //! Types for the Telegram user-mode tool (MTProto direct). |
| LOW | tools-src/telegram/src/lib.rs | 1 | //! Telegram User-Mode WASM Tool for IronClaw. |
| LOW | tools-src/telegram/src/lib.rs | 21 | //! at `telegram/session.json`. The agent should save updated session data after |
| LOW | tools-src/portfolio/src/format.rs | 1 | //! Deterministic output formatters. |
| LOW | tools-src/portfolio/src/widget.rs | 1 | //! `format_widget` operation — build the `projects/<id>/widgets/state.json` |
| LOW | tools-src/portfolio/src/lib.rs | 1 | // M1 scaffold: several types/methods are reserved for M2+ stages and |
| LOW | tools-src/portfolio/src/lib.rs | 21 | //! Internal layout (one module per stage): |
| LOW | tools-src/portfolio/src/lib.rs | 61 | #[serde(rename = "scan")] |
| LOW | tools-src/portfolio/src/lib.rs | 81 | /// near-lending-yield, near-lp-yield). |
| LOW | tools-src/portfolio/src/live_tests.rs | 1 | //! Live integration tests that hit real external APIs. |
| LOW | tools-src/portfolio/src/replay_tests.rs | 1 | //! Replay-style tests driven by YAML scenarios under `scenarios/`. |
| LOW | tools-src/portfolio/src/intents/bundling.rs | 1 | //! Multi-leg intent bundling. |
| LOW | tools-src/portfolio/src/intents/solver.rs | 1 | //! NEAR Intents solver client. |
| LOW | tools-src/portfolio/src/intents/solver.rs | 301 | /// Live integration test against the real NEAR Intents solver |
| LOW | tools-src/portfolio/src/intents/mod.rs | 1 | //! Intents stage — translate a `MovementPlan` into an unsigned NEAR |
| LOW | tools-src/portfolio/src/analyzer/mod.rs | 1 | //! Analyzer stage — classify raw positions against the embedded |
| LOW | tools-src/portfolio/src/indexer/near_replay.rs | 1 | //! `near-replay` indexer source — read recorded FastNEAR + Intear |
| LOW | tools-src/portfolio/src/indexer/dune.rs | 1 | //! Dune Sim REST client + response parser. |
| LOW | tools-src/portfolio/src/indexer/dune.rs | 21 | //! activity / position summary across supported chains. Used as a |
| LOW | tools-src/portfolio/src/indexer/dune.rs | 121 | deserializer.deserialize_any(StringOrNumber) |
| LOW | tools-src/portfolio/src/indexer/dune.rs | 141 | /// e.g. "ethereum", "base", "arbitrum" |
| LOW | tools-src/portfolio/src/indexer/dune.rs | 181 | #[serde(default)] |
| LOW | tools-src/portfolio/src/indexer/dune.rs | 541 | } |
| LOW | tools-src/portfolio/src/indexer/dune.rs | 561 | /// that Dune's API surface has drifted from what M2 pinned and |
| LOW | tools-src/portfolio/src/indexer/fixture.rs | 1 | //! Fixture indexer backend. |
| 1180 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | crates/ironclaw_gateway/static/js/core/onboarding.js | 490 | function showSetupCardForExtension(data) { |
| LOW | crates/ironclaw_gateway/static/js/core/init-auth.js | 498 | function updateRestartButtonVisibility() { |
| LOW | crates/ironclaw_gateway/static/js/core/gateway-tee.js | 3 | function startGatewayStatusPolling() { |
| LOW | crates/ironclaw_gateway/static/js/core/gateway-tee.js | 13 | function refreshLegacyRoutinesPresence() { |
| LOW | crates/ironclaw_gateway/static/js/core/history.js | 336 | function createToolCallsSummaryElement(toolCalls) { |
| LOW | crates/ironclaw_gateway/static/js/core/history.js | 340 | function createActivityGroupFromHistory(toolCalls) { |
| LOW | crates/ironclaw_gateway/static/js/core/tool-activity.js | 3 | function formatToolActivityDurationMs(durationMs) { |
| LOW | crates/ironclaw_gateway/static/js/core/tool-activity.js | 11 | function truncateToolActivityResult(text) { |
| LOW | crates/ironclaw_gateway/static/js/core/tool-activity.js | 45 | function createToolActivitySummary(toolCount, totalDurationMs, includeDuration) { |
| LOW | crates/ironclaw_gateway/static/js/core/tool-activity.js | 65 | function setToolActivityCardExpanded(rendered, expanded) { |
| LOW | crates/ironclaw_gateway/static/js/core/tool-activity.js | 71 | function applyToolActivityCardState(rendered, options) { |
| LOW | crates/ironclaw_gateway/static/js/core/tool-activity.js | 188 | function createActivityGroupFromEntries(entries, options) { |
| LOW | crates/ironclaw_gateway/static/js/core/tool-activity.js | 232 | function createToolActivityController(options) { |
| LOW | crates/ironclaw_gateway/static/js/core/tool-activity.js | 296 | function getOrCreateGroup() { |
| LOW | crates/ironclaw_gateway/static/js/core/tool-activity.js | 476 | function getOrCreateActivityGroup() { |
| LOW | crates/ironclaw_gateway/static/js/core/tool-activity.js | 514 | function shouldShowChannelConnectedMessage(extensionName, success) { |
| LOW | crates/ironclaw_gateway/static/js/core/routing.js | 62 | function normalizeTabForEngineMode(tab) { |
| LOW | crates/ironclaw_gateway/static/js/surfaces/projects.js | 528 | function renderMissionProgressMarkup(progress) { |
| LOW | crates/ironclaw_gateway/static/js/surfaces/projects.js | 534 | function renderMissionProgressCell(missionId) { |
| LOW | crates/ironclaw_gateway/static/js/surfaces/projects.js | 540 | function renderMissionThreadProgress(threadId) { |
| LOW | crates/ironclaw_gateway/static/js/surfaces/projects.js | 551 | function haveMissionThreadsChanged(previousMission, nextMission) { |
| LOW | crates/ironclaw_gateway/static/js/surfaces/projects.js | 610 | function fetchMissionDetailForProgress(missionId, options = {}) { |
| LOW | crates/ironclaw_gateway/static/js/surfaces/projects.js | 634 | function refreshPersistentActivityBar() { |
| LOW | crates/ironclaw_gateway/static/js/surfaces/projects.js | 657 | function getTrackedActiveMissionIds() { |
| LOW | crates/ironclaw_gateway/static/js/surfaces/projects.js | 661 | function scheduleActiveMissionMappingRefresh() { |
| LOW | crates/ironclaw_gateway/static/js/surfaces/projects.js | 674 | function scheduleMissionProgressViewsRefresh() { |
| LOW | crates/ironclaw_gateway/static/js/surfaces/projects.js | 683 | function refreshMissionProgressViews() { |
| LOW | crates/ironclaw_gateway/static/js/surfaces/projects.js | 1009 | function renderMissionBriefSection(section) { |
| LOW | crates/ironclaw_gateway/static/js/surfaces/projects.js | 1114 | function parseApproachHistoryRecord(text) { |
| LOW | crates/ironclaw_gateway/static/js/surfaces/projects.js | 1160 | function renderApproachHistoryCard(entryText, index, isLatest) { |
| LOW | crates/ironclaw_gateway/static/js/surfaces/logs.js | 29 | function rememberLogEntryForDownload(entry) { |
| LOW | crates/ironclaw_gateway/static/js/surfaces/logs.js | 36 | function serializeLogEntriesAsJsonl(entries) { |
| LOW | crates/ironclaw_gateway/static/js/surfaces/chat.js | 343 | function createGeneratedImageElement(dataUrl, path, eventId) { |
| LOW | crates/ironclaw_gateway/static/js/surfaces/chat.js | 373 | function isSafeGeneratedImageDataUrl(dataUrl) { |
| LOW | crates/ironclaw_gateway/static/js/surfaces/chat.js | 377 | function hasRenderedGeneratedImage(container, eventId) { |
| LOW | crates/ironclaw_gateway/static/js/surfaces/chat.js | 423 | function getRememberedGeneratedImage(threadId, eventId) { |
| LOW | crates/ironclaw_gateway/static/js/surfaces/chat.js | 430 | function resolveGeneratedImageForRender(threadId, image) { |
| LOW | crates/ironclaw_gateway/static/js/surfaces/chat.js | 492 | function getSlashAutocompleteItems() { |
| LOW | crates/ironclaw_gateway/static/js/surfaces/chat.js | 795 | function parseAttachmentAttributes(rawAttrs) { |
| LOW | …ates/ironclaw_gateway/static/js/surfaces/extensions.js | 43 | function renderAvailableExtensionCard(entry) { |
| LOW | …ates/ironclaw_gateway/static/js/surfaces/extensions.js | 519 | function refreshCurrentSettingsTab() { |
| LOW | …ates/ironclaw_gateway/static/js/surfaces/extensions.js | 644 | function basicConfigureValidationError(field, value) { |
| LOW | …ates/ironclaw_gateway/static/js/surfaces/extensions.js | 729 | function appendConfigureFieldGroup(form, fields, items, kind, optionalGroup) { |
| LOW | …ates/ironclaw_gateway/static/js/surfaces/extensions.js | 884 | function renderInteractiveLoginPanel(name) { |
| LOW | …ates/ironclaw_gateway/static/js/surfaces/extensions.js | 919 | function interactiveLoginDefaultLabel(name, interactiveLogin) { |
| LOW | …ates/ironclaw_gateway/static/js/surfaces/extensions.js | 924 | function interactiveLoginWaitingLabel(name) { |
| LOW | …ates/ironclaw_gateway/static/js/surfaces/extensions.js | 929 | function interactiveLoginStatusText(name, res) { |
| LOW | …ates/ironclaw_gateway/static/js/surfaces/extensions.js | 949 | function getInteractiveLoginButton(overlay) { |
| LOW | …ates/ironclaw_gateway/static/js/surfaces/extensions.js | 957 | function updateInteractiveLoginPanel(overlay, res) { |
| LOW | …ates/ironclaw_gateway/static/js/surfaces/extensions.js | 979 | function maybeOpenInteractiveLoginUrl(name, overlay, res) { |
| LOW | …ates/ironclaw_gateway/static/js/surfaces/extensions.js | 994 | function interactiveLoginPollDelayMs(status) { |
| LOW | …ates/ironclaw_gateway/static/js/surfaces/extensions.js | 1110 | function clearConfigureInlineError(overlay) { |
| LOW | …ates/ironclaw_gateway/static/js/surfaces/extensions.js | 1239 | function cancelAuthFromConfigureModal(overlay) { |
| LOW | crates/ironclaw_gateway/static/js/surfaces/settings.js | 242 | function renderStructuredSettingsInto(container, settingsDefs, settings, activeValues) { |
| LOW | crates/ironclaw_gateway/static/js/surfaces/settings.js | 304 | function renderStructuredSettingsRow(def, value, activeValue) { |
| LOW | tests/test-pages/cnn/source.html | 1559 | function setupRequestAnimationFrame() { |
| LOW | tests/test-pages/cnn/source.html | 3783 | function deleteIrrelevantUIDCookies(relevant) { |
| LOW | tests/e2e/conftest.py | 135 | def _reserve_loopback_sockets(count: int) -> list[socket.socket]: |
| LOW | tests/e2e/conftest.py | 392 | def reset_fake_telegram_state(request): |
| LOW | tests/e2e/conftest.py | 555 | async def hosted_oauth_refresh_server( |
| 567 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| HIGH | tests/e2e/mock_llm.py | 732 | " var skills = (data && data.skills) || [];\n" |
| HIGH | tests/e2e/mock_llm.py | 763 | " 'Failed to load skills: ' + (e && e.message ? e.message : e) +\n" |
| HIGH | tests/e2e/helpers.py | 410 | threadId: typeof currentThreadId !== 'undefined' ? currentThreadId : null, |
| HIGH | tests/e2e/helpers.py | 411 | pendingId: typeof _nextPendingId !== 'undefined' ? _nextPendingId : null, |
| HIGH | tests/e2e/helpers.py | 435 | if (!pendingThreadId || pendingId === null || pendingId === undefined) return true; |
| HIGH | tests/e2e/helpers.py | 435 | if (!pendingThreadId || pendingId === null || pendingId === undefined) return true; |
| HIGH | tests/e2e/helpers.py | 448 | text: ((content && content.innerText) || last.innerText || '').trim(), |
| HIGH | tests/e2e/helpers.py | 456 | const text = ((content && content.innerText) || last.innerText || '').trim(); |
| HIGH | tests/e2e/helpers.py | 457 | if (text.length > 0 && pendingForThisSendCleared()) { |
| HIGH | tests/e2e/helpers.py | 458 | if (expectedContains && text.includes(expectedContains)) { |
| HIGH | tests/e2e/helpers.py | 469 | return null; |
| HIGH | tests/e2e/scenarios/test_v2_engine_auth_flow.py | 792 | text: ((content && content.innerText) || last.innerText || '').trim(), |
| HIGH | tests/e2e/scenarios/test_v2_engine_auth_flow.py | 797 | if (assistants.length > assistantCount && input && !input.disabled) { |
| HIGH | tests/e2e/scenarios/test_v2_engine_auth_flow.py | 800 | const text = ((content && content.innerText) || last.innerText || '').trim(); |
| HIGH | tests/e2e/scenarios/test_v2_engine_auth_flow.py | 808 | return null; |
| HIGH | tests/e2e/scenarios/test_v2_engine_auth_flow.py | 855 | text: (tool && tool.textContent || '').trim(), |
| HIGH | tests/e2e/scenarios/test_csp.py | 50 | found.push(tag + id + cls + '[' + attr + ']'); |
| HIGH | tests/e2e/scenarios/test_pending_user_messages.py | 37 | previous = await page.evaluate("() => currentThreadId || null") |
| HIGH | tests/e2e/scenarios/test_pending_user_messages.py | 40 | "(prev) => !!currentThreadId && currentThreadId !== prev", |
| HIGH | tests/e2e/scenarios/test_pending_user_messages.py | 138 | return pending && pending.some(p => p.content === {unique_msg!r}); |
| HIGH | tests/e2e/scenarios/test_pending_user_messages.py | 203 | return pending && pending.some((p) => |
| HIGH | tests/e2e/scenarios/test_pending_user_messages.py | 218 | const lastUser = users.length ? users[users.length - 1] : null; |
| HIGH | tests/e2e/scenarios/test_pending_user_messages.py | 276 | if (arr && arr.some(p => p.content === args.msg)) return false; |
| HIGH | tests/e2e/scenarios/test_pending_user_messages.py | 353 | return card && card.offsetParent !== null; |
| HIGH | tests/e2e/scenarios/test_pending_user_messages.py | 353 | return card && card.offsetParent !== null; |
| HIGH | tests/e2e/scenarios/test_v2_activity_shell.py | 71 | " return !!el && el.textContent.trim().length > 0;" |
| HIGH | …ts/e2e/scenarios/test_routines_tab_after_v2_upgrade.py | 39 | return tab && tab.style.display !== 'none'; |
| HIGH | …ts/e2e/scenarios/test_routines_tab_after_v2_upgrade.py | 57 | return tab && tab.style.display === 'none'; |
| HIGH | …ts/e2e/scenarios/test_routines_tab_after_v2_upgrade.py | 75 | return tab && tab.style.display !== 'none'; |
| HIGH | …ts/e2e/scenarios/test_routines_tab_after_v2_upgrade.py | 211 | return tab && tab.style.display === 'none'; |
| HIGH | …ts/e2e/scenarios/test_routines_tab_after_v2_upgrade.py | 278 | visible: tab && tab.style.display !== 'none', |
| HIGH | tests/e2e/scenarios/test_extensions.py | 1503 | await page.wait_for_function("() => window._lastOpenedUrl !== null && window._lastOpenedUrl !== undefined", timeout= |
| HIGH | tests/e2e/scenarios/test_extensions.py | 725 | "() => window._lastOpenedUrl !== null && window._lastOpenedUrl !== undefined", |
| HIGH | tests/e2e/scenarios/test_extensions.py | 916 | await page.wait_for_function("() => window._lastOpenedUrl !== null && window._lastOpenedUrl !== undefined", timeout= |
| HIGH | tests/e2e/scenarios/test_extensions.py | 1620 | await page.evaluate("window._openedUrl = null; window.open = (url) => { window._openedUrl = url; }") |
| HIGH | tests/e2e/scenarios/test_extensions.py | 1645 | await page.evaluate("window._openedUrl = null; window.open = (url) => { window._openedUrl = url; return null; }") |
| HIGH | tests/e2e/scenarios/test_extensions.py | 1204 | handleOnboardingState({ extension_name: 'telegram', state: 'auth_required', instructions: 'pending', auth_ur |
| HIGH | tests/e2e/scenarios/test_dom_resource_limits.py | 149 | await page.evaluate("if (eventSource) { eventSource.close(); eventSource = null; }") |
| HIGH | tests/e2e/scenarios/test_dom_resource_limits.py | 197 | return el ? el.className : null; |
| HIGH | tests/e2e/scenarios/test_dom_resource_limits.py | 216 | events.push({ type: 'job_status', data: { job_id: jobId }, ts: Date.now() }); |
| HIGH | tests/e2e/scenarios/test_dom_resource_limits.py | 254 | events.push({ type: 'job_status', data: { job_id: jobId }, ts: Date.now() }); |
| HIGH | tests/e2e/scenarios/test_dom_resource_limits.py | 307 | return content && content.innerText.trim().length > 0; |
| HIGH | tests/e2e/scenarios/test_telegram_hot_activation.py | 309 | auth_url: null, |
| HIGH | tests/e2e/scenarios/test_telegram_hot_activation.py | 334 | auth_url: null, |
| HIGH | tests/e2e/scenarios/test_telegram_hot_activation.py | 396 | thread_id: null, |
| HIGH | tests/e2e/scenarios/test_telegram_hot_activation.py | 463 | auth_url: null, |
| HIGH | tests/e2e/scenarios/test_telegram_hot_activation.py | 614 | auth_url: null, |
| HIGH | tests/e2e/scenarios/test_message_persistence.py | 491 | "() => typeof eventSource !== 'undefined' && eventSource && sseHasConnectedBefore === true", |
| HIGH | tests/e2e/scenarios/test_message_persistence.py | 264 | return el && el.classList.contains('expanded'); |
| HIGH | tests/e2e/scenarios/test_v2_auth_oauth_matrix.py | 742 | window.__openedOauthUrls.push(url); |
| HIGH | tests/e2e/scenarios/test_chat.py | 671 | "() => stagedAttachments.length === 5 && window.__alerts.length >= 1", |
| HIGH | tests/e2e/scenarios/test_chat.py | 710 | "() => stagedAttachments.length === 2 && window.__alerts.length >= 1", |
| HIGH | tests/e2e/scenarios/test_chat.py | 109 | const lastUser = users.length ? users[users.length - 1] : null; |
| HIGH | tests/e2e/scenarios/test_chat.py | 110 | if (!lastUser) return null; |
| HIGH | tests/e2e/scenarios/test_chat.py | 116 | contentText: ((content && content.innerText) || '').trim(), |
| HIGH | tests/e2e/scenarios/test_chat.py | 169 | currentThreadId = null; |
| HIGH | tests/e2e/scenarios/test_chat.py | 288 | window._copiedText = null; |
| HIGH | tests/e2e/scenarios/test_chat.py | 320 | const btn = lastUser && lastUser.querySelector('.message-copy-btn'); |
| HIGH | tests/e2e/scenarios/test_chat.py | 477 | const lastUser = users.length ? users[users.length - 1] : null; |
| HIGH | tests/e2e/scenarios/test_chat.py | 478 | if (!lastUser) return null; |
| 13 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | channels-src/discord/src/lib.rs | 1529 | // Step 1: Open (or reuse) a DM channel with the target user. |
| LOW | channels-src/discord/src/lib.rs | 1558 | // Step 2: Send the message to the DM channel. |
| LOW | channels-src/telegram/src/lib.rs | 1129 | // Step 1: Call getFile to get file_path |
| LOW | channels-src/telegram/src/lib.rs | 1173 | // Step 2: Download the actual file bytes |
| LOW | tools-src/telegram/src/lib.rs | 168 | // Step 1: DH auth key exchange |
| LOW | tools-src/telegram/src/lib.rs | 175 | // Step 2: send verification code |
| LOW | tools-src/telegram/src/auth.rs | 19 | // Step 1: generate nonce, send ReqPqMulti |
| LOW | tools-src/telegram/src/auth.rs | 27 | // Step 2: factorize PQ, RSA encrypt, send ReqDhParams |
| LOW | tools-src/telegram/src/auth.rs | 35 | // Step 3: compute DH g_b, send SetClientDhParams |
| LOW | tools-src/portfolio/src/live_tests.rs | 135 | // Step 1: Fetch balances from Dune |
| LOW | tools-src/portfolio/src/live_tests.rs | 157 | // Step 2: Classify through analyzer |
| LOW | tools-src/portfolio/src/live_tests.rs | 167 | // Step 3: Run strategy proposals |
| LOW | tools-src/portfolio/src/live_tests.rs | 272 | // Step 1: Fetch from FastNEAR + Intear |
| LOW | tools-src/portfolio/src/live_tests.rs | 287 | // Step 2: Classify through analyzer |
| LOW | tools-src/portfolio/src/live_tests.rs | 297 | // Step 3: Run strategy proposals (include NEAR-specific strategies) |
| LOW | tools-src/portfolio/src/live_tests.rs | 333 | // Step 4: Build intents for ready proposals |
| LOW | tools-src/portfolio/src/indexer/dune.rs | 329 | // Step 1: balances |
| LOW | tools-src/portfolio/src/indexer/dune.rs | 346 | // Step 2: positions/activity (best-effort enrichment) |
| LOW | crates/ironclaw_llm/src/openai_codex_session.rs | 289 | // Step 1: Request device code |
| LOW | crates/ironclaw_llm/src/openai_codex_session.rs | 331 | // Step 2: Display code to user |
| LOW | crates/ironclaw_llm/src/openai_codex_session.rs | 352 | // Step 3: Poll for authorization code |
| LOW | crates/ironclaw_llm/src/openai_codex_session.rs | 420 | // Step 4: Exchange authorization code for tokens (form-encoded, per Auth0 spec) |
| LOW | crates/ironclaw_llm/src/recording.rs | 1231 | // Step 0: user_input "Do something" |
| LOW | crates/ironclaw_llm/src/recording.rs | 1232 | // Step 1: text response |
| LOW | crates/ironclaw_llm/src/recording.rs | 1233 | // Step 2: text response (no new user_input since no new user messages) |
| LOW | crates/ironclaw_llm/src/github_copilot_auth.rs | 295 | // Step 1: Exchange the OAuth token for a Copilot session token. |
| LOW | crates/ironclaw_llm/src/github_copilot_auth.rs | 299 | // Step 2: Verify the session token works against the models endpoint. |
| LOW | tests/e2e_wasm_portfolio.rs | 344 | // Step 1: scan the fixture address. The scan response is |
| LOW | tests/e2e_wasm_portfolio.rs | 346 | // Step 2: propose with the classified positions from step 1. |
| LOW | tests/e2e_wasm_portfolio.rs | 417 | // Step 1: LLM calls scan |
| LOW | tests/e2e_wasm_portfolio.rs | 435 | // Step 2: LLM calls propose with the scan results |
| LOW | tests/e2e_wasm_portfolio.rs | 460 | // Step 3: LLM summarizes |
| LOW | tests/e2e_wasm_portfolio.rs | 569 | // Step 1: scan root.near |
| LOW | tests/e2e_wasm_portfolio.rs | 587 | // Step 2: propose with empty positions (wallet |
| LOW | tests/e2e_wasm_portfolio.rs | 614 | // Step 3: summary |
| LOW | tests/skill_credential_injection.rs | 600 | // Step 1: Parse skill YAML (like skill discovery) |
| LOW | tests/skill_credential_injection.rs | 623 | // Step 2: Validate |
| LOW | tests/skill_credential_injection.rs | 633 | // Step 3: Build LoadedSkill and register (same code path as app.rs) |
| LOW | tests/skill_credential_injection.rs | 643 | // Step 4: Verify registry state |
| LOW | tests/skill_credential_injection.rs | 651 | // Step 5: HttpTool integration |
| LOW | tests/staging_regression_fixes.rs | 325 | // Step 1: write the user's MCP config via the public API path the rest of |
| LOW | tests/staging_regression_fixes.rs | 332 | // Step 2: load it back the same way the job tool now does. |
| LOW | tests/staging_regression_fixes.rs | 340 | // Step 3: serialize to the JSON shape the orchestrator consumes. |
| LOW | …e/scenarios/test_routine_oauth_credential_injection.py | 30 | # Step 1: Ensure gmail is installed and authenticated |
| LOW | …e/scenarios/test_routine_oauth_credential_injection.py | 56 | # Step 2: Navigate browser to routines tab and create a routine |
| LOW | …e/scenarios/test_routine_oauth_credential_injection.py | 70 | # Step 3: Create a routine that calls gmail tool |
| LOW | …e/scenarios/test_routine_oauth_credential_injection.py | 90 | # Step 4: Trigger the routine manually |
| LOW | …e/scenarios/test_routine_oauth_credential_injection.py | 102 | # Step 5: Verify execution succeeded |
| LOW | tests/e2e/scenarios/test_v2_engine_auth_flow.py | 1761 | # Step 1: Send message triggering the github skill |
| LOW | tests/e2e/scenarios/test_v2_engine_auth_flow.py | 1772 | # Step 2: Wait for auth prompt — verifies NeedAuthentication triggered. |
| LOW | tests/e2e/scenarios/test_v2_engine_auth_flow.py | 1784 | # Step 3: Submit a token |
| LOW | tests/e2e/scenarios/test_v2_engine_auth_flow.py | 1793 | # Step 4: Wait for the retry — the token submission triggers a retry |
| LOW | tests/e2e/scenarios/test_v2_engine_auth_flow.py | 1810 | # Step 5: Verify the token was stored and the retry happened |
| LOW | tests/e2e/scenarios/test_v2_kernel_auth_gateway_flow.py | 445 | # Step 1: Trigger auth flow |
| LOW | tests/e2e/scenarios/test_v2_kernel_auth_gateway_flow.py | 459 | # Step 2: Wait for auth prompt / pending gate |
| LOW | tests/e2e/scenarios/test_v2_kernel_auth_gateway_flow.py | 462 | # Step 3: Submit token via the gate-resolve API endpoint |
| LOW | tests/e2e/scenarios/test_v2_kernel_auth_gateway_flow.py | 483 | # Step 4: Verify the auth flow completes — send another message |
| LOW | tests/e2e/scenarios/test_routine_full_job.py | 144 | # Step 1: Create full_job routine via chat |
| LOW | tests/e2e/scenarios/test_routine_full_job.py | 155 | # Step 2: Trigger the routine |
| LOW | tests/e2e/scenarios/test_routine_full_job.py | 161 | # Step 3: Wait for the run to complete |
| 40 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| HIGH | tests/e2e/helpers.py | 0 | selector => { const input = document.queryselector(selector); return !!input && !input.disabled; } |
| HIGH | tests/e2e/scenarios/test_mission_gmail_3133.py | 0 | selector => { const input = document.queryselector(selector); return !!input && !input.disabled; } |
| HIGH | tests/e2e/scenarios/test_owner_scope.py | 0 | selector => { const input = document.queryselector(selector); return !!input && !input.disabled; } |
| HIGH | tests/e2e/scenarios/test_ownership_model.py | 0 | selector => { const input = document.queryselector(selector); return !!input && !input.disabled; } |
| HIGH | tests/e2e/scenarios/test_wasm_lifecycle.py | 0 | get a specific extension from the extensions list, or none. |
| HIGH | tests/e2e/scenarios/test_extension_oauth.py | 0 | get a specific extension from the extensions list, or none. |
| HIGH | tests/e2e/scenarios/test_oauth_url_parameters.py | 0 | get a specific extension from the extensions list, or none. |
| HIGH | tests/e2e/scenarios/test_mcp_auth_flow.py | 0 | get a specific extension from the extensions list, or none. |
| HIGH | tests/e2e/scenarios/test_v2_engine_tool_lifecycle.py | 0 | forward llvm coverage env vars from outer environment. |
| HIGH | tests/e2e/scenarios/test_v2_engine_auth_flow.py | 0 | forward llvm coverage env vars from outer environment. |
| HIGH | tests/e2e/scenarios/test_v2_engine_error_handling.py | 0 | forward llvm coverage env vars from outer environment. |
| HIGH | tests/e2e/scenarios/test_v2_engine_oauth_google.py | 0 | forward llvm coverage env vars from outer environment. |
| HIGH | tests/e2e/scenarios/test_v2_engine_approval_flow.py | 0 | forward llvm coverage env vars from outer environment. |
| HIGH | tests/e2e/scenarios/test_dom_resource_limits.py | 0 | () => { window.__testactiveintervals = new set(); const origset = window.setinterval; const origclear = window.clearinte |
| HIGH | tests/e2e/scenarios/test_dom_resource_limits.py | 0 | () => { window.__testactiveintervals = new set(); const origset = window.setinterval; const origclear = window.clearinte |
| HIGH | tests/e2e/scenarios/test_dom_resource_limits.py | 0 | () => { window.__testactiveintervals = new set(); const origset = window.setinterval; const origclear = window.clearinte |
| 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 |
| 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 |
| 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 |
| 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 = ? |
| 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 = ? |
| 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 = ? |
| HIGH | scripts/auth_live_canary/run_live_canary.py | 0 | update secrets set expires_at = strftime('%y-%m-%dt%h:%m:%fz', 'now', '-1 hour') where user_id = ? and name = ? |
| HIGH | tests/e2e/scenarios/test_chat.py | 0 | () => ({ staged: stagedattachments.length, previews: document.queryselectorall('#image-preview-strip .attachment-preview |
| HIGH | tests/e2e/scenarios/test_chat.py | 0 | () => ({ staged: stagedattachments.length, previews: document.queryselectorall('#image-preview-strip .attachment-preview |
| HIGH | tests/e2e/scenarios/test_chat.py | 0 | () => ({ staged: stagedattachments.length, previews: document.queryselectorall('#image-preview-strip .attachment-preview |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | crates/ironclaw_engine/src/executor/scripting.rs | 3459 | except Exception as e: |
| LOW | crates/ironclaw_engine/src/executor/scripting.rs | 3507 | except Exception as e: |
| LOW | crates/ironclaw_engine/src/executor/scripting.rs | 3530 | except Exception as e: |
| LOW | crates/ironclaw_engine/src/executor/scripting.rs | 3553 | except Exception as e: |
| LOW | crates/ironclaw_engine/src/executor/scripting.rs | 3590 | except Exception as e: |
| LOW | crates/ironclaw_engine/src/executor/scripting.rs | 3686 | except Exception as e: |
| LOW | crates/ironclaw_engine/src/executor/scripting.rs | 3789 | except Exception as e: |
| LOW | crates/ironclaw_engine/src/executor/scripting.rs | 3862 | except Exception as e: |
| LOW | tests/e2e/conftest.py | 45 | except Exception: |
| LOW | tests/e2e/conftest.py | 104 | except Exception: |
| LOW | tests/e2e/conftest.py | 144 | except Exception: |
| LOW | tests/e2e/live_harness.py | 147 | except Exception: |
| LOW | tests/e2e/fake_telegram_api.py | 105 | except Exception: |
| LOW | tests/e2e/scenarios/test_v2_engine_auth_cancel.py | 235 | except Exception: |
| LOW | tests/e2e/scenarios/test_v2_engine_auth_flow.py | 687 | except Exception: |
| LOW | tests/e2e/scenarios/test_v2_kernel_auth_gateway_flow.py | 275 | except Exception: |
| LOW | tests/e2e/scenarios/test_message_persistence.py | 315 | except Exception: |
| LOW | tests/e2e/scenarios/test_message_persistence.py | 447 | except Exception: |
| MEDIUM | tests/e2e/scenarios/test_v2_auth_oauth_matrix.py | 62 | def _drain_pipes(): |
| LOW | tests/e2e/scenarios/test_v2_auth_oauth_matrix.py | 101 | except Exception: |
| LOW | tests/e2e/scenarios/test_v2_auth_oauth_matrix.py | 1353 | except Exception: |
| LOW | tests/e2e/scenarios/test_v2_auth_oauth_matrix.py | 484 | except Exception: |
| LOW | tests/e2e/scenarios/test_v2_auth_oauth_matrix.py | 488 | except Exception: |
| LOW | tests/e2e/scenarios/test_v2_auth_oauth_matrix.py | 492 | except Exception: |
| LOW | tests/e2e/scenarios/test_v2_auth_oauth_matrix.py | 619 | except Exception: |
| LOW | tests/e2e/scenarios/test_v2_auth_oauth_matrix.py | 636 | except Exception: |
| LOW | tests/e2e/scenarios/test_plan_mode.py | 74 | except Exception: |
| LOW | tests/e2e/scenarios/test_plan_mode.py | 180 | except Exception: |
| LOW | tests/e2e/scenarios/test_v2_engine_approval_flow.py | 221 | except Exception as e: |
| LOW | tests/e2e/scenarios/test_skill_oauth_flow.py | 193 | except Exception: |
| LOW | docs/plans/2026-02-24-e2e-infrastructure.md | 692 | except Exception: |
| LOW | docs/plans/2026-02-24-e2e-infrastructure.md | 711 | except Exception: |
| LOW | scripts/auth_live_canary/run_live_canary.py | 548 | except Exception: |
| LOW | scripts/auth_live_canary/run_live_canary.py | 564 | except Exception: |
| LOW | scripts/auth_live_canary/run_live_canary.py | 623 | except Exception as exc: |
| LOW | scripts/auth_live_canary/run_live_canary.py | 629 | except Exception: |
| LOW | scripts/auth_live_canary/run_live_canary.py | 639 | except Exception: |
| LOW | scripts/auth_live_canary/run_live_canary.py | 648 | except Exception: |
| LOW | scripts/auth_live_canary/run_live_canary.py | 250 | except Exception as exc: # noqa: BLE001 |
| LOW | scripts/auth_live_canary/run_live_canary.py | 256 | except Exception: # noqa: BLE001 |
| LOW | scripts/auth_live_canary/run_live_canary.py | 670 | except Exception: |
| LOW | scripts/auth_live_canary/run_live_canary.py | 679 | except Exception: |
| LOW | scripts/auth_live_canary/run_live_canary.py | 694 | except Exception as exc: |
| LOW | scripts/auth_live_canary/run_live_canary.py | 717 | except Exception: |
| LOW | scripts/auth_live_canary/run_live_canary.py | 728 | except Exception: |
| LOW | scripts/auth_live_canary/run_live_canary.py | 759 | except Exception: |
| LOW | scripts/auth_live_canary/run_live_canary.py | 766 | except Exception: |
| LOW | scripts/auth_live_canary/run_live_canary.py | 879 | except Exception as exc: # noqa: BLE001 |
| LOW | scripts/auth_live_canary/run_live_canary.py | 885 | except Exception: |
| LOW | scripts/auth_live_canary/run_live_canary.py | 1087 | except Exception as exc: |
| LOW | scripts/auth_live_canary/run_live_canary.py | 1129 | except Exception as exc: |
| LOW | …pts/auth_live_canary/bootstrap_google_storage_state.py | 89 | except Exception as exc: |
| LOW | scripts/live_canary/common.py | 389 | except Exception: # noqa: BLE001 |
| LOW | scripts/live_canary/common.py | 513 | except Exception: |
| MEDIUM | scripts/live_canary/common.py | 383 | def _drain() -> None: |
| LOW | scripts/workflow_canary/run_workflow_canary.py | 254 | except Exception: |
| LOW | scripts/workflow_canary/run_workflow_canary.py | 415 | except Exception: |
| LOW | scripts/workflow_canary/run_workflow_canary.py | 506 | except Exception as exc: |
| MEDIUM | scripts/workflow_canary/run_workflow_canary.py | 246 | def _drain() -> None: |
| LOW | scripts/workflow_canary/telegram_mock.py | 153 | except Exception: |
| 33 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | tests/e2e/live_harness.py | 35 | |
| LOW | tests/e2e/scenarios/test_v2_engine_tool_lifecycle.py | 25 | |
| LOW | …e/scenarios/test_routine_oauth_credential_injection.py | 13 | |
| LOW | …e/scenarios/test_routine_oauth_credential_injection.py | 16 | |
| LOW | tests/e2e/scenarios/test_channel_approval_gates.py | 21 | |
| LOW | tests/e2e/scenarios/test_channel_approval_gates.py | 30 | |
| LOW | tests/e2e/scenarios/test_mission_gmail_3133.py | 68 | |
| LOW | tests/e2e/scenarios/test_html_injection.py | 3 | |
| LOW | tests/e2e/scenarios/test_connection.py | 3 | |
| LOW | tests/e2e/scenarios/test_connection.py | 4 | |
| LOW | tests/e2e/scenarios/test_dom_resource_limits.py | 8 | |
| LOW | tests/e2e/scenarios/test_chat.py | 11 | |
| LOW | tests/e2e/scenarios/test_v2_engine_error_handling.py | 30 | |
| LOW | tests/e2e/scenarios/test_oauth_credential_fallback.py | 16 | |
| LOW | tests/e2e/scenarios/test_plan_mode.py | 8 | |
| LOW | tests/e2e/scenarios/test_plan_mode.py | 8 | |
| LOW | tests/e2e/scenarios/test_widget_customization.py | 37 | |
| LOW | tests/e2e/scenarios/test_auth_no_duplicate_response.py | 33 | |
| LOW | tests/e2e/scenarios/test_v2_engine_approval_flow.py | 18 | |
| LOW | tests/e2e/scenarios/test_skill_oauth_flow.py | 20 | |
| LOW | tests/e2e/scenarios/test_skill_oauth_flow.py | 20 | |
| LOW | tests/e2e/scenarios/test_skill_oauth_flow.py | 30 | |
| LOW | scripts/check_gateway_boundaries.py | 58 | |
| LOW | scripts/auth_live_canary/run_live_canary.py | 20 | |
| LOW | …pts/auth_live_canary/bootstrap_google_storage_state.py | 29 | |
| LOW | scripts/live_canary/auth_registry.py | 1 | |
| LOW | scripts/live_canary/auth_runtime.py | 1 | |
| LOW | scripts/live_canary/common.py | 1 | |
| LOW | scripts/telegram_smoke/run_smoke.py | 11 | |
| LOW | scripts/workflow_canary/gmail_mock.py | 25 | |
| LOW | scripts/workflow_canary/run_workflow_canary.py | 22 | |
| LOW | scripts/workflow_canary/run_workflow_canary.py | 39 | |
| LOW | scripts/workflow_canary/hn_mock.py | 26 | |
| LOW | scripts/workflow_canary/telegram_mock.py | 31 | |
| LOW | scripts/workflow_canary/telegram_mock.py | 36 | |
| LOW | scripts/workflow_canary/sheets_mock.py | 32 | |
| LOW | scripts/workflow_canary/telegram_setup.py | 12 | |
| LOW | scripts/workflow_canary/web_search_mock.py | 20 | |
| LOW | scripts/workflow_canary/routines.py | 18 | |
| LOW | scripts/workflow_canary/calendar_mock.py | 36 | |
| LOW | scripts/workflow_canary/scenarios/crm_tracker.py | 25 | |
| LOW | …ripts/workflow_canary/scenarios/telegram_round_trip.py | 19 | |
| LOW | scripts/workflow_canary/scenarios/auth_recovery.py | 23 | |
| LOW | scripts/workflow_canary/scenarios/log_assertions.py | 15 | |
| LOW | …kflow_canary/scenarios/manual_trigger_from_telegram.py | 20 | |
| LOW | …workflow_canary/scenarios/idempotent_disable_enable.py | 15 | |
| LOW | scripts/workflow_canary/scenarios/dedup_cooldown.py | 27 | |
| LOW | scripts/workflow_canary/scenarios/manual_trigger.py | 23 | |
| LOW | …w_canary/scenarios/routine_visibility_from_telegram.py | 19 | |
| LOW | scripts/workflow_canary/scenarios/periodic_reminder.py | 29 | |
| LOW | scripts/workflow_canary/scenarios/hn_monitor.py | 24 | |
| LOW | …ripts/workflow_canary/scenarios/first_immediate_run.py | 13 | |
| LOW | scripts/workflow_canary/scenarios/nl_schedule_update.py | 27 | |
| LOW | scripts/workflow_canary/scenarios/_common.py | 28 | |
| LOW | scripts/workflow_canary/scenarios/_common.py | 31 | |
| LOW | scripts/workflow_canary/scenarios/bug_logger.py | 26 | |
| LOW | …/workflow_canary/scenarios/telegram_channel_install.py | 13 | |
| LOW | scripts/workflow_canary/scenarios/lifecycle.py | 22 | |
| LOW | scripts/workflow_canary/scenarios/calendar_prep.py | 27 | |
| LOW | scripts/workflow_canary/scenarios/tool_install_chat.py | 48 | |
| 11 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | crates/ironclaw_engine/orchestrator/default.py | 38 | |
| LOW | crates/ironclaw_engine/orchestrator/default.py | 101 | |
| LOW | crates/ironclaw_engine/orchestrator/default.py | 730 | |
| LOW | tests/e2e/conftest.py | 80 | |
| LOW | tests/e2e/conftest.py | 424 | |
| LOW | tests/e2e/conftest.py | 455 | |
| LOW | tests/e2e/conftest.py | 555 | |
| LOW | tests/e2e/conftest.py | 661 | |
| LOW | tests/e2e/conftest.py | 759 | |
| LOW | tests/e2e/conftest.py | 856 | |
| LOW | tests/e2e/conftest.py | 1066 | |
| LOW | tests/e2e/conftest.py | 1258 | |
| LOW | tests/e2e/conftest.py | 1383 | |
| LOW | tests/e2e/conftest.py | 1562 | |
| LOW | tests/e2e/live_llm_proxy.py | 186 | |
| LOW | tests/e2e/live_llm_proxy.py | 266 | |
| LOW | tests/e2e/live_harness.py | 85 | |
| LOW | tests/e2e/mock_llm.py | 797 | |
| LOW | tests/e2e/mock_llm.py | 1056 | |
| LOW | tests/e2e/mock_llm.py | 1353 | |
| LOW | tests/e2e/mock_llm.py | 1404 | |
| LOW | tests/e2e/mock_llm.py | 1438 | |
| LOW | tests/e2e/mock_llm.py | 1849 | |
| LOW | tests/e2e/scenarios/test_mission_gmail_3133.py | 159 | |
| LOW | tests/e2e/scenarios/test_mission_gmail_3133.py | 244 | |
| LOW | tests/e2e/scenarios/test_v2_engine_auth_flow.py | 553 | |
| LOW | tests/e2e/scenarios/test_v2_kernel_auth_gateway_flow.py | 509 | |
| LOW | tests/e2e/scenarios/test_tool_execution.py | 24 | |
| LOW | tests/e2e/scenarios/test_message_persistence.py | 46 | |
| LOW | tests/e2e/scenarios/test_v2_auth_oauth_matrix.py | 81 | |
| LOW | tests/e2e/scenarios/test_v2_auth_oauth_matrix.py | 1155 | |
| LOW | tests/e2e/scenarios/test_v2_engine_error_handling.py | 175 | |
| LOW | tests/e2e/scenarios/test_v2_engine_oauth_google.py | 272 | |
| LOW | tests/e2e/scenarios/test_oauth_refresh.py | 105 | |
| LOW | tests/e2e/scenarios/test_oauth_refresh.py | 131 | |
| LOW | tests/e2e/scenarios/test_auth_no_duplicate_response.py | 250 | |
| LOW | tests/e2e/scenarios/test_auth_no_duplicate_response.py | 262 | |
| LOW | tests/e2e/scenarios/test_v2_engine_approval_flow.py | 229 | |
| LOW | tests/e2e/scenarios/test_skill_oauth_flow.py | 111 | |
| LOW | scripts/check_gateway_boundaries.py | 130 | |
| LOW | scripts/check_gateway_boundaries.py | 301 | |
| LOW | scripts/check_gateway_boundaries.py | 334 | |
| LOW | scripts/check_no_panics.py | 52 | |
| LOW | scripts/check_no_panics.py | 169 | |
| LOW | scripts/live_canary/auth_registry.py | 214 | |
| LOW | scripts/workflow_canary/scenarios/crm_tracker.py | 120 | |
| LOW | …ripts/workflow_canary/scenarios/telegram_round_trip.py | 65 | |
| LOW | scripts/workflow_canary/scenarios/auth_recovery.py | 80 | |
| LOW | scripts/workflow_canary/scenarios/auth_recovery.py | 86 | |
| LOW | …kflow_canary/scenarios/manual_trigger_from_telegram.py | 84 | |
| LOW | scripts/workflow_canary/scenarios/manual_trigger.py | 43 | |
| LOW | …w_canary/scenarios/routine_visibility_from_telegram.py | 81 | |
| LOW | scripts/workflow_canary/scenarios/hn_monitor.py | 74 | |
| LOW | scripts/workflow_canary/scenarios/_common.py | 61 | |
| LOW | scripts/workflow_canary/scenarios/calendar_prep.py | 80 | |
| LOW | scripts/workflow_canary/scenarios/tool_install_chat.py | 237 | |
| LOW | scripts/workflow_canary/scenarios/tool_install_chat.py | 305 | |
| LOW | scripts/workflow_canary/scenarios/tool_install_chat.py | 252 | |
| LOW | scripts/workflow_canary/scenarios/tool_install_chat.py | 308 | |
| LOW | scripts/slack_smoke/run_smoke.py | 102 | |
| 3 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| CRITICAL | tests/test-pages/cnn/source.html | 3944 | window.ClickTaleSettings.ChangeMonitor.PII.Attributes.push({ |
| CRITICAL | tests/test-pages/cnn/source.html | 3965 | window.ClickTaleSettings.ChangeMonitor.PII.Text.push({ |
| CRITICAL | src/app.rs | 653 | self.config.llm.nearai.base_url.clone(), |
| CRITICAL | src/app.rs | 654 | self.config.llm.nearai.api_key.as_ref().map(|s| { |
| CRITICAL | src/app.rs | 669 | .unwrap_or_else(|| self.config.llm.nearai.model.clone()); |
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | tests/e2e/scenarios/test_v2_engine_auth_flow.py | 1756 | # Create a fresh thread |
| MEDIUM | tests/e2e/scenarios/test_v2_engine_auth_flow.py | 1837 | # Create a fresh thread (credential stored from previous test) |
| MEDIUM | tests/e2e/scenarios/test_pending_user_messages.py | 326 | # Create a new empty thread |
| MEDIUM | tests/e2e/scenarios/test_tool_permissions.py | 159 | # Create a fresh browser context (new session — no shared cookies/storage) |
| MEDIUM | tests/e2e/scenarios/test_v2_engine_error_handling.py | 243 | # Create a fresh thread |
| MEDIUM | tests/e2e/scenarios/test_v2_engine_error_handling.py | 301 | # Create a fresh thread |
| MEDIUM | tests/e2e/scenarios/test_v2_engine_oauth_google.py | 566 | # Create a fresh thread |
| MEDIUM | tests/e2e/scenarios/test_v2_engine_oauth_google.py | 617 | # Create a fresh thread |
| MEDIUM | tests/e2e/scenarios/test_v2_engine_oauth_google.py | 662 | # Create a fresh thread |
| MEDIUM | tests/e2e/scenarios/test_v2_engine_oauth_google.py | 793 | # Create a fresh thread |
| MEDIUM | tests/e2e/scenarios/test_skill_oauth_flow.py | 221 | # Create a thread and ask for secrets |
| MEDIUM | .github/workflows/release.yml | 448 | # Create a GitHub Release while uploading all files to it |
| MEDIUM | .github/workflows/release-plz.yml | 46 | # Create a PR with the new versions and changelog, preparing the next release. |
| MEDIUM | src/db/migration_fixup.rs | 485 | # This file is the immutability guard for released migrations. The\n\ |
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | tools-src/portfolio/scenarios/smoke-single-usdc.yaml | 29 | # captured `positions` variable by the test harness. |
| MEDIUM | tests/skill_chain_load_lifecycle.rs | 219 | #[ignore = "v2 path needs a multi-turn TraceLlm harness to observe \ |
| 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 |
| MEDIUM | tests/e2e/scenarios/test_mission_gmail_3133.py | 290 | # to a direct fire so the test stays robust to LLM phrasing |
| MEDIUM | tests/e2e/scenarios/test_extensions.py | 1 | """Scenario: Extensions tab – comprehensive UI coverage. |
| MEDIUM | tests/e2e/scenarios/test_tool_approval.py | 228 | # Trigger a real HTTP tool call that pauses for approval in this test harness. |
| MEDIUM | scripts/live-canary/test_emit_results_json.py | 314 | # Generic env-var / assignment shapes the persona harness |
| MEDIUM | .github/workflows/live-canary.yml | 507 | # Real third-party credentials forwarded into the persona harness. |
| MEDIUM | .github/workflows/live-canary.yml | 508 | # The harness reads these env vars per |
| MEDIUM | .github/workflows/nearai-bench.yml | 6 | # harness against the PR's ironclaw SHA, runs the suite, compares against |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | channels-src/whatsapp/src/lib.rs | 986 | "name": "John Doe" |
| LOW | crates/ironclaw_engine/src/executor/scripting.rs | 2893 | &serde_json::json!({"to": "user@example.com"}), |
| LOW | crates/ironclaw_gateway/static/admin/admin.js | 351 | html += '<div class="form-group"><label>Display Name</label><input type="text" id="new-user-name" placeholder="Jane |
| LOW | tests/admin_system_prompt.rs | 64 | prompt.contains("Acme Corp"), |
| LOW | tests/admin_system_prompt.rs | 97 | !prompt.contains("Acme Corp"), |
| LOW | tests/wasm_channel_integration.rs | 427 | .with_user_name("John Doe") |
| LOW | tests/wasm_channel_integration.rs | 434 | assert_eq!(messages[0].user_name, Some("John Doe".to_string())); |
| LOW | tests/e2e/mock_llm.py | 341 | "Acme Corp", |
| LOW | docs/extensions/google/slides.md | 73 | - _"Replace all occurrences of '[COMPANY]' with 'Acme Corp' across the deck"_ |
| LOW | src/tools/wasm/wrapper.rs | 3694 | "description": "lorem ipsum dolor sit amet consectetur adipiscing elit" |
| LOW | src/tools/wasm/wrapper.rs | 3694 | "description": "lorem ipsum dolor sit amet consectetur adipiscing elit" |
| LOW | src/workspace/mod.rs | 3214 | std::iter::repeat_n("lorem ipsum dolor sit amet ", 500).collect::<String>(); |
| LOW | src/workspace/mod.rs | 3214 | std::iter::repeat_n("lorem ipsum dolor sit amet ", 500).collect::<String>(); |
| LOW | src/channels/wasm/host.rs | 795 | .with_user_name("John Doe") |
| LOW | src/channels/wasm/host.rs | 802 | assert_eq!(messages[0].user_name, Some("John Doe".to_string())); |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | infra/runner/seed-runner-db.sh | 6 | # Usage: |
| LOW | scripts/replay-snap.sh | 10 | # Usage: |
| LOW | scripts/build-wasm-extensions.sh | 11 | # Usage: |
| LOW | scripts/check-i18n-parity.sh | 10 | # Usage: |
| LOW | scripts/reborn-e2e-rust.sh | 5 | # Usage: |
| LOW | scripts/dev-setup.sh | 7 | # Usage: |
| LOW | scripts/coverage.sh | 4 | # Usage: |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | tests/e2e/scenarios/test_tool_permissions.py | 57 | # Set echo to a known initial state via REST |
| LOW | tests/e2e/scenarios/test_tool_permissions.py | 149 | # Set echo to always_allow via REST |
| LOW | tests/e2e/scenarios/test_v2_engine_oauth_google.py | 735 | # Check if a google-related secret exists in the DB (from OAuth or paste flow) |
| LOW | tests/e2e/scenarios/test_skill_oauth_flow.py | 433 | # Check if any auth-related events were emitted. The credential gate |
| LOW | scripts/check-boundaries.sh | 163 | # Check if the file actually connects to a database (imports DB types |
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | crates/ironclaw_engine/src/executor/orchestrator.rs | 3602 | r#"signals_tool_intent("Let me know if you need anything.")"# |
| MEDIUM | crates/ironclaw_llm/src/smart_routing.rs | 875 | "i'm unable to", |
| MEDIUM | crates/ironclaw_llm/src/reasoning.rs | 3229 | "Let me know if you need anything." |
| Severity | File | Line | Snippet |
|---|---|---|---|
| HIGH | docs/capabilities/mcp.md | 85 | --env MINTLIFY_API_KEY=your_api_key |