"Vibe-Trading: Your Personal Trading Agent"
This report presents the forensic synthetic code analysis of HKUDS/Vibe-Trading, a Python project with 31,968 GitHub stars. SynthScan v2.0 examined 523,215 lines of code across 2301 source files, recording 18909 pattern matches distributed across 22 syntactic categories. The overall adjusted score of 56.4 places this repository in the Strong AI signal band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 18909 distinct pattern matches across 22 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | tools/test_ci_env_var_gate.py | 95 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tools/test_ci_env_var_gate.py | 97 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tools/test_ci_env_var_gate.py | 173 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tools/test_ci_env_var_gate.py | 175 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tools/test_ci_env_var_gate.py | 199 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tools/test_ci_env_var_gate.py | 201 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tools/test_ci_env_var_gate.py | 237 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tools/test_ci_env_var_gate.py | 239 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/test_ci_env_var_gate.py | 27 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/test_ci_env_var_gate.py | 29 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/test_ci_env_var_gate.py | 49 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/test_ci_env_var_gate.py | 51 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/test_ci_env_var_gate.py | 220 | # --------------------------------------------------------------------------- | STRING |
| MEDIUM | tools/test_ci_env_var_gate.py | 222 | # --------------------------------------------------------------------------- | STRING |
| MEDIUM | tools/ci_env_var_gate.py | 37 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/ci_env_var_gate.py | 39 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/ci_env_var_gate.py | 62 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/ci_env_var_gate.py | 64 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/ci_env_var_gate.py | 194 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/ci_env_var_gate.py | 196 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/ci_env_var_gate.py | 231 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/ci_env_var_gate.py | 233 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | frontend/src/tests/setup.ts | 7 | // ── Global mocks for jsdom ─────────────────────────────────── | COMMENT |
| MEDIUM | frontend/src/hooks/__tests__/useSSE.test.ts | 4 | // ── Mock EventSource ────────────────────────────────────── | COMMENT |
| MEDIUM | frontend/src/hooks/__tests__/useSSE.test.ts | 59 | // ── Tests ───────────────────────────────────────────────── | COMMENT |
| MEDIUM | frontend/src/i18n/__tests__/i18n.test.ts | 4 | // ── helpers ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | frontend/src/i18n/__tests__/i18n.test.ts | 36 | // ── locale parity ────────────────────────────────────────────── | COMMENT |
| MEDIUM | frontend/src/i18n/__tests__/i18n.test.ts | 86 | // ── interpolation variable parity ────────────────────────────── | COMMENT |
| MEDIUM | frontend/src/i18n/__tests__/i18n.test.ts | 128 | // ── utility functions ────────────────────────────────────────── | COMMENT |
| MEDIUM | wiki/scripts/build_alpha_library.py | 56 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | wiki/scripts/build_alpha_library.py | 58 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | wiki/scripts/build_alpha_library.py | 93 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | wiki/scripts/build_alpha_library.py | 95 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | wiki/scripts/build_alpha_library.py | 138 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | wiki/scripts/build_alpha_library.py | 140 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | wiki/scripts/build_alpha_library.py | 279 | # --------------------------------------------------------------------------- | STRING |
| MEDIUM | wiki/scripts/build_alpha_library.py | 281 | # --------------------------------------------------------------------------- | STRING |
| MEDIUM | wiki/scripts/build_alpha_library.py | 347 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | wiki/scripts/build_alpha_library.py | 349 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | wiki/scripts/build_alpha_library.py | 382 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | wiki/scripts/build_alpha_library.py | 384 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | agent/api_server.py | 31 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | agent/api_server.py | 33 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | agent/api_server.py | 324 | # ============================================================================ | COMMENT |
| MEDIUM | agent/api_server.py | 326 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | agent/mcp_server.py | 90 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | agent/mcp_server.py | 92 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | agent/mcp_server.py | 1171 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | agent/mcp_server.py | 1173 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | agent/mcp_server.py | 1698 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | agent/mcp_server.py | 1700 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | agent/mcp_server.py | 2537 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | agent/mcp_server.py | 2539 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | agent/mcp_server.py | 134 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | agent/mcp_server.py | 144 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | agent/mcp_server.py | 509 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | agent/mcp_server.py | 511 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | agent/mcp_server.py | 549 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | agent/mcp_server.py | 551 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | agent/mcp_server.py | 765 | # --------------------------------------------------------------------------- | COMMENT |
| 2944 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | tools/test_ci_env_var_gate.py | 88 | def test_subscript_read_in_expression(self) -> None: | CODE |
| LOW⚡ | tools/test_ci_env_var_gate.py | 181 | def test_pop_outside_settings_routes(self) -> None: | CODE |
| LOW⚡ | tools/test_ci_env_var_gate.py | 190 | def test_pop_in_settings_routes_no_warning(self) -> None: | CODE |
| LOW⚡ | tools/test_ci_env_var_gate.py | 245 | def test_noqa_suppresses_getenv(self) -> None: | CODE |
| LOW⚡ | tools/test_ci_env_var_gate.py | 250 | def test_noqa_suppresses_environ_get(self) -> None: | CODE |
| LOW⚡ | tools/test_ci_env_var_gate.py | 255 | def test_noqa_suppresses_subscript_read(self) -> None: | CODE |
| LOW⚡ | tools/test_ci_env_var_gate.py | 260 | def test_noqa_does_not_affect_other_lines(self) -> None: | CODE |
| LOW⚡ | tools/test_ci_env_var_gate.py | 266 | def test_partial_noqa_not_matched(self) -> None: | CODE |
| LOW | tools/test_ci_env_var_gate.py | 62 | def test_os_getenv_with_default(self) -> None: | CODE |
| LOW | tools/test_ci_env_var_gate.py | 75 | def test_environ_get_with_default(self) -> None: | CODE |
| LOW | tools/test_ci_env_var_gate.py | 135 | def test_subscript_aug_assign(self) -> None: | CODE |
| LOW | tools/test_ci_env_var_gate.py | 150 | def test_config_visitor_clean(self) -> None: | CODE |
| LOW | …/src/components/chat/ScheduledResearchProposalCard.tsx | 19 | export const ScheduledResearchProposalCard = memo(function ScheduledResearchProposalCard({ | CODE |
| LOW | frontend/src/components/chat/RunnerStatus.tsx | 80 | function fallbackAuthorizeInstruction(): string { | CODE |
| LOW | frontend/src/components/chat/RunnerStatus.tsx | 333 | export function isVisibleRuntimeConnector(broker: LiveBrokerStatus): boolean { | CODE |
| LOW | …d/src/components/charts/AttributionCumulativeChart.tsx | 14 | export function AttributionCumulativeChart({ data, height = 300 }: Props) { | CODE |
| LOW | …nd/src/components/charts/StrategyResearchDashboard.tsx | 68 | export function getStrategyReportIdentity(run: RunData): ReportIdentity { | CODE |
| LOW | …nd/src/components/charts/StrategyResearchDashboard.tsx | 121 | export function StrategyResearchDashboard({ run }: { run: RunData }) { | CODE |
| LOW | …nd/src/components/charts/AttributionWaterfallChart.tsx | 41 | export function AttributionWaterfallChart({ brinson, height = 300 }: Props) { | CODE |
| LOW | frontend/src/lib/attachments.ts | 11 | export function prependUploadedAttachments( | CODE |
| LOW | frontend/src/lib/attachments.ts | 24 | export function extractUploadedAttachments(content: string): { | CODE |
| LOW | frontend/src/lib/swarmStatus.ts | 109 | export function buildSwarmStatusFromStarted(data: AnyRecord): SwarmRunStatus | null { | CODE |
| LOW | frontend/src/lib/swarmStatus.ts | 301 | export function buildSwarmStatusFromToolResultPreview(preview: string): SwarmRunStatus | null { | CODE |
| LOW | frontend/src/pages/Runtime.tsx | 410 | function formatEnvironmentIdentity(identity: string | null | undefined, t: TFunction): string { | CODE |
| LOW | frontend/src/pages/RunDetail.tsx | 297 | async function handleLoadAllChartSymbols() { | CODE |
| LOW | frontend/src/pages/RunDetail.tsx | 322 | function handleCancelLoadAllCharts() { | CODE |
| LOW | frontend/src/pages/agentToolTimeline.ts | 29 | export function buildToolTimelineMessages( | CODE |
| LOW | wiki/scripts/check_social_cards.py | 44 | def require_alpha_library_card() -> None: | CODE |
| LOW | desktop/electron/src/backend-manager.ts | 476 | function isCompleteShutdownEvidence(evidence: BackendShutdownEvidence): boolean { | CODE |
| LOW | desktop/electron/src/main.ts | 194 | function writeParentDeathSmokeRecord(url: string): void { | CODE |
| LOW | desktop/electron/src/update-verification.ts | 51 | export async function verifyWindowsUpdateCandidate( | CODE |
| LOW | desktop/electron/src/update-verification.ts | 151 | export async function assertVerifiedUpdateArtifactUnchanged( | CODE |
| LOW | desktop/electron/src/update-verification.ts | 168 | export function inspectAuthenticodeSignature(artifactPath: string): AuthenticodeInspection { | CODE |
| LOW | desktop/electron/src/update-verification.ts | 279 | function resolveSignaturePowerShell(): string { | CODE |
| LOW | agent/api_server.py | 145 | async def _stop_scheduled_research_on_shutdown() -> None: | CODE |
| LOW⚡ | agent/mcp_server.py | 1176 | def _strategy_discovery_execute(tool_name: str, params: dict[str, Any]) -> str: | CODE |
| LOW | agent/mcp_server.py | 113 | def _resolve_include_shell_tools(cli_opt_in: bool) -> bool: | CODE |
| LOW | agent/mcp_server.py | 720 | def update_research_goal_status( | CODE |
| LOW | agent/mcp_server.py | 1296 | def refresh_strategy_evidence( | CODE |
| LOW | agent/mcp_server.py | 1367 | def trading_select_connection(connection: str) -> str: | CODE |
| LOW | agent/mcp_server.py | 2414 | def _string_result_output_schema() -> dict[str, Any] | None: | CODE |
| LOW | agent/tests/test_mt5_loader_week_month_reject.py | 10 | def test_week_and_month_tokens_map_like_connector() -> None: | CODE |
| LOW | agent/tests/test_mt5_loader_week_month_reject.py | 17 | def test_unsupported_interval_returns_empty_without_daily_rewrite() -> None: | CODE |
| LOW⚡ | agent/tests/test_dragon_tiger_tool.py | 71 | def test_compact_date_normalizes(self) -> None: | CODE |
| LOW⚡ | agent/tests/test_dragon_tiger_tool.py | 75 | def test_compact_date_rejects_garbage(self) -> None: | CODE |
| LOW⚡ | agent/tests/test_dragon_tiger_tool.py | 79 | def test_bare_code_strips_suffix(self) -> None: | CODE |
| LOW | agent/tests/test_dragon_tiger_tool.py | 94 | def test_full_market_list_no_code(self) -> None: | CODE |
| LOW | agent/tests/test_dragon_tiger_tool.py | 116 | def test_with_code_adds_seats(self) -> None: | CODE |
| LOW⚡ | agent/tests/test_dragon_tiger_tool.py | 133 | def test_missing_date_returns_error_envelope(self) -> None: | CODE |
| LOW⚡ | agent/tests/test_dragon_tiger_tool.py | 138 | def test_bad_date_returns_error_envelope(self) -> None: | CODE |
| LOW⚡ | agent/tests/test_dragon_tiger_tool.py | 143 | def test_http_failure_returns_error_envelope(self) -> None: | CODE |
| LOW | agent/tests/test_dragon_tiger_tool.py | 158 | def test_http_failure_uses_tushare_fallback_when_available(self) -> None: | CODE |
| LOW⚡ | agent/tests/test_china_a_engine.py | 71 | def test_close_allowed_when_no_position(self) -> None: | CODE |
| LOW⚡ | agent/tests/test_china_a_engine.py | 83 | def test_sell_same_day_blocked(self) -> None: | CODE |
| LOW⚡ | agent/tests/test_china_a_engine.py | 108 | def test_sell_allowed_when_no_position(self) -> None: | CODE |
| LOW⚡ | agent/tests/test_china_a_engine.py | 120 | def test_limit_up_buy_blocked(self) -> None: | CODE |
| LOW⚡ | agent/tests/test_china_a_engine.py | 126 | def test_limit_down_sell_blocked(self) -> None: | CODE |
| LOW⚡ | agent/tests/test_china_a_engine.py | 135 | def test_within_limit_allowed(self) -> None: | CODE |
| LOW⚡ | agent/tests/test_china_a_engine.py | 152 | def test_chinext_within_limit(self) -> None: | CODE |
| LOW⚡ | agent/tests/test_china_a_engine.py | 178 | def test_negative_clamps_to_zero(self) -> None: | CODE |
| 7376 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/test_ci_env_var_gate.py | 11 | CODE | |
| LOW | tools/ci_env_var_gate.py | 31 | CODE | |
| LOW | wiki/scripts/build_alpha_library.py | 36 | CODE | |
| LOW | wiki/scripts/check_social_cards.py | 3 | CODE | |
| LOW | agent/api_server.py | 9 | CODE | |
| LOW | agent/api_server.py | 16 | CODE | |
| LOW | agent/api_server.py | 16 | CODE | |
| LOW | agent/api_server.py | 16 | CODE | |
| LOW | agent/api_server.py | 17 | CODE | |
| LOW | agent/api_server.py | 22 | CODE | |
| LOW | agent/api_server.py | 22 | CODE | |
| LOW | agent/api_server.py | 35 | CODE | |
| LOW | agent/api_server.py | 35 | CODE | |
| LOW | agent/api_server.py | 35 | CODE | |
| LOW | agent/api_server.py | 35 | CODE | |
| LOW | agent/api_server.py | 35 | CODE | |
| LOW | agent/api_server.py | 35 | CODE | |
| LOW | agent/api_server.py | 35 | CODE | |
| LOW | agent/api_server.py | 35 | CODE | |
| LOW | agent/api_server.py | 35 | CODE | |
| LOW | agent/api_server.py | 35 | CODE | |
| LOW | agent/api_server.py | 35 | CODE | |
| LOW | agent/api_server.py | 35 | CODE | |
| LOW | agent/api_server.py | 35 | CODE | |
| LOW | agent/api_server.py | 35 | CODE | |
| LOW | agent/api_server.py | 35 | CODE | |
| LOW | agent/api_server.py | 35 | CODE | |
| LOW | agent/api_server.py | 35 | CODE | |
| LOW | agent/api_server.py | 35 | CODE | |
| LOW | agent/api_server.py | 35 | CODE | |
| LOW | agent/api_server.py | 35 | CODE | |
| LOW | agent/api_server.py | 35 | CODE | |
| LOW | agent/api_server.py | 35 | CODE | |
| LOW | agent/api_server.py | 35 | CODE | |
| LOW | agent/api_server.py | 35 | CODE | |
| LOW | agent/api_server.py | 35 | CODE | |
| LOW | agent/api_server.py | 35 | CODE | |
| LOW | agent/api_server.py | 35 | CODE | |
| LOW | agent/api_server.py | 35 | CODE | |
| LOW | agent/api_server.py | 35 | CODE | |
| LOW | agent/api_server.py | 73 | CODE | |
| LOW | agent/api_server.py | 73 | CODE | |
| LOW | agent/api_server.py | 73 | CODE | |
| LOW | agent/api_server.py | 73 | CODE | |
| LOW | agent/api_server.py | 73 | CODE | |
| LOW | agent/api_server.py | 81 | CODE | |
| LOW | agent/api_server.py | 81 | CODE | |
| LOW | agent/api_server.py | 81 | CODE | |
| LOW | agent/api_server.py | 81 | CODE | |
| LOW | agent/api_server.py | 81 | CODE | |
| LOW | agent/api_server.py | 81 | CODE | |
| LOW | agent/api_server.py | 81 | CODE | |
| LOW | agent/api_server.py | 81 | CODE | |
| LOW | agent/api_server.py | 81 | CODE | |
| LOW | agent/api_server.py | 81 | CODE | |
| LOW | agent/api_server.py | 81 | CODE | |
| LOW | agent/api_server.py | 81 | CODE | |
| LOW | agent/api_server.py | 81 | CODE | |
| LOW | agent/api_server.py | 81 | CODE | |
| LOW | agent/api_server.py | 81 | CODE | |
| 5726 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | wiki/scripts/build_alpha_library.py | 99 | Load and lightly validate a manifest written by export-manifest. Args: path: Filesystem path to ``manifest. | STRING |
| HIGH | agent/tests/test_swarm_worker_stream_retry.py | 71 | Raise the next queued error or return the final response. Args: messages: Conversation messages (ig | STRING |
| HIGH | agent/tests/test_agent_loop_stream_retry.py | 47 | Raise the next queued error or return the final response. Args: messages: Conversation messages (ig | STRING |
| HIGH | agent/tests/module_os_helpers.py | 32 | Point ``module.os`` at a stand-in carrying ``overrides``. Args: monkeypatch: The test's ``monkeypatch`` fix | STRING |
| HIGH | agent/cli/_legacy.py | 235 | Read user input with arrow key support if prompt_toolkit is available. Falls back to Rich Prompt.ask() when prompt_ | STRING |
| HIGH | agent/cli/utils/format.py | 109 | Abbreviate a number with magnitude suffix. Use this for status-bar numbers where horizontal space is scarce. Curren | STRING |
| HIGH | agent/backtest/risk_xray.py | 95 | Compute the risk x-ray for a weighted basket. Args: closes: Close-price panel, one column per symbol, sorte | STRING |
| HIGH | agent/backtest/options_payoff.py | 285 | Calculate an expiry payoff curve and analytic risk summary. Premiums are pinned at entry. An explicit per-share pre | STRING |
| HIGH | agent/backtest/options_payoff.py | 363 | Build a symmetric non-negative display grid around an entry spot. Args: center: Positive central spot. | STRING |
| HIGH | agent/backtest/options_payoff.py | 402 | Calculate pre-expiry mark-to-market P&L over spot and volatility. The entry cost is pinned once using the entry spo | STRING |
| HIGH | agent/backtest/factor_costs.py | 167 | Cap each name's trade at a fraction of its average daily traded value. Args: target_weights: Desired weight | STRING |
| HIGH | agent/backtest/factor_costs.py | 237 | Cost of borrowing the short leg for one period. Only negative weights are charged: a long position borrows nothing. | STRING |
| HIGH | agent/backtest/factor_costs.py | 311 | Price one rebalance: capacity, then impact, then borrow. Args: target_weights: Desired weights, shorts nega | STRING |
| HIGH | agent/backtest/engines/china_futures.py | 113 | Extract product code from futures symbol. Examples: 'IF2406.CFFEX' -> 'IF' 'rb2410.SHFE' -> 'rb' | STRING |
| HIGH | agent/backtest/engines/options_portfolio.py | 182 | Options backtest entry point. Day-by-day simulation: 1. Read underlying price for the current day 2. Mark a | STRING |
| HIGH | agent/backtest/engines/composite.py | 133 | Run the pipeline, refusing a code set that spans currencies. The check lives here rather than in ``__init__`` b | STRING |
| HIGH | agent/backtest/engines/base.py | 150 | Return the first bar index that counts as performance. A long-lookback indicator needs history before the period th | STRING |
| HIGH | agent/backtest/loaders/alphavantage_loader.py | 173 | Fetch and slice one symbol's daily bars into an OHLCV DataFrame. Args: code: US-equity ticker. | STRING |
| HIGH | agent/backtest/loaders/eastmoney_loader.py | 34 | Convert a ``YYYY-MM-DD`` date into Eastmoney's ``YYYYMMDD`` form. Args: value: Date string in any pandas-pa | STRING |
| HIGH | agent/backtest/loaders/eastmoney_loader.py | 78 | Fetch OHLCV for each symbol; a single failure never aborts the batch. Args: codes: Symbols such as | STRING |
| HIGH | agent/backtest/loaders/registry.py | 291 | Return the first *available* loader instance for *market*. Walks the fallback chain and returns the first loader wh | STRING |
| HIGH | agent/backtest/loaders/registry.py | 329 | Return a loader *class* for *source*, falling back if unavailable. Args: source: Requested data source name | STRING |
| HIGH | agent/backtest/loaders/_http.py | 150 | GET ``url`` after waiting out the per-host minimum interval. Args: url: Fully-qualified request URL. | STRING |
| HIGH | agent/backtest/loaders/futu.py | 149 | Fetch OHLCV history from Futu OpenAPI. Args: codes: Project symbols such as ``700.HK`` or ``000001. | STRING |
| HIGH | agent/backtest/loaders/_fundamental_schema.py | 197 | Resolve a supported fundamental field to its schema entry. Args: field: Unified fundamental field name. | STRING |
| HIGH | agent/backtest/loaders/fmp_loader.py | 99 | Fetch daily OHLCV bars from FMP, one symbol at a time. A single failing symbol is logged and skipped so it neve | STRING |
| HIGH | agent/backtest/loaders/fmp_loader.py | 150 | Fetch and parse one symbol's daily bars; ``None`` on no data. Args: code: Project symbol to fetch. | STRING |
| HIGH | agent/backtest/loaders/sec_edgar_client.py | 79 | GET ``url`` as JSON through the shared SEC-bucket throttle. Args: url: Fully-qualified SEC endpoint URL. | STRING |
| HIGH | agent/backtest/loaders/sec_edgar_client.py | 100 | Normalize a CIK to the SEC's zero-padded 10-digit string form. Args: cik: A CIK as an int or a string that | STRING |
| HIGH | agent/backtest/loaders/sec_edgar_client.py | 167 | Resolve a ticker symbol to its zero-padded 10-digit CIK. Args: ticker: A U.S. equity ticker (case-insensiti | STRING |
| HIGH | agent/backtest/loaders/sec_edgar_client.py | 199 | Fetch the filing-index ("submissions") JSON for a CIK. Args: cik: A CIK as int or string; padded to 10 digi | STRING |
| HIGH | agent/backtest/loaders/sec_edgar_client.py | 215 | Fetch the XBRL ``companyfacts`` JSON for a CIK. Args: cik: A CIK as int or string; padded to 10 digits inte | STRING |
| HIGH | agent/backtest/loaders/rsshub_events.py | 78 | Convert a backtest code (e.g. ``"600519.SH"``) to a route's expected form. RSSHub routes disagree on instrument for | STRING |
| HIGH | agent/backtest/loaders/rsshub_events.py | 143 | Build :class:`FeedSpec` objects from backtest-config dicts. Each entry must carry ``name``, ``route_template`` and | STRING |
| HIGH | agent/backtest/loaders/yahoo_client.py | 111 | Return ``(crumb, cookies)``, fetching them on first use or on refresh. Args: force_refresh: Discard | STRING |
| HIGH | agent/backtest/loaders/yahoo_client.py | 166 | Fetch OHLCV bars from the v8 chart endpoint as ascending rows. Either supply a ``range_`` (e.g. ``"1y"``, ``"max"`` | STRING |
| HIGH | agent/backtest/loaders/yahoo_client.py | 256 | Fetch v10 quoteSummary modules, handling the cookie+crumb handshake. On a 401 (expired/invalid crumb) the crumb and | STRING |
| HIGH | agent/backtest/loaders/yahoo_client.py | 314 | Fetch the v7 option chain for a symbol, handling the cookie+crumb handshake. Like ``v10/quoteSummary``, the ``v7/fi | STRING |
| HIGH | agent/backtest/loaders/yahoo_client.py | 376 | Look up matching instruments via the v1 search endpoint. Args: query: Free-text query (ticker fragment or c | STRING |
| HIGH | agent/backtest/loaders/yahoo_client.py | 399 | Look up matching news via the v1 search endpoint. Args: query: Free-text query (ticker fragment or company | STRING |
| HIGH | agent/backtest/loaders/longbridge.py | 264 | Fetch OHLCV history from LongPort OpenAPI. Args: codes: Project symbols such as ``AAPL``, ``AAPL.US | STRING |
| HIGH | agent/backtest/loaders/stooq_loader.py | 101 | Fetch daily OHLCV bars for ``codes`` over ``[start_date, end_date]``. Args: codes: Project-side sym | STRING |
| HIGH | agent/backtest/loaders/fundamentals_loader.py | 55 | Extract a sparse ``period_end``/``filed``/``value`` series. Args: facts: SEC companyfacts payload. | STRING |
| HIGH | agent/backtest/loaders/fundamentals_loader.py | 207 | Load SEC fundamental fields as dense date-by-symbol panels. Args: symbols: Tickers to load. fields: | STRING |
| HIGH | agent/backtest/loaders/fundamentals_loader.py | 416 | Map each symbol to its SEC CIK. Args: symbols: Requested symbols. Returns: A symbol -> CIK map | STRING |
| HIGH | agent/backtest/loaders/qveris_loader.py | 179 | Call ``POST /tools/execute`` and hydrate truncated results. Args: tool_id: QVeris tool identifier r | STRING |
| HIGH | agent/backtest/loaders/qveris_loader.py | 285 | Fetch daily OHLCV history through selected QVeris capabilities. Args: codes: Symbols to fetch. | STRING |
| HIGH | agent/backtest/loaders/tickerall_loader.py | 233 | Fetch OHLCV frames keyed by the original input codes. A transient per-symbol failure (network blip, one bad sym | STRING |
| HIGH | agent/backtest/loaders/eastmoney_client.py | 82 | Issue a throttled Eastmoney GET and decode the body as JSON. Args: url: Fully-qualified Eastmoney endpoint | STRING |
| HIGH | agent/backtest/loaders/eastmoney_client.py | 277 | Fetch ascending OHLCV bars for one ``secid`` from push2his. Args: secid: Eastmoney secid (e.g. ``"1.600519" | STRING |
| HIGH | agent/backtest/loaders/tushare.py | 52 | Call a Tushare endpoint, waiting out a per-minute quota rejection. Only quota rejections are retried. Retrying an o | STRING |
| HIGH | agent/backtest/loaders/tiingo_loader.py | 158 | Fetch OHLCV history keyed by the original project symbols. Each symbol is fetched independently so one failing | STRING |
| HIGH | agent/backtest/loaders/sina_loader.py | 55 | Extract the JSON array embedded in Sina's JSONP wrapper. Args: raw: Raw response body, e.g. ``var x=([{"d": | STRING |
| HIGH | agent/backtest/loaders/sina_loader.py | 146 | Fetch US daily OHLCV for each code; skip and log per-symbol failures. Args: codes: Symbols in ``TIC | STRING |
| HIGH | agent/backtest/loaders/base.py | 56 | Drop, flag, or reject bars that violate OHLC invariants. Loaders only drop NaN rows, so structurally dirty bars — ` | STRING |
| HIGH | agent/backtest/loaders/base.py | 193 | Call ``fn`` with a bounded retry budget on declared transient errors. Between attempts sleeps ``min(backoff[attempt | STRING |
| HIGH | agent/backtest/loaders/mootdx_loader.py | 105 | Fetch A-share OHLCV via mootdx. Args: codes: Symbol list. `.SH/.SZ/.BJ` suffix or bare 6-digit | STRING |
| HIGH | agent/backtest/loaders/finnhub_loader.py | 176 | Fetch daily OHLCV history keyed by the original project symbols. Each symbol is fetched independently through t | STRING |
| HIGH | agent/src/swarm/store.py | 136 | Return the directory path for a given run. Args: run_id: Run identifier. Returns: | STRING |
| HIGH | agent/src/swarm/store.py | 160 | Create the directory structure for a new run and write initial state. Args: run: SwarmRun instance. | STRING |
| 361 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | agent/tests/test_sse_ticket_and_headers.py | 0 | return a testclient that simulates a non-loopback caller. | STRING |
| HIGH | agent/tests/test_security_auth_api.py | 0 | return a testclient that simulates a non-loopback caller. | STRING |
| HIGH | agent/tests/test_openbb_bridge/test_routes.py | 0 | return a testclient that simulates a non-loopback caller. | STRING |
| HIGH | agent/tests/test_sse_ticket_and_headers.py | 0 | return a testclient that simulates a loopback caller. | STRING |
| HIGH | agent/tests/test_security_auth_api.py | 0 | return a testclient that simulates a loopback caller. | STRING |
| HIGH | agent/tests/test_openbb_bridge/test_routes.py | 0 | return a testclient that simulates a loopback caller. | STRING |
| HIGH | agent/tests/test_runtime_flatten.py | 0 | point the live runtime root at an isolated tmp dir. | STRING |
| HIGH | agent/tests/test_sweep_latch.py | 0 | point the live runtime root at an isolated tmp dir. | STRING |
| HIGH | agent/tests/test_runtime_liveness.py | 0 | point the live runtime root at an isolated tmp dir. | STRING |
| HIGH | agent/tests/test_runtime_jobstore.py | 0 | point the live runtime root at an isolated tmp dir. | STRING |
| HIGH | agent/tests/test_halt.py | 0 | point the live runtime root at an isolated tmp dir. | STRING |
| HIGH | agent/tests/test_audit_redact.py | 0 | point the live runtime root at an isolated tmp dir. | STRING |
| HIGH | agent/tests/test_mandate_model.py | 0 | point the live root at a tmp dir so tests never touch the real store. | STRING |
| HIGH | agent/tests/test_consent_commit.py | 0 | point the live root at a tmp dir so tests never touch the real store. | STRING |
| HIGH | agent/tests/test_mandate_enforcement.py | 0 | point the live root at a tmp dir so tests never touch the real store. | STRING |
| HIGH | agent/cli/commands/institutional/screen.py | 0 | render or dispatch the ``/comps`` playbook. args: ctx: interactive context supplying ``pending_prompt``. *args: raw slas | STRING |
| HIGH | agent/cli/commands/institutional/earnings.py | 0 | render or dispatch the ``/comps`` playbook. args: ctx: interactive context supplying ``pending_prompt``. *args: raw slas | STRING |
| HIGH | agent/cli/commands/institutional/memo.py | 0 | render or dispatch the ``/comps`` playbook. args: ctx: interactive context supplying ``pending_prompt``. *args: raw slas | STRING |
| HIGH | agent/cli/commands/institutional/dcf.py | 0 | render or dispatch the ``/comps`` playbook. args: ctx: interactive context supplying ``pending_prompt``. *args: raw slas | STRING |
| HIGH | agent/cli/commands/institutional/attrib.py | 0 | render or dispatch the ``/comps`` playbook. args: ctx: interactive context supplying ``pending_prompt``. *args: raw slas | STRING |
| HIGH | agent/cli/commands/institutional/comps.py | 0 | render or dispatch the ``/comps`` playbook. args: ctx: interactive context supplying ``pending_prompt``. *args: raw slas | STRING |
| HIGH | agent/backtest/loaders/pykrx_loader.py | 0 | resolve the per-call minimum spacing, honoring the env override. | STRING |
| HIGH | agent/backtest/loaders/fmp_loader.py | 0 | resolve the per-call minimum spacing, honoring the env override. | STRING |
| HIGH | agent/backtest/loaders/yahoo_client.py | 0 | resolve the per-call minimum spacing, honoring the env override. | STRING |
| HIGH | agent/backtest/loaders/stooq_loader.py | 0 | resolve the per-call minimum spacing, honoring the env override. | STRING |
| HIGH | agent/backtest/loaders/tickerall_loader.py | 0 | resolve the per-call minimum spacing, honoring the env override. | STRING |
| HIGH | agent/backtest/loaders/finnhub_loader.py | 0 | resolve the per-call minimum spacing, honoring the env override. | STRING |
| HIGH | agent/src/tools/prediction_market_tool.py | 0 | build the failure envelope as a json string. args: message: human-readable error description. returns: a strict json ``{ | STRING |
| HIGH | agent/src/tools/etf_holdings_tool.py | 0 | build the failure envelope as a json string. args: message: human-readable error description. returns: a strict json ``{ | STRING |
| HIGH | agent/src/tools/fund_flow_tool.py | 0 | build the failure envelope as a json string. args: message: human-readable error description. returns: a strict json ``{ | STRING |
| HIGH | agent/src/tools/research_papers_tool.py | 0 | build the failure envelope as a json string. args: message: human-readable error description. returns: a strict json ``{ | STRING |
| HIGH | agent/src/tools/sector_tool.py | 0 | build the failure envelope as a json string. args: message: human-readable error description. returns: a strict json ``{ | STRING |
| HIGH | agent/src/tools/financial_statements_tool.py | 0 | build the failure envelope as a json string. args: message: human-readable error description. returns: a strict json ``{ | STRING |
| HIGH | agent/src/tools/market_screener_tool.py | 0 | build the failure envelope as a json string. args: message: human-readable error description. returns: a strict json ``{ | STRING |
| HIGH | agent/src/tools/image_vision_tool.py | 0 | build the failure envelope as a json string. args: message: human-readable error description. returns: a strict json ``{ | STRING |
| HIGH | agent/src/tools/get_fundamentals_tool.py | 0 | build the failure envelope as a json string. args: message: human-readable error description. returns: a strict json ``{ | STRING |
| HIGH | agent/src/tools/stock_news_tool.py | 0 | render a failure envelope as a json string. args: message: human-readable error text. returns: ``{"ok": false, "error": | STRING |
| HIGH | agent/src/tools/iwencai_tool.py | 0 | render a failure envelope as a json string. args: message: human-readable error text. returns: ``{"ok": false, "error": | STRING |
| HIGH | agent/src/tools/dragon_tiger_tool.py | 0 | render a failure envelope as a json string. args: message: human-readable error text. returns: ``{"ok": false, "error": | STRING |
| HIGH | agent/src/tools/symbol_search_tool.py | 0 | coerce a requested report count into the supported ``1.._max_limit`` range. | STRING |
| HIGH | agent/src/tools/sec_filings_tool.py | 0 | coerce a requested report count into the supported ``1.._max_limit`` range. | STRING |
| HIGH | agent/src/tools/research_reports_tool.py | 0 | coerce a requested report count into the supported ``1.._max_limit`` range. | STRING |
| HIGH | agent/src/factors/zoo/alpha101/alpha_018.py | 0 | compute the alpha on the ohlcv+ panel and return a wide dataframe. | STRING |
| HIGH | agent/src/factors/zoo/alpha101/alpha_049.py | 0 | compute the alpha on the ohlcv+ panel and return a wide dataframe. | STRING |
| HIGH | agent/src/factors/zoo/alpha101/alpha_059.py | 0 | compute the alpha on the ohlcv+ panel and return a wide dataframe. | STRING |
| HIGH | agent/src/factors/zoo/alpha101/alpha_008.py | 0 | compute the alpha on the ohlcv+ panel and return a wide dataframe. | STRING |
| HIGH | agent/src/factors/zoo/alpha101/alpha_028.py | 0 | compute the alpha on the ohlcv+ panel and return a wide dataframe. | STRING |
| HIGH | agent/src/factors/zoo/alpha101/alpha_079.py | 0 | compute the alpha on the ohlcv+ panel and return a wide dataframe. | STRING |
| HIGH | agent/src/factors/zoo/alpha101/alpha_069.py | 0 | compute the alpha on the ohlcv+ panel and return a wide dataframe. | STRING |
| HIGH | agent/src/factors/zoo/alpha101/alpha_038.py | 0 | compute the alpha on the ohlcv+ panel and return a wide dataframe. | STRING |
| HIGH | agent/src/factors/zoo/alpha101/alpha_029.py | 0 | compute the alpha on the ohlcv+ panel and return a wide dataframe. | STRING |
| HIGH | agent/src/factors/zoo/alpha101/alpha_078.py | 0 | compute the alpha on the ohlcv+ panel and return a wide dataframe. | STRING |
| HIGH | agent/src/factors/zoo/alpha101/alpha_068.py | 0 | compute the alpha on the ohlcv+ panel and return a wide dataframe. | STRING |
| HIGH | agent/src/factors/zoo/alpha101/alpha_039.py | 0 | compute the alpha on the ohlcv+ panel and return a wide dataframe. | STRING |
| HIGH | agent/src/factors/zoo/alpha101/alpha_019.py | 0 | compute the alpha on the ohlcv+ panel and return a wide dataframe. | STRING |
| HIGH | agent/src/factors/zoo/alpha101/alpha_048.py | 0 | compute the alpha on the ohlcv+ panel and return a wide dataframe. | STRING |
| HIGH | agent/src/factors/zoo/alpha101/alpha_058.py | 0 | compute the alpha on the ohlcv+ panel and return a wide dataframe. | STRING |
| HIGH | agent/src/factors/zoo/alpha101/alpha_009.py | 0 | compute the alpha on the ohlcv+ panel and return a wide dataframe. | STRING |
| HIGH | agent/src/factors/zoo/alpha101/alpha_077.py | 0 | compute the alpha on the ohlcv+ panel and return a wide dataframe. | STRING |
| HIGH | agent/src/factors/zoo/alpha101/alpha_026.py | 0 | compute the alpha on the ohlcv+ panel and return a wide dataframe. | STRING |
| 296 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | agent/api_server.py | 135 | except Exception: # pragma: no cover — best-effort | CODE |
| LOW⚡ | agent/mcp_server.py | 1688 | except Exception: | CODE |
| LOW⚡ | agent/mcp_server.py | 2527 | except Exception: # noqa: BLE001 - never let one tool break server startup | CODE |
| LOW | agent/mcp_server.py | 1188 | except Exception: # noqa: BLE001 - honest error beats a raw traceback | CODE |
| LOW | agent/mcp_server.py | 1659 | except Exception: | CODE |
| LOW | agent/mcp_server.py | 2407 | except Exception: # noqa: BLE001 - one unavailable module, not four | CODE |
| LOW | agent/mcp_server.py | 3005 | except Exception: # pragma: no cover — best-effort | CODE |
| LOW | agent/tests/test_mcp_server_smoke.py | 99 | except Exception: | CODE |
| LOW | agent/tests/test_mcp_server_smoke.py | 235 | except Exception: | CODE |
| LOW | agent/tests/test_volume_unit_consistency.py | 26 | except Exception: # noqa: BLE001 — unreachable source = not participating | CODE |
| MEDIUM | agent/tests/test_volume_unit_consistency.py | 23 | def _volume_from(loader_cls) -> float | None: | CODE |
| LOW⚡ | agent/tests/test_mcp_regression.py | 64 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW⚡ | agent/tests/test_mcp_regression.py | 112 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW⚡ | agent/tests/test_env_schema.py | 399 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | agent/tests/test_alpha_bench_sector_tag.py | 94 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | agent/tests/test_longbridge_credentials.py | 182 | except Exception as exc: # The contract requires this specific safe exception. | CODE |
| LOW | agent/tests/test_mcp_specs_cache.py | 294 | except Exception as exc: | CODE |
| LOW⚡ | agent/tests/test_mcp_json_string_args.py | 189 | except Exception as exc: # noqa: BLE001 - fastmcp surfaces validation errors | CODE |
| LOW | agent/tests/memory/test_lifecycle_index_cleanup.py | 44 | except Exception: | CODE |
| LOW | agent/tests/memory/test_search_index.py | 211 | except Exception: | CODE |
| LOW | agent/tests/memory/test_tier2_integration.py | 40 | except Exception: | CODE |
| LOW | agent/tests/factors/test_lookahead.py | 137 | except Exception: # noqa: BLE001 — be loud only at test time | CODE |
| MEDIUM | agent/tests/factors/test_lookahead.py | 134 | def _registered_alpha_ids() -> list[str]: | CODE |
| LOW | agent/cli/completer.py | 36 | except Exception: # noqa: BLE001 — never block typeahead on theme import | CODE |
| LOW | agent/cli/stream.py | 140 | except Exception: # noqa: BLE001 — Rich shutdown can race | CODE |
| LOW | agent/cli/stream.py | 158 | except Exception: # noqa: BLE001 | CODE |
| LOW⚡ | agent/cli/stream.py | 193 | except Exception: # noqa: BLE001 | CODE |
| MEDIUM | agent/cli/main.py | 527 | def _worker() -> None: | CODE |
| LOW⚡ | agent/cli/main.py | 460 | except Exception: # noqa: BLE001 — persistence is best-effort | CODE |
| LOW⚡ | agent/cli/main.py | 469 | except Exception: # noqa: BLE001 | CODE |
| LOW⚡ | agent/cli/main.py | 532 | except Exception: # noqa: BLE001 | CODE |
| LOW⚡ | agent/cli/main.py | 640 | except Exception as exc: # noqa: BLE001 — never let a handler kill the loop | CODE |
| LOW | agent/cli/main.py | 150 | except Exception: # noqa: BLE001 — never block startup on stats | CODE |
| LOW | agent/cli/main.py | 166 | except Exception: # noqa: BLE001 | CODE |
| LOW | agent/cli/main.py | 183 | except Exception: # noqa: BLE001 | CODE |
| LOW | agent/cli/main.py | 289 | except Exception: # noqa: BLE001 — legacy will load again later | CODE |
| LOW | agent/cli/main.py | 391 | except Exception: # noqa: BLE001 — persistence error → empty history | CODE |
| LOW | agent/cli/main.py | 420 | except Exception: # noqa: BLE001 — never block the turn on persistence | CODE |
| LOW | agent/cli/main.py | 429 | except Exception: # noqa: BLE001 | CODE |
| LOW | agent/cli/main.py | 485 | except Exception: # noqa: BLE001 | CODE |
| LOW | agent/cli/main.py | 660 | except Exception: # noqa: BLE001 | CODE |
| LOW | agent/cli/main.py | 900 | except Exception as exc: # noqa: BLE001 — never let a halt failure kill the loop | CODE |
| LOW | agent/cli/main.py | 925 | except Exception as exc: # noqa: BLE001 — never let a resume failure kill the loop | CODE |
| LOW | agent/cli/main.py | 963 | except Exception as exc: # noqa: BLE001 — never let a connector command kill the loop | CODE |
| LOW | agent/cli/main.py | 977 | except Exception as exc: # noqa: BLE001 # QVERIS-INTEGRATION | CODE |
| LOW | agent/cli/main.py | 1122 | except Exception as exc: # noqa: BLE001 - keep proposal open for retry | CODE |
| LOW | agent/cli/main.py | 1182 | except Exception as exc: # noqa: BLE001 — surface a clean error to the user | CODE |
| LOW | agent/cli/main.py | 1260 | except Exception: # noqa: BLE001 | CODE |
| LOW | agent/cli/main.py | 1287 | except Exception as exc: # noqa: BLE001 — fall back gracefully if prompt_toolkit broken | CODE |
| LOW | agent/cli/main.py | 1294 | except Exception: # noqa: BLE001 | CODE |
| LOW | agent/cli/main.py | 1428 | except Exception: # pragma: no cover — best-effort | CODE |
| LOW | agent/cli/_legacy.py | 353 | except Exception: | CODE |
| LOW | agent/cli/_legacy.py | 420 | except Exception: | CODE |
| LOW | agent/cli/_legacy.py | 430 | except Exception: | CODE |
| LOW | agent/cli/_legacy.py | 995 | except Exception: # noqa: BLE001 — relay must never break the turn | CODE |
| LOW | agent/cli/_legacy.py | 1036 | except Exception: # noqa: BLE001 - relay must never break the turn | CODE |
| LOW | agent/cli/_legacy.py | 1071 | except Exception: # noqa: BLE001 — an existing or unwritable session must not block the run | CODE |
| LOW | agent/cli/_legacy.py | 1079 | except Exception: # noqa: BLE001 — search index is optional | CODE |
| LOW | agent/cli/_legacy.py | 1126 | except Exception: # noqa: BLE001 — capture must never kill the turn | CODE |
| LOW | agent/cli/_legacy.py | 1143 | except Exception: # noqa: BLE001 — relay must never kill the turn | CODE |
| 826 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/ci_env_var_gate.py | 89 | def _set_source(self, source: str) -> None: | CODE |
| LOW | agent/api_server.py | 115 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | agent/mcp_server.py | 87 | logger = logging.getLogger(__name__) | CODE |
| LOW | agent/tests/test_auth_precedence.py | 37 | def _set_key(monkeypatch: pytest.MonkeyPatch, key: str = "secret") -> None: | CODE |
| LOW | agent/tests/test_longbridge_credentials.py | 30 | def _set_environment(monkeypatch: pytest.MonkeyPatch, values: dict[str, str]) -> None: | CODE |
| LOW⚡ | agent/tests/test_sdk_connectors.py | 224 | def _set_longbridge_environment(monkeypatch, values) -> None: | CODE |
| LOW | agent/tests/test_binance_usdm_readonly.py | 160 | def set_sandbox_mode(self, enabled: bool) -> None: | CODE |
| LOW | agent/tests/test_binance_usdm_readonly.py | 217 | def set_sandbox_mode(self, _enabled: bool) -> None: | CODE |
| LOW | agent/cli/onboard.py | 566 | __all__ = ["run_onboarding", "PROVIDERS", "Provider", "BACK", "CANCEL"] | CODE |
| LOW | agent/cli/theme.py | 235 | __all__ = [ | CODE |
| LOW | agent/cli/_version.py | 46 | __all__ = ["__version__"] | CODE |
| LOW | agent/cli/__init__.py | 103 | __all__ = ["main", *sorted( | CODE |
| LOW | agent/cli/completer.py | 115 | __all__ = ["SlashCompleter"] | CODE |
| LOW | agent/cli/stream.py | 144 | def set_extra(self, extra: str) -> None: | CODE |
| LOW | agent/cli/stream.py | 339 | __all__ = [ | CODE |
| LOW | agent/cli/input.py | 380 | __all__ = [ | CODE |
| LOW | agent/cli/main.py | 1590 | __all__ = ["main", "InteractiveContext"] | CODE |
| LOW | agent/cli/intro.py | 5 | __all__ = ["print_banner"] | CODE |
| LOW | agent/cli/ui/__init__.py | 7 | __all__ = [ | CODE |
| LOW | agent/cli/utils/__init__.py | 11 | __all__ = [ | CODE |
| LOW | agent/cli/utils/format.py | 157 | __all__ = ["format_duration", "format_tokens", "abbreviate_num"] | CODE |
| LOW | agent/cli/utils/thinking_verbs.py | 41 | __all__ = ["pick_thinking_verb", "THINKING_VERBS"] | CODE |
| LOW | agent/cli/components/chat_log.py | 77 | __all__ = ["render_history"] | CODE |
| LOW | agent/cli/components/tool_event.py | 218 | __all__ = ["render_tool_event", "render_tool_events"] | CODE |
| LOW | agent/cli/components/hint_bar.py | 67 | __all__ = ["render_hint_bar"] | CODE |
| LOW | agent/cli/components/working_indicator.py | 107 | def update_verb(self, verb: str) -> None: | CODE |
| LOW | agent/cli/components/working_indicator.py | 144 | __all__ = ["ThinkingSpinner"] | CODE |
| LOW | agent/cli/components/__init__.py | 12 | __all__ = [ | CODE |
| LOW | agent/cli/commands/research_playbook.py | 654 | __all__ = [ | CODE |
| LOW | agent/cli/commands/show.py | 86 | __all__ = ["run", "cmd_show", "cmd_skill", "cmd_pine"] | CODE |
| LOW | agent/cli/commands/memory.py | 67 | __all__ = ["run", "cmd_memory"] | CODE |
| LOW | agent/cli/commands/strategy_evidence.py | 22 | logger = logging.getLogger(__name__) | CODE |
| LOW | agent/cli/commands/strategy_evidence.py | 170 | __all__ = [ | CODE |
| LOW | agent/cli/commands/session.py | 98 | __all__ = ["run", "cmd_history", "cmd_search", "cmd_export"] | CODE |
| LOW | agent/cli/commands/__init__.py | 13 | __all__ = [ | CODE |
| LOW | agent/cli/commands/chat.py | 247 | __all__ = [ | CODE |
| LOW | agent/cli/commands/goal.py | 395 | __all__ = [ | CODE |
| LOW | agent/cli/commands/help.py | 64 | __all__ = ["run"] | CODE |
| LOW | agent/cli/commands/institutional/screen.py | 29 | __all__ = ["run"] | CODE |
| LOW | agent/cli/commands/institutional/runner.py | 209 | __all__ = ["build_prompt", "run_playbook"] | CODE |
| LOW | agent/cli/commands/institutional/playbooks.py | 647 | __all__ = [ | CODE |
| LOW | agent/cli/commands/institutional/earnings.py | 29 | __all__ = ["run"] | CODE |
| LOW | agent/cli/commands/institutional/memo.py | 30 | __all__ = ["run"] | CODE |
| LOW | agent/cli/commands/institutional/dcf.py | 30 | __all__ = ["run"] | CODE |
| LOW | agent/cli/commands/institutional/attrib.py | 29 | __all__ = ["run"] | CODE |
| LOW | agent/cli/commands/institutional/comps.py | 30 | __all__ = ["run"] | CODE |
| LOW | agent/backtest/runner.py | 43 | logger = logging.getLogger(__name__) | CODE |
| LOW | agent/backtest/regime.py | 21 | logger = logging.getLogger(__name__) | CODE |
| LOW | agent/backtest/factor_costs.py | 56 | __all__ = [ | CODE |
| LOW | agent/backtest/correlation.py | 16 | logger = logging.getLogger(__name__) | CODE |
| LOW | agent/backtest/engines/vietnam_equity.py | 64 | logger = logging.getLogger(__name__) | CODE |
| LOW | agent/backtest/engines/korea_equity.py | 59 | logger = logging.getLogger(__name__) | CODE |
| LOW | agent/backtest/engines/base.py | 55 | logger = logging.getLogger(__name__) | CODE |
| LOW | agent/backtest/loaders/okx.py | 32 | logger = logging.getLogger(__name__) | CODE |
| LOW | agent/backtest/loaders/akshare_loader.py | 18 | logger = logging.getLogger(__name__) | CODE |
| LOW | agent/backtest/loaders/alphavantage_loader.py | 33 | logger = logging.getLogger(__name__) | CODE |
| LOW | agent/backtest/loaders/ccxt_loader.py | 30 | logger = logging.getLogger(__name__) | CODE |
| LOW | agent/backtest/loaders/yfinance_loader.py | 12 | logger = logging.getLogger(__name__) | CODE |
| LOW | agent/backtest/loaders/local_loader.py | 44 | logger = logging.getLogger(__name__) | CODE |
| LOW | agent/backtest/loaders/eastmoney_loader.py | 27 | logger = logging.getLogger(__name__) | CODE |
| 213 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | agent/mcp_server.py | 555 | CODE | |
| LOW | agent/mcp_server.py | 623 | CODE | |
| LOW | agent/mcp_server.py | 1005 | CODE | |
| LOW | agent/mcp_server.py | 1481 | CODE | |
| LOW | agent/mcp_server.py | 1512 | CODE | |
| LOW | agent/tests/test_memory_gc.py | 29 | CODE | |
| LOW | agent/tests/test_memory_lifecycle.py | 34 | CODE | |
| LOW | agent/tests/test_crypto_engine.py | 69 | CODE | |
| LOW | agent/tests/test_mcp_specs_cache.py | 33 | CODE | |
| LOW | agent/tests/test_perpetual_risk.py | 35 | CODE | |
| LOW | agent/tests/memory/test_lifecycle_index_cleanup.py | 59 | CODE | |
| LOW | agent/cli/_legacy.py | 1084 | CODE | |
| LOW | agent/cli/_legacy.py | 4807 | CODE | |
| LOW | agent/cli/_legacy.py | 4858 | CODE | |
| LOW | agent/backtest/factor_costs.py | 297 | CODE | |
| LOW | agent/backtest/loaders/tushare_fundamentals.py | 179 | CODE | |
| LOW | agent/backtest/loaders/tushare_fundamentals.py | 230 | CODE | |
| LOW | agent/src/quantlib/fundmath.py | 1597 | CODE | |
| LOW | agent/src/quantlib/fundmath.py | 2200 | CODE | |
| LOW | agent/src/tools/__init__.py | 76 | CODE | |
| LOW | agent/src/tools/pattern_tool.py | 93 | CODE | |
| LOW | agent/src/hypotheses/registry.py | 214 | CODE | |
| LOW | agent/src/strategy_discovery/facade.py | 417 | CODE | |
| LOW | agent/src/scheduled_research/executor.py | 199 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_018.py | 63 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_049.py | 99 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_059.py | 95 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_008.py | 77 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_028.py | 64 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_079.py | 100 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_069.py | 98 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_038.py | 62 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_029.py | 89 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_078.py | 72 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_068.py | 67 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_039.py | 68 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_019.py | 76 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_048.py | 110 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_058.py | 94 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_009.py | 86 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_077.py | 69 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_026.py | 62 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_084.py | 68 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_012.py | 62 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_043.py | 62 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_053.py | 64 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_002.py | 63 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_094.py | 64 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_036.py | 83 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_067.py | 98 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_047.py | 86 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_016.py | 62 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_022.py | 63 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_073.py | 70 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_080.py | 100 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_090.py | 97 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_063.py | 105 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_032.py | 76 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_006.py | 62 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_057.py | 62 | CODE | |
| 169 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/ci_env_var_gate.py | 199 | CODE | |
| LOW | agent/tests/test_agent_output_discipline.py | 768 | CODE | |
| LOW | agent/tests/test_market_data_tool.py | 222 | CODE | |
| LOW | agent/tests/test_no_set_mandate_tool.py | 46 | CODE | |
| LOW | agent/tests/test_no_set_mandate_tool.py | 67 | CODE | |
| LOW | agent/tests/test_strategy_discovery_models.py | 283 | CODE | |
| LOW | agent/tests/test_consent_commit.py | 523 | CODE | |
| LOW | agent/tests/test_sdk_connectors.py | 349 | CODE | |
| LOW | agent/tests/test_mcp_server_http_transport.py | 50 | CODE | |
| LOW | agent/tests/test_strategy_discovery_harness.py | 327 | CODE | |
| LOW | agent/tests/test_provider_header_isolation.py | 159 | CODE | |
| LOW | agent/tests/test_provider_header_isolation.py | 180 | CODE | |
| LOW | agent/tests/memory/benchmarks/tier2_runner.py | 214 | CODE | |
| LOW | agent/tests/factors/test_alpha_purity.py | 200 | CODE | |
| LOW | agent/tests/factors/test_alpha_purity.py | 172 | CODE | |
| LOW | agent/cli/stream.py | 185 | CODE | |
| LOW | agent/cli/input.py | 121 | CODE | |
| LOW | agent/cli/main.py | 553 | CODE | |
| LOW | agent/cli/main.py | 1235 | CODE | |
| LOW | agent/cli/_legacy.py | 1084 | CODE | |
| LOW | agent/cli/_legacy.py | 1939 | CODE | |
| LOW | agent/cli/_legacy.py | 1998 | CODE | |
| LOW | agent/cli/_legacy.py | 2311 | CODE | |
| LOW | agent/cli/_legacy.py | 2593 | CODE | |
| LOW | agent/cli/_legacy.py | 3956 | CODE | |
| LOW | agent/cli/_legacy.py | 4501 | CODE | |
| LOW | agent/cli/_legacy.py | 6098 | CODE | |
| LOW | agent/cli/_legacy.py | 1118 | CODE | |
| LOW | agent/cli/_legacy.py | 2151 | CODE | |
| LOW | agent/cli/_legacy.py | 2222 | CODE | |
| LOW | agent/cli/ui/rail.py | 319 | CODE | |
| LOW | agent/backtest/runner.py | 628 | CODE | |
| LOW | agent/backtest/runner.py | 668 | CODE | |
| LOW | agent/backtest/runner.py | 715 | CODE | |
| LOW | agent/backtest/runner.py | 1285 | CODE | |
| LOW | agent/backtest/runner.py | 1478 | CODE | |
| LOW | agent/backtest/engines/options_portfolio.py | 175 | CODE | |
| LOW | agent/backtest/engines/options_portfolio.py | 562 | CODE | |
| LOW | agent/backtest/engines/composite.py | 26 | CODE | |
| LOW | agent/backtest/engines/base.py | 997 | CODE | |
| LOW | agent/backtest/engines/base.py | 1423 | CODE | |
| LOW | agent/backtest/loaders/tushare_fundamentals.py | 264 | CODE | |
| LOW | agent/backtest/loaders/futu.py | 140 | CODE | |
| LOW | agent/backtest/loaders/tencent_loader.py | 180 | CODE | |
| LOW | agent/backtest/loaders/rsshub_events.py | 501 | CODE | |
| LOW | agent/backtest/loaders/longbridge.py | 255 | CODE | |
| LOW | agent/backtest/loaders/fundamentals_loader.py | 48 | CODE | |
| LOW | agent/backtest/loaders/qveris_loader.py | 487 | CODE | |
| LOW | agent/backtest/loaders/tickerall_loader.py | 192 | CODE | |
| LOW | agent/backtest/loaders/baostock_loader.py | 55 | CODE | |
| LOW | agent/backtest/loaders/tushare.py | 270 | CODE | |
| LOW | agent/backtest/loaders/tushare.py | 325 | CODE | |
| LOW | agent/src/ui_services.py | 100 | CODE | |
| LOW | agent/src/ui_services.py | 307 | CODE | |
| LOW | agent/src/ui_services.py | 408 | CODE | |
| LOW | agent/src/market_data.py | 123 | CODE | |
| LOW | agent/src/swarm/worker.py | 476 | CODE | |
| LOW | agent/src/swarm/task_store.py | 203 | CODE | |
| LOW | agent/src/swarm/runtime.py | 425 | CODE | |
| LOW | agent/src/swarm/runtime.py | 676 | CODE | |
| 178 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | agent/api_server.py | 372 | print("[warn] Run: cd frontend && npm run build") | CODE |
| HIGH | agent/tests/test_validation.py | 333 | """A non-finite metric must be serialized as null, not a bare | STRING |
| HIGH⚡ | agent/tests/test_loader_volume_units.py | 50 | """Markets without evidence stay undeclared (null), never guessed.""" | STRING |
| HIGH | agent/tests/test_fundamentals_pit.py | 335 | value null, which reads as "this issuer reports nothing" rather than "this | STRING |
| HIGH | agent/tests/test_alpha_bench_sector_tag.py | 61 | assert panel["sector"].index.equals(close.index) | CODE |
| HIGH | agent/tests/test_technical_indicator_tool.py | 290 | """Too few bars → indicators return null, but not error.""" | STRING |
| HIGH | agent/tests/test_technical_indicator_tool.py | 304 | # But SMA 20 should be null, SMA 50/200 null — only EMA 20 needs 20 bars, null too | COMMENT |
| HIGH | agent/tests/test_kimi_reasoning_content.py | 511 | content=null; Moonshot kimi-k2.6 rejects that, so we normalize to ''.""" | STRING |
| HIGH⚡ | agent/tests/test_base_engine.py | 599 | assert close_df.index.equals(dates) | CODE |
| HIGH⚡ | agent/tests/test_base_engine.py | 600 | assert pos_df.index.equals(dates) | CODE |
| HIGH | agent/tests/test_strategy_discovery_harness.py | 643 | f"{row.regime}: multi-position breakeven must be null, got " | CODE |
| HIGH | agent/tests/quantlib/test_credit.py | 382 | assert out.index.equals(bond.index) | CODE |
| HIGH⚡ | agent/tests/factors/test_bench_strict.py | 71 | assert not a.equals(b) | CODE |
| HIGH | agent/cli/_legacy.py | 6039 | Windows footgun. Equivalent to running ``cd frontend && npm install | STRING |
| HIGH | agent/cli/commands/update.py | 25 | container the answer would be `git pull && docker compose up --build`, but | STRING |
| HIGH | agent/backtest/metrics.py | 261 | undefined, | CODE |
| HIGH | agent/backtest/rebalance_notes.py | 148 | ``_json_safe`` (non-finite -> null) and serialize with ``allow_nan=False`` | STRING |
| HIGH | agent/backtest/validation.py | 453 | strict parsers reject. Sanitize with :func:`_json_safe` (non-finite → null) | STRING |
| HIGH | agent/backtest/engines/base.py | 1339 | # Zero is always rejected (size = notional / price is undefined); | COMMENT |
| HIGH | agent/backtest/loaders/tushare_fundamentals.py | 149 | date (``f_ann_date`` when present and non-null, falling back to | STRING |
| HIGH | agent/backtest/loaders/ccxt_loader.py | 340 | if trade is None or mark is None or not trade.index.equals(mark.index): | CODE |
| HIGH | agent/backtest/loaders/yahoo_client.py | 229 | # A non-trading slot leaves OHLC null; skip rather than emit a NaN bar. | COMMENT |
| HIGH | agent/scripts/w4a_run_benches.py | 4 | cd agent && python scripts/w4a_run_benches.py | STRING |
| HIGH | agent/src/swarm/serialization.py | 44 | Returns ``None`` (an explicit null, not an absent key) when no task carries | STRING |
| HIGH | agent/src/quantlib/eventstudy.py | 223 | model (beta would be undefined). | STRING |
| HIGH | agent/src/quantlib/eventstudy.py | 470 | # Patell: the standardised CARs are unit-variance under the null, up to the | COMMENT |
| HIGH | agent/src/quantlib/multipletesting.py | 299 | The expected maximum Sharpe under the null, per-observation. Zero when | STRING |
| HIGH | agent/src/quantlib/fundmath.py | 337 | f"factor undefined), got {rate!r}" | CODE |
| HIGH | agent/src/quantlib/fundmath.py | 707 | undefined, and returning ``inf`` or ``0`` would both be wrong. | STRING |
| HIGH | agent/src/quantlib/var_backtest.py | 261 | if not ret_index.equals(var_index): | CODE |
| HIGH | agent/src/quantlib/credit.py | 632 | if len(bond_yields) != len(risk_free_yields) or not bond_yields.index.equals( | CODE |
| HIGH | agent/src/quantlib/timeseries.py | 178 | if not y_ser.index.equals(x_ser.index): | CODE |
| HIGH | agent/src/quantlib/valuation/dcf.py | 426 | (weights undefined), if the resulting weights are negative or do | STRING |
| HIGH | agent/src/quantlib/valuation/dcf.py | 752 | ``terminal_year_ebitda <= 0`` (an EV/EBITDA multiple is undefined); | STRING |
| HIGH | agent/src/tools/prediction_market_tool.py | 98 | ``winning_outcome`` null, where a price-only rule would have called them | STRING |
| HIGH | agent/src/strategy_discovery/facade.py | 431 | (fail-closed null) → min_sharpe → decay gate (stale rows excluded | STRING |
| HIGH | agent/src/factors/bench_runner_strict.py | 188 | """One-sample t-stat against zero (returns 0.0 if undefined).""" | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | agent/src/channels/feishu.py | 1020 | response = self._client.im.v1.message_reaction.create(request) | CODE |
| CRITICAL | agent/src/channels/feishu.py | 1061 | response = self._client.im.v1.message_reaction.delete(request) | CODE |
| CRITICAL | agent/src/channels/feishu.py | 1405 | response = self._client.im.v1.image.create(request) | CODE |
| CRITICAL | agent/src/channels/feishu.py | 1439 | response = self._client.im.v1.file.create(request) | CODE |
| CRITICAL | agent/src/channels/feishu.py | 1467 | response = self._client.im.v1.message_resource.get(request) | CODE |
| CRITICAL | agent/src/channels/feishu.py | 1502 | response = self._client.im.v1.message_resource.get(request) | CODE |
| CRITICAL | agent/src/channels/feishu.py | 1606 | response = self._client.im.v1.message.get(request) | CODE |
| CRITICAL | agent/src/channels/feishu.py | 1663 | response = self._client.im.v1.message.reply(request) | CODE |
| CRITICAL | agent/src/channels/feishu.py | 1713 | response = self._client.im.v1.message.create(request) | CODE |
| CRITICAL | agent/src/channels/feishu.py | 1765 | response = self._client.cardkit.v1.card.create(request) | CODE |
| CRITICAL | agent/src/channels/feishu.py | 1815 | response = self._client.cardkit.v1.card_element.content(request) | CODE |
| CRITICAL | agent/src/channels/feishu.py | 1847 | response = self._client.cardkit.v1.card.settings(request) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | agent/src/swarm/presets/etf_allocation_desk.yaml | 224 | ### Step 1: Three-Dimensional Trade-off | COMMENT |
| LOW⚡ | agent/src/swarm/presets/etf_allocation_desk.yaml | 229 | ### Step 2: Final Portfolio Weight Determination | COMMENT |
| LOW⚡ | agent/src/swarm/presets/etf_allocation_desk.yaml | 235 | ### Step 3: Portfolio Holdings Finalization | COMMENT |
| LOW⚡ | agent/src/swarm/presets/etf_allocation_desk.yaml | 239 | ### Step 4: Historical Backtest Execution | COMMENT |
| LOW⚡ | agent/src/swarm/presets/etf_allocation_desk.yaml | 245 | ### Step 5: Portfolio Performance Attribution | COMMENT |
| LOW⚡ | agent/src/swarm/presets/pairs_research_lab.yaml | 80 | ### Step 1: Unit-root preconditions | COMMENT |
| LOW⚡ | agent/src/swarm/presets/pairs_research_lab.yaml | 87 | ### Step 2: Cointegration tests | COMMENT |
| LOW | agent/src/swarm/presets/pairs_research_lab.yaml | 104 | ### Step 3: Mean-reversion parameters | COMMENT |
| LOW | agent/src/swarm/presets/pairs_research_lab.yaml | 118 | ### Step 4: Composite arb-value score (max 100) | COMMENT |
| LOW | agent/src/skills/thesis-tracker/SKILL.md | 23 | ## Step 1: Decide the Mode | COMMENT |
| LOW⚡ | agent/src/skills/performance-attribution/SKILL.md | 248 | ### Step 1: Aggregate Analysis | COMMENT |
| LOW⚡ | agent/src/skills/performance-attribution/SKILL.md | 256 | ### Step 2: Attribution Decomposition | COMMENT |
| LOW⚡ | agent/src/skills/performance-attribution/SKILL.md | 264 | ### Step 3: Style Analysis | COMMENT |
| LOW⚡ | agent/src/skills/performance-attribution/SKILL.md | 272 | ### Step 4: Conclusions and Recommendations | COMMENT |
| LOW | agent/src/skills/dividend-analysis/SKILL.md | 39 | ### Step 1: Normalize the Dividend | COMMENT |
| LOW | agent/src/skills/dividend-analysis/SKILL.md | 51 | ### Step 2: Check Coverage | COMMENT |
| LOW | agent/src/skills/dividend-analysis/SKILL.md | 67 | ### Step 3: Diagnose Dividend Growth Quality | COMMENT |
| LOW | agent/src/skills/dividend-analysis/SKILL.md | 84 | ### Step 4: Check Balance Sheet Flexibility | COMMENT |
| LOW | agent/src/skills/dividend-analysis/SKILL.md | 96 | ### Step 5: Separate Dividend Yield from Total Return | COMMENT |
| LOW | agent/src/skills/valuation-model/SKILL.md | 27 | #### Step 1: Forecast free cash flow (usually 5 years) | COMMENT |
| LOW | agent/src/skills/valuation-model/SKILL.md | 44 | #### Step 2: Calculate WACC | COMMENT |
| LOW | agent/src/skills/valuation-model/SKILL.md | 68 | #### Step 3: Terminal Value | COMMENT |
| LOW | agent/src/skills/valuation-model/SKILL.md | 78 | #### Step 4: Sensitivity Analysis | COMMENT |
| LOW | agent/src/skills/bottleneck-hunter/SKILL.md | 19 | ## Step 1: Super-Trend Confirmation | COMMENT |
| LOW | agent/src/skills/bottleneck-hunter/SKILL.md | 32 | ## Step 2: Physical Supply-Chain Decomposition | COMMENT |
| LOW | agent/src/skills/bottleneck-hunter/SKILL.md | 64 | ## Step 3: Bottleneck Identification — Finding "Choke Points" | COMMENT |
| LOW | agent/src/skills/bottleneck-hunter/SKILL.md | 79 | ## Step 4: Company Screening — From Bottleneck to Tickers | COMMENT |
| LOW | agent/src/skills/bottleneck-hunter/SKILL.md | 102 | ## Step 5: Cross-Validation — Don't Trust a Single Story | COMMENT |
| LOW | agent/src/skills/bottleneck-hunter/SKILL.md | 125 | ## Step 6: Output — Bottleneck Opportunity Board | COMMENT |
| LOW | agent/src/skills/bottleneck-hunter/SKILL.md | 167 | ## Step 7: Inventory Update — Maintain the Bottleneck Map | COMMENT |
| LOW | …gy-dev-manager/references/strategy_extraction_guide.md | 62 | ### Step 1: Identify the Strategy Type | COMMENT |
| LOW⚡ | …gy-dev-manager/references/strategy_extraction_guide.md | 75 | ### Step 2: Extract the Signal Generation Logic | COMMENT |
| LOW⚡ | …gy-dev-manager/references/strategy_extraction_guide.md | 85 | ### Step 3: Extract Entry Conditions | COMMENT |
| LOW⚡ | …gy-dev-manager/references/strategy_extraction_guide.md | 94 | ### Step 4: Extract Exit Conditions | COMMENT |
| LOW⚡ | …gy-dev-manager/references/strategy_extraction_guide.md | 103 | ### Step 5: Extract Position Sizing Rules | COMMENT |
| LOW⚡ | …gy-dev-manager/references/strategy_extraction_guide.md | 112 | ### Step 6: Extract Risk Management Parameters | COMMENT |
| LOW⚡ | …gy-dev-manager/references/strategy_extraction_guide.md | 122 | ### Step 7: Identify Required Data Inputs | COMMENT |
| LOW⚡ | …gy-dev-manager/references/strategy_extraction_guide.md | 131 | ### Step 8: Map to SignalEngine Template Parameters | COMMENT |
| LOW⚡ | …strategy-dev-manager/templates/factor_signal_engine.py | 44 | # Step 1: Compute raw factor values for each symbol | COMMENT |
| LOW⚡ | …strategy-dev-manager/templates/factor_signal_engine.py | 53 | # Step 2: Cross-sectional ranking | COMMENT |
| LOW | …strategy-dev-manager/templates/factor_signal_engine.py | 78 | # Step 3: Clip signals to [-1, 1] | COMMENT |
| LOW | agent/src/skills/macro-analysis/SKILL.md | 113 | ### Step 1: Data Collection and Current-State Description | COMMENT |
| LOW | agent/src/skills/macro-analysis/SKILL.md | 122 | ### Step 2: Cycle Positioning | COMMENT |
| LOW | agent/src/skills/macro-analysis/SKILL.md | 133 | ### Step 3: Policy Impact Assessment | COMMENT |
| LOW | agent/src/skills/macro-analysis/SKILL.md | 142 | ### Step 4: Asset Allocation Tilt | COMMENT |
| LOW | agent/src/skills/management-deep-dive/SKILL.md | 23 | ## Step 1: Identify Key People | COMMENT |
| LOW | agent/src/skills/management-deep-dive/SKILL.md | 39 | ## Step 2: CEO Circle of Competence | COMMENT |
| LOW | agent/src/skills/management-deep-dive/SKILL.md | 60 | ## Step 3: Integrity Assessment (most important) | COMMENT |
| LOW | agent/src/skills/management-deep-dive/SKILL.md | 93 | ## Step 4: Capital Allocation | COMMENT |
| LOW | agent/src/skills/management-deep-dive/SKILL.md | 118 | ## Step 5: Governance | COMMENT |
| LOW⚡ | agent/src/skills/management-deep-dive/SKILL.md | 142 | ## Step 6: Side Validation | COMMENT |
| LOW⚡ | agent/src/skills/management-deep-dive/SKILL.md | 150 | ## Step 7: Post-CEO Scenario | COMMENT |
| LOW⚡ | agent/src/skills/management-deep-dive/SKILL.md | 159 | ## Step 8: Output | COMMENT |
| LOW | agent/src/skills/management-deep-dive/SKILL.md | 181 | ## Step 9: Save | COMMENT |
| LOW⚡ | …/skills/cross-market-strategy/example_signal_engine.py | 38 | # Step 1: raw signals per market | COMMENT |
| LOW⚡ | …/skills/cross-market-strategy/example_signal_engine.py | 45 | # Step 2: volatility-adjusted weights | COMMENT |
| LOW | agent/src/skills/correlation-analysis/SKILL.md | 371 | # Step 1: estimate the cointegrating vector with OLS. | COMMENT |
| LOW | agent/src/skills/correlation-analysis/SKILL.md | 378 | # Step 2: test residual stationarity with ADF. | COMMENT |
| LOW | agent/src/channels/dingtalk.py | 743 | # Step 1: Exchange downloadCode for a temporary download URL | COMMENT |
| LOW | agent/src/channels/dingtalk.py | 758 | # Step 2: Download the file content | COMMENT |
| 6 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | agent/tests/test_china_a_engine.py | 218 | """A-share engine forces leverage=1.""" | STRING |
| MEDIUM⚡ | agent/tests/test_crypto_engine.py | 415 | """Spot (leverage=1) should never get liquidated.""" | STRING |
| MEDIUM⚡ | agent/tests/test_korea_equity_engine.py | 265 | # apply_slippage + leverage | COMMENT |
| MEDIUM⚡ | agent/tests/test_korea_equity_engine.py | 291 | # Cash equity is forced to 1.0 leverage regardless of config input. | COMMENT |
| MEDIUM | agent/tests/test_equity_regression.py | 93 | """Different leverage values produce correct margin calculations.""" | STRING |
| MEDIUM⚡ | agent/tests/test_china_futures_engine.py | 279 | """IF margin=12% → leverage≈8.33.""" | STRING |
| MEDIUM⚡ | agent/tests/test_consent_commit.py | 84 | # Cash-only ceiling => no profile may request leverage. | COMMENT |
| MEDIUM⚡ | agent/tests/test_consent_commit.py | 298 | # H9: commit-time ceiling re-check is alias-robust (no silent NO-OP) | COMMENT |
| MEDIUM⚡ | agent/tests/test_india_equity_engine.py | 146 | # apply_slippage + leverage | COMMENT |
| MEDIUM⚡ | agent/tests/test_india_equity_engine.py | 155 | # Cash delivery is forced to 1.0 leverage regardless of config input. | COMMENT |
| MEDIUM | agent/tests/test_mandate_enforcement.py | 198 | # Leverage (quantitative): tiny funding makes 1x leverage breach. | COMMENT |
| MEDIUM | agent/tests/quantlib/test_volatility.py | 90 | """A leverage-effect correlation must make low strikes the expensive ones. | STRING |
| MEDIUM | agent/backtest/engines/global_futures.py | 139 | # Leverage: most futures have 5-15% margin → 7-20x leverage. | COMMENT |
| MEDIUM | agent/backtest/engines/global_futures.py | 141 | # User can override via config["leverage"]. | COMMENT |
| MEDIUM | agent/backtest/engines/china_futures.py | 141 | # Derive leverage from margin rate of first code, or use config override | COMMENT |
| MEDIUM | agent/backtest/engines/china_futures.py | 247 | """Derive leverage from this contract's own margin requirement.""" | STRING |
| MEDIUM | agent/backtest/engines/vietnam_equity.py | 378 | config = {**config, "leverage": 1.0} # cash equity: no leverage | CODE |
| MEDIUM | agent/backtest/engines/india_equity.py | 50 | config = {**config, "leverage": 1.0} # cash delivery: no leverage | CODE |
| MEDIUM | agent/backtest/engines/china_a.py | 32 | config = {**config, "leverage": 1.0} # A-shares: no leverage | CODE |
| MEDIUM | agent/backtest/engines/korea_equity.py | 158 | config = {**config, "leverage": 1.0} # cash equity: no leverage | CODE |
| MEDIUM | agent/backtest/engines/base.py | 733 | """Return leverage used to size and margin one symbol.""" | STRING |
| MEDIUM | agent/src/swarm/worker.py | 53 | """Resolve the heartbeat tick interval from env, robust to garbage values. | STRING |
| MEDIUM | agent/src/swarm/worker.py | 65 | """Resolve the delay before the single stream retry, robust to garbage. | STRING |
| MEDIUM | agent/src/quantlib/eventstudy.py | 489 | # makes it robust to the event itself having raised volatility. | COMMENT |
| MEDIUM | agent/src/tools/propose_mandate_tool.py | 243 | """Return the account type label ('cash' unless ceilings allow leverage).""" | STRING |
| MEDIUM | agent/src/strategy_discovery/facade.py | 59 | #: of which drive the evidence harness over reproducible run artifacts. | COMMENT |
| MEDIUM | agent/src/strategy_discovery/evidence_store.py | 72 | #: disposable — rows only ever come from a harness rebuild). | STRING |
| MEDIUM⚡ | agent/src/strategy_discovery/models.py | 33 | #: written (the harness computes over backtest artifacts), the remaining | COMMENT |
| MEDIUM | agent/src/strategy_discovery/models.py | 151 | #: ISO date string ("YYYY-MM-DD") of the last harness verification. | COMMENT |
| MEDIUM⚡ | agent/src/strategy_discovery/evidence_harness.py | 83 | #: Stage of every harness-produced row: the harness computes exclusively | COMMENT |
| MEDIUM | agent/src/live/enforcement.py | 548 | # 5–6. Exposure + leverage need symbol-level signed positions so a sell | COMMENT |
| MEDIUM | agent/src/live/enforcement.py | 570 | # 6. Gross leverage = post-trade gross exposure / account_funding_usd. | COMMENT |
| MEDIUM | agent/src/live/mandate/commit.py | 61 | #: daily trade cap, leverage, and instruments. | COMMENT |
| MEDIUM | agent/src/live/mandate/commit.py | 69 | # leverage (single spelling, mapped for completeness) | COMMENT |
| MEDIUM | agent/src/live/mandate/commit.py | 306 | # Cash-only ceiling forbids any leverage other than "none". | COMMENT |
| MEDIUM | agent/src/channels/dingtalk.py | 59 | # Parse using SDK's ChatbotMessage for robust handling | COMMENT |
| MEDIUM | agent/src/channels/signal.py | 699 | # Keep aliases of the bot account for robust mention matching. | COMMENT |
| LOW | agent/src/channels/weixin.py | 685 | # If quoted message is media, just pass the text | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docker-compose.yml | 21 | - vibe-runs:/app/agent/runs | COMMENT |
| LOW | requirements-lock.txt | 161 | --hash=sha256:f072f4d804ea359e4eaf198b1af7a8b0943881a87f31bb764f8bf219bb9419e0 | COMMENT |
| LOW | requirements-lock.txt | 1581 | # via | COMMENT |
| LOW | requirements-lock.txt | 3621 | --hash=sha256:82554af953ea5ac3d8771d42330493181031c7e68dccce03a491c7356e9ba4b2 \ | COMMENT |
| LOW | requirements-lock.txt | 3641 | # opentelemetry-api | COMMENT |
| LOW | requirements-channels-lock.txt | 161 | # httpcore | COMMENT |
| LOW | tools/ci_grep_gates.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | frontend/src/components/layout/Layout.tsx | 321 | // src/i18n/index.ts. Persists the choice via i18next's localStorage detector | COMMENT |
| LOW | wiki/functions/_middleware.js | 1 | // In-path traffic classifier for vibetrading.wiki (Cloudflare Pages Function). | COMMENT |
| LOW | wiki/functions/api/stats.js | 1 | // GET /api/stats — aggregate numbers for the wiki footer. | COMMENT |
| LOW | desktop/electron/requirements-windows-lock.txt | 161 | --hash=sha256:f072f4d804ea359e4eaf198b1af7a8b0943881a87f31bb764f8bf219bb9419e0 | COMMENT |
| LOW | desktop/electron/requirements-windows-lock.txt | 1221 | # langgraph-sdk | COMMENT |
| LOW | desktop/electron/requirements-windows-lock.txt | 2701 | # via | COMMENT |
| LOW | desktop/electron/requirements-windows-lock.txt | 3161 | # akshare | COMMENT |
| LOW | desktop/electron/requirements-windows-lock.txt | 3601 | --hash=sha256:55b0b0dbd97462d06ebee91e4dac24ed4d4702be82b24f07e6c1d27e08cea220 \ | COMMENT |
| LOW | desktop/electron/requirements-windows-lock.txt | 3621 | # fastapi | COMMENT |
| LOW | agent/requirements-channels.txt | 1 | # Channel SDK dependencies baked into the Docker image. | COMMENT |
| LOW | agent/mcp_server.py | 1781 | "loader_resolver": _get_loader, | COMMENT |
| LOW | agent/mcp_server.py | 2341 | # get_institutional_holdings / etf_holdings / prediction_market / | COMMENT |
| LOW | agent/mcp_server.py | 2361 | # turns any failure into a JSON error envelope rather than a transport error. | COMMENT |
| LOW | agent/tests/conftest.py | 21 | # Sandbox the config runtime root BEFORE any test module is imported (#1116). | COMMENT |
| LOW | agent/tests/conftest.py | 41 | # consults ``VIBE_TRADING_HOME`` first and only falls back to | COMMENT |
| LOW | agent/tests/conftest.py | 61 | COMMENT | |
| LOW | agent/tests/test_orderbook_depth_tool.py | 61 | # The four-level book used for the impact-cost hand-calc tests. | COMMENT |
| LOW | agent/tests/test_readme_counts.py | 61 | COMMENT | |
| LOW | agent/tests/test_research_papers_tool.py | 721 | } | COMMENT |
| LOW | agent/tests/test_mcp_new_tools.py | 21 | COMMENT | |
| LOW | agent/tests/quantlib/valuation/test_dcf.py | 41 | fcff_bridge, | COMMENT |
| LOW | agent/tests/quantlib/valuation/test_dcf.py | 61 | # | COMMENT |
| LOW | agent/cli/main.py | 841 | """Render the bottom hint bar in muted style.""" | COMMENT |
| LOW | agent/cli/_legacy.py | 941 | return "" | COMMENT |
| LOW | agent/cli/_legacy.py | 3061 | "[yellow]No GitHub credential found.[/yellow]\n" | COMMENT |
| LOW | agent/cli/_legacy.py | 5941 | # --------------------------------------------------------------------------- | COMMENT |
| LOW | agent/backtest/metrics.py | 21 | # rest of this annualisation table; the key fix is that intraday mootdx/futu no | COMMENT |
| LOW | agent/backtest/metrics.py | 41 | "india_broker": 252, | COMMENT |
| LOW | agent/backtest/runner.py | 301 | # exposure is that once ``SignalEngine`` is instantiated and ``.generate()`` is | COMMENT |
| LOW | agent/backtest/runner.py | 341 | "aiohttp", | COMMENT |
| LOW | agent/backtest/engines/_market_hooks.py | 41 | (re.compile(r"^[A-Z]+-USDT$", re.I), "crypto"), | COMMENT |
| LOW | agent/backtest/engines/base.py | 481 | #: Bar fields consulted, in order, for the price-limit base price. | COMMENT |
| LOW | agent/backtest/loaders/registry.py | 121 | COMMENT | |
| LOW | agent/backtest/loaders/registry.py | 161 | "macro": ["akshare", "tushare", "local"], | COMMENT |
| LOW | agent/src/swarm/worker.py | 281 | # The code-writing/report-file workflow below only makes sense for an | COMMENT |
| LOW | agent/src/quantlib/fundmath.py | 1321 | # itself is not a rate and cannot be annualized. | COMMENT |
| LOW | agent/src/quantlib/fundmath.py | 1861 | guess=guess, | COMMENT |
| LOW | agent/src/quantlib/factormodel.py | 81 | COMMENT | |
| LOW | agent/src/quantlib/valuation/threestatement.py | 101 | COMMENT | |
| LOW | agent/src/quantlib/valuation/dcf.py | 121 | ] | COMMENT |
| LOW | agent/src/quantlib/valuation/comps.py | 141 | COMMENT | |
| LOW | agent/src/tools/redaction.py | 101 | #: Keys that stay sensitive in the ARGUMENTS / audit sink but are released in | COMMENT |
| LOW | agent/src/tools/redaction.py | 341 | #: | COMMENT |
| LOW | agent/src/tools/etf_holdings_tool.py | 121 | # report in bulk, so the newest *period* can be picked without downloading a | COMMENT |
| LOW | agent/src/tools/etf_holdings_tool.py | 801 | # ``var apidata={ content:"<html>",arryear:[2026,...],curyear:2026};`` | COMMENT |
| LOW | agent/src/tools/symbol_search_tool.py | 41 | # (``Expecting value: line 1 column 1 (char 0)``) instead of a clean empty | COMMENT |
| LOW | agent/src/tools/institutional_holdings_tool.py | 141 | _MAX_HOLDER_SAMPLE = 25 | COMMENT |
| LOW | agent/src/tools/institutional_holdings_tool.py | 181 | _AMENDMENT_ROLES = {"RESTATEMENT": _ROLE_RESTATEMENT, "NEW HOLDINGS": _ROLE_NEW_HOLDINGS} | COMMENT |
| LOW | agent/src/config/schema.py | 21 | "ibkr.com": "ibkr", | COMMENT |
| LOW | agent/src/config/schema.py | 181 | # Canonical seed for the operator-side ``~/.vibe-trading/agent.json`` mcpServers | COMMENT |
| LOW | agent/src/security/scanner.py | 81 | COMMENT | |
| LOW | agent/src/strategy_discovery/models.py | 101 | #: Evidence-window age (days since the latest ``date_ranges`` window ended) | COMMENT |
| LOW | agent/src/strategy_discovery/evidence_harness.py | 81 | SHARPE_ANNUALIZATION_BARS = 252 | COMMENT |
| 21 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | agent/src/swarm/presets/etf_allocation_desk.yaml | 224 | ### Step 1: Three-Dimensional Trade-off | COMMENT |
| LOW⚡ | agent/src/swarm/presets/etf_allocation_desk.yaml | 229 | ### Step 2: Final Portfolio Weight Determination | COMMENT |
| LOW⚡ | agent/src/swarm/presets/etf_allocation_desk.yaml | 235 | ### Step 3: Portfolio Holdings Finalization | COMMENT |
| LOW⚡ | agent/src/swarm/presets/etf_allocation_desk.yaml | 239 | ### Step 4: Historical Backtest Execution | COMMENT |
| LOW⚡ | agent/src/swarm/presets/etf_allocation_desk.yaml | 245 | ### Step 5: Portfolio Performance Attribution | COMMENT |
| LOW⚡ | agent/src/swarm/presets/pairs_research_lab.yaml | 80 | ### Step 1: Unit-root preconditions | COMMENT |
| LOW⚡ | agent/src/swarm/presets/pairs_research_lab.yaml | 87 | ### Step 2: Cointegration tests | COMMENT |
| LOW | agent/src/swarm/presets/pairs_research_lab.yaml | 104 | ### Step 3: Mean-reversion parameters | COMMENT |
| LOW | agent/src/swarm/presets/pairs_research_lab.yaml | 118 | ### Step 4: Composite arb-value score (max 100) | COMMENT |
| LOW⚡ | …strategy-dev-manager/templates/factor_signal_engine.py | 44 | # Step 1: Compute raw factor values for each symbol | COMMENT |
| LOW⚡ | …strategy-dev-manager/templates/factor_signal_engine.py | 53 | # Step 2: Cross-sectional ranking | COMMENT |
| LOW | …strategy-dev-manager/templates/factor_signal_engine.py | 78 | # Step 3: Clip signals to [-1, 1] | COMMENT |
| LOW⚡ | …/skills/cross-market-strategy/example_signal_engine.py | 38 | # Step 1: raw signals per market | COMMENT |
| LOW⚡ | …/skills/cross-market-strategy/example_signal_engine.py | 45 | # Step 2: volatility-adjusted weights | COMMENT |
| LOW | agent/src/channels/dingtalk.py | 743 | # Step 1: Exchange downloadCode for a temporary download URL | COMMENT |
| LOW | agent/src/channels/dingtalk.py | 758 | # Step 2: Download the file content | COMMENT |
| LOW | agent/src/channels/weixin.py | 1375 | # Step 1: Get upload URL from server (prefer upload_full_url, fallback to upload_param) | COMMENT |
| LOW | agent/src/channels/weixin.py | 1399 | # Step 2: AES-128-ECB encrypt and POST to CDN | COMMENT |
| LOW | agent/src/channels/weixin.py | 1427 | # Step 3: Send message with the media item | COMMENT |
| LOW | agent/src/channels/wecom.py | 438 | # Step 1: init | COMMENT |
| LOW | agent/src/channels/wecom.py | 455 | # Step 2: send chunks | COMMENT |
| LOW | agent/src/channels/wecom.py | 467 | # Step 3: finish | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | agent/backtest/loaders/rsshub_events.py | 48 | #: knowable only on the next calendar day, matching the event-driven skill's | COMMENT |
| MEDIUM | agent/backtest/loaders/sina_loader.py | 40 | # assignment/paren scaffolding around it. | COMMENT |
| MEDIUM⚡ | agent/src/quantlib/valuation/dcf.py | 1173 | # Top-level orchestration | COMMENT |
| MEDIUM | agent/src/tools/quantlib_tool.py | 97 | #: numbers into a context window helps nobody. | COMMENT |
| MEDIUM | agent/src/tools/block_trades_tool.py | 41 | # context window. Eastmoney paginates; we pull one bounded page. | COMMENT |
| MEDIUM | agent/src/config/schema.py | 25 | # bypassable: a Robinhood agentic URL placed under any other key (e.g. ``rh``) | COMMENT |
| MEDIUM | agent/src/providers/capabilities.py | 114 | # GLM thinking models (glm-4.5+/glm-5.x) stream the chain-of-thought as | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | agent/tests/test_session_search.py | 203 | # Create a fake session directory | COMMENT |
| MEDIUM | agent/tests/test_strategy_store.py | 854 | # Create a new store instance pointing to the same DB | COMMENT |
| MEDIUM | agent/tests/test_ocr_integration.py | 67 | # Create a synthetic "scanned" PDF: render text as image, save as PDF | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …nd/src/components/charts/AttributionWaterfallChart.tsx | 105 | name: "placeholder", | CODE |
| LOW | frontend/src/i18n/locales/ja.json | 533 | "placeholder": "例: 000001.SZ で単純な移動平均戦略を2024年について検証する", | CODE |
| LOW | frontend/src/i18n/locales/de.json | 538 | "placeholder": "z. B. Testen Sie eine einfache Moving-Average-Strategie auf 000001.SZ über 2024", | CODE |
| LOW | frontend/src/i18n/locales/zh-CN.json | 533 | "placeholder": "例如:为 000001.SZ 创建双均线交叉策略,回测 2024 年", | CODE |
| LOW | frontend/src/i18n/locales/en.json | 538 | "placeholder": "e.g. Test a simple moving-average strategy on 000001.SZ over 2024", | CODE |
| LOW | frontend/src/i18n/locales/ko.json | 533 | "placeholder": "예: 000001.SZ의 단순 이동평균 전략을 2024년 구간에서 테스트", | CODE |
| LOW | frontend/src/i18n/locales/es.json | 538 | "placeholder": "ej. Probar una estrategia simple de media móvil en 000001.SZ durante 2024", | CODE |
| LOW | frontend/src/i18n/locales/ar.json | 533 | "placeholder": "مثال: اختبر استراتيجية بسيطة للمتوسط المتحرك على 000001.SZ خلال عام 2024", | CODE |
| LOW | agent/tests/test_settings_api.py | 179 | @pytest.mark.parametrize("placeholder", ["sk-xxx", "xxx", "gsk_xxx"]) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …trategy-dev-manager/references/scheduled_decay_scan.md | 66 | -H "Authorization: Bearer <your-api-key>" \ | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | agent/src/channels/wecom.py | 418 | # Read file size and data in a thread to avoid blocking the event loop | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | agent/tests/test_skill_writer_tools.py | 293 | path="templates/helper.py", content="def helper(): pass", | CODE |
| LOW | agent/tests/test_backtest_runner_security.py | 714 | " def helper(cls):", | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | agent/src/tools/skill_writer_tool.py | 8 | examples/ # Example usage | STRING |