Repository Analysis

slopus/happy

Mobile and Web client for Codex and Claude Code, with realtime voice, encryption and fully featured

2.4 Likely human-written View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of slopus/happy, a TypeScript project with 22,621 GitHub stars. SynthScan v2.0 examined 258,428 lines of code across 1265 source files, recording 475 pattern matches distributed across 12 syntactic categories. The overall adjusted score of 2.4 places this repository in the Likely human-written band.

The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).

2.4
Adjusted Score
2.4
Raw Score
100%
Time Factor
2026-07-11
Last Push
22.6K
Stars
TypeScript
Language
258.4K
Lines of Code
1.3K
Files
475
Pattern Hits
2026-07-14
Scan Date
0.00
HC Hit Rate

What These Metrics Mean

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

Score History

This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.

Severity Breakdown

Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.

CRITICAL 4HIGH 0MEDIUM 42LOW 429

Directory Score Breakdown

This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.

Pattern Findings

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

Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.

Hyper-Verbose Identifiers246 hits · 256 pts
SeverityFileLineSnippetContext
LOWenvironments/environments.ts139function ensureLabRatProjectTemplate() {CODE
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-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
LOWpackages/codium/sources/boot/main/index.ts309async function resolveProjectWorkspaceName(args: {CODE
LOW…ckages/codium/sources/boot/main/happy-worker/worker.ts287function libsodiumBoxSecretKeyFromSeed(seed: Uint8Array): Uint8Array {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
LOWpackages/happy-server/sources/app/events/eventRouter.ts499export function buildSessionActivityEphemeral(sessionId: string, active: boolean, activeAt: number, thinking?: boolean):CODE
LOWpackages/happy-server/sources/app/events/eventRouter.ts509export function buildMachineActivityEphemeral(machineId: string, active: boolean, activeAt: number): EphemeralPayload {CODE
LOWpackages/happy-server/sources/app/events/eventRouter.ts529export function buildMachineStatusEphemeral(machineId: string, online: boolean): EphemeralPayload {CODE
LOWpackages/happy-server/sources/app/events/eventRouter.ts543export function buildSessionEventEphemeral(sessionId: string, kind: 'done' | 'permission' | 'question', title: string, bCODE
LOWpackages/happy-server/sources/app/events/eventRouter.ts584export function buildUpdateArtifactUpdate(artifactId: string, updateSeq: number, updateId: string, header?: { value: strCODE
LOWpackages/happy-server/sources/app/events/eventRouter.ts598export function buildDeleteArtifactUpdate(artifactId: string, updateSeq: number, updateId: string): UpdatePayload {CODE
LOWpackages/happy-server/sources/app/events/eventRouter.ts610export 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.ts73export function trackVoicePermissionResponse(allowed: boolean) {CODE
LOWpackages/happy-app/sources/track/index.ts80export function trackPaywallButtonClicked(flow?: string) {CODE
LOWpackages/happy-app/sources/track/index.ts115export function trackReviewPromptResponse(likesApp: boolean) {CODE
LOWpackages/happy-app/sources/track/index.ts123export function trackReviewRetryScheduled(daysUntilRetry: number) {CODE
LOWpackages/happy-app/sources/app/_layout.tsx88function HorizontalSafeAreaWrapper({ children }: { children: React.ReactNode }) {CODE
LOWpackages/happy-app/sources/app/_layout.tsx104function stringifyNotificationPayload(value: unknown): string {CODE
LOWpackages/happy-app/sources/app/_layout.tsx177function getDevEnvironmentCredentials(): AuthCredentials | null {CODE
LOWpackages/happy-app/sources/app/_layout.tsx191function 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
LOW…ckages/happy-app/sources/app/(app)/settings/agents.tsx52export default function AgentDefaultsSettingsScreen() {CODE
LOW…es/happy-app/sources/app/(app)/settings/appearance.tsx109function StatusDisplayDropdownValue(props: {CODE
LOWpackages/happy-app/sources/app/(app)/new/index.tsx112function trimTrailingPathSeparator(path: string): string {CODE
LOWpackages/happy-app/sources/app/(app)/new/index.tsx119function normalizePathForComparison(path: string | null | undefined, homeDir?: string): string | null {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.tsx102function 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
LOW…py-app/sources/utils/copySessionMetadataToClipboard.ts7export async function copySessionMetadataToClipboard(session: Session): Promise<boolean> {CODE
186 more matches not shown…
Decorative Section Separators35 hits · 105 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-app/sources/components/diff/PierreDiffView.tsx32// ────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…s/happy-app/sources/components/diff/PierreDiffView.tsx36// ────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…s/happy-app/sources/components/diff/PierreDiffView.tsx75// ────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…s/happy-app/sources/components/diff/PierreDiffView.tsx77// ────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…s/happy-app/sources/components/diff/PierreDiffView.tsx172// ────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…s/happy-app/sources/components/diff/PierreDiffView.tsx176// ────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/happy-cli/experiments/codex-reject.ts33// ── Config ──────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/happy-cli/experiments/codex-reject.ts39// ── Helpers ─────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/happy-cli/experiments/codex-reject.ts64// ── Main ────────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/happy-cli/experiments/codex-reject.ts162 // ── Results ──────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/happy-cli/experiments/codex.ts25// ── Config ──────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/happy-cli/experiments/codex.ts35// ── Helpers ─────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/happy-cli/experiments/codex.ts67// ── Main ────────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/happy-cli/src/openclaw/OpenClawSocket.ts236 // ─── Private ─────────────────────────────────────────────────COMMENT
MEDIUM…es/happy-cli/src/openclaw/openclaw.integration.test.ts36// ── Shared helpers ──────────────────────────────────────────────────────────COMMENT
MEDIUM…es/happy-cli/src/openclaw/openclaw.integration.test.ts100// ── 1. OpenClawSocket ───────────────────────────────────────────────────────COMMENT
MEDIUM…es/happy-cli/src/openclaw/openclaw.integration.test.ts232// ── 2. OpenClawBackend ──────────────────────────────────────────────────────COMMENT
MEDIUM…es/happy-cli/src/openclaw/openclaw.integration.test.ts290// ── 3. Full message pipeline ────────────────────────────────────────────────COMMENT
MEDIUM…es/happy-cli/src/openclaw/openclaw.integration.test.ts387// ── 4. Daemon lifecycle ─────────────────────────────────────────────────────COMMENT
MEDIUMpackages/happy-cli/src/codex/codexAppServerClient.ts593 // ─── Lifecycle ──────────────────────────────────────────────COMMENT
MEDIUMpackages/happy-cli/src/codex/codexAppServerClient.ts787 // ─── Thread management ──────────────────────────────────────COMMENT
MEDIUMpackages/happy-cli/src/codex/codexAppServerClient.ts977 // ─── Turn management ────────────────────────────────────────COMMENT
MEDIUMpackages/happy-cli/src/codex/codexAppServerClient.ts1220 // ─── State queries ──────────────────────────────────────────COMMENT
MEDIUMpackages/happy-cli/src/codex/codexAppServerClient.ts1239 // ─── JSON-RPC transport ─────────────────────────────────────COMMENT
MEDIUMpackages/happy-cli/src/codex/codex.integration.test.ts22// ── Helpers ──────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/happy-cli/src/codex/codex.integration.test.ts52// ── CodexDriver ──────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/happy-cli/src/codex/codex.integration.test.ts207// ── Tests ────────────────────────────────────────────────────────────────────COMMENT
Structural Annotation Overuse51 hits · 73 pts
SeverityFileLineSnippetContext
LOW.agents/skills/release/SKILL.md15## Step 1: Pick a targetCOMMENT
LOW.agents/skills/release/SKILL.md42### Step 2: Gather stateCOMMENT
LOW.agents/skills/release/SKILL.md60### Step 3: Pick channel and versionCOMMENT
LOW.agents/skills/release/SKILL.md70### Step 4: Version bumpCOMMENT
LOW.agents/skills/release/SKILL.md76### Step 5: BuildCOMMENT
LOW.agents/skills/release/SKILL.md113### Step 6: Test (unit only)COMMENT
LOW.agents/skills/release/SKILL.md125### Step 7: PublishCOMMENT
LOW.agents/skills/release/SKILL.md177### Step 8: VerifyCOMMENT
LOW.agents/skills/release/SKILL.md199### Step 9: Git tag + commit (latest only)COMMENT
LOW.agents/skills/release/SKILL.md218### Step 10: GitHub Release (latest only)COMMENT
LOW.agents/skills/release/SKILL.md225### Step 11: Install + verify locallyCOMMENT
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.ts1228 // Step 1: Create pending permissionCOMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts1247 // Step 2: Approve permissionCOMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts1267 // Step 3: Tool call arrivesCOMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts1293 // Step 4: Tool result arrivesCOMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2139 // Step 1: Load tool message first (without AgentState) - simulates messages loaded before sessionsCOMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2168 // Step 2: AgentState arrives with both pending and approved (sessions loaded)COMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2204 // Step 1: Load tool message firstCOMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2225 // Step 2: AgentState arrives with denied permissionCOMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2263 // Step 1: Load tool message firstCOMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2284 // Step 2: AgentState arrives with canceled permissionCOMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2403 // Step 1: Load tool message that's already completedCOMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2448 // Step 2: AgentState arrives with approved permissionCOMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2481 // Step 1: Load completed toolCOMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2521 // Step 2: AgentState with denied permission (too late!)COMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2555 // Step 1: Load tool that erroredCOMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2596 // Step 2: AgentState with approved permission (too late to help)COMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2621 // Step 1: Load tool that erroredCOMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2657 // Step 2: AgentState with denied permissionCOMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2685 // Step 1: Tool callCOMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2705 // Step 2: Tool result arrivesCOMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2729 // Step 3: AgentState arrives later with permission infoCOMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2812 // Step 1: Process tool messages WITHOUT AgentState (simulating messages loading before session)COMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2845 // Step 2: Later, AgentState arrives with permission for this toolCOMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2885 // Step 1: Messages load WITHOUT AgentState (session hasn't arrived yet)COMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2949 // Step 2: Session arrives with AgentState containing permission infoCOMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2973 // 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
LOWpackages/happy-cli/src/ui/auth.ts259 // Step 1: Handle authenticationCOMMENT
LOWpackages/happy-cli/src/utils/serverConnectionErrors.ts185 // Step 1: Health check - verify server is reachableCOMMENT
LOWpackages/happy-cli/src/utils/serverConnectionErrors.ts191 // Step 2: Server available - perform reconnection callbackCOMMENT
LOWpackages/happy-cli/src/utils/serverConnectionErrors.ts199 // Step 3: Mark success and notify userCOMMENT
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.ts1228 // Step 1: Create pending permissionCOMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts1247 // Step 2: Approve permissionCOMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts1267 // Step 3: Tool call arrivesCOMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts1293 // Step 4: Tool result arrivesCOMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2139 // Step 1: Load tool message first (without AgentState) - simulates messages loaded before sessionsCOMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2168 // Step 2: AgentState arrives with both pending and approved (sessions loaded)COMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2204 // Step 1: Load tool message firstCOMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2225 // Step 2: AgentState arrives with denied permissionCOMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2263 // Step 1: Load tool message firstCOMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2284 // Step 2: AgentState arrives with canceled permissionCOMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2403 // Step 1: Load tool message that's already completedCOMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2448 // Step 2: AgentState arrives with approved permissionCOMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2481 // Step 1: Load completed toolCOMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2521 // Step 2: AgentState with denied permission (too late!)COMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2555 // Step 1: Load tool that erroredCOMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2596 // Step 2: AgentState with approved permission (too late to help)COMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2621 // Step 1: Load tool that erroredCOMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2657 // Step 2: AgentState with denied permissionCOMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2685 // Step 1: Tool callCOMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2705 // Step 2: Tool result arrivesCOMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2729 // Step 3: AgentState arrives later with permission infoCOMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2812 // Step 1: Process tool messages WITHOUT AgentState (simulating messages loading before session)COMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2845 // Step 2: Later, AgentState arrives with permission for this toolCOMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2885 // Step 1: Messages load WITHOUT AgentState (session hasn't arrived yet)COMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2949 // Step 2: Session arrives with AgentState containing permission infoCOMMENT
LOWpackages/happy-app/sources/sync/reducer/reducer.spec.ts2973 // 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
LOWpackages/happy-cli/src/ui/auth.ts259 // Step 1: Handle authenticationCOMMENT
LOWpackages/happy-cli/src/utils/serverConnectionErrors.ts185 // Step 1: Health check - verify server is reachableCOMMENT
LOWpackages/happy-cli/src/utils/serverConnectionErrors.ts191 // Step 2: Server available - perform reconnection callbackCOMMENT
LOWpackages/happy-cli/src/utils/serverConnectionErrors.ts199 // Step 3: Mark success and notify userCOMMENT
Hallucination Indicators4 hits · 40 pts
SeverityFileLineSnippetContext
CRITICALpackages/happy-app/sources/sync/typesRaw.ts408 data.content.data.message.content = data.content.data.message.content.map(normalizeContent);CODE
CRITICALpackages/happy-app/sources/sync/typesRaw.ts414 data.content.data.message.content = data.content.data.message.content.map(normalizeContent);CODE
CRITICALpackages/happy-cli/src/agent/acp/runAcp.test.ts255 const envelopeTypes = mocks.mockSession.sendSessionProtocolMessage.mock.calls.map(([envelope]) => envelope.ev.t);CODE
CRITICALpackages/happy-cli/src/agent/acp/runAcp.test.ts494 const metadataHandlers = mocks.mockSession.updateMetadata.mock.calls.map((call) => call[0]);CODE
Fake / Example Data43 hits · 40 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.claude/skills/agent-browser/SKILL.md23agent-browser fill @e1 "user@example.com"CODE
LOW.claude/skills/agent-browser/SKILL.md39agent-browser fill @e1 "user@example.com" && agent-browser fill @e2 "password123" && agent-browser click @e3CODE
LOW.claude/skills/agent-browser/SKILL.md110agent-browser fill @e1 "Jane Doe"CODE
LOW…uperpowers/plans/2026-06-10-codex-image-attachments.md1248 const client = new ApiSessionClient('fake-token', session);CODE
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…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.ts188 new ApiSessionClient('fake-token', session);CODE
LOWpackages/happy-cli/src/api/apiSession.test.ts200 const client = new ApiSessionClient('fake-token', session);CODE
LOWpackages/happy-cli/src/api/apiSession.test.ts216 const client = new ApiSessionClient('fake-token', session);CODE
LOWpackages/happy-cli/src/api/apiSession.test.ts261 const client = new ApiSessionClient('fake-token', session);CODE
LOWpackages/happy-cli/src/api/apiSession.test.ts309 const client = new ApiSessionClient('fake-token', session);CODE
LOWpackages/happy-cli/src/api/apiSession.test.ts335 const client = new ApiSessionClient('fake-token', session);CODE
LOWpackages/happy-cli/src/api/apiSession.test.ts378 const client = new ApiSessionClient('fake-token', session);CODE
LOWpackages/happy-cli/src/api/apiSession.test.ts489 const client = new ApiSessionClient('fake-token', session);CODE
LOWpackages/happy-cli/src/api/apiSession.test.ts546 const client = new ApiSessionClient('fake-token', session);CODE
LOWpackages/happy-cli/src/api/apiSession.test.ts583 const client = new ApiSessionClient('fake-token', session);CODE
LOWpackages/happy-cli/src/api/apiSession.test.ts621 const client = new ApiSessionClient('fake-token', session);CODE
LOWpackages/happy-cli/src/api/apiSession.test.ts662 const client = new ApiSessionClient('fake-token', session);CODE
LOWpackages/happy-cli/src/api/apiSession.test.ts702 const client = new ApiSessionClient('fake-token', session);CODE
LOWpackages/happy-cli/src/api/apiSession.test.ts735 const client = new ApiSessionClient('fake-token', session);CODE
LOWpackages/happy-cli/src/api/apiSession.test.ts779 const client = new ApiSessionClient('fake-token', session);CODE
LOWpackages/happy-cli/src/api/apiSession.test.ts836 const client = new ApiSessionClient('fake-token', session);CODE
LOWpackages/happy-cli/src/api/apiSession.test.ts856 const client = new ApiSessionClient('fake-token', session);CODE
LOWpackages/happy-cli/src/api/apiSession.test.ts907 const client = new ApiSessionClient('fake-token', session);CODE
LOWpackages/happy-cli/src/api/apiSession.test.ts958 const client = new ApiSessionClient('fake-token', session);CODE
LOWpackages/happy-cli/src/api/apiSession.test.ts998 const client = new ApiSessionClient('fake-token', session);CODE
LOWpackages/happy-cli/src/api/apiSession.test.ts1017 const client = new ApiSessionClient('fake-token', session);CODE
LOWpackages/happy-cli/src/api/apiSession.test.ts1039 const client = new ApiSessionClient('fake-token', session);CODE
LOWpackages/happy-cli/src/api/apiSession.test.ts1067 const client = new ApiSessionClient('fake-token', session);CODE
LOWpackages/happy-cli/src/api/apiSession.test.ts1094 const client = new ApiSessionClient('fake-token', session);CODE
LOWpackages/happy-cli/src/api/apiSession.test.ts1123 const client = new ApiSessionClient('fake-token', session);CODE
LOWpackages/happy-cli/src/api/apiSession.test.ts1140 new ApiSessionClient('fake-token', session);CODE
LOWpackages/happy-cli/src/api/apiSession.test.ts1158 const client = new ApiSessionClient('fake-token', session);CODE
LOWpackages/happy-cli/src/api/apiMachine.test.ts131 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/api.test.ts74 token: 'fake-token',CODE
Over-Commented Block37 hits · 36 pts
SeverityFileLineSnippetContext
LOW.agents/skills/sessions/scripts/discover-sessions.sh1#!/usr/bin/env bashCOMMENT
LOWdocs/competition/opencode/trace-opencode.sh1#!/usr/bin/env bashCOMMENT
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
LOW…ages/happy-server/sources/app/api/socket/rpcHandler.ts201 callback?.({ ok: false, error: 'Cannot call RPC on the same socket' });COMMENT
LOWpackages/happy-app/nativewind-env.d.ts1/// <reference types="nativewind/types" />COMMENT
LOW…appy-app/sources/app/(app)/settings/connect/claude.tsx21 // try {COMMENT
LOWpackages/happy-app/sources/components/AgentInput.tsx721 const handleInputStateChange = React.useCallback((newState: TextInputState) => {COMMENT
LOW…/happy-app/sources/components/HorizontalScrollView.tsx1import * as React from 'react';COMMENT
LOWpackages/happy-app/sources/sync/sync.ts1321 seq: number;COMMENT
LOWpackages/happy-app/sources/sync/sync.ts1881 // through loadOlderMessages() when the user scrolls up — andCOMMENT
LOWpackages/happy-app/sources/sync/sync.ts1901 if (isInitialLoad) {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-cli/src/gemini/runGemini.ts601 }COMMENT
LOWpackages/happy-cli/src/claude/runClaude.ts281 session.suppressNextArchiveSignal();COMMENT
LOWpackages/happy-cli/src/claude/runClaude.ts321 }COMMENT
LOWpackages/happy-cli/src/claude/runClaude.ts461COMMENT
LOWpackages/happy-cli/src/claude/runClaude.ts821 //COMMENT
LOWpackages/happy-cli/src/claude/claudeRemoteLauncher.ts101COMMENT
LOWpackages/happy-cli/src/claude/claudeLocal.ts61 // Determine if we have an existing session to resumeCOMMENT
LOW…ages/happy-cli/src/claude/utils/sessionScanner.test.ts261 return;COMMENT
LOW…ages/happy-cli/src/claude/utils/sessionScanner.test.ts281 // expect(collectedMessages[0].type).toBe('user')COMMENT
LOW…ages/happy-cli/src/claude/utils/sessionScanner.test.ts301 COMMENT
LOWpackages/happy-cli/src/agent/transport/index.ts21// Agent-specific handlersCOMMENT
LOWpackages/happy-cli/src/daemon/controlClient.ts201 // field baked into `dist/` at build time via `import packageJson from '../package.json'`.COMMENT
LOW…s/happy-cli/src/commands/connect/authenticateClaude.ts101 });COMMENT
Deep Nesting10 hits · 10 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
AI Slop Vocabulary4 hits · 9 pts
SeverityFileLineSnippetContext
MEDIUMdocs/competition/opencode/trace-opencode.sh3# trace-opencode.sh — reusable harness for tracing OpenCode's protocolCOMMENT
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
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
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