Self-evolving agent: grows skill tree from 3.3K-line seed, achieving full system control with 6x less token consumption
This report presents the forensic synthetic code analysis of lsdefine/GenericAgent, a Python project with 13,625 GitHub stars. SynthScan v2.0 examined 61,746 lines of code across 162 source files, recording 1236 pattern matches distributed across 15 syntactic categories. The overall adjusted score of 27.4 places this repository in the Moderate 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 1236 distinct pattern matches across 15 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | TMWebDriver.py | 77 | except Exception: traceback.print_exc() | CODE |
| LOW | TMWebDriver.py | 103 | except Exception as e: return json.dumps({'r': {'error': str(e)}}, ensure_ascii=False) | CODE |
| LOW | TMWebDriver.py | 105 | except Exception: pass | CODE |
| LOW | TMWebDriver.py | 155 | except Exception as e: | CODE |
| MEDIUM | TMWebDriver.py | 156 | safe_print(f"Error handling message: {e}") | CODE |
| MEDIUM | TMWebDriver.py | 128 | def handle(self) -> None: | CODE |
| LOW | agentmain.py | 13 | except Exception: pass | CODE |
| LOW | agentmain.py | 81 | except Exception as e: print(f'\n\n\n[ERROR] Failed to init MixinSession with cfg {s["mixin_cfg"]}: {e}! | CODE |
| LOW | agentmain.py | 115 | except Exception: pass | CODE |
| LOW | agentmain.py | 187 | except Exception as e: | CODE |
| LOW⚡ | agentmain.py | 279 | except Exception as e: print(f'[Reflect] reload error: {e}') | CODE |
| LOW⚡ | agentmain.py | 281 | except Exception as e: | CODE |
| LOW⚡ | agentmain.py | 291 | except Exception as e: | CODE |
| LOW⚡ | agentmain.py | 299 | except Exception as e: print(f'[Reflect] on_done error: {e}') | CODE |
| LOW⚡ | agentmain.py | 304 | except Exception: pass | CODE |
| LOW⚡ | agentmain.py | 308 | except Exception: model = '?' | CODE |
| LOW⚡ | agentmain.py | 313 | except Exception: pass | CODE |
| LOW | llmcore.py | 156 | except Exception as e: | CODE |
| LOW | llmcore.py | 462 | except Exception as e: | CODE |
| MEDIUM | simphtml.py | 837 | print(f"Error: {error_msg}") | CODE |
| LOW | simphtml.py | 833 | except Exception as e: | CODE |
| LOW | simphtml.py | 658 | except Exception as e: | STRING |
| LOW | simphtml.py | 720 | except Exception: print(f'[cutlist] skip invalid selector: {sel}'); continue | STRING |
| LOW | ga.py | 94 | except Exception as e: | CODE |
| LOW | ga.py | 146 | except Exception as e: | CODE |
| LOW | ga.py | 177 | except Exception as e: return {"status": "error", "msg": format_error(e)} | CODE |
| LOW | ga.py | 220 | except Exception as e: return {"status": "error", "msg": str(e)} | CODE |
| LOW | ga.py | 265 | except Exception: pass | CODE |
| LOW | ga.py | 267 | except Exception as e: return f"Error: {str(e)}" | CODE |
| LOW | ga.py | 324 | except Exception as e: result = f'Error: {e}' | CODE |
| LOW | ga.py | 423 | except Exception as e: | CODE |
| MEDIUM | ga.py | 48 | def stream_reader(proc, logs): | CODE |
| LOW | memory/checklist_helper.py | 93 | except Exception: return False | CODE |
| LOW | memory/adb_ui.py | 19 | except Exception as e: | CODE |
| LOW | memory/ui_detect.py | 50 | except Exception: return False | CODE |
| LOW | memory/ui_detect.py | 64 | except Exception: return _yolo_local(image_path, conf) | CODE |
| LOW | memory/ui_detect.py | 197 | except Exception as e: | CODE |
| MEDIUM | memory/ui_detect.py | 192 | def do_POST(self): | CODE |
| LOW | memory/vision_api.template.py | 28 | except Exception as e: | CODE |
| MEDIUM | memory/vision_api.template.py | 25 | def ask_vision(image_input, prompt="详细描述这张图片的内容", timeout=60, max_pixels=1440000 | CODE |
| LOW | memory/keychain.py | 34 | except Exception as e: | CODE |
| LOW | memory/macljqCtrl.py | 38 | except Exception: | CODE |
| LOW | memory/macljqCtrl.py | 64 | except Exception: | CODE |
| LOW | memory/macljqCtrl.py | 68 | except Exception: | CODE |
| LOW | memory/macljqCtrl.py | 230 | except Exception: pass | CODE |
| LOW | memory/macljqCtrl.py | 257 | except Exception: pass | CODE |
| LOW | memory/macljqCtrl.py | 332 | except Exception: | CODE |
| LOW | memory/macljqCtrl.py | 386 | except Exception: before = None | CODE |
| LOW | memory/macljqCtrl.py | 393 | except Exception: | CODE |
| LOW | memory/ljqCtrlBg.py | 13 | except Exception: pass | CODE |
| LOW | memory/ljqCtrlBg.py | 102 | except Exception: pass | CODE |
| LOW | memory/ljqCtrlBg.py | 109 | except Exception: pass | CODE |
| LOW | memory/procmem_scanner.py | 143 | except Exception as e: | CODE |
| MEDIUM | memory/procmem_scanner.py | 144 | print(f"Error: {e}") | CODE |
| LOW | memory/ljqCtrl.py | 95 | except Exception: | CODE |
| LOW | memory/autonomous_operation_sop/helper.py | 95 | except Exception as e: | CODE |
| LOW | memory/autonomous_operation_sop/helper.py | 113 | except Exception as e: | CODE |
| LOW | memory/L4_raw_sessions/compress_session.py | 18 | except Exception: return None | CODE |
| LOW | memory/L4_raw_sessions/compress_session.py | 185 | except Exception as e: | CODE |
| LOW | memory/L4_raw_sessions/compress_session.py | 230 | except Exception: pass | CODE |
| 574 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | mykey_template_en.py | 1 | # ══════════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | mykey_template_en.py | 3 | # ══════════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | mykey_template_en.py | 24 | # ══════════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | mykey_template_en.py | 27 | # ── 1. NativeClaudeSession — Anthropic direct ──────────────────────────────── | COMMENT |
| MEDIUM | mykey_template_en.py | 43 | # ── 2. NativeOAISession — OpenAI direct ────────────────────────────────────── | COMMENT |
| MEDIUM | mykey_template_en.py | 58 | # ── 3. Mixin failover (optional) ───────────────────────────────────────────── | COMMENT |
| MEDIUM | mykey_template_en.py | 69 | # ── 4. Global HTTP proxy (optional) ────────────────────────────────────────── | COMMENT |
| MEDIUM | mykey_template_en.py | 74 | # ── 5. Chat platform integrations (optional) ───────────────────────────────── | COMMENT |
| MEDIUM⚡ | mykey_template.py | 1 | # ══════════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM⚡ | mykey_template.py | 3 | # ══════════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM⚡ | mykey_template.py | 5 | # ┌─────────────────────────────────────────────────────────────────────────┐ | COMMENT |
| MEDIUM⚡ | mykey_template.py | 10 | # └─────────────────────────────────────────────────────────────────────────┘ | COMMENT |
| MEDIUM⚡ | mykey_template.py | 12 | # ────────── Session 类型速查 ────────── | COMMENT |
| MEDIUM⚡ | mykey_template.py | 18 | # ───────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | mykey_template.py | 29 | # ────────── Prompt Cache 说明 ────────── | COMMENT |
| MEDIUM⚡ | mykey_template.py | 37 | # ══════════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM⚡ | mykey_template.py | 44 | # ══════════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM⚡ | mykey_template.py | 55 | # ══════════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM⚡ | mykey_template.py | 57 | # ─── 鉴权 / 路由 ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | mykey_template.py | 67 | # ─── 容量 / 超时 ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | mykey_template.py | 74 | # ─── 推理 / 思考 ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | mykey_template.py | 83 | # ─── 采样 ────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | mykey_template.py | 87 | # ─── 传输 ────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | mykey_template.py | 93 | # ─── NativeClaudeSession 专属 ─────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | mykey_template.py | 101 | # ══════════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM⚡ | mykey_template.py | 105 | # ╔═══════════════════════════════════════════════════════════════════════════╗ | COMMENT |
| MEDIUM⚡ | mykey_template.py | 107 | # ╚═══════════════════════════════════════════════════════════════════════════╝ | COMMENT |
| MEDIUM⚡ | mykey_template.py | 114 | # ── Mixin 故障转移(最推荐的方式)────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | mykey_template.py | 128 | # ══════════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM⚡ | mykey_template.py | 130 | # ══════════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM⚡ | mykey_template.py | 136 | # ── 1a. CC switch 适配渠道(最常用)──────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | mykey_template.py | 272 | # ── 其他 OAI 兼容渠道 ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | mykey_template.py | 276 | # ────────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | mykey_template.py | 283 | # ══════════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM⚡ | mykey_template.py | 285 | # ══════════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM⚡ | mykey_template.py | 289 | # ══════════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM⚡ | mykey_template.py | 291 | # ══════════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | mykey_template.py | 160 | # ── 1b. Anthropic 官方直连 ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | mykey_template.py | 192 | # ── 1c. CRS 反代 Claude Max ───────────────────────────────────────────────── | COMMENT |
| MEDIUM | mykey_template.py | 208 | # ── 1d. 其他 Anthropic 兼容渠道(GLM / Kimi / MiniMax 等)─────────────────── | COMMENT |
| MEDIUM | mykey_template.py | 213 | # ────────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | mykey_template.py | 228 | # ══════════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | mykey_template.py | 230 | # ══════════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | mykey_template.py | 256 | # ── 也可以走 Responses API ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | memory/vision_api.template.py | 16 | # ================================================================= | COMMENT |
| MEDIUM⚡ | plugins/langfuse_tracing.py | 24 | # ── Agent trace ────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | plugins/langfuse_tracing.py | 47 | # ── LLM generation span (replaces _write_llm_log patch) ───── | COMMENT |
| MEDIUM | plugins/langfuse_tracing.py | 96 | # ── Usage tracking: tee SSE data for token counts ─────────── | COMMENT |
| MEDIUM | frontends/tuiapp_v2.py | 249 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | frontends/tuiapp_v2.py | 271 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | frontends/tuiapp_v2.py | 1408 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | frontends/tuiapp_v2.py | 7877 | #============================================================================ | COMMENT |
| MEDIUM | frontends/tuiapp_v2.py | 7879 | #============================================================================ | COMMENT |
| MEDIUM | frontends/tuiapp_v2.py | 3518 | # =========================================================================== | STRING |
| MEDIUM | frontends/tuiapp_v2.py | 3526 | # =========================================================================== | STRING |
| MEDIUM⚡ | frontends/qtapp.py | 282 | # ══════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM⚡ | frontends/qtapp.py | 284 | # ══════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM⚡ | frontends/qtapp.py | 286 | # ── constants ───────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | frontends/qtapp.py | 2309 | # ── settings actions ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | frontends/qtapp.py | 2393 | # ── helpers ──────────────────────────────────────────────────────────────── | COMMENT |
| 101 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH⚡ | simphtml.py | 13 | (sourceNode.id && ignoreIds.includes(sourceNode.id)) | CODE |
| HIGH⚡ | simphtml.py | 15 | return null; | CODE |
| HIGH⚡ | simphtml.py | 22 | try { if (sourceNode.matches && sourceNode.matches(':-webkit-autofill')) { clone.setAttribute('data-autofilled', 'tr | CODE |
| HIGH⚡ | simphtml.py | 27 | const isSmallDropdown = _ddItems > 0 && _ddItems <= 7 && sourceNode.textContent.length < 500; | CODE |
| HIGH⚡ | simphtml.py | 31 | const childClone = cloneNode(child, keep || isSmallDropdown); | CODE |
| HIGH⚡ | simphtml.py | 32 | if (childClone) childNodes.push(childClone); | CODE |
| HIGH⚡ | simphtml.py | 36 | const iDoc = sourceNode.contentDocument || sourceNode.contentWindow?.document; | CODE |
| HIGH⚡ | simphtml.py | 37 | if (iDoc && iDoc.body && iDoc.body.children.length > 0) { | CODE |
| HIGH⚡ | simphtml.py | 44 | if (wrapper.childNodes.length) childNodes.push(wrapper); | CODE |
| HIGH⚡ | simphtml.py | 51 | if (shadowClone) childNodes.push(shadowClone); | CODE |
| HIGH⚡ | simphtml.py | 58 | const isVisible = (rect.width > 1 && rect.height > 1 && | CODE |
| HIGH⚡ | simphtml.py | 61 | Math.abs(rect.left) < 5000 && Math.abs(rect.top) < 5000) | CODE |
| HIGH⚡ | simphtml.py | 76 | const childrenInfos = nonTextChildren.map(c => nodeInfo.get(c)).filter(i => i && i.rect && i.rect.width > 0 && i.r | CODE |
| HIGH⚡ | simphtml.py | 79 | if (!c || c === 'transparent') return 0; | CODE |
| HIGH⚡ | simphtml.py | 83 | const hasVisualBg = bgAlpha > 0.1 || style.backgroundImage !== 'none' || (style.backdropFilter && style.backdropFi | CODE |
| HIGH⚡ | simphtml.py | 83 | const hasVisualBg = bgAlpha > 0.1 || style.backgroundImage !== 'none' || (style.backdropFilter && style.backdropFi | CODE |
| HIGH⚡ | simphtml.py | 85 | if (!hasVisualBg && childrenInfos.length > 0) { | CODE |
| HIGH⚡ | simphtml.py | 87 | const flowChildren = childrenInfos.filter(cInfo => cInfo.style && cInfo.style.position !== 'fixed' && cInfo.styl | CODE |
| HIGH⚡ | simphtml.py | 100 | if (maxC && maxC.area > 10000 && (!isVisible || maxC.area > info.area * 5)) info = maxC; | CODE |
| HIGH⚡ | simphtml.py | 100 | if (maxC && maxC.area > 10000 && (!isVisible || maxC.area > info.area * 5)) info = maxC; | CODE |
| HIGH⚡ | simphtml.py | 105 | if (sourceNode.nodeType === 1 && sourceNode.tagName === 'DIV') { | CODE |
| HIGH⚡ | simphtml.py | 106 | if (!hasValidChildren && !sourceNode.textContent.trim()) return null; | CODE |
| HIGH⚡ | simphtml.py | 109 | if (sourceNode.getAttribute && sourceNode.getAttribute('aria-hidden') === 'true' && !info.isVisible) { | CODE |
| HIGH⚡ | simphtml.py | 110 | return null; | CODE |
| HIGH⚡ | simphtml.py | 112 | if (info.isVisible || hasValidChildren || keep) { | CODE |
| HIGH⚡ | simphtml.py | 116 | return null; | CODE |
| HIGH⚡ | simphtml.py | 124 | return info && info.isVisible; | CODE |
| HIGH⚡ | simphtml.py | 214 | if (pathType !== 'main' && highClassNameVariety && childrenInfo.length > 5) { | CODE |
| HIGH⚡ | simphtml.py | 223 | const hasStandardButton = container.querySelector('button, input[type="button"], input[type="submit"], [role="button | CODE |
| HIGH⚡ | simphtml.py | 225 | const hasClassButton = container.querySelector('[class*="-btn"], [class*="-button"], .button, .btn, [class*="btn-"]' | CODE |
| HIGH⚡ | simphtml.py | 232 | if (_efp) { let _el = _efp; while (_el) { const _h = childrenInfo.find(c => c.node.id && c.node.id === _el.id); if ( | CODE |
| HIGH⚡ | simphtml.py | 253 | if (isComplex && centerDiff < 0.2 && | CODE |
| HIGH⚡ | simphtml.py | 254 | ((minDimensionRatio > 0.2 && rect.width/window.innerWidth < 0.98) || minDimensionRatio > 0.95)) { | CODE |
| HIGH⚡ | simphtml.py | 264 | if (isComplex && isNearTop && maxDimensionRatio > 0.4 && top.isVisible) { | CODE |
| HIGH⚡ | simphtml.py | 266 | } else if (isMostlyText || isComplex || isDialog) { | CODE |
| HIGH⚡ | simphtml.py | 286 | return !(x1 + r1.width <= x2 + epsilon || x1 >= x2 + r2.width - epsilon || | CODE |
| HIGH⚡ | simphtml.py | 287 | y1 + r1.height <= y2 + epsilon || y1 >= y2 + r2.height - epsilon | CODE |
| HIGH⚡ | simphtml.py | 297 | if (!info?.rect || info.style.position !== 'fixed') return false; | CODE |
| HIGH⚡ | simphtml.py | 300 | return cover > 0.15 && cover < 1.0 && cd < 0.3 && el.querySelector('button, input, a, [role="button"], iframe'); | CODE |
| HIGH⚡ | simphtml.py | 301 | }).filter((el, _, arr) => !arr.some(o => o !== el && o.contains(el))) | CODE |
| HIGH⚡ | simphtml.py | 378 | if (!dominated) kept.push(cand); | CODE |
| HIGH⚡ | simphtml.py | 383 | const cTag = container ? container.tagName : null; | CODE |
| HIGH⚡ | simphtml.py | 393 | if (score !== undefined) result.score = score; | CODE |
| HIGH⚡ | simphtml.py | 479 | el.className && el.className.split(/\s+/).includes(cls) | CODE |
| HIGH⚡ | simphtml.py | 484 | groups.push({selector, elements, score: scoreGroup(selector, elements)}); | CODE |
| HIGH⚡ | simphtml.py | 493 | el.className && el.className.split(/\s+/).includes(topClasses[i]) && el | CODE |
| HIGH⚡ | simphtml.py | 497 | groups.push({selector, elements,score: scoreGroup(selector, elements)}); | CODE |
| HIGH | simphtml.py | 153 | if (rectn.width < window.innerWidth * 0.8 && rectn.height < window.innerHeight * 0.8) return node; | CODE |
| HIGH | simphtml.py | 166 | area: info.area, zIndex: (info.zIndex || 0), isVisible: info.isVisible }; | CODE |
| HIGH | simphtml.py | 184 | if (!child.dataset.mark || child.dataset.mark[0] !== 'R') analyzeNode(child, pathType); | CODE |
| HIGH | simphtml.py | 194 | (childrenInfo.length === 1 || childrenInfo[0].area > childrenInfo[1].area * 2); | CODE |
| HIGH | simphtml.py | 329 | js_findMainList = r'''function findMainList(startElement = null) { | CODE |
| HIGH | simphtml.py | 330 | const root = startElement || document.body; | CODE |
| HIGH | simphtml.py | 344 | if (score >= MIN_CHILDREN) candidates.push({node, score}); | CODE |
| HIGH | simphtml.py | 358 | allCandidates.push({ container, selector: groupInfo.selector, items, score }); | CODE |
| HIGH | simphtml.py | 451 | groups.push({ | CODE |
| HIGH | simphtml.py | 463 | groups.push({ | CODE |
| HIGH | simphtml.py | 516 | if (!container || items.length < 3) return 0; | CODE |
| HIGH | simphtml.py | 532 | itemAreas.push(area); | CODE |
| HIGH | simphtml.py | 571 | if (uniqueRows === 1 || uniqueCols === 1) { layoutScore = 20; | CODE |
| 13 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | TMWebDriver.py | 125 | CODE | |
| LOW | TMWebDriver.py | 188 | CODE | |
| LOW | TMWebDriver.py | 128 | CODE | |
| LOW | agentmain.py | 63 | CODE | |
| LOW | agentmain.py | 139 | CODE | |
| LOW | agent_loop.py | 42 | CODE | |
| LOW | llmcore.py | 43 | CODE | |
| LOW | llmcore.py | 145 | CODE | |
| LOW | llmcore.py | 232 | CODE | |
| LOW | llmcore.py | 369 | CODE | |
| LOW | llmcore.py | 425 | CODE | |
| LOW | llmcore.py | 508 | CODE | |
| LOW | llmcore.py | 544 | CODE | |
| LOW | llmcore.py | 702 | CODE | |
| LOW | llmcore.py | 929 | CODE | |
| LOW | llmcore.py | 1081 | CODE | |
| LOW | simphtml.py | 596 | CODE | |
| LOW | ga.py | 16 | CODE | |
| LOW | ga.py | 223 | CODE | |
| LOW | ga.py | 229 | CODE | |
| LOW | ga.py | 303 | CODE | |
| LOW | ga.py | 571 | CODE | |
| LOW | memory/ui_detect.py | 117 | CODE | |
| LOW | memory/vision_api.template.py | 25 | CODE | |
| LOW | memory/procmem_scanner.py | 86 | CODE | |
| LOW | memory/L4_raw_sessions/compress_session.py | 70 | CODE | |
| LOW | memory/L4_raw_sessions/compress_session.py | 103 | CODE | |
| LOW | memory/L4_raw_sessions/compress_session.py | 154 | CODE | |
| LOW | plugins/langfuse_tracing.py | 98 | CODE | |
| LOW | frontends/chatapp_common.py | 319 | CODE | |
| LOW | frontends/cost_tracker.py | 74 | CODE | |
| LOW | frontends/cost_tracker.py | 124 | CODE | |
| LOW | frontends/cost_tracker.py | 131 | CODE | |
| LOW | frontends/qqapp.py | 31 | CODE | |
| LOW | frontends/dcapp.py | 216 | CODE | |
| LOW | frontends/dcapp.py | 283 | CODE | |
| LOW | frontends/model_cmd.py | 33 | CODE | |
| LOW | frontends/tuiapp_v2.py | 506 | CODE | |
| LOW | frontends/tuiapp_v2.py | 536 | CODE | |
| LOW | frontends/tuiapp_v2.py | 675 | CODE | |
| LOW | frontends/tuiapp_v2.py | 1242 | CODE | |
| LOW | frontends/tuiapp_v2.py | 3299 | CODE | |
| LOW | frontends/tuiapp_v2.py | 2499 | CODE | |
| LOW | frontends/tuiapp_v2.py | 3740 | CODE | |
| LOW | frontends/tuiapp_v2.py | 3903 | CODE | |
| LOW | frontends/tuiapp_v2.py | 4774 | CODE | |
| LOW | frontends/tuiapp_v2.py | 4810 | CODE | |
| LOW | frontends/tuiapp_v2.py | 5610 | CODE | |
| LOW | frontends/tuiapp_v2.py | 5915 | CODE | |
| LOW | frontends/tuiapp_v2.py | 6566 | CODE | |
| LOW | frontends/tuiapp_v2.py | 6679 | CODE | |
| LOW | frontends/tuiapp_v2.py | 6806 | CODE | |
| LOW | frontends/tuiapp_v2.py | 7212 | CODE | |
| LOW | frontends/tuiapp_v2.py | 7545 | CODE | |
| LOW | frontends/tuiapp_v2.py | 7608 | CODE | |
| LOW | frontends/tuiapp_v2.py | 7723 | CODE | |
| LOW | frontends/tuiapp_v2.py | 8183 | CODE | |
| LOW | frontends/tuiapp_v2.py | 8389 | CODE | |
| LOW | frontends/tuiapp_v2.py | 8563 | CODE | |
| LOW | frontends/tuiapp_v2.py | 3750 | CODE | |
| 87 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | llmcore.py | 77 | def _sanitize_leading_user_msg(msg): | CODE |
| LOW | llmcore.py | 884 | def _prepare_tool_instruction(self, tools): | CODE |
| LOW | ga.py | 461 | def do_update_working_checkpoint(self, args, response): | CODE |
| LOW | ga.py | 527 | def do_start_long_term_update(self, args, response): | CODE |
| LOW | frontends/stapp2.py | 684 | function ensureSidebarSettingsTitle() { | CODE |
| LOW | frontends/stapp2.py | 831 | def build_dynamic_font_update_script(scale_percent: float) -> str: | STRING |
| LOW⚡ | frontends/stapp2.py | 853 | def build_header_agent_badge_script() -> str: | STRING |
| LOW | frontends/qqapp.py | 56 | async def on_group_at_message_create(self, message: GroupMessage): | CODE |
| LOW | frontends/dcapp.py | 39 | def _extract_discord_progress(text): | CODE |
| LOW | frontends/dcapp.py | 48 | def _strip_discord_transcript(text): | CODE |
| LOW⚡ | frontends/tuiapp_v2.py | 2629 | def has_valid_selection_parent(self) -> bool: | CODE |
| LOW⚡ | frontends/tuiapp_v2.py | 2862 | def _paste_file_from_clipboard(self) -> bool: | CODE |
| LOW⚡ | frontends/tuiapp_v2.py | 6713 | def _return_to_free_text_edit(self, confirm_msg: ChatMessage) -> None: | CODE |
| LOW⚡ | frontends/tuiapp_v2.py | 6730 | def _maybe_intercept_free_text(self, sess: AgentSession, text: str) -> bool: | CODE |
| LOW⚡ | frontends/tuiapp_v2.py | 7150 | def _scroll_active_session_into_view(self) -> None: | CODE |
| LOW⚡ | frontends/tuiapp_v2.py | 7823 | def _remount_assistant_message(self, m: ChatMessage) -> None: | CODE |
| LOW⚡ | frontends/tuiapp_v2.py | 8577 | def on_clickable_tree_node_clicked(self, msg) -> None: | CODE |
| LOW⚡ | frontends/tuiapp_v2.py | 8580 | def on_option_list_option_selected(self, ev) -> None: | CODE |
| LOW | frontends/tuiapp_v2.py | 76 | def _hint_terminal_capabilities() -> None: | CODE |
| LOW | frontends/tuiapp_v2.py | 944 | def _patch_markdown_table_overflow(): | CODE |
| LOW | frontends/tuiapp_v2.py | 1048 | def _cjk_compute_wrap_offsets(text, width, tab_size, fold=True, | CODE |
| LOW | frontends/tuiapp_v2.py | 1207 | def _build_passthrough_source(narrow_plain: str): | CODE |
| LOW | frontends/tuiapp_v2.py | 1684 | def _palette_from_resolved_vars(v: dict[str, str], dark: bool) -> dict[str, str]: | CODE |
| LOW | frontends/tuiapp_v2.py | 3008 | def _suppress_palette_next_change(self) -> None: | CODE |
| LOW | frontends/tuiapp_v2.py | 3057 | def _shift_is_physically_down(self) -> bool: | CODE |
| LOW | frontends/tuiapp_v2.py | 4774 | def on_option_list_option_selected(self, event: OptionList.OptionSelected) -> None: | CODE |
| LOW | frontends/tuiapp_v2.py | 6455 | def _install_intervene_replay_hook(self, sess: AgentSession) -> None: | CODE |
| LOW | frontends/tuiapp_v2.py | 6880 | def _render_planbar_placeholder(self, bar: Static, sess: AgentSession) -> None: | CODE |
| LOW | frontends/tuiapp_v2.py | 7697 | def _mount_assistant_segments(self, container, m: ChatMessage, segs: list[tuple], | CODE |
| LOW⚡ | frontends/tuiapp_v2.py | 3652 | def _is_stale_selectable_mouse_event(self, event) -> bool: | STRING |
| LOW | frontends/tuiapp_v2.py | 3500 | def on_option_list_option_highlighted(self, ev) -> None: | STRING |
| LOW | frontends/tuiapp_v2.py | 3505 | def on_option_list_option_selected(self, ev) -> None: | STRING |
| LOW | frontends/tuiapp_v2.py | 3740 | def _patch_auto_scroll_for_selection(self) -> None: | STRING |
| LOW | frontends/tuiapp_v2.py | 3903 | def _install_write_snapshot_hook(self) -> None: | STRING |
| LOW | frontends/qtapp.py | 460 | def _build_prompt_with_uploads(prompt: str, files: list) -> tuple: | STRING |
| LOW | frontends/qtapp.py | 1313 | def _reset_history_items_style(self): | STRING |
| LOW | frontends/qtapp.py | 1814 | def _refresh_model_rows_style(self): | STRING |
| LOW⚡ | frontends/desktop_bridge.py | 1983 | async def conductor_model_get_handler(request): | CODE |
| LOW⚡ | frontends/desktop_bridge.py | 1987 | async def conductor_model_save_handler(request): | CODE |
| LOW⚡ | frontends/desktop_bridge.py | 2101 | async def get_token_history_handler(request): | CODE |
| LOW⚡ | frontends/desktop_bridge.py | 2111 | async def post_token_history_handler(request): | CODE |
| LOW⚡ | frontends/desktop_bridge.py | 2119 | async def subscription_portal_handler(request): | CODE |
| LOW | frontends/desktop_bridge.py | 95 | def normalize_final_turn_segs(full: str, outputs: Any) -> Optional[List[str]]: | CODE |
| LOW | frontends/desktop_bridge.py | 156 | def _sanitize_desktop_plan_path(session_id: str, plan_path: str) -> str: | CODE |
| LOW | frontends/desktop_bridge.py | 1352 | def _bridge_shutdown_services() -> None: | CODE |
| LOW | frontends/desktop_bridge.py | 1839 | def _reveal_path_in_file_manager(target: Path) -> None: | CODE |
| LOW | frontends/tgapp.py | 129 | def _maybe_partial_turn_marker(line): | CODE |
| LOW | frontends/tgapp.py | 136 | def _maybe_partial_code_fence(line): | CODE |
| LOW | frontends/tgapp.py | 292 | def _drain_latest_ask_user_event(): | CODE |
| LOW | frontends/tgapp.py | 332 | def _parse_menu_callback_data(data, prefix): | CODE |
| LOW | frontends/tgapp.py | 347 | def _normalize_ask_menu_event(stored): | CODE |
| LOW | frontends/fsapp.py | 170 | def _extract_share_card_content(content_json, msg_type): | CODE |
| LOW | frontends/fsapp.py | 187 | def _extract_interactive_content(content): | CODE |
| LOW⚡ | frontends/continue_cmd.py | 1048 | def _clear_conversation_state(agent): | CODE |
| LOW | frontends/continue_cmd.py | 315 | def _count_complete_rounds_from_file(path): | CODE |
| LOW | frontends/continue_cmd.py | 629 | def _tool_results_from_prompt(prompt_body): | CODE |
| LOW | frontends/tui_v3.py | 2091 | def _is_mouse_or_scroll_keypress(kp) -> bool: | CODE |
| LOW | frontends/tui_v3.py | 3476 | def _sync_pending_from_bridge(self) -> None: | CODE |
| LOW | frontends/tuiapp.py | 308 | def on_prompt_input_submitted(self, event: PromptInput.Submitted) -> None: | CODE |
| LOW | frontends/plan_state.py | 208 | def plan_path_mention_in_messages(messages, start_idx: int = 0) -> Optional[str]: | CODE |
| 14 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | agentmain.py | 303 | CODE | |
| LOW | llmcore.py | 1 | CODE | |
| LOW | llmcore.py | 1 | CODE | |
| LOW | llmcore.py | 1 | CODE | |
| LOW | simphtml.py | 662 | CODE | |
| LOW | memory/ui_detect.py | 126 | CODE | |
| LOW | memory/macljqCtrl.py | 31 | CODE | |
| LOW | memory/macljqCtrl.py | 31 | CODE | |
| LOW | memory/macljqCtrl.py | 42 | CODE | |
| LOW | memory/macljqCtrl.py | 35 | CODE | |
| LOW | memory/macljqCtrl.py | 35 | CODE | |
| LOW | memory/macljqCtrl.py | 35 | CODE | |
| LOW | memory/macljqCtrl.py | 35 | CODE | |
| LOW | memory/ljqCtrlBg.py | 6 | CODE | |
| LOW | memory/procmem_scanner.py | 5 | CODE | |
| LOW | memory/procmem_scanner.py | 6 | CODE | |
| LOW | memory/ljqCtrl.py | 13 | CODE | |
| LOW | memory/ljqCtrl.py | 13 | CODE | |
| LOW | memory/ljqCtrl.py | 13 | CODE | |
| LOW | memory/ljqCtrl.py | 20 | CODE | |
| LOW | memory/ljqCtrl.py | 20 | CODE | |
| LOW | memory/ljqCtrl.py | 20 | CODE | |
| LOW | memory/autonomous_operation_sop/helper.py | 13 | CODE | |
| LOW | memory/L4_raw_sessions/compress_session.py | 4 | CODE | |
| LOW | memory/L4_raw_sessions/compress_session.py | 4 | CODE | |
| LOW | plugins/langfuse_tracing.py | 10 | CODE | |
| LOW | frontends/cost_tracker.py | 11 | CODE | |
| LOW | frontends/dcapp.py | 11 | CODE | |
| LOW | frontends/tuiapp_v2.py | 13 | CODE | |
| LOW | frontends/tuiapp_v2.py | 1415 | CODE | |
| LOW | frontends/tuiapp_v2.py | 1449 | CODE | |
| LOW | frontends/genericagent_acp_bridge.py | 43 | CODE | |
| LOW | frontends/qtapp.py | 7 | CODE | |
| LOW | frontends/qtapp.py | 21 | CODE | |
| LOW | frontends/qtapp.py | 21 | CODE | |
| LOW | frontends/qtapp.py | 21 | CODE | |
| LOW | frontends/qtapp.py | 21 | CODE | |
| LOW | frontends/qtapp.py | 32 | CODE | |
| LOW | frontends/qtapp.py | 32 | CODE | |
| LOW | frontends/desktop_bridge.py | 37 | CODE | |
| LOW | frontends/slash_cmds.py | 22 | CODE | |
| LOW | frontends/stapp.py | 15 | CODE | |
| LOW | frontends/stapp.py | 20 | CODE | |
| LOW | frontends/fsapp.py | 10 | CODE | |
| LOW | frontends/workspace_cmd.py | 22 | CODE | |
| LOW | frontends/btw_cmd.py | 9 | CODE | |
| LOW | frontends/keysym.py | 11 | CODE | |
| LOW | frontends/tui_v3.py | 7 | CODE | |
| LOW | frontends/tui_v3.py | 9 | CODE | |
| LOW | frontends/tui_v3.py | 9 | CODE | |
| LOW | frontends/tui_v3.py | 27 | CODE | |
| LOW | frontends/tui_v3.py | 34 | CODE | |
| LOW | frontends/tui_v3.py | 6024 | CODE | |
| LOW | frontends/tui_v3.py | 6025 | CODE | |
| LOW | frontends/tuiapp.py | 17 | CODE | |
| LOW | frontends/tuiapp.py | 25 | CODE | |
| LOW | frontends/wecomapp.py | 4 | CODE | |
| LOW | frontends/worldline.py | 17 | CODE | |
| LOW | frontends/review_cmd.py | 8 | CODE | |
| LOW | frontends/wechatapp.py | 1 | CODE | |
| 9 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | memory/github_contribution_sop.md | 30 | ### Step 1: 确认目标 | COMMENT |
| LOW⚡ | memory/github_contribution_sop.md | 35 | ### Step 2: 创建分支 | COMMENT |
| LOW⚡ | memory/github_contribution_sop.md | 41 | ### Step 3: 实现变更 | COMMENT |
| LOW | memory/github_contribution_sop.md | 52 | ### Step 4: 测试(不可跳过) | COMMENT |
| LOW | memory/github_contribution_sop.md | 63 | ### Step 5: 推送 + 提 PR | COMMENT |
| LOW | memory/github_contribution_sop.md | 75 | ### Step 6: CI 检查 | COMMENT |
| LOW | memory/github_contribution_sop.md | 84 | ### Step 7: 回应 Review | COMMENT |
| LOW | memory/review_sop/review_inline_prompt.en.txt | 21 | ## Step 1: mandatory reading | COMMENT |
| LOW | memory/review_sop/review_inline_prompt.en.txt | 28 | ## Step 2: lock the review scope | COMMENT |
| LOW | memory/review_sop/review_inline_prompt.en.txt | 43 | ## Step 3: file_read each reviewed file | COMMENT |
| LOW | memory/review_sop/review_inline_prompt.en.txt | 48 | ## Step 4: Q1-Q4 adversarial framing (at least 1 concrete evidence per Q) | COMMENT |
| LOW | memory/review_sop/review_inline_prompt.en.txt | 60 | ## Step 5: list P0-P3 findings | COMMENT |
| LOW | docs/installation.md | 218 | ### Step 0: Inspect before acting | COMMENT |
| LOW | docs/installation.md | 228 | ### Step 1: Choose the install path | COMMENT |
| LOW | docs/installation.md | 254 | ### Step 2: Configure keys safely | COMMENT |
| LOW | docs/installation.md | 265 | ### Step 3: Verify setup | COMMENT |
| LOW | docs/installation.md | 283 | ### Step 4: Verification and Next Steps | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | mykey_template_en.py | 1 | # ══════════════════════════════════════════════════════════════════════════════ | COMMENT |
| LOW | mykey_template_en.py | 21 | # /session.thinking_type=adaptive | COMMENT |
| LOW | mykey_template_en.py | 61 | # and Native OAI is fine; mixing Native with non-Native is not). | COMMENT |
| LOW | mykey_template.py | 1 | # ══════════════════════════════════════════════════════════════════════════════ | COMMENT |
| LOW | mykey_template.py | 21 | # 含 'mixin' → MixinSession → 多 session 故障转移 | COMMENT |
| LOW | mykey_template.py | 41 | # 'http://host:2001/v1/chat/completions' → 原样使用 | COMMENT |
| LOW | mykey_template.py | 61 | # model 必填。后缀 '[1m]' 触发 context-1m-2025-08-07 beta(发出前会 | COMMENT |
| LOW | mykey_template.py | 81 | # thinking_budget_tokens 仅当 thinking_type='enabled' 时生效。参考: | COMMENT |
| LOW | mykey_template.py | 101 | # ══════════════════════════════════════════════════════════════════════════════ | COMMENT |
| LOW | mykey_template.py | 121 | 'max_retries': 10, # int;整个 rotation 的总重试次数上限 | COMMENT |
| LOW | mykey_template.py | 141 | # 'apikey': 'sk-user-<your-relay-key>', # 非 sk-ant- 前缀 → Bearer 鉴权 | COMMENT |
| LOW | mykey_template.py | 161 | # 官方端点,apikey 以 sk-ant- 开头 → 自动切到 x-api-key 鉴权。 | COMMENT |
| LOW | mykey_template.py | 181 | # # 'reasoning_effort': 'high', | COMMENT |
| LOW | mykey_template.py | 201 | # # 'reasoning_effort': 'high', # 可选;写进 output_config.effort | COMMENT |
| LOW | mykey_template.py | 221 | # 'apibase': 'https://open.bigmodel.cn/api/anthropic', | COMMENT |
| LOW | mykey_template.py | 241 | # 'apibase': 'https://api.openai.com/v1', # 补齐到 /v1/chat/completions | COMMENT |
| LOW | mykey_template.py | 261 | # 'apikey': 'sk-<your-openai-key>', # Bearer 鉴权 | COMMENT |
| LOW | mykey_template.py | 281 | COMMENT | |
| LOW | mykey_template.py | 301 | # wecom_secret = 'your_bot_secret' | COMMENT |
| LOW | frontends/tuiapp_v2.py | 101 | r"|\x1b[=>]" | COMMENT |
| LOW | frontends/tuiapp_v2.py | 121 | COMMENT | |
| LOW | frontends/tuiapp_v2.py | 241 | if name == "ask_user": | COMMENT |
| LOW | frontends/tuiapp_v2.py | 261 | # the invariant `_align_md_renders` relies on (K==W branch). | COMMENT |
| LOW | frontends/tuiapp_v2.py | 281 | # stream but NOT the plain (wide) copy source, so mouse-copy stays margin-free. | COMMENT |
| LOW | frontends/tuiapp_v2.py | 1941 | # Indices into `choices` that should render pre-ticked when the card first | COMMENT |
| LOW | frontends/tuiapp_v2.py | 2401 | # it the inner ChoiceList falls back to OptionList's default | COMMENT |
| LOW | frontends/continue_cmd.py | 881 | COMMENT | |
| LOW | frontends/tui_v3.py | 1381 | self.agent._ga_project_mode_workspace_path = '' | COMMENT |
| LOW | frontends/tui_v3.py | 2461 | # text getter see the same content within a single render pass. | COMMENT |
| LOW | frontends/tui_v3.py | 2501 | # buf starts with `/`. ↑↓ steer the highlight, Tab completes the | COMMENT |
| LOW | frontends/tui_v3.py | 3561 | COMMENT | |
| LOW | frontends/tui_v3.py | 5221 | if ev is None: | COMMENT |
| LOW | …tends/desktop/packaging/scripts/macos/install_macos.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | frontends/desktop/packaging/scripts/linux/uninstall.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | …tends/desktop/packaging/scripts/linux/install_linux.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | frontends/desktop/src-tauri/.cargo/config.toml | 1 | # Statically link the MSVC CRT (UCRT + vcruntime) into the Windows exe so the thin | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | frontends/tuiapp_v2.py | 6913 | def _set_planbar_visible(self, bar: Static, visible: bool) -> None: | CODE |
| LOW⚡ | frontends/tuiapp_v2.py | 7098 | def _update_terminal_title(self) -> None: | CODE |
| LOW | frontends/tuiapp_v2.py | 6806 | def _update_plan_state(self, sess: AgentSession, _stream_text: str = "") -> None: | CODE |
| LOW | frontends/tuiapp_v2.py | 7963 | def set_rows(self, rows: List[RenderRow]) -> None: | CODE |
| LOW | frontends/tuiapp_v2.py | 8219 | def _set_left_selection(self, key: int, keep_focus: bool = False) -> None: | CODE |
| LOW | frontends/tuiapp_v2.py | 8486 | def _set_focus(self, right: bool) -> None: | CODE |
| LOW | frontends/session_names.py | 49 | def set_name(log_path: str, name: str) -> None: | CODE |
| LOW | frontends/tui_v3.py | 2031 | def _set_term_title(text: str) -> None: | CODE |
| LOW | frontends/tui_v3.py | 4335 | def _set_session_name(self, ag, name: str) -> None: | CODE |
| LOW | frontends/tuiapp.py | 394 | def _set_assistant_message(self, agent_id: int, task_id: int, text: str, *, done: bool) -> None: | CODE |
| LOW | assets/ga_ultraplan.py | 7 | __all__ = ["plan", "phase", "parallel", "mapchain"] | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | llmcore.py | 676 | if not has_thinking: m["content"] = [{"type": "thinking", "thinking": "...", "signature": "placeholder"}, *c] | CODE |
| LOW | simphtml.py | 135 | const p=[el.tagName,el.id&&'#'+el.id,el.getAttribute('name')&&'name='+el.getAttribute('name'),el.tagName==='INPUT'&& | CODE |
| LOW | simphtml.py | 611 | if attr not in ['id', 'class', 'name', 'src', 'href', 'alt', 'value', 'type', 'placeholder', | CODE |
| LOW | frontends/plan_state.py | 369 | return {"active": True, "placeholder": True, "done": 0, "total": 0, "complete": False, "step": step, "pathHint": | CODE |
| LOW | frontends/plan_state.py | 372 | return {"active": True, "placeholder": False, "done": n_done, "total": n_total, "complete": is_complete(pairs), "ste | CODE |
| LOW | frontends/desktop/static/i18n.js | 490 | el.setAttribute('placeholder', tFor(lang, el.dataset.i18nPlaceholder)); | CODE |
| LOW | frontends/desktop/static/app.js | 426 | else el.setAttribute('placeholder', val); | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | memory/ultraplan_sop.md | 37 | ### Why orchestrate | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …tends/desktop/packaging/scripts/macos/install_macos.sh | 11 | # Usage: | COMMENT |
| LOW | …tends/desktop/packaging/scripts/linux/install_linux.sh | 13 | # Usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | .github/workflows/desktop-release-package.yml | 236 | # Create the shared release if it does not exist yet (another OS job may win the race). | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | memory/ljqCtrlBg.py | 148 | CODE | |
| LOW | frontends/tui_v3.py | 2788 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | assets/ga_httpapp.py | 17 | def run_task(prompt): | CODE |