Repository Analysis

screenpipe/screenpipe

YC (S26) | Open Computer History | Record your screen continuously locally and provide context to your agents (Claude, Codex, Openclaw, Hermes, Runner...)

4.5 Likely human-written View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of screenpipe/screenpipe, a Rust project with 21,277 GitHub stars. SynthScan v2.0 examined 1,124,975 lines of code across 3119 source files, recording 3503 pattern matches distributed across 21 syntactic categories. The overall adjusted score of 4.5 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).

4.5
Adjusted Score
4.5
Raw Score
100%
Time Factor
2026-08-28
Last Push
21.3K
Stars
Rust
Language
1.1M
Lines of Code
3.1K
Files
3.5K
Pattern Hits
2026-08-29
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 8MEDIUM 679LOW 2816

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 3503 distinct pattern matches across 21 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 Separators643 hits · 1953 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.ts175 // ── 1. Feedback on oversized tool results ──────────────────────────COMMENT
MEDIUM…s/screenpipe-core/assets/extensions/context-pruning.ts233 // ── 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-gateway/e2e/run.sh173# ── Conformance suite, unauthenticated posture ──────────────────────────────COMMENT
MEDIUMcrates/screenpipe-gateway/e2e/run.sh187# ── Authenticated posture: the auth matrix ──────────────────────────────────COMMENT
MEDIUM…/screenpipe-gateway/e2e/conformance/enterprise-v1.yaml54 # ── Accepted. Ruled legitimate 2026-07-24; do not "converge" these. ────────COMMENT
MEDIUM…/screenpipe-gateway/e2e/conformance/enterprise-v1.yaml782 # ── The unit of response across /search and /records ────────────────────COMMENT
MEDIUMcrates/screenpipe-gateway/e2e/conformance/cases.ts55 // ── /devices ─────────────────────────────────────────────────────────────COMMENT
MEDIUMcrates/screenpipe-gateway/e2e/conformance/cases.ts146 // ── /search ──────────────────────────────────────────────────────────────COMMENT
MEDIUMcrates/screenpipe-gateway/e2e/conformance/cases.ts289 // ── /records ─────────────────────────────────────────────────────────────COMMENT
MEDIUMcrates/screenpipe-gateway/e2e/conformance/cases.ts392 // ── /files ───────────────────────────────────────────────────────────────COMMENT
MEDIUMcrates/screenpipe-gateway/e2e/conformance/cases.ts457 // ── /files/{key} ─────────────────────────────────────────────────────────COMMENT
MEDIUMcrates/screenpipe-gateway/e2e/conformance/cases.ts473 // ── /frames ──────────────────────────────────────────────────────────────COMMENT
MEDIUMcrates/screenpipe-gateway/e2e/conformance/cases.ts488 // ── /rollups ─────────────────────────────────────────────────────────────COMMENT
MEDIUMcrates/screenpipe-gateway/e2e/conformance/cases.ts549 // ── Hosted-only ──────────────────────────────────────────────────────────COMMENT
MEDIUMcrates/screenpipe-gateway/e2e/conformance/cases.ts579 // ── Gateway-only ─────────────────────────────────────────────────────────COMMENT
MEDIUMcrates/screenpipe-gateway/e2e/conformance/spec.ts210// ── internals ──────────────────────────────────────────────────────────────COMMENT
MEDIUMcrates/screenpipe-gateway/src/control_plane.rs1110 // ── The hole the runtime golden CANNOT see ───────────────────────────COMMENT
MEDIUMcrates/screenpipe-gateway/src/control_plane.rs1232 // ─── SCR-295: the BOOT PATH, not just the client ────────────────────────COMMENT
MEDIUMcrates/screenpipe-gateway/src/api.rs223// ─── Time window (converged with v1-helpers.ts parseTimeWindow) ─────────────COMMENT
MEDIUMcrates/screenpipe-gateway/src/api.rs560// ─── Record queries (gateway-owned SQL over the FTS tables) ─────────────────COMMENT
MEDIUMcrates/screenpipe-gateway/src/api.rs1133// ─── GET /api/enterprise/v1/devices ─────────────────────────────────────────COMMENT
MEDIUMcrates/screenpipe-gateway/src/api.rs1226// ─── GET /api/enterprise/v1/search ──────────────────────────────────────────COMMENT
MEDIUMcrates/screenpipe-gateway/src/api.rs1339// ─── GET /api/enterprise/v1/records ─────────────────────────────────────────COMMENT
MEDIUMcrates/screenpipe-gateway/src/api.rs1447// ─── GET /api/enterprise/v1/files ───────────────────────────────────────────COMMENT
MEDIUMcrates/screenpipe-gateway/src/api.rs1573// ─── GET /api/enterprise/v1/files/[...key] ──────────────────────────────────COMMENT
MEDIUMcrates/screenpipe-gateway/src/api.rs1604// ─── GET /api/enterprise/v1/frames/{device_id}/{frame_id} ───────────────────COMMENT
MEDIUMcrates/screenpipe-gateway/src/api.rs1663// ─── GET /api/enterprise/v1/rollups ─────────────────────────────────────────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.rs360 // ── 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
583 more matches not shown…
Over-Commented Block1781 hits · 1748 pts
SeverityFileLineSnippetContext
LOWCargo.toml181# resize 1080p->360p 5.38ms -> 2.13ms (-60.4%)COMMENT
LOWlefthook.yml1# screenpipe — AI that knows everything you've seen, said, or heardCOMMENT
LOWcrates/screenpipe-core/tests/no_console_flash.rs1// screenpipe — AI that knows everything you've seen, said, or heardCOMMENT
LOWcrates/screenpipe-core/tests/no_console_flash.rs241 let t = line.trim_end().trim_end_matches('{').trim_end();COMMENT
LOWcrates/screenpipe-core/examples/probe_accessibility.rs1// 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/ffmpeg.rs21const EXECUTABLE_NAME: &str = "ffmpeg";COMMENT
LOWcrates/screenpipe-core/src/ffmpeg.rs521 }COMMENT
LOWcrates/screenpipe-core/src/lib.rs1// screenpipe — AI that knows everything you've seen, said, or heardCOMMENT
LOWcrates/screenpipe-core/src/lib.rs21//! - Pipes run untrusted-ish user content through a model. Treat pipe output asCOMMENT
LOWcrates/screenpipe-core/src/paths.rs41 // symlinks intentionally skippedCOMMENT
LOWcrates/screenpipe-core/src/strings.rs1// screenpipe — AI that knows everything you've seen, said, or heardCOMMENT
LOWcrates/screenpipe-core/src/video.rs41/// Map video quality preset to x265 encoding preset.COMMENT
LOWcrates/screenpipe-core/src/no_window.rs1// screenpipe — AI that knows everything you've seen, said, or heardCOMMENT
LOWcrates/screenpipe-core/src/no_window.rs21/// `CREATE_NO_WINDOW` — do not allocate a console for the child process.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/permissions.rs161 image_option: u32,COMMENT
LOWcrates/screenpipe-core/src/permissions.rs341}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/display_topology.rs1// screenpipe — AI that knows everything you've seen, said, or heardCOMMENT
LOWcrates/screenpipe-core/src/display_topology.rs21//! - [`capture_ready_display_ids`] — "could screen capture actually produce aCOMMENT
LOWcrates/screenpipe-core/src/display_topology.rs141/// NOT infer "all displays gone / stream dead" from it (a CG error must not readCOMMENT
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.rs201/// Cap so an oversized `reset_in` can't stall a pipe run indefinitely.COMMENT
LOWcrates/screenpipe-core/src/agents/pi.rs281 text.to_lowercase().contains("hosted_ai_capacity_reserved")COMMENT
LOWcrates/screenpipe-core/src/agents/pi.rs541pub struct PiExecutor {COMMENT
LOWcrates/screenpipe-core/src/agents/pi.rs621 /// screenpipe-api skill is installed WITHOUT the Gemma 4 E4BCOMMENT
LOWcrates/screenpipe-core/src/agents/pi.rs661 /// This skill teaches pi how to query org-wide telemetry (devices,COMMENT
LOWcrates/screenpipe-core/src/agents/pi.rs701 info!(COMMENT
LOWcrates/screenpipe-core/src/agents/pi.rs841 }COMMENT
LOWcrates/screenpipe-core/src/agents/pi.rs861 "render-html-report",COMMENT
LOWcrates/screenpipe-core/src/agents/pi.rs1201 providerCOMMENT
LOWcrates/screenpipe-core/src/agents/pi.rs1501 /// `allowed_models` are haiku/gemini only). Previously we passed theCOMMENT
LOWcrates/screenpipe-core/src/agents/pi.rs1621 /// `true` when `allowed` is exactly the unvalidated gateway fallback catalogCOMMENT
LOWcrates/screenpipe-core/src/agents/pi.rs2261 pipe_system_prompt,COMMENT
LOWcrates/screenpipe-core/src/agents/pi.rs2501pub fn apply_pi_isolation_env(apply: &mut dyn FnMut(&str, &str)) {COMMENT
LOWcrates/screenpipe-core/src/agents/pi.rs2521 // Single-flighted and best-effort — this never blocks the spawn it isCOMMENT
LOWcrates/screenpipe-core/src/agents/pi.rs2701 info!("pi config seed complete at {:?}", dest);COMMENT
LOWcrates/screenpipe-core/src/agents/pi.rs2921const BOUNDED_OUTPUT_TAIL: usize = 192 * 1024;COMMENT
LOWcrates/screenpipe-core/src/agents/pi.rs3321 }COMMENT
LOWcrates/screenpipe-core/src/agents/pi.rs3461 }COMMENT
LOWcrates/screenpipe-core/src/agents/pi.rs5381COMMENT
LOWcrates/screenpipe-core/src/agents/cloud.rs81 #[serde(default, skip_serializing_if = "Option::is_none")]COMMENT
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/cli_runtime.rs1// screenpipe — AI that knows everything you've seen, said, or heardCOMMENT
LOWcrates/screenpipe-core/src/agents/cli_runtime.rs21//!COMMENT
LOWcrates/screenpipe-core/src/agents/cli_runtime.rs41//! install, or an offline machine.COMMENT
LOWcrates/screenpipe-core/src/agents/acp/runtime.rs241}COMMENT
LOWcrates/screenpipe-core/src/agents/acp/runtime.rs401- `live_view` reads or edits the user's saved Live Views (dashboards): action=list to find one, action=get for its definCOMMENT
1721 more matches not shown…
Hyper-Verbose Identifiers771 hits · 791 pts
SeverityFileLineSnippetContext
LOW…npipe-core/assets/extensions/screenpipe-permissions.ts151function hasContentTypeRestrictions(): boolean {CODE
LOW…s/screenpipe-core/assets/extensions/context-pruning.ts85export function resolveContextWindowTokens(ctx: any): number {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
LOWpackages/screenpipe-mcp/scripts/assert-pack-contents.js126function runtimeDependencyFailures(packageJson) {CODE
LOWpackages/screenpipe-mcp/src/activity-summary-tool.ts23export async function buildActivitySummaryResult(CODE
LOWpackages/screenpipe-mcp/src/qualified-value.ts62export function createMcpQualifiedValueReporter(CODE
LOWpackages/ai-gateway/scripts/required-bindings.ts40export function assertRequiredHostedAiSecretBindings(rawOutput: string): void {CODE
LOWpackages/ai-gateway/modal/screenpipe_qwen35.py140def filtered_response_headers(headers):CODE
LOWpackages/ai-gateway/src/index.ts116export function shouldEnableBackgroundFallback(CODE
LOWpackages/ai-gateway/src/index.ts123export function shouldEnableSafetyRefusalFallback(CODE
LOWpackages/ai-gateway/src/index.ts204async function handleMeteredTinfoilRequest(CODE
LOWpackages/ai-gateway/src/index.ts264async function handleMeteredVoiceAiRequest(CODE
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.ts44function anthropicStopReasonToOpenAI(reason: unknown): string {CODE
LOWpackages/ai-gateway/src/providers/openai.ts55function clearPromptCacheBreakpoints(messages: ChatCompletionMessageParam[]): void {CODE
LOWpackages/ai-gateway/src/providers/openai.ts93function stripPromptCacheBreakpoints(message: ChatCompletionMessageParam): ChatCompletionMessageParam {CODE
LOWpackages/ai-gateway/src/utils/model-policy.ts8export function isGooglePolicyBlockedModel(model: string | null | undefined): boolean {CODE
LOWpackages/ai-gateway/src/utils/auth.ts278function billingPlanMatchesAccessPlan(CODE
LOWpackages/ai-gateway/src/utils/latency.ts29export function applyBackgroundReasoningDefault(CODE
LOW…ages/ai-gateway/src/handlers/realtime-transcription.ts53export async function handleRealtimeTranscriptionUpgrade(CODE
LOW…ages/ai-gateway/src/handlers/realtime-transcription.ts171async function connectDeepgramLiveWithRetry(CODE
LOW…ages/ai-gateway/src/handlers/realtime-transcription.ts208function isRetryableDeepgramLiveUpgradeStatus(status: number): boolean {CODE
LOW…ages/ai-gateway/src/handlers/realtime-transcription.ts263function translateLegacyClientMessage(data: string | ArrayBuffer | Blob): string | ArrayBuffer | null {CODE
LOW…ages/ai-gateway/src/handlers/realtime-transcription.ts285function translateLegacyDeepgramMessage(CODE
LOWpackages/ai-gateway/src/handlers/chat.ts554function streamEventHasAssistantOutput(value: unknown): boolean {CODE
LOWpackages/ai-gateway/src/handlers/chat.ts575function streamEventIsSafetyRefusal(value: unknown): boolean {CODE
LOWpackages/ai-gateway/src/handlers/chat.ts593function inspectSafetyRefusalPayload(payload: string): SafetyRefusalProbeResult | null {CODE
LOWpackages/ai-gateway/src/handlers/chat.ts621async function probeStreamingSafetyRefusal(response: Response): Promise<SafetyRefusalProbeResult> {CODE
LOWpackages/ai-gateway/src/handlers/transcription.ts72export function getTranscriptionLanguages(request: Request, fallback: string[] = []): string[] {CODE
LOWpackages/ai-gateway/src/handlers/transcription.ts126async function handleDeepgramTranscription(CODE
LOWpackages/ai-gateway/src/handlers/transcription.ts160async function handleGoogleTranscription(request: Request, env: Env): Promise<Response> {CODE
LOW…s/ai-gateway/src/services/background-limit-fallback.ts50export function isBackgroundFallbackConfigured(env: Pick<Env, 'OPENAI_API_KEY'>): boolean {CODE
LOW…s/ai-gateway/src/services/background-limit-fallback.ts55export function hasUnsupportedFallbackInput(body: RequestBody): boolean {CODE
LOW…s/ai-gateway/src/services/background-limit-fallback.ts72export function prepareBackgroundFallbackBody(body: RequestBody): RequestBody {CODE
LOW…s/ai-gateway/src/services/background-limit-fallback.ts125export function isProviderQuotaOrBillingLimitError(error: unknown): boolean {CODE
LOW…s/ai-gateway/src/services/background-limit-fallback.ts134export function isAccountLocalAllowanceError(error: unknown): boolean {CODE
LOW…s/ai-gateway/src/services/background-limit-fallback.ts139export function shouldUseBackgroundFallback(input: {CODE
LOW…s/ai-gateway/src/services/background-limit-fallback.ts160export function resolveBackgroundFallbackBody(input: {CODE
LOW…s/ai-gateway/src/services/hosted-ai-cost-settlement.ts106export async function settleActualOrReservedCost(CODE
LOW…gateway/src/services/hosted-ai-reservation-controls.ts58export function loadHostedAiReservationControls(CODE
LOW…ges/ai-gateway/src/services/hosted-ai-cost-controls.ts124export function loadHostedAiTextCostControls(env: HostedAiCostControlEnv): HostedAiTextCostControls {CODE
LOW…ges/ai-gateway/src/services/hosted-ai-cost-controls.ts176export function loadHostedTranscriptionCostControls(CODE
LOW…ges/ai-gateway/src/services/hosted-ai-cost-controls.ts220export function getTranscriptionDailyCostCap(CODE
LOW…ges/ai-gateway/src/services/hosted-ai-cost-controls.ts228export function getTranscriptionGlobalCostCaps(CODE
LOW…ges/ai-gateway/src/services/hosted-ai-cost-controls.ts242function clampWindowsToIncludedAllowance(CODE
LOW…ges/ai-gateway/src/services/hosted-ai-cost-controls.ts264export function resolveHostedAiTextCostLimits(CODE
711 more matches not shown…
Structural Annotation Overuse72 hits · 136 pts
SeverityFileLineSnippetContext
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.rs724 // Step 2: Create video_chunk and update frame pointers in one transactionCOMMENT
LOWcrates/screenpipe-engine/src/snapshot_compaction.rs744 // Step 3: Delete source JPEGs — only for frames actually encoded intoCOMMENT
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.rs1180 // Step 1: prewarm-pending upgrade is universal.COMMENT
LOWcrates/screenpipe-engine/src/bin/screenpipe-engine.rs1183 // Step 2: auto-start only for Always mode AND only if theCOMMENT
LOW…screenpipe-engine/src/meeting_watcher/ui_scan/macos.rs634 // Step 1: find running meeting appsCOMMENT
LOW…screenpipe-engine/src/meeting_watcher/ui_scan/macos.rs696 // Step 2: scan for call controlsCOMMENT
LOW…reenpipe-engine/src/meeting_watcher/ui_scan/windows.rs712 // Step 1: find running meeting apps (includes Zoom)COMMENT
LOW…reenpipe-engine/src/meeting_watcher/ui_scan/windows.rs723 // Step 2: scan each found app for call controlsCOMMENT
LOW…reenpipe-engine/src/meeting_watcher/ui_scan/windows.rs742 // 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.md232### Step 1: DB migration + snapshot write pathCOMMENT
LOWdocs/EVENT_DRIVEN_CAPTURE_SPEC.md238### Step 2: Paired capture functionCOMMENT
LOWdocs/EVENT_DRIVEN_CAPTURE_SPEC.md243### Step 3: Event trigger systemCOMMENT
LOWdocs/EVENT_DRIVEN_CAPTURE_SPEC.md249### Step 4: New capture loopCOMMENT
LOWdocs/EVENT_DRIVEN_CAPTURE_SPEC.md255### Step 5: Search + timeline integrationCOMMENT
LOWdocs/EVENT_DRIVEN_CAPTURE_SPEC.md260### 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.tsx289 // Step 1: Load cache instantlyCOMMENT
LOW…enpipe-app-tauri/components/settings/usage-section.tsx302 // Step 2: Incremental updateCOMMENT
LOW…creenpipe-app-tauri/components/settings/ai-presets.tsx847 // Step 2: Auth checkCOMMENT
LOW…creenpipe-app-tauri/components/settings/ai-presets.tsx893 // Step 3: Parse models (skip for openai-chatgpt when /v1/models returned 403)COMMENT
LOW…creenpipe-app-tauri/components/settings/ai-presets.tsx937 // Step 4: Test the actual chat endpoint. BYOK providers share one probe soCOMMENT
LOW…onents/settings/hooks/use-transcription-diagnostics.ts96 // Step 1: Endpoint connectivity — try root URL or /v1/modelsCOMMENT
LOW…onents/settings/hooks/use-transcription-diagnostics.ts176 // Step 4: the exact request "Test and enable" and production recordingCOMMENT
LOW…p-tauri/components/onboarding/first-run-guide.test.tsx61 // Step 0: no tour yet, no prompt card — just the invitation.COMMENT
LOW…/screenpipe-app-tauri/src-tauri/src/enterprise_sync.rs417 // Step 1: ask /search for the most recent OCR frames. We request aCOMMENT
LOW…/screenpipe-app-tauri/src-tauri/src/enterprise_sync.rs458 // Step 2: fetch the frame's image bytes. A non-success status isCOMMENT
LOW…/screenpipe-app-tauri/src-tauri/src/enterprise_sync.rs482 // Step 3: decode → resize 320×180 → JPEG @ Q60 → base64.COMMENT
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.ts153 // Step 1: send with max_tokensCOMMENT
LOW…/screenpipe-app-tauri/lib/utils/chat-test-body.test.ts157 // Step 2: endpoint rejectsCOMMENT
LOW…/screenpipe-app-tauri/lib/utils/chat-test-body.test.ts161 // 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
12 more matches not shown…
Verbosity Indicators60 hits · 113 pts
SeverityFileLineSnippetContext
LOWcrates/screenpipe-engine/src/snapshot_compaction.rs724 // Step 2: Create video_chunk and update frame pointers in one transactionCOMMENT
LOWcrates/screenpipe-engine/src/snapshot_compaction.rs744 // Step 3: Delete source JPEGs — only for frames actually encoded intoCOMMENT
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.rs1180 // Step 1: prewarm-pending upgrade is universal.COMMENT
LOWcrates/screenpipe-engine/src/bin/screenpipe-engine.rs1183 // Step 2: auto-start only for Always mode AND only if theCOMMENT
LOW…screenpipe-engine/src/meeting_watcher/ui_scan/macos.rs634 // Step 1: find running meeting appsCOMMENT
LOW…screenpipe-engine/src/meeting_watcher/ui_scan/macos.rs696 // Step 2: scan for call controlsCOMMENT
LOW…reenpipe-engine/src/meeting_watcher/ui_scan/windows.rs712 // Step 1: find running meeting apps (includes Zoom)COMMENT
LOW…reenpipe-engine/src/meeting_watcher/ui_scan/windows.rs723 // Step 2: scan each found app for call controlsCOMMENT
LOW…reenpipe-engine/src/meeting_watcher/ui_scan/windows.rs742 // 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.tsx289 // Step 1: Load cache instantlyCOMMENT
LOW…enpipe-app-tauri/components/settings/usage-section.tsx302 // Step 2: Incremental updateCOMMENT
LOW…creenpipe-app-tauri/components/settings/ai-presets.tsx847 // Step 2: Auth checkCOMMENT
LOW…creenpipe-app-tauri/components/settings/ai-presets.tsx893 // Step 3: Parse models (skip for openai-chatgpt when /v1/models returned 403)COMMENT
LOW…creenpipe-app-tauri/components/settings/ai-presets.tsx937 // Step 4: Test the actual chat endpoint. BYOK providers share one probe soCOMMENT
LOW…onents/settings/hooks/use-transcription-diagnostics.ts96 // Step 1: Endpoint connectivity — try root URL or /v1/modelsCOMMENT
LOW…onents/settings/hooks/use-transcription-diagnostics.ts176 // Step 4: the exact request "Test and enable" and production recordingCOMMENT
LOW…p-tauri/components/onboarding/first-run-guide.test.tsx61 // Step 0: no tour yet, no prompt card — just the invitation.COMMENT
LOW…/screenpipe-app-tauri/src-tauri/src/enterprise_sync.rs417 // Step 1: ask /search for the most recent OCR frames. We request aCOMMENT
LOW…/screenpipe-app-tauri/src-tauri/src/enterprise_sync.rs458 // Step 2: fetch the frame's image bytes. A non-success status isCOMMENT
LOW…/screenpipe-app-tauri/src-tauri/src/enterprise_sync.rs482 // Step 3: decode → resize 320×180 → JPEG @ Q60 → base64.COMMENT
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.ts153 // Step 1: send with max_tokensCOMMENT
LOW…/screenpipe-app-tauri/lib/utils/chat-test-body.test.ts157 // Step 2: endpoint rejectsCOMMENT
LOW…/screenpipe-app-tauri/lib/utils/chat-test-body.test.ts161 // 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.ts156 // Step 1: GET — check if text position data already exists in DBCOMMENT
LOW…/screenpipe-app-tauri/lib/hooks/use-frame-text-data.ts191 // 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
LOW…tauri/lib/hooks/__tests__/window-focus-refresh.test.ts168 // Step 1: User opens timeline at 6:30COMMENT
LOW…tauri/lib/hooks/__tests__/window-focus-refresh.test.ts180 // Step 2: User closes timeline (window hidden)COMMENT
LOW…tauri/lib/hooks/__tests__/window-focus-refresh.test.ts183 // Step 3: User reopens at 7:00COMMENT
LOW…tauri/lib/hooks/__tests__/window-focus-refresh.test.ts187 // Step 4: Window focus event fires, triggers onWindowFocusCOMMENT
LOW…tauri/lib/hooks/__tests__/window-focus-refresh.test.ts194 // Step 5: fetchTimeRange is called (from onWindowFocus or useEffect)COMMENT
Fake / Example Data81 hits · 88 pts
SeverityFileLineSnippetContext
LOWcrates/screenpipe-engine/src/auth_key.rs449 && value.starts_with("e2e-fake-token-"))CODE
LOWcrates/screenpipe-engine/src/connections_api.rs4473 creds.insert("email".into(), json!("user@example.com"));CODE
LOWcrates/screenpipe-engine/src/connections_api.rs4477 assert_eq!(user, "user@example.com");CODE
LOWcrates/screenpipe-engine/src/connections_api.rs4590 creds.insert("email".into(), json!("user@example.com"));CODE
LOWcrates/screenpipe-engine/src/cli/team_pipes.rs722 args.member = vec!["admin@example.com".into()];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/elements.rs450 return property_value(properties, element.id, "placeholder")CODE
LOWcrates/screenpipe-engine/src/routes/elements.rs460 .or_else(|| property_value(properties, element.id, "placeholder"))CODE
LOWcrates/screenpipe-engine/src/routes/elements.rs1154 r#"{"automation_id":"password","is_password":true,"value":"hunter2","placeholder":"Password"}"#,CODE
LOWcrates/screenpipe-engine/src/routes/frames.rs1431 "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.rs1552 let got = load_oauth_json(Some(&store), id, Some("user@example.com")).await;CODE
LOWcrates/screenpipe-connect/src/connections/imap.rs654 login_session(client, "user@example.com", "secret", "127.0.0.1")CODE
LOWcrates/screenpipe-connect/src/connections/imap.rs672 creds.insert("username".into(), json!("user@example.com"));CODE
LOWcrates/screenpipe-redact/tests/worker_integration.rs1128 let tree = r#"[{"role":"AXTextField","text":"hunter2","value":"hunter2","placeholder":"API key","depth":1,"bounds":{CODE
LOWcrates/screenpipe-redact/src/a11y_context.rs346 "placeholder",CODE
LOWcrates/screenpipe-redact/src/a11y_context.rs505 {"role":"AXTextField","value":"hunter2","placeholder":"API key"},CODE
LOWcrates/screenpipe-redact/src/a11y_context.rs541 "placeholder": "API key"CODE
LOWcrates/screenpipe-redact/src/a11y_context.rs555 Some(r#"[{"role":"AXTextField","value":"hunter2","placeholder":"API key"}]"#),CODE
LOWcrates/screenpipe-redact/src/tree_json.rs71 "placeholder",CODE
LOWcrates/screenpipe-redact/src/tree_json.rs402 "placeholder":"{s}",CODE
LOWcrates/screenpipe-redact/src/image/worker.rs521 let tree = r#"[{"role":"AXTextField","value":"opaque-value","placeholder":"API key","bounds":{"left":0.5,"top":0CODE
LOWcrates/screenpipe-redact/src/adapters/regex.rs2304 &"lorem ipsum dolor sit amet ".repeat(40),CODE
LOWcrates/screenpipe-redact/src/adapters/regex.rs2304 &"lorem ipsum dolor sit amet ".repeat(40),CODE
LOWcrates/screenpipe-redact/src/worker/columns.rs235 "placeholder",CODE
LOW…tes/screenpipe-a11y/examples/semantic_capture_probe.rs149 "placeholder",CODE
LOWcrates/screenpipe-a11y/src/tree/linux.rs772 &["placeholder-text", "placeholder", "html-placeholder"],CODE
LOWcrates/screenpipe-capture/src/paired_capture.rs1378 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.rs1381 !result.contains("user@example.com"),CODE
LOW…es/screenpipe-semantic/tests/committed_data_privacy.rs74 || email.ends_with("@example.org")CODE
LOWcrates/screenpipe-semantic/src/messaging.rs805 "placeholder",CODE
LOWcrates/screenpipe-semantic/src/messaging.rs846 "placeholder",CODE
LOWpackages/ai-gateway/src/test/openai-models.unit.test.ts76 const ids = await listedModelIds({ OPENAI_API_KEY: 'placeholder' });CODE
LOWpackages/ai-gateway/src/test/openai-models.unit.test.ts234 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.ts122 return !['placeholder', 'changeme', 'change-me', 'todo', 'none', 'null', 'undefined'].includes(lower);CODE
LOWpackages/ai-gateway/src/utils/auth.test.ts759 email: 'test@test.com',CODE
LOWpackages/ai-gateway/src/utils/auth.test.ts771 email: 'test@test.com',CODE
LOWpackages/ai-gateway/src/utils/auth.test.ts782 email: 'test@test.com',CODE
LOWpackages/ai-gateway/src/handlers/models.ts63 return !['placeholder', 'changeme', 'change-me', 'todo', 'none', 'null', 'undefined'].includes(lower);CODE
LOW…s/ai-gateway/src/services/background-limit-fallback.ts47 return normalized.length > 0 && !['placeholder', 'changeme', 'change-me', 'none', 'null', 'undefined'].includes(normaliCODE
LOWpackages/ai-gateway/src/services/usage-tracker.test.ts575 email: 'test@test.com',CODE
LOWpackages/sdk/examples/electron-app/renderer.js16const placeholder = $('placeholder');CODE
LOWpackages/sdk/examples/electron-app/index.html124 <span class="placeholder" id="placeholder">preview appears here</span>CODE
LOW…omponents/meeting-notes/meeting-chat-citations.test.ts204 const long = "lorem ipsum 3:34 ".repeat(4000);CODE
LOW…i/components/meeting-notes/meeting-chat-panel.test.tsx278 "placeholder",CODE
LOW…i/components/meeting-notes/meeting-chat-panel.test.tsx285 "placeholder",CODE
LOW…i/components/meeting-notes/meeting-chat-panel.test.tsx295 "placeholder",CODE
LOW…i/components/meeting-notes/meeting-chat-panel.test.tsx318 expect(input).toHaveAttribute("placeholder", "refreshing…");CODE
LOWapps/screenpipe-app-tauri/src-tauri/src/auth_token.rs247 looks_like_jwt(value) || (crate::config::is_e2e_mode() && value.starts_with("e2e-fake-token-"))CODE
LOWapps/screenpipe-app-tauri/lib/chat-utils.test.ts226 const result = normalizeComposerMentionsForModel('@"John Doe" what did he say', { now });CODE
LOWapps/screenpipe-app-tauri/lib/chat-utils.test.ts227 expect(result.context.speakerName).toBe("John Doe");CODE
LOWapps/screenpipe-app-tauri/lib/chat-utils.ts629 * The composer is plain text, so `@audio`, `@slack`, `@"John Doe"`, `#tag`,COMMENT
LOW…/screenpipe-app-tauri/lib/__tests__/chat-store.test.ts611 id: "placeholder",CODE
LOW…/screenpipe-app-tauri/lib/__tests__/chat-store.test.ts617 actions.setCurrent("placeholder");CODE
21 more matches not shown…
AI Slop Vocabulary21 hits · 60 pts
SeverityFileLineSnippetContext
MEDIUMcrates/screenpipe-gateway/e2e/docker-compose.auth.yml5# AUTHENTICATED overlay for the compose harness (SCR-288 item 6).COMMENT
MEDIUMcrates/screenpipe-gateway/e2e/docker-compose.yml5# Compose harness for the M1 demo (SCR-287): MinIO plays the customer'sCOMMENT
MEDIUMcrates/screenpipe-engine/src/resource_monitor.rs92 /// 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
MEDIUM…s/screenpipe-semantic/evals/pipes/installed_cases.json20 "## Highest-leverage workflows",CODE
MEDIUM…s/screenpipe-semantic/evals/pipes/installed_cases.json56 "## Highest-leverage workflows",CODE
MEDIUM…s/screenpipe-semantic/evals/pipes/installed_cases.json90 "## Highest-leverage workflows",CODE
MEDIUMscripts/capture-wedge-repro.sh10# every counter freezes together by the time it fires. This harness samplesCOMMENT
MEDIUMscripts/build-gateway-container.sh33# signing seed), so it is for the compose harness and nothing else.COMMENT
MEDIUMpackages/ai-gateway/src/providers/openai.ts300 // blowing up — much more robust than chasing the prefix allowlist asCOMMENT
MEDIUM.github/dependabot.yml31 # - apps/.../src-tauri/livetext-stress — standalone stress harness, not shipped.COMMENT
MEDIUM.github/workflows/sync-skills.yml60 # PAT pattern adds maintenance pain (PATs expire). A PR is robustCOMMENT
MEDIUM.github/workflows/ci.yml225 # harness starts. Stage both runtimes once for all release-dev tests.COMMENT
MEDIUMapps/screenpipe-app-tauri/src-tauri/Cargo.toml391# Maximum-speed local builds for updater e2e harness — no optimization, fastest compile.COMMENT
MEDIUM…ps/screenpipe-app-tauri/src-tauri/src/owned_browser.rs818 // into the panel — a seamless handoff.COMMENT
MEDIUM…ps/screenpipe-app-tauri/lib/owned-browser-ownership.ts100 // (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.rs872/// GET /artifacts — unified listing of AI-generated artifacts.COMMENT
HIGHapps/screenpipe-app-tauri/src-tauri/src/suggestions.rs1669/// Store AI-generated tags on recent frames using the existing tags + vision_tags tables.COMMENT
HIGHapps/screenpipe-app-tauri/lib/chat-storage.ts560// timestamp. One copy usually wins the AI-generated title; the other is leftCOMMENT
HIGH…tauri/lib/hooks/__tests__/timeline-store-logic.test.ts291 // Mark as requestedCOMMENT
Modern AI Meta-Vocabulary9 hits · 26 pts
SeverityFileLineSnippetContext
MEDIUM.claude/skills/screenpipe-api/SKILL.md485# Mark speaker as hallucination (false detection)COMMENT
MEDIUMdocs/VISION_PIPELINE_SPEC.md95### 3.2 Target Pipeline (decoupled, event-driven)COMMENT
MEDIUMpackages/sdk/Cargo.toml39# All orchestration lives here. The Tauri pluginCOMMENT
MEDIUMpackages/sdk/tauri/rust/Cargo.toml18# The pure-Rust recorder orchestration. Calling it in-process is whatCOMMENT
MEDIUM…ps/screenpipe-app-tauri/components/standalone-chat.tsx1828 // chat with an agentic loop (≥2 assistant messages with citations betweenCOMMENT
MEDIUM…ents/chat/standalone/hooks/use-pi-foreground-events.ts1377 // 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 Wrapping21 hits · 21 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
LOWpackages/ai-gateway/modal/screenpipe_qwen35.py79 except Exception:CODE
Self-Referential Comments5 hits · 15 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-cli.yml808 # Create a symlink so the linker can find it.COMMENT
MEDIUM.github/workflows/release-app.yml537 # Create a symlink so the linker finds it, and set OPENBLAS_PATH with lib/ subdir.COMMENT
MEDIUM.github/scripts/install_dependencies.sh17# 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.rs1615 r#"{"error":"unauthorized: API access requires authentication. Pass `AuthorizatiCODE
HIGH…pe-app-tauri/components/rewind/ai-presets-selector.tsx858 placeholder="your-api-key"CODE
Cross-Language Confusion (JS/TS)2 hits · 10 pts
SeverityFileLineSnippetContext
HIGHapps/screenpipe-app-tauri/e2e/helpers/spotlight.ts26 print(path)CODE
HIGHapps/screenpipe-app-tauri/e2e/helpers/spotlight.ts43 print("_MDSetExclusion removal failed with status \\(status)")CODE
Example Usage Blocks4 hits · 6 pts
SeverityFileLineSnippetContext
LOWscripts/capture-wedge-repro.sh22# Usage:COMMENT
LOWscripts/regenerate-locks.sh15# Usage:COMMENT
LOWpackages/ai-gateway/test-vertex-local.sh4# Usage:COMMENT
LOWpackages/ai-gateway/scripts/deploy.sh16# Usage:COMMENT
Deep Nesting9 hits · 6 pts
SeverityFileLineSnippetContext
LOWscripts/enrich-openapi.py469CODE
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.yml1421 # 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 Imports5 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
LOWpackages/ai-gateway/modal/screenpipe_qwen35.py7CODE
TODO Padding2 hits · 3 pts
SeverityFileLineSnippetContext
LOWpackages/ai-gateway/src/handlers/voice-ws.ts1// TODO: implementCOMMENT
LOWapps/screenpipe-app-tauri/src-tauri/src/tray.rs995 // TODO: implement safely once we can reliably identify our NSStatusItem.COMMENT
Overly Generic Function Names2 hits · 2 pts
SeverityFileLineSnippetContext
LOWinfra/release-artifact-uploader/src/index.js110export async function handleRequest(request, env) {CODE
LOWpackages/ai-gateway/src/index.ts325export async function handleRequest(request: Request, env: Env, ctx: ExecutionContext): Promise<Response> {CODE
Modern Structural Boilerplate1 hit · 1 pts
SeverityFileLineSnippetContext
LOWscripts/memory-leak/leak_hunt.py51 def set_scenario(self, name: str) -> None:CODE