Repository Analysis

screenpipe/screenpipe

YC (S26) | AI that knows what you've seen, said, or heard. Records everything you do, say, hear 24/7, local, private, secure. Connect to OpenClaw, Hermes agent and 100+ apps

5.7 Low AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of screenpipe/screenpipe, a Rust project with 19,825 GitHub stars. SynthScan v2.0 examined 676,846 lines of code across 1968 source files, recording 2458 pattern matches distributed across 20 syntactic categories. The overall adjusted score of 5.7 places this repository in the Low AI signal band.

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

5.7
Adjusted Score
5.7
Raw Score
100%
Time Factor
2026-07-14
Last Push
19.8K
Stars
Rust
Language
676.8K
Lines of Code
2.0K
Files
2.5K
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 0HIGH 6MEDIUM 605LOW 1847

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 2458 distinct pattern matches across 20 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.

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

Decorative Section Separators577 hits · 1755 pts
SeverityFileLineSnippetContext
MEDIUM…s/screenpipe-core/assets/extensions/context-pruning.ts59// ── single-message clamp (issue #3852) ────────────────────────────────COMMENT
MEDIUM…s/screenpipe-core/assets/extensions/context-pruning.ts59// ── single-message clamp (issue #3852) ────────────────────────────────COMMENT
MEDIUM…s/screenpipe-core/assets/extensions/context-pruning.ts165 // ── 1. Feedback on oversized tool results ──────────────────────────COMMENT
MEDIUM…s/screenpipe-core/assets/extensions/context-pruning.ts223 // ── 2 + 3. Prune old tool results AND clamp oversized messages ─────COMMENT
MEDIUMcrates/screenpipe-core/assets/extensions/sub-agent.ts27// ── Constants ────────────────────────────────────────────────────────────────COMMENT
MEDIUMcrates/screenpipe-core/assets/extensions/sub-agent.ts33// ── State ────────────────────────────────────────────────────────────────────COMMENT
MEDIUMcrates/screenpipe-core/assets/extensions/sub-agent.ts39// ── Cleanup ──────────────────────────────────────────────────────────────────COMMENT
MEDIUMcrates/screenpipe-core/assets/extensions/sub-agent.ts52// ── Read pipe permissions for sub-agent inheritance ──────────────────────────COMMENT
MEDIUMcrates/screenpipe-core/assets/extensions/sub-agent.ts66// ── Sub-agent spawner ────────────────────────────────────────────────────────COMMENT
MEDIUMcrates/screenpipe-core/assets/extensions/sub-agent.ts126// ── Extension entry point ────────────────────────────────────────────────────COMMENT
MEDIUMcrates/screenpipe-core/src/sync/mod.rs25//! ┌─────────────┴─────────────┐COMMENT
MEDIUMcrates/screenpipe-engine/src/drm_detector.rs772 // ── pre_capture_drm_check unit tests ──────────────────────────────COMMENT
MEDIUMcrates/screenpipe-engine/src/drm_detector.rs821 // ── live integration tests ──────────────────────────────────────COMMENT
MEDIUMcrates/screenpipe-engine/src/drm_detector.rs979 // ── check_and_update_drm_state tests ─────────────────────────COMMENT
MEDIUMcrates/screenpipe-engine/src/calendar_speaker_id.rs37// ── Pure decision logic ──────────────────────────────────────────────────COMMENT
MEDIUMcrates/screenpipe-engine/src/calendar_speaker_id.rs510// ── Background task ──────────────────────────────────────────────────────COMMENT
MEDIUMcrates/screenpipe-engine/src/calendar_speaker_id.rs737// ── Tests ────────────────────────────────────────────────────────────────COMMENT
MEDIUMcrates/screenpipe-engine/src/calendar_speaker_id.rs760 // ── names_match tests ─────────────────────────────────────────────COMMENT
MEDIUMcrates/screenpipe-engine/src/calendar_speaker_id.rs847 // ── find_other_attendee tests ─────────────────────────────────────COMMENT
MEDIUMcrates/screenpipe-engine/src/calendar_speaker_id.rs914 // ── decide_speaker_names tests ────────────────────────────────────COMMENT
MEDIUMcrates/screenpipe-engine/src/calendar_speaker_id.rs1143 // ── Rule 4: Process-of-elimination tests ──────────────────────────COMMENT
MEDIUMcrates/screenpipe-engine/src/calendar_speaker_id.rs1243 // ── deduplicate_speaker_by_name integration tests ─────────────────────COMMENT
MEDIUMcrates/screenpipe-engine/src/focus_aware_controller.rs14//! ┌────────┐ lost focus ┌──────┐ cold_cutoff ┌──────┐COMMENT
MEDIUMcrates/screenpipe-engine/src/focus_aware_controller.rs15//! │ Active │────────────────►│ Warm │───────────────►│ Cold │COMMENT
MEDIUMcrates/screenpipe-engine/src/focus_aware_controller.rs16//! └────────┘ < warm_cutoff └──────┘ └──────┘COMMENT
MEDIUMcrates/screenpipe-engine/src/focus_aware_controller.rs19//! └──────────────┴───────────────────────────────────┘COMMENT
MEDIUMcrates/screenpipe-engine/src/focus_aware_controller.rs310 // ── Test helpers ──────────────────────────────────────────────────COMMENT
MEDIUMcrates/screenpipe-engine/src/power/profile.rs69 // ── Vision: event-driven capture ────────────────────────────────────COMMENT
MEDIUMcrates/screenpipe-engine/src/power/profile.rs81 // ── Vision: adaptive FPS ─────────────────────────────────────────────COMMENT
MEDIUMcrates/screenpipe-engine/src/power/profile.rs85 // ── Audio ────────────────────────────────────────────────────────────COMMENT
MEDIUMcrates/screenpipe-engine/src/power/profile.rs98 // ── Capture pause ────────────────────────────────────────────────────COMMENT
MEDIUMcrates/screenpipe-engine/src/power/profile.rs104 // ── Video encoding ────────────────────────────────────────────────────COMMENT
MEDIUMcrates/screenpipe-engine/src/power/monitor.rs95// ─── macOS ──────────────────────────────────────────────────────────────────COMMENT
MEDIUMcrates/screenpipe-engine/src/power/monitor.rs203// ─── Windows ────────────────────────────────────────────────────────────────COMMENT
MEDIUMcrates/screenpipe-engine/src/power/monitor.rs238// ─── Linux ──────────────────────────────────────────────────────────────────COMMENT
MEDIUM…creenpipe-engine/src/vision_manager/monitor_watcher.rs24// ── Silent-wedge watchdog (#3939) ───────────────────────────────────────────COMMENT
MEDIUM…creenpipe-engine/src/vision_manager/monitor_watcher.rs24// ── Silent-wedge watchdog (#3939) ───────────────────────────────────────────COMMENT
MEDIUM…creenpipe-engine/src/vision_manager/monitor_watcher.rs59// ── Gone-silent / dead-loop watchdog ────────────────────────────────────────COMMENT
MEDIUM…creenpipe-engine/src/vision_manager/monitor_watcher.rs291 // ── DRM pause handling ──────────────────────────────────────────COMMENT
MEDIUM…creenpipe-engine/src/vision_manager/monitor_watcher.rs347 // ── Schedule pause handling ─────────────────────────────────────COMMENT
MEDIUM…creenpipe-engine/src/vision_manager/monitor_watcher.rs393 // ── Normal monitor polling ──────────────────────────────────────COMMENT
MEDIUM…creenpipe-engine/src/vision_manager/monitor_watcher.rs435 // ── Capture stall watchdog (#3939) ──────────────────────────────COMMENT
MEDIUM…creenpipe-engine/src/vision_manager/monitor_watcher.rs435 // ── Capture stall watchdog (#3939) ──────────────────────────────COMMENT
MEDIUM…creenpipe-engine/src/vision_manager/monitor_watcher.rs774 // ── vision_capture_silent (gone-silent / never-produced) ────────────────COMMENT
MEDIUM…screenpipe-engine/src/meeting_watcher/ui_scan/tests.rs23// ── audio-gated scan cadence tests ─────────────────────────────────COMMENT
MEDIUM…screenpipe-engine/src/meeting_watcher/ui_scan/tests.rs65// ── ignoredMeetingApps filter tests ────────────────────────────────COMMENT
MEDIUM…screenpipe-engine/src/meeting_watcher/ui_scan/tests.rs138// ── Webex messaging-vs-meeting discrimination (#4145/#4337) ──────────COMMENT
MEDIUM…screenpipe-engine/src/meeting_watcher/ui_scan/tests.rs138// ── Webex messaging-vs-meeting discrimination (#4145/#4337) ──────────COMMENT
MEDIUM…screenpipe-engine/src/meeting_watcher/ui_scan/tests.rs310// ── AttrNeeds tests ────────────────────────────────────────────────COMMENT
MEDIUM…screenpipe-engine/src/meeting_watcher/ui_scan/tests.rs435// ── Profile tests ──────────────────────────────────────────────────COMMENT
MEDIUM…screenpipe-engine/src/meeting_watcher/ui_scan/tests.rs568// ── Signal matching tests ──────────────────────────────────────────COMMENT
MEDIUM…screenpipe-engine/src/meeting_watcher/ui_scan/tests.rs1068// ── State machine tests ────────────────────────────────────────────COMMENT
MEDIUM…screenpipe-engine/src/meeting_watcher/ui_scan/tests.rs1467// ── Edge case tests ────────────────────────────────────────────────COMMENT
MEDIUM…screenpipe-engine/src/meeting_watcher/ui_scan/tests.rs1943// ── Multiple results tests ─────────────────────────────────────────COMMENT
MEDIUM…screenpipe-engine/src/meeting_watcher/ui_scan/tests.rs1961// ── Zoom menu bar signal tests ────────────────────────────────────COMMENT
MEDIUM…screenpipe-engine/src/meeting_watcher/ui_scan/tests.rs2063// ── WindowTitle signal tests ──────────────────────────────────────COMMENT
MEDIUM…screenpipe-engine/src/meeting_watcher/ui_scan/tests.rs2193// ── Zoom false positive prevention tests ────────────────────────COMMENT
MEDIUM…screenpipe-engine/src/meeting_watcher/ui_scan/tests.rs2311// ── Google Meet false positive prevention tests ─────────────────COMMENT
MEDIUM…screenpipe-engine/src/meeting_watcher/ui_scan/tests.rs2592// ── browser_title_matches_pattern + Google Meet on Windows ─────────────────COMMENT
MEDIUM…screenpipe-engine/src/meeting_watcher/ui_scan/tests.rs2952// ── role_matches cross-platform tolerance ──────────────────────────────────COMMENT
517 more matches not shown…
Over-Commented Block1306 hits · 1283 pts
SeverityFileLineSnippetContext
LOWlefthook.yml1# screenpipe — AI that knows everything you've seen, said, or heardCOMMENT
LOWcrates/screenpipe-core/assets/extensions/mcp-bridge.ts1// screenpipe — AI that knows everything you've seen, said, or heardCOMMENT
LOW…s/screenpipe-core/assets/extensions/context-pruning.ts41// to retry with narrower filters (smaller limit, shorter time range,COMMENT
LOW…ates/screenpipe-core/assets/extensions/orphan-guard.ts1// screenpipe — AI that knows everything you've seen, said, or heardCOMMENT
LOWcrates/screenpipe-core/assets/extensions/sub-agent.ts1// screenpipe — AI that knows everything you've seen, said, or heardCOMMENT
LOWcrates/screenpipe-core/src/strings.rs1// screenpipe — AI that knows everything you've seen, said, or heardCOMMENT
LOWcrates/screenpipe-core/src/video.rs21}COMMENT
LOWcrates/screenpipe-core/src/permissions.rs1// screenpipe — AI that knows everything you've seen, said, or heardCOMMENT
LOWcrates/screenpipe-core/src/permissions.rs121 ))COMMENT
LOWcrates/screenpipe-core/src/window_pattern.rs1// screenpipe — AI that knows everything you've seen, said, or heardCOMMENT
LOWcrates/screenpipe-core/src/window_pattern.rs21//! ```COMMENT
LOWcrates/screenpipe-core/src/window_pattern.rs101COMMENT
LOWcrates/screenpipe-core/src/thread_priority.rs1// screenpipe — AI that knows everything you've seen, said, or heardCOMMENT
LOWcrates/screenpipe-core/src/thread_priority.rs21//! - Never wrap sections that hold locks other Normal-priority threads blockCOMMENT
LOWcrates/screenpipe-core/src/agents/pi.rs21const PI_NAMESPACE_DIR: &str = "@earendil-works";COMMENT
LOWcrates/screenpipe-core/src/agents/pi.rs241/// Only auto — if the gateway is down, nothing works anyway.COMMENT
LOWcrates/screenpipe-core/src/agents/pi.rs361 /// Install or wipe the `screenpipe-team` enterprise-admin skill inCOMMENT
LOWcrates/screenpipe-core/src/agents/pi.rs401 Ok(())COMMENT
LOWcrates/screenpipe-core/src/agents/pi.rs521 Ok(())COMMENT
LOWcrates/screenpipe-core/src/agents/pi.rs541 "render-html-report",COMMENT
LOWcrates/screenpipe-core/src/agents/pi.rs821 providerCOMMENT
LOWcrates/screenpipe-core/src/agents/pi.rs1121 /// requested model straight through to pi, which then sent it to theCOMMENT
LOWcrates/screenpipe-core/src/agents/pi.rs1241 /// (`["auto"]`) produced by [`fallback_cloud_models`] when the gateway'sCOMMENT
LOWcrates/screenpipe-core/src/agents/pi.rs2001 }COMMENT
LOWcrates/screenpipe-core/src/agents/pi.rs2061COMMENT
LOWcrates/screenpipe-core/src/agents/pi.rs2681/// (not node). On both platforms we resolve the actual JS entry point andCOMMENT
LOWcrates/screenpipe-core/src/agents/pi.rs2821/// After the agent process has exited and been reaped, kill any lingeringCOMMENT
LOWcrates/screenpipe-core/src/agents/bash_env.rs1// screenpipe — AI that knows everything you've seen, said, or heardCOMMENT
LOWcrates/screenpipe-core/src/agents/bash_env.rs21//! model effort, no prompt changes, no new system-prompt lines.COMMENT
LOWcrates/screenpipe-core/src/agents/bash_env.rs41/// substrings in command arguments. If none match, `curl` runs unchanged.COMMENT
LOWcrates/screenpipe-core/src/agents/bash_env.rs121COMMENT
LOWcrates/screenpipe-core/src/agents/bash_env.rs201 #[test]COMMENT
LOWcrates/screenpipe-core/src/agents/mod.rs121 _ => return false,COMMENT
LOWcrates/screenpipe-core/src/agents/mod.rs201 /// Returns `true` when the agent binary is installed and ready.COMMENT
LOWcrates/screenpipe-core/src/pipes/trajectory.rs1// screenpipe — AI that knows everything you've seen, said, or heardCOMMENT
LOWcrates/screenpipe-core/src/pipes/preset_fallback.rs1// screenpipe — AI that knows everything you've seen, said, or heardCOMMENT
LOWcrates/screenpipe-core/src/pipes/mod.rs41COMMENT
LOWcrates/screenpipe-core/src/pipes/mod.rs61/// Event trigger configuration for a pipe.COMMENT
LOWcrates/screenpipe-core/src/pipes/mod.rs81 /// Plain-language custom triggers (future: matched via embedding similarity).COMMENT
LOWcrates/screenpipe-core/src/pipes/mod.rs101///COMMENT
LOWcrates/screenpipe-core/src/pipes/mod.rs121 pub kind: String,COMMENT
LOWcrates/screenpipe-core/src/pipes/mod.rs141/// title: "Digital Clone Profile"COMMENT
LOWcrates/screenpipe-core/src/pipes/mod.rs161#[derive(Debug, Clone, Serialize, Deserialize)]COMMENT
LOWcrates/screenpipe-core/src/pipes/mod.rs181 /// When set, overrides `model` and `provider` at runtime.COMMENT
LOWcrates/screenpipe-core/src/pipes/mod.rs201 /// ```yamlCOMMENT
LOWcrates/screenpipe-core/src/pipes/mod.rs221COMMENT
LOWcrates/screenpipe-core/src/pipes/mod.rs241 pub source_hash: Option<String>,COMMENT
LOWcrates/screenpipe-core/src/pipes/mod.rs261COMMENT
LOWcrates/screenpipe-core/src/pipes/mod.rs301/// monthly recurrences that cron can't. See `next_fire`/`should_run_config`.COMMENT
LOWcrates/screenpipe-core/src/pipes/mod.rs381 }COMMENT
LOWcrates/screenpipe-core/src/pipes/mod.rs401/// days: "Mon-Fri"COMMENT
LOWcrates/screenpipe-core/src/pipes/mod.rs561// ---------------------------------------------------------------------------COMMENT
LOWcrates/screenpipe-core/src/pipes/mod.rs1881/// Args: (pipe_name, execution_id, success, duration_secs, error_type)COMMENT
LOWcrates/screenpipe-core/src/pipes/mod.rs2001 /// Currently running pipe PIDs.COMMENT
LOWcrates/screenpipe-core/src/pipes/mod.rs2021 /// Optional persistence store (None in CLI mode).COMMENT
LOWcrates/screenpipe-core/src/pipes/mod.rs2441 result.push(status);COMMENT
LOWcrates/screenpipe-core/src/pipes/mod.rs5521/// `pipe.md` without clobbering the user's other edits. `install_builtin_pipes`COMMENT
LOWcrates/screenpipe-core/src/pipes/mod.rs5601COMMENT
LOWcrates/screenpipe-core/src/pipes/mod.rs5721// ---------------------------------------------------------------------------COMMENT
LOWcrates/screenpipe-core/src/pipes/mod.rs6021 Some(ParsedSchedule::Once(run_at)) => {COMMENT
1246 more matches not shown…
Hyper-Verbose Identifiers305 hits · 314 pts
SeverityFileLineSnippetContext
LOW…npipe-core/assets/extensions/screenpipe-permissions.ts150function hasContentTypeRestrictions(): boolean {CODE
LOW…s/screenpipe-core/assets/extensions/context-pruning.ts75export function resolveContextWindowTokens(ctx: any): number {CODE
LOWee/desktop/lib/app-update-policy.ts42export function normalizeEnterpriseAppUpdatePolicy(value: unknown): EnterpriseAppUpdatePolicy {CODE
LOWee/desktop/lib/app-update-policy.ts64export function describeEnterpriseUpdateMode(policy: EnterpriseAppUpdatePolicy): string {CODE
LOWee/sdk/tauri/index.js59function createScreenpipeTauriClient(options = {}) {CODE
LOWee/sdk/tauri/index.d.ts112export function createScreenpipeTauriClient(CODE
LOWee/sdk/electron/preload.js21function createScreenpipeRendererApi(ipcRenderer, channels) {CODE
LOWee/sdk/electron/preload.d.ts44export function createScreenpipeRendererApi(CODE
LOWscripts/memory-leak/test_leak_hunt.py18 def test_default_search_pressure_never_includes_frames(self) -> None:CODE
LOWscripts/memory-leak/test_leak_hunt.py23 def test_opt_in_frame_pressure_uses_small_limits(self) -> None:CODE
LOWscripts/memory-leak/test_leak_hunt.py49 def test_recursive_descendants_are_included(self) -> None:CODE
LOWscripts/memory-leak/test_leak_hunt.py65 def test_root_selection_uses_whole_tree_memory(self) -> None:CODE
LOWscripts/memory-leak/test_leak_hunt.py81 def test_explicit_pid_selects_requested_tree(self) -> None:CODE
LOWscripts/memory-leak/leak_probe.py422 def phase_search_all_q_no_frames(self, deadline: float) -> tuple[int, int, int]:CODE
LOWscripts/memory-leak/leak_probe.py432 def phase_search_ocr_no_frames(self, deadline: float) -> tuple[int, int, int]:CODE
LOWscripts/memory-leak/leak_probe.py441 def phase_search_audio_no_frames(self, deadline: float) -> tuple[int, int, int]:CODE
LOWscripts/memory-leak/leak_probe.py450 def phase_search_recent_no_frames(self, deadline: float) -> tuple[int, int, int]:CODE
LOWscripts/memory-leak/leak_probe.py499 def phase_timeline_live_today(self, deadline: float) -> tuple[int, int, int]:CODE
LOWscripts/memory-leak/leak_hunt.py613def build_search_fanout_params(include_frame_images: bool) -> dict[str, Any]:CODE
LOWscripts/memory-leak/leak_hunt.py782def scenario_memory_artifact_lists(client: ApiClient, state: SharedState, duration_sec: float, concurrency: int) -> NoneCODE
LOW…i-gateway/src/test/maas-nameless-toolcall.unit.test.ts16function noNamelessAssistantToolCalls(formatted: any[]) {CODE
LOW…es/ai-gateway/src/test/transcription-cost.unit.test.ts21function estimateTranscriptionCost(contentLength: number): {CODE
LOWpackages/ai-gateway/src/providers/vertex-maas.ts65export async function parseVertexMaasJsonResponse(response: Response, model: string): Promise<any> {CODE
LOWpackages/ai-gateway/src/providers/vertex-maas.ts124export function promoteReasoningToContent(result: any): void {CODE
LOWpackages/ai-gateway/src/providers/anthropic.ts42function anthropicStopReasonToOpenAI(reason: unknown): string {CODE
LOWpackages/ai-gateway/src/utils/model-policy.ts8export function isGooglePolicyBlockedModel(model: string | null | undefined): boolean {CODE
LOWpackages/ai-gateway/src/utils/auth.ts143async function validateSubscriptionWithId(env: Env, token: string): Promise<{ isValid: boolean; userId?: string }> {CODE
LOW…ages/ai-gateway/src/handlers/realtime-transcription.ts39export async function handleRealtimeTranscriptionUpgrade(CODE
LOW…ages/ai-gateway/src/handlers/realtime-transcription.ts144async function connectDeepgramLiveWithRetry(CODE
LOW…ages/ai-gateway/src/handlers/realtime-transcription.ts181function isRetryableDeepgramLiveUpgradeStatus(status: number): boolean {CODE
LOW…ages/ai-gateway/src/handlers/realtime-transcription.ts236function translateLegacyClientMessage(data: string | ArrayBuffer | Blob): string | ArrayBuffer | null {CODE
LOW…ages/ai-gateway/src/handlers/realtime-transcription.ts258function translateLegacyDeepgramMessage(CODE
LOWpackages/ai-gateway/src/handlers/transcription.ts72export function getTranscriptionLanguages(request: Request, fallback: string[] = []): string[] {CODE
LOWpackages/ai-gateway/src/handlers/transcription.ts100async function handleDeepgramTranscription(CODE
LOWpackages/ai-gateway/src/handlers/transcription.ts134async function handleGoogleTranscription(request: Request, env: Env): Promise<Response> {CODE
LOWpackages/ai-gateway/src/services/transcription-ab.ts278function availableFallbackProviders(primary: TranscriptionProvider, env: Env): TranscriptionProvider[] {CODE
LOWpackages/browser-extension/src/options.ts104async function openScreenpipeForApproval(): Promise<boolean> {CODE
LOWapps/screenpipe-app-tauri/app/layout.tsx36function isChatFocusedRecentSwitcherRoute(CODE
LOW…s/screenpipe-app-tauri/app/notification-panel/page.tsx71function notificationClipboardText(payload: NotificationPayload): string {CODE
LOWapps/screenpipe-app-tauri/components/pipe-store.tsx183function getPipeInstallDescription(pipe: { permissions?: PipePermissions; author_verified?: boolean | null }): string {CODE
LOWapps/screenpipe-app-tauri/components/pipe-store.tsx257function buildForkPipeDisplayLabel(pipeTitle: string): string {CODE
LOWapps/screenpipe-app-tauri/components/pipe-store.tsx262function buildPublishPipeDisplayLabel(pipeName: string): string {CODE
LOW…/screenpipe-app-tauri/components/notification-bell.tsx134function notificationClipboardText(entry: NotificationEntry): string {CODE
LOW…/screenpipe-app-tauri/components/notification-bell.tsx138function buildNotificationDisplayLabel(title: string): string {CODE
LOWapps/screenpipe-app-tauri/components/markdown.tsx12export function createScreenpipeUrlTransform(allowedHosts: readonly string[]) {CODE
LOWapps/screenpipe-app-tauri/components/markdown.tsx33export function screenpipeViewerPathFromHref(href: string): string | null {CODE
LOWapps/screenpipe-app-tauri/components/markdown.tsx64export function resolveLocalPathFromMarkdownUrl(url: string): string | null {CODE
LOWapps/screenpipe-app-tauri/components/markdown.tsx123function rewriteLocalMediaLinksForChat(text: string): string {CODE
LOWapps/screenpipe-app-tauri/components/markdown.tsx135export function rewriteLocalMarkdownLinksForChat(text: string): string {CODE
LOWapps/screenpipe-app-tauri/components/markdown.tsx160function normalizeMarkdownChildren(children: Options["children"]): Options["children"] {CODE
LOWapps/screenpipe-app-tauri/components/markdown.tsx167export function createMediaAwareMarkdownComponents(CODE
LOW…pp-tauri/components/post-install-connections-modal.tsx59export function PostInstallConnectionsModal({CODE
LOW…eenpipe-app-tauri/components/selectable-text-layer.tsx48export function clearSelectableLayerSelection(): void {CODE
LOWapps/screenpipe-app-tauri/components/chat-sidebar.tsx1115export function CollapsedChatSidebarButton({CODE
LOW…pipe-app-tauri/components/settings/account-section.tsx59function hasExistingStripeSubscriptionPlan(plan: string | null | undefined): boolean {CODE
LOW…pipe-app-tauri/components/settings/settings-search.tsx343export function useSettingsIndexDriftCheck(CODE
LOW…-app-tauri/components/settings/connections-section.tsx194async function detectInstalledConnectionIds(): Promise<Set<string>> {CODE
LOW…-app-tauri/components/settings/connections-section.tsx1783function ObsidianMemorySyncSubsection() {CODE
LOW…-app-tauri/components/settings/connections-section.tsx3464export function isMcpOAuthProviderTileConnected(CODE
LOW…ipe-app-tauri/components/settings/setting-previews.tsx263export function CloudMediaAnalysisPreview() {CODE
245 more matches not shown…
Structural Annotation Overuse82 hits · 154 pts
SeverityFileLineSnippetContext
LOW…/screenpipe-core/assets/pipes/automate-my-work/pipe.md28## Step 1: Inventory existing coverage (one read-only API call)COMMENT
LOW…/screenpipe-core/assets/pipes/automate-my-work/pipe.md32## Step 2: Understand the user's work (at most 6 API calls total, last 24h)COMMENT
LOW…/screenpipe-core/assets/pipes/automate-my-work/pipe.md43## Step 3: Creation gate — complete before writing any pipeCOMMENT
LOW…/screenpipe-core/assets/pipes/automate-my-work/pipe.md53## Step 4: Decide whether to create 0–3 pipesCOMMENT
LOW…/screenpipe-core/assets/pipes/automate-my-work/pipe.md64## Step 5: Create only candidates marked CREATECOMMENT
LOW…screenpipe-core/assets/pipes/ai-prompt-journal/pipe.md28## Step 1: Find AI tool framesCOMMENT
LOW…screenpipe-core/assets/pipes/ai-prompt-journal/pipe.md71## Step 2: Extract conversation textCOMMENT
LOW…screenpipe-core/assets/pipes/ai-prompt-journal/pipe.md112## Step 3: Identify user prompts vs AI responsesCOMMENT
LOW…screenpipe-core/assets/pipes/ai-prompt-journal/pipe.md139## Step 4: Classify each promptCOMMENT
LOW…screenpipe-core/assets/pipes/ai-prompt-journal/pipe.md147## Step 5: Save to journalCOMMENT
LOW…screenpipe-core/assets/pipes/ai-prompt-journal/pipe.md188## Step 6: NotificationCOMMENT
LOWcrates/screenpipe-engine/src/snapshot_compaction.rs218 // Step 1: Probe first valid JPEG to get dimensions for rawvideo inputCOMMENT
LOWcrates/screenpipe-engine/src/snapshot_compaction.rs319 // Step 2: Create video_chunk and update frame pointers in one transactionCOMMENT
LOWcrates/screenpipe-engine/src/snapshot_compaction.rs338 // Step 3: Delete source JPEGs (safe — DB already points to MP4)COMMENT
LOWcrates/screenpipe-engine/src/archive.rs872 // Step 1: Upload media files (MP4s + snapshots) before metadataCOMMENT
LOWcrates/screenpipe-engine/src/archive.rs902 // Step 2: Upload metadata in chunks: [watermark, cutoff]COMMENT
LOWcrates/screenpipe-engine/src/bin/screenpipe-engine.rs1152 // Step 1: prewarm-pending upgrade is universal.COMMENT
LOWcrates/screenpipe-engine/src/bin/screenpipe-engine.rs1155 // Step 2: auto-start only for Always mode AND only if theCOMMENT
LOW…screenpipe-engine/src/meeting_watcher/ui_scan/macos.rs593 // Step 1: find running meeting appsCOMMENT
LOW…screenpipe-engine/src/meeting_watcher/ui_scan/macos.rs658 // Step 2: scan for call controlsCOMMENT
LOW…reenpipe-engine/src/meeting_watcher/ui_scan/windows.rs724 // Step 1: find running meeting apps (includes Zoom)COMMENT
LOW…reenpipe-engine/src/meeting_watcher/ui_scan/windows.rs735 // Step 2: scan each found app for call controlsCOMMENT
LOW…reenpipe-engine/src/meeting_watcher/ui_scan/windows.rs754 // Step 3: check specifically for Zoom processesCOMMENT
LOWcrates/screenpipe-db/tests/ui_events_batch_test.rs139 // Step 1: row starts with frame_id = NULL.COMMENT
LOWcrates/screenpipe-db/tests/ui_events_batch_test.rs148 // Step 2: linker UPDATE populates it.COMMENT
LOWcrates/screenpipe-db/tests/ui_events_batch_test.rs160 // Step 3: a spurious duplicate UPDATE with a DIFFERENT frame_idCOMMENT
LOWcrates/screenpipe-audio/tests/onnx_model_test.rs159 // Step 1: Initialize SileroVad (first ONNX model loaded)COMMENT
LOWcrates/screenpipe-audio/tests/onnx_model_test.rs165 // Step 2: Download/load embedding modelCOMMENT
LOWcrates/screenpipe-audio/tests/onnx_model_test.rs172 // Step 3: Download/load segmentation modelCOMMENT
LOWcrates/screenpipe-screen/tests/url_timing_test.rs173 // Step 1: SCK screenshot (instant)COMMENT
LOWcrates/screenpipe-screen/tests/url_timing_test.rs176 // Step 2: AppleScript round-trip (simulated ~107ms)COMMENT
LOWdocs/EVENT_DRIVEN_CAPTURE_SPEC.md226### Step 1: DB migration + snapshot write pathCOMMENT
LOWdocs/EVENT_DRIVEN_CAPTURE_SPEC.md232### Step 2: Paired capture functionCOMMENT
LOWdocs/EVENT_DRIVEN_CAPTURE_SPEC.md237### Step 3: Event trigger systemCOMMENT
LOWdocs/EVENT_DRIVEN_CAPTURE_SPEC.md243### Step 4: New capture loopCOMMENT
LOWdocs/EVENT_DRIVEN_CAPTURE_SPEC.md249### Step 5: Search + timeline integrationCOMMENT
LOWdocs/EVENT_DRIVEN_CAPTURE_SPEC.md254### Step 6: CleanupCOMMENT
LOWscripts/update-openapi.sh35# Step 1: Fix oasgen quirk — path params need `required: true` per OpenAPI 3.0COMMENT
LOWscripts/update-openapi.sh52# Step 2: Fix empty title/versionCOMMENT
LOWscripts/update-openapi.sh66# Step 3: Enrich with tags, summaries, descriptions (requires PyYAML)COMMENT
LOWpackages/browser-extension/src/options.ts149 // Step 1: liveness.COMMENT
LOWpackages/browser-extension/src/options.ts162 // Step 2: auth probe.COMMENT
LOW…enpipe-app-tauri/components/settings/usage-section.tsx151 // Step 1: Load cache instantlyCOMMENT
LOW…enpipe-app-tauri/components/settings/usage-section.tsx164 // Step 2: Incremental updateCOMMENT
LOW…creenpipe-app-tauri/components/settings/ai-presets.tsx724 // Step 2: Auth checkCOMMENT
LOW…creenpipe-app-tauri/components/settings/ai-presets.tsx751 // Step 3: Parse models (skip for openai-chatgpt when /v1/models returned 403)COMMENT
LOW…creenpipe-app-tauri/components/settings/ai-presets.tsx791 // Step 4: Test chat completion (or Codex Responses API for ChatGPT OAuth)COMMENT
LOW…onents/settings/hooks/use-transcription-diagnostics.ts77 // Step 1: Endpoint connectivity — try root URL or /v1/modelsCOMMENT
LOW…onents/settings/hooks/use-transcription-diagnostics.ts160 // Step 4: Test transcription with a short silent WAVCOMMENT
LOW…/screenpipe-app-tauri/src-tauri/src/enterprise_sync.rs326 // Step 1: ask /search for the most recent OCR frames. We request aCOMMENT
LOW…/screenpipe-app-tauri/src-tauri/src/enterprise_sync.rs367 // Step 2: fetch the frame's image bytes. A non-success status isCOMMENT
LOW…/screenpipe-app-tauri/src-tauri/src/enterprise_sync.rs387 // Step 3: decode → resize 320×180 → JPEG @ Q60 → base64.COMMENT
LOWapps/screenpipe-app-tauri/lib/summary-templates.ts70## Step 1: Inventory existing coverage (one read-only API call)COMMENT
LOWapps/screenpipe-app-tauri/lib/summary-templates.ts74## Step 2: Understand the user's work (at most 6 API calls total, last 24h)COMMENT
LOWapps/screenpipe-app-tauri/lib/summary-templates.ts85## Step 3: Creation gate — complete before writing any pipeCOMMENT
LOWapps/screenpipe-app-tauri/lib/summary-templates.ts95## Step 4: Decide whether to create 0–3 pipesCOMMENT
LOWapps/screenpipe-app-tauri/lib/summary-templates.ts106## Step 5: Create only candidates marked CREATECOMMENT
LOW…/screenpipe-app-tauri/lib/utils/notification-toggle.ts115 // Step 1: Remove the deny rule lineCOMMENT
LOW…/screenpipe-app-tauri/lib/utils/notification-toggle.ts118 // Step 2: Remove empty "deny:" blocksCOMMENT
LOW…/screenpipe-app-tauri/lib/utils/notification-toggle.ts121 // Step 3: Remove empty "permissions:" blocksCOMMENT
22 more matches not shown…
Verbosity Indicators65 hits · 124 pts
SeverityFileLineSnippetContext
LOWcrates/screenpipe-engine/src/snapshot_compaction.rs218 // Step 1: Probe first valid JPEG to get dimensions for rawvideo inputCOMMENT
LOWcrates/screenpipe-engine/src/snapshot_compaction.rs319 // Step 2: Create video_chunk and update frame pointers in one transactionCOMMENT
LOWcrates/screenpipe-engine/src/snapshot_compaction.rs338 // Step 3: Delete source JPEGs (safe — DB already points to MP4)COMMENT
LOWcrates/screenpipe-engine/src/archive.rs872 // Step 1: Upload media files (MP4s + snapshots) before metadataCOMMENT
LOWcrates/screenpipe-engine/src/archive.rs902 // Step 2: Upload metadata in chunks: [watermark, cutoff]COMMENT
LOWcrates/screenpipe-engine/src/bin/screenpipe-engine.rs1152 // Step 1: prewarm-pending upgrade is universal.COMMENT
LOWcrates/screenpipe-engine/src/bin/screenpipe-engine.rs1155 // Step 2: auto-start only for Always mode AND only if theCOMMENT
LOW…screenpipe-engine/src/meeting_watcher/ui_scan/macos.rs593 // Step 1: find running meeting appsCOMMENT
LOW…screenpipe-engine/src/meeting_watcher/ui_scan/macos.rs658 // Step 2: scan for call controlsCOMMENT
LOW…reenpipe-engine/src/meeting_watcher/ui_scan/windows.rs724 // Step 1: find running meeting apps (includes Zoom)COMMENT
LOW…reenpipe-engine/src/meeting_watcher/ui_scan/windows.rs735 // Step 2: scan each found app for call controlsCOMMENT
LOW…reenpipe-engine/src/meeting_watcher/ui_scan/windows.rs754 // Step 3: check specifically for Zoom processesCOMMENT
LOWcrates/screenpipe-db/tests/ui_events_batch_test.rs139 // Step 1: row starts with frame_id = NULL.COMMENT
LOWcrates/screenpipe-db/tests/ui_events_batch_test.rs148 // Step 2: linker UPDATE populates it.COMMENT
LOWcrates/screenpipe-db/tests/ui_events_batch_test.rs160 // Step 3: a spurious duplicate UPDATE with a DIFFERENT frame_idCOMMENT
LOWcrates/screenpipe-audio/tests/onnx_model_test.rs159 // Step 1: Initialize SileroVad (first ONNX model loaded)COMMENT
LOWcrates/screenpipe-audio/tests/onnx_model_test.rs165 // Step 2: Download/load embedding modelCOMMENT
LOWcrates/screenpipe-audio/tests/onnx_model_test.rs172 // Step 3: Download/load segmentation modelCOMMENT
LOWcrates/screenpipe-screen/tests/url_timing_test.rs173 // Step 1: SCK screenshot (instant)COMMENT
LOWcrates/screenpipe-screen/tests/url_timing_test.rs176 // Step 2: AppleScript round-trip (simulated ~107ms)COMMENT
LOWscripts/update-openapi.sh35# Step 1: Fix oasgen quirk — path params need `required: true` per OpenAPI 3.0COMMENT
LOWscripts/update-openapi.sh52# Step 2: Fix empty title/versionCOMMENT
LOWscripts/update-openapi.sh66# Step 3: Enrich with tags, summaries, descriptions (requires PyYAML)COMMENT
LOWpackages/browser-extension/src/options.ts149 // Step 1: liveness.COMMENT
LOWpackages/browser-extension/src/options.ts162 // Step 2: auth probe.COMMENT
LOW…enpipe-app-tauri/components/settings/usage-section.tsx151 // Step 1: Load cache instantlyCOMMENT
LOW…enpipe-app-tauri/components/settings/usage-section.tsx164 // Step 2: Incremental updateCOMMENT
LOW…creenpipe-app-tauri/components/settings/ai-presets.tsx724 // Step 2: Auth checkCOMMENT
LOW…creenpipe-app-tauri/components/settings/ai-presets.tsx751 // Step 3: Parse models (skip for openai-chatgpt when /v1/models returned 403)COMMENT
LOW…creenpipe-app-tauri/components/settings/ai-presets.tsx791 // Step 4: Test chat completion (or Codex Responses API for ChatGPT OAuth)COMMENT
LOW…onents/settings/hooks/use-transcription-diagnostics.ts77 // Step 1: Endpoint connectivity — try root URL or /v1/modelsCOMMENT
LOW…onents/settings/hooks/use-transcription-diagnostics.ts160 // Step 4: Test transcription with a short silent WAVCOMMENT
LOW…/screenpipe-app-tauri/src-tauri/src/enterprise_sync.rs326 // Step 1: ask /search for the most recent OCR frames. We request aCOMMENT
LOW…/screenpipe-app-tauri/src-tauri/src/enterprise_sync.rs367 // Step 2: fetch the frame's image bytes. A non-success status isCOMMENT
LOW…/screenpipe-app-tauri/src-tauri/src/enterprise_sync.rs387 // Step 3: decode → resize 320×180 → JPEG @ Q60 → base64.COMMENT
LOWapps/screenpipe-app-tauri/lib/summary-templates.ts70## Step 1: Inventory existing coverage (one read-only API call)COMMENT
LOWapps/screenpipe-app-tauri/lib/summary-templates.ts74## Step 2: Understand the user's work (at most 6 API calls total, last 24h)COMMENT
LOWapps/screenpipe-app-tauri/lib/summary-templates.ts85## Step 3: Creation gate — complete before writing any pipeCOMMENT
LOWapps/screenpipe-app-tauri/lib/summary-templates.ts95## Step 4: Decide whether to create 0–3 pipesCOMMENT
LOWapps/screenpipe-app-tauri/lib/summary-templates.ts106## Step 5: Create only candidates marked CREATECOMMENT
LOW…/screenpipe-app-tauri/lib/utils/notification-toggle.ts115 // Step 1: Remove the deny rule lineCOMMENT
LOW…/screenpipe-app-tauri/lib/utils/notification-toggle.ts118 // Step 2: Remove empty "deny:" blocksCOMMENT
LOW…/screenpipe-app-tauri/lib/utils/notification-toggle.ts121 // Step 3: Remove empty "permissions:" blocksCOMMENT
LOW…/screenpipe-app-tauri/lib/utils/chat-test-body.test.ts136 // Step 1: send with max_tokensCOMMENT
LOW…/screenpipe-app-tauri/lib/utils/chat-test-body.test.ts140 // Step 2: endpoint rejectsCOMMENT
LOW…/screenpipe-app-tauri/lib/utils/chat-test-body.test.ts144 // Step 3: retry with max_completion_tokensCOMMENT
LOW…pipe-app-tauri/lib/__tests__/team-api-contract.test.ts189 // Step 1: admin creates team and keyCOMMENT
LOW…pipe-app-tauri/lib/__tests__/team-api-contract.test.ts192 // Step 2: admin pushes config (encrypted)COMMENT
LOW…pipe-app-tauri/lib/__tests__/team-api-contract.test.ts200 // Step 3: admin wraps key with passphraseCOMMENT
LOW…pipe-app-tauri/lib/__tests__/team-api-contract.test.ts204 // Step 4: admin uploads wrapped blob to server (POST /api/team/key-claim)COMMENT
LOW…pipe-app-tauri/lib/__tests__/team-api-contract.test.ts208 // Step 5: invite link contains NO key materialCOMMENT
LOW…pipe-app-tauri/lib/__tests__/team-api-contract.test.ts216 // Step 6: member fetches wrapped blob from server (GET /api/team/key-claim/:token)COMMENT
LOW…pipe-app-tauri/lib/__tests__/team-api-contract.test.ts219 // Step 7: member unwraps with passphrase (shared out-of-band)COMMENT
LOW…pipe-app-tauri/lib/__tests__/team-api-contract.test.ts227 // Step 8: member decrypts configsCOMMENT
LOW…/screenpipe-app-tauri/lib/hooks/use-frame-text-data.ts150 // Step 1: GET — check if text position data already exists in DBCOMMENT
LOW…/screenpipe-app-tauri/lib/hooks/use-frame-text-data.ts176 // Step 2: No bounding boxes — schedule on-demand OCR after dwell delay.COMMENT
LOW…auri/lib/hooks/__tests__/timeline-reconnection.test.ts330 // Step 1: WebSocket disconnectsCOMMENT
LOW…auri/lib/hooks/__tests__/timeline-reconnection.test.ts335 // Step 2: Reconnection initiated - should reset stateCOMMENT
LOW…auri/lib/hooks/__tests__/timeline-reconnection.test.ts345 // Step 3: WebSocket connectsCOMMENT
LOW…auri/lib/hooks/__tests__/timeline-reconnection.test.ts350 // Step 4: Request sent (should work because sentRequests is empty)COMMENT
5 more matches not shown…
Fake / Example Data43 hits · 46 pts
SeverityFileLineSnippetContext
LOWcrates/screenpipe-engine/src/connections_api.rs3798 creds.insert("email".into(), json!("user@example.com"));CODE
LOWcrates/screenpipe-engine/src/connections_api.rs3802 assert_eq!(user, "user@example.com");CODE
LOWcrates/screenpipe-engine/src/connections_api.rs3832 creds.insert("email".into(), json!("user@example.com"));CODE
LOW…ates/screenpipe-engine/src/browser_scripts/snapshot.js119 return el.getAttribute('placeholder') || labelText(el) || el.getAttribute('name') || ty || 'input';CODE
LOW…ates/screenpipe-engine/src/browser_scripts/snapshot.js121 if (formTags.has(tag)) return el.getAttribute('placeholder') || labelText(el) || el.getAttribute('name') || tag;CODE
LOWcrates/screenpipe-engine/src/routes/frames.rs560 "placeholder",CODE
LOWcrates/screenpipe-db/benches/new_db_benchmark.rs26 ("Long", "This is a long piece of text that simulates a more realistic OCR result. It contains multiple paragrapCODE
LOWcrates/screenpipe-db/benches/new_db_benchmark.rs26 ("Long", "This is a long piece of text that simulates a more realistic OCR result. It contains multiple paragrapCODE
LOWcrates/screenpipe-db/src/db/frames.rs540 props.insert("placeholder".into(), serde_json::Value::String(v.clone()));CODE
LOWcrates/screenpipe-connect/src/oauth.rs1471 let got = load_oauth_json(Some(&store), id, Some("user@example.com")).await;CODE
LOWcrates/screenpipe-redact/src/tree_json.rs71 "placeholder",CODE
LOWcrates/screenpipe-redact/src/tree_json.rs402 "placeholder":"{s}",CODE
LOWcrates/screenpipe-redact/src/adapters/regex.rs2261 &"lorem ipsum dolor sit amet ".repeat(40),CODE
LOWcrates/screenpipe-redact/src/adapters/regex.rs2261 &"lorem ipsum dolor sit amet ".repeat(40),CODE
LOWcrates/screenpipe-redact/src/worker/columns.rs235 "placeholder",CODE
LOWcrates/screenpipe-capture/src/paired_capture.rs1249 let json = r#"[{"text":"user@example.com","x":"0","y":"0"},{"text":"safe text","x":"1","y":"1"},{"text":"key: skCODE
LOWcrates/screenpipe-capture/src/paired_capture.rs1252 !result.contains("user@example.com"),CODE
LOWee/sdk/examples/electron-app/renderer.js16const placeholder = $('placeholder');CODE
LOWee/sdk/examples/electron-app/index.html124 <span class="placeholder" id="placeholder">preview appears here</span>CODE
LOWpackages/ai-gateway/src/test/openai-models.unit.test.ts72 const ids = await listedModelIds({ OPENAI_API_KEY: 'placeholder' });CODE
LOWpackages/ai-gateway/src/test/openai-models.unit.test.ts152 createProvider('gpt-5.5', env({ OPENAI_API_KEY: 'placeholder' }));CODE
LOWpackages/ai-gateway/src/test/flex-tier.unit.test.ts87 provider.vertexProvider.getAccessToken = async () => 'fake-token';CODE
LOWpackages/ai-gateway/src/test/flex-tier.unit.test.ts91 expect(headers['Authorization']).toBe('Bearer fake-token');CODE
LOWpackages/ai-gateway/src/test/flex-tier.unit.test.ts96 provider.vertexProvider.getAccessToken = async () => 'fake-token';CODE
LOWpackages/ai-gateway/src/providers/index.ts80 return !['placeholder', 'changeme', 'change-me', 'todo', 'none', 'null', 'undefined'].includes(lower);CODE
LOWpackages/ai-gateway/src/utils/auth.test.ts219 email: 'test@test.com',CODE
LOWpackages/ai-gateway/src/utils/auth.test.ts231 email: 'test@test.com',CODE
LOWpackages/ai-gateway/src/utils/auth.test.ts242 email: 'test@test.com',CODE
LOWpackages/ai-gateway/src/utils/auth.test.ts246 expect(resolvedUserId).toBe('test@test.com');CODE
LOWpackages/ai-gateway/src/handlers/models.ts58 return !['placeholder', 'changeme', 'change-me', 'todo', 'none', 'null', 'undefined'].includes(lower);CODE
LOWpackages/ai-gateway/src/services/usage-tracker.test.ts406 email: 'test@test.com',CODE
LOWapps/screenpipe-app-tauri/src-tauri/src/auth_token.rs246 || (crate::config::is_e2e_mode() && value.starts_with("e2e-fake-token-"))CODE
LOW…pipe-app-tauri/lib/__tests__/team-api-contract.test.ts37 name: "Acme Corp",CODE
LOW…pipe-app-tauri/lib/__tests__/team-api-contract.test.ts49 body: JSON.stringify({ name: "Acme Corp" }),CODE
LOW…pipe-app-tauri/lib/__tests__/team-api-contract.test.ts55 expect(JSON.parse(req.options.body)).toEqual({ name: "Acme Corp" });CODE
LOW…pipe-app-tauri/lib/__tests__/team-api-contract.test.ts64 name: "Acme Corp",CODE
LOW…-app-tauri/e2e/specs/meeting-note-bottom-click.spec.ts37 lines.push(`note body line ${i} — lorem ipsum dolor sit amet`);CODE
LOW…-app-tauri/e2e/specs/meeting-note-bottom-click.spec.ts37 lines.push(`note body line ${i} — lorem ipsum dolor sit amet`);CODE
LOW…-tauri/e2e/specs/zz-account-stale-subscription.spec.ts55const FAKE_TOKEN = "e2e-fake-token-stale-subscription";CODE
LOW…pe-app-tauri/e2e/specs/zz-app-entitlement-gate.spec.ts27const FAKE_DENIED_TOKEN = 'e2e-fake-token-cloud-sub-app-denied';CODE
LOW…app-tauri/e2e/specs/zz-audio-fallback-reverify.spec.ts44const FAKE_TOKEN = "e2e-fake-token-reverify";CODE
LOW…enpipe-app-tauri/e2e/specs/zz-logout-resurrect.spec.ts51const FAKE_TOKEN = "e2e-fake-token-logout-resurrect";CODE
LOW…uri/e2e/specs/zz-account-basic-upgrade-billing.spec.ts19const FAKE_TOKEN = "e2e-fake-token-basic-upgrade";CODE
AI Slop Vocabulary12 hits · 36 pts
SeverityFileLineSnippetContext
MEDIUMcrates/screenpipe-engine/src/resource_monitor.rs117 /// Growth the *fit* predicts over the window — robust to endpoint noise,COMMENT
MEDIUMcrates/screenpipe-engine/src/focus_tracker/darwin.rs19//! is robust, permission-free, and correct in the common case — users glanceCOMMENT
MEDIUM…eenpipe-engine/src/meeting_watcher/ui_scan/pipeline.rs100 // (30s) provides enough buffer. A more robust approach would be to store the PIDCOMMENT
MEDIUM…eenpipe-engine/src/meeting_watcher/ui_scan/pipeline.rs103 // TODO: Store PID in MeetingState for robust browser tab-switch handling.COMMENT
MEDIUM…ates/screenpipe-db/tests/output_audio_liveness_test.rs200 // the test robust against sub-second skew between Rust's Utc::now() atCOMMENT
MEDIUMcrates/screenpipe-screen/src/frame_comparison.rs64 /// Histogram is faster and robust for detecting significant changes.COMMENT
MEDIUMcrates/screenpipe-redact/src/image/frame_redactor.rs9//! for an OCR-robust outcome — re-running OCR on the redacted outputCOMMENT
MEDIUMpackages/ai-gateway/src/providers/openai.ts114 // blowing up — much more robust than chasing the prefix allowlist asCOMMENT
MEDIUM.github/workflows/sync-skills.yml60 # PAT pattern adds maintenance pain (PATs expire). A PR is robustCOMMENT
MEDIUMapps/screenpipe-app-tauri/src-tauri/Cargo.toml336# Maximum-speed local builds for updater e2e harness — no optimization, fastest compile.COMMENT
MEDIUM…ps/screenpipe-app-tauri/src-tauri/src/owned_browser.rs731 // into the panel — a seamless handoff.COMMENT
MEDIUM…ps/screenpipe-app-tauri/lib/owned-browser-ownership.ts85 // (robust to a lagging `conversationId` state or a non-matching spawn id).COMMENT
Synthetic Comment Markers4 hits · 30 pts
SeverityFileLineSnippetContext
HIGHcrates/screenpipe-engine/src/routes/artifacts.rs815/// GET /artifacts — unified listing of AI-generated artifacts.COMMENT
HIGHapps/screenpipe-app-tauri/src-tauri/src/suggestions.rs1665/// Store AI-generated tags on recent frames using the existing tags + vision_tags tables.COMMENT
HIGHapps/screenpipe-app-tauri/lib/chat-storage.ts399// (each window generated its own). One copy usually wins the AI-generatedCOMMENT
HIGH…tauri/lib/hooks/__tests__/timeline-store-logic.test.ts288 // Mark as requestedCOMMENT
Modern AI Meta-Vocabulary9 hits · 26 pts
SeverityFileLineSnippetContext
MEDIUMee/sdk/Cargo.toml39# All orchestration lives here. The Tauri pluginCOMMENT
MEDIUMee/sdk/tauri/rust/Cargo.toml18# The pure-Rust recorder orchestration. Calling it in-process is whatCOMMENT
MEDIUM.claude/skills/screenpipe-api/SKILL.md417# Mark speaker as hallucination (false detection)COMMENT
MEDIUMdocs/VISION_PIPELINE_SPEC.md89### 3.2 Target Pipeline (decoupled, event-driven)COMMENT
MEDIUM…ps/screenpipe-app-tauri/components/standalone-chat.tsx1233 // chat with an agentic loop (≥2 assistant messages with citations betweenCOMMENT
MEDIUM…ents/chat/standalone/hooks/use-pi-foreground-events.ts821 // tiers at a few dozen requests/minute; a single agentic run can tripCOMMENT
MEDIUMapps/screenpipe-app-tauri/lib/source-citations.ts58// pipe-run chats where the whole transcript is one agentic loop and showingCOMMENT
MEDIUMapps/screenpipe-app-tauri/lib/source-citations.ts96// assistant of that turn — that's the agentic-loop pattern (Pi loopingCOMMENT
MEDIUM…npipe-app-tauri/lib/__tests__/source-citations.test.ts593 readState, // repeated step in the agentic loopCODE
Excessive Try-Catch Wrapping20 hits · 20 pts
SeverityFileLineSnippetContext
LOWcrates/screenpipe-screen/tests/custom_ocr_test.rs50 except Exception as e:CODE
LOWscripts/memory-leak/leak_probe.py335 except Exception:CODE
LOWscripts/memory-leak/leak_probe.py365 except Exception:CODE
LOWscripts/memory-leak/leak_probe.py382 except Exception:CODE
LOWscripts/memory-leak/leak_hunt.py104 except Exception:CODE
LOWscripts/memory-leak/leak_hunt.py150 except Exception:CODE
LOWscripts/memory-leak/leak_hunt.py159 except Exception:CODE
LOWscripts/memory-leak/leak_hunt.py259 except Exception:CODE
LOWscripts/memory-leak/leak_hunt.py269 except Exception:CODE
LOWscripts/memory-leak/leak_hunt.py285 except Exception as exc:CODE
LOWscripts/memory-leak/leak_hunt.py542 except Exception:CODE
LOWscripts/memory-leak/leak_hunt.py545 except Exception:CODE
LOWscripts/memory-leak/leak_hunt.py556 except Exception:CODE
LOWscripts/memory-leak/leak_hunt.py578 except Exception:CODE
LOWscripts/memory-leak/leak_hunt.py694 except Exception:CODE
LOWscripts/memory-leak/leak_hunt.py753 except Exception:CODE
LOWscripts/memory-leak/leak_hunt.py870 except Exception:CODE
LOWscripts/memory-leak/leak_hunt.py875 except Exception:CODE
LOWscripts/memory-leak/leak_hunt.py1010 except Exception:CODE
LOWscripts/memory-leak/leak_hunt.py1105 except Exception:CODE
Self-Referential Comments6 hits · 18 pts
SeverityFileLineSnippetContext
MEDIUMcrates/screenpipe-screen/tests/custom_ocr_test.rs11# Create a simple FastAPI server (app.py) that uses EasyOCR to process images:COMMENT
MEDIUM.devcontainer/scripts/postCreateCommand.sh3# Define the aliasCOMMENT
MEDIUM.github/workflows/release-enterprise.yml870 # Create an unsigned component package first so the package receiptCOMMENT
MEDIUM.github/workflows/release-cli.yml560 # Create a symlink so the linker can find it.COMMENT
MEDIUM.github/workflows/release-app.yml441 # Create a symlink so the linker finds it, and set OPENBLAS_PATH with lib/ subdir.COMMENT
MEDIUM.github/scripts/install_dependencies.sh6# Create a symlink so the linker finds it, and set OPENBLAS_PATH with lib/ subdir.COMMENT
Magic Placeholder Names2 hits · 10 pts
SeverityFileLineSnippetContext
HIGHcrates/screenpipe-engine/src/server.rs1263 r#"{"error":"unauthorized: API access requires authentication. Pass `AuthorizatiCODE
HIGH…pe-app-tauri/components/rewind/ai-presets-selector.tsx694 placeholder="your-api-key"CODE
Deep Nesting9 hits · 6 pts
SeverityFileLineSnippetContext
LOWscripts/enrich-openapi.py497CODE
LOWscripts/memory-leak/leak_probe.py147CODE
LOWscripts/memory-leak/leak_probe.py370CODE
LOWscripts/memory-leak/leak_hunt.py371CODE
LOWscripts/memory-leak/leak_hunt.py564CODE
LOWscripts/memory-leak/leak_hunt.py686CODE
LOWscripts/memory-leak/leak_hunt.py745CODE
LOWscripts/memory-leak/leak_hunt.py825CODE
LOWscripts/memory-leak/leak_hunt.py1088CODE
Redundant / Tautological Comments4 hits · 6 pts
SeverityFileLineSnippetContext
LOW.github/workflows/release-app.yml1120 # Check if it's a transient signing/bundling failure (worth retrying)COMMENT
LOW.github/scripts/purge_crabnebula.sh8# Check if the CN_API_KEY is set or throw an errorCOMMENT
LOW.github/scripts/purge_crabnebula.sh23# Check if current_version is emptyCOMMENT
LOW.github/scripts/purge_crabnebula.sh34# Check if we got valid numbersCOMMENT
Slop Phrases4 hits · 5 pts
SeverityFileLineSnippetContext
LOWcrates/screenpipe-audio/tests/accuracy_test.rs39 r#"bro - got some good stuff from screenpipe here's the lowdown on your day, you productivity ninja: absolutCODE
LOWcrates/screenpipe-audio/examples/bench_quality2.rs439 reference: r#"bro - got some good stuff from screenpipe here's the lowdown on your day, you productivity ninCODE
LOWcrates/screenpipe-audio/examples/bench_quality.rs255 reference: r#"bro - got some good stuff from screenpipe here's the lowdown on your day, you productivity ninCODE
MEDIUM…ipe-app-tauri/src-tauri/gen/schemas/acl-manifests.json1{"autostart":{"default_permission":{"identifier":"default","description":"This permission set configures if your\napplicCODE
Unused Imports4 hits · 4 pts
SeverityFileLineSnippetContext
LOWscripts/memory-leak/leak_probe.py16CODE
LOWscripts/memory-leak/leak_probe.py30CODE
LOWscripts/memory-leak/leak_hunt.py13CODE
LOWscripts/memory-leak/leak_hunt.py20CODE
Example Usage Blocks2 hits · 3 pts
SeverityFileLineSnippetContext
LOWpackages/ai-gateway/test-vertex-local.sh4# Usage:COMMENT
LOWpackages/ai-gateway/scripts/deploy.sh16# Usage:COMMENT
TODO Padding2 hits · 3 pts
SeverityFileLineSnippetContext
LOWpackages/ai-gateway/src/handlers/voice-ws.ts1// TODO: implementCOMMENT
LOWapps/screenpipe-app-tauri/src-tauri/src/tray.rs783 // TODO: implement safely once we can reliably identify our NSStatusItem.COMMENT
Modern Structural Boilerplate1 hit · 1 pts
SeverityFileLineSnippetContext
LOWscripts/memory-leak/leak_hunt.py51 def set_scenario(self, name: str) -> None:CODE
Overly Generic Function Names1 hit · 1 pts
SeverityFileLineSnippetContext
LOWpackages/ai-gateway/src/index.ts29export async function handleRequest(request: Request, env: Env, ctx: ExecutionContext): Promise<Response> {CODE