AI Slop Code Risk Monitor

slopus/happy

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

Orchestrate Claude, Codex and Grok in one app. Open-source (MIT), reuses the subscriptions you already pay for.

2.3 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for slopus/happy, a Swift project with 24,433 GitHub stars. SynthScan examined 730,108 lines of code across 3575 source files, recording 1027 pattern matches distributed across 17 syntactic categories. The legacy adjusted pattern signal is 2.3 (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.

2.3
Adjusted Signal
2.3
Raw Pattern Score
100%
Time Factor
2026-10-31
Last Push
24.4K
Stars
Swift
Language
730.1K
Lines of Code
3.6K
Files
1.0K
Pattern Hits
2026-10-31
Scan Date
0.02
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 5.8/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 2.6/100 · LOW

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

Agent Over-Engineering Ratio 5.4/100 · LOW

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

PR Review Velocity Impact 10.8/100 · LOW

Which changes need focused human review? 1027 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 32HIGH 25MEDIUM 116LOW 854

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 1027 distinct pattern matches across 17 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 Identifiers353 hits · 366 pts
SeverityFileLineSnippetContext
LOW.agents/skills/sessions/scripts/extract-metadata.py99def _extract_user_assistant_text(filepath):CODE
LOW…uperpowers/plans/2026-06-10-codex-image-attachments.md157export function supportsImageAttachmentsForFlavor(flavor: ImageAttachmentFlavor): boolean {CODE
LOW…uperpowers/plans/2026-06-10-codex-image-attachments.md161export function getImageAttachmentSendPlan(opts: {CODE
LOW…uperpowers/plans/2026-06-10-codex-image-attachments.md916export function resolveCodexImageCacheDir(opts: {CODE
LOW…uperpowers/plans/2026-06-10-codex-image-attachments.md923export async function prepareCodexImageInputItems(CODE
LOW…uperpowers/plans/2026-06-10-codex-image-attachments.md1099export async function downloadCodexFileEventAttachment(CODE
LOW…uperpowers/plans/2026-06-10-codex-image-attachments.md1394export function mapCodexThreadItemToSessionEnvelopes(CODE
LOW…uperpowers/plans/2026-06-10-codex-image-attachments.md1733async function localImagePathToAttachment(path: string, index: number): Promise<{ data: Uint8Array; mimeType: string; naCODE
LOW…uperpowers/plans/2026-06-10-codex-image-attachments.md1752export async function buildCodexThreadBackfillEnvelopes(opts: {CODE
LOW…erpowers/plans/2026-05-20-new-session-right-sidebar.md115export function getNewSessionSidebarLayout(input: NewSessionSidebarLayoutInput) {CODE
LOW…ers/plans/2026-06-10-attachment-storage-diagnostics.md244export function sanitizeAttachmentUrlHost(url: string | null | undefined): string | undefined {CODE
LOW…ers/plans/2026-06-10-attachment-storage-diagnostics.md254export function classifyAttachmentTransferTarget(CODE
LOW…ers/plans/2026-06-10-attachment-storage-diagnostics.md271export function createAttachmentDiagnostic(input: CreateAttachmentDiagnosticInput): AttachmentDiagnostic {CODE
LOW…ers/plans/2026-06-10-attachment-storage-diagnostics.md289export function createAttachmentDiagnosticError(CODE
LOW…ers/plans/2026-06-10-attachment-storage-diagnostics.md303export function formatAttachmentDiagnosticForLog(CODE
LOW…ers/plans/2026-06-10-attachment-storage-diagnostics.md973function warnAttachmentImageDiagnostic(reason: string, message?: string) {CODE
LOWpackages/happy-wire/src/controlMessages.ts4function leadingTaskNotificationEnd(text: string): number | null {CODE
LOWpackages/happy-wire/src/controlMessages.ts38export function stripLeadingTaskNotificationWrappers(text: string): string {CODE
LOWpackages/happy-agent/src/cli-smoke.test.ts67function makeRawSessionWithDataKey(CODE
LOWpackages/happy-agent/src/encryption.ts183export function libsodiumEncryptForPublicKey(data: Uint8Array, recipientPublicKey: Uint8Array): Uint8Array {CODE
LOWpackages/happy-agent/src/api.test.ts73function makeRawSessionWithDataKey(CODE
LOW…/happy-server/sources/app/social/friendNotification.ts36export async function sendFriendRequestNotification(CODE
LOW…/happy-server/sources/app/social/friendNotification.ts88export async function sendFriendshipEstablishedNotification(CODE
LOW…ckages/happy-server/sources/app/monitoring/metrics2.ts29export function getMetricsLabelsFromSocket(socket: Socket): ClientLabels {CODE
LOW…ckages/happy-server/sources/app/monitoring/metrics2.ts37export function getMetricsLabelsFromRequest(request: { headers: Record<string, string | string[] | undefined> }): ClientCODE
LOW…ckages/happy-server/sources/app/monitoring/metrics2.ts137export function startDatabaseMetricsUpdater(): void {CODE
LOW…-server/sources/app/monitoring/productionLogSummary.ts146export function startProductionLogSummary(): () => void {CODE
LOWpackages/happy-server/sources/app/events/eventRouter.ts574export function buildSessionActivityEphemeral(sessionId: string, active: boolean, activeAt: number, thinking?: boolean):CODE
LOWpackages/happy-server/sources/app/events/eventRouter.ts584export function buildMachineActivityEphemeral(machineId: string, active: boolean, activeAt: number): EphemeralPayload {CODE
LOWpackages/happy-server/sources/app/events/eventRouter.ts604export function buildMachineStatusEphemeral(machineId: string, online: boolean): EphemeralPayload {CODE
LOWpackages/happy-server/sources/app/events/eventRouter.ts618export function buildSessionEventEphemeral(sessionId: string, kind: 'done' | 'permission' | 'question', title: string, bCODE
LOWpackages/happy-server/sources/app/events/eventRouter.ts659export function buildUpdateArtifactUpdate(artifactId: string, updateSeq: number, updateId: string, header?: { value: strCODE
LOWpackages/happy-server/sources/app/events/eventRouter.ts673export function buildDeleteArtifactUpdate(artifactId: string, updateSeq: number, updateId: string): UpdatePayload {CODE
LOWpackages/happy-server/sources/app/events/eventRouter.ts685export function buildRelationshipUpdatedEvent(CODE
LOWpackages/happy-server/sources/utils/backoff.ts5function exponentialRandomizedBackoffDelay(failureCount: number, minDelay: number, maxDelay: number, factor = 0.5) {CODE
LOWpackages/happy-app/sources/track/index.ts95export function trackVoicePermissionResponse(allowed: boolean) {CODE
LOWpackages/happy-app/sources/track/index.ts102export function trackPaywallButtonClicked(flow?: string) {CODE
LOWpackages/happy-app/sources/track/index.ts137export function trackReviewPromptResponse(likesApp: boolean) {CODE
LOWpackages/happy-app/sources/track/index.ts145export function trackReviewRetryScheduled(daysUntilRetry: number) {CODE
LOW…kages/happy-app/sources/track/messageSentProperties.ts60export function messageSentSessionProperties(CODE
LOWpackages/happy-app/sources/app/_layout.tsx96function HorizontalSafeAreaWrapper({ children }: { children: React.ReactNode }) {CODE
LOWpackages/happy-app/sources/app/_layout.tsx112function stringifyNotificationPayload(value: unknown): string {CODE
LOWpackages/happy-app/sources/app/_layout.tsx196function assertLoopbackHarnessServer(): void {CODE
LOWpackages/happy-app/sources/app/_layout.tsx210function getDevEnvironmentCredentials(): AuthCredentials | null {CODE
LOWpackages/happy-app/sources/app/_layout.tsx231function getDevWebQueryCredentials(): AuthCredentials | null {CODE
LOW…kages/happy-app/sources/app/(app)/settings/account.tsx36function formatPushPermissionLabel(permission: PushPermissionInfo | null): string {CODE
LOW…kages/happy-app/sources/app/(app)/settings/account.tsx52function formatPushPermissionSubtitle(permission: PushPermissionInfo | null): string {CODE
LOW…kages/happy-app/sources/app/(app)/settings/account.tsx68function formatPushTokenFingerprint(token: string): string {CODE
LOWpackages/happy-app/sources/app/(app)/new/index.tsx184function trimTrailingPathSeparator(path: string): string {CODE
LOWpackages/happy-app/sources/app/(app)/new/index.tsx191function normalizePathForComparison(path: string | null | undefined, homeDir?: string): string | null {CODE
LOWpackages/happy-app/sources/app/(app)/new/index.tsx471function ComposerSettingsPickerContent({CODE
LOW…/happy-app/sources/app/(app)/dev/messages-demo-data.ts98export async function processUserDataWithValidationAndTransformation(CODE
LOW…ages/happy-app/sources/app/(app)/session/[id]/info.tsx67function formatDangerouslySkipPermissionsMetadata(CODE
LOW…ages/happy-app/sources/navigation/browserNavigation.ts49export function applyRouteHistoryPathname(CODE
LOW…ages/happy-app/sources/navigation/browserNavigation.ts87export function getKeyboardNavigationDirection(event: KeyboardNavigationEvent): BrowserNavigationDirection | null {CODE
LOW…ages/happy-app/sources/navigation/browserNavigation.ts94export function getMouseNavigationDirection(event: MouseNavigationEvent): BrowserNavigationDirection | null {CODE
LOW…kages/happy-app/sources/utils/microphonePermissions.ts16export async function requestMicrophonePermission(): Promise<MicrophonePermissionResult> {CODE
LOW…kages/happy-app/sources/utils/microphonePermissions.ts55export async function checkMicrophonePermission(): Promise<MicrophonePermissionResult> {CODE
LOW…kages/happy-app/sources/utils/microphonePermissions.ts84export function showMicrophonePermissionDeniedAlert(canAskAgain: boolean = false) {CODE
LOWpackages/happy-app/sources/utils/deviceCalculations.ts5export function calculateDeviceDimensions(params: {CODE
293 more matches not shown…
Hallucination Indicators32 hits · 325 pts
SeverityFileLineSnippetContext
CRITICAL…ndroid/research/f4-window/RelayWindowDeviceTest.kt.txt81 check(graph.accountStore.registry.value.entries.isEmpty()) { "Fixture requires empty app data" }CODE
CRITICAL…lin/com/slopus/happy/fixture/ConversationDeviceTest.kt280 ?.getInsets(androidx.core.view.WindowInsetsCompat.Type.ime())CODE
CRITICAL…lin/com/slopus/happy/fixture/ConversationDeviceTest.kt293 ?.isVisible(androidx.core.view.WindowInsetsCompat.Type.ime()) == trueCODE
CRITICAL…/test/kotlin/com/slopus/happy/ui/OnboardingFlowTest.kt147 assertTrue(graph.accountStore.registry.value.entries.isEmpty())CODE
CRITICAL…rc/test/kotlin/com/slopus/happy/ui/RestoreRetryTest.kt73 private fun androidx.compose.ui.test.junit4.ComposeContentTestRule.isShowing(key: String): Boolean = runCatching {CODE
CRITICAL…/test/kotlin/com/slopus/happy/ui/home/WorktreesTest.kt78 val other = com.slopus.happy.model.HomeModelFixtures.session("s2", com.slopus.happy.model.HomeModelFixtures.metaCODE
CRITICAL…test/kotlin/com/slopus/happy/ui/home/HomeLayoutTest.kt231 private fun androidx.compose.ui.unit.DpRect.height() = bottom - topCODE
CRITICAL…pus/happy/ui/tablet/HomeListAcrossTheBreakpointTest.kt83 val key = graph.accountStore.registry.value.activeId.orEmpty()CODE
CRITICAL…test/kotlin/com/slopus/happy/ui/chat/ChatLayoutTest.kt384 private fun androidx.compose.ui.test.junit4.ComposeContentTestRule.onAllNodesWithText(text: String) =CODE
CRITICAL…tlin/com/slopus/happy/ui/chat/ChatRecompositionTest.kt180 private fun androidx.compose.ui.test.SemanticsNodeInteraction.isDisplayedSafe() =CODE
CRITICAL…/com/slopus/happy/ui/connection/AgentHomeLayoutTest.kt188 surface = com.slopus.happy.ui.theme.HappyTheme.colors.surface.toArgb()CODE
CRITICAL…/kotlin/com/slopus/happy/ui/diff/DiffViewLayoutTest.kt216 runBlocking { for (hunk in com.slopus.happy.diff.syntax.DiffSyntax.plan(f, body.rows)) service.highlight(hunk.inCODE
CRITICAL…slopus/happy/ui/components/ThumbHashPlaceholderTest.kt100 private fun androidx.compose.ui.test.SemanticsNodeInteraction.isDisplayedSafely(): Boolean =CODE
CRITICAL…slopus/happy/ui/conversation/ConversationLayoutTest.kt295 com.slopus.happy.ui.theme.HappyTheme(preference = if (dark) com.slopus.happy.ui.theme.ThemePreference.Dark eCODE
CRITICAL…tlin/com/slopus/happy/accounts/MultipleAccountsTest.kt83 val entry = graph.accountStore.registry.value.entries.single()CODE
CRITICAL…tlin/com/slopus/happy/accounts/MultipleAccountsTest.kt97 assertFalse(graph.accountStore.registry.value.entries.single().serverConfirmed)CODE
CRITICAL…tlin/com/slopus/happy/accounts/MultipleAccountsTest.kt139 assertTrue(graph.accountStore.registry.value.entries.isEmpty())CODE
CRITICAL…kotlin/com/slopus/happy/model/NewSessionOptionsTest.kt173 val auto = com.slopus.happy.model.settings.ModeOption("auto", "Auto", sinceCliVersion = "1.2.1-beta.2")CODE
CRITICAL…c/test/kotlin/com/slopus/happy/sync/LiveUpdatesTest.kt280 eventually { store.messages("s1").isNotEmpty() && h.account.presence.sessions.value.containsKey("s1") }CODE
CRITICAL…src/main/kotlin/com/slopus/happy/ui/home/HomeScreen.kt174 com.slopus.happy.ui.voice.VoiceStatusBar()CODE
CRITICAL…ain/kotlin/com/slopus/happy/ui/tablet/TabletSidebar.kt238 com.slopus.happy.ui.voice.VoiceStatusBar(sidebar = true)CODE
CRITICAL…src/main/kotlin/com/slopus/happy/ui/chat/ChatScreen.kt260 if (!tablet) com.slopus.happy.ui.voice.VoiceStatusBar()CODE
CRITICAL…c/main/kotlin/com/slopus/happy/ui/chat/ChatComposer.kt331 colorFilter = androidx.compose.ui.graphics.ColorFilter.tint(colors.text),CODE
CRITICAL…/slopus/happy/ui/connection/AgentConnectionSettings.kt237 val next = graph.accountStore.registry.value.ordered.firstOrNull()?.idCODE
CRITICAL…main/kotlin/com/slopus/happy/ui/start/GrainGradient.kt140private fun androidx.compose.ui.graphics.drawscope.DrawScope.drawFallback(palette: GrainPalette) {CODE
CRITICAL…n/kotlin/com/slopus/happy/conversation/Conversation.kt753 rows += ConversationRow.User("${send.id}:user", send.id, send.text, com.slopus.happy.chat.markdown.parseMarkCODE
CRITICAL…pp/sources/components/diff/syntax/factory.generated.ts36 */var ie=(function(e){var t=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,r=0,u={},i={manual:e.Prism&&e.Prism.manual,disablCOMMENT
CRITICALpackages/happy-app/sources/sync/typesRaw.ts453 data.content.data.message.content = data.content.data.message.content.map(normalizeContent);CODE
CRITICALpackages/happy-app/sources/sync/typesRaw.ts459 data.content.data.message.content = data.content.data.message.content.map(normalizeContent);CODE
CRITICAL…ages/happy-app/sources/sync/firstSendComposers.test.ts76 expect(scope.sync.sendMessage.mock.calls.map(call => call[0])).toEqual(['created', 'created']);CODE
CRITICALpackages/happy-cli/src/agent/acp/runAcp.test.ts260 const envelopeTypes = mocks.mockSession.sendSessionProtocolMessage.mock.calls.map(([envelope]) => envelope.ev.t);CODE
CRITICALpackages/happy-cli/src/agent/acp/runAcp.test.ts531 const metadataHandlers = mocks.mockSession.updateMetadata.mock.calls.map((call) => call[0]);CODE
Decorative Section Separators98 hits · 311 pts
SeverityFileLineSnippetContext
MEDIUMdocs/plans/provider-envelope-redesign.md117// ── User Message ──────────────────────────────────────────COMMENT
MEDIUMdocs/plans/provider-envelope-redesign.md139// ── Assistant Message ─────────────────────────────────────COMMENT
MEDIUMdocs/competition/opencode/trace-opencode.sh26# ── Config ──────────────────────────────────────────────────COMMENT
MEDIUMdocs/competition/opencode/trace-opencode.sh43# ── Helpers ─────────────────────────────────────────────────COMMENT
MEDIUMdocs/competition/opencode/trace-opencode.sh172# ── Setup ───────────────────────────────────────────────────COMMENT
MEDIUMdocs/competition/opencode/trace-opencode.sh210# ── Start server ────────────────────────────────────────────COMMENT
MEDIUMdocs/competition/opencode/trace-opencode.sh235# ── Parse flow arguments ────────────────────────────────────COMMENT
MEDIUMdocs/competition/opencode/trace-opencode.sh388# ── Run flows ───────────────────────────────────────────────COMMENT
MEDIUM…s/happy-android/tools/fileicons/generate-file-icons.py81# --------------------------------------------------------------------------COMMENT
MEDIUM…s/happy-android/tools/fileicons/generate-file-icons.py309# --------------------------------------------------------------------------COMMENT
MEDIUM…s/happy-android/tools/fileicons/generate-file-icons.py427# --------------------------------------------------------------------------COMMENT
MEDIUMpackages/happy-android/tools/prism/corpus/sample.ts80// ────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/happy-android/tools/prism/corpus/sample.ts82// ────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/happy-android/tools/prism/corpus/sample.ts138// ────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/happy-android/tools/prism/corpus/sample.ts140// ────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…droid/app/src/test/resources/diff/prism-reference.json1[{"lang":"typescript","file":"sample.ts","text":"/**\n * Turns raw patches into render-ready `DiffDocument`s.\n *\n * AlCODE
MEDIUM…p/src/main/kotlin/com/slopus/happy/ui/diff/DiffRows.kt150// ─── Wrap layout ────────────────────────────────────────────────────────────COMMENT
MEDIUM…p/src/main/kotlin/com/slopus/happy/ui/diff/DiffRows.kt205// ─── Split layout ───────────────────────────────────────────────────────────COMMENT
MEDIUM…p/src/main/kotlin/com/slopus/happy/ui/diff/DiffRows.kt241// ─── Spans ──────────────────────────────────────────────────────────────────COMMENT
MEDIUM…c/main/kotlin/com/slopus/happy/ui/diff/DiffFileView.kt221// ─── Scroll layout ──────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/happy-app/sources/app/(app)/dev/diff-bench.tsx258// ────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/happy-app/sources/app/(app)/dev/diff-bench.tsx260// ────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…ges/happy-app/sources/components/diff/DiffFileView.tsx193// ────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…ges/happy-app/sources/components/diff/DiffFileView.tsx195// ────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…ges/happy-app/sources/components/diff/DiffFileView.tsx277// ────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…ges/happy-app/sources/components/diff/DiffFileView.tsx279// ────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…ges/happy-app/sources/components/diff/DiffFileView.tsx471// ────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…ges/happy-app/sources/components/diff/DiffFileView.tsx473// ────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…/happy-app/sources/components/diff/engine/buildDiff.ts80// ────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…/happy-app/sources/components/diff/engine/buildDiff.ts82// ────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…/happy-app/sources/components/diff/engine/buildDiff.ts138// ────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…/happy-app/sources/components/diff/engine/buildDiff.ts140// ────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…/happy-app/sources/components/diff/engine/buildDiff.ts351// ────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…/happy-app/sources/components/diff/engine/buildDiff.ts353// ────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/happy-ios/scripts/generate-file-icons.py85# --------------------------------------------------------------------------COMMENT
MEDIUMpackages/happy-ios/scripts/generate-file-icons.py313# --------------------------------------------------------------------------COMMENT
MEDIUMpackages/happy-ios/scripts/generate-file-icons.py431# --------------------------------------------------------------------------COMMENT
MEDIUMpackages/happy-ios/scripts/generate-icons.py132# --------------------------------------------------------------------------COMMENT
MEDIUMpackages/happy-ios/scripts/generate-icons.py365# --------------------------------------------------------------------------COMMENT
MEDIUMpackages/happy-ios/scripts/generate-icons.py409# --------------------------------------------------------------------------COMMENT
MEDIUMpackages/happy-ios/scripts/generate-icons.py836# --------------------------------------------------------------------------COMMENT
MEDIUM…ages/happy-ios/Sources/HappyLayout/ItemRowLayout.swift13/// ───────────────── divider, inset 15 + (icon ? 60 : 16) ───────────────────COMMENT
MEDIUM…s/happy-ios/Sources/HappyLayout/NewSessionLayout.swift192/// ╰──────────────────────────────────────────────╯ 98 at leastCOMMENT
MEDIUM…ckages/happy-ios/Sources/HappyLayout/UsageLayout.swift12/// ╭─ 16 from every edge, 8 padding ─────────────────────────────╮COMMENT
MEDIUM…ckages/happy-ios/Sources/HappyLayout/UsageLayout.swift14/// ╰─────────────────────────────────────────────────────────────╯COMMENT
MEDIUM…/happy-ios/Sources/HappyLayout/SessionListLayout.swift11/// ──────────── hairline from x 88 to the right edge ────────────COMMENT
MEDIUM…ppy-ios/Sources/HappyLayout/LegacySettingsLayout.swift10/// ╭──────────── card, 16 from the edges, 16 from the top ────────────╮COMMENT
MEDIUM…ppy-ios/Sources/HappyLayout/LegacySettingsLayout.swift18/// ╰──────────────────────────────────────────────────────────────────╯COMMENT
MEDIUM…urces/HappyLayout/Tablet/TabletGroupedListLayout.swift37/// |32| ───────── |6| 🖥 |6| name |4| ───────── |32|COMMENT
MEDIUM…ios/Sources/HappyLayout/Chat/QuestionSheetLayout.swift11/// ─ hairline ─────────────────────────────────────COMMENT
MEDIUM…ios/Sources/HappyLayout/Chat/QuestionSheetLayout.swift19/// ─ hairline ─────────────────────────────────────COMMENT
MEDIUM…/Sources/HappyLayout/Chat/LegacyChatHeaderLayout.swift10/// ┌ 14 ─────── title (one line) ─────── 14 ┐ 44COMMENT
MEDIUM…/Sources/HappyLayout/Chat/LegacyChatHeaderLayout.swift12/// └────────────────────────────────────────┘COMMENT
MEDIUM…/Sources/HappyLayout/Chat/WorktreeTabStripLayout.swift11/// └ 40 tall, round ──────────────────────────┴──────────┴───────┘COMMENT
MEDIUM…py-ios/Sources/HappyLayout/Chat/ChatScreenLayout.swift248/// └ 10 above and below the text ────────────────────────────────────────┘COMMENT
MEDIUM…py-ios/Sources/HappyLayout/Chat/ChatScreenLayout.swift297/// └ 10 above and below ─────────────────────────────────────────────────────────────────┘COMMENT
MEDIUM⚡…appy-ios/Sources/HappyLayout/Chat/ToolRowLayouts.swift22/// ┌ header (surfaceHighest), 12 padding ──────────────────────┐COMMENT
MEDIUM⚡…appy-ios/Sources/HappyLayout/Chat/ToolRowLayouts.swift25/// ├ body: 12 in from the sides, 8 below the header ───────────┤COMMENT
MEDIUM⚡…appy-ios/Sources/HappyLayout/Chat/ToolRowLayouts.swift26/// ├ permission footer ────────────────────────────────────────┤COMMENT
MEDIUM⚡…appy-ios/Sources/HappyLayout/Chat/ToolRowLayouts.swift27/// └ radius 8, surfaceHigh ─────────────────────────────────────┘COMMENT
38 more matches not shown…
Over-Commented Block308 hits · 307 pts
SeverityFileLineSnippetContext
LOW.agents/skills/sessions/scripts/discover-sessions.sh1#!/usr/bin/env bashCOMMENT
LOWdocs/competition/opencode/trace-opencode.sh1#!/usr/bin/env bashCOMMENT
LOW…s/happy-android/tools/fileicons/generate-file-icons.py541#COMMENT
LOWpackages/happy-android/tools/prism/corpus/sample.sh1#!/usr/bin/env bashCOMMENT
LOWpackages/happy-android/tools/prism/corpus/sample.c1// Observe macOS system capability changes for the Happy CLI.COMMENT
LOW…appy-android/app/src/main/resources/fileicons/seti.txt1# Generated by tools/fileicons/generate-file-icons.py from @peoplesgrocers/seti-ui-file-iconsCOMMENT
LOW…appy-android/app/src/main/resources/fileicons/seti.txt21#COMMENT
LOW…android/app/src/main/resources/diff/prism-grammars.txt1# Generated by tools/prism/generate-grammars.cjs from prismjs 1.30.0. Do not edit.COMMENT
LOW…p/src/main/kotlin/com/slopus/happy/chat/ChatReducer.kt1package com.slopus.happy.chatCOMMENT
LOWpackages/happy-server/tsconfig.json1{COMMENT
LOWpackages/happy-server/tsconfig.json21 // "removeComments": true, /* Do not emit comments to output. */COMMENT
LOWpackages/happy-server/tsconfig.json41 // "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */COMMENT
LOWpackages/happy-server/sources/app/api/socketConfig.ts21 connectTimeout: 20000,COMMENT
LOW…s/happy-server/sources/app/api/routes/sessionRoutes.ts41 active: true,COMMENT
LOW…ages/happy-server/sources/app/api/socket/rpcHandler.ts201 callback?.({ ok: false, error: 'Cannot call RPC on the same socket' });COMMENT
LOWpackages/happy-server/sources/utils/log.ts41// IMPORTANT: do NOT use pino's `transport` option here.COMMENT
LOWpackages/happy-app/nativewind-env.d.ts1/// <reference types="nativewind/types" />COMMENT
LOW…appy-app/sources/app/(app)/settings/connect/claude.tsx21 // const handleSuccess = async (tokens: ClaudeAuthTokens) => {COMMENT
LOWpackages/happy-app/sources/-session/SessionView.tsx661};COMMENT
LOW…ckages/happy-app/sources/components/MultiTextInput.tsx301COMMENT
LOWpackages/happy-app/sources/components/AgentInput.tsx1141 }, []);COMMENT
LOWpackages/happy-app/sources/components/MessageView.tsx181 const bubblePalette = resolveUserMessageBubbleColor(userMessageBubbleColor, theme.dark);COMMENT
LOWpackages/happy-app/sources/components/ChatList.tsx461 expanded.add(group.id);COMMENT
LOWpackages/happy-app/sources/components/ChatList.tsx641 // list opens on the newest message with no scroll at all — which is theCOMMENT
LOWpackages/happy-app/sources/components/ChatList.tsx661 // History is inserted at the far end of an inverted list — beyond theCOMMENT
LOW…/happy-app/sources/components/HorizontalScrollView.tsx1import * as React from 'react';COMMENT
LOW…/happy-app/sources/components/HorizontalScrollView.tsx21//COMMENT
LOW…appy-app/sources/components/NativeSettingsMenu.ios.tsx141 style={styles.host}COMMENT
LOW…kages/happy-app/sources/components/modelModeOptions.ts101 description: option.description ?? null,COMMENT
LOW…kages/happy-app/sources/components/modelModeOptions.ts161// Keys are full model IDs rather than the short aliases, because the aliasesCOMMENT
LOW…kages/happy-app/sources/components/modelModeOptions.ts241// runOpenClaw never reads permissionMode, so neither of these changes whatCOMMENT
LOW…kages/happy-app/sources/components/modelModeOptions.ts541}COMMENT
LOW…es/happy-app/sources/hooks/useStartSessionFromDraft.ts521 // Stop returns the composer on the next tick, prompt still in it, noCOMMENT
LOWpackages/happy-app/sources/sync/storage.ts741 // Process new AgentState through reducerCOMMENT
LOWpackages/happy-app/sources/sync/sync.ts2281COMMENT
LOWpackages/happy-app/sources/sync/sync.ts2321 }COMMENT
LOW…happy-app/sources/sync/encryption/encryptor.appspec.ts301 // it('should encrypt and decrypt multiple Uint8Arrays', async () => {COMMENT
LOW…happy-app/sources/sync/encryption/encryptor.appspec.ts321 COMMENT
LOW…happy-app/sources/sync/encryption/encryptor.appspec.ts341 // const decrypted1 = await encryptor.decrypt(encrypted1);COMMENT
LOW…happy-app/sources/sync/encryption/encryptor.appspec.ts361COMMENT
LOW…happy-app/sources/sync/encryption/encryptor.appspec.ts381 // const encryptor = new AES256Encryption(secretKey);COMMENT
LOW…happy-app/sources/sync/encryption/encryptor.appspec.ts401 // }COMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts1import { describe, it, expect } from 'vitest';COMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts21 // if (rawParsed[i].role === 'agent' && ((rawParsed[i] as any).content.data.type === 'system' || (rawParCOMMENT
LOW…ckages/happy-app/sources/sync/reducer/reducerTracer.ts1// ============================================================================COMMENT
LOW…ckages/happy-app/sources/sync/reducer/reducerTracer.ts21// - A parentUUID: Reference to its parent message (for nested responses)COMMENT
LOW…ckages/happy-app/sources/sync/reducer/reducerTracer.ts41// 5. Propagation: Once a sidechain root is identified, all its descendantsCOMMENT
LOWpackages/happy-ios/Package.swift1// swift-tools-version: 6.2COMMENT
LOW…kages/happy-ios/Tests/HappyDirectUITests/UITests.swift21 return replacedCOMMENT
LOW…-ios/Tests/HappyDirectUITests/ScrollPerfGymTests.swift21}()COMMENT
LOW…ios/Tests/HappyUIKitTests/AgentIdentityViewTests.swift41#endifCOMMENT
LOW…ios/Tests/HappyUIKitTests/ComposerEditorGeometry.swift1#if canImport(UIKit)COMMENT
LOW…HappyUIKitHostedTests/HostedHomeScrollTraceTests.swift41/// - at rest, around one update: the row's window position before andCOMMENT
LOW…s/HappyUIKitHostedTests/HostedSidebarBounceTests.swift81#endifCOMMENT
LOW…ts/HappyUIKitHostedTests/HostedShimmerLabelTests.swift41#endifCOMMENT
LOW…appy-ios/Tests/HappyChatUITests/ChatUltraQATests.swift1import XCTestCOMMENT
LOW…appy-ios/Tests/HappyChatUITests/ChatUltraQATests.swift1341COMMENT
LOW…ppy-ios/Tests/HappyChatUITests/ChatScrollUITests.swift121 let content = number(touch["offsetTravelWithKeyboard"])COMMENT
LOWpackages/happy-ios/Harness/WhatsNewHarness.swift1#if canImport(UIKit)COMMENT
LOWpackages/happy-ios/Harness/StoriesHarness.swift1#if canImport(UIKit) && (DEBUG || HAPPY_FIXTURES)COMMENT
248 more matches not shown…
Empty Error Handlers15 hits · 75 pts
SeverityFileLineSnippetContext
HIGH.agents/skills/sessions/scripts/extract-errors.py111except (json.JSONDecodeError, KeyError):CODE
HIGH.agents/skills/sessions/scripts/extract-errors.py80except (IndexError, ValueError):CODE
HIGH.agents/skills/sessions/scripts/extract-skeleton.py342except (json.JSONDecodeError, KeyError):CODE
HIGH.agents/skills/sessions/scripts/extract-skeleton.py250except (IndexError, ValueError):CODE
HIGH.agents/skills/sessions/scripts/extract-metadata.py94except (OSError, IOError):CODE
HIGH.agents/skills/sessions/scripts/extract-metadata.py171except (OSError, IOError):CODE
HIGH.agents/skills/sessions/scripts/extract-metadata.py33except (json.JSONDecodeError, KeyError):CODE
HIGH.agents/skills/sessions/scripts/extract-metadata.py55except (json.JSONDecodeError, KeyError):CODE
HIGH.agents/skills/sessions/scripts/extract-metadata.py68except (json.JSONDecodeError, KeyError):CODE
HIGH.agents/skills/sessions/scripts/extract-metadata.py92except (json.JSONDecodeError, KeyError):CODE
HIGHpackages/happy-android/tools/prism/corpus/sample.py111except (json.JSONDecodeError, KeyError):CODE
HIGHpackages/happy-android/tools/prism/corpus/sample.py80except (IndexError, ValueError):CODE
HIGHpackages/happy-ios/scripts/perf-gym/gym.py410except Exception:CODE
HIGHpackages/happy-ios/scripts/perf-gym/gym.py315except RuntimeError:CODE
HIGHpackages/happy-ios/scripts/perf-gym/fakellm.py122except (BrokenPipeError, ConnectionResetError):CODE
Structural Annotation Overuse50 hits · 69 pts
SeverityFileLineSnippetContext
LOW.agents/skills/release/SKILL.md15## Step 0: Where you release from (never skipped)COMMENT
LOW.agents/skills/release/SKILL.md81## Step 1: Pick a targetCOMMENT
LOW.agents/skills/release/SKILL.md116### Step 2: Gather stateCOMMENT
LOW.agents/skills/release/SKILL.md134### Step 3: Pick channel and versionCOMMENT
LOW.agents/skills/release/SKILL.md144### Step 4: Version bumpCOMMENT
LOW.agents/skills/release/SKILL.md215### Step 5: BuildCOMMENT
LOW.agents/skills/release/SKILL.md259### Step 6: Test (unit only)COMMENT
LOW.agents/skills/release/SKILL.md271### Step 7: PublishCOMMENT
LOW.agents/skills/release/SKILL.md305### Step 8: VerifyCOMMENT
LOW.agents/skills/release/SKILL.md330### Step 9: Read back the release and installed-package verificationCOMMENT
LOW…es/happy-server/sources/app/github/githubDisconnect.ts21 // Step 1: Check if user has GitHub connectionCOMMENT
LOW…es/happy-server/sources/app/github/githubDisconnect.ts36 // Step 2: Transaction for atomic database operationsCOMMENT
LOW…es/happy-server/sources/app/github/githubDisconnect.ts53 // Step 3: Send update via socket (after transaction completes)COMMENT
LOW⚡…kages/happy-server/sources/app/github/githubConnect.ts34 // Step 1: Check if user is already connected to this exact GitHub accountCOMMENT
LOW⚡…kages/happy-server/sources/app/github/githubConnect.ts43 // Step 2: Check if GitHub account is connected to another userCOMMENT
LOW⚡…kages/happy-server/sources/app/github/githubConnect.ts55 // Step 3: Upload avatar to S3 (outside transaction for performance)COMMENT
LOW⚡…kages/happy-server/sources/app/github/githubConnect.ts63 // Step 4: Start transaction for atomic database operationsCOMMENT
LOW…kages/happy-server/sources/app/github/githubConnect.ts93 // Step 5: Send update via socket (after transaction completes)COMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts1230 // Step 1: Create pending permissionCOMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts1249 // Step 2: Approve permissionCOMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts1269 // Step 3: Tool call arrivesCOMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts1295 // Step 4: Tool result arrivesCOMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2141 // Step 1: Load tool message first (without AgentState) - simulates messages loaded before sessionsCOMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2170 // Step 2: AgentState arrives with both pending and approved (sessions loaded)COMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2206 // Step 1: Load tool message firstCOMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2227 // Step 2: AgentState arrives with denied permissionCOMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2265 // Step 1: Load tool message firstCOMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2286 // Step 2: AgentState arrives with canceled permissionCOMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2405 // Step 1: Load tool message that's already completedCOMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2450 // Step 2: AgentState arrives with approved permissionCOMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2483 // Step 1: Load completed toolCOMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2523 // Step 2: AgentState with denied permission (too late!)COMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2557 // Step 1: Load tool that erroredCOMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2598 // Step 2: AgentState with approved permission (too late to help)COMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2623 // Step 1: Load tool that erroredCOMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2659 // Step 2: AgentState with denied permissionCOMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2687 // Step 1: Tool callCOMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2707 // Step 2: Tool result arrivesCOMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2731 // Step 3: AgentState arrives later with permission infoCOMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2814 // Step 1: Process tool messages WITHOUT AgentState (simulating messages loading before session)COMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2847 // Step 2: Later, AgentState arrives with permission for this toolCOMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2887 // Step 1: Messages load WITHOUT AgentState (session hasn't arrived yet)COMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2951 // Step 2: Session arrives with AgentState containing permission infoCOMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2975 // Step 3: User sends a new message, triggering a new reducer callCOMMENT
LOW…happy-app/sources/sync/reducer/phase0-skipping.spec.ts152 // Step 1: Process tools without AgentStateCOMMENT
LOW…happy-app/sources/sync/reducer/phase0-skipping.spec.ts181 // Step 2: AgentState arrives later with permissionCOMMENT
LOW⚡packages/happy-cli/src/ui/auth.ts259 // Step 1: Handle authenticationCOMMENT
LOW⚡packages/happy-cli/src/utils/serverConnectionErrors.ts185 // Step 1: Health check - verify server is reachableCOMMENT
LOW⚡packages/happy-cli/src/utils/serverConnectionErrors.ts191 // Step 2: Server available - perform reconnection callbackCOMMENT
LOW⚡packages/happy-cli/src/utils/serverConnectionErrors.ts199 // Step 3: Mark success and notify userCOMMENT
Fake / Example Data61 hits · 55 pts
SeverityFileLineSnippetContext
LOW.agents/skills/agent-browser/SKILL.md23agent-browser fill @e1 "user@example.com"CODE
LOW.agents/skills/agent-browser/SKILL.md39agent-browser fill @e1 "user@example.com" && agent-browser fill @e2 "password123" && agent-browser click @e3CODE
LOW.agents/skills/agent-browser/SKILL.md110agent-browser fill @e1 "Jane Doe"CODE
LOW.agents/skills/office-hours/SKILL.md433- Include realistic placeholder content (not "Lorem ipsum" — use content that matches the actual use case)CODE
LOW…uperpowers/plans/2026-06-10-codex-image-attachments.md1248 const client = new ApiSessionClient('fake-token', session);CODE
LOW…slopus/happy/ui/components/ThumbHashPlaceholderTest.kt62 assertBox("placeholder", rule.node(RemoteImageTags.PLACEHOLDER).getUnclippedBoundsInRoot(), 0.dp, 0.dp, 48.dp, 4CODE
LOW…ckages/happy-server/sources/utils/separateName.spec.ts6 const result = separateName('John Doe');CODE
LOWpackages/happy-app/sources/app/(app)/dev/tools2.tsx135 command: 'git log --pretty=format:"%h - %an, %ar : %s" --graph --since=2.weeks --author="John Doe" --greCODE
LOW…s/happy-app/sources/sync/attachmentDiagnostics.test.ts231 expect(serialized).not.toContain('user@example.com');CODE
LOW…happy-ios/Tests/HappyUIKitTests/ChatOpeningTests.swift22 XCTAssertTrue(ChatOpening.shows(missing: ["rows", "placeholder"], elapsed: 0.2))CODE
LOW…/Tests/HappyCoreTests/ComposerKeystrokeCostTests.swift34 let opening = String(repeating: "lorem ipsum ", count: length / 12 + 1).prefix(length)CODE
LOW…ests/HappyCoreTests/ComposerActiveWordUnitsTests.swift79 let content = String(repeating: "Lorem ipsum dolor sit amet. ", count: 4_000) + "see @Sources/Happy"CODE
LOW…ests/HappyCoreTests/ComposerActiveWordUnitsTests.swift79 let content = String(repeating: "Lorem ipsum dolor sit amet. ", count: 4_000) + "see @Sources/Happy"CODE
LOW…appy-ios/Tests/HappyChatUITests/ChatUltraQATests.swift1670 shown = s["placeholder"] as? String ?? "none"CODE
LOW…appy-ios/Tests/HappyChatUITests/ChatUltraQATests.swift1717 guard (state()["listInWindow"] as? Bool) == true || (state()["placeholder"] as? String ?? "none") != "none" elseCODE
LOWpackages/happy-ios/Harness/ChatUltraQAProbe.swift868 away["placeholder"] = placeholderKind(in: window)CODE
LOWpackages/happy-ios/Harness/ChatUltraQAProbe.swift888 value["placeholder"] = placeholderKind(in: window)CODE
LOW…os/Sources/HappyUI/Chat/LegacyChatViewController.swift572 if !placeholder.isHidden, !placeholder.measure.isSettled { missing.append("placeholder") }CODE
LOW…kages/happy-ios/Sources/HappyUI/Chat/ChatOpening.swift12 static let mayComeLate: Set<String> = ["rows", "placeholder"]CODE
LOW…ages/happy-cli/docs/bug-fix-plan-2025-01-15-athundt.md233 new ApiSessionClient('fake-token', { id: 'test' } as any);CODE
LOW…ages/happy-cli/docs/bug-fix-plan-2025-01-15-athundt.md262 const api = new Api('fake-key');CODE
LOWpackages/happy-cli/src/api/apiSession.test.ts190 new ApiSessionClient('fake-token', session);CODE
LOWpackages/happy-cli/src/api/apiSession.test.ts202 const client = new ApiSessionClient('fake-token', session);CODE
LOWpackages/happy-cli/src/api/apiSession.test.ts221 const client = new ApiSessionClient('fake-token', session);CODE
LOWpackages/happy-cli/src/api/apiSession.test.ts236 const client = new ApiSessionClient('fake-token', session);CODE
LOWpackages/happy-cli/src/api/apiSession.test.ts257 const client = new ApiSessionClient('fake-token', session);CODE
LOWpackages/happy-cli/src/api/apiSession.test.ts280 const client = new ApiSessionClient('fake-token', session);CODE
LOWpackages/happy-cli/src/api/apiSession.test.ts305 const client = new ApiSessionClient('fake-token', session);CODE
LOWpackages/happy-cli/src/api/apiSession.test.ts351 const client = new ApiSessionClient('fake-token', session);CODE
LOWpackages/happy-cli/src/api/apiSession.test.ts399 const client = new ApiSessionClient('fake-token', session);CODE
LOWpackages/happy-cli/src/api/apiSession.test.ts425 const client = new ApiSessionClient('fake-token', session);CODE
LOWpackages/happy-cli/src/api/apiSession.test.ts468 const client = new ApiSessionClient('fake-token', session);CODE
LOWpackages/happy-cli/src/api/apiSession.test.ts579 const client = new ApiSessionClient('fake-token', session);CODE
LOWpackages/happy-cli/src/api/apiSession.test.ts636 const client = new ApiSessionClient('fake-token', session);CODE
LOWpackages/happy-cli/src/api/apiSession.test.ts673 const client = new ApiSessionClient('fake-token', session);CODE
LOWpackages/happy-cli/src/api/apiSession.test.ts711 const client = new ApiSessionClient('fake-token', session);CODE
LOWpackages/happy-cli/src/api/apiSession.test.ts752 const client = new ApiSessionClient('fake-token', session);CODE
LOWpackages/happy-cli/src/api/apiSession.test.ts792 const client = new ApiSessionClient('fake-token', session);CODE
LOWpackages/happy-cli/src/api/apiSession.test.ts825 const client = new ApiSessionClient('fake-token', session);CODE
LOWpackages/happy-cli/src/api/apiSession.test.ts869 const client = new ApiSessionClient('fake-token', session);CODE
LOWpackages/happy-cli/src/api/apiSession.test.ts926 const client = new ApiSessionClient('fake-token', session);CODE
LOWpackages/happy-cli/src/api/apiSession.test.ts946 const client = new ApiSessionClient('fake-token', session);CODE
LOWpackages/happy-cli/src/api/apiSession.test.ts997 const client = new ApiSessionClient('fake-token', session);CODE
LOWpackages/happy-cli/src/api/apiSession.test.ts1048 const client = new ApiSessionClient('fake-token', session);CODE
LOWpackages/happy-cli/src/api/apiSession.test.ts1088 const client = new ApiSessionClient('fake-token', session);CODE
LOWpackages/happy-cli/src/api/apiSession.test.ts1107 const client = new ApiSessionClient('fake-token', session);CODE
LOWpackages/happy-cli/src/api/apiSession.test.ts1129 const client = new ApiSessionClient('fake-token', session);CODE
LOWpackages/happy-cli/src/api/apiSession.test.ts1157 const client = new ApiSessionClient('fake-token', session);CODE
LOWpackages/happy-cli/src/api/apiSession.test.ts1187 const client = new ApiSessionClient('fake-token', session);CODE
LOWpackages/happy-cli/src/api/apiSession.test.ts1207 const client = new ApiSessionClient('fake-token', session);CODE
LOWpackages/happy-cli/src/api/apiSession.test.ts1248 const client = new ApiSessionClient('fake-token', session);CODE
LOWpackages/happy-cli/src/api/apiSession.test.ts1265 new ApiSessionClient('fake-token', session);CODE
LOWpackages/happy-cli/src/api/apiSession.test.ts1283 const client = new ApiSessionClient('fake-token', session);CODE
LOW…es/happy-cli/src/api/apiMachine.resumeFallback.test.ts73 const client = new ApiMachineClient('fake-token', makeMachine());CODE
LOWpackages/happy-cli/src/api/apiMachine.test.ts133 const client = new ApiMachineClient('fake-token', makeMachine());CODE
LOWpackages/happy-cli/src/api/apiMachine.test.ts154 const client = new ApiMachineClient('fake-token', makeMachine());CODE
LOWpackages/happy-cli/src/api/apiMachine.test.ts173 const client = new ApiMachineClient('fake-token', makeMachine());CODE
LOWpackages/happy-cli/src/api/apiMachine.test.ts201 const client = new ApiMachineClient('fake-token', makeMachine());CODE
LOWpackages/happy-cli/src/api/apiMachine.test.ts226 const client = new ApiMachineClient('fake-token', makeMachine());CODE
LOWpackages/happy-cli/src/api/apiMachine.test.ts244 const client = new ApiMachineClient('fake-token', machine);CODE
1 more matches not shown…
Verbosity Indicators40 hits · 54 pts
SeverityFileLineSnippetContext
LOW…es/happy-server/sources/app/github/githubDisconnect.ts21 // Step 1: Check if user has GitHub connectionCOMMENT
LOW…es/happy-server/sources/app/github/githubDisconnect.ts36 // Step 2: Transaction for atomic database operationsCOMMENT
LOW…es/happy-server/sources/app/github/githubDisconnect.ts53 // Step 3: Send update via socket (after transaction completes)COMMENT
LOW⚡…kages/happy-server/sources/app/github/githubConnect.ts34 // Step 1: Check if user is already connected to this exact GitHub accountCOMMENT
LOW⚡…kages/happy-server/sources/app/github/githubConnect.ts43 // Step 2: Check if GitHub account is connected to another userCOMMENT
LOW⚡…kages/happy-server/sources/app/github/githubConnect.ts55 // Step 3: Upload avatar to S3 (outside transaction for performance)COMMENT
LOW⚡…kages/happy-server/sources/app/github/githubConnect.ts63 // Step 4: Start transaction for atomic database operationsCOMMENT
LOW…kages/happy-server/sources/app/github/githubConnect.ts93 // Step 5: Send update via socket (after transaction completes)COMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts1230 // Step 1: Create pending permissionCOMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts1249 // Step 2: Approve permissionCOMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts1269 // Step 3: Tool call arrivesCOMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts1295 // Step 4: Tool result arrivesCOMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2141 // Step 1: Load tool message first (without AgentState) - simulates messages loaded before sessionsCOMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2170 // Step 2: AgentState arrives with both pending and approved (sessions loaded)COMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2206 // Step 1: Load tool message firstCOMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2227 // Step 2: AgentState arrives with denied permissionCOMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2265 // Step 1: Load tool message firstCOMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2286 // Step 2: AgentState arrives with canceled permissionCOMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2405 // Step 1: Load tool message that's already completedCOMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2450 // Step 2: AgentState arrives with approved permissionCOMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2483 // Step 1: Load completed toolCOMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2523 // Step 2: AgentState with denied permission (too late!)COMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2557 // Step 1: Load tool that erroredCOMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2598 // Step 2: AgentState with approved permission (too late to help)COMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2623 // Step 1: Load tool that erroredCOMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2659 // Step 2: AgentState with denied permissionCOMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2687 // Step 1: Tool callCOMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2707 // Step 2: Tool result arrivesCOMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2731 // Step 3: AgentState arrives later with permission infoCOMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2814 // Step 1: Process tool messages WITHOUT AgentState (simulating messages loading before session)COMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2847 // Step 2: Later, AgentState arrives with permission for this toolCOMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2887 // Step 1: Messages load WITHOUT AgentState (session hasn't arrived yet)COMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2951 // Step 2: Session arrives with AgentState containing permission infoCOMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2975 // Step 3: User sends a new message, triggering a new reducer callCOMMENT
LOW…happy-app/sources/sync/reducer/phase0-skipping.spec.ts152 // Step 1: Process tools without AgentStateCOMMENT
LOW…happy-app/sources/sync/reducer/phase0-skipping.spec.ts181 // Step 2: AgentState arrives later with permissionCOMMENT
LOW⚡packages/happy-cli/src/ui/auth.ts259 // Step 1: Handle authenticationCOMMENT
LOW⚡packages/happy-cli/src/utils/serverConnectionErrors.ts185 // Step 1: Health check - verify server is reachableCOMMENT
LOW⚡packages/happy-cli/src/utils/serverConnectionErrors.ts191 // Step 2: Server available - perform reconnection callbackCOMMENT
LOW⚡packages/happy-cli/src/utils/serverConnectionErrors.ts199 // Step 3: Mark success and notify userCOMMENT
Cross-File Repetition10 hits · 50 pts
SeverityFileLineSnippetContext
HIGH…/kotlin/com/slopus/happy/ui/tablet/TabletLayoutTest.kt0{"path":"/home/me/app","host":"devbox","homedir":"/home/me","os":"linux","summary":{"text":"fix the login","updatedat":1STRING
HIGH…test/kotlin/com/slopus/happy/ui/chat/ChatLayoutTest.kt0{"path":"/home/me/app","host":"devbox","homedir":"/home/me","os":"linux","summary":{"text":"fix the login","updatedat":1STRING
HIGH…tlin/com/slopus/happy/ui/layout/FontScaleLayoutTest.kt0{"path":"/home/me/app","host":"devbox","homedir":"/home/me","os":"linux","summary":{"text":"fix the login","updatedat":1STRING
HIGH…/kotlin/com/slopus/happy/ui/chat/ChatWorkGroupsTest.kt0{"path":"/repo","host":"devbox","summary":{"text":"chat","updatedat":1}}STRING
HIGH…/kotlin/com/slopus/happy/ui/chat/ChatOlderInsetTest.kt0{"path":"/repo","host":"devbox","summary":{"text":"chat","updatedat":1}}STRING
HIGH…tlin/com/slopus/happy/ui/chat/ChatRecompositionTest.kt0{"path":"/repo","host":"devbox","summary":{"text":"chat","updatedat":1}}STRING
HIGH…/kotlin/com/slopus/happy/ui/chat/ChatDockLayoutTest.kt0{"path":"/repo","host":"devbox","summary":{"text":"chat","updatedat":1}}STRING
HIGH…test/kotlin/com/slopus/happy/ui/chat/ToolLayoutTest.kt0{"file_path":"/repo/a.kt","old_string":"a","new_string":"b"}STRING
HIGH…tlin/com/slopus/happy/ui/chat/ChatRecompositionTest.kt0{"file_path":"/repo/a.kt","old_string":"a","new_string":"b"}STRING
HIGH…st/kotlin/com/slopus/happy/ui/files/FilesLayoutTest.kt0{"file_path":"/repo/a.kt","old_string":"a","new_string":"b"}STRING
AI Slop Vocabulary13 hits · 35 pts
SeverityFileLineSnippetContext
MEDIUMdocs/competition/opencode/trace-opencode.sh3# trace-opencode.sh — reusable harness for tracing OpenCode's protocolCOMMENT
MEDIUM…droid/app/src/test/resources/diff/prism-reference.json1[{"lang":"typescript","file":"sample.ts","text":"/**\n * Turns raw patches into render-ready `DiffDocument`s.\n *\n * AlCODE
MEDIUMpackages/happy-app/sources/components/HomeDock.tsx495 // dot and one line saying what is happening now. Absolutely placed in theCOMMENT
MEDIUM…kages/happy-app/sources/sync/__testdata__/trace_0.json907 "text": "## Summary of API Module Structure\n\nBased on the header comments and CODE
MEDIUM…kages/happy-app/sources/sync/__testdata__/trace_0.json919 "text": "## Summary of API Module Structure\n\nBased on the header comments and file conCODE
MEDIUM…kages/happy-app/sources/sync/__testdata__/trace_0.json1005 "text": "## Summary of API Module Structure\n\nBased on the header comments and file conCODE
MEDIUM⚡…urces/HappyCore/Localization/TranslationCatalogs.swift7 ("en", ####"{"agentInput.agent.claude":"Claude","agentInput.agent.codex":"Codex","agentInput.agent.gemini":"GemiCODE
MEDIUM⚡…urces/HappyCore/Localization/TranslationCatalogs.swift8 ("ru", ####"{"agentInput.agent.claude":"Claude","agentInput.agent.codex":"Codex","agentInput.agent.gemini":"GemiCODE
MEDIUM⚡…urces/HappyCore/Localization/TranslationCatalogs.swift10 ("es", ####"{"agentInput.agent.claude":"Claude","agentInput.agent.codex":"Codex","agentInput.agent.gemini":"GemiCODE
MEDIUM⚡…urces/HappyCore/Localization/TranslationCatalogs.swift11 ("it", ####"{"agentInput.agent.claude":"Claude","agentInput.agent.codex":"Codex","agentInput.agent.gemini":"GemiCODE
MEDIUM⚡…urces/HappyCore/Localization/TranslationCatalogs.swift12 ("pt", ####"{"agentInput.agent.claude":"Claude","agentInput.agent.codex":"Codex","agentInput.agent.gemini":"GemiCODE
MEDIUM⚡…urces/HappyCore/Localization/TranslationCatalogs.swift14 ("zh-Hans", ####"{"agentInput.agent.claude":"Claude","agentInput.agent.codex":"Codex","agentInput.agent.gemini":CODE
MEDIUM⚡…urces/HappyCore/Localization/TranslationCatalogs.swift15 ("zh-Hant", ####"{"agentInput.agent.claude":"Claude","agentInput.agent.codex":"Codex","agentInput.agent.gemini":CODE
Deep Nesting31 hits · 31 pts
SeverityFileLineSnippetContext
LOW.agents/skills/sessions/scripts/extract-errors.py51CODE
LOW.agents/skills/sessions/scripts/extract-errors.py64CODE
LOW.agents/skills/sessions/scripts/extract-skeleton.py72CODE
LOW.agents/skills/sessions/scripts/extract-skeleton.py154CODE
LOW.agents/skills/sessions/scripts/extract-skeleton.py221CODE
LOW.agents/skills/sessions/scripts/extract-skeleton.py271CODE
LOW.agents/skills/sessions/scripts/extract-metadata.py38CODE
LOW.agents/skills/sessions/scripts/extract-metadata.py80CODE
LOW.agents/skills/sessions/scripts/extract-metadata.py99CODE
LOW.agents/skills/sessions/scripts/extract-metadata.py188CODE
LOW…s/happy-android/tools/fileicons/generate-file-icons.py101CODE
LOW…s/happy-android/tools/fileicons/generate-file-icons.py157CODE
LOWpackages/happy-android/tools/prism/corpus/sample.py51CODE
LOWpackages/happy-android/tools/prism/corpus/sample.py64CODE
LOWpackages/happy-ios/scripts/generate-file-icons.py105CODE
LOWpackages/happy-ios/scripts/generate-file-icons.py161CODE
LOWpackages/happy-ios/scripts/generate-icons.py430CODE
LOWpackages/happy-ios/scripts/generate-icons.py456CODE
LOWpackages/happy-ios/scripts/generate-icons.py478CODE
LOWpackages/happy-ios/scripts/generate-icons.py507CODE
LOWpackages/happy-ios/scripts/generate-icons.py598CODE
LOWpackages/happy-ios/scripts/generate-icons.py682CODE
LOWpackages/happy-ios/scripts/generate-icons.py206CODE
LOW…kages/happy-ios/scripts/generate-test-sticker-packs.py45CODE
LOWpackages/happy-ios/scripts/perf-gym/gym.py86CODE
LOWpackages/happy-ios/scripts/perf-gym/gym.py144CODE
LOWpackages/happy-ios/scripts/perf-gym/gym.py282CODE
LOWpackages/happy-ios/scripts/perf-gym/gym.py471CODE
LOWpackages/happy-ios/scripts/perf-gym/gym.py659CODE
LOWpackages/happy-ios/scripts/perf-gym/gym.py759CODE
LOWpackages/happy-ios/scripts/perf-gym/gym.py157CODE
Modern AI Meta-Vocabulary3 hits · 8 pts
SeverityFileLineSnippetContext
MEDIUMdocs/experimental/roadmap.md28## P0. Happy-agent orchestration and task fan-outCOMMENT
MEDIUMdocs/plans/happy-agent.md37### Task 1: Package scaffolding and build setupCOMMENT
MEDIUMdocs/plans/session-protocol-v2.md825- [Linux Foundation AAIF](https://www.linuxfoundation.org/press/linux-foundation-announces-the-formation-of-the-agentic-CODE
Excessive Try-Catch Wrapping4 hits · 6 pts
SeverityFileLineSnippetContext
LOWpackages/happy-ios/scripts/perf-gym/gym.py335 except Exception:CODE
LOWpackages/happy-ios/scripts/perf-gym/gym.py410 except Exception:CODE
MEDIUMpackages/happy-ios/scripts/perf-gym/gym.py332def healthy():CODE
MEDIUMpackages/happy-ios/scripts/perf-gym/gym.py406def start_fake():CODE
Unused Imports5 hits · 5 pts
SeverityFileLineSnippetContext
LOW…s/happy-android/tools/fileicons/generate-file-icons.py29CODE
LOWpackages/happy-ios/scripts/generate-file-icons.py33CODE
LOWpackages/happy-ios/scripts/generate-icons.py26CODE
LOWpackages/happy-ios/scripts/generate-icons.py31CODE
LOWpackages/happy-ios/scripts/generate-bot-faces.py30CODE
AI Structural Patterns2 hits · 2 pts
SeverityFileLineSnippetContext
LOW…s/happy-android/tools/fileicons/generate-file-icons.py258CODE
LOWpackages/happy-ios/scripts/generate-file-icons.py262CODE
Example Usage Blocks1 hit · 2 pts
SeverityFileLineSnippetContext
LOWdocs/competition/opencode/trace-opencode.sh8# Usage:COMMENT
TODO Padding1 hit · 1 pts
SeverityFileLineSnippetContext
LOW…/happy-app/sources/app/(app)/dev/messages-demo-data.ts360 content: `/src/App.tsx:15: // TODO: Add error boundaryCODE