AI Slop Code Risk Monitor

openchamber/openchamber

SlopCodeMonitor badge for openchamber/openchamber Adjusted legacy signal; badge bands: 25 / 50 / 75 (different from dashboard bands).

Agentic Development Environment based on OpenCode AI agent

1.0 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for openchamber/openchamber, a TypeScript project with 12,406 GitHub stars. SynthScan examined 1,285,059 lines of code across 5452 source files, recording 1024 pattern matches distributed across 14 syntactic categories. The legacy adjusted pattern signal is 1.0 (Low pattern signal); it is not an authorship estimate.

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

1.0
Adjusted Signal
1.0
Raw Pattern Score
100%
Time Factor
2026-10-31
Last Push
12.4K
Stars
TypeScript
Language
1.3M
Lines of Code
5.5K
Files
1.0K
Pattern Hits
2026-10-31
Scan Date
0.00
HC Hit Rate

Risk Review · Payload v1

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

Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.

Cognitive Ownership Risk 3.6/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 0.6/100 · LOW

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

Agent Over-Engineering Ratio 3.1/100 · LOW

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

PR Review Velocity Impact 4.6/100 · LOW

Which changes need focused human review? 1024 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 11HIGH 2MEDIUM 43LOW 968

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 1024 distinct pattern matches across 14 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.

