Repository Analysis

iOfficeAI/AionUi

Open-source 24/7 Cowork app for OpenClaw, Hermes, Claude Code, Codex, OpenCode and 20+ more CLI Agent | Customize your assistants | Team them up|Star if you like it!

5.0 Low AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of iOfficeAI/AionUi, a TypeScript project with 32,377 GitHub stars. SynthScan v2.0 examined 401,635 lines of code across 2155 source files, recording 1094 pattern matches distributed across 11 syntactic categories. The overall adjusted score of 5.0 places this repository in the Low 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).

5.0
Adjusted Score
5.0
Raw Score
100%
Time Factor
2026-08-28
Last Push
32.4K
Stars
TypeScript
Language
401.6K
Lines of Code
2.2K
Files
1.1K
Pattern Hits
2026-08-29
Scan Date
0.00
HC Hit Rate

What These Metrics Mean

Adjusted Score
Primary synthetic code indicator. Raw score normalised per 1,000 lines of code and multiplied by the temporal discount factor. This is the definitive comparative metric — use it to rank repositories by AI authorship density.
Raw Score
The unmodified sum of all severity-weighted, context-multiplied pattern match scores before temporal discounting. Reflects the absolute signal strength independent of when the repository was last active.
Time Factor
The temporal discount multiplier (0–100%) applied to the raw score. Repositories last updated before ChatGPT's launch (Nov 2022) receive a 5% factor. Full signal is only assigned to repositories active in the post-adoption era (Jan 2024+).
Pattern Hits
Total count of individual pattern matches across all files and categories. A high hit count with a low score may indicate a very large codebase with isolated AI snippets; a low count with a high score indicates dense, concentrated AI signatures.
HC Hit Rate
High+Critical pattern hits per file, averaged across the repository. This orthogonal signal catches repositories where a few files are densely packed with high-severity AI tells — a strong indicator even when the normalised score appears moderate due to codebase size.
Lines of Code / Files
Total lines and files analysed. The scanner examines 94 file extensions. These denominators are used to normalise the score, enabling fair comparison between repositories of vastly different sizes.

Score History

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.

Severity Breakdown

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.

CRITICAL 2HIGH 2MEDIUM 261LOW 829

Directory Score Breakdown

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.

Pattern Findings

The scanner identified 1094 distinct pattern matches across 11 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.

