AI Slop Code RIsk Monitor

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 Moderate pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for iOfficeAI/AionUi, a TypeScript project with 33,419 GitHub stars. SynthScan examined 402,219 lines of code across 2149 source files, recording 1097 pattern matches distributed across 11 syntactic categories. The legacy adjusted pattern signal is 5.0 (Moderate pattern signal); it is not an authorship estimate.

Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.

5.0
Adjusted Signal
5.0
Raw Pattern Score
100%
Time Factor
2026-09-09
Last Push
33.4K
Stars
TypeScript
Language
402.2K
Lines of Code
2.1K
Files
1.1K
Pattern Hits
2026-10-12
Scan Date
0.00
HC Hit Rate

Risk Review · v3

Use each vector to guide manual verification of the underlying findings.

Cognitive Ownership Risk 12.6/100 · LOW

Can maintainers explain intent, assumptions, and trade-offs? 766 finding(s).

Hallucinated Dependency & Supply Chain Risk 1.1/100 · LOW

Are imports declared and package/API names verified? 71 finding(s).

Agent Over-Engineering Ratio 13.6/100 · LOW

Are wrappers, guards, and repeated structures necessary? 581 finding(s).

PR Review Velocity Impact 18.5/100 · LOW

Which changes need focused human review? 1097 finding(s).

What These Metrics Mean

Adjusted Signal
Legacy pattern score normalized per 1,000 scanned lines and multiplied by the repository-level time factor. It is not an estimate of AI authorship.
Raw Pattern Score
Sum of severity- and context-weighted pattern findings before applying the time factor.
Time Factor
A coarse multiplier based on repository last-push metadata. It does not identify when individual code was written.
Pattern Hits
Count of configured pattern findings. Review each location and surrounding code before acting.
HC Hit Rate
High- and critical-severity findings per scanned file. Severity is a configured detector weight, not proof of a vulnerability or authorship.
Lines / Files
Scan coverage denominators used by the legacy normalized score.

Pattern-Signal History

This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.

Severity Breakdown

Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.

CRITICAL 2HIGH 2MEDIUM 261LOW 832

Directory Score Breakdown

This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.

Pattern Findings