Hyper-Verbose Identifiers707 hits · 704 pts
SeverityFileLineSnippetContext
LOWtools/oxlint/anti-slop/shared/reflect-method.ts24export function isGlobalReflectMethodCall(CODE
LOWtools/oxlint/anti-slop/shared/dictionary-types.ts142function isEffectivelyEmptyTypeLiteral(type: ESTree.TSTypeLiteral): boolean {CODE
LOWtools/oxlint/anti-slop/shared/dictionary-types.ts146function isEffectivelyEmptyInterface(CODE
LOWtools/oxlint/anti-slop/shared/dictionary-types.ts158function resolvedSubstitutionArgument(CODE
LOWtools/oxlint/anti-slop/shared/dictionary-types.ts307export function classifyUnsafeDictionaryValue(CODE
LOWtools/oxlint/anti-slop/shared/dictionary-types.ts467export function isPopulatedObjectExpression(expression: ESTree.Expression): boolean {CODE
LOWtools/oxlint/anti-slop/shared/dictionary-types.ts480export function isKnownEvidenceExpression(expression: ESTree.Expression): boolean {CODE
LOW…ols/oxlint/anti-slop/shared/lexical-type-parameters.ts14function collectInferTypeParameterNames(CODE
LOW…ols/oxlint/anti-slop/shared/lexical-type-parameters.ts35export function lexicalTypeParameterNames(CODE
LOWtools/oxlint/anti-slop/rules/no-widen-then-assert.ts18function unwrapExpressionParentheses(expression: ESTree.Expression): ESTree.Expression {CODE
LOWtools/oxlint/anti-slop/rules/no-widen-then-assert.ts143function isDefinitelyNarrowerRecordType(type: ESTree.TSType): boolean {CODE
LOWtools/oxlint/anti-slop/rules/no-widen-then-assert.ts171function resolvedVariableForIdentifier(CODE
LOW…s/oxlint/anti-slop/rules/no-chained-type-assertions.ts6function isTypeAssertionExpression(node: ESTree.Node): node is TypeAssertionExpression {CODE
LOW…s/oxlint/anti-slop/rules/no-chained-type-assertions.ts10function unwrapParenthesizedExpression(expression: ESTree.Expression): ESTree.Expression {CODE
LOW…s/oxlint/anti-slop/rules/no-chained-type-assertions.ts27function isOutermostAssertionInChain(node: TypeAssertionExpression): boolean {CODE
LOW…s/oxlint/anti-slop/rules/no-chained-type-assertions.ts39function isForbiddenAssertionChain(node: TypeAssertionExpression): boolean {CODE
LOWtools/oxlint/anti-slop/rules/no-known-value-widening.ts125function isDictionaryAccumulatorTarget(destination: WideningTarget): boolean {CODE
LOW…/anti-slop/rules/no-conditional-empty-object-spread.ts16function isConditionalEmptyObjectSpread(node: ESTree.Expression): boolean {CODE
LOW…ls/oxlint/anti-slop/rules/no-unsafe-dictionary-type.ts60function isInsideTypeAliasDeclaration(node: ESTree.Node): boolean {CODE
LOW…ols/oxlint/anti-slop/rules/no-shape-in-symbol-names.ts6function containsForbiddenSymbolName(name: string): boolean {CODE
LOWpackages/ui/src/stores/waitForOpenCodeConnection.ts24export async function waitForOpenCodeConnection(delayMs?: number): Promise<void> {CODE
LOWpackages/ui/src/stores/useUpdateStore.ts212export async function checkConnectedServerForUpdates(): Promise<UpdateInfo> {CODE
LOWpackages/ui/src/stores/useUIStore.ts85function normalizeFileEditorKeymap(value: unknown): FileEditorKeymap {CODE
LOWpackages/ui/src/stores/useSkillsStore.ts998export async function refreshSkillsAfterOpenCodeRestart(options?: { message?: string; delayMs?: number }) {CODE
LOWpackages/ui/src/stores/catalogRefresh.ts177export async function refreshStoresForCatalogKind(CODE
LOWpackages/ui/src/stores/useAgentsStore.ts965export async function refreshAfterOpenCodeRestart(options?: {CODE
LOWpackages/ui/src/stores/useAgentsStore.ts974export async function reloadOpenCodeConfiguration(options?: {CODE
LOWpackages/ui/src/components/ui/dropdown-navigation.ts27export function handleDropdownNavigationKey(CODE
LOWpackages/ui/src/components/ui/providerLogoFallback.ts5export function getProviderLogoFallbackIcon(providerId: string | null | undefined): IconName | null {CODE
LOW…/src/components/comments/useLineNumberDragSelection.ts63export function useLineNumberDragSelection({CODE
LOW…i/src/components/comments/CodeMirrorCommentWidgets.tsx29export function buildCodeMirrorCommentWidgets(options: CodeMirrorCommentWidgetsOptions): BlockWidgetDef[] {CODE
LOW…/src/components/comments/PierreDiffCommentOverlays.tsx45export function PierreDiffCommentOverlays(props: PierreDiffCommentOverlaysProps) {CODE
LOW…/components/sections/providers/custom-provider-form.ts355export function isCustomOpenAICompatibleProvider(provider: ProviderLikeForCustomForm): boolean {CODE
LOW…/components/sections/providers/custom-provider-form.ts399export function isConfigDefinedCustomProvider(CODE
LOW…/components/sections/providers/custom-provider-form.ts416export function resolveProviderConfigScope(CODE
LOW…/components/sections/providers/custom-provider-form.ts428export function providerToCustomFormState(provider: ProviderLikeForCustomForm): CustomProviderFormState {CODE
LOW…/components/sections/providers/custom-provider-form.ts740function buildCustomProviderConfig(input: {CODE
LOW…/components/sections/providers/custom-provider-form.ts766export function buildIntegrationKeyRequest(plan: CustomProviderPersistPlan): {CODE
LOW…/components/sections/providers/custom-provider-form.ts784export function buildProviderUpsertRequest(CODE
LOW…nents/sections/openchamber/ShortcutRecordingDialog.tsx145export function settleShortcutRecordingState(state: ShortcutRecordingState): ShortcutRecordingState {CODE
LOW…nents/sections/openchamber/ShortcutRecordingDialog.tsx150export function updateShortcutRecordingState(CODE
LOWpackages/ui/src/components/update/openCodeUpgrade.ts37export async function fetchOpenCodeUpgradeStatus(): Promise<OpenCodeUpgradeStatus> {CODE
LOWpackages/ui/src/components/chat/composerHighlight.ts494export function mentionRangesToHighlightRanges(mentions: MentionRange[]): HighlightRange[] {CODE
LOWpackages/ui/src/components/chat/formTextareaSizing.ts7export function getFormCustomTextareaHeight(contentHeight: number): number {CODE
LOWpackages/ui/src/components/chat/formSerializers.ts63export function serializeFormAnswerAsMarkdown(form: FormRequest, answer: Record<string, FormValue>): string {CODE
LOWpackages/ui/src/components/chat/inputHistory.ts27export function buildChatInputHistorySubmissions({CODE
LOWpackages/ui/src/components/chat/inputHistory.ts47function materializeHistoryAttachment(attachment: InputHistoryAttachment): AttachedFile | null {CODE
LOWpackages/ui/src/components/chat/inputHistory.ts79export function mapInputHistoryEntriesToValues(CODE
LOWpackages/ui/src/components/chat/inputHistory.ts112export function buildInputHistoryNavigatorIdentity(CODE
LOW…/src/components/chat/markdown/streamdownHighlighter.ts14export function createStreamdownHighlighter() {CODE
LOW…components/chat/markdown/remarkRepositoryReferences.ts69export function remarkRepositoryReferences(context: RepositoryLinkContext) {CODE
LOW…s/ui/src/components/chat/markdown/streamdownPlugins.ts125export function getMarkdownProcessingOptions(allowRawHtml: boolean, isVSCode: boolean, singleTilde = false): Pick<StreamCODE
LOW…i/src/components/chat/markdown/rehypeMarkdownPolicy.ts102export function rehypeRestoreMarkdownLinks() {CODE
LOWpackages/ui/src/components/chat/composer/text.ts58export function withInlineInsertionBoundaries(CODE
LOWpackages/ui/src/components/chat/composer/text.ts101export function shouldWrapSelectionAsLink(url: string, selected: string): boolean {CODE
LOW…onents/chat/composer/ui/PermissionAutoAcceptButton.tsx39export const PermissionAutoAcceptButton = React.memo(function PermissionAutoAcceptButton(props: PermissionAutoAcceptButtCODE
LOW…nts/chat/composer/ui/useAutocompleteSelectionScroll.ts8export function useAutocompleteSelectionScroll(CODE
LOW…c/components/chat/composer/ui/DraftTargetSelectors.tsx553export function MobileDraftTargetTriggers(CODE
LOW…mponents/chat/composer/ui/usePlaceholderFitsOneLine.ts21export function usePlaceholderFitsOneLine(CODE
LOW…onents/chat/composer/ui/ComposerAutocompletePopups.tsx79function ComposerAutocompletePopupsView(props: ComposerAutocompletePopupsProps) {CODE
647 more matches not shown…
Over-Commented Block212 hits · 209 pts
SeverityFileLineSnippetContext
LOWdocker-compose.yml21 # OPENCHAMBER_UI_PASSWORD="$(openssl rand -base64 24)" docker compose up -dCOMMENT
LOW.agents/skills/triage-prs/scripts/prep.sh1#!/usr/bin/env bashCOMMENT
LOW.agents/skills/triage-prs/scripts/finish.sh1#!/usr/bin/env bashCOMMENT
LOWscripts/test-release-build.sh1#!/usr/bin/env bashCOMMENT
LOWscripts/test-release-build.sh21# Options:COMMENT
LOWpackages/ui/scripts/build-libghostty-wasm.sh1#!/usr/bin/env bashCOMMENT
LOWpackages/ui/src/stores/useGitStore.ts341 for (const [directory, entry] of Object.entries(cache)) {COMMENT
LOWpackages/ui/src/stores/useUIStore.ts3561COMMENT
LOWpackages/ui/src/stores/useGitStore.repro.test.ts121 expect(branches?.all).toContain('hotfix');COMMENT
LOWpackages/ui/src/stores/useGitStore.repro.test.ts141 // ChatInput auto-fetches if branches aren't available.COMMENT
LOWpackages/ui/src/stores/utils/requestsInFlight.ts1// Tracks every fetch() request as "in flight" from call to promise settle,COMMENT
LOWpackages/ui/src/styles/katex-css.ts1// KaTeX's stylesheet must be imported through JavaScript, not through the CSSCOMMENT
LOWpackages/ui/src/components/ui/number-input.test.tsx541 // updating committedValueRef, so a typed value followed by a stepperCOMMENT
LOWpackages/ui/src/components/chat/ChatContainer.tsx441 const endFadeStyle: React.CSSProperties & Record<'--chat-status-row-clearance', string> = {COMMENT
LOWpackages/ui/src/components/chat/ChatContainer.tsx1681 );COMMENT
LOWpackages/ui/src/components/chat/fileReferenceParser.ts161 return null;COMMENT
LOWpackages/ui/src/components/chat/MessageList.tsx41COMMENT
LOWpackages/ui/src/components/chat/MessageList.tsx701 keyExtractor={timelineKeyExtractor}COMMENT
LOW…c/components/chat/markdown/incrementalCodeHighlight.ts1// Incremental highlighting for a code block that grows while it streams.COMMENT
LOW…ges/ui/src/components/chat/markdown/markdown-worker.ts21// The per-request timeout exists because TextMate grammars can enter catastrophicCOMMENT
LOW…s/ui/src/components/chat/markdown/selectionMarkdown.ts1import { MESSAGE_IMAGE_EXPORT_EXCLUDE_ATTRIBUTE } from '../message/imageExport';COMMENT
LOW…components/chat/composer/state/useMobileViewportPin.ts21COMMENT
LOW…mponents/chat/composer/state/useMobileComposerShell.ts121 // is a live condition rather than a mount-time one. Detaching does NOTCOMMENT
LOW…mponents/chat/composer/state/useMobileComposerShell.ts161 // Timing tuned on device, against WKWebView pausing frameCOMMENT
LOW…ckages/ui/src/components/chat/composer/editor/theme.ts21 '.cm-content': {COMMENT
LOW…ckages/ui/src/components/chat/composer/editor/theme.ts61 overflowX: 'hidden',COMMENT
LOW…ckages/ui/src/components/chat/composer/editor/theme.ts141 // Native selection can paint both the background and its paired text.COMMENT
LOW…src/components/chat/composer/editor/ComposerEditor.tsx321 history(),COMMENT
LOW…src/components/chat/composer/editor/ComposerEditor.tsx441 };COMMENT
LOW…src/components/chat/composer/editor/ComposerEditor.tsx461 // matching what a plain textarea did when its value was replaced.COMMENT
LOW…ges/ui/src/components/chat/message/parts/htmlRender.ts141 // a fainter error tint, mixed into transparent in dark themes likeCOMMENT
LOW…ges/ui/src/components/chat/message/parts/htmlRender.ts181 // in the page (see BASE_CSS), the same as the chat's own marks.COMMENT
LOW…ges/ui/src/components/chat/message/parts/htmlRender.ts201 // Sized in the app's rem like its Button (h-8 px-3 rounded-md, the UICOMMENT
LOW…ges/ui/src/components/chat/message/parts/htmlRender.ts281// stop a vertical swipe from reaching the chat.COMMENT
LOW…ges/ui/src/components/chat/message/parts/htmlRender.ts341// height: the root's box when the page is shorter than the frame, its scrollCOMMENT
LOW…ges/ui/src/components/chat/message/parts/htmlRender.ts361// page's width without resizing the root, so the tooltip check below alsoCOMMENT
LOW…ges/ui/src/components/chat/message/parts/htmlRender.ts381// fields, and the clipboard, select-all and undo chords. The deciding listenerCOMMENT
LOW…ges/ui/src/components/chat/message/parts/htmlRender.ts401// the frame loads; the page re-finds each by its text, as the chat does forCOMMENT
LOW…/ui/src/components/chat/message/parts/taskToolModel.ts101// OpenCode wraps a completed task result in an envelope:COMMENT
LOW…components/chat/work-status/useWorkStatusVisibility.ts141 const panelEnabled = useUIStore((state) => state.workStatusPanelEnabled);COMMENT
LOW…mponents/chat/work-status/WorkStatusContextSection.tsx61 const availableWorktreesByProject = useSessionUIStore((state) => state.availableWorktreesByProject);COMMENT
LOW…ui/src/components/chat/work-status/WorkStatusPanel.tsx81 // Restoring the offset has to happen the moment the scroller attaches, andCOMMENT
LOW…ui/src/components/chat/work-status/WorkStatusPanel.tsx201 // it reads as a dropdown from the header button. As a flex child itCOMMENT
LOWpackages/ui/src/components/chat/lib/streamTextCommit.ts1// Block-level streaming reveal.COMMENT
LOW…src/components/chat/lib/scroll/timelineScrollIntent.ts1// Gesture classification for the chat timeline's follow opt-out.COMMENT
LOW…/components/chat/lib/scroll/timelineScrollAnchoring.ts1// Scroll geometry for the chat timeline.COMMENT
LOW…/src/components/chat/lib/scroll/keyboardFollowGlide.ts81 // delta for the leg in flight.COMMENT
LOWpackages/ui/src/components/layout/ContextPanel.tsx501 // many size changes that cannot matter (every frame of a sidebar animation,COMMENT
LOWpackages/ui/src/components/layout/ContextPanel.tsx641 // The zone follows the pointer exactly: the size is written once per frame,COMMENT
LOWpackages/ui/src/components/layout/ContextPanel.tsx1181 if (!coverChanged && !draggedSize) beginLayoutAnimation(layoutAnimationMs);COMMENT
LOWpackages/ui/src/components/layout/ContextPanel.tsx1221 <asideCOMMENT
LOW…kages/ui/src/components/layout/ContextSurfacePanes.tsx341 const terminalZone = zoneFor('terminal');COMMENT
LOWpackages/ui/src/components/layout/Header.tsx801 // must be expressed in pixels. The interface font-size setting scales theCOMMENT
LOWpackages/ui/src/components/layout/ContextSidebarTab.tsx361 // OpenCode v2 delivers instruction text as its own `system` messageCOMMENT
LOW…es/ui/src/components/code/useWorkerHighlightedLines.ts1import React from 'react';COMMENT
LOWpackages/ui/src/components/views/DiffView.tsx2681 // reads the latest reader through this ref instead of capturing it.COMMENT
LOWpackages/ui/src/components/views/PlanView.tsx721 if (savedPlanProjectRef && savedPlanId) {COMMENT
LOWpackages/ui/src/components/views/FilesView.tsx3561 const editorFontSize = useUIStore((state) => state.editorFontSize);COMMENT
LOW…i/src/components/views/walkthrough/WalkthroughView.tsx81// than half the panel no matter how far the user drags.COMMENT
LOW…c/components/session/sidebar/sessionSidebarRowModel.ts81 // `depth`: its tree level (1 inside a folder). `mixed`: listed among otherCOMMENT
152 more matches not shown…
Decorative Section Separators38 hits · 114 pts
SeverityFileLineSnippetContext
MEDIUMpackages/ui/src/components/sections/mcp/McpPage.tsx118// ─────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/ui/src/components/sections/mcp/McpPage.tsx120// ─────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/ui/src/components/sections/mcp/McpPage.tsx249// ─────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/ui/src/components/sections/mcp/McpPage.tsx251// ─────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/ui/src/components/sections/mcp/McpPage.tsx464// ─────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/ui/src/components/sections/mcp/McpPage.tsx466// ─────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/ui/src/components/sections/mcp/McpPage.tsx545// ─────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/ui/src/components/sections/mcp/McpPage.tsx547// ─────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/ui/src/components/chat/ChatContainer.tsx1368 // ── in-conversation search ──────────────────────────────────────────────COMMENT
MEDIUM…es/ui/src/components/chat/message/ToolOutputDialog.tsx522// ── PERF-007: Virtualised sub-components for dialog ──────────────────COMMENT
MEDIUM…components/chat/message/parts/VirtualizedCodeBlock.tsx23// ── Types ────────────────────────────────────────────────────────────COMMENT
MEDIUM…components/chat/message/parts/VirtualizedCodeBlock.tsx43// ── Component ────────────────────────────────────────────────────────COMMENT
MEDIUM…components/chat/message/parts/VirtualizedCodeBlock.tsx98// ── Virtualised container (extracted so the hook is top-level) ────────COMMENT
MEDIUM…components/chat/message/parts/VirtualizedCodeBlock.tsx160// ── Single row ───────────────────────────────────────────────────────COMMENT
MEDIUMpackages/ui/src/hooks/useChatTimelineScroll.ts50// ──────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/ui/src/hooks/useChatTimelineScroll.ts70// ──────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/ui/src/hooks/useChatTimelineScroll.ts491 // ── reading position memory ─────────────────────────────────────────────COMMENT
MEDIUMpackages/ui/src/hooks/useChatTimelineScroll.ts531 // ── scroll commands ─────────────────────────────────────────────────────COMMENT
MEDIUMpackages/ui/src/hooks/useChatTimelineScroll.ts832 // ── list callbacks ──────────────────────────────────────────────────────COMMENT
MEDIUMpackages/ui/src/hooks/useChatTimelineScroll.ts1256 // ── gesture opt-out ─────────────────────────────────────────────────────COMMENT
MEDIUMpackages/ui/src/hooks/useChatTimelineScroll.ts1402 // ── session lifecycle ───────────────────────────────────────────────────COMMENT
MEDIUMpackages/ui/src/hooks/useChatTimelineScroll.ts1431 // ── entry pin ───────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/ui/src/hooks/useChatTimelineScroll.ts1472 // ── message link in the open session ────────────────────────────────────COMMENT
MEDIUMpackages/ui/src/hooks/useChatTimelineScroll.ts1489 // ── keyboard follow glide ───────────────────────────────────────────────COMMENT
MEDIUMpackages/ui/src/hooks/useChatTimelineScroll.ts1507 // ── pinned end ──────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/ui/src/hooks/useChatTimelineScroll.ts1674 // ── active-turn spy ─────────────────────────────────────────────────────COMMENT
MEDIUMpackages/ui/src/lib/runtime-auth.ts367// ── Proactive URL auth token refresh ──────────────────────────────────────COMMENT
MEDIUMpackages/ui/src/lib/runtime-fetch.ts65// ── Isolated spaces ────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/ui/src/lib/runtime-fetch.ts233// ── Relay-mode routing ─────────────────────────────────────────────────────COMMENT
MEDIUMpackages/ui/src/lib/codemirror/codeHighlight.ts53// ── Highlights: incremental, main thread ────────────────────────────────COMMENT
MEDIUMpackages/ui/src/lib/codemirror/codeHighlight.ts126// ── Shiki: whole document in the worker ─────────────────────────────────COMMENT
MEDIUMpackages/ui/src/lib/codemirror/codeHighlight.ts208// ── Engine choice ───────────────────────────────────────────────────────COMMENT
MEDIUMpackages/web/bin/cli-output.js24// ── Provider icons ──────────────────────────────────────────────COMMENT
MEDIUMpackages/web/bin/cli-output.js39// ── Status-aware log dispatch ───────────────────────────────────COMMENT
MEDIUMpackages/web/bin/cli-output.js68// ── TTY detection ───────────────────────────────────────────────COMMENT
MEDIUMpackages/web/bin/lib/commands-tunnel.js955 // ── Section 1: Ports ──────────────────────────────────────COMMENT
MEDIUMpackages/web/bin/lib/commands-tunnel.js995 // ── Section 2: Provider ─────────────────────────────────COMMENT
MEDIUMpackages/web/bin/lib/commands-tunnel.js1033 // ── Section 3: Modes ────────────────────────────────────COMMENT
Hallucination Indicators11 hits · 110 pts
SeverityFileLineSnippetContext
CRITICALpackages/ui/src/lib/shiki/appThemeRegistry.test.ts18 expect(resolved.fg).toBe(theme.colors.syntax.base.foreground.replace(/^(#[\da-f]{6})[\da-f]{2}$/i, '$1'));CODE
CRITICALpackages/web/server/lib/agent-tool/runtime.test.js294 const actions = knowledge.input.properties.action.oneOf.map((entry) => entry.const);CODE
CRITICALpackages/web/server/lib/agent-tool/runtime.test.js304 expect(tools.openchamber.input.properties.action.oneOf.map((entry) => entry.const)).not.toContain('knowledge.list');CODE
CRITICALpackages/web/server/lib/agent-tool/runtime.test.js353 expect(tool.openchamber.input.properties.action.oneOf.map((entry) => entry.const)).toContain('session.moveToWorktreeCODE
CRITICALpackages/web/server/lib/agent-tool/runtime.test.js400 const controlActions = tool.openchamber.input.properties.action.oneOf.map((entry) => entry.const);CODE
CRITICALpackages/web/server/lib/agent-tool/runtime.test.js401 const webActions = tool.openchamber_web.input.properties.action.oneOf.map((entry) => entry.const);CODE
CRITICALpackages/web/server/lib/agent-tool/runtime.test.js498 expect(tools.openchamber_workflow.input.properties.action.oneOf.map((entry) => entry.const)).toEqual([CODE
CRITICALpackages/web/server/lib/agent-tool/runtime.test.js725 const scheduleActions = tools.openchamber_schedule.input.properties.action.oneOf.map((entry) => entry.const);CODE
CRITICALpackages/web/server/lib/agent-tool/runtime.test.js727 expect(tools.openchamber.input.properties.action.oneOf.map((entry) => entry.const).filter((action) => action.startsWCODE
CRITICALpackages/web/server/lib/github/mutations.js262 || !isProviderString(pr.base.repo.owner.login) || !pr.base.repo.owner.login.trim()CODE
CRITICALpackages/web/server/lib/git/network-operations.test.js3051 expect(operation.credentialResolver.resolve.mock.calls.map(([input]) => input.credentialId))CODE
Fake / Example Data37 hits · 38 pts
SeverityFileLineSnippetContext
LOW⚡…ckages/ui/src/components/views/branchDiffScope.test.ts320 'placeholder'CODE
LOW⚡…ckages/ui/src/components/views/branchDiffScope.test.ts328 expect(captured.entries?.get(pathsKey)).toBe('placeholder');CODE
LOW⚡…ckages/ui/src/components/views/branchDiffScope.test.ts334 expect(captured.entries?.get(pathsKey)).toBe('placeholder');CODE
LOW…ckages/ui/src/components/views/branchDiffScope.test.ts371 captured.entries = useRangeKeyedCache<string>(rangeKey, pathsKey, currentFetcher, 'placeholder');CODE
LOW…ckages/ui/src/components/views/branchDiffScope.test.ts418 'placeholder'CODE
LOW…ckages/ui/src/components/views/branchDiffScope.test.ts426 expect(captured.entries?.get('src/first.ts')).toBe('placeholder');CODE
LOWpackages/ui/src/components/views/git/gitGraph.test.ts14 author_email: 'test@test.com',CODE
LOW…omponents/session/sidebar/shell/SidebarHeader.test.tsx97 expect(inputs[0]?.getAttribute('placeholder')).toBe('Search sessions...');CODE
LOWpackages/ui/src/lib/browser/pageActions.test.ts332 <div id="by-mousedown"><span class="placeholder">Add a monitor</span></div>CODE
LOWpackages/ui/src/lib/browser/annotationOverlay.ts157 var INTERESTING_ATTRS = ['id', 'class', 'name', 'type', 'href', 'src', 'alt', 'title', 'role', 'placeholder', 'aria-laCODE
LOWpackages/ui/src/lib/browser/pageActions.ts51 var placeholder = element.getAttribute('placeholder');CODE
LOWpackages/ui/src/lib/i18n/messages/ko.settings.ts805 'settings.gitIdentities.editor.field.userNamePlaceholder': 'John Doe',CODE
LOWpackages/ui/src/lib/i18n/messages/en.settings.ts837 'settings.gitIdentities.editor.field.userNamePlaceholder': 'John Doe',CODE
LOWpackages/ui/src/lib/i18n/messages/tr.settings.ts810 'settings.gitIdentities.editor.field.userNamePlaceholder': 'John Doe',CODE
LOWpackages/ui/src/lib/i18n/messages/es.settings.ts805 "settings.gitIdentities.editor.field.userNamePlaceholder": "John Doe",CODE
LOWpackages/ui/src/lib/i18n/messages/pt-BR.settings.ts805 "settings.gitIdentities.editor.field.userNamePlaceholder": "John Doe",CODE
LOWpackages/ui/src/lib/i18n/messages/nl.settings.ts838 'settings.gitIdentities.editor.field.userNamePlaceholder': 'John Doe',CODE
LOWpackages/ui/src/lib/i18n/messages/fr.settings.ts708 'settings.gitIdentities.editor.field.userNamePlaceholder': 'John Doe',CODE
LOWpackages/web/server/lib/agent-tool/runtime.test.js699 expect(Object.keys(tools.openchamber_secret.input.properties.parameters.properties).sort()).toEqual(['label', 'placeCODE
LOW…lib/source-control/provider-routes.github.auth.test.js96 return Response.json({ id: 7, login: 'user', email: 'user@example.com' });CODE
LOW…ages/web/server/lib/source-control/provider-id.test.js5 it.each(['alice', 'jane@corp.com', 'first+tag', 'Jane Doe', 'a.b_c-d', '~user!', 'x'.repeat(256)])('takes %j', (value)CODE
LOW…er/lib/source-control/provider-publication-freeze.json32 "placeholder": "https://github.example.com",CODE
LOW…er/lib/source-control/provider-publication-freeze.json128 "placeholder": "https://gitlab.example.com"CODE
LOW…er/lib/source-control/provider-publication-freeze.json215 "placeholder": "https://gitea.example.com"CODE
LOW…er/lib/source-control/provider-publication-freeze.json378 "placeholder": "https://gerrit.example.com"CODE
LOWpackages/sdk/examples/config-editor/panel/main.js263${Fo}`;var Bo="oc-sdk-ui-style",Se=(e)=>{while(e.firstChild)e.removeChild(e.firstChild)},G=(e)=>{let r=document.getElemeCODE
LOWpackages/sdk/examples/hello-kit/panel/main.js263${Wo}`;var jo="oc-sdk-ui-style",me=(e)=>{while(e.firstChild)e.removeChild(e.firstChild)},k=(e)=>{let r=document.getElemeCODE
LOWpackages/sdk/examples/tasks-demo/panel/page.js263${yn}`;var bn="oc-sdk-ui-style",Ne=(e)=>{while(e.firstChild)e.removeChild(e.firstChild)},B=(e)=>{let t=document.getElemeCODE
LOWpackages/sdk/examples/tasks-demo/panel/attach.js263${pn}`;var dn="oc-sdk-ui-style",Ae=(e)=>{while(e.firstChild)e.removeChild(e.firstChild)},U=(e)=>{let t=document.getElemeCODE
LOWpackages/sdk/examples/tasks-demo/panel/main.js263${yn}`;var bn="oc-sdk-ui-style",Ne=(e)=>{while(e.firstChild)e.removeChild(e.firstChild)},B=(e)=>{let t=document.getElemeCODE
LOW…kages/sdk/examples/browser-provider-stub/panel/main.js263${Ro}`;var vo="oc-sdk-ui-style";var G=(e)=>{let r=document.getElementById(vo);if(r instanceof HTMLStyleElement){if(r.texCODE
LOW…ages/sdk/examples/source-control-provider/package.json46 "placeholder": "https://gitea.example.com"CODE
LOWpackages/sdk/examples/github-token/panel/main.js263${Sn}`;var xn="oc-sdk-ui-style",$e=(e)=>{while(e.firstChild)e.removeChild(e.firstChild)},q=(e)=>{let t=document.getElemeCODE
LOWpackages/sdk/examples/notification-webhook/package.json29 "placeholder": "http://127.0.0.1:4567"CODE
LOWpackages/sdk/examples/service-echo/panel/main.js263${Uo}`;var No="oc-sdk-ui-style",Ee=(e)=>{while(e.firstChild)e.removeChild(e.firstChild)},H=(e)=>{let r=document.getElemeCODE
LOWpackages/sdk/src/ui/search.ts33 setAttr(input, 'placeholder', placeholder);CODE
LOWpackages/sdk/src/ui/field.ts44 setAttr(input, 'placeholder', props.placeholder);CODE
Cross-Language Confusion (JS/TS)2 hits · 10 pts
SeverityFileLineSnippetContext
HIGHpackages/web/bin/lib/cli-args.js972 elif [[ \$words[2] == "profile" ]] && (( CURRENT == 3 )); thenCODE
HIGHpackages/web/bin/lib/cli-args.js974 elif [[ \$words[2] == "completion" ]] && (( CURRENT == 3 )); thenCODE
Verbosity Indicators4 hits · 8 pts
SeverityFileLineSnippetContext
LOW⚡scripts/test-release-build.sh184 # Step 1: Install dependenciesCOMMENT
LOW⚡scripts/test-release-build.sh188 # Step 2: Build UI packageCOMMENT
LOW⚡scripts/test-release-build.sh192 # Step 3: Build Desktop for each targetCOMMENT
LOWscripts/test-release-build.sh217 # Step 4: Show resultsCOMMENT
Structural Annotation Overuse4 hits · 8 pts
SeverityFileLineSnippetContext
LOW⚡scripts/test-release-build.sh184 # Step 1: Install dependenciesCOMMENT
LOW⚡scripts/test-release-build.sh188 # Step 2: Build UI packageCOMMENT
LOW⚡scripts/test-release-build.sh192 # Step 3: Build Desktop for each targetCOMMENT
LOWscripts/test-release-build.sh217 # Step 4: Show resultsCOMMENT
AI Slop Vocabulary2 hits · 6 pts
SeverityFileLineSnippetContext
MEDIUM…ckages/ui/src/components/chat/composer/editor/theme.ts72 // iOS cursor drawing reads) behind the hint text. Absolutely positioned atCOMMENT
MEDIUMpackages/ui/src/apps/mobileConnections.ts1407// hot-switch if a better one is reachable — the seamless "LAN at home ⇄ relayCOMMENT
Modern AI Meta-Vocabulary2 hits · 6 pts
SeverityFileLineSnippetContext
MEDIUM…/ui/src/components/chat/lib/turns/turnMessageWindow.ts4// long agentic turn mounted every step at once whenever any part of it was onCOMMENT
MEDIUMpackages/web/server/lib/agent-memory/threat-patterns.js37 // Aimed at the guardrails themselves.COMMENT
Redundant / Tautological Comments2 hits · 3 pts
SeverityFileLineSnippetContext
LOWscripts/install.sh36# Check if a command existsCOMMENT
LOWscripts/install.sh66 # Check if running inside an npm/pnpm/yarn/bun contextCOMMENT
Slop Phrases1 hit · 2 pts
SeverityFileLineSnippetContext
MEDIUMpackages/ui/src/lib/responseStyle.ts21 return "Cut the filler. No 'Great question', no 'Certainly', no 'I'll help you with that', no restating what I jusCODE
Example Usage Blocks1 hit · 2 pts
SeverityFileLineSnippetContext
LOWscripts/test-release-build.sh13# Usage:COMMENT
Overly Generic Function Names1 hit · 1 pts
SeverityFileLineSnippetContext
LOW…kages/web/server/lib/dictation/local/worker-process.js125async function handleRequest(message) {CODE