Decorative Section Separators260 hits · 838 pts
SeverityFileLineSnippetContext
MEDIUMtests/unit/renderer/explorerModel.test.ts37// ── PeKey identity ──────────────────────────────────────────────────────────COMMENT
MEDIUMtests/unit/renderer/explorerModel.test.ts67// ── ancestors / want ─────────────────────────────────────────────────────────COMMENT
MEDIUMtests/unit/renderer/explorerModel.test.ts116// ── fact cache ───────────────────────────────────────────────────────────────COMMENT
MEDIUMtests/unit/renderer/explorerModel.test.ts214// ── anti-stale: descendant / subtree / migrate ───────────────────────────────COMMENT
MEDIUMtests/unit/renderer/explorerModel.test.ts252// ── projection ───────────────────────────────────────────────────────────────COMMENT
MEDIUMtests/unit/renderer/explorerModel.test.ts343// ── additional edge coverage (Reviewer ⚪) ────────────────────────────────────COMMENT
MEDIUMtests/unit/renderer/explorerModel.test.ts540// ── Drag-to-copy/move (source B/C) ───────────────────────────────────────────COMMENT
MEDIUMtests/e2e/fixtures.ts338// ── Cleanup ──────────────────────────────────────────────────────────────────COMMENT
MEDIUMtests/e2e/specs/feedback-scenarios.e2e.ts66// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtests/e2e/specs/feedback-scenarios.e2e.ts68// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtests/e2e/specs/feedback-scenarios.e2e.ts84// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtests/e2e/specs/feedback-scenarios.e2e.ts92// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtests/e2e/specs/feedback-scenarios.e2e.ts94// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtests/e2e/specs/feedback-scenarios.e2e.ts100// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtests/e2e/specs/feedback-scenarios.e2e.ts102// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtests/e2e/specs/feedback-scenarios.e2e.ts104// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtests/e2e/specs/feedback-scenarios.e2e.ts139// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtests/e2e/specs/feedback-scenarios.e2e.ts141// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtests/e2e/specs/feedback-scenarios.e2e.ts156// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtests/e2e/specs/feedback-scenarios.e2e.ts158// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtests/e2e/specs/webui.e2e.ts20 // ── Page loads ───────────────────────────────────────────────────────────COMMENT
MEDIUMtests/e2e/specs/webui.e2e.ts27 // ── Enable toggle ──────────────────────────────────────────────────────COMMENT
MEDIUMtests/e2e/specs/webui.e2e.ts36 // ── Port & URL ─────────────────────────────────────────────────────────COMMENT
MEDIUMtests/e2e/specs/webui.e2e.ts61 // ── Allow remote toggle ────────────────────────────────────────────────COMMENT
MEDIUMtests/e2e/specs/webui.e2e.ts72 // ── Start / Stop lifecycle ─────────────────────────────────────────────COMMENT
MEDIUMtests/e2e/specs/webui.e2e.ts122 // ── Screenshot ─────────────────────────────────────────────────────────COMMENT
MEDIUMtests/e2e/specs/cron-crud.e2e.ts57// ── Bridge helpers ──────────────────────────────────────────────────────────COMMENT
MEDIUMtests/e2e/specs/cron-crud.e2e.ts71// ── Conversation helpers ───────────────────────────────────────────────────COMMENT
MEDIUMtests/e2e/specs/cron-crud.e2e.ts118// ── UI helpers ─────────────────────────────────────────────────────────────COMMENT
MEDIUMtests/e2e/specs/cron-crud.e2e.ts133// ── Tests ──────────────────────────────────────────────────────────────────COMMENT
MEDIUMtests/e2e/specs/navigation.e2e.ts10// ── Guid Page ────────────────────────────────────────────────────────────────COMMENT
MEDIUMtests/e2e/specs/navigation.e2e.ts40// ── Settings Pages ───────────────────────────────────────────────────────────COMMENT
MEDIUMtests/e2e/specs/navigation.e2e.ts72// ── Cross-page navigation ────────────────────────────────────────────────────COMMENT
MEDIUMtests/e2e/specs/ext-ipc-queries.e2e.ts14// ── ACP Adapters ─────────────────────────────────────────────────────────────COMMENT
MEDIUMtests/e2e/specs/ext-ipc-queries.e2e.ts43// ── MCP Servers ──────────────────────────────────────────────────────────────COMMENT
MEDIUMtests/e2e/specs/ext-ipc-queries.e2e.ts62// ── Assistants ───────────────────────────────────────────────────────────────COMMENT
MEDIUMtests/e2e/specs/ext-ipc-queries.e2e.ts82// ── Agents ───────────────────────────────────────────────────────────────────COMMENT
MEDIUMtests/e2e/specs/ext-ipc-queries.e2e.ts106// ── Skills ───────────────────────────────────────────────────────────────────COMMENT
MEDIUMtests/e2e/specs/ext-ipc-queries.e2e.ts126// ── Themes ───────────────────────────────────────────────────────────────────COMMENT
MEDIUMtests/e2e/specs/ext-ipc-queries.e2e.ts146// ── Settings Tabs ────────────────────────────────────────────────────────────COMMENT
MEDIUMtests/e2e/specs/ext-ipc-queries.e2e.ts177// ── WebUI Contributions ──────────────────────────────────────────────────────COMMENT
MEDIUMtests/e2e/specs/ext-ipc-queries.e2e.ts211// ── Channel Plugins ──────────────────────────────────────────────────────────COMMENT
MEDIUMtests/e2e/specs/ext-ipc-queries.e2e.ts238// ── Performance Budget ───────────────────────────────────────────────────────COMMENT
MEDIUMtests/e2e/specs/team-describe-assistant.e2e.ts211 // ── 1. Create team through the assistant-only UI flow ─────────────────COMMENT
MEDIUMtests/e2e/specs/team-describe-assistant.e2e.ts226 // ── 2. Read the port + auth token from the leader conversation ───────COMMENT
MEDIUMtests/e2e/specs/team-describe-assistant.e2e.ts255 // ── 3a. Resolve a preset that's currently enabled in this env ────────COMMENT
MEDIUMtests/e2e/specs/team-describe-assistant.e2e.ts283 // ── 3b. Reject bogus auth token (defence-in-depth smoke test) ────────COMMENT
MEDIUMtests/e2e/specs/team-describe-assistant.e2e.ts303 // ── 3c. Surface a useful error when preset id is unknown ─────────────COMMENT
MEDIUMtests/e2e/specs/team-describe-assistant.e2e.ts310 // ── 4. team_spawn_agent using the same assistant_id ──────────────────COMMENT
MEDIUMtests/e2e/specs/ext-themes-stability.e2e.ts10// ═════════════════════════════════════════════════════════════════════════════COMMENT
MEDIUMtests/e2e/specs/ext-themes-stability.e2e.ts12// ═════════════════════════════════════════════════════════════════════════════COMMENT
MEDIUMtests/e2e/specs/ext-themes-stability.e2e.ts40// ═════════════════════════════════════════════════════════════════════════════COMMENT
MEDIUMtests/e2e/specs/ext-themes-stability.e2e.ts42// ═════════════════════════════════════════════════════════════════════════════COMMENT
MEDIUMtests/e2e/specs/ext-themes-stability.e2e.ts70// ═════════════════════════════════════════════════════════════════════════════COMMENT
MEDIUMtests/e2e/specs/ext-themes-stability.e2e.ts72// ═════════════════════════════════════════════════════════════════════════════COMMENT
MEDIUM…sts/e2e/features/settings/system/timeout-config.e2e.ts66 // ────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…sts/e2e/features/settings/system/timeout-config.e2e.ts68 // ────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…sts/e2e/features/settings/system/timeout-config.e2e.ts88 // ────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…sts/e2e/features/settings/system/timeout-config.e2e.ts90 // ────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…sts/e2e/features/settings/system/timeout-config.e2e.ts110 // ────────────────────────────────────────────────────────────────────────COMMENT
200 more matches not shown…
Structural Annotation Overuse193 hits · 353 pts
SeverityFileLineSnippetContext
LOWtests/e2e/features/settings/skills/batch-import.e2e.ts74 // Step 2: Click "Import All" buttonCOMMENT
LOWtests/e2e/features/settings/skills/edge-cases.e2e.ts152 // Step 1: Add highlight parameter to current URL via history APICOMMENT
LOWtests/e2e/features/settings/skills/core-ui.e2e.ts86 // Step 2: Locate "My Skills" sectionCOMMENT
LOWtests/e2e/features/settings/skills/core-ui.e2e.ts90 // Step 4: Verify skill count badge (should show 2)COMMENT
LOWtests/e2e/features/settings/skills/core-ui.e2e.ts147 // Step 2: Locate target skill card in My Skills sectionCOMMENT
LOWtests/e2e/features/settings/skills/core-ui.e2e.ts151 // Step 3: Hover to show delete button (may require actual hover)COMMENT
LOWtests/e2e/features/settings/skills/core-ui.e2e.ts158 // Step 4: Click delete buttonCOMMENT
LOWtests/e2e/features/settings/skills/core-ui.e2e.ts162 // Step 5: Verify confirmation modal appearsCOMMENT
LOWtests/e2e/features/settings/skills/core-ui.e2e.ts172 // Step 6: Click confirm button (Arco Modal confirm button)COMMENT
LOWtests/e2e/features/settings/skills/core-ui.e2e.ts237 // Step 2: Select two of the three skills by clicking their cardsCOMMENT
LOWtests/e2e/features/settings/skills/core-ui.e2e.ts245 // Step 3: Click batch delete and confirm in the modalCOMMENT
LOWtests/e2e/features/settings/skills/core-ui.e2e.ts315 // Step 2: Locate the builtin skill cardCOMMENT
LOWtests/e2e/features/settings/skills/core-ui.e2e.ts319 // Step 3: Hover to card to reveal buttonsCOMMENT
LOWtests/e2e/features/settings/skills/core-ui.e2e.ts356 // Step 2: Locate "Discovered External Skills" sectionCOMMENT
LOWtests/e2e/features/settings/skills/core-ui.e2e.ts363 // Step 4: Click Tab button for this test's specific source.COMMENT
LOWtests/e2e/features/settings/skills/core-ui.e2e.ts417 // Step 2: Locate external skill cardCOMMENT
LOWtests/e2e/features/settings/skills/core-ui.e2e.ts426 // Step 3: Click the card to import (entire card is clickable)COMMENT
LOWtests/e2e/features/settings/skills/core-ui.e2e.ts472 // Step 2: Locate "Add Path" button in External Skills sectionCOMMENT
LOWtests/e2e/features/settings/skills/core-ui.e2e.ts479 // Step 3: Click "Add Path" buttonCOMMENT
LOWtests/e2e/features/settings/skills/core-ui.e2e.ts489 // Step 4: Enter source name and pathCOMMENT
LOWtests/e2e/features/settings/skills/core-ui.e2e.ts499 // Step 5: Click confirm (Arco Modal OK button)COMMENT
LOWtests/e2e/features/settings/skills/core-ui.e2e.ts572 // Step 2: Locate skill card in "My Skills"COMMENT
LOWtests/e2e/features/settings/skills/core-ui.e2e.ts576 // Step 3: Hover to show "Export" button and waitCOMMENT
LOWtests/e2e/features/settings/skills/core-ui.e2e.ts583 // Step 4: Click "Export" button to open Dropdown (force click to avoid hover issues)COMMENT
LOWtests/e2e/features/settings/skills/core-ui.e2e.ts224 // Step 1: Enter batch modeCOMMENT
LOWtests/e2e/features/settings/skills/core-ui.e2e.ts375 // Step 5: Verify skill card is displayedCOMMENT
LOWtests/e2e/features/settings/skills/core-ui.e2e.ts594 // Step 5: Select target source from dropdown menuCOMMENT
LOWtests/e2e/features/settings/skills/url-highlight.e2e.ts58 // Step 1: Add highlight parameter via history APICOMMENT
LOWtests/e2e/features/settings/skills/url-highlight.e2e.ts99 // Step 2: Wait for highlight to disappear (2 seconds)COMMENT
LOWtests/e2e/features/settings/skills/path-export.e2e.ts72 // Step 2: Dynamically add new skill to external source directoryCOMMENT
LOWtests/e2e/features/settings/skills/path-export.e2e.ts79 // Step 3: Click external refresh buttonCOMMENT
LOWtests/e2e/features/settings/skills/path-export.e2e.ts129 // Step 3: Fill in duplicate pathCOMMENT
LOWtests/e2e/features/settings/skills/path-export.e2e.ts136 // Step 4: Click Confirm button (use Arco's OK button class)COMMENT
LOWtests/e2e/features/settings/skills/path-export.e2e.ts188 // Step 2: Fill only Name fieldCOMMENT
LOWtests/e2e/features/settings/skills/path-export.e2e.ts197 // Step 3: Clear Name, fill only Path fieldCOMMENT
LOWtests/e2e/features/settings/skills/path-export.e2e.ts207 // Step 4: Fill both fieldsCOMMENT
LOWtests/e2e/features/settings/skills/path-export.e2e.ts117 // Step 2: Try to add the same path again via UICOMMENT
LOWtests/e2e/features/settings/skills/path-export.e2e.ts169 // Step 1: Open add custom path modalCOMMENT
LOWtests/e2e/features/settings/skills/path-export.e2e.ts250 // Step 2: Try to export the skillCOMMENT
LOWtests/e2e/features/settings/skills/path-export.e2e.ts263 // Step 3: Select target source from dropdownCOMMENT
LOWtests/e2e/features/settings/skills/manual-import.e2e.ts41 // Step 1: Mock dialog.showOpenDialog to return test skill pathCOMMENT
LOWtests/e2e/features/settings/skills/manual-import.e2e.ts61 // Step 2: Click "Import from Folder" buttonCOMMENT
LOWtests/e2e/features/settings/skills/search.e2e.ts76 // Step 2: Enter search keyword in My Skills search boxCOMMENT
LOWtests/e2e/features/settings/skills/search.e2e.ts118 // Step 2: Search with non-existent keywordCOMMENT
LOWtests/e2e/features/settings/skills/search.e2e.ts164 // Step 2: Search external skillsCOMMENT
LOWtests/e2e/features/settings/skills/search.e2e.ts213 // Step 2: Search with non-existent keywordCOMMENT
LOWtests/e2e/features/settings/skills/special-cases.e2e.ts164 // Step 1: Click refresh button rapidly 3 timesCOMMENT
LOW…e2e/features/settings/skills/refresh-empty-tabs.e2e.ts60 // Step 2: Dynamically add new skill via BridgeCOMMENT
LOW…e2e/features/settings/skills/refresh-empty-tabs.e2e.ts69 // Step 3: Click refresh buttonCOMMENT
LOW…e2e/features/settings/skills/refresh-empty-tabs.e2e.ts159 // Step 2: Verify default tab (first source) is activeCOMMENT
LOW…e2e/features/settings/skills/refresh-empty-tabs.e2e.ts176 // Step 3: Click tab BCOMMENT
LOW…ts/e2e/features/conversations/aionrs/basic-flow.e2e.ts85 // Step 1: Screenshot initial guid pageCOMMENT
LOW…ts/e2e/features/conversations/aionrs/basic-flow.e2e.ts90 // Step 2: Create conversation via bridge (uses prioritized aionrs-compatible provider)COMMENT
LOW…ts/e2e/features/conversations/aionrs/basic-flow.e2e.ts99 // Step 3: Send simple messageCOMMENT
LOW…ts/e2e/features/conversations/aionrs/basic-flow.e2e.ts103 // Step 4: Wait for AI replyCOMMENT
LOW…ts/e2e/features/conversations/aionrs/basic-flow.e2e.ts159 // Step 1: Create temp directory with test folderCOMMENT
LOW…ts/e2e/features/conversations/aionrs/basic-flow.e2e.ts167 // Step 2: Create conversation via bridge with workspace pre-configuredCOMMENT
LOW…ts/e2e/features/conversations/aionrs/basic-flow.e2e.ts175 // Step 3: Send message asking about folder (via bridge, no UI interaction needed)COMMENT
LOW…ts/e2e/features/conversations/aionrs/basic-flow.e2e.ts181 // Step 4: Wait for AI replyCOMMENT
LOW…ts/e2e/features/conversations/aionrs/basic-flow.e2e.ts228 // Step 1: Create test file in workspaceCOMMENT
133 more matches not shown…
Hyper-Verbose Identifiers321 hits · 333 pts
SeverityFileLineSnippetContext
LOWtests/unit/renderer/messageMerging.dom.test.tsx72function createThinkingDoneMessage(msgId: string, duration: number): IMessageThinking {CODE
LOWtests/unit/renderer/cron/CreateTaskDialog.dom.test.tsx422function legacyJobWithoutAssistantId(): ICronJob {CODE
LOWtests/unit/bootstrap/buildWithBuilder.test.ts24function readInstallerErrorDefinitions(): Array<{ defineName: string; code: string }> {CODE
LOWtests/unit/bootstrap/buildWithBuilder.test.ts32function resolveAppBuilderInstallUtil(): string {CODE
LOWtests/unit/common/chatLib.test.ts37function createThinkingDoneMessage(msgId: string, duration: number): IMessageThinking {CODE
LOWtests/unit/previews/HTMLViewer.dom.test.tsx44function createConsoleMessageEvent({CODE
LOW…sts/unit/assets/verifyBundledAioncoreResources.test.ts97function writeManagedResourcesContract(CODE
LOWtests/e2e/fixtures.ts46function attachRendererDiagnostics(page: Page): void {CODE
LOWtests/e2e/fixtures.ts65async function getRendererReadinessSnapshot(page: Page): Promise<Record<string, unknown>> {CODE
LOWtests/e2e/specs/ext-no-extensions.e2e.ts34async function launchAppWithoutExtensions(): Promise<ElectronApplication> {CODE
LOWtests/e2e/specs/ext-settings-tabs.e2e.ts25async function waitForExtensionSettingsTabs(page: Page, timeout = 10_000): Promise<string[]> {CODE
LOWtests/e2e/specs/conversation-full-cycle.e2e.ts54async function resolveFullAutoModeFromAgentMetadata(CODE
LOWtests/e2e/specs/conversation-full-cycle.e2e.ts122async function refreshAssistantForBackend(CODE
LOWtests/e2e/specs/conversation-full-cycle.e2e.ts136async function requireOnlineAssistantForBackend(CODE
LOWtests/e2e/specs/conversation-full-cycle.e2e.ts199async function selectPreferredCronDialogAgent(CODE
LOWtests/e2e/specs/conversation-full-cycle.e2e.ts206async function selectCronDialogAgentByPattern(CODE
LOWtests/e2e/specs/conversation-full-cycle.e2e.ts245async function waitForCronCreateDialogToClose(CODE
LOWtests/e2e/specs/conversation-full-cycle.e2e.ts376async function listAutoInjectBuiltinSkills(CODE
LOWtests/e2e/specs/conversation-full-cycle.e2e.ts385async function expectCronBuiltinAutoSkill(page: import('@playwright/test').Page): Promise<void> {CODE
LOWtests/e2e/specs/conversation-full-cycle.e2e.ts444async function waitForCronCreationConfirmation(CODE
LOWtests/e2e/specs/conversation-full-cycle.e2e.ts480async function waitForSkillSuggestMessage(CODE
LOWtests/e2e/specs/conversation-full-cycle.e2e.ts517async function assertNoSkillSuggestMessageWithin(CODE
LOWtests/e2e/specs/conversation-full-cycle.e2e.ts587async function waitForConversationWorkspace(CODE
LOWtests/e2e/specs/conversation-full-cycle.e2e.ts603async function removeConversationViaBridge(CODE
LOW…/specs/assistant-settings-conversation-defaults.e2e.ts186function querySnapshotByConversationId(dbPath: string, conversationId: string): SnapshotRow {CODE
LOW…/specs/assistant-settings-conversation-defaults.e2e.ts207function queryPreferencesByAssistantKey(dbPath: string, assistantKey: string): PreferenceRow {CODE
LOW…/specs/assistant-settings-conversation-defaults.e2e.ts225function queryOptionalPreferencesByAssistantKey(dbPath: string, assistantKey: string): PreferenceRow | null {CODE
LOW…/specs/assistant-settings-conversation-defaults.e2e.ts359async function sendGuidMessageCapturingCreateRequest(CODE
LOW…/specs/assistant-settings-conversation-defaults.e2e.ts405function locateConversationModelButton(page: Page) {CODE
LOW…/specs/assistant-settings-conversation-defaults.e2e.ts426async function captureConversationUiState(page: Page): Promise<ConversationUiState> {CODE
LOW…/specs/assistant-settings-conversation-defaults.e2e.ts443async function queryConversationLoadedState(CODE
LOW…/specs/assistant-settings-conversation-defaults.e2e.ts485async function reopenConversationFromHistory(page: Page, conversationId: string): Promise<void> {CODE
LOW…ts/e2e/features/settings/display/css-theme-crud.e2e.ts39async function deleteCustomThemeViaModal(page: import('@playwright/test').Page, name: string) {CODE
LOW…builtin-skill-migration/builtin-skill-migration.e2e.ts79async function listAutoInjectBuiltinSkills(page: Parameters<typeof httpGet>[0]): Promise<BuiltinAutoSkill[]> {CODE
LOW…es/conversations/message-list-real-conversation.e2e.ts35function createFakeClaudeConversation(id: string, assistantId: string) {CODE
LOW…es/conversations/message-list-real-conversation.e2e.ts239async function startScenarioInBackground(CODE
LOW…es/conversations/message-list-real-conversation.e2e.ts271async function waitForBackgroundScenario(page: Page): Promise<void> {CODE
LOW…es/conversations/message-list-real-conversation.e2e.ts297async function simulateManualScrollIntervention(CODE
LOW…/e2e/features/conversations/message-anchor-rail.e2e.ts43function createFakeClaudeConversation(id: string, assistantId: string) {CODE
LOW…features/conversations/acp/send-error-surfacing.e2e.ts101async function expectLatestErrorTipToContain(CODE
LOW…e/features/conversations/acp/empty-turn-warning.e2e.ts79async function waitForEmptyTurnController(page: Page, conversationId: string): Promise<void> {CODE
LOWtests/e2e/features/previews/preview-panel.e2e.ts34function makeExternalWorkspaceFile(ext: string, body: string): { filePath: string; workspace: string } {CODE
LOW…ts/e2e/features/previews/preview-oversized-gate.e2e.ts51async function createProjectConversation(page: import('@playwright/test').Page, workspace: string): Promise<string> {CODE
LOWtests/e2e/features/previews/preview-tab-identity.e2e.ts50async function createProjectConversation(CODE
LOWtests/e2e/features/previews/preview-refresh.e2e.ts39async function createProjectConversation(CODE
LOWtests/e2e/features/previews/preview-tab-close.e2e.ts39async function openConversationWithWorkspace(page: import('@playwright/test').Page, workspace: string): Promise<void> {CODE
LOWtests/e2e/features/previews/preview-file-types.e2e.ts77async function createProjectConversation(page: import('@playwright/test').Page, workspace: string): Promise<string> {CODE
LOWtests/e2e/cases/teams/team-tab-context.e2e.ts35async function waitForConversationMessage(CODE
LOWtests/e2e/helpers/navigation.ts163export async function resetGuidLastSelectedAgent(page: Page, _agentKey = 'aionrs'): Promise<void> {CODE
LOWtests/e2e/helpers/permissions.ts5async function clickPreferredPermissionOption(card: Locator): Promise<boolean> {CODE
LOWtests/e2e/helpers/permissions.ts52export function startAutoApprovePermissionMessages(page: Page, intervalMs = 500): () => void {CODE
LOWtests/e2e/helpers/permissions.ts81export async function waitForPermissionMessageCard(CODE
LOWtests/e2e/helpers/chatAionrs.ts155export async function resolveAionrsPreconditions(page: Page): Promise<{CODE
LOWtests/e2e/helpers/chatAionrs.ts170export async function createAionrsConversationViaBridge(CODE
LOWtests/e2e/helpers/assistantSettings.ts10function waitForAssistantDetailResponse(page: Page, assistantId: string): Promise<unknown> {CODE
LOWtests/e2e/helpers/assistantSettings.ts199export async function waitForAssistantEditorClose(page: Page): Promise<void> {CODE
LOWtests/e2e/helpers/selectors.ts143export function assistantOverflowPillById(id: string): string {CODE
LOWtests/e2e/helpers/skillsHub.ts164export async function createTempExternalSourceDir(): Promise<{ path: string; cleanup: () => Promise<void> }> {CODE
LOWtests/e2e/helpers/conversation.ts149export async function findAssistantIdForBackend(CODE
LOWtests/e2e/helpers/conversation.ts158export async function selectAssistantForBackend(page: Page, backend: string): Promise<string | null> {CODE
261 more matches not shown…
Verbosity Indicators165 hits · 303 pts
SeverityFileLineSnippetContext
LOWtests/e2e/features/settings/skills/batch-import.e2e.ts74 // Step 2: Click "Import All" buttonCOMMENT
LOWtests/e2e/features/settings/skills/edge-cases.e2e.ts152 // Step 1: Add highlight parameter to current URL via history APICOMMENT
LOWtests/e2e/features/settings/skills/core-ui.e2e.ts86 // Step 2: Locate "My Skills" sectionCOMMENT
LOWtests/e2e/features/settings/skills/core-ui.e2e.ts90 // Step 4: Verify skill count badge (should show 2)COMMENT
LOWtests/e2e/features/settings/skills/core-ui.e2e.ts147 // Step 2: Locate target skill card in My Skills sectionCOMMENT
LOWtests/e2e/features/settings/skills/core-ui.e2e.ts151 // Step 3: Hover to show delete button (may require actual hover)COMMENT
LOWtests/e2e/features/settings/skills/core-ui.e2e.ts158 // Step 4: Click delete buttonCOMMENT
LOWtests/e2e/features/settings/skills/core-ui.e2e.ts162 // Step 5: Verify confirmation modal appearsCOMMENT
LOWtests/e2e/features/settings/skills/core-ui.e2e.ts172 // Step 6: Click confirm button (Arco Modal confirm button)COMMENT
LOWtests/e2e/features/settings/skills/core-ui.e2e.ts237 // Step 2: Select two of the three skills by clicking their cardsCOMMENT
LOWtests/e2e/features/settings/skills/core-ui.e2e.ts245 // Step 3: Click batch delete and confirm in the modalCOMMENT
LOWtests/e2e/features/settings/skills/core-ui.e2e.ts315 // Step 2: Locate the builtin skill cardCOMMENT
LOWtests/e2e/features/settings/skills/core-ui.e2e.ts319 // Step 3: Hover to card to reveal buttonsCOMMENT
LOWtests/e2e/features/settings/skills/core-ui.e2e.ts356 // Step 2: Locate "Discovered External Skills" sectionCOMMENT
LOWtests/e2e/features/settings/skills/core-ui.e2e.ts363 // Step 4: Click Tab button for this test's specific source.COMMENT
LOWtests/e2e/features/settings/skills/core-ui.e2e.ts417 // Step 2: Locate external skill cardCOMMENT
LOWtests/e2e/features/settings/skills/core-ui.e2e.ts426 // Step 3: Click the card to import (entire card is clickable)COMMENT
LOWtests/e2e/features/settings/skills/core-ui.e2e.ts472 // Step 2: Locate "Add Path" button in External Skills sectionCOMMENT
LOWtests/e2e/features/settings/skills/core-ui.e2e.ts479 // Step 3: Click "Add Path" buttonCOMMENT
LOWtests/e2e/features/settings/skills/core-ui.e2e.ts489 // Step 4: Enter source name and pathCOMMENT
LOWtests/e2e/features/settings/skills/core-ui.e2e.ts499 // Step 5: Click confirm (Arco Modal OK button)COMMENT
LOWtests/e2e/features/settings/skills/core-ui.e2e.ts572 // Step 2: Locate skill card in "My Skills"COMMENT
LOWtests/e2e/features/settings/skills/core-ui.e2e.ts576 // Step 3: Hover to show "Export" button and waitCOMMENT
LOWtests/e2e/features/settings/skills/core-ui.e2e.ts583 // Step 4: Click "Export" button to open Dropdown (force click to avoid hover issues)COMMENT
LOWtests/e2e/features/settings/skills/core-ui.e2e.ts224 // Step 1: Enter batch modeCOMMENT
LOWtests/e2e/features/settings/skills/core-ui.e2e.ts375 // Step 5: Verify skill card is displayedCOMMENT
LOWtests/e2e/features/settings/skills/core-ui.e2e.ts594 // Step 5: Select target source from dropdown menuCOMMENT
LOWtests/e2e/features/settings/skills/url-highlight.e2e.ts58 // Step 1: Add highlight parameter via history APICOMMENT
LOWtests/e2e/features/settings/skills/url-highlight.e2e.ts99 // Step 2: Wait for highlight to disappear (2 seconds)COMMENT
LOWtests/e2e/features/settings/skills/path-export.e2e.ts72 // Step 2: Dynamically add new skill to external source directoryCOMMENT
LOWtests/e2e/features/settings/skills/path-export.e2e.ts79 // Step 3: Click external refresh buttonCOMMENT
LOWtests/e2e/features/settings/skills/path-export.e2e.ts129 // Step 3: Fill in duplicate pathCOMMENT
LOWtests/e2e/features/settings/skills/path-export.e2e.ts136 // Step 4: Click Confirm button (use Arco's OK button class)COMMENT
LOWtests/e2e/features/settings/skills/path-export.e2e.ts188 // Step 2: Fill only Name fieldCOMMENT
LOWtests/e2e/features/settings/skills/path-export.e2e.ts197 // Step 3: Clear Name, fill only Path fieldCOMMENT
LOWtests/e2e/features/settings/skills/path-export.e2e.ts207 // Step 4: Fill both fieldsCOMMENT
LOWtests/e2e/features/settings/skills/path-export.e2e.ts117 // Step 2: Try to add the same path again via UICOMMENT
LOWtests/e2e/features/settings/skills/path-export.e2e.ts169 // Step 1: Open add custom path modalCOMMENT
LOWtests/e2e/features/settings/skills/path-export.e2e.ts250 // Step 2: Try to export the skillCOMMENT
LOWtests/e2e/features/settings/skills/path-export.e2e.ts263 // Step 3: Select target source from dropdownCOMMENT
LOWtests/e2e/features/settings/skills/manual-import.e2e.ts41 // Step 1: Mock dialog.showOpenDialog to return test skill pathCOMMENT
LOWtests/e2e/features/settings/skills/manual-import.e2e.ts61 // Step 2: Click "Import from Folder" buttonCOMMENT
LOWtests/e2e/features/settings/skills/search.e2e.ts76 // Step 2: Enter search keyword in My Skills search boxCOMMENT
LOWtests/e2e/features/settings/skills/search.e2e.ts118 // Step 2: Search with non-existent keywordCOMMENT
LOWtests/e2e/features/settings/skills/search.e2e.ts164 // Step 2: Search external skillsCOMMENT
LOWtests/e2e/features/settings/skills/search.e2e.ts213 // Step 2: Search with non-existent keywordCOMMENT
LOWtests/e2e/features/settings/skills/special-cases.e2e.ts164 // Step 1: Click refresh button rapidly 3 timesCOMMENT
LOW…e2e/features/settings/skills/refresh-empty-tabs.e2e.ts60 // Step 2: Dynamically add new skill via BridgeCOMMENT
LOW…e2e/features/settings/skills/refresh-empty-tabs.e2e.ts69 // Step 3: Click refresh buttonCOMMENT
LOW…e2e/features/settings/skills/refresh-empty-tabs.e2e.ts159 // Step 2: Verify default tab (first source) is activeCOMMENT
LOW…e2e/features/settings/skills/refresh-empty-tabs.e2e.ts176 // Step 3: Click tab BCOMMENT
LOW…ts/e2e/features/conversations/aionrs/basic-flow.e2e.ts85 // Step 1: Screenshot initial guid pageCOMMENT
LOW…ts/e2e/features/conversations/aionrs/basic-flow.e2e.ts90 // Step 2: Create conversation via bridge (uses prioritized aionrs-compatible provider)COMMENT
LOW…ts/e2e/features/conversations/aionrs/basic-flow.e2e.ts99 // Step 3: Send simple messageCOMMENT
LOW…ts/e2e/features/conversations/aionrs/basic-flow.e2e.ts103 // Step 4: Wait for AI replyCOMMENT
LOW…ts/e2e/features/conversations/aionrs/basic-flow.e2e.ts159 // Step 1: Create temp directory with test folderCOMMENT
LOW…ts/e2e/features/conversations/aionrs/basic-flow.e2e.ts167 // Step 2: Create conversation via bridge with workspace pre-configuredCOMMENT
LOW…ts/e2e/features/conversations/aionrs/basic-flow.e2e.ts175 // Step 3: Send message asking about folder (via bridge, no UI interaction needed)COMMENT
LOW…ts/e2e/features/conversations/aionrs/basic-flow.e2e.ts181 // Step 4: Wait for AI replyCOMMENT
LOW…ts/e2e/features/conversations/aionrs/basic-flow.e2e.ts228 // Step 1: Create test file in workspaceCOMMENT
105 more matches not shown…
Over-Commented Block76 hits · 75 pts
SeverityFileLineSnippetContext
LOW.pre-commit-config.yaml1# Pre-commit configuration for AionUiCOMMENT
LOW…/unit/renderer/saveContentRefusalContract.dom.test.tsx1/**COMMENT
LOWtests/unit/renderer/previewLogoutCleanup.dom.test.tsx1/**COMMENT
LOWtests/unit/renderer/previewSizeLimitSetting.test.ts1/**COMMENT
LOWtests/unit/renderer/scmBadgeCss.test.ts141 * "this has nothing to do with SCM" and drops it, the coupling becomes unguardedCOMMENT
LOWtests/unit/renderer/scmBadgeCss.test.ts161 // panel. Hence this assertion is on the pairing, not on one selector.COMMENT
LOW…unit/renderer/chatLayoutMobilePreviewHost.dom.test.tsx1import React from 'react';COMMENT
LOWtests/unit/renderer/previewTabIdentity.dom.test.tsx1/**COMMENT
LOWtests/unit/renderer/previewWatchSubscription.test.ts1/**COMMENT
LOWtests/unit/renderer/previewWatchSubscription.test.ts281COMMENT
LOWtests/unit/renderer/previewSaveIfMatch.dom.test.tsx1/**COMMENT
LOWtests/unit/previews/previewPanelNotices.dom.test.tsx1/**COMMENT
LOWtests/unit/previews/fileTypeMatrix.test.ts1/**COMMENT
LOW…ts/unit/previews/previewScopePersistTypes.dom.test.tsx1/**COMMENT
LOWtests/unit/previews/editableSingleSource.dom.test.ts1/**COMMENT
LOWtests/unit/previews/previewWatchSignal.dom.test.tsx1/**COMMENT
LOW…nit/previews/markdownEditableFromExplorer.dom.test.tsx1/**COMMENT
LOW…sts/unit/previews/previewRefreshDirtyGate.dom.test.tsx1/**COMMENT
LOWtests/e2e/specs/feedback-scenarios.e2e.ts81 await closeFeedbackModal(page);COMMENT
LOW…builtin-skill-migration/builtin-skill-migration.e2e.ts441 });COMMENT
LOW…builtin-skill-migration/builtin-skill-migration.e2e.ts461 test('S8: legacy {cacheDir}/builtin-skills/ is gone after the current Electron boot', async () => {COMMENT
LOW…builtin-skill-migration/builtin-skill-migration.e2e.ts481COMMENT
LOW…e/features/conversations/antigravity/basic-flow.e2e.ts121 // agy reports no window; a fabricated denominator would be worse than none.COMMENT
LOWtests/e2e/helpers/skillsHub.ts401 * (TC-S-27 Option A - not used in current v1.3, uses Option B instead)COMMENT
LOWtests/e2e/helpers/skillsHub.ts421// }COMMENT
LOWtests/e2e/helpers/skillsHub.ts441//COMMENT
LOWpublic/pet-states/preview.html141 <script>COMMENT
LOWscripts/install-web.sh1#!/usr/bin/env bashCOMMENT
LOWscripts/prepare-release-assets.sh1#!/usr/bin/env bashCOMMENT
LOWscripts/install-ubuntu.sh1#!/usr/bin/env bashCOMMENT
LOWpackages/desktop/electron.vite.config.ts261 if (warning.code === 'EVAL') return;COMMENT
LOW…top/src/renderer/components/Markdown/WavedromBlock.tsx41// Session-wide id allocation: each WavedromBlock instance reserves one numberCOMMENT
LOW…desktop/src/renderer/components/layout/Sider/index.tsx121 closePreview();COMMENT
LOW…ktop/src/renderer/components/layout/Titlebar/index.tsx21import './titlebar.css';COMMENT
LOW…ktop/src/renderer/components/layout/Titlebar/index.tsx61 <path d='M24 6C34 6 42 13 42 22C42 31 34 38 24 38C21.7 38 19.5 37.7 17.5 37.2L7 41L10 32C7.5 29 6 25.3 6 22C6 13 1COMMENT
LOW…/desktop/src/renderer/components/media/WebviewHost.tsx101 // 就跳过重置。完整说明与「为什么要记一组而不是最后一个」见 webviewHistory.ts。COMMENT
LOWpackages/desktop/src/renderer/pet/petHitRenderer.ts81document.addEventListener('contextmenu', (e) => e.preventDefault());COMMENT
LOW…rer/pages/settings/AssistantSettings/assistantUtils.ts141///COMMENT
LOWpackages/desktop/src/renderer/pages/guid/GuidPage.tsx501 return modelSelection.setCurrentModel(model, { persistPreference: !hasSelectedAssistant });COMMENT
LOW…s/desktop/src/renderer/pages/guid/hooks/useGuidSend.ts141 // CLI agent, which owns its own model list. Used as a blanket fallback itCOMMENT
LOW…ages/desktop/src/renderer/pages/conversation/index.tsx41 // in-memory list snapshot (every row carries project_id) — before the asyncCOMMENT
LOW…nderer/pages/conversation/platforms/acp/AcpSendBox.tsx741 };COMMENT
LOW…c/renderer/pages/conversation/Messages/MessageList.tsx461COMMENT
LOW…nderer/pages/conversation/explorer/monitorTransport.ts61 // Fan out directory changes to the preview panel as well.COMMENT
LOW…nderer/pages/conversation/explorer/monitorTransport.ts81 //COMMENT
LOW…renderer/pages/conversation/explorer/ExplorerPanel.tsx161COMMENT
LOW…renderer/pages/conversation/explorer/ExplorerPanel.tsx301 <span dir='ltr' className='overflow-hidden text-ellipsis whitespace-nowrap'>COMMENT
LOW…erer/pages/conversation/explorer/ExplorerContainer.tsx141COMMENT
LOW…erer/pages/conversation/explorer/ExplorerContainer.tsx241 Message.error(t('conversation.explorer.removeFailed'));COMMENT
LOW…erer/pages/conversation/explorer/ExplorerContainer.tsx341COMMENT
LOW…erer/pages/conversation/explorer/ExplorerContainer.tsx361 // send box is mounted for the active conversation.COMMENT
LOW…rer/pages/conversation/components/ChatLayout/index.tsx81 const previewHosted = Boolean(props.previewHosted) && !isMobile;COMMENT
LOW…/pages/conversation/Preview/context/PreviewContext.tsx41 fileRef?: ChatFileRef;COMMENT
LOW…/pages/conversation/Preview/context/PreviewContext.tsx561 if (!prev.has(tabId)) return prev;COMMENT
LOW…/pages/conversation/Preview/context/PreviewContext.tsx641 // Reconciliation diffs wanted against subscribed, so the extra passes this causesCOMMENT
LOW…ation/Preview/components/PreviewPanel/PreviewPanel.tsx201 }COMMENT
LOW…ation/Preview/components/PreviewPanel/PreviewPanel.tsx401 // Save every unsaved tab in the batch before closing any of them: closingCOMMENT
LOW…ation/Preview/components/PreviewPanel/PreviewPanel.tsx481 );COMMENT
LOW…ation/Preview/components/PreviewPanel/PreviewPanel.tsx521 // 这项在非 Electron 下置灰,这里再挡一次,避免调用路径被别处复用时漏掉。COMMENT
LOW…ation/Preview/components/PreviewPanel/PreviewPanel.tsx561 reportCopy(copyText(relative));COMMENT
16 more matches not shown…
Fake / Example Data69 hits · 69 pts
SeverityFileLineSnippetContext
LOWtests/unit/renderer/hooks/teamCreateModal.dom.test.tsx209 expect(searchInput).toHaveAttribute('placeholder', 'Search');CODE
LOWscripts/install-web.sh167 # reliable marker of "placeholder". We avoid literal "__VERSION__" hereCOMMENT
LOW…sktop/src/renderer/components/base/AionSearchInput.tsx42 'value' | 'onChange' | 'placeholder' | 'disabled' | 'autoFocus' | 'className'CODE
LOW…src/renderer/components/base/AionInlineSearchInput.tsx41 'value' | 'onChange' | 'placeholder' | 'disabled' | 'autoFocus' | 'className'CODE
LOW…renderer/services/i18n/locales/tr-TR/conversation.json4 "placeholder": "Mesaj gönder, dosya yükle, klasör aç veya komutlar için / yaz...",CODE
LOW…renderer/services/i18n/locales/tr-TR/conversation.json99 "placeholder": "Mesaj içeriğini ara...",CODE
LOW…renderer/services/i18n/locales/tr-TR/conversation.json667 "placeholder": "Dosya adına göre ara",CODE
LOW…top/src/renderer/services/i18n/locales/tr-TR/team.json37 "placeholder": "Takım lideri asistana mesaj gönder..."CODE
LOW…ktop/src/renderer/services/i18n/locales/tr-TR/acp.json11 "placeholder": "{{backend}}'a mesaj gönder..."CODE
LOW…renderer/services/i18n/locales/fr-FR/conversation.json4 "placeholder": "Envoyez un message, téléversez des fichiers, ouvrez un dossier, créez une tâche planifiée ou tapez /CODE
LOW…renderer/services/i18n/locales/fr-FR/conversation.json99 "placeholder": "Rechercher dans le contenu des messages...",CODE
LOW…renderer/services/i18n/locales/fr-FR/conversation.json665 "placeholder": "Rechercher des fichiers par nom",CODE
LOW…top/src/renderer/services/i18n/locales/fr-FR/team.json37 "placeholder": "Envoyer un message à l'agent coordinateur..."CODE
LOW…ktop/src/renderer/services/i18n/locales/fr-FR/acp.json11 "placeholder": "Envoyer un message à {{backend}}..."CODE
LOW…renderer/services/i18n/locales/de-DE/conversation.json4 "placeholder": "Nachricht senden, Dateien hochladen, Ordner öffnen, eine geplante Aufgabe erstellen oder / für BefehCODE
LOW…renderer/services/i18n/locales/de-DE/conversation.json99 "placeholder": "Nachrichteninhalt suchen...",CODE
LOW…renderer/services/i18n/locales/de-DE/conversation.json666 "placeholder": "Dateien nach Name suchen",CODE
LOW…top/src/renderer/services/i18n/locales/de-DE/team.json37 "placeholder": "Nachricht an Dispatch-Agenten..."CODE
LOW…ktop/src/renderer/services/i18n/locales/de-DE/acp.json11 "placeholder": "Nachricht an {{backend}} senden..."CODE
LOW…renderer/services/i18n/locales/es-ES/conversation.json4 "placeholder": "Envía un mensaje, sube archivos, abre una carpeta, crea una tarea programada o escribe / para ver loCODE
LOW…renderer/services/i18n/locales/es-ES/conversation.json99 "placeholder": "Buscar en el contenido de mensajes...",CODE
LOW…renderer/services/i18n/locales/es-ES/conversation.json666 "placeholder": "Buscar archivos por nombre",CODE
LOW…top/src/renderer/services/i18n/locales/es-ES/team.json37 "placeholder": "Mensaje al agente coordinador..."CODE
LOW…ktop/src/renderer/services/i18n/locales/es-ES/acp.json11 "placeholder": "Enviar mensaje a {{backend}}..."CODE
LOW…renderer/services/i18n/locales/ru-RU/conversation.json4 "placeholder": "Отправьте сообщение, загрузите файлы, откройте папку, создайте запланированную задачу или введите / CODE
LOW…renderer/services/i18n/locales/ru-RU/conversation.json103 "placeholder": "Поиск по сообщениям...",CODE
LOW…renderer/services/i18n/locales/ru-RU/conversation.json673 "placeholder": "Поиск файлов по имени",CODE
LOW…top/src/renderer/services/i18n/locales/ru-RU/team.json37 "placeholder": "Сообщение ассистенту-лидеру команды..."CODE
LOW…ktop/src/renderer/services/i18n/locales/ru-RU/acp.json11 "placeholder": "Отправить сообщение {{backend}}..."CODE
LOW…renderer/services/i18n/locales/ja-JP/conversation.json4 "placeholder": "メッセージの送信、ファイルの追加、フォルダーの追加、スケジュールタスクの作成、または / でコマンド呼び出し...",CODE
LOW…renderer/services/i18n/locales/ja-JP/conversation.json99 "placeholder": "メッセージ内容を検索...",CODE
LOW…renderer/services/i18n/locales/ja-JP/conversation.json665 "placeholder": "ファイル名で検索",CODE
LOW…top/src/renderer/services/i18n/locales/ja-JP/team.json37 "placeholder": "チームリーダーアシスタントにメッセージを送信..."CODE
LOW…ktop/src/renderer/services/i18n/locales/ja-JP/acp.json11 "placeholder": "{{backend}}にメッセージを送信..."CODE
LOW…renderer/services/i18n/locales/zh-CN/conversation.json4 "placeholder": "发消息、上传文件、打开文件夹、创建定时任务,或输入 / 唤起命令...",CODE
LOW…renderer/services/i18n/locales/zh-CN/conversation.json99 "placeholder": "搜索消息内容...",CODE
LOW…renderer/services/i18n/locales/zh-CN/conversation.json665 "placeholder": "按文件名搜索",CODE
LOW…top/src/renderer/services/i18n/locales/zh-CN/team.json37 "placeholder": "向团队 Leader 助手发消息..."CODE
LOW…ktop/src/renderer/services/i18n/locales/zh-CN/acp.json11 "placeholder": "发送消息到 {{backend}}..."CODE
LOW…renderer/services/i18n/locales/zh-TW/conversation.json4 "placeholder": "發送訊息、上傳檔案、開啟資料夾、建立定時任務,或輸入 / 喚起命令...",CODE
LOW…renderer/services/i18n/locales/zh-TW/conversation.json99 "placeholder": "搜尋訊息內容...",CODE
LOW…renderer/services/i18n/locales/zh-TW/conversation.json665 "placeholder": "依檔名搜尋",CODE
LOW…top/src/renderer/services/i18n/locales/zh-TW/team.json37 "placeholder": "向團隊 Leader 助手發訊息..."CODE
LOW…ktop/src/renderer/services/i18n/locales/zh-TW/acp.json11 "placeholder": "發送訊息到 {{backend}}..."CODE
LOW…renderer/services/i18n/locales/ko-KR/conversation.json4 "placeholder": "메시지 전송, 파일 업로드, 폴더 열기, 예약 작업 만들기 또는 / 로 명령 호출...",CODE
LOW…renderer/services/i18n/locales/ko-KR/conversation.json99 "placeholder": "메시지 내용 검색...",CODE
LOW…renderer/services/i18n/locales/ko-KR/conversation.json665 "placeholder": "파일 이름으로 검색",CODE
LOW…top/src/renderer/services/i18n/locales/ko-KR/team.json37 "placeholder": "팀 리더 어시스턴트에게 메시지 보내기..."CODE
LOW…ktop/src/renderer/services/i18n/locales/ko-KR/acp.json11 "placeholder": "{{backend}}에게 메시지 보내기..."CODE
LOW…renderer/services/i18n/locales/pt-BR/conversation.json4 "placeholder": "Envie uma mensagem, faça upload de arquivos, abra uma pasta, crie uma tarefa agendada ou digite / paCODE
LOW…renderer/services/i18n/locales/pt-BR/conversation.json99 "placeholder": "Pesquisar conteúdo da mensagem...",CODE
LOW…renderer/services/i18n/locales/pt-BR/conversation.json671 "placeholder": "Buscar arquivos por nome",CODE
LOW…top/src/renderer/services/i18n/locales/pt-BR/team.json37 "placeholder": "Enviar mensagem ao assistente líder da equipe..."CODE
LOW…ktop/src/renderer/services/i18n/locales/pt-BR/acp.json11 "placeholder": "Enviar mensagem para {{backend}}..."CODE
LOW…renderer/services/i18n/locales/en-US/conversation.json4 "placeholder": "Send a message, upload files, open a folder, create a scheduled task, or type / for commands...",CODE
LOW…renderer/services/i18n/locales/en-US/conversation.json99 "placeholder": "Search message content...",CODE
LOW…renderer/services/i18n/locales/en-US/conversation.json665 "placeholder": "Search files by name",CODE
LOW…top/src/renderer/services/i18n/locales/en-US/team.json37 "placeholder": "Message the team leader assistant..."CODE
LOW…ktop/src/renderer/services/i18n/locales/en-US/acp.json11 "placeholder": "Send message to {{backend}}..."CODE
LOW…renderer/services/i18n/locales/uk-UA/conversation.json4 "placeholder": "Надішліть повідомлення, завантажте файли, відкрийте папку, створіть заплановане завдання або введітьCODE
9 more matches not shown…
Hallucination Indicators2 hits · 20 pts
SeverityFileLineSnippetContext
CRITICAL.github/workflows/project-automation.yml131 const item = result.organization.projectV2.items.nodes.find(i => i.content?.id === contentId);CODE
CRITICAL.github/workflows/project-automation.yml197 const item = result.organization.projectV2.items.nodes.find(i => i.content?.id === contentId);CODE
Synthetic Comment Markers2 hits · 10 pts
SeverityFileLineSnippetContext
HIGH.github/workflows/gpt-review.yml219 '*🤖 This review was generated by AI and may contain inaccuracies. Please focus on issues you agree with anCODE
HIGH.github/workflows/gpt-pr-assessment.yml304 '*🤖 This assessment was generated by AI and serves as a reference for maintainers. Please use your own judCODE
Example Usage Blocks2 hits · 4 pts
SeverityFileLineSnippetContext
LOWscripts/install-web.sh5# Usage:COMMENT
LOWscripts/prepare-release-assets.sh7# Usage:COMMENT
AI Slop Vocabulary1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUMtests/e2e/specs/team-describe-assistant.e2e.ts257 // payload wins. This keeps the test robust against user config drift.COMMENT
Redundant / Tautological Comments3 hits · 3 pts
SeverityFileLineSnippetContext
LOWscripts/install-web.sh371 # Check if BIN_DIR is already in PATHCOMMENT
LOWscripts/install-web.sh412 # Check if configuration already existsCOMMENT
LOW.github/workflows/_build-reusable.yml472 # Check if DMG was created (most important artifact)COMMENT