The scanner identified 1097 distinct pattern matches across 11 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.

Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.

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
MEDIUM⚡tests/e2e/specs/feedback-scenarios.e2e.ts84// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM⚡tests/e2e/specs/feedback-scenarios.e2e.ts92// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM⚡tests/e2e/specs/feedback-scenarios.e2e.ts94// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM⚡tests/e2e/specs/feedback-scenarios.e2e.ts100// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM⚡tests/e2e/specs/feedback-scenarios.e2e.ts102// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM⚡tests/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
MEDIUM⚡tests/e2e/specs/webui.e2e.ts20 // ── Page loads ───────────────────────────────────────────────────────────COMMENT
MEDIUM⚡tests/e2e/specs/webui.e2e.ts27 // ── Enable toggle ──────────────────────────────────────────────────────COMMENT
MEDIUM⚡tests/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
LOW⚡tests/e2e/features/settings/skills/core-ui.e2e.ts86 // Step 2: Locate "My Skills" sectionCOMMENT
LOW⚡tests/e2e/features/settings/skills/core-ui.e2e.ts90 // Step 4: Verify skill count badge (should show 2)COMMENT
LOW⚡tests/e2e/features/settings/skills/core-ui.e2e.ts147 // Step 2: Locate target skill card in My Skills sectionCOMMENT
LOW⚡tests/e2e/features/settings/skills/core-ui.e2e.ts151 // Step 3: Hover to show delete button (may require actual hover)COMMENT
LOW⚡tests/e2e/features/settings/skills/core-ui.e2e.ts158 // Step 4: Click delete buttonCOMMENT
LOW⚡tests/e2e/features/settings/skills/core-ui.e2e.ts162 // Step 5: Verify confirmation modal appearsCOMMENT
LOW⚡tests/e2e/features/settings/skills/core-ui.e2e.ts172 // Step 6: Click confirm button (Arco Modal confirm button)COMMENT
LOW⚡tests/e2e/features/settings/skills/core-ui.e2e.ts237 // Step 2: Select two of the three skills by clicking their cardsCOMMENT
LOW⚡tests/e2e/features/settings/skills/core-ui.e2e.ts245 // Step 3: Click batch delete and confirm in the modalCOMMENT
LOW⚡tests/e2e/features/settings/skills/core-ui.e2e.ts315 // Step 2: Locate the builtin skill cardCOMMENT
LOW⚡tests/e2e/features/settings/skills/core-ui.e2e.ts319 // Step 3: Hover to card to reveal buttonsCOMMENT
LOW⚡tests/e2e/features/settings/skills/core-ui.e2e.ts356 // Step 2: Locate "Discovered External Skills" sectionCOMMENT
LOW⚡tests/e2e/features/settings/skills/core-ui.e2e.ts363 // Step 4: Click Tab button for this test's specific source.COMMENT
LOW⚡tests/e2e/features/settings/skills/core-ui.e2e.ts417 // Step 2: Locate external skill cardCOMMENT
LOW⚡tests/e2e/features/settings/skills/core-ui.e2e.ts426 // Step 3: Click the card to import (entire card is clickable)COMMENT
LOW⚡tests/e2e/features/settings/skills/core-ui.e2e.ts472 // Step 2: Locate "Add Path" button in External Skills sectionCOMMENT
LOW⚡tests/e2e/features/settings/skills/core-ui.e2e.ts479 // Step 3: Click "Add Path" buttonCOMMENT
LOW⚡tests/e2e/features/settings/skills/core-ui.e2e.ts489 // Step 4: Enter source name and pathCOMMENT
LOW⚡tests/e2e/features/settings/skills/core-ui.e2e.ts499 // Step 5: Click confirm (Arco Modal OK button)COMMENT
LOW⚡tests/e2e/features/settings/skills/core-ui.e2e.ts572 // Step 2: Locate skill card in "My Skills"COMMENT
LOW⚡tests/e2e/features/settings/skills/core-ui.e2e.ts576 // Step 3: Hover to show "Export" button and waitCOMMENT
LOW⚡tests/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
LOW⚡tests/e2e/features/settings/skills/path-export.e2e.ts72 // Step 2: Dynamically add new skill to external source directoryCOMMENT
LOW⚡tests/e2e/features/settings/skills/path-export.e2e.ts79 // Step 3: Click external refresh buttonCOMMENT
LOW⚡tests/e2e/features/settings/skills/path-export.e2e.ts129 // Step 3: Fill in duplicate pathCOMMENT
LOW⚡tests/e2e/features/settings/skills/path-export.e2e.ts136 // Step 4: Click Confirm button (use Arco's OK button class)COMMENT
LOW⚡tests/e2e/features/settings/skills/path-export.e2e.ts188 // Step 2: Fill only Name fieldCOMMENT
LOW⚡tests/e2e/features/settings/skills/path-export.e2e.ts197 // Step 3: Clear Name, fill only Path fieldCOMMENT
LOW⚡tests/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
LOW⚡tests/e2e/features/settings/skills/core-ui.e2e.ts86 // Step 2: Locate "My Skills" sectionCOMMENT
LOW⚡tests/e2e/features/settings/skills/core-ui.e2e.ts90 // Step 4: Verify skill count badge (should show 2)COMMENT
LOW⚡tests/e2e/features/settings/skills/core-ui.e2e.ts147 // Step 2: Locate target skill card in My Skills sectionCOMMENT
LOW⚡tests/e2e/features/settings/skills/core-ui.e2e.ts151 // Step 3: Hover to show delete button (may require actual hover)COMMENT
LOW⚡tests/e2e/features/settings/skills/core-ui.e2e.ts158 // Step 4: Click delete buttonCOMMENT
LOW⚡tests/e2e/features/settings/skills/core-ui.e2e.ts162 // Step 5: Verify confirmation modal appearsCOMMENT
LOW⚡tests/e2e/features/settings/skills/core-ui.e2e.ts172 // Step 6: Click confirm button (Arco Modal confirm button)COMMENT
LOW⚡tests/e2e/features/settings/skills/core-ui.e2e.ts237 // Step 2: Select two of the three skills by clicking their cardsCOMMENT
LOW⚡tests/e2e/features/settings/skills/core-ui.e2e.ts245 // Step 3: Click batch delete and confirm in the modalCOMMENT
LOW⚡tests/e2e/features/settings/skills/core-ui.e2e.ts315 // Step 2: Locate the builtin skill cardCOMMENT
LOW⚡tests/e2e/features/settings/skills/core-ui.e2e.ts319 // Step 3: Hover to card to reveal buttonsCOMMENT
LOW⚡tests/e2e/features/settings/skills/core-ui.e2e.ts356 // Step 2: Locate "Discovered External Skills" sectionCOMMENT
LOW⚡tests/e2e/features/settings/skills/core-ui.e2e.ts363 // Step 4: Click Tab button for this test's specific source.COMMENT
LOW⚡tests/e2e/features/settings/skills/core-ui.e2e.ts417 // Step 2: Locate external skill cardCOMMENT
LOW⚡tests/e2e/features/settings/skills/core-ui.e2e.ts426 // Step 3: Click the card to import (entire card is clickable)COMMENT
LOW⚡tests/e2e/features/settings/skills/core-ui.e2e.ts472 // Step 2: Locate "Add Path" button in External Skills sectionCOMMENT
LOW⚡tests/e2e/features/settings/skills/core-ui.e2e.ts479 // Step 3: Click "Add Path" buttonCOMMENT
LOW⚡tests/e2e/features/settings/skills/core-ui.e2e.ts489 // Step 4: Enter source name and pathCOMMENT
LOW⚡tests/e2e/features/settings/skills/core-ui.e2e.ts499 // Step 5: Click confirm (Arco Modal OK button)COMMENT
LOW⚡tests/e2e/features/settings/skills/core-ui.e2e.ts572 // Step 2: Locate skill card in "My Skills"COMMENT
LOW⚡tests/e2e/features/settings/skills/core-ui.e2e.ts576 // Step 3: Hover to show "Export" button and waitCOMMENT
LOW⚡tests/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
LOW⚡tests/e2e/features/settings/skills/path-export.e2e.ts72 // Step 2: Dynamically add new skill to external source directoryCOMMENT
LOW⚡tests/e2e/features/settings/skills/path-export.e2e.ts79 // Step 3: Click external refresh buttonCOMMENT
LOW⚡tests/e2e/features/settings/skills/path-export.e2e.ts129 // Step 3: Fill in duplicate pathCOMMENT
LOW⚡tests/e2e/features/settings/skills/path-export.e2e.ts136 // Step 4: Click Confirm button (use Arco's OK button class)COMMENT
LOW⚡tests/e2e/features/settings/skills/path-export.e2e.ts188 // Step 2: Fill only Name fieldCOMMENT
LOW⚡tests/e2e/features/settings/skills/path-export.e2e.ts197 // Step 3: Clear Name, fill only Path fieldCOMMENT
LOW⚡tests/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 Block79 hits · 78 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.tsx161 // leaf. loadMore makes arco honor `isLeaf: false` and show the expander; it alsoCOMMENT
LOW…renderer/pages/conversation/explorer/ExplorerPanel.tsx301 </span>COMMENT
LOW…erer/pages/conversation/explorer/ExplorerContainer.tsx181 // Derive the project id from the SWR key, not the captured `projectId`COMMENT
LOW…erer/pages/conversation/explorer/ExplorerContainer.tsx241 } catch {COMMENT
LOW…erer/pages/conversation/explorer/ExplorerContainer.tsx341 const payload: FileOrFolderItem[] = [item];COMMENT
LOW…erer/pages/conversation/explorer/ExplorerContainer.tsx461 if (!projectId) return null;COMMENT
LOW…erer/pages/conversation/explorer/ExplorerContainer.tsx481 // • Files — refresh every pe root. Two independent staleness sources areCOMMENT
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
19 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.json669 "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.json667 "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.json668 "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.json668 "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.json675 "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.json667 "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.json667 "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.json667 "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.json667 "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.json673 "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.json667 "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
LOW⚡scripts/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