All-in-one AI desktop app: one-click install for Claude Code, Codex CLI, DeepSeek and more, manage AI accounts and quotas, smart model routing with auto-failover, voice input, and run local LLMs. Bonus: a Token Pet that grows as you use AI.
This report summarizes scanner evidence for edison7009/EchoBird, a Rust project with 3,479 GitHub stars. SynthScan examined 346,349 lines of code across 1113 source files, recording 298 pattern matches distributed across 15 syntactic categories. The legacy adjusted pattern signal is 1.6 (Low 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.
Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.
Can maintainers explain intent, assumptions, and trade-offs? 188 finding(s).
Are imports declared and package/API names verified? 9 finding(s).
Are wrappers, guards, and repeated structures necessary? 154 finding(s).
Which changes need focused human review? 298 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 298 distinct pattern matches across 15 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 |
|---|---|---|---|---|
| MEDIUM | docs/install.sh | 182 | # ── macOS ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | docs/install.sh | 268 | # ── Linux ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | docs/support/index.html | 569 | // ╔══════════════════════════════════════════════════════════════════╗ | COMMENT |
| MEDIUM | docs/support/index.html | 571 | // ╚══════════════════════════════════════════════════════════════════╝ | COMMENT |
| MEDIUM | docs/support/index.html | 593 | // ╔══════════════════════════════════════════════════════════════════╗ | COMMENT |
| MEDIUM | docs/support/index.html | 595 | // ╚══════════════════════════════════════════════════════════════════╝ | COMMENT |
| MEDIUM⚡ | docs/support/index.html | 651 | // ╔══════════════════════════════════════════════════════════════════╗ | COMMENT |
| MEDIUM⚡ | docs/support/index.html | 653 | // ╚══════════════════════════════════════════════════════════════════╝ | COMMENT |
| MEDIUM⚡ | docs/support/index.html | 662 | // ╔══════════════════════════════════════════════════════════════════╗ | COMMENT |
| MEDIUM⚡ | docs/support/index.html | 664 | // ╚══════════════════════════════════════════════════════════════════╝ | COMMENT |
| MEDIUM | docs/support/index.html | 712 | // ╔══════════════════════════════════════════════════════════════════╗ | COMMENT |
| MEDIUM | docs/support/index.html | 714 | // ╚══════════════════════════════════════════════════════════════════╝ | COMMENT |
| MEDIUM | scripts/build_en_pulse.py | 43 | # ─── Config ─────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | scripts/build_en_pulse.py | 75 | # ─── HTTP helpers ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | scripts/build_en_pulse.py | 98 | # ─── Source 1: Hacker News Algolia API ──────────────────────────────────────── | COMMENT |
| MEDIUM | scripts/build_en_pulse.py | 167 | # ─── Source 2: RSS feeds (AI labs, tech media, arXiv) ───────────────────────── | COMMENT |
| MEDIUM⚡ | scripts/build_en_pulse.py | 187 | # ── AI labs ───────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | scripts/build_en_pulse.py | 196 | # ── Tech media (general feeds, need keyword filter) ───── | COMMENT |
| MEDIUM⚡ | scripts/build_en_pulse.py | 200 | # ── arXiv (per-category feeds, all AI-relevant) ───────── | COMMENT |
| MEDIUM⚡ | scripts/build_en_pulse.py | 207 | # ── Reddit communities (RSS) ──────────────────────────── | COMMENT |
| MEDIUM⚡ | scripts/build_en_pulse.py | 214 | # ── Newsletters / analyst blogs ───────────────────────── | COMMENT |
| MEDIUM | scripts/build_en_pulse.py | 303 | # ─── Merge + write ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src-tauri/src/lib.rs | 514 | // ───────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src-tauri/src/lib.rs | 516 | // ───────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src-tauri/src/services/ai_career.rs | 38 | // ─── Tool families ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src-tauri/src/services/ai_career.rs | 157 | // ─── Wire types (snake_case to match the ported frontend) ──────────────── | COMMENT |
| MEDIUM | src-tauri/src/services/ai_career.rs | 217 | // ─── Title extraction helpers ──────────────────────────────────────────── | COMMENT |
| MEDIUM | src-tauri/src/services/ai_career.rs | 280 | // ─── Per-family parsers ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src-tauri/src/services/ai_career.rs | 756 | // ─── Directory walking ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src-tauri/src/services/ai_career.rs | 807 | // ─── OpenCode (SQLite) ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src-tauri/src/services/ai_career.rs | 1166 | // ─── Message counting (heatmap) ────────────────────────────────────────── | COMMENT |
| MEDIUM | src-tauri/src/services/ai_career.rs | 1195 | // ─── Hermes (SQLite) ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src-tauri/src/services/ai_career.rs | 1680 | // ─── DeepSeek Harness (dsh) ────────────────────────────────────────────── | COMMENT |
| MEDIUM | src-tauri/src/services/ai_career.rs | 1976 | // ─── Heatmap count cache ───────────────────────────────────────────────── | COMMENT |
| MEDIUM | src-tauri/src/services/ai_career.rs | 2113 | // ─── Public entry points (called by ai_career_commands) ────────────────── | COMMENT |
| MEDIUM | src-tauri/src/services/ai_career.rs | 3903 | // ── Bug A: sub-agent filtering ─────────────────────────────────────── | COMMENT |
| MEDIUM | src-tauri/src/services/ai_career.rs | 3947 | // ── Bug B: Codex Desktop file-preamble title stripping ────────────── | COMMENT |
| MEDIUM | src-tauri/src/services/ai_career.rs | 4057 | // ── DeepSeek Harness (dsh) ─────────────────────────────────────────── | COMMENT |
| MEDIUM | src-tauri/src/services/codex_session_merge.rs | 190 | // ─── config.toml: the active provider ──────────────────────────────────── | COMMENT |
| MEDIUM | src-tauri/src/services/codex_session_merge.rs | 226 | // ─── state_*.sqlite: threads.model_provider ───────────────────────────── | COMMENT |
| MEDIUM | src-tauri/src/services/codex_session_merge.rs | 389 | // ─── rollout JSONL: session_meta.model_provider ───────────────────────── | COMMENT |
| MEDIUM | src-tauri/src/services/codex_session_merge.rs | 553 | // ─── helpers ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src-tauri/src/services/tool_config_manager.rs | 307 | // ════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | src-tauri/src/services/tool_config_manager.rs | 309 | // ════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | src-tauri/src/services/tool_config_manager.rs | 443 | // ════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | src-tauri/src/services/tool_config_manager.rs | 445 | // ════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | src-tauri/src/services/tool_config_manager.rs | 600 | // ════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | src-tauri/src/services/tool_config_manager.rs | 602 | // ════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | src-tauri/src/services/local_llm/gpu.rs | 536 | // ═══════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | src-tauri/src/services/local_llm/gpu.rs | 543 | // ═══════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | src-tauri/src/services/local_llm/model_store.rs | 2371 | // ── llama-server (always cheap — binary lookup, no pip) ────────────────── | COMMENT |
| MEDIUM | src-tauri/src/services/local_llm/model_store.rs | 2393 | // ── vllm / sglang — Linux-only + only when explicitly selected ─────────── | COMMENT |
| MEDIUM | src-tauri/src/services/tool_config_manager/aider.rs | 6 | // ════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | src-tauri/src/services/tool_config_manager/aider.rs | 8 | // ════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | src-tauri/src/services/tool_config_manager/aider.rs | 85 | // ════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | src-tauri/src/services/tool_config_manager/aider.rs | 87 | // ════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | src-tauri/src/services/tool_config_manager/kimicode.rs | 10 | // ════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | src-tauri/src/services/tool_config_manager/kimicode.rs | 25 | // ════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | src-tauri/src/services/tool_config_manager/opencode.rs | 10 | // ════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | src-tauri/src/services/tool_config_manager/opencode.rs | 13 | // ════════════════════════════════════════════════════════════════ | COMMENT |
| 33 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/build_en_pulse.py | 161 | "title_bilingual": title, | COMMENT |
| LOW | scripts/filter_pulse.py | 21 | from datetime import datetime, timedelta, timezone | COMMENT |
| LOW | .github/workflows/release.yml | 201 | # to race the publish: a 5-15 min window where in-app auto-updater told | COMMENT |
| LOW | .github/workflows/sync-version-manifest.yml | 1 | name: Sync Version Manifest | COMMENT |
| LOW | .github/workflows/sync-version-manifest.yml | 61 | # Policy: tag annotations are English (engineering audience), the | COMMENT |
| LOW | src-tauri/Cargo.toml | 21 | # Manager, tray, and menu APIs are used throughout services/. | COMMENT |
| LOW | src-tauri/src/lib.rs | 341 | ("en", "view") => "View".into(), | COMMENT |
| LOW | src-tauri/src/lib.rs | 521 | // handler below, which is the reason that plugin is permanently | COMMENT |
| LOW | src-tauri/src/models/tool.rs | 61 | #[serde(default)] | COMMENT |
| LOW | src-tauri/src/models/tool.rs | 81 | pub version: Option<String>, | COMMENT |
| LOW | src-tauri/src/models/tool.rs | 101 | /// used to launch MSIX/Store apps that have no plain .exe path. | COMMENT |
| LOW | src-tauri/src/models/tool.rs | 121 | /// Platform-specific install detection hints. Each field is checked only on | COMMENT |
| LOW | src-tauri/src/models/tool.rs | 141 | #[serde(default)] | COMMENT |
| LOW | src-tauri/src/models/tool.rs | 161 | // transparently falls back when models.json is absent. | COMMENT |
| LOW | src-tauri/src/models/tool.rs | 181 | /// - `format`: defaults to "json" | COMMENT |
| LOW | src-tauri/src/commands/mod_stub.rs | 1 | // Window lifecycle commands | COMMENT |
| LOW | src-tauri/src/commands/tool_commands.rs | 281 | let _ = path; | COMMENT |
| LOW | src-tauri/src/commands/tool_commands.rs | 301 | pub async fn open_tool_paths_config() -> Result<String, String> { | COMMENT |
| LOW | src-tauri/src/commands/pulse_commands.rs | 1 | //! Tauri IPC for the AI Pulse on-disk archive. | COMMENT |
| LOW | src-tauri/src/services/pulse_archive.rs | 1 | //! AI Pulse archive — per-day JSON files on disk. | COMMENT |
| LOW | src-tauri/src/services/pulse_archive.rs | 21 | use serde::{Deserialize, Serialize}; | COMMENT |
| LOW | src-tauri/src/services/datalog.rs | 1 | // Per-turn datalog for the agent loop. | COMMENT |
| LOW | src-tauri/src/services/json_repair.rs | 1 | // 3-layer JSON repair for LLM tool-call arguments. | COMMENT |
| LOW | src-tauri/src/services/self_update.rs | 1 | //! In-app self-update (Windows) — DIY flow. | COMMENT |
| LOW | src-tauri/src/services/ai_career.rs | 1 | //! "我的AI生涯" (My AI Career) data layer — cross-tool session history + | COMMENT |
| LOW | src-tauri/src/services/ai_career.rs | 221 | /// the user actually typed. | COMMENT |
| LOW | src-tauri/src/services/ai_career.rs | 481 | })) | COMMENT |
| LOW | src-tauri/src/services/ai_career.rs | 521 | /// `session_meta.originator == "Codex Desktop"`) packs attached-file | COMMENT |
| LOW | src-tauri/src/services/ai_career.rs | 801 | Ok(metadata) => Ok(Some(metadata)), | COMMENT |
| LOW | src-tauri/src/services/ai_career.rs | 1681 | // | COMMENT |
| LOW | src-tauri/src/services/agent_loop.rs | 21 | COMMENT | |
| LOW | src-tauri/src/services/agent_loop.rs | 1341 | /// budget while the following user message carrying | COMMENT |
| LOW | src-tauri/src/services/agent_loop.rs | 1681 | ) | COMMENT |
| LOW | src-tauri/src/services/model_directory.rs | 1 | // Model directory: serve the right-panel Providers + Relays list to the | COMMENT |
| LOW | src-tauri/src/services/auto_fix.rs | 1 | // Post-action verification for known install/repair intents. | COMMENT |
| LOW | src-tauri/src/services/windows_path.rs | 1 | //! Windows PATH hydration from the registry. | COMMENT |
| LOW | src-tauri/src/services/tool_manager.rs | 261 | }, | COMMENT |
| LOW | src-tauri/src/services/tool_manager.rs | 561 | { | COMMENT |
| LOW | src-tauri/src/services/tool_manager.rs | 621 | } | COMMENT |
| LOW | src-tauri/src/services/tool_manager.rs | 2021 | /// the CURRENT OS, expanded to concrete locations and normalised to forward | COMMENT |
| LOW | src-tauri/src/services/tool_manager.rs | 2061 | /// - `Some(empty object)` to force a full seed (file missing — every tool is | COMMENT |
| LOW | src-tauri/src/services/codex_session_merge.rs | 1 | //! Cross-provider Codex history merge. | COMMENT |
| LOW | src-tauri/src/services/codex_session_merge.rs | 21 | //! whatever relay-mode wrote), so the merge can never tag sessions to a | COMMENT |
| LOW | src-tauri/src/services/parasite.rs | 1 | // Parasite — wrap an installed AI agent CLI (currently just Claude Code) as a | COMMENT |
| LOW | src-tauri/src/services/codex_catalog.rs | 1 | // Codex model-catalog generation — per-vendor capability templates, embedded | COMMENT |
| LOW | src-tauri/src/services/codex_catalog.rs | 21 | // | COMMENT |
| LOW | src-tauri/src/services/llm_client.rs | 1 | // LLM Client — supports OpenAI and Anthropic APIs with SSE streaming | COMMENT |
| LOW | src-tauri/src/services/llm_client.rs | 461 | // ── Anthropic ── | COMMENT |
| LOW | src-tauri/src/services/llm_client.rs | 481 | // 4. otherwise (bare host, /anthropic on | COMMENT |
| LOW | src-tauri/src/services/llm_client.rs | 941 | } | COMMENT |
| LOW | src-tauri/src/services/llm_client.rs | 981 | /// 3. JSON `{ "message": "..." }` (top-level flat) | COMMENT |
| LOW | src-tauri/src/services/llm_client.rs | 1081 | struct OpenedStream { | COMMENT |
| LOW | src-tauri/src/services/llm_client.rs | 1181 | /// `tool_result` in the *immediately following* user message — splitting | COMMENT |
| LOW | src-tauri/src/services/tool_config_manager.rs | 121 | #[serde(skip_serializing_if = "Option::is_none")] | COMMENT |
| LOW | src-tauri/src/services/bundled_assets.rs | 1 | // Bundled install/script assets — embedded at compile time via include_str!. | COMMENT |
| LOW | src-tauri/src/services/bundled_assets.rs | 21 | /// flow reads. Constructed by the public crate (the only place where | COMMENT |
| LOW | src-tauri/src/services/bundled_assets.rs | 41 | /// [`MOTHER_SYSTEM_PROMPT`]. | COMMENT |
| LOW | src-tauri/src/services/bundled_assets.rs | 61 | /// missing, tiny11/Atlas/ReviOS markers) that explain most CUDA pain | COMMENT |
| LOW | src-tauri/src/services/process_manager.rs | 221 | // Desktop apps load provider config at startup, so switching the model | COMMENT |
| LOW | src-tauri/src/services/process_manager.rs | 321 | // is UWP-specific; on macOS/Linux this would shadow the platform-correct | COMMENT |
| 28 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/refresh_free_models.py | 162 | def load_freellmapi_candidates() -> tuple[dict[str, set[str]], dict[str, Any]]: | STRING |
| LOW | scripts/refresh_free_models.py | 363 | def find_models_needing_review( | STRING |
| LOW | scripts/filter_pulse.py | 80 | def normalize_future_timestamps(payload: dict) -> int: | CODE |
| LOW | scripts/tests/test_filter_pulse.py | 10 | def test_filters_promotions_and_blocked_hosts_without_removing_real_news(self): | CODE |
| LOW | scripts/tests/test_refresh_free_models.py | 32 | def test_parses_provider_and_continuation_rows(self) -> None: | CODE |
| LOW | scripts/tests/test_refresh_free_models.py | 53 | def test_excludes_non_chat_specialists(self) -> None: | STRING |
| LOW | scripts/tests/test_refresh_free_models.py | 61 | def test_preserves_fixed_entries_metadata_and_order_when_appending(self) -> None: | STRING |
| LOW | scripts/tests/test_refresh_free_models.py | 78 | def test_deduplicates_case_insensitively_and_repeat_run_is_unchanged(self) -> None: | STRING |
| LOW | scripts/tests/test_refresh_free_models.py | 91 | def test_adds_only_candidates_confirmed_by_official_endpoint(self) -> None: | STRING |
| LOW | scripts/tests/test_refresh_free_models.py | 115 | def test_no_addition_leaves_update_date_untouched(self) -> None: | STRING |
| LOW | scripts/tests/test_refresh_free_models.py | 133 | def test_catalog_validation_rejects_duplicate_ids(self) -> None: | STRING |
| LOW | scripts/tests/test_refresh_free_models.py | 143 | def test_reports_missing_models_without_removing_them(self) -> None: | STRING |
| LOW | scripts/tests/test_refresh_free_models.py | 158 | def test_redacts_query_parameter_secrets(self) -> None: | STRING |
| LOW | scripts/tests/test_refresh_free_models.py | 188 | def test_all_discovery_sources_failing_does_not_write_or_verify(self) -> None: | STRING |
| LOW | scripts/tests/test_refresh_free_models.py | 200 | def test_partial_failure_preserves_fixed_entries_and_adds_verified_model(self) -> None: | STRING |
| LOW | scripts/tests/test_refresh_free_models.py | 220 | def test_dry_run_and_verification_failure_do_not_write_catalog(self) -> None: | STRING |
| LOW | src-tauri/src/services/voice_input/wayland_kwin.js | 1 | function reportEchoBirdApplication() { | CODE |
| LOW | src/main.tsx | 122 | function showWindowAfterFirstPaint(): void { | CODE |
| LOW | src/utils/windowVisibility.ts | 15 | export function subscribeWindowVisibility(callback: () => void) { | CODE |
| LOW | src/utils/windowVisibility.ts | 28 | export function initializeWindowVisibility(): () => void { | CODE |
| LOW | src/utils/accountError.ts | 4 | export function isAccountAuthorizationError(error: unknown): boolean { | CODE |
| LOW | src/components/DesktopCharacterBackground.tsx | 12 | export function DesktopCharacterBackground() { | CODE |
| LOW | src/api/freeModels.ts | 36 | export async function getCachedFreeModelDirectory(): Promise<FreeModelDirectory | null> { | CODE |
| LOW | src/api/tauri.ts | 69 | export async function captureCurrentCodexAccount(): Promise<CodexAccount> { | CODE |
| LOW | src/api/tauri.ts | 224 | export async function refreshClaudeCodeAccountQuota(accountId: string): Promise<ClaudeCodeAccount> { | CODE |
| LOW | src/api/tauri.ts | 240 | export function listClaudeDesktopAccounts(): Promise<ClaudeCodeAccount[]> { | CODE |
| LOW⚡ | src/api/tauri.ts | 252 | export function switchClaudeDesktopAccount(accountId: string): Promise<ClaudeCodeAccount> { | CODE |
| LOW⚡ | src/api/tauri.ts | 255 | export function refreshClaudeDesktopAccount(accountId: string): Promise<ClaudeCodeAccount> { | CODE |
| LOW⚡ | src/api/tauri.ts | 258 | export function deleteClaudeDesktopAccount(accountId: string): Promise<void> { | CODE |
| LOW | src/api/tauri.ts | 484 | export function refreshWorkBuddyAccountQuota( | CODE |
| LOW | src/api/tauri.ts | 490 | export function claimWorkBuddyDailyCredits( | CODE |
| LOW | src/api/tauri.ts | 529 | export function refreshDeepSeekAccountQuota( | CODE |
| LOW | src/api/tauri.ts | 717 | export function refreshAntigravityAccount(accountId: string): Promise<AntigravityAccount> { | CODE |
| LOW | src/api/accountProxy.ts | 84 | export function accountModelPickerOptions( | CODE |
| LOW | src/api/accountProxy.ts | 107 | export function getCachedAccountProxyModels(source: AccountSource): string[] | undefined { | CODE |
| LOW | src/api/routerStatistics.ts | 13 | export function getSmartRouterTokenCredits(): Promise<RouterTokenCredits> { | CODE |
| LOW | src/api/routerStatistics.ts | 75 | export function getSmartRouterStatisticsCatalog(): Promise<RouterStatisticsCatalog> { | CODE |
| LOW | src/api/models.ts | 27 | export function fetchUpstreamModelCatalog( | CODE |
| LOW | src/api/models.ts | 33 | export function getCachedUpstreamModelCatalog( | CODE |
| LOW | src/api/models.ts | 93 | export async function finishConnectionTestBatch(batchId: string): Promise<void> { | CODE |
| LOW | src/api/smartRouter.ts | 62 | export async function setSmartRouterCandidateEnabled( | CODE |
| LOW | src/api/smartRouter.ts | 90 | export async function removeSmartRouterCandidate( | CODE |
| LOW | src/api/smartRouter.ts | 118 | export function getSmartRouterAvailablePort(excludePort?: number): Promise<number> { | CODE |
| LOW | src/api/smartRouter.ts | 133 | export async function setSmartRouterGroupEnabled( | CODE |
| LOW | src/api/aiCareer.ts | 75 | export async function revealAiCareerSessionFile(path: string): Promise<void> { | CODE |
| LOW | src/pages/AppManager/AccountNavigation.test.tsx | 1247 | function expectPassiveAccountNavigation() { | CODE |
| LOW | src/pages/AppManager/MinimaxAccountSection.tsx | 15 | export function MinimaxAccountRegionChoice({ disabled }: { disabled?: boolean }) { | CODE |
| LOW | src/pages/AppManager/AppManagerComponents.tsx | 597 | function isModelCompatibleWithTool( | CODE |
| LOW | src/pages/AppManager/accountPlanLabel.ts | 62 | export function accountProxyIdentityLabel(account: ProxyAccount, t: (key: TKey) => string): string { | CODE |
| LOW | src/pages/MotherAgent/reasoningEnergyRenderer.ts | 96 | export function createReasoningEnergyRenderer( | CODE |
| LOW | …c/pages/MotherAgent/MotherAgentProtocolSwitch.test.tsx | 107 | function expectNoContextOrClientWrites() { | CODE |
| LOW | src/pages/AccountCenter/AccountCenter.tsx | 417 | export function AccountCenterTitleActions() { | CODE |
| LOW | src/pages/FreeModels/RouteModelSwitch.test.tsx | 270 | function expectNoConfigurationChanges() { | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src-tauri/assets/mother/system_prompt.md | 116 | ### Step 1: Platform Compatibility Check | COMMENT |
| LOW | src-tauri/assets/mother/system_prompt.md | 156 | ### Step 2: Download Speed Test (on the REMOTE server) | COMMENT |
| LOW | src-tauri/assets/mother/system_prompt.md | 176 | ### Step 3: Confirm and Proceed | COMMENT |
| LOW⚡ | src-tauri/assets/quick-actions/network-info.md | 5 | ## Step 1: Gather Network Info | COMMENT |
| LOW⚡ | src-tauri/assets/quick-actions/network-info.md | 14 | ## Step 2: Detect NAT Type | COMMENT |
| LOW⚡ | src-tauri/assets/quick-actions/network-info.md | 20 | ## Step 3: Check Existing Tunnel Software | COMMENT |
| LOW⚡ | src-tauri/assets/quick-actions/network-info.md | 29 | ## Step 4: Act Based on Results | COMMENT |
| LOW⚡ | src-tauri/assets/quick-actions/detect-cuda.md | 40 | ## Step 1: Platform Gate | COMMENT |
| LOW⚡ | src-tauri/assets/quick-actions/detect-cuda.md | 50 | ## Step 2: GPU Inventory | COMMENT |
| LOW⚡ | src-tauri/assets/quick-actions/detect-cuda.md | 60 | ## Step 3: NVIDIA Driver | COMMENT |
| LOW | src-tauri/assets/quick-actions/detect-cuda.md | 75 | ## Step 4: CUDA Modules — the main probe | COMMENT |
| LOW | src-tauri/assets/quick-actions/detect-cuda.md | 139 | ## Step 5: Windows Edition — the stripped / Home-edition trap | COMMENT |
| LOW | src-tauri/assets/quick-actions/detect-cuda.md | 183 | ## Step 6: Verdict Report | COMMENT |
| LOW | src-tauri/assets/quick-actions/detect-cuda.md | 238 | ## Step 7: Verdict + Next Step (exactly one) | COMMENT |
| LOW | src-tauri/assets/quick-actions/install-cuda.md | 41 | ## Step 0: Mandatory Pre-flight | COMMENT |
| LOW | src-tauri/assets/quick-actions/install-cuda.md | 59 | ## Step 1: NVIDIA Driver (if detect-cuda flagged missing) | COMMENT |
| LOW | src-tauri/assets/quick-actions/install-cuda.md | 70 | ## Step 2: User picks the Toolkit version | COMMENT |
| LOW | src-tauri/assets/quick-actions/install-cuda.md | 220 | ## Step 3: Modified Windows — Refuse, Don't Try | COMMENT |
| LOW | src-tauri/assets/quick-actions/install-cuda.md | 251 | ## Step 4: Standard Install Path | COMMENT |
| LOW | src-tauri/assets/quick-actions/install-cuda.md | 427 | ## Step 5: Verify Modules Are Reachable | COMMENT |
| LOW | src-tauri/assets/quick-actions/install-cuda.md | 449 | ## Step 6: Wrap-up | COMMENT |
| LOW | src-tauri/assets/quick-actions/install-git.md | 19 | ## Step 0: Presence check | COMMENT |
| LOW | src/pages/MotherAgent/MotherAgentPanel.tsx | 53 | // Step 1: Test SSH connectivity | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | docs/pulse/latest-7d-en.json | 574 | "url": "https://codingcat.dev/post/the-five-layers-of-agentic-context-why-canon-only-turns-when-someone-signs-off", | CODE |
| MEDIUM | docs/pulse/latest-7d-en.json | 3394 | "url": "https://www.intel.com/content/www/us/en/newsroom/news/corporate/intel-oracle-collaborate-on-enterprise-and-agent | CODE |
| MEDIUM | docs/pulse/latest-7d-en.json | 5389 | "url": "https://thebossmagazine.com/post/agentic-payments-ai-agents-retail-blocking/", | CODE |
| MEDIUM | docs/pulse/latest-7d-en.json | 6634 | "url": "https://tenstorrent.com/en/developers/blog/serving-prefill-and-decode-for-agentic-ai", | CODE |
| MEDIUM | docs/pulse/latest-7d-en.json | 7789 | "url": "https://jamiewatters.work/journey/three-assumptions-agentic-resilience", | CODE |
| MEDIUM | docs/pulse/latest-7d-en.json | 8494 | "url": "https://openai.com/index/legora-agentic-operating-system-for-legal-work", | CODE |
| MEDIUM | docs/pulse/latest-7d-en.json | 10894 | "url": "https://www.anthropic.com/news/donating-agent-skills-to-the-agentic-ai-foundation", | CODE |
| MEDIUM⚡ | …c-tauri/assets/codex-catalogs/stepfun-plan-models.json | 9 | "base_instructions": "You are a coding agent running in the Codex CLI, a terminal-based coding assistant. Codex CL | CODE |
| MEDIUM⚡ | …c-tauri/assets/codex-catalogs/stepfun-plan-models.json | 53 | "base_instructions": "You are a coding agent running in the Codex CLI, a terminal-based coding assistant. Codex CL | CODE |
| MEDIUM⚡ | …c-tauri/assets/codex-catalogs/stepfun-plan-models.json | 97 | "base_instructions": "You are a coding agent running in the Codex CLI, a terminal-based coding assistant. Codex CL | CODE |
| MEDIUM | src-tauri/src/services/smart_router/audit_tests.rs | 1800 | assert_eq!(classify_failure(StatusCode::TOO_MANY_REQUESTS,br#"{"error":{"code":"context_length_exceeded","message":" | CODE |
| MEDIUM | src-tauri/src/services/account_proxy/zcode_prompt.json | 6 | "afterEnvironment": "# Context management\nWhen the conversation grows long, some or all of the current context is summ | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | src-tauri/src/services/plugin_manager/tests.rs | 509 | assert!(candidate.manifest.echobird.contributes.pages.is_empty()); | CODE |
| CRITICAL | src/stores/pluginsStore.ts | 36 | plugin.manifest.echobird.contributes.pages.map((page) => ({ | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | …c-tauri/assets/codex-catalogs/stepfun-plan-models.json | 9 | "base_instructions": "You are a coding agent running in the Codex CLI, a terminal-based coding assistant. Codex CL | CODE |
| MEDIUM⚡ | …c-tauri/assets/codex-catalogs/stepfun-plan-models.json | 53 | "base_instructions": "You are a coding agent running in the Codex CLI, a terminal-based coding assistant. Codex CL | CODE |
| MEDIUM⚡ | …c-tauri/assets/codex-catalogs/stepfun-plan-models.json | 97 | "base_instructions": "You are a coding agent running in the Codex CLI, a terminal-based coding assistant. Codex CL | CODE |
| MEDIUM | src/App.tsx | 261 | // indistinguishable — showing the notes once on either is the robust | COMMENT |
| MEDIUM | src/components/chat/TerminalStatusBar.tsx | 2 | // Content scrolls continuously from left to left (doubling creates seamless loop). | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …-tauri/src/services/smart_router/content_protection.rs | 679 | | "your_api_key" | CODE |
| HIGH | …-tauri/src/services/smart_router/content_protection.rs | 680 | | "your-api-key" | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | …c-tauri/assets/codex-catalogs/stepfun-plan-models.json | 9 | "base_instructions": "You are a coding agent running in the Codex CLI, a terminal-based coding assistant. Codex CL | CODE |
| LOW⚡ | …c-tauri/assets/codex-catalogs/stepfun-plan-models.json | 53 | "base_instructions": "You are a coding agent running in the Codex CLI, a terminal-based coding assistant. Codex CL | CODE |
| LOW⚡ | …c-tauri/assets/codex-catalogs/stepfun-plan-models.json | 97 | "base_instructions": "You are a coding agent running in the Codex CLI, a terminal-based coding assistant. Codex CL | CODE |
| LOW | src-tauri/assets/codex-catalogs/deepseek.json | 48 | "instructions_template": "You are Codex, an agent based on GPT-5. You and the user share one workspace, and your job | CODE |
| LOW | src-tauri/assets/codex-catalogs/deepseek.json | 60 | "base_instructions": "You are Codex, an agent based on GPT-5. You and the user share one workspace, and your job is to | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/build_en_pulse.py | 84 | except Exception as e: | CODE |
| LOW | scripts/build_en_pulse.py | 127 | except Exception: | CODE |
| LOW | scripts/build_en_pulse.py | 228 | except Exception: | CODE |
| LOW | scripts/build_en_pulse.py | 239 | except Exception as e: | CODE |
| LOW | scripts/refresh_free_models.py | 171 | except Exception as error: # cryptography exposes backend-specific errors | STRING |
| LOW | scripts/refresh_free_models.py | 409 | except Exception as error: | STRING |
| LOW | scripts/refresh_free_models.py | 426 | except Exception as error: | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | scripts/build_en_pulse.py | 228 | except Exception: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/build_en_pulse.py | 27 | CODE | |
| LOW | scripts/refresh_free_models.py | 11 | CODE | |
| LOW | scripts/filter_pulse.py | 16 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | .github/workflows/release.yml | 14 | # Create the GitHub release ONCE, up front, so the matrix build jobs below | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docs/support/index.html | 553 | <div class="placeholder" data-t="log_placeholder"></div> | CODE |
| LOW | …/src/services/smart_router/content_protection/tests.rs | 32 | for preserved in ["user@example.com", "13800138000", "10.0.0.1"] { | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/pages/MotherAgent/MotherAgentPanel.tsx | 53 | // Step 1: Test SSH connectivity | COMMENT |