The Harness of Harnesses • built for RSI: a trusted, persistent, self-evolving multi-agent ecosystem for all-domain collaboration.
This report summarizes scanner evidence for EverMind-AI/Raven, a Python project with 5,378 GitHub stars. SynthScan examined 1,327,581 lines of code across 3947 source files, recording 33051 pattern matches distributed across 24 syntactic categories. The legacy adjusted pattern signal is 30.9 (High pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 23751 finding(s).
Are imports declared and package/API names verified? 3769 finding(s).
Are wrappers, guards, and repeated structures necessary? 27638 finding(s).
Which changes need focused human review? 33051 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 33051 distinct pattern matches across 24 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | ui-web/src/features/settings/source.ts | 151 | export async function loadSettingsWithProviders(): Promise<void> { | CODE |
| LOW | ui-web/src/features/model/source.ts | 93 | export function openModelsForMissingProvider(): boolean { | CODE |
| LOW | ui-tui/packages/hermes-ink/src/ink/squash-text-nodes.ts | 24 | export function squashTextNodesToSegments( | CODE |
| LOW | ui-tui/packages/hermes-ink/src/ink/output.ts | 622 | function styledCharsWithGraphemeClustering(chars: StyledChar[], stylePool: StylePool): ClusteredChar[] { | CODE |
| LOW | …i/packages/hermes-ink/src/ink/render-node-to-output.ts | 1427 | function blitEscapingAbsoluteDescendants( | CODE |
| LOW | ui-tui/packages/hermes-ink/src/ink/colorize.ts | 27 | function boostChalkLevelForXtermJs(): boolean { | CODE |
| LOW | ui-tui/packages/hermes-ink/src/ink/colorize.ts | 75 | export function shouldClampForAppleTerminal( | CODE |
| LOW | ui-tui/packages/hermes-ink/src/ink/colorize.ts | 82 | function clampChalkLevelForAppleTerminal(): boolean { | CODE |
| LOW | ui-tui/packages/hermes-ink/src/ink/parse-keypress.ts | 718 | function normalizeSgrMouseFragment(fragment: string): string { | CODE |
| LOW | ui-tui/packages/hermes-ink/src/ink/parse-keypress.ts | 736 | function parseTextWithSgrMouseFragments( | CODE |
| LOW | ui-tui/packages/hermes-ink/src/ink/node-cache.ts | 54 | export function consumeAbsoluteRemovedFlag(): boolean { | CODE |
| LOW | ui-tui/packages/hermes-ink/src/ink/terminal.ts | 34 | export function isProgressReportingAvailable(): boolean { | CODE |
| LOW | ui-tui/packages/hermes-ink/src/ink/terminal.ts | 76 | export function isSynchronizedOutputSupported(): boolean { | CODE |
| LOW | ui-tui/packages/hermes-ink/src/ink/terminal.ts | 177 | export function needsAltScreenResizeScrollbackClear(env: NodeJS.ProcessEnv = process.env): boolean { | CODE |
| LOW | ui-tui/packages/hermes-ink/src/ink/terminal.ts | 224 | export function isExtendedKeysCapableByXtversion(name: string): boolean { | CODE |
| LOW | ui-tui/packages/hermes-ink/src/ink/terminal.ts | 240 | export function hasCursorUpViewportYankBug(): boolean { | CODE |
| LOW | ui-tui/packages/hermes-ink/src/ink/screen.ts | 1243 | export function extractHyperlinkFromStyles(styles: AnsiCode[]): Hyperlink | null { | CODE |
| LOW | ui-tui/packages/hermes-ink/src/ink/termio/osc.ts | 92 | export function shouldEmitClipboardSequence(env: NodeJS.ProcessEnv = process.env): boolean { | CODE |
| LOW | ui-tui/packages/hermes-ink/src/bootstrap/state.ts | 3 | export function updateLastInteractionTime(): void {} | CODE |
| LOW | ui-tui/src/app.tsx | 20 | function useTerminalBackgroundProbe() { | CODE |
| LOW | ui-tui/src/theme.ts | 725 | export function resolveCurrentDefaultTheme(): Theme { | CODE |
| LOW | ui-tui/src/app/createGatewayEventHandler.ts | 49 | export function createGatewayEventHandler(ctx: GatewayEventHandlerContext): (ev: GatewayEvent) => void { | CODE |
| LOW | ui-tui/src/hooks/useCompletion.ts | 68 | export function completionRequestForInput( | CODE |
| LOW | ui-tui/src/lib/terminalModes.ts | 91 | export function resetTerminalModesOnStart(stream: ResettableStream = process.stdout): boolean { | CODE |
| LOW | ui-tui/src/lib/clipboard.ts | 258 | export function createCopyOnSelectReporter(): ( | CODE |
| LOW | ui-tui/src/lib/precisionWheel.ts | 21 | export function computePrecisionWheelStep( | CODE |
| LOW | ui-tui/src/lib/terminalSetup.ts | 280 | export async function configureTerminalKeybindings( | CODE |
| LOW | ui-tui/src/lib/terminalSetup.ts | 394 | export async function configureDetectedTerminalKeybindings(options?: { | CODE |
| LOW | ui-tui/src/lib/terminalSetup.ts | 412 | export async function shouldPromptForTerminalSetup(options?: { | CODE |
| LOW | experimental/analyst/feedback.py | 22 | def requirements_match_decision(self) -> "Feedback": | CODE |
| LOW | plugins-dist/everos-memory/raven_everos/onboard.py | 690 | def _everos_pick_creds_and_model( | CODE |
| LOW | plugins-dist/everos-memory/raven_everos/onboard.py | 1788 | def _report_everos_capabilities() -> None: | CODE |
| LOW | plugins-dist/everos-memory/raven_everos/server.py | 875 | def roles_changed_since_spawn(root: Path | str) -> bool: | CODE |
| LOW | plugins-dist/everos-memory/raven_everos/server.py | 961 | def _start_server_if_unlocked(base_url: str) -> subprocess.Popen | None: | CODE |
| LOW | plugins-dist/everos-memory/raven_everos/server.py | 1254 | async def restart_for_config_change( | CODE |
| LOW | plugins-dist/everos-memory/raven_everos/backend.py | 755 | def _warn_stale_identity_keys(self) -> None: | CODE |
| LOW | plugins-dist/everos-memory/raven_everos/backend.py | 970 | def _withhold_an_embedding_that_cannot_serve(self) -> None: | CODE |
| LOW | plugins-dist/everos-memory/raven_everos/backend.py | 1020 | def _warn_if_recall_cannot_work(self, base_url: str) -> None: | CODE |
| LOW | plugins-dist/everos-memory/raven_everos/backend.py | 1202 | async def _flush_unflushed_sessions(self) -> None: | CODE |
| LOW | plugins-dist/everos-memory/raven_everos/tools.py | 109 | def make_understand_media_tool(ctx: Any) -> Tool | None: | CODE |
| LOW | …-dist/design-engine/raven_design/task_state/manager.py | 481 | def _validate_operation_fields(operation: dict[str, Any]) -> None: | CODE |
| LOW | …s-dist/design-engine/raven_design/rendering/preview.py | 70 | def select_preview_candidates( | CODE |
| LOW | …s-dist/design-engine/raven_design/rendering/preview.py | 86 | def _select_spreadsheet_candidates( | CODE |
| LOW | …ns-dist/design-engine/raven_design/rendering/bundle.py | 34 | def validate_published_bundle(root: Path, max_bytes: int) -> None: | CODE |
| LOW | …dist/design-engine/raven_design/rendering/detection.py | 418 | def _animated_image_detection( | CODE |
| LOW | …st/design-engine/raven_design/rendering/spreadsheet.py | 77 | def _merge_normalized_sheet_pdfs( | CODE |
| LOW | …st/design-engine/raven_design/rendering/spreadsheet.py | 266 | def _spreadsheet_preview_candidates( | CODE |
| LOW | …s-dist/design-engine/raven_design/rendering/browser.py | 497 | def _external_request_allowed(self, parsed: urllib.parse.ParseResult) -> bool: | CODE |
| LOW | …s-dist/design-engine/raven_design/rendering/browser.py | 517 | def _append_opening_visual_warning( | CODE |
| LOW | …s-dist/design-engine/raven_design/rendering/browser.py | 540 | def _append_image_crop_warning( | CODE |
| LOW | …s-dist/design-engine/raven_design/rendering/browser.py | 563 | def _append_suspicious_text_warning( | CODE |
| LOW | …-dist/design-engine/raven_design/rendering/pipeline.py | 442 | def _enrich_spreadsheet_pages( | CODE |
| LOW | …-dist/design-engine/raven_design/rendering/pipeline.py | 469 | def _enrich_presentation_pages( | CODE |
| LOW | …n-engine/raven_design/rendering/spreadsheet_runtime.py | 64 | def spreadsheet_viewport_available() -> bool: | CODE |
| LOW | …s/visual-artifact-design/examples/computed-geometry.md | 91 | def rotational_painted_bounds( | CODE |
| LOW | plugins-dist/ppt-engine/raven_ppt/tools/assembly.py | 111 | def provision_script_workspace(project): | CODE |
| LOW | plugins-dist/ppt-engine/raven_ppt/stages/build.py | 590 | def _unplaced_figure_findings(project: Project, outcome: BuildOutcome) -> list[Finding]: | CODE |
| LOW | …ns-dist/ppt-engine/raven_ppt/backends/script/blocks.py | 105 | def level_that_separates_pages(chains: list[list[int]]) -> list[int]: | CODE |
| LOW | …gins-dist/ppt-engine/raven_ppt/services/gates/quiet.py | 105 | def _boxes_the_row_reading_holds(findings: Iterable[Finding]) -> set[tuple]: | CODE |
| LOW | …ugins-dist/ppt-engine/raven_ppt/services/ingest/pdf.py | 178 | def _compose_soft_mask_pillow(base_data: bytes, mask_data: bytes) -> bytes: | CODE |
| 21958 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | ui-tui/src/gatewayTypes.ts | 42 | // ── Commands / completion ──────────────────────────────────────────── | COMMENT |
| MEDIUM | ui-tui/src/gatewayTypes.ts | 69 | // ── Config ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | ui-tui/src/gatewayTypes.ts | 135 | // ── Session lifecycle ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | ui-tui/src/gatewayTypes.ts | 246 | // ── Prompt / submission ────────────────────────────────────────────── | COMMENT |
| MEDIUM | ui-tui/src/gatewayTypes.ts | 276 | // ── Shell / clipboard / input ──────────────────────────────────────── | COMMENT |
| MEDIUM | ui-tui/src/gatewayTypes.ts | 307 | // ── Image attach ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | ui-tui/src/gatewayTypes.ts | 317 | // ── Voice ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | ui-tui/src/gatewayTypes.ts | 334 | // ── Tools (TS keeps configure since it resets local history) ───────── | COMMENT |
| MEDIUM | ui-tui/src/gatewayTypes.ts | 345 | // ── Model picker ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | ui-tui/src/gatewayTypes.ts | 447 | // ── MCP ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | ui-tui/src/gatewayTypes.ts | 503 | // ── Subagent events ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | ui-tui/src/gatewayTypes.ts | 532 | // ── Delegation control RPCs ────────────────────────────────────────── | COMMENT |
| MEDIUM | ui-tui/src/gatewayTypes.ts | 559 | // ── Spawn-tree snapshots ───────────────────────────────────────────── | COMMENT |
| MEDIUM | ui-tui/src/theme.ts | 73 | // ── Color math ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | ui-tui/src/theme.ts | 106 | // ── Brand ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | ui-tui/src/theme.ts | 126 | // ── Brand yellow ramp (gradient logo / 3D shadow) ──────────────────── | COMMENT |
| MEDIUM | ui-tui/src/theme.ts | 207 | // ── Tier 3: truecolor (source of truth) ────────────────────────────── | COMMENT |
| MEDIUM | ui-tui/src/theme.ts | 478 | // ── Light/dark detection ───────────────────────────────────────────── | COMMENT |
| MEDIUM | ui-tui/src/theme.ts | 609 | // ── Terminal-derived block surfaces ────────────────────────────────── | COMMENT |
| MEDIUM | ui-tui/src/theme.ts | 802 | // ── Skin → Theme ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | ui-tui/src/demo/gallery.tsx | 36 | // ── Mock data ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | ui-tui/src/demo/gallery.tsx | 119 | // ── Section wrapper ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | ui-tui/src/demo/gallery.tsx | 130 | // ── Pages ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | ui-tui/src/demo/gallery.tsx | 256 | // ── Shell ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | ui-tui/src/app/delegationStore.ts | 36 | // ── Overlay accordion open-state ────────────────────────────────────── | COMMENT |
| MEDIUM | ui-tui/src/app/slash/commands/ops.ts | 376 | // ── Disk-backed listing ───────────────────────────────────── | COMMENT |
| MEDIUM | ui-tui/src/app/slash/commands/ops.ts | 406 | // ── Disk-backed load by path ───────────────────────────────── | COMMENT |
| MEDIUM | ui-tui/src/app/slash/commands/ops.ts | 433 | // ── In-memory nav (same-session) ───────────────────────────── | COMMENT |
| MEDIUM | ui-tui/src/components/branding.tsx | 187 | // ── Collapsible helpers ────────────────────────────────────────────── | COMMENT |
| MEDIUM | ui-tui/src/components/branding.tsx | 216 | // ── SessionPanel ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | ui-tui/src/components/agentsOverlay.tsx | 68 | // ── Types + lookup tables ──────────────────────────────────────────── | COMMENT |
| MEDIUM | ui-tui/src/components/agentsOverlay.tsx | 124 | // ── Pure helpers ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | ui-tui/src/components/agentsOverlay.tsx | 161 | // ── Sub-components ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM | ui-tui/src/components/agentsOverlay.tsx | 1064 | // ── Main overlay ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | ui-tui/src/components/agentsOverlay.tsx | 1122 | // ── Derived state ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | ui-tui/src/components/agentsOverlay.tsx | 1155 | // ── Effects ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | ui-tui/src/components/agentsOverlay.tsx | 1230 | // ── Actions ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | ui-tui/src/components/agentsOverlay.tsx | 1346 | // ── Input ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | ui-tui/src/components/agentsOverlay.tsx | 1488 | // ── Header assembly ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | ui-tui/src/components/agentsOverlay.tsx | 1522 | // ── Rendering ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | ui-tui/src/components/modelPicker.tsx | 917 | // ── Key entry stage ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | ui-tui/src/components/modelPicker.tsx | 1001 | // ── Add model name stage ───────────────────────────────────────────── | COMMENT |
| MEDIUM | ui-tui/src/components/modelPicker.tsx | 1046 | // ── Endpoint list stage ────────────────────────────────────────────── | COMMENT |
| MEDIUM | ui-tui/src/components/modelPicker.tsx | 1116 | // ── Add endpoint stage ─────────────────────────────────────────────── | COMMENT |
| MEDIUM | ui-tui/src/components/modelPicker.tsx | 1181 | // ── OAuth sign-in stage ────────────────────────────────────────────── | COMMENT |
| MEDIUM | ui-tui/src/components/modelPicker.tsx | 1246 | // ── Disconnect confirmation stage ───────────────────────────────────── | COMMENT |
| MEDIUM | ui-tui/src/components/modelPicker.tsx | 1289 | // ── Provider selection stages ──────────────────────────────────────── | COMMENT |
| MEDIUM | ui-tui/src/components/modelPicker.tsx | 1360 | // ── Model selection stage ──────────────────────────────────────────── | COMMENT |
| MEDIUM | ui-tui/src/components/thinking.tsx | 65 | // ── Primitives ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | ui-tui/src/components/thinking.tsx | 583 | // ── Thinking ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | ui-tui/src/components/thinking.tsx | 643 | // ── ToolTrail ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | ui-tui/src/components/thinking.tsx | 752 | // ── Build groups + meta ──────────────────────────────────────── | COMMENT |
| MEDIUM | ui-tui/src/components/thinking.tsx | 839 | // ── Derived ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | ui-tui/src/components/thinking.tsx | 875 | // ── Backstop: floating alerts when every panel is hidden ───────── | COMMENT |
| MEDIUM | ui-tui/src/components/thinking.tsx | 904 | // ── Tree render fragments ────────────────────────────────────── | COMMENT |
| MEDIUM | ui-tui/src/__tests__/sessionManagement.test.ts | 16 | // ── helpers ─────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | ui-tui/src/__tests__/sessionManagement.test.ts | 90 | // ── /sessions command parsing ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | ui-tui/src/__tests__/sessionManagement.test.ts | 253 | // ── /sessions delete fallback surfaces errors ────────────────────────────────── | COMMENT |
| MEDIUM | ui-tui/src/__tests__/sessionManagement.test.ts | 310 | // ── /clear is an alias of /new (both mint a fresh session) ──────────────────── | COMMENT |
| MEDIUM | ui-tui/src/__tests__/sessionManagement.test.ts | 361 | // ── sid reconciliation: turn path uses minted sid ───────────────────────────── | COMMENT |
| 2746 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | hatch_build.py | 34 | CODE | |
| LOW | experimental/curator/harness/__init__.py | 3 | CODE | |
| LOW | experimental/curator/harness/__init__.py | 3 | CODE | |
| LOW | experimental/curator/harness/__init__.py | 3 | CODE | |
| LOW | experimental/curator/harness/__init__.py | 3 | CODE | |
| LOW | experimental/curator/harness/__init__.py | 3 | CODE | |
| LOW | experimental/curator/harness/__init__.py | 4 | CODE | |
| LOW | experimental/curator/harness/__init__.py | 4 | CODE | |
| LOW | experimental/curator/harness/__init__.py | 5 | CODE | |
| LOW | experimental/curator/harness/__init__.py | 5 | CODE | |
| LOW | experimental/curator/harness/strategies/__init__.py | 7 | CODE | |
| LOW | experimental/curator/harness/strategies/__init__.py | 8 | CODE | |
| LOW | experimental/curator/harness/strategies/__init__.py | 9 | CODE | |
| LOW | experimental/curator/harness/strategies/__init__.py | 10 | CODE | |
| LOW | experimental/curator/harness/prompts/__init__.py | 3 | CODE | |
| LOW | …erimental/curator/raven_adapter/inspection/__init__.py | 9 | CODE | |
| LOW | …erimental/curator/raven_adapter/inspection/__init__.py | 10 | CODE | |
| LOW | …erimental/curator/raven_adapter/inspection/__init__.py | 10 | CODE | |
| LOW | …erimental/curator/raven_adapter/inspection/__init__.py | 10 | CODE | |
| LOW | …erimental/curator/raven_adapter/inspection/__init__.py | 11 | CODE | |
| LOW | …erimental/curator/raven_adapter/inspection/__init__.py | 11 | CODE | |
| LOW | …perimental/curator/raven_adapter/baselines/__init__.py | 3 | CODE | |
| LOW | …perimental/curator/raven_adapter/baselines/__init__.py | 3 | CODE | |
| LOW | docs-site/hooks/search_by_language.py | 19 | CODE | |
| LOW | plugins-dist/everos-memory/raven_everos/onboard.py | 11 | CODE | |
| LOW | plugins-dist/everos-memory/raven_everos/server.py | 3 | CODE | |
| LOW | plugins-dist/everos-memory/raven_everos/backend.py | 27 | CODE | |
| LOW | plugins-dist/everos-memory/raven_everos/config.py | 51 | CODE | |
| LOW | plugins-dist/everos-memory/raven_everos/health.py | 15 | CODE | |
| LOW | plugins-dist/everos-memory/raven_everos/tools.py | 16 | CODE | |
| LOW | plugins-dist/everos-memory/raven_everos/multimodal.py | 13 | CODE | |
| LOW | plugins-dist/everos-memory/raven_everos/roots.py | 32 | CODE | |
| LOW | plugins-dist/design-engine/raven_design/selector.py | 10 | CODE | |
| LOW | plugins-dist/design-engine/raven_design/selector.py | 24 | CODE | |
| LOW | plugins-dist/design-engine/raven_design/selector.py | 25 | CODE | |
| LOW | plugins-dist/design-engine/raven_design/tools/render.py | 3 | CODE | |
| LOW | …ugins-dist/design-engine/raven_design/plugin/config.py | 28 | CODE | |
| LOW | plugins-dist/design-engine/raven_design/plugin/hook.py | 65 | CODE | |
| LOW | plugins-dist/design-engine/raven_design/plugin/hook.py | 82 | CODE | |
| LOW | plugins-dist/design-engine/raven_design/plugin/hook.py | 83 | CODE | |
| LOW | …ins-dist/design-engine/raven_design/plugin/__init__.py | 26 | CODE | |
| LOW | …ins-dist/design-engine/raven_design/plugin/__init__.py | 41 | CODE | |
| LOW | …dist/design-engine/raven_design/task_state/__init__.py | 3 | CODE | |
| LOW | …dist/design-engine/raven_design/task_state/__init__.py | 3 | CODE | |
| LOW | …dist/design-engine/raven_design/task_state/__init__.py | 3 | CODE | |
| LOW | …dist/design-engine/raven_design/task_state/__init__.py | 3 | CODE | |
| LOW | …dist/design-engine/raven_design/task_state/__init__.py | 3 | CODE | |
| LOW | …ins-dist/design-engine/raven_design/task_state/tool.py | 3 | CODE | |
| LOW | …-dist/design-engine/raven_design/task_state/manager.py | 3 | CODE | |
| LOW | …ns-dist/design-engine/raven_design/rendering/worker.py | 3 | CODE | |
| LOW | …s-dist/design-engine/raven_design/rendering/preview.py | 3 | CODE | |
| LOW | …ns-dist/design-engine/raven_design/rendering/bundle.py | 3 | CODE | |
| LOW | …s-dist/design-engine/raven_design/rendering/service.py | 3 | CODE | |
| LOW | …ns-dist/design-engine/raven_design/rendering/office.py | 3 | CODE | |
| LOW | …dist/design-engine/raven_design/rendering/detection.py | 3 | CODE | |
| LOW | …st/design-engine/raven_design/rendering/spreadsheet.py | 3 | CODE | |
| LOW | …dist/design-engine/raven_design/rendering/keyframes.py | 3 | CODE | |
| LOW | …s-dist/design-engine/raven_design/rendering/backend.py | 3 | CODE | |
| LOW | …ns-dist/design-engine/raven_design/rendering/models.py | 3 | CODE | |
| LOW | …ins-dist/design-engine/raven_design/rendering/paths.py | 3 | CODE | |
| 3408 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | experimental/simulation/suite.py | 268 | except ProcessLookupError: | CODE |
| HIGH | experimental/simulation/suite.py | 256 | except ProcessLookupError: | CODE |
| HIGH | experimental/simulation/suite.py | 276 | except ProcessLookupError: | CODE |
| HIGH | experimental/simulation/__main__.py | 398 | except KeyboardInterrupt: | CODE |
| HIGH | experimental/curator/raven_adapter/worker.py | 572 | except ProcessLookupError: | CODE |
| HIGH | experimental/curator/raven_adapter/worker.py | 582 | except ProcessLookupError: | CODE |
| HIGH | experimental/iteration/__main__.py | 68 | except KeyboardInterrupt: | CODE |
| HIGH | plugins-dist/everos-memory/raven_everos/config.py | 519 | except KeyError: | CODE |
| HIGH | …s-dist/design-engine/raven_design/rendering/backend.py | 121 | except Exception: | CODE |
| HIGH | plugins-dist/ppt-engine/raven_ppt/tools/build.py | 150 | except OSError: | CODE |
| HIGH | plugins-dist/ppt-engine/raven_ppt/tools/review.py | 712 | except OSError: | CODE |
| HIGH | plugins-dist/ppt-engine/raven_ppt/tools/review.py | 739 | except OSError: | CODE |
| HIGH | plugins-dist/ppt-engine/raven_ppt/stages/_measure.py | 167 | except OSError: | CODE |
| HIGH | plugins-dist/ppt-engine/raven_ppt/stages/_measure.py | 209 | except OSError: | CODE |
| HIGH | plugins-dist/ppt-engine/raven_ppt/stages/_views.py | 138 | except OSError: | CODE |
| HIGH | …ns-dist/ppt-engine/raven_ppt/services/review_ledger.py | 376 | except OSError: | CODE |
| HIGH | plugins-dist/ppt-engine/raven_ppt/services/tier.py | 75 | except OSError: | CODE |
| HIGH | plugins-dist/ppt-engine/raven_ppt/services/tier.py | 143 | except OSError: | CODE |
| HIGH | …gins-dist/ppt-engine/raven_ppt/services/gates/quiet.py | 172 | except OSError: | CODE |
| HIGH | …ugins-dist/ppt-engine/raven_ppt/services/ingest/pdf.py | 166 | except (KeyError, OSError, RuntimeError, ValueError): | CODE |
| HIGH | …dist/ppt-engine/raven_ppt/services/measure/geometry.py | 316 | except Exception: # noqa: BLE001 -- not a picture frame; it may still be filled with one | CODE |
| HIGH | …ns-dist/ppt-engine/raven_ppt/services/assets/shapes.py | 213 | except ValueError: | CODE |
| HIGH | evolver/analysis/proxy_features.py | 175 | except OSError: | CODE |
| HIGH | evolver/activation/ledger.py | 93 | except OSError: | CODE |
| HIGH | evolver/activation/ledger.py | 56 | except Exception: | CODE |
| HIGH | evolver/orchestrator/loop.py | 625 | except OSError: | CODE |
| HIGH | evolver/orchestrator/loop.py | 634 | except (OSError, ValueError): | CODE |
| HIGH | evolver/orchestrator/loop.py | 674 | except OSError: | CODE |
| HIGH | evolver/orchestrator/loop.py | 689 | except OSError: | CODE |
| HIGH | evolver/orchestrator/loop.py | 576 | except Exception: # noqa: BLE001 — bank-keeping must not sink a round | CODE |
| HIGH | evolver/orchestrator/loop.py | 581 | except Exception: # noqa: BLE001 — advisory learning hook, non-fatal | CODE |
| HIGH | evolver/orchestrator/loop.py | 468 | except Exception: # noqa: BLE001 — advisory learning hook, non-fatal | CODE |
| HIGH | evolver/orchestrator/archive.py | 363 | except OSError: | CODE |
| HIGH | evolver/orchestrator/production.py | 579 | except OSError: | CODE |
| HIGH | tests/test_agents_oncall_flow_state.py | 99 | except ValueError: | CODE |
| HIGH | tests/test_agents_oncall_flow_state.py | 206 | except OSError: | CODE |
| HIGH | tests/test_agents_oncall_flow_watcher.py | 357 | except LedgerCorruptError: | CODE |
| HIGH | tests/test_subagent_dag_runner.py | 830 | except asyncio.CancelledError: | CODE |
| HIGH | tests/test_subagent_dag_runner.py | 1351 | except ProcessLookupError: | CODE |
| HIGH | tests/test_subagent_dag_runner.py | 101 | except ProcessLookupError: | CODE |
| HIGH | tests/_browser_cache.py | 50 | except KeyError: | CODE |
| HIGH | tests/test_sandbox_unit.py | 346 | except ProcessLookupError: | CODE |
| HIGH | tests/test_mcp_endpoint.py | 359 | except ConnectionResetError: | CODE |
| HIGH | tests/test_harness_curator_generation.py | 1108 | except GenerationError: | CODE |
| HIGH | tests/test_harness_curator_generation.py | 1139 | except GenerationError: | CODE |
| HIGH | tests/test_harness_curator_generation.py | 1149 | except GenerationError: | CODE |
| HIGH | tests/test_participant_hook.py | 375 | except TypeError: | CODE |
| HIGH | tests/test_participant_hook.py | 368 | except TypeError: | CODE |
| HIGH | tests/test_plugin_config_admission.py | 175 | except AttributeError: | CODE |
| HIGH | tests/test_rpc_server_socket.py | 187 | except asyncio.CancelledError: | CODE |
| HIGH | tests/test_rpc_server_socket.py | 232 | except asyncio.CancelledError: | CODE |
| HIGH | tests/test_rpc_server_socket.py | 265 | except asyncio.CancelledError: | CODE |
| HIGH | tests/test_rpc_server_socket.py | 181 | except asyncio.CancelledError: | CODE |
| HIGH | tests/test_rpc_server_socket.py | 174 | except asyncio.TimeoutError: | CODE |
| HIGH | tests/test_trajectory_store.py | 31 | except ValueError: | CODE |
| HIGH | tests/test_ppt_engine_assets_charts.py | 1930 | except ValueError: | CODE |
| HIGH | tests/test_channels_mochat.py | 531 | except asyncio.CancelledError: | CODE |
| HIGH | tests/test_channels_mochat.py | 552 | except asyncio.CancelledError: | CODE |
| HIGH | tests/test_sandbox_debug_server.py | 873 | except Exception: | CODE |
| HIGH | tests/test_sandbox_debug_server.py | 960 | except Exception: | CODE |
| 304 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | experimental/analyst/run.py | 110 | except Exception as exc: | CODE |
| LOW | experimental/analyst/role.py | 65 | except Exception as exc: | CODE |
| LOW⚡ | experimental/simulation/suite.py | 305 | except Exception as exc: # noqa: BLE001 -- an unscanned run is judged not isolated, never lost | CODE |
| LOW⚡ | experimental/simulation/suite.py | 313 | except Exception as exc: # noqa: BLE001 -- a deck without page images is still recorded | CODE |
| LOW⚡ | experimental/simulation/suite.py | 318 | except Exception as exc: # noqa: BLE001 -- a failed export must not lose the run's summary | CODE |
| LOW⚡ | experimental/simulation/suite.py | 324 | except Exception as exc: # noqa: BLE001 -- an unjudged run still gets its summary | CODE |
| LOW | experimental/simulation/agency.py | 182 | except Exception as exc: # noqa: BLE001 -- a deck that cannot be rendered is reported, not fatal | CODE |
| LOW | experimental/simulation/agency.py | 552 | except Exception as exc: | CODE |
| LOW | experimental/simulation/agency.py | 631 | except Exception as exc: | CODE |
| LOW | experimental/simulation/traveller.py | 68 | except Exception as exc: | CODE |
| LOW | experimental/simulation/reference.py | 291 | except Exception as exc: # noqa: BLE001 -- a deck that does not open is itself the fact | CODE |
| LOW | experimental/simulation/reference.py | 319 | except Exception: # noqa: BLE001 -- unreadable text leaves no placeholders to report | CODE |
| LOW | experimental/simulation/__main__.py | 290 | except Exception as exc: # noqa: BLE001 -- the judge falls back to markers without an attribution | CODE |
| LOW | experimental/curator/workflow.py | 259 | except Exception as exc: | CODE |
| LOW | experimental/curator/composition/run.py | 362 | except Exception as exc: | CODE |
| LOW | experimental/curator/raven_adapter/worker.py | 240 | except Exception as exc: | CODE |
| LOW | experimental/curator/raven_adapter/worker.py | 248 | except Exception as exc: | CODE |
| LOW | experimental/curator/raven_adapter/strategy.py | 236 | except Exception as exc: | CODE |
| MEDIUM | experimental/curator/raven_adapter/strategy.py | 226 | def observed(*args, **kwargs): | CODE |
| LOW | experimental/curator/raven_adapter/bind.py | 119 | except Exception as exc: | CODE |
| LOW | experimental/curator/raven_adapter/bind.py | 200 | except Exception as exc: | CODE |
| LOW | experimental/curator/raven_adapter/validate.py | 26 | except Exception as exc: | CODE |
| LOW | experimental/curator/raven_adapter/observe.py | 95 | except Exception as exc: | CODE |
| LOW | experimental/curator/raven_adapter/observe.py | 125 | except Exception as exc: | CODE |
| LOW | experimental/curator/raven_adapter/observe.py | 213 | except Exception as exc: | CODE |
| LOW | experimental/curator/raven_adapter/observe.py | 241 | except Exception as exc: | CODE |
| MEDIUM | experimental/curator/raven_adapter/observe.py | 208 | def construct(): | CODE |
| LOW | experimental/curator/raven_adapter/inference.py | 53 | except Exception as exc: | CODE |
| LOW | experimental/curator/raven_adapter/memory/context.py | 112 | except Exception as exc: | CODE |
| LOW | experimental/curator/raven_adapter/planning/runtime.py | 203 | except Exception as exc: | CODE |
| LOW | experimental/curator/raven_adapter/planning/runtime.py | 217 | except Exception as exc: | CODE |
| MEDIUM | experimental/curator/raven_adapter/planning/runtime.py | 199 | def system_addendum(self, step): | CODE |
| LOW | experimental/curator/generation/run.py | 248 | except Exception as exc: | CODE |
| LOW | experimental/iteration/run.py | 200 | except Exception as exc: | CODE |
| LOW | experimental/iteration/run.py | 251 | except Exception as exc: | CODE |
| LOW | experimental/iteration/exchange.py | 46 | except Exception as exc: | CODE |
| LOW | plugins-dist/everos-memory/raven_everos/server.py | 82 | except Exception: | CODE |
| LOW | plugins-dist/everos-memory/raven_everos/server.py | 113 | except Exception: # noqa: BLE001 — an unreachable server is handled by the health probe | CODE |
| LOW | plugins-dist/everos-memory/raven_everos/server.py | 926 | except Exception: # noqa: BLE001 - an unreadable version is unknown, and unknown is not stale | CODE |
| LOW | plugins-dist/everos-memory/raven_everos/server.py | 1315 | except Exception as exc: # noqa: BLE001 - every startup failure is the page's to show | CODE |
| MEDIUM | plugins-dist/everos-memory/raven_everos/server.py | 323 | def _read_pidfile() -> dict[str, Any] | None: | CODE |
| MEDIUM | plugins-dist/everos-memory/raven_everos/backend.py | 811 | def _start(self) -> None: | CODE |
| LOW | plugins-dist/everos-memory/raven_everos/backend.py | 312 | except Exception as exc: | CODE |
| LOW | plugins-dist/everos-memory/raven_everos/backend.py | 719 | except Exception as e: # noqa: BLE001 - the state machine keeps probing | CODE |
| LOW | plugins-dist/everos-memory/raven_everos/backend.py | 950 | except Exception as e: | CODE |
| LOW | plugins-dist/everos-memory/raven_everos/backend.py | 1090 | except Exception as e: | CODE |
| LOW | plugins-dist/everos-memory/raven_everos/backend.py | 1225 | except Exception as e: | CODE |
| LOW | plugins-dist/everos-memory/raven_everos/backend.py | 1414 | except Exception as e: | CODE |
| LOW | plugins-dist/everos-memory/raven_everos/backend.py | 1466 | except Exception as e: # noqa: BLE001 - an audit trail must not fail a run | CODE |
| LOW | plugins-dist/everos-memory/raven_everos/backend.py | 1521 | except Exception as e: # noqa: BLE001 - a failed delete is reported, not raised at a button | CODE |
| LOW | plugins-dist/everos-memory/raven_everos/config.py | 438 | except Exception: # noqa: BLE001 - nothing to match against is not a failure | CODE |
| LOW | plugins-dist/everos-memory/raven_everos/config.py | 541 | except Exception as exc: # noqa: BLE001 - one role must not take the others down | CODE |
| LOW | plugins-dist/everos-memory/raven_everos/config.py | 929 | except Exception: # noqa: BLE001 - an import failure here is not this module's to report | CODE |
| LOW | plugins-dist/everos-memory/raven_everos/config.py | 1178 | except Exception: # noqa: BLE001 - a report never fails on a read | CODE |
| LOW | plugins-dist/everos-memory/raven_everos/health.py | 141 | except Exception as exc: | CODE |
| LOW | plugins-dist/everos-memory/raven_everos/tools.py | 99 | except Exception as e: | CODE |
| LOW | plugins-dist/everos-memory/raven_everos/multimodal.py | 182 | except Exception as e: # noqa: BLE001 — per-item isolation is the contract | CODE |
| LOW | plugins-dist/design-engine/raven_design/selector.py | 173 | except Exception as exc: | CODE |
| LOW | plugins-dist/design-engine/raven_design/selector.py | 247 | except Exception as exc: | CODE |
| LOW | plugins-dist/design-engine/raven_design/plugin/hook.py | 346 | except Exception as exc: # the selector already degrades; this is belt | CODE |
| 1408 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | hatch_build.py | 11 | absent — which would break the ordinary developer flow (`git clone && uv sync` | STRING |
| HIGH | hatch_build.py | 15 | Release builds run ``npm ci && npm run build`` first (see | STRING |
| HIGH | hatch_build.py | 105 | "`npm --prefix ui-tui ci && npm --prefix ui-tui run build` before " | CODE |
| HIGH⚡ | …esign-engine/raven_design/rendering/browser_runtime.py | 112 | return rect.width > 0 && rect.height > 0 && | CODE |
| HIGH⚡ | …esign-engine/raven_design/rendering/browser_runtime.py | 113 | rect.right > 0 && rect.bottom > 0 && | CODE |
| HIGH⚡ | …esign-engine/raven_design/rendering/browser_runtime.py | 114 | rect.left < innerWidth && rect.top < innerHeight; | CODE |
| HIGH⚡ | …esign-engine/raven_design/rendering/browser_runtime.py | 156 | title: document.title || null, | CODE |
| HIGH⚡ | …esign-engine/raven_design/rendering/browser_runtime.py | 156 | title: document.title || null, | CODE |
| HIGH⚡ | …esign-engine/raven_design/rendering/browser_runtime.py | 158 | scroll_width: Math.max(root?.scrollWidth || 0, document.body?.scrollWidth || 0), | CODE |
| HIGH⚡ | …esign-engine/raven_design/rendering/browser_runtime.py | 159 | scroll_height: Math.max(root?.scrollHeight || 0, document.body?.scrollHeight || 0), | CODE |
| HIGH⚡ | …esign-engine/raven_design/rendering/browser_runtime.py | 170 | if (/\\bNaN\\b/.test(text)) tokens.push("NaN"); | CODE |
| HIGH⚡ | …esign-engine/raven_design/rendering/browser_runtime.py | 171 | if (/\\bundefined\\b/.test(text)) tokens.push("undefined"); | CODE |
| HIGH⚡ | …esign-engine/raven_design/rendering/browser_runtime.py | 172 | if (/\\bInfinity\\b/.test(text)) tokens.push("Infinity"); | CODE |
| HIGH⚡ | …esign-engine/raven_design/rendering/browser_runtime.py | 173 | if (text.includes("[object Object]")) tokens.push("[object Object]"); | CODE |
| HIGH⚡ | …esign-engine/raven_design/rendering/browser_runtime.py | 181 | return x2 > x1 && y2 > y1 ? { x1, y1, x2, y2, area: (x2 - x1) * (y2 - y1) } : null; | CODE |
| HIGH⚡ | …esign-engine/raven_design/rendering/browser_runtime.py | 181 | return x2 > x1 && y2 > y1 ? { x1, y1, x2, y2, area: (x2 - x1) * (y2 - y1) } : null; | CODE |
| HIGH⚡ | …esign-engine/raven_design/rendering/browser_runtime.py | 186 | let src = null; | CODE |
| HIGH⚡ | …esign-engine/raven_design/rendering/browser_runtime.py | 187 | if (tag === "img") src = el.currentSrc || el.getAttribute("src"); | CODE |
| HIGH⚡ | …esign-engine/raven_design/rendering/browser_runtime.py | 188 | else if (tag === "video") src = el.currentSrc || el.getAttribute("poster") || "video"; | CODE |
| HIGH⚡ | …esign-engine/raven_design/rendering/browser_runtime.py | 192 | const m = bg && bg !== "none" ? bg.match(/url\\(["']?([^"')]+)/) : null; | CODE |
| HIGH⚡ | …esign-engine/raven_design/rendering/browser_runtime.py | 192 | const m = bg && bg !== "none" ? bg.match(/url\\(["']?([^"')]+)/) : null; | CODE |
| HIGH⚡ | …esign-engine/raven_design/rendering/browser_runtime.py | 197 | if (box) visuals.push({ el, url: String(src), src: String(src).split("/").pop().split("?")[0], box }); | CODE |
| HIGH⚡ | …esign-engine/raven_design/rendering/browser_runtime.py | 199 | if (!visuals.length) return null; | CODE |
| HIGH⚡ | …esign-engine/raven_design/rendering/browser_runtime.py | 206 | let overlap = null, region = null; | CODE |
| HIGH⚡ | …esign-engine/raven_design/rendering/browser_runtime.py | 213 | : (v === "right" || v === "bottom") ? 1 : /%$/.test(v) ? parseFloat(v) / 100 : null; | CODE |
| HIGH⚡ | …esign-engine/raven_design/rendering/browser_runtime.py | 218 | if (!top.el.naturalWidth || cs.objectFit !== "cover") return null; | CODE |
| HIGH⚡ | …esign-engine/raven_design/rendering/browser_runtime.py | 218 | if (!top.el.naturalWidth || cs.objectFit !== "cover") return null; | CODE |
| HIGH⚡ | …esign-engine/raven_design/rendering/browser_runtime.py | 222 | if (tag === "video" || tag === "canvas" || tag === "svg") return null; | CODE |
| HIGH⚡ | …esign-engine/raven_design/rendering/browser_runtime.py | 223 | if (cs.backgroundSize !== "cover") return null; | CODE |
| HIGH⚡ | …esign-engine/raven_design/rendering/browser_runtime.py | 227 | i.onload = () => resolve(i.naturalWidth ? i : null); i.onerror = () => resolve(null); | CODE |
| HIGH⚡ | …esign-engine/raven_design/rendering/browser_runtime.py | 228 | setTimeout(() => resolve(null), 2000); | CODE |
| HIGH⚡ | …esign-engine/raven_design/rendering/browser_runtime.py | 231 | return im ? { im, fx: frac(p[0]), fy: frac(p[1] || p[0]) } : null; | CODE |
| HIGH⚡ | …esign-engine/raven_design/rendering/browser_runtime.py | 233 | const hit = overlap > 0 ? await bitmap() : null; | CODE |
| HIGH⚡ | …esign-engine/raven_design/rendering/browser_runtime.py | 234 | if (hit && hit.fx !== null && hit.fy !== null) { | CODE |
| HIGH⚡ | …esign-engine/raven_design/rendering/browser_runtime.py | 234 | if (hit && hit.fx !== null && hit.fy !== null) { | CODE |
| HIGH | …esign-engine/raven_design/rendering/browser_runtime.py | 131 | if (rect.width <= 0 || rect.height <= 0) continue; | CODE |
| HIGH | …esign-engine/raven_design/rendering/browser_runtime.py | 132 | tokens.push(text.slice(0, 160)); | CODE |
| HIGH | …esign-engine/raven_design/rendering/browser_runtime.py | 251 | } catch (e) { region = null; } | CODE |
| HIGH | …esign-engine/raven_design/rendering/browser_runtime.py | 275 | src: (img.currentSrc || img.getAttribute("src") || "").split("/").pop(), | CODE |
| HIGH | plugins-dist/ppt-engine/raven_ppt/tools/outline.py | 118 | "this page's number, 1 for the first; left out or null, the page is " | CODE |
| HIGH | …dist/ppt-engine/raven_ppt/services/template/compose.py | 431 | over it is zero or undefined, and it survives any region test written the obvious | STRING |
| HIGH | tests/test_rpc_session.py | 1160 | """session.delete on a missing session returns {deleted: null} so the UI | STRING |
| HIGH | tests/test_rpc_session.py | 1176 | """session.delete with no session_id returns {deleted: null}.""" | STRING |
| HIGH | tests/test_rpc_schema_match.py | 116 | # ``anyOf: [T, null]`` and ``_strip_null_anyof`` reduces to T, so | COMMENT |
| HIGH | tests/test_rpc_schema_match.py | 148 | # ``oneOf: [JsonValue, null]`` is the schema's way of declaring an | COMMENT |
| HIGH | tests/test_rpc_schema_match.py | 18 | "anyOf [T, null]" wrapper vs schema's bare "T" + required-list). Nullability is | STRING |
| HIGH | tests/test_rpc_schema_match.py | 162 | """Pydantic emits ``anyOf: [{type:X}, {type:null}]`` for ``X | None``. | STRING |
| HIGH | tests/test_rpc_schema_match.py | 244 | "required" means the field has no default (Pydantic-required AND non-null). | STRING |
| HIGH | tests/test_knowledge_manager.py | 47 | # undefined; a floor keeps every text somewhere on the sphere. | COMMENT |
| HIGH⚡ | tests/test_shell_approval.py | 142 | assert asking_policy.evaluate("unlink old.txt && rm -rf /") is CommandDecision.HARD_DENY | CODE |
| HIGH⚡ | tests/test_shell_approval.py | 720 | assert policy.evaluate("mkfs.ext4 /dev/sda1 && git push") is CommandDecision.HARD_DENY | CODE |
| HIGH⚡ | tests/test_shell_approval.py | 914 | ["echo a|grep b", "make test && echo done", "echo '|' ", "echo 'a && b'"], | CODE |
| HIGH | tests/test_shell_approval.py | 72 | "echo ready && rm -rf /", | CODE |
| HIGH | tests/test_shell_approval.py | 111 | "echo ready && rm file.txt", | CODE |
| HIGH | tests/test_shell_approval.py | 334 | "cd /work && rm -f a.py", | CODE |
| HIGH | tests/test_sandbox_unit.py | 512 | f"(sleep 2; dd if=/dev/zero bs=65536 count=8 2>/dev/null && echo done > {done_file}) & " | STRING |
| HIGH | tests/test_rpc_control.py | 165 | """Only the QR adapters report a pairing; everyone else answers null, never | STRING |
| HIGH | tests/acp_schema.py | 29 | no enum, and ``params`` is ``anyOf[..., null]``, so a frame with an invented | STRING |
| HIGH | tests/test_agents_oncall_flow_action_taken.py | 73 | {"name": "buy", "command": "echo filled {qty} > /dev/null; echo ok", "repeat": "harmful"}, | CODE |
| HIGH | tests/test_shell_comments.py | 63 | 'curl -s -o /dev/null -w "%{http_code}" http://localhost:18791/ 2>/dev/null; echo " :18791"', | CODE |
| 191 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | experimental/curator/harness/__init__.py | 7 | __all__ = ["Artifact", "Candidate", "Change", "Declaration", "Plan", "StateUse", "Task", "Target", "Validation"] | CODE |
| LOW | experimental/curator/harness/strategies/__init__.py | 12 | __all__ = ["ActionStrategy", "CapabilityStrategy", "MemoryStrategy", "PlanningStrategy"] | CODE |
| LOW | experimental/curator/harness/prompts/__init__.py | 5 | __all__ = ["Prompt"] | CODE |
| LOW | …erimental/curator/raven_adapter/inspection/__init__.py | 83 | __all__ = [ | CODE |
| LOW | …perimental/curator/raven_adapter/baselines/__init__.py | 5 | __all__ = ["Baseline", "prepare"] | CODE |
| LOW | plugins-dist/everos-memory/raven_everos/onboard.py | 1380 | def _set_base_url(base_url: str) -> None: | CODE |
| LOW | plugins-dist/everos-memory/raven_everos/onboard.py | 1872 | __all__ = ["EverosOnboardStep", "make_onboard_step"] | CODE |
| LOW | plugins-dist/everos-memory/raven_everos/server.py | 1328 | __all__ = [ | CODE |
| LOW | plugins-dist/everos-memory/raven_everos/backend.py | 1873 | __all__ = ["EverosBackend", "as_ms_epoch", "convert_messages", "make_backend"] | CODE |
| LOW | plugins-dist/everos-memory/raven_everos/config.py | 66 | logger = logging.getLogger(__name__) | CODE |
| LOW | plugins-dist/everos-memory/raven_everos/config.py | 585 | def set_everos_section(section: str, fields: dict[str, Any]) -> None: | CODE |
| LOW | plugins-dist/everos-memory/raven_everos/config.py | 626 | def set_everos_api(*, host: str, port: int) -> None: | CODE |
| LOW | plugins-dist/everos-memory/raven_everos/tools.py | 155 | __all__ = ["UnderstandMediaTool", "make_understand_media_tool"] | CODE |
| LOW | plugins-dist/everos-memory/raven_everos/multimodal.py | 206 | __all__ = ["MultimodalUnavailableError", "understand_files"] | CODE |
| LOW | plugins-dist/everos-memory/raven_everos/roots.py | 174 | __all__ = ["RootState", "discover", "pick"] | CODE |
| LOW | plugins-dist/design-engine/raven_design/selector.py | 148 | def set_provider(self, provider: "LLMProvider", model: str) -> None: | CODE |
| LOW | plugins-dist/design-engine/raven_design/selector.py | 293 | __all__ = [ | CODE |
| LOW | …ugins-dist/design-engine/raven_design/plugin/config.py | 308 | __all__ = ["EngineConfig", "RenderSettings", "SelectorConfig", "TaskStateConfig"] | CODE |
| LOW | plugins-dist/design-engine/raven_design/plugin/hook.py | 85 | logger = logging.getLogger(__name__) | CODE |
| LOW | plugins-dist/design-engine/raven_design/plugin/hook.py | 453 | __all__ = [ | CODE |
| LOW | …ins-dist/design-engine/raven_design/plugin/__init__.py | 45 | logger = logging.getLogger(__name__) | CODE |
| LOW | …ins-dist/design-engine/raven_design/plugin/__init__.py | 243 | __all__ = [ | CODE |
| LOW | …dist/design-engine/raven_design/task_state/__init__.py | 11 | __all__ = [ | CODE |
| LOW | …ins-dist/design-engine/raven_design/task_state/tool.py | 199 | __all__ = ["TaskStateTool"] | CODE |
| LOW | …-dist/design-engine/raven_design/task_state/manager.py | 490 | __all__ = [ | CODE |
| LOW | …ngine/raven_design/rendering/uno_spreadsheet_worker.py | 60 | def _set_properties(target: Any, values: dict[str, Any]) -> None: | CODE |
| LOW | …-dist/design-engine/raven_design/rendering/__init__.py | 6 | __all__ = [ | CODE |
| LOW | …gins-dist/ppt-engine/raven_ppt/tools/generate_image.py | 464 | __all__ = ["PptGenerateImageTool", "key_out_green", "RATIOS", "QUALITIES"] | CODE |
| LOW | plugins-dist/ppt-engine/raven_ppt/contracts/__init__.py | 35 | __all__ = [ | CODE |
| LOW | …-dist/ppt-engine/raven_ppt/backends/script/__init__.py | 30 | __all__ = [ | CODE |
| LOW | plugins-dist/ppt-engine/raven_ppt/plugin/materials.py | 517 | __all__ = [ | CODE |
| LOW | plugins-dist/ppt-engine/raven_ppt/plugin/ledger.py | 31 | logger = logging.getLogger(__name__) | CODE |
| LOW | plugins-dist/ppt-engine/raven_ppt/plugin/hook.py | 151 | logger = logging.getLogger(__name__) | CODE |
| LOW | plugins-dist/ppt-engine/raven_ppt/plugin/hook.py | 621 | __all__ = [ | CODE |
| LOW | plugins-dist/ppt-engine/raven_ppt/plugin/__init__.py | 49 | logger = logging.getLogger(__name__) | CODE |
| LOW | plugins-dist/ppt-engine/raven_ppt/plugin/__init__.py | 298 | __all__ = [ | CODE |
| LOW | …s-dist/ppt-engine/raven_ppt/services/gates/__init__.py | 47 | __all__ = [ | CODE |
| LOW | …-dist/ppt-engine/raven_ppt/services/ingest/__init__.py | 54 | __all__ = [ | CODE |
| LOW | …ist/ppt-engine/raven_ppt/services/template/__init__.py | 100 | __all__ = [ | CODE |
| LOW | …dist/ppt-engine/raven_ppt/services/template/prepare.py | 28 | __all__ = ["PREPARED_FILE", "Prepared", "prepare", "prepared_path", "strip_hidden"] | CODE |
| LOW | …-dist/ppt-engine/raven_ppt/services/render/__init__.py | 58 | __all__ = [ | CODE |
| LOW | …t/ppt-engine/raven_ppt/services/render/capabilities.py | 25 | __all__ = [ | CODE |
| LOW | …dist/ppt-engine/raven_ppt/services/publish/__init__.py | 36 | __all__ = [ | CODE |
| LOW | …st/ppt-engine/raven_ppt/services/publish/provenance.py | 247 | __all__ = ["strip_vendor_marks", "VENDOR", "THEME_NAME", "CREATOR"] | CODE |
| LOW | …dist/ppt-engine/raven_ppt/services/measure/__init__.py | 75 | __all__ = [ | CODE |
| LOW | …-dist/ppt-engine/raven_ppt/services/assets/__init__.py | 82 | __all__ = [ | CODE |
| LOW⚡ | evolver/tree/store.py | 50 | logger = logging.getLogger(__name__) | CODE |
| LOW | evolver/tree/store.py | 345 | __all__ = [ | CODE |
| LOW⚡ | evolver/tree/git_ops.py | 54 | def set_ephemeral_root(path: Optional[Path]) -> None: | CODE |
| LOW | evolver/tree/git_ops.py | 437 | __all__ = [ | CODE |
| LOW | evolver/tree/__init__.py | 21 | __all__ = [ | CODE |
| LOW | evolver/tree/node.py | 693 | __all__ = [ | CODE |
| LOW | evolver/analysis/proxy_features.py | 32 | __all__ = [ | CODE |
| LOW | evolver/analysis/trial_pool.py | 117 | __all__ = [ | CODE |
| LOW | evolver/analysis/failure_map_builder.py | 236 | __all__ = [ | CODE |
| LOW | evolver/launch/runner.py | 409 | __all__ = ["cmd_run", "cmd_status", "cmd_check", "cmd_finalize"] | CODE |
| LOW | evolver/launch/config.py | 232 | __all__ = ["RunSpec", "RunSpecError", "load_run_spec", "deep_merge", "SMOKE_BUILTIN"] | CODE |
| LOW | evolver/launch/models.py | 154 | __all__ = ["CallFn", "build_call_fn", "build_role_call_fns", "describe_models", "make_raven_call_fn"] | CODE |
| LOW | evolver/launch/registry.py | 36 | __all__ = ["BENCHES", "load_bench"] | CODE |
| LOW | evolver/launch/__init__.py | 12 | __all__ = ["BenchBundle", "LaunchContext", "load_bench", "validate_whitelist"] | CODE |
| 742 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .pre-commit-config.yaml | 21 | # with `cmp` rather than by trust. Upstream writes some of them with no | COMMENT |
| LOW | install.sh | 1 | #!/bin/sh | COMMENT |
| LOW | install.sh | 21 | # | COMMENT |
| LOW | install.sh | 181 | # --- 2b. build the web assets a source checkout does not carry ------------- | COMMENT |
| LOW | install.sh | 281 | else | COMMENT |
| LOW | install.sh | 301 | ( cd "$1/ui-web" && PATH="$2:$PATH" npm ci && PATH="$2:$PATH" npm run build ) \ | COMMENT |
| LOW | install.sh | 341 | # own distribution beside the wheel -- carry it, and degrade loudly (the | COMMENT |
| LOW | install.sh | 381 | fi | COMMENT |
| LOW | install.sh | 661 | # | COMMENT |
| LOW | pyproject.toml | 41 | # a dependency that only arrives by accident is one an upgrade can remove. | COMMENT |
| LOW | pyproject.toml | 61 | # Embedded vector store behind raven.knowledge -- a knowledge base indexes | COMMENT |
| LOW | pyproject.toml | 221 | [tool.uv.sources] | COMMENT |
| LOW | pyproject.toml | 261 | # drops it, the install stops carrying it and raven fails at import time, far | COMMENT |
| LOW | pyproject.toml | 281 | # has to name both rules. deptry classifies from installed distribution metadata, | COMMENT |
| LOW | pyproject.toml | 301 | # not carry an AGPL dependency for a feature that is absent without the plugin. | COMMENT |
| LOW | pyproject.toml | 321 | # | COMMENT |
| LOW | pyproject.toml | 401 | # Cyclomatic complexity is the count of linearly independent paths through a | COMMENT |
| LOW | pyproject.toml | 501 | "--strict-config", | COMMENT |
| LOW | pyproject.toml | 601 | "raven.gateway", "raven.market", "raven.ops", "raven.security", "raven.auth", | COMMENT |
| LOW | pyproject.toml | 621 | # What one stint needs over a workspace -- the ownership grades, the journal | COMMENT |
| LOW | pyproject.toml | 641 | # entry here would be new debt, not a carry-over. | COMMENT |
| LOW | beta.sh | 1 | #!/bin/sh | COMMENT |
| LOW | ui-web/vite.config.ts | 1 | import { readFileSync } from 'node:fs' | COMMENT |
| LOW | ui-tui/vitest.setup.ts | 1 | // SPDX-License-Identifier: MIT | COMMENT |
| LOW | ui-tui/packages/hermes-ink/src/ink/dom.ts | 61 | // auto-pins scrollTop to the bottom when content grows. | COMMENT |
| LOW | ui-tui/packages/hermes-ink/src/ink/dom.ts | 81 | notifyScrollChange?: () => void | COMMENT |
| LOW | ui-tui/packages/hermes-ink/src/ink/dom.ts | 381 | // Text fits into container, no need to wrap | COMMENT |
| LOW | …i/packages/hermes-ink/src/ink/render-node-to-output.ts | 641 | COMMENT | |
| LOW | …i/packages/hermes-ink/src/ink/render-node-to-output.ts | 721 | // Capture previous scroll bounds BEFORE overwriting — the at-bottom | COMMENT |
| LOW | …i/packages/hermes-ink/src/ink/render-node-to-output.ts | 761 | // and scrollToBottom-from-far-away (flag set before scrollTop moves) | COMMENT |
| LOW | …i/packages/hermes-ink/src/ink/render-node-to-output.ts | 821 | const cMin = node.scrollClampMin | COMMENT |
| LOW | …i/packages/hermes-ink/src/ink/render-node-to-output.ts | 881 | COMMENT | |
| LOW | …i/packages/hermes-ink/src/ink/render-node-to-output.ts | 921 | // When content.dirty (e.g. streaming text at the bottom of the | COMMENT |
| LOW | …i/packages/hermes-ink/src/ink/render-node-to-output.ts | 1001 | hasRemovedChild, | COMMENT |
| LOW | …i/packages/hermes-ink/src/ink/render-node-to-output.ts | 1021 | // this, the spinner/tmux-monitor ghost at shifted positions | COMMENT |
| LOW | …i/packages/hermes-ink/src/ink/render-node-to-output.ts | 1181 | } | COMMENT |
| LOW | …i/packages/hermes-ink/src/ink/render-node-to-output.ts | 1301 | COMMENT | |
| LOW | …i/packages/hermes-ink/src/ink/render-node-to-output.ts | 1321 | // Exception: absolute-positioned clipped children may have layout bounds | COMMENT |
| LOW | ui-tui/packages/hermes-ink/src/ink/searchHighlight.ts | 41 | const rowOff = row * w | COMMENT |
| LOW | ui-tui/packages/hermes-ink/src/ink/ink.tsx | 241 | // "current" (yellow). null clears. Positions are known upfront — | COMMENT |
| LOW | ui-tui/packages/hermes-ink/src/ink/ink.tsx | 261 | // alt-screen-aware SIGCONT/resize/unmount handling. | COMMENT |
| LOW | ui-tui/packages/hermes-ink/src/ink/ink.tsx | 281 | // screen readers / screen magnifiers track it — so parking at the text | COMMENT |
| LOW | ui-tui/packages/hermes-ink/src/ink/ink.tsx | 341 | COMMENT | |
| LOW | ui-tui/packages/hermes-ink/src/ink/ink.tsx | 681 | altScreen: this.altScreenActive, | COMMENT |
| LOW | ui-tui/packages/hermes-ink/src/ink/ink.tsx | 701 | follow && | COMMENT |
| LOW | ui-tui/packages/hermes-ink/src/ink/ink.tsx | 721 | if (this.selection.isDragging) { | COMMENT |
| LOW | ui-tui/packages/hermes-ink/src/ink/ink.tsx | 761 | COMMENT | |
| LOW | ui-tui/packages/hermes-ink/src/ink/ink.tsx | 881 | } | COMMENT |
| LOW | ui-tui/packages/hermes-ink/src/ink/parse-keypress.ts | 41 | const CSI_U_RE = /^\x1b\[(\d+)(?:;(\d+))?u/ | COMMENT |
| LOW | ui-tui/packages/hermes-ink/src/ink/parse-keypress.ts | 61 | // Kitty keyboard flags: CSI ? flags u — response to CSI ? u query | COMMENT |
| LOW | ui-tui/packages/hermes-ink/src/ink/log-update.ts | 161 | } | COMMENT |
| LOW | ui-tui/packages/hermes-ink/src/ink/log-update.ts | 201 | // | COMMENT |
| LOW | ui-tui/packages/hermes-ink/src/ink/log-update.ts | 401 | COMMENT | |
| LOW | ui-tui/packages/hermes-ink/src/ink/renderer.ts | 81 | const width = Math.floor(node.yogaNode.getComputedWidth()) | COMMENT |
| LOW | ui-tui/packages/hermes-ink/src/ink/terminal.ts | 181 | // Terminals known to correctly implement the Kitty keyboard protocol | COMMENT |
| LOW | ui-tui/packages/hermes-ink/src/ink/components/App.tsx | 81 | // Dispatch a click at (col, row) — hit-tests the DOM tree and bubbles | COMMENT |
| LOW | ui-tui/packages/hermes-ink/src/ink/components/App.tsx | 101 | // screen buffer to find word/line boundaries and mutates selection, | COMMENT |
| LOW | ui-tui/packages/hermes-ink/src/ink/components/App.tsx | 341 | // Rides the same batch as XTVERSION: the answer tells the key | COMMENT |
| LOW | ui-tui/packages/hermes-ink/src/ink/components/App.tsx | 841 | // trackpad jitter during an intended double-click (press→wobble→release | COMMENT |
| LOW | ui-tui/packages/hermes-ink/src/ink/components/App.tsx | 861 | // handler that fires on Cmd+click *without consuming the mouse event* | COMMENT |
| 797 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | experimental/analyst/activity.py | 215 | CODE | |
| LOW | experimental/simulation/isolation.py | 158 | CODE | |
| LOW | experimental/simulation/isolation.py | 255 | CODE | |
| LOW | experimental/simulation/files.py | 62 | CODE | |
| LOW | experimental/simulation/suite.py | 358 | CODE | |
| LOW | experimental/simulation/agency.py | 193 | CODE | |
| LOW | experimental/simulation/agency.py | 230 | CODE | |
| LOW | experimental/simulation/agency.py | 298 | CODE | |
| LOW | experimental/simulation/render.py | 51 | CODE | |
| LOW | experimental/simulation/channel.py | 14 | CODE | |
| LOW | experimental/simulation/cards.py | 101 | CODE | |
| LOW | experimental/simulation/scenario.py | 146 | CODE | |
| LOW | experimental/simulation/record.py | 177 | CODE | |
| LOW | experimental/simulation/record.py | 241 | CODE | |
| LOW | experimental/simulation/record.py | 690 | CODE | |
| LOW | experimental/simulation/record.py | 972 | CODE | |
| LOW | experimental/simulation/record.py | 1413 | CODE | |
| LOW | experimental/simulation/record.py | 1796 | CODE | |
| LOW | experimental/simulation/reference.py | 121 | CODE | |
| LOW | experimental/simulation/value.py | 114 | CODE | |
| LOW | experimental/simulation/value.py | 218 | CODE | |
| LOW | experimental/curator/composition/run.py | 52 | CODE | |
| LOW | experimental/curator/raven_adapter/worker.py | 63 | CODE | |
| LOW | experimental/curator/raven_adapter/worker.py | 83 | CODE | |
| LOW | experimental/curator/raven_adapter/worker.py | 560 | CODE | |
| LOW | experimental/curator/raven_adapter/worker.py | 661 | CODE | |
| LOW | experimental/curator/raven_adapter/deployment.py | 103 | CODE | |
| LOW | experimental/curator/raven_adapter/exploration.py | 207 | CODE | |
| LOW | experimental/curator/raven_adapter/bind.py | 85 | CODE | |
| LOW | experimental/curator/raven_adapter/bind.py | 214 | CODE | |
| LOW | experimental/curator/raven_adapter/bind.py | 446 | CODE | |
| LOW | …perimental/curator/raven_adapter/inspection/runtime.py | 49 | CODE | |
| LOW | …perimental/curator/raven_adapter/inspection/sources.py | 113 | CODE | |
| LOW | experimental/curator/raven_adapter/hosting/transport.py | 30 | CODE | |
| LOW | experimental/curator/raven_adapter/hosting/prepare.py | 16 | CODE | |
| LOW | experimental/curator/generation/run.py | 80 | CODE | |
| LOW | experimental/curator/generation/run.py | 172 | CODE | |
| LOW | experimental/curator/generation/context/render.py | 91 | CODE | |
| LOW | experimental/curator/generation/stages/implement.py | 59 | CODE | |
| LOW | experimental/iteration/run.py | 120 | CODE | |
| LOW | experimental/iteration/exchange.py | 22 | CODE | |
| LOW | plugins-dist/everos-memory/raven_everos/onboard.py | 690 | CODE | |
| LOW | plugins-dist/everos-memory/raven_everos/onboard.py | 837 | CODE | |
| LOW | plugins-dist/everos-memory/raven_everos/server.py | 137 | CODE | |
| LOW | plugins-dist/everos-memory/raven_everos/server.py | 1057 | CODE | |
| LOW | plugins-dist/everos-memory/raven_everos/backend.py | 1096 | CODE | |
| LOW | …ugins-dist/design-engine/raven_design/plugin/config.py | 223 | CODE | |
| LOW | …s-dist/design-engine/raven_design/rendering/preview.py | 111 | CODE | |
| LOW | …ns-dist/design-engine/raven_design/rendering/office.py | 82 | CODE | |
| LOW | …dist/design-engine/raven_design/rendering/detection.py | 152 | CODE | |
| LOW | …dist/design-engine/raven_design/rendering/detection.py | 297 | CODE | |
| LOW | …dist/design-engine/raven_design/rendering/detection.py | 418 | CODE | |
| LOW | …st/design-engine/raven_design/rendering/spreadsheet.py | 77 | CODE | |
| LOW | …s-dist/design-engine/raven_design/rendering/backend.py | 71 | CODE | |
| LOW | …ngine/raven_design/rendering/uno_spreadsheet_worker.py | 346 | CODE | |
| LOW | …ugins-dist/design-engine/raven_design/rendering/pdf.py | 59 | CODE | |
| LOW | …esign-engine/raven_design/rendering/browser_runtime.py | 466 | CODE | |
| LOW | …esign-engine/raven_design/rendering/browser_runtime.py | 485 | CODE | |
| LOW | …esign-engine/raven_design/rendering/browser_runtime.py | 565 | CODE | |
| LOW | …s-dist/design-engine/raven_design/rendering/browser.py | 676 | CODE | |
| 520 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | experimental/curator/harness/channels/model_input.py | 0 | the current mechanisms acting on this channel, independent of what the declaration grants. | STRING |
| HIGH | …rimental/curator/harness/channels/execution_control.py | 0 | the current mechanisms acting on this channel, independent of what the declaration grants. | STRING |
| HIGH | …erimental/curator/harness/channels/tool_interaction.py | 0 | the current mechanisms acting on this channel, independent of what the declaration grants. | STRING |
| HIGH | experimental/curator/harness/channels/model_decision.py | 0 | the current mechanisms acting on this channel, independent of what the declaration grants. | STRING |
| HIGH | tests/test_playbook_mcp.py | 0 | the shape ``connect_mcp_server`` returns, for a patched stub to hand back. | STRING |
| HIGH | tests/test_mcp_manager.py | 0 | the shape ``connect_mcp_server`` returns, for a patched stub to hand back. | STRING |
| HIGH | tests/test_agent_loop_mcp_sync.py | 0 | the shape ``connect_mcp_server`` returns, for a patched stub to hand back. | STRING |
| HIGH | tests/test_agents_code_launcher.py | 0 | a launcher pointed at a scratch home and state root, secrets set. | STRING |
| HIGH | tests/test_agents_oncall_launcher.py | 0 | a launcher pointed at a scratch home and state root, secrets set. | STRING |
| HIGH | tests/test_agents_design_launcher.py | 0 | a launcher pointed at a scratch home and state root, secrets set. | STRING |
| HIGH | tests/test_agents_research_launcher.py | 0 | a launcher pointed at a scratch home and state root, secrets set. | STRING |
| HIGH | tests/test_agents_ppt_launcher.py | 0 | a launcher pointed at a scratch home and state root, secrets set. | STRING |
| HIGH | tests/test_agents_research_flow_ask_user.py | 0 | every contextvar this feature owns, reset around each test. they are process-wide within one asyncio context, and pytest | STRING |
| HIGH | tests/test_agents_research_flow_ask_user_assembly.py | 0 | every contextvar this feature owns, reset around each test. they are process-wide within one asyncio context, and pytest | STRING |
| HIGH | tests/test_agents_research_ask_user_text.py | 0 | every contextvar this feature owns, reset around each test. they are process-wide within one asyncio context, and pytest | STRING |
| HIGH | tests/test_trajectory_store.py | 0 | span in the current format; pass ``attempt_id`` for a legacy-format span. | STRING |
| HIGH | tests/test_cli_trajectory_commands.py | 0 | span in the current format; pass ``attempt_id`` for a legacy-format span. | STRING |
| HIGH | tests/test_trajectory_bundle.py | 0 | span in the current format; pass ``attempt_id`` for a legacy-format span. | STRING |
| HIGH | tests/test_acp_ask_user.py | 0 | the `asker` half of the round trip, without a broker. | STRING |
| HIGH | tests/test_acp_elicitation.py | 0 | the `asker` half of the round trip, without a broker. | STRING |
| HIGH | docs/plans/2026-08-28-subagent-question-autofill.md | 0 | the `asker` half of the round trip, without a broker. | STRING |
| HIGH | tests/test_acp_ask_user.py | 0 | whatever the resolver would have decided, without a model. keyed by field name; `""` is the single-question route's key. | STRING |
| HIGH | tests/test_acp_elicitation.py | 0 | whatever the resolver would have decided, without a model. keyed by field name; `""` is the single-question route's key. | STRING |
| HIGH | docs/plans/2026-08-28-subagent-question-autofill.md | 0 | whatever the resolver would have decided, without a model. keyed by field name; `""` is the single-question route's key. | STRING |
| HIGH | tests/test_question_broker.py | 0 | stand in for one live socket: its own connection scope, held open in its own task, exactly as a transport holds one whil | STRING |
| HIGH | tests/test_rpc_confirm.py | 0 | stand in for one live socket: its own connection scope, held open in its own task, exactly as a transport holds one whil | STRING |
| HIGH | tests/test_approval_broker.py | 0 | stand in for one live socket: its own connection scope, held open in its own task, exactly as a transport holds one whil | STRING |
| HIGH | …ntegration/test_token_wise_hermes_vs_raven_real_llm.py | 0 | run one user turn through run_turn for its side-effects: the experiment measures usage via the tracker, not the reply, s | STRING |
| HIGH | tests/integration/test_token_wise_ablation_real_llm.py | 0 | run one user turn through run_turn for its side-effects: the experiment measures usage via the tracker, not the reply, s | STRING |
| HIGH | tests/integration/test_token_wise_workload_real_llm.py | 0 | run one user turn through run_turn for its side-effects: the experiment measures usage via the tracker, not the reply, s | STRING |
| HIGH | agents/raven-oncall/run.py | 0 | this product's settings lookup: the process environment, then ``.env``. | STRING |
| HIGH | agents/raven-design/run.py | 0 | this product's settings lookup: the process environment, then ``.env``. | STRING |
| HIGH | agents/raven-code/run.py | 0 | this product's settings lookup: the process environment, then ``.env``. | STRING |
| HIGH | agents/raven-ppt/run.py | 0 | this product's settings lookup: the process environment, then ``.env``. | STRING |
| HIGH | agents/raven-research/run.py | 0 | this product's settings lookup: the process environment, then ``.env``. | STRING |
| HIGH | agents/raven-oncall/run.py | 0 | everything this product persists lands here, never in this folder. | STRING |
| HIGH | agents/raven-design/run.py | 0 | everything this product persists lands here, never in this folder. | STRING |
| HIGH | agents/raven-code/run.py | 0 | everything this product persists lands here, never in this folder. | STRING |
| HIGH | agents/raven-ppt/run.py | 0 | everything this product persists lands here, never in this folder. | STRING |
| HIGH | agents/raven-research/run.py | 0 | everything this product persists lands here, never in this folder. | STRING |
| HIGH | agents/raven-oncall/run.py | 0 | record a diagnostic without contaminating the protocol stream. | STRING |
| HIGH | agents/raven-design/run.py | 0 | record a diagnostic without contaminating the protocol stream. | STRING |
| HIGH | agents/raven-ppt/run.py | 0 | record a diagnostic without contaminating the protocol stream. | STRING |
| HIGH | agents/raven-research/run.py | 0 | record a diagnostic without contaminating the protocol stream. | STRING |
| HIGH | raven/templates/agents_scaffold/run.py | 0 | record a diagnostic without contaminating the protocol stream. | STRING |
| HIGH | agents/raven-oncall/install.py | 0 | register this product in the host raven's roster. runs under an interpreter that imports raven -- inside this repo, the | STRING |
| HIGH | agents/raven-design/install.py | 0 | register this product in the host raven's roster. runs under an interpreter that imports raven -- inside this repo, the | STRING |
| HIGH | agents/raven-code/install.py | 0 | register this product in the host raven's roster. runs under an interpreter that imports raven -- inside this repo, the | STRING |
| HIGH | agents/raven-ppt/install.py | 0 | register this product in the host raven's roster. runs under an interpreter that imports raven -- inside this repo, the | STRING |
| HIGH | agents/raven-research/install.py | 0 | register this product in the host raven's roster. runs under an interpreter that imports raven -- inside this repo, the | STRING |
| HIGH | agents/raven-oncall/install.py | 0 | ``value`` with ``{python}`` and ``{subagent_dir}`` substituted for this folder. | STRING |
| HIGH | agents/raven-design/install.py | 0 | ``value`` with ``{python}`` and ``{subagent_dir}`` substituted for this folder. | STRING |
| HIGH | agents/raven-code/install.py | 0 | ``value`` with ``{python}`` and ``{subagent_dir}`` substituted for this folder. | STRING |
| HIGH | agents/raven-ppt/install.py | 0 | ``value`` with ``{python}`` and ``{subagent_dir}`` substituted for this folder. | STRING |
| HIGH | agents/raven-research/install.py | 0 | ``value`` with ``{python}`` and ``{subagent_dir}`` substituted for this folder. | STRING |
| HIGH | raven/templates/agents_scaffold/install.py | 0 | ``value`` with ``{python}`` and ``{subagent_dir}`` substituted for this folder. | STRING |
| HIGH | …raven-oncall/plugins/oncall-flow/oncall_flow/config.py | 0 | accepts both camelcase and snake_case keys; unknown keys are ignored. | STRING |
| HIGH | agents/raven-code/plugins/code-flow/code_flow/config.py | 0 | accepts both camelcase and snake_case keys; unknown keys are ignored. | STRING |
| HIGH | …research/plugins/research-flow/research_flow/config.py | 0 | accepts both camelcase and snake_case keys; unknown keys are ignored. | STRING |
| HIGH | docs/plans/2026-09-02-dag-foreground-report-handoff.md | 0 | start waiting on ``node_id``. the event fires when an answer lands. | STRING |
| 17 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | install.sh | 344 | # Raven-Design and Raven-PPT keep their harness in a distribution too, and | COMMENT |
| MEDIUM | pyproject.toml | 481 | # benchmarks/: eval harness; naming, ambiguous names, unused vars, | COMMENT |
| MEDIUM | pyproject.toml | 644 | # than left for a reader to discover: contracts/harness.py names | COMMENT |
| MEDIUM | pyproject.toml | 645 | # raven.agent.harness.participants under TYPE_CHECKING, for the Verdict and | COMMENT |
| MEDIUM | pyproject.toml | 668 | # raven/agent holds two seats: agent/loop is the L2 harness shell every | COMMENT |
| MEDIUM | experimental/analyst/activity.py | 36 | # Refusals that come from the host's own guards or argument checks, not from a mechanism of the harness. | COMMENT |
| MEDIUM | experimental/curator/raven_adapter/exploration.py | 36 | # Reference-only sources: exploration reads them from its snapshot and the installed harness never runs them, so a | COMMENT |
| MEDIUM | plugins-dist/ppt-engine/raven_ppt/contracts/build.py | 42 | # Something the harness did on the author's behalf, kept apart from stderr | COMMENT |
| MEDIUM | …-dist/ppt-engine/raven_ppt/services/publish/deliver.py | 245 | # with no record is one the harness reads as a copy the model made for itself, | COMMENT |
| MEDIUM | evolver/judge/schema.py | 33 | L2 = "L2" # harness config error — evolver patches docs/configs | CODE |
| MEDIUM | evolver/judge/schema.py | 34 | L3 = "L3" # harness capability gap — evolver patches skills/memory/hooks | CODE |
| MEDIUM | evolver/orchestrator/loop.py | 124 | # harness's commit + its train pass@1, so its test curve is reconstructable | COMMENT |
| MEDIUM | evolver/orchestrator/archive.py | 126 | # the four levers over the harness's edit surfaces). Module-level so a bench | COMMENT |
| MEDIUM⚡ | tests/test_agents_code_launcher.py | 147 | #: Words that would tie the conduct to one evaluation harness rather than to | COMMENT |
| LOW | tests/test_subagent_dag_runner.py | 300 | # acp_agent.py does, not just return the text. | COMMENT |
| MEDIUM⚡ | tests/test_agents_code_flow_completion_gates.py | 68 | # Regression (2026-08-13): ``code_edits_observed`` is turn-local, but a harness may | COMMENT |
| MEDIUM⚡ | tests/test_sandbox_unit.py | 868 | # it is opt-in via extra_deny_patterns (the proactivity-eval harness sets it | COMMENT |
| MEDIUM | tests/test_rpc_slash_routing.py | 152 | # harness-command-catalog-dynamic — newly blacklisted (smoke caught | COMMENT |
| MEDIUM⚡ | tests/test_agents_research_flow_fetch_gate.py | 420 | # ── harness text ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/test_contracts_two_tier_ledger.py | 157 | # The four strategy roles the loop delegates to (harness.py), and the | COMMENT |
| MEDIUM | tests/test_contracts_two_tier_ledger.py | 179 | # a verdict lives in the harness, not on the paper. | COMMENT |
| MEDIUM⚡ | tests/test_rpc_stubs.py | 56 | # ``raven.rpc.methods.commands`` (harness-command-catalog-dynamic); | COMMENT |
| MEDIUM⚡ | tests/test_agents_research_harness_text.py | 65 | # --- direction 1: harness bodies are recognised ----------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_agents_research_brief_checklist.py | 141 | # constraint it reverses is one the harness invented against the request. | COMMENT |
| MEDIUM⚡ | tests/test_install_script.py | 49 | # script's paths mix separators with Windows ones, so a harness there fails or | COMMENT |
| MEDIUM | tests/test_rpc_turn_send.py | 165 | # No agent loop is wired in this harness, so no namer can have started. | COMMENT |
| LOW | tests/test_memory_backend_contract.py | 48 | # No actual filtering — ids are opaque, we just return []. | COMMENT |
| LOW | tests/test_cron_service_dedup.py | 196 | # Persisted, not just set: add_job reloads the store under its lock | COMMENT |
| MEDIUM | tests/test_design_engine_plugin_face.py | 736 | # This minimal harness wires no session-workdir resolver, so the turn is | COMMENT |
| MEDIUM | tests/test_cli_gateway_commands.py | 99 | # E2E harness (or a focused refactor that splits gateway init from run) | COMMENT |
| MEDIUM⚡ | tests/tui/autotest/tests/test_autotest_cli.py | 62 | # 0 (perfect) and 1 (readiness timeout); not 2 (harness error). | COMMENT |
| MEDIUM⚡ | tests/tui/autotest/tests/test_autotest_cli.py | 70 | # which surfaces as "subprocess exit != 0" → harness exit 1 per spec §S2 | COMMENT |
| MEDIUM | tests/integration/tui_rpc_harness.py | 125 | # The server builds its loop from the user's config; the harness hands | COMMENT |
| MEDIUM | …ts/trajectories/sample_diverges_toward_fix/expect.yaml | 5 | # buggy harness code, so the fixed harness must diverge at that exact call -- | COMMENT |
| MEDIUM | …s/trajectories/sample_reproduces_recording/expect.yaml | 3 | # Shape 1 of a regression assertion: the live harness must reproduce this | COMMENT |
| MEDIUM | …all/plugins/oncall-flow/oncall_flow/process_backend.py | 801 | # 15 seconds old, and the arm had to argue the harness down from its | COMMENT |
| MEDIUM | …all/plugins/oncall-flow/oncall_flow/process_backend.py | 817 | # behind. The harness knows that for certain and used to drop it, | COMMENT |
| MEDIUM | …oncall/plugins/oncall-flow/oncall_flow/state_claims.py | 497 | # family in this file -- a fact the harness does not hold refuses nothing. | COMMENT |
| MEDIUM | …oncall/plugins/oncall-flow/oncall_flow/state_claims.py | 506 | # join `values` above: that early return means "the harness recorded no reading, | COMMENT |
| MEDIUM | …raven-research/plugins/research-flow/raven-plugin.toml | 1 | # research-flow: the deep-research harness as a plugin. | COMMENT |
| MEDIUM | …lugins/research-flow/research_flow/gates/fetch_gate.py | 129 | # accumulated 195 of them; the cost of a repeated harness sentence is | COMMENT |
| MEDIUM | …lugins/research-flow/research_flow/gates/fetch_gate.py | 139 | # "open a page" - two harness sentences pointing opposite ways on one | COMMENT |
| MEDIUM⚡ | …/plugins/research-flow/research_flow/gates/finalize.py | 326 | # dr@3.2: the harness must not be able to answer its own question. When | COMMENT |
| MEDIUM⚡ | …/plugins/research-flow/research_flow/gates/finalize.py | 334 | # endpoint that counts the harness's own sentence as "answered" is | COMMENT |
| MEDIUM⚡ | …/plugins/research-flow/research_flow/gates/finalize.py | 335 | # measuring the harness, not the agent. | COMMENT |
| MEDIUM⚡ | …/plugins/research-flow/research_flow/gates/finalize.py | 337 | # Strict matching (whole answer == a harness sentence), never substring. | COMMENT |
| MEDIUM | …/plugins/research-flow/research_flow/gates/ask_user.py | 731 | # A harness re-prompt (a reviewer rejection, a force-finalize, a | COMMENT |
| MEDIUM | …ugins/research-flow/research_flow/gates/sufficiency.py | 244 | # produces is a judge asked whether the harness's own sentence answers the | COMMENT |
| MEDIUM | …ch/plugins/research-flow/research_flow/gates/verify.py | 668 | # dr@3.2: skip every harness-authored body here, not just elisions. | COMMENT |
| MEDIUM | …ns/research-flow/research_flow/support/harness_text.py | 172 | # they are the two harness bodies that do not occupy a message of their own: each | COMMENT |
| MEDIUM | raven/core/proactive_stack.py | 284 | # 1. Caller passed planner_provider explicitly (eval harness path) | COMMENT |
| MEDIUM | raven/contracts/harness.py | 50 | # shapes the shell reads a participant's answer into live in the harness | COMMENT |
| MEDIUM | raven/agent/tools/registry.py | 291 | # built without a harness (a test rig, a tool-only surface), which | COMMENT |
| MEDIUM | raven/agent/tools/registry.py | 299 | # the loop assembles its harness, so there is no role to hand over yet. | COMMENT |
| MEDIUM | raven/agent/tools/registry.py | 898 | # array (an eval harness leaving only ``execute`` still gets asked for | COMMENT |
| MEDIUM | raven/agent/subagent/dag_verdict.py | 174 | # wording says so. Calling it a harness measurement would hand any conforming | COMMENT |
| MEDIUM | raven/agent/subagent/backends/raven_loop.py | 399 | # no harness to borrow the Action role from -- it builds the default | COMMENT |
| MEDIUM | raven/agent/subagent/backends/raven_loop.py | 404 | # Imported here, not at module scope: ``raven.agent.harness`` reaches | COMMENT |
| MEDIUM | raven/agent/loop/_shared.py | 332 | #: A message a hook injected on rollback: the harness re-prompting itself (a | COMMENT |
| MEDIUM | raven/agent/loop/turn_path.py | 2361 | # harness to take it (see ``harness/planning.py``). | COMMENT |
| 23 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | ui-tui/src/__tests__/subagentsHub.test.tsx | 542 | const listCalls = h.gw.request.mock.calls.filter(c => c[0] === 'subagents.list') | CODE |
| CRITICAL | ui-tui/src/__tests__/subagentsHub.test.tsx | 827 | expect(h.gw.request.mock.calls.filter(c => c[0] === 'subagents.toggle')).toHaveLength(1) | CODE |
| CRITICAL | ui-tui/src/__tests__/subagentsHub.test.tsx | 832 | expect(h.gw.request.mock.calls.filter(c => c[0] === 'subagents.toggle')).toHaveLength(1) | CODE |
| CRITICAL | ui-tui/src/__tests__/subagentsHub.test.tsx | 859 | expect(h.gw.request.mock.calls.filter(c => c[0] === 'subagents.test')).toHaveLength(1) | CODE |
| CRITICAL | ui-tui/src/__tests__/subagentsHub.test.tsx | 864 | expect(h.gw.request.mock.calls.filter(c => c[0] === 'subagents.test')).toHaveLength(1) | CODE |
| CRITICAL | ui-tui/src/__tests__/subagentsHub.test.tsx | 1338 | const call = h.gw.request.mock.calls.find(c => c[0] === 'subagents.update') | CODE |
| CRITICAL | ui-tui/src/__tests__/subagentsHub.test.tsx | 1356 | const call = h.gw.request.mock.calls.find(c => c[0] === 'subagents.update') | CODE |
| CRITICAL | ui-tui/src/__tests__/subagentsHub.test.tsx | 1394 | const call = h.gw.request.mock.calls.find(c => c[0] === 'subagents.update') | CODE |
| CRITICAL⚡ | ui-tui/src/__tests__/subagentsHub.test.tsx | 1542 | const callsSoFar = h.gw.request.mock.calls.filter(c => c[0] === 'subagents.add').length | CODE |
| CRITICAL⚡ | ui-tui/src/__tests__/subagentsHub.test.tsx | 1546 | if (h.gw.request.mock.calls.filter(c => c[0] === 'subagents.add').length > callsSoFar) { | CODE |
| CRITICAL⚡ | ui-tui/src/__tests__/subagentsHub.test.tsx | 1552 | expect(h.gw.request.mock.calls.filter(c => c[0] === 'subagents.add').length).toBeGreaterThan(callsSoFar) | CODE |
| CRITICAL | ui-tui/src/__tests__/subagentsHub.test.tsx | 1975 | expect(h.gw.request.mock.calls.filter(c => c[0] === 'subagents.test_cancel')).toHaveLength(2) | CODE |
| CRITICAL | ui-tui/src/__tests__/subagentsHub.test.tsx | 2015 | expect(h.gw.request.mock.calls.filter(c => c[0] === 'subagents.toggle')).toHaveLength(1) | CODE |
| CRITICAL | ui-tui/src/__tests__/subagentsHub.test.tsx | 2041 | expect(h.gw.request.mock.calls.filter(c => c[0] === 'subagents.toggle')).toHaveLength(0) | CODE |
| CRITICAL | docs/plans/2026-08-13-tui-subagent-direct-chat.md | 551 | from raven.utils.helpers import safe_path_segment | CODE |
| CRITICAL | docs/plans/2026-08-13-tui-subagent-direct-chat.md | 1061 | from raven.utils.helpers import safe_path_segment | CODE |
| CRITICAL | docs/plans/2026-08-05-session-workspace.md | 267 | from raven.utils.helpers import safe_filename | CODE |
| CRITICAL⚡ | raven/channels/adapters/feishu/channel.py | 197 | response = self._client.im.v1.message_reaction.create(request) | CODE |
| CRITICAL | raven/channels/adapters/feishu/channel.py | 268 | response = self._client.im.v1.message.create(request) | CODE |
| CRITICAL | raven/channels/adapters/feishu/channel.py | 295 | response = self._client.im.v1.image.create(request) | CODE |
| CRITICAL | raven/channels/adapters/feishu/channel.py | 320 | response = self._client.im.v1.file.create(request) | CODE |
| CRITICAL | raven/channels/adapters/feishu/channel.py | 339 | response = self._client.im.v1.message_resource.get(request) | CODE |
| CRITICAL | raven/channels/adapters/feishu/channel.py | 419 | response = self._client.speech_to_text.v1.speech.file_recognize(request) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | CONTEXT.md | 287 | `create_playbook` unregister themselves. The `## Delegation` block and the DAG orchestration | CODE |
| MEDIUM | ui-tui/src/app/chatStream.ts | 5 | // chatStream — typed chat path scaffold. | COMMENT |
| MEDIUM | ui-tui/src/app/useMainApp.ts | 507 | // Typed chat path scaffold. The | COMMENT |
| MEDIUM | docs-site/docs/architecture.zh.md | 46 | ## 协议入口与编排 { #protocol-faces-and-orchestration } | COMMENT |
| MEDIUM | docs-site/docs/building-agent.zh.md | 6 | ## 先生成骨架再定制 { #scaffold-before-customizing } | COMMENT |
| MEDIUM | docs-site/docs/architecture.md | 53 | ## Protocol faces and orchestration | COMMENT |
| MEDIUM | docs-site/docs/orchestration.md | 1 | # DAG orchestration | COMMENT |
| MEDIUM | …/design-typefaces-and-lettering/references/patterns.md | 139 | ## 9. Claim 与 few-shot 模式 | COMMENT |
| MEDIUM | plugins-dist/ppt-engine/raven_ppt/plugin/ledger.py | 57 | # carries a tool's pictures, and empty-response recovery scaffolding -- and marks | COMMENT |
| MEDIUM⚡ | evolver/applier/path_guard.py | 54 | # The batch scorer orchestrates trials and records runner-level infra; | COMMENT |
| MEDIUM | evolver/orchestrator/DESIGN.md | 84 | ## 2. Design idea: inversion of control | COMMENT |
| MEDIUM | tests/test_agent_loop_tool_search.py | 127 | # file/interaction/orchestration primitives (read_file / message / ask_user / | COMMENT |
| MEDIUM⚡ | tests/test_segments.py | 531 | assert "### Skill: subagent-dag-orchestration" in seg.text | CODE |
| MEDIUM | tests/test_agents_research_flow_ask_user.py | 747 | # And therefore the scaffolding is Chinese, which is what the run got wrong. | COMMENT |
| MEDIUM | tests/test_agents_research_flow_ask_user_assembly.py | 593 | # The turn frame holds the classifier, and only ``agentic`` has one. | COMMENT |
| MEDIUM | tests/test_rpc_config.py | 208 | # including the context window, which the loop re-resolves at adoption | COMMENT |
| MEDIUM⚡ | tests/test_tool_search.py | 217 | # File/search/exec primitives plus the interaction/orchestration primitives | COMMENT |
| MEDIUM⚡ | tests/test_channels_email.py | 287 | # ── channel: orchestration ───────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/test_rpc_console.py | 98 | # tool-iteration cap, the context window override and the auto-archive | COMMENT |
| MEDIUM⚡ | tests/test_subagent_third_party.py | 1039 | # would only be withholding graph orchestration from every default install. | COMMENT |
| MEDIUM⚡ | tests/test_channels_mochat.py | 651 | # ── subscribe orchestration (transport.request mocked) ──────────────── | COMMENT |
| MEDIUM⚡ | tests/test_channels_discord.py | 198 | # ── send orchestration (network mocked) ─────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_channels_dingtalk.py | 678 | # channel outbound orchestration | COMMENT |
| MEDIUM⚡ | tests/test_ppt_engine_ledger.py | 66 | # literal where the scaffolding is built and where the trunk strips it. | COMMENT |
| MEDIUM | tests/test_agent_loop_empty_recovery.py | 244 | # synthetic scaffolding must not be persisted into session history | COMMENT |
| MEDIUM | tests/test_agent_loop_empty_recovery.py | 507 | # scaffolding, so it must not reach persisted history either | COMMENT |
| MEDIUM | …call/plugins/oncall-flow/oncall_flow/docker_backend.py | 146 | # ---- measurement surface (evals read these; orchestration never does) ---- | COMMENT |
| MEDIUM | …all/plugins/oncall-flow/oncall_flow/process_backend.py | 1018 | # ---- measurement surface (evals read these; orchestration never does) ---- | COMMENT |
| MEDIUM | …research/plugins/research-flow/research_flow/plugin.py | 93 | # there and the whole chain of thought was being appended to the tool result and | COMMENT |
| MEDIUM | …gins/research-flow/research_flow/gates/report_shape.py | 355 | # synthetic scaffolding, so it never reaches the session, and benchmarks | COMMENT |
| MEDIUM | …gins/research-flow/research_flow/gates/report_shape.py | 369 | # prompt, so a bounce would plant the very few-shot it just paid a | COMMENT |
| MEDIUM⚡ | …/plugins/research-flow/research_flow/gates/finalize.py | 316 | # itself cut mid-think passes its whole chain of thought through as the | COMMENT |
| MEDIUM | …/plugins/research-flow/research_flow/gates/ask_user.py | 84 | # The scaffolding sentences. Everything else in the two blocks is the model's | COMMENT |
| MEDIUM | …earch/plugins/research-flow/research_flow/tools/web.py | 580 | # and links only" twenty lines away in the same context window. A tool that | COMMENT |
| MEDIUM | …research-flow/research_flow/support/brief_checklist.py | 160 | #: of this rule anchored on the first character and quoted ``xRAG`` back as ``RAG``, which | COMMENT |
| MEDIUM | docs/Proactivity-Implementation.md | 527 | ## 11. Heartbeat and event-driven wake | COMMENT |
| MEDIUM | …cs/2026-09-20-web-settings-model-section-acceptance.md | 188 | | T4.7 <- A28 | yes | Close settings. Click the composer's `#modelChip`. Select openrouter. Type `gemini-2.5-flash-lite` | CODE |
| MEDIUM⚡ | raven/config/raven.py | 749 | # (embedding model, BM25 parameters, RRF k, etc.) live in the | COMMENT |
| MEDIUM⚡ | raven/config/raven.py | 750 | # scaffold dataclasses inside ``skill_forge/`` and stay at their | COMMENT |
| MEDIUM | raven/config/loader.py | 49 | # The context window every pre-0.1.11 bootstrap wrote to disk verbatim: back | COMMENT |
| MEDIUM | raven/config/schema.py | 731 | # Minimum spacing between event-driven wake fires. Caps the Phase-1 | COMMENT |
| MEDIUM | raven/contracts/assembled.py | 38 | context_length: int # Model's context window | CODE |
| MEDIUM | raven/contracts/loop_hooks.py | 138 | #: The context window of the turn's active model binding, resolved | COMMENT |
| MEDIUM | raven/providers/auth.py | 319 | #: would build the scaffolding this module exists to avoid. | COMMENT |
| MEDIUM | raven/providers/registry_data.py | 277 | #: stored: a model that answers in vectors is an embedding model whether or not | COMMENT |
| MEDIUM | raven/providers/capabilities.py | 330 | # (AtlasCloud among them): every completion emits ~800 chain-of-thought | COMMENT |
| MEDIUM | raven/providers/common_models.py | 71 | # context window. Candidates now agree with what pricing and context-window | COMMENT |
| MEDIUM | raven/providers/rates.py | 221 | # LiteLLM answers a huggingface id's context window by fetching the repo's | COMMENT |
| MEDIUM | raven/agent/tools/tool_search.py | 51 | # ``ask_user`` and ``spawn`` are interaction/orchestration primitives the agent | COMMENT |
| MEDIUM | raven/agent/window/images.py | 24 | # that one marks empty-response recovery scaffolding, and collapsing the two | COMMENT |
| MEDIUM | raven/agent/subagent/dag_tool.py | 388 | # The shipped orchestration guide. Named here so the tool description can send | COMMENT |
| MEDIUM | raven/agent/loop/turn_path.py | 195 | # The scaffolding a turn raises and does not keep: empty-response recovery marks | COMMENT |
| MEDIUM | raven/agent/loop/turn_path.py | 1709 | # Try to recover before giving up. Synthetic scaffolding is | COMMENT |
| MEDIUM | raven/agent/loop/turn_path.py | 1948 | # Drop transient empty-recovery scaffolding before persistence / | COMMENT |
| MEDIUM | raven/agent/loop/turn_path.py | 2501 | # The scaffolding goes before the reading. This question used to be asked | COMMENT |
| MEDIUM | raven/agent/loop/turn_path.py | 2881 | continue # #1a synthetic recovery nudge — never persist scaffolding | CODE |
| MEDIUM | raven/agent/loop/wiring.py | 1453 | # Sub-agent DAG orchestration. Registered unconditionally now that | COMMENT |
| MEDIUM | raven/cli/agents_commands.py | 55 | # scaffold replaces each with the same form derived from the requested name. | COMMENT |
| MEDIUM | raven/cli/agents_commands.py | 67 | # breaks a test rather than producing a silently wrong scaffold. | COMMENT |
| MEDIUM | raven/cli/agents_commands.py | 170 | # exact (the merge keys are exact), so 'RAVEN' would scaffold an enabled | COMMENT |
| 8 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | docs/plans/2026-08-17-subagent-everos-memory-record.md | 459 | Every memory everos holds for this identity under ``session_id``. Raises whatever httpx raises: the caller decides | STRING |
| HIGH | raven/agent/subagent_memory.py | 255 | Every memory the backend holds under ``session_id``, both tracks. Raises whatever the backend raises: the caller de | STRING |
| HIGH | raven/agent/subagent/dag_render.py | 37 | Render ``node.prompt_template`` into the node's prompt text. The template is rebuilt in a single left-to-right pass | STRING |
| HIGH | raven/agent/subagent/dag_render.py | 169 | Resolve one placeholder to its replacement string. Everything that does not name a graph node is the shared layer's | STRING |
| HIGH | raven/agent/subagent/dag_render.py | 217 | Locate one node's output file. A node id names one node per conversation (``validate_and_order`` enforces that) | STRING |
| HIGH | raven/agent/subagent/prompt_placeholders.py | 42 | Parse all ``{{ ... }}`` references from a prompt template. Args: template (`str`): The prompt t | STRING |
| HIGH | raven/agent/subagent/prompt_placeholders.py | 64 | Yield ``(start, end, placeholder)`` per match, in order. The spans let a renderer rebuild the string in a single le | STRING |
| HIGH | raven/agent/subagent/prompt_placeholders.py | 92 | Parse the inside of one ``{{ ... }}``, or ``None`` when it is not one. A body that matches no known shape is not a | STRING |
| HIGH | raven/agent/subagent/dag_capabilities.py | 32 | Check the graph against what its sub-agents can actually do. Args: spec (`SubAgentDagSpec`): Th | STRING |
| HIGH | raven/agent/subagent/spawn_tool.py | 365 | ``template`` with its file and input references resolved, as dispatched. Gates before it renders: a ``_path`` f | STRING |
| HIGH | raven/agent/subagent/dag_graph.py | 154 | Parse a raw graph dict into a validated :class:`SubAgentDagSpec`. Args: data (`dict`): The ``{" | STRING |
| HIGH | raven/agent/subagent/dag_graph.py | 297 | Validate graph structure and return a topological node order. Checks: unique ids; every ``depends_on`` resolves, to | STRING |
| HIGH | raven/agent/subagent/dag_graph.py | 611 | Kahn topological sort; raise on a cycle. Args: by_id (`dict[str, DagNodeSpec]`): Nodes keyed by | STRING |
| HIGH | raven/agent/subagent/prompt_render.py | 53 | Resolve one placeholder, or ``None`` when it is not this layer's to resolve. ``None`` is the composition seam, and | STRING |
| HIGH | raven/agent/subagent/prompt_render.py | 147 | Render a template's file, literal and finished-node references. The template is rebuilt in a single left-to-right p | STRING |
| HIGH | raven/agent/subagent/prompt_render.py | 321 | Resolve a checked reference path against the root its prefix names. Args: backend (`BackendBase`): | STRING |
| HIGH | raven/agent/subagent/prompt_render.py | 354 | Return ``resolved``, refusing a reference to a file that is not there. Both forms need this, for different reasons, | STRING |
| HIGH | raven/agent/subagent/prompt_render.py | 393 | Read a backend file as UTF-8 text, resolving against its root. Args: backend (`BackendBase`): B | STRING |
| HIGH | raven/knowledge/_parser.py | 76 | Parse a file into a list of :class:`Section` objects. The ``file`` argument is a union covering the three call | STRING |
| HIGH | raven/knowledge/_parser.py | 180 | Read the file as text and return a single :class:`Section`. Args: file (`bytes | str`): | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | experimental/simulation/agency.py | 358 | CODE | |
| LOW | experimental/curator/workflow.py | 57 | CODE | |
| LOW | plugins-dist/design-engine/raven_design/tools/render.py | 170 | CODE | |
| LOW | plugins-dist/design-engine/raven_design/tools/render.py | 246 | CODE | |
| LOW | …s-dist/design-engine/raven_design/rendering/service.py | 27 | CODE | |
| LOW | …s-dist/design-engine/raven_design/rendering/service.py | 148 | CODE | |
| LOW | plugins-dist/ppt-engine/raven_ppt/tools/assembly.py | 64 | CODE | |
| LOW | …dist/ppt-engine/raven_ppt/services/template/compose.py | 1347 | CODE | |
| LOW | evolver/orchestrator/loop.py | 171 | CODE | |
| LOW | evolver/orchestrator/production.py | 442 | CODE | |
| LOW | evolver/orchestrator/production.py | 658 | CODE | |
| LOW | evolver/orchestrator/providers/claude_cli.py | 64 | CODE | |
| LOW | tests/test_subagent_dag_runner.py | 5475 | CODE | |
| LOW | tests/test_routine_store.py | 16 | CODE | |
| LOW | tests/_ppt_engine_fixtures.py | 72 | CODE | |
| LOW | tests/test_trajectory_completeness.py | 46 | CODE | |
| LOW | tests/test_cli_sandbox_commands.py | 20 | CODE | |
| LOW | tests/test_subagent_manager.py | 4509 | CODE | |
| LOW | tests/test_subagent_direct_chat.py | 31 | CODE | |
| LOW | tests/test_subagent_routing_backend.py | 83 | CODE | |
| LOW | tests/test_subagent_routing_backend.py | 189 | CODE | |
| LOW | tests/test_routine_aggregator.py | 17 | CODE | |
| LOW | …l/plugins/oncall-flow/oncall_flow/tools/tune_launch.py | 76 | CODE | |
| LOW | …en-oncall/plugins/oncall-flow/oncall_flow/tools/ops.py | 1777 | CODE | |
| LOW | …l/plugins/oncall-flow/oncall_flow/tools/ops_declare.py | 754 | CODE | |
| LOW | …lugins/oncall-flow/oncall_flow/tools/ops_escalation.py | 517 | CODE | |
| LOW | …esearch/plugins/research-flow/research_flow/prompts.py | 322 | CODE | |
| LOW | …/plugins/research-flow/research_flow/gates/finalize.py | 101 | CODE | |
| LOW | …/plugins/research-flow/research_flow/gates/ask_user.py | 619 | CODE | |
| LOW | …ugins/research-flow/research_flow/gates/sufficiency.py | 102 | CODE | |
| LOW | …ch/plugins/research-flow/research_flow/gates/verify.py | 198 | CODE | |
| LOW | …earch/plugins/research-flow/research_flow/tools/web.py | 593 | CODE | |
| LOW | raven/tracing/trace.py | 229 | CODE | |
| LOW | raven/tracing/spans.py | 66 | CODE | |
| LOW | raven/acp_client/acp_agent.py | 1000 | CODE | |
| LOW | raven/acp_client/acp_agent.py | 1478 | CODE | |
| LOW | raven/core/runtime.py | 136 | CODE | |
| LOW | raven/a2a/asking.py | 28 | CODE | |
| LOW | raven/contracts/subagent_backend.py | 68 | CODE | |
| LOW | raven/contracts/asking.py | 80 | CODE | |
| LOW | raven/contracts/tool.py | 236 | CODE | |
| LOW | raven/providers/litellm_provider.py | 192 | CODE | |
| LOW | raven/context_engine/factory.py | 70 | CODE | |
| LOW | raven/context_engine/segments/skills.py | 60 | CODE | |
| LOW | raven/agent/tools/media_gen.py | 561 | CODE | |
| LOW | raven/agent/tools/shell.py | 66 | CODE | |
| LOW | raven/agent/tools/connection_add.py | 93 | CODE | |
| LOW | raven/agent/subagent/dag_runner.py | 252 | CODE | |
| LOW | raven/agent/subagent/dag_runner.py | 1336 | CODE | |
| LOW | raven/agent/subagent/dag_runner.py | 1546 | CODE | |
| LOW | raven/agent/subagent/dag_tool.py | 536 | CODE | |
| LOW | raven/agent/subagent/manager.py | 243 | CODE | |
| LOW | raven/agent/subagent/manager.py | 902 | CODE | |
| LOW | raven/agent/subagent/backends/cli_agent.py | 205 | CODE | |
| LOW | raven/agent/subagent/backends/cli_agent.py | 517 | CODE | |
| LOW | raven/agent/subagent/backends/raven_loop.py | 207 | CODE | |
| LOW | raven/agent/subagent/backends/raven_loop.py | 273 | CODE | |
| LOW | raven/agent/subagent/backends/raven_loop.py | 336 | CODE | |
| LOW | raven/agent/subagent/backends/openai_api.py | 182 | CODE | |
| LOW | raven/agent/loop/turn_path.py | 641 | CODE | |
| 29 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | benchmarks/README.md | 82 | "apiKey": "YOUR_API_KEY", | CODE |
| HIGH | benchmarks/clawbench/README.md | 52 | "apiKey": "YOUR_API_KEY", | CODE |
| HIGH | benchmarks/proactivity_eval/runners.config.yaml | 33 | vllm_api_key: <your-api-key> | CODE |
| HIGH | benchmarks/proactivity_eval/data/longrun/README.md | 305 | vllm_api_key: <your-api-key> | CODE |
| HIGH | benchmarks/proactivity_eval/data/longrun/README_zh.md | 298 | vllm_api_key: <your-api-key> | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | plugins-dist/everos-memory/raven_everos/config.py | 355 | # Step 1: migrate legacy config.toml → everos.toml (preserves content). | COMMENT |
| LOW⚡ | evolver/tree/store.py | 295 | # Step 0: load parent (raises FileNotFoundError if missing) | COMMENT |
| LOW⚡ | evolver/tree/store.py | 303 | # Step 1: construct the child commit (does NOT touch working tree) | COMMENT |
| LOW⚡ | evolver/tree/store.py | 313 | # Step 2: assemble the HarnessNode metadata | COMMENT |
| LOW | evolver/tree/store.py | 333 | # Step 3: persist JSON (atomic via HarnessNode.save → temp+rename) | COMMENT |
| LOW⚡ | evolver/tree/git_ops.py | 242 | # Step 1: load parent tree into temp index | COMMENT |
| LOW⚡ | evolver/tree/git_ops.py | 244 | # Step 2: apply the diff to the temp index (no working-tree touch) | COMMENT |
| LOW⚡ | evolver/tree/git_ops.py | 254 | # Step 3: write a tree object from the temp index | COMMENT |
| LOW⚡ | evolver/tree/git_ops.py | 257 | # Step 4: commit-tree to create the actual commit. Use environment | COMMENT |
| LOW⚡ | raven/agent/personalizer/personalizer.py | 28 | # Step 1: request triage — decide whether clarification is needed | COMMENT |
| LOW | raven/agent/personalizer/personalizer.py | 93 | # Step 4: post-action learning — passively extract signals from a completed interaction | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | plugins-dist/everos-memory/raven_everos/config.py | 355 | # Step 1: migrate legacy config.toml → everos.toml (preserves content). | COMMENT |
| LOW⚡ | evolver/tree/store.py | 295 | # Step 0: load parent (raises FileNotFoundError if missing) | COMMENT |
| LOW⚡ | evolver/tree/store.py | 303 | # Step 1: construct the child commit (does NOT touch working tree) | COMMENT |
| LOW⚡ | evolver/tree/store.py | 313 | # Step 2: assemble the HarnessNode metadata | COMMENT |
| LOW | evolver/tree/store.py | 333 | # Step 3: persist JSON (atomic via HarnessNode.save → temp+rename) | COMMENT |
| LOW⚡ | evolver/tree/git_ops.py | 242 | # Step 1: load parent tree into temp index | COMMENT |
| LOW⚡ | evolver/tree/git_ops.py | 244 | # Step 2: apply the diff to the temp index (no working-tree touch) | COMMENT |
| LOW⚡ | evolver/tree/git_ops.py | 254 | # Step 3: write a tree object from the temp index | COMMENT |
| LOW⚡ | evolver/tree/git_ops.py | 257 | # Step 4: commit-tree to create the actual commit. Use environment | COMMENT |
| LOW⚡ | raven/agent/personalizer/personalizer.py | 28 | # Step 1: request triage — decide whether clarification is needed | COMMENT |
| LOW | raven/agent/personalizer/personalizer.py | 93 | # Step 4: post-action learning — passively extract signals from a completed interaction | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/test_sandbox_unit.py | 1560 | CODE | |
| MEDIUM | tests/test_sandbox_unit.py | 1599 | CODE | |
| MEDIUM | tests/test_sandbox_unit.py | 1630 | CODE | |
| MEDIUM | tests/test_sandbox_unit.py | 1634 | CODE | |
| MEDIUM | tests/test_agent_loop_stream.py | 506 | CODE | |
| MEDIUM | tests/test_agent_loop_stream.py | 532 | CODE | |
| MEDIUM | tests/test_agent_loop_stream.py | 559 | CODE | |
| MEDIUM | tests/test_agent_loop_stream.py | 592 | CODE | |
| MEDIUM | tests/test_ppt_engine_inspect_tool.py | 278 | CODE | |
| MEDIUM | tests/test_rpc_message_tool_route.py | 147 | CODE | |
| MEDIUM | tests/test_subagent_direct_chat.py | 212 | CODE | |
| MEDIUM | tests/test_subagent_direct_chat.py | 679 | CODE | |
| MEDIUM | tests/test_agent_loop_run_emit.py | 862 | CODE | |
| MEDIUM | tests/test_agent_loop_run_emit.py | 1125 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | ui-web/src/features/subagents/SubagentsPage.test.tsx | 1265 | expect(box.getAttribute('placeholder')).toBe('gui.ws.instance_say_hint {"name":"research_a2a"}') | CODE |
| LOW | ui-web/src/features/subagents/SubagentsPage.test.tsx | 1276 | expect(box.getAttribute('placeholder')).toBe('gui.ws.instance_say_hint {"name":"用一句话解释光合作用"}') | CODE |
| LOW | ui-web/src/features/subagents/SubagentsPage.test.tsx | 1290 | expect(box.getAttribute('placeholder')).toBe('gui.ws.instance_say_hint {"name":"用一句话解释光合作用"}') | CODE |
| LOW | ui-tui/src/__tests__/copyNotice.test.tsx | 32 | text: `transcript line ${i} lorem ipsum` | CODE |
| LOW | ui-tui/src/__tests__/statusBarOverlay.test.tsx | 39 | text: `transcript line ${i} lorem ipsum` | CODE |
| LOW | …raven_design/skills/create-marketing-graphics/SKILL.md | 334 | - "Lorem ipsum"、"your logo here"、"image not included" 一类模板残留,名称写成"某某品牌"或"贵司",画面上有 | CODE |
| LOW | plugins-dist/ppt-engine/scripts/build_tabler_icons.py | 653 | "placeholder", | CODE |
| LOW | plugins-dist/ppt-engine/raven_ppt/services/citations.py | 251 | "placeholder", | CODE |
| LOW | …ine/raven_ppt/services/assets/data/tabler_outline.json | 1 | {"version":1,"grid":24,"commands":["M","L","C","Z"],"source":"https://github.com/tabler/tabler-icons","upstream":{"packa | CODE |
| LOW | tests/test_cli_playbook_commands.py | 130 | name="placeholder", | CODE |
| LOW⚡ | tests/test_subagent_probe.py | 189 | assert "placeholder" in res.detail | CODE |
| LOW | tests/test_config_product_render.py | 484 | "custom": {"apiKey": "placeholder", "models": ["openai/gpt-5.6-sol"]}, | CODE |
| LOW | tests/test_harness_curator_content.py | 14 | SKILLS = {"price-list/SKILL.md": "placeholder", "scripts/SKILL.md": "scripts"} | CODE |
| LOW | tests/test_ppt_engine_review_tool.py | 1143 | assert "placeholder" in refused["next_step"] and refused["open_findings"]["count"] == 1 | CODE |
| LOW | tests/test_ppt_engine_review_tool.py | 1255 | assert "fills that panel" in refused["next_step"] and "placeholder" not in refused["next_step"] | CODE |
| LOW⚡ | tests/test_evolver_launch.py | 287 | with pytest.raises(ValueError, match="placeholder"): | CODE |
| LOW | tests/test_cli_agents_commands.py | 326 | monkeypatch.setenv("DEMO_AGENT_API_KEY", "dummy-key-for-the-smoke") | CODE |
| LOW | tests/test_cli_agents_commands.py | 1000 | monkeypatch.setenv("DEMO_AGENT_API_KEY", "dummy-key-for-render") | CODE |
| LOW | tests/test_playbook_tool.py | 192 | return GeneratedPlaybook(spec=_spec(name="placeholder"), notes=["Assumption: weekly cadence"]) | CODE |
| LOW⚡ | docs/plans/2026-08-06-subagents-probe-and-test.md | 118 | assert "placeholder" in res.detail | CODE |
| LOW | raven/cli/tracing_viewer/ui/app.js | 265 | node.setAttribute('placeholder', t(node.getAttribute('data-i18n-ph'))); | CODE |
| LOW⚡ | raven/browser/driver.py | 172 | const ph = el.getAttribute('placeholder'); | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | plugins-dist/everos-memory/raven_everos/onboard.py | 1189 | # Creating a root is the other question, and here a recorded address is the | COMMENT |
| MEDIUM | tests/test_sentinel_persistence.py | 328 | # Create a feishu-bound job via svc_gw (doesn't matter which adds; file is shared). | COMMENT |
| MEDIUM | tests/test_agents_oncall_flow_submit_tool.py | 624 | # Creating a campaign out of a round's arguments is what ops_declare is for. | COMMENT |
| MEDIUM | raven/spine/scheduler.py | 339 | # Create the task synchronously (no await before this) so the turn is | COMMENT |
| MEDIUM | raven/rpc/methods/clipboard.py | 218 | # Creating the directory is inside the try, not above it: it is the same | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | benchmarks/pinchbench/direct/run.sh | 4 | # Usage: | COMMENT |
| LOW | benchmarks/pinchbench/bot_runner/run.sh | 7 | # Usage: | COMMENT |
| LOW | benchmarks/clawbench/run.sh | 4 | # Usage: | COMMENT |
| LOW | demos/skill_retrieval/run_agent_demo.sh | 5 | # Usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | tests/test_search_tools.py | 22 | (tmp_path / "src" / "util.py").write_text("def helper():\n return 42\n") | CODE |
| LOW | agents/raven-code/run.py | 718 | def run_task(args: argparse.Namespace) -> int: | CODE |
| LOW | benchmarks/pinchbench/direct/raven_executor.py | 374 | async def execute_task( | CODE |
| LOW | benchmarks/pinchbench/bot_runner/bot_executor.py | 149 | async def execute_task( | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_shell_comments.py | 57 | "# Check if there's a raven-code specific config somewhere\n" | CODE |