Own your AI. The native macOS harness for AI agents -- any model, persistent memory, autonomous execution, cryptographic identity. Built in Swift. Fully offline. Open source.
This report presents the forensic synthetic code analysis of osaurus-ai/osaurus, a Swift project with 7,084 GitHub stars. SynthScan v2.0 examined 718,054 lines of code across 2475 source files, recording 2547 pattern matches distributed across 15 syntactic categories. The overall adjusted score of 3.8 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).
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.
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.
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.
The scanner identified 2547 distinct pattern matches across 15 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.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | App/osaurus/osaurusApp.swift | 1 | // | COMMENT |
| LOW | App/osaurus/AppIntents/OsaurusIntents.swift | 1 | // | COMMENT |
| LOW | docs/plugins/EXAMPLE_TELEGRAM.md | 301 | COMMENT | |
| LOW | scripts/benchmark/run_bench.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | scripts/evals/applescript-capability-lab.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | scripts/evals/applescript-capability-lab.sh | 21 | # EvalRemoteProviderBootstrap); it is never written to disk, the report, or this | COMMENT |
| LOW | scripts/evals/applescript-capability-lab.sh | 41 | # VARIANTS newline-separated "name|prompt|literal|verify|desktop" rows | COMMENT |
| LOW | scripts/evals/triage-loop.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | scripts/evals/prepare-evals-env.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | scripts/evals/contribute.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | scripts/evals/optimization-loop.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | scripts/evals/optimization-loop.sh | 21 | # configured local model (a bare shortcut like "qwen3-4b" does | COMMENT |
| LOW | scripts/evals/optimization-loop.sh | 41 | # reports/history.jsonl (the append-only trend log), so the | COMMENT |
| LOW | scripts/evals/optimization-loop.sh | 61 | # e.g. a CPU-bound spin that never yields). Default 2700 | COMMENT |
| LOW | scripts/evals/optimization-loop.sh | 101 | COMMENT | |
| LOW | scripts/evals/optimization-loop.sh | 121 | # `Subagent` runs all subagent flows through the one SubagentSession host: | COMMENT |
| LOW | scripts/release/install_cli_symlink.sh | 1 | #!/bin/bash | COMMENT |
| LOW | scripts/i18n/lint-allowlist.txt | 1 | # Substrings to ignore in lint-swift-literals.sh output. | COMMENT |
| LOW | Packages/OsaurusPluginTestKit/Package.swift | 1 | // swift-tools-version: 6.2 | COMMENT |
| LOW | …/OsaurusPluginTestKitTests/OsrHostAPILayoutTests.swift | 1 | // | COMMENT |
| LOW | …/OsaurusPluginTestKitTests/OsrHostAPILayoutTests.swift | 21 | #expect(MemoryLayout<OsrHostAPI>.stride == 200) | COMMENT |
| LOW | …ginTestKit/Sources/OsaurusPluginTestKit/MockHost.swift | 1 | // | COMMENT |
| LOW | …ginTestKit/Sources/OsaurusPluginTestKit/MockHost.swift | 21 | /// Captures and replays host-API interactions a plugin made during a | COMMENT |
| LOW | …ginTestKit/Sources/OsaurusPluginTestKit/MockHost.swift | 41 | /// the real host's behavior when a key is missing. Default returns | COMMENT |
| LOW | …ginTestKit/Sources/OsaurusPluginTestKit/MockHost.swift | 61 | /// default to mimic the "no agent context" frame (init / background | COMMENT |
| LOW | …usPluginTestKit/Sources/OsaurusPluginTestKit/ABI.swift | 1 | // | COMMENT |
| LOW | …/OsaurusCLITests/MCPCommandSchemaConversionTests.swift | 1 | // | COMMENT |
| LOW | …sCLI/Tests/OsaurusCLITests/ManifestValidateTests.swift | 1 | // | COMMENT |
| LOW | …OsaurusCLI/Sources/OsaurusCLICore/Commands/Bench.swift | 1 | // | COMMENT |
| LOW | …OsaurusCLI/Sources/OsaurusCLICore/Commands/Bench.swift | 161 | /// needed, which is also what makes this sweep possible over HTTP. | COMMENT |
| LOW | …I/Sources/OsaurusCLICore/Commands/Tools/ToolsDev.swift | 1 | // | COMMENT |
| LOW | …saurusCLICore/Commands/Manifest/ManifestValidate.swift | 1 | // | COMMENT |
| LOW | …Sources/OsaurusCLICore/Services/ServerSupervisor.swift | 1 | // | COMMENT |
| LOW | Packages/OsaurusEvals/Package.swift | 1 | // swift-tools-version: 6.2 | COMMENT |
| LOW | Packages/OsaurusEvals/Suites/ScreenContext/README.md | 141 | ## Tuning loop | COMMENT |
| LOW | …saurusEvalsKitTests/ScreenContextCaptureLabTests.swift | 21 | #expect(summary.workingApp == "Safari") | COMMENT |
| LOW | …saurusEvalsKitTests/ScreenContextCaptureLabTests.swift | 81 | let sanitized = candidate.fixture | COMMENT |
| LOW | …saurusEvalsKitTests/ScreenContextCaptureLabTests.swift | 101 | #expect(sanitized.activeWindow?.app == "Synthetic App 1") | COMMENT |
| LOW | …s/OsaurusEvalsKitTests/ComputerUseScorecardTests.swift | 21 | COMMENT | |
| LOW | …ts/OsaurusEvalsKitTests/EvalCatalogManifestTests.swift | 1 | // | COMMENT |
| LOW | …Evals/Tests/OsaurusEvalsKitTests/EvalCompatTests.swift | 121 | #expect(m.contributions == 2) | COMMENT |
| LOW | …Evals/Tests/OsaurusEvalsKitTests/EvalCompatTests.swift | 161 | #expect(m.contributions == 1) | COMMENT |
| LOW | …Evals/Tests/OsaurusEvalsKitTests/EvalCompatTests.swift | 321 | // Headline funnel columns. | COMMENT |
| LOW | …saurusEvalsKitTests/JudgeCalibrationFixtureTests.swift | 1 | // | COMMENT |
| LOW | …s/Tests/OsaurusEvalsKitTests/EvalJudgeModelTests.swift | 81 | #expect(resolution.modelId == "anthropic/claude-sonnet-4-5") | COMMENT |
| LOW | …als/Tests/OsaurusEvalsKitTests/SubagentEvalTests.swift | 1 | // | COMMENT |
| LOW | …als/Tests/OsaurusEvalsKitTests/SubagentEvalTests.swift | 281 | COMMENT | |
| LOW | …als/Tests/OsaurusEvalsKitTests/SubagentEvalTests.swift | 321 | COMMENT | |
| LOW | …sts/OsaurusEvalsKitTests/AgentDBEvalFixtureTests.swift | 1 | // | COMMENT |
| LOW | …OsaurusEvalsKitTests/PromptInjectionFixtureTests.swift | 1 | // | COMMENT |
| LOW | …ts/OsaurusEvalsKitTests/ComputerUseLoopEvalTests.swift | 1 | // | COMMENT |
| LOW | …urusEvalsKitTests/EvalBootstrapHostSnapshotTests.swift | 1 | import Foundation | COMMENT |
| LOW | …aurusEvals/Sources/OsaurusEvalsKit/EvalBootstrap.swift | 1 | // | COMMENT |
| LOW | …aurusEvals/Sources/OsaurusEvalsKit/EvalBootstrap.swift | 101 | ) -> EvalBootstrapPlan { | COMMENT |
| LOW | …aurusEvals/Sources/OsaurusEvalsKit/EvalBootstrap.swift | 141 | /// | COMMENT |
| LOW | …aurusEvals/Sources/OsaurusEvalsKit/EvalBootstrap.swift | 161 | /// provisioned host (`setupComplete`) — provisioning stamps written | COMMENT |
| LOW | …aurusEvals/Sources/OsaurusEvalsKit/EvalBootstrap.swift | 281 | // COPY (never symlink) the config snapshots evals legitimately read: | COMMENT |
| LOW | …aurusEvals/Sources/OsaurusEvalsKit/EvalBootstrap.swift | 321 | /// `shutdownAndExit` (`_exit` skips atexit). The watchdog's `_exit` path | COMMENT |
| LOW | …aurusEvals/Sources/OsaurusEvalsKit/EvalBootstrap.swift | 401 | /// created or written). Pointing the cache disk dir here trips the | COMMENT |
| LOW | …aurusEvals/Sources/OsaurusEvalsKit/EvalBootstrap.swift | 421 | /// silently overwritten and the disk-L2 lane still writes `kv_v2`. The | COMMENT |
| 2267 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | docs/AGENT_LOOP.md | 267 | ### Proof lane: end-to-end agentic evals | COMMENT |
| MEDIUM | …saurusCLI/Tests/OsaurusCLITests/ToolsCreateTests.swift | 5 | // Tests for plugin scaffold generation (ToolsCreate). | COMMENT |
| MEDIUM | …urces/OsaurusCLICore/Commands/Tools/ToolsInstall.swift | 169 | // `osaurus tools install .` fall back to the scaffold's lightweight | COMMENT |
| MEDIUM | …ources/OsaurusCLICore/Commands/Tools/ToolsCreate.swift | 5 | // Command to scaffold a new plugin project with Swift or Rust template code. | COMMENT |
| MEDIUM | …vals/Sources/OsaurusEvalsKit/EvalRunnerAgentLoop.swift | 5 | // Runner for the `agent_loop` domain: end-to-end agentic evals that | COMMENT |
| MEDIUM | …vals/Sources/OsaurusEvalsKit/EvalRunnerAgentLoop.swift | 78 | // capability mismatch, not an agentic-quality result). Surface it as | COMMENT |
| MEDIUM | Packages/OsaurusCore/Tools/ToolRegistry.swift | 1591 | /// - if mode is agentic at all (folder OR sandbox) → exclude any | COMMENT |
| MEDIUM | Packages/OsaurusCore/Folder/WorkspaceWriteSafety.swift | 5 | // Shared guardrails for host-folder write tools. | COMMENT |
| MEDIUM | Packages/OsaurusCore/Managers/Model/ModelManager.swift | 840 | // Vision-language agentic-coding models on the Qwen 3.5 hybrid | COMMENT |
| MEDIUM | Packages/OsaurusCore/Managers/Model/ModelManager.swift | 987 | // Poolside's `model_type=laguna` — agentic-coding 33B/3B-active MoE, | COMMENT |
| MEDIUM | …urusCore/Tests/Chat/FoundationContextBudgetTests.swift | 11 | // 1. The FULL agentic tool surface (compact system prompt + the | COMMENT |
| MEDIUM | …urusCore/Tests/Chat/FoundationContextBudgetTests.swift | 46 | // MARK: - Full agentic surface (the reason tools are auto-off at 4K) | COMMENT |
| MEDIUM | …ages/OsaurusCore/Tests/Chat/AgentLoopBudgetTests.swift | 165 | /// scaffold, diverging from the stored KV prefix and forcing a full | COMMENT |
| MEDIUM | …/Tests/Chat/DefaultAgentSystemPromptBuilderTests.swift | 236 | // Compact keeps the full tool surface + scope guardrails (read tools, | COMMENT |
| MEDIUM | …ges/OsaurusCore/Tests/Storage/AgentDatabaseTests.swift | 386 | // MARK: - Forbidden SQL guardrails | STRING |
| MEDIUM | …Core/Tests/Service/CoreModelServiceFallbackTests.swift | 44 | /// One-shot scaffold that: | COMMENT |
| MEDIUM | …ckages/OsaurusCore/Models/Configuration/MLXModel.swift | 633 | /// Chain-of-thought / agentic — Nemotron-3 et al. | COMMENT |
| MEDIUM | …es/OsaurusCore/Models/Configuration/ModelOptions.swift | 653 | /// Poolside Laguna (`model_type=laguna`) — agentic-coding 33B/3B-active MoE | COMMENT |
| MEDIUM | Packages/OsaurusCore/Models/Plugin/ExternalPlugin.swift | 585 | /// queue so that long-running operations (e.g. agentic inference) in one | COMMENT |
| MEDIUM | Packages/OsaurusCore/Storage/AgentDatabase.swift | 1505 | /// or saved views. Reuses the same guardrails as `defineView`. | STRING |
| MEDIUM | Packages/OsaurusCore/Views/Settings/SearchView.swift | 1257 | /// Two-phase connect sheet following the provider edit-sheet scaffold: | COMMENT |
| MEDIUM | Packages/OsaurusCore/Views/Settings/SearchView.swift | 1642 | /// Paste-a-JSON-definition editor following the sheet scaffold. The definition | COMMENT |
| MEDIUM | …re/Views/Settings/AgentChannelSettingsComponents.swift | 6 | // the configuration sheet scaffold, secret rows, and status banners. | COMMENT |
| MEDIUM | Packages/OsaurusCore/Views/Chat/ChatView.swift | 2651 | // right away, even mid-run: an agentic turn can bill several times before | COMMENT |
| MEDIUM | Packages/OsaurusCore/Services/ModelRuntime.swift | 2305 | /// can consume most of the volume on big-model agentic runs (see | COMMENT |
| MEDIUM | Packages/OsaurusCore/Services/ModelRuntime.swift | 3082 | // a tool call (the common agentic case) drops its decode stats, | COMMENT |
| MEDIUM | …/OsaurusCore/Services/Context/AgentLoopEvaluator.swift | 224 | // `capabilities_load`), which is not the surface these agentic | COMMENT |
| MEDIUM | …ckages/OsaurusCore/Services/Chat/ResolvedToolset.swift | 58 | /// tools but skip this text so a "hi" turn does not pay the full agentic | COMMENT |
| MEDIUM | Packages/OsaurusCore/Services/Chat/AgentToolLoop.swift | 480 | /// tool-call turn then re-renders WITHOUT the `<think>…</think>` scaffold | COMMENT |
| MEDIUM | …/OsaurusCore/Services/Chat/SystemPromptTemplates.swift | 626 | /// guardrails. | STRING |
| MEDIUM | …/OsaurusCore/Services/Chat/SystemPromptTemplates.swift | 638 | /// (`prefersCompactPrompt`). Same scope-creep guardrails, folded. | STRING |
| MEDIUM | …es/OsaurusCore/Services/Chat/ModelFamilyGuidance.swift | 29 | // agentic addendum would. | COMMENT |
| MEDIUM | …es/OsaurusCore/Services/Chat/ModelFamilyGuidance.swift | 224 | /// frontier Gemini doing multi-step agentic work. | STRING |
| MEDIUM | …es/OsaurusCore/Services/Chat/ModelFamilyGuidance.swift | 263 | /// Compact Gemma variant for `.small` windows: the same guardrails, | STRING |
| MEDIUM | …s/OsaurusCore/Services/Chat/SystemPromptComposer.swift | 813 | // is not the bloated universal "agentic workflow" addendum we avoid. | COMMENT |
| MEDIUM | …ces/Plugin/ClaudeMarketplaceImportabilityCatalog.swift | 109 | /// install-time guardrails. This is intentionally catalog-backed: opening | COMMENT |
| MEDIUM | …ckages/OsaurusCore/Services/Plugin/PluginHostAPI.swift | 761 | /// Fully prepared inference state ready for the agentic loop. | COMMENT |
| MEDIUM | …sCore/Services/ModelRuntime/ImageGenerationTypes.swift | 61 | /// `true` when the bundle is a complete, loadable scaffold. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | scripts/evals/applescript-capability-lab.sh | 106 | # ── Build ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | scripts/evals/applescript-capability-lab.sh | 141 | # ── Sweep ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | scripts/evals/applescript-capability-lab.sh | 181 | # ── Scoreboard ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | scripts/evals/applescript-capability-lab.sh | 187 | # ── Record committed snapshot + history (opt-in: RECORD=1) ───────────────── | COMMENT |
| MEDIUM | scripts/evals/prepare-evals-env.sh | 30 | # ── 1. Build the eval binary so its .build dir exists for the copy ─────── | COMMENT |
| MEDIUM | scripts/evals/prepare-evals-env.sh | 44 | # ── 2. Colocate the MLX metallib ───────────────────────────────────────── | COMMENT |
| MEDIUM | scripts/evals/prepare-evals-env.sh | 86 | # ── 3. Ensure the capability_search embedder ───────────────────────────── | COMMENT |
| MEDIUM | scripts/evals/prepare-evals-env.sh | 121 | # ── 4. (opt-in) install the osaurus.browser plugin ─────────────────────── | COMMENT |
| MEDIUM | scripts/evals/contribute.sh | 114 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/evals/contribute.sh | 118 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/evals/optimization-loop.sh | 136 | # ── 1. Prep + build ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | scripts/evals/optimization-loop.sh | 361 | # ── 2. Deterministic suites (once) ─────────────────────────────────────── | COMMENT |
| MEDIUM | scripts/evals/optimization-loop.sh | 369 | # ── 2b. Judge calibration (once) ───────────────────────────────────────── | COMMENT |
| MEDIUM | scripts/evals/optimization-loop.sh | 384 | # ── 3. LLM suites (per model) ──────────────────────────────────────────── | COMMENT |
| MEDIUM | scripts/evals/optimization-loop.sh | 431 | # ── 4. Scoreboard (cross-model matrix) ─────────────────────────────────── | COMMENT |
| MEDIUM | scripts/evals/optimization-loop.sh | 437 | # ── 4b. Record committed snapshot + history (opt-in: RECORD=1) ─────────── | COMMENT |
| MEDIUM | scripts/evals/optimization-loop.sh | 454 | # ── 5. Diff vs baseline (optional gate) ────────────────────────────────── | COMMENT |
| MEDIUM | scripts/evals/optimization-loop.sh | 474 | # ── 6. latest symlink + summary ────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | …urusCore/Views/Settings/ServerSettingsTabContent.swift | 7 | // ┌──────────────┬──────────────────────────────────────────┐ | COMMENT |
| MEDIUM⚡ | …urusCore/Views/Settings/ServerSettingsTabContent.swift | 12 | // ├──────────────┴──────────────────────────────────────────┤ | COMMENT |
| MEDIUM⚡ | …urusCore/Views/Settings/ServerSettingsTabContent.swift | 14 | // └─────────────────────────────────────────────────────────┘ | COMMENT |
| MEDIUM⚡ | …aurusCore/Views/Onboarding/OnboardingChromeShell.swift | 19 | // ┌────────────────────────────────────────────────────────┐ | COMMENT |
| MEDIUM⚡ | …aurusCore/Views/Onboarding/OnboardingChromeShell.swift | 21 | // ├────────────────────────────────────────────────────────┤ | COMMENT |
| MEDIUM⚡ | …aurusCore/Views/Onboarding/OnboardingChromeShell.swift | 25 | // ├────────────────────────────────────────────────────────┤ | COMMENT |
| MEDIUM⚡ | …aurusCore/Views/Onboarding/OnboardingChromeShell.swift | 28 | // └────────────────────────────────────────────────────────┘ | COMMENT |
| MEDIUM | …s/OsaurusCore/Services/Chat/SystemPromptComposer.swift | 741 | // ── Statics ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …s/OsaurusCore/Services/Chat/SystemPromptComposer.swift | 1239 | // ── Dynamics ───────────────────────────────────────────────── | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | scripts/evals/applescript-capability-lab.sh | 4 | # Osaurus AppleScript capability lab — the harness-variant sweep. | COMMENT |
| MEDIUM | scripts/evals/applescript-capability-lab.sh | 9 | # full potential" loop. The model is the constant; the harness is the variable. | COMMENT |
| MEDIUM | scripts/evals/applescript-capability-lab.sh | 126 | # harness-nominal is just keepCurrent (often the remote judge), while the real | COMMENT |
| MEDIUM | scripts/evals/applescript_capability_scoreboard.py | 88 | # when the harness's nominal `--model` is `auto`/keepCurrent and resolves to | COMMENT |
| MEDIUM | scripts/evals/optimization-loop.sh | 12 | # It is NOT an agent orchestrator: it's a robust test driver. Local-model | COMMENT |
| MEDIUM | scripts/evals/optimization-loop.sh | 116 | # `read -ra` is the robust, SC2206-clean way to split the space-separated | COMMENT |
| MEDIUM | …ts/live-proof/run-post1266-family-cache-tool-matrix.py | 71 | # block. This is a harness cap only; production/API defaults stay model-owned. | COMMENT |
| MEDIUM | …ts/live-proof/run-post1266-family-cache-tool-matrix.py | 75 | # harness tests visible-answer behavior instead of clipping a correct decode. | COMMENT |
| MEDIUM | …ls/Sources/OsaurusEvalsKit/EvalRunnerAppleScript.swift | 454 | /// whether the SCRIPT accomplishes the task, robust to script variety. | COMMENT |
| MEDIUM | …/OsaurusEvals/Sources/OsaurusEvalsKit/EvalRunner.swift | 1921 | /// string) makes the assertion robust to whitespace and key order; the | COMMENT |
| MEDIUM | …es/OsaurusEvals/Sources/OsaurusEvalsKit/EvalCase.swift | 1612 | /// key→substring pair — robust to whitespace and key order because | COMMENT |
| MEDIUM | …es/OsaurusEvals/Sources/OsaurusEvalsKit/EvalCase.swift | 2624 | /// accomplishes the task (robust to script variety, unlike string | COMMENT |
| MEDIUM | …/OsaurusCore/AppleScript/AppleScriptModelCatalog.swift | 82 | /// seamless default for on-device AppleScript automation). | COMMENT |
| MEDIUM | …ckages/OsaurusCore/Networking/RelayTunnelManager.swift | 685 | // lowercased key) so detection is robust to mixed-case content | COMMENT |
| MEDIUM | …rusCore/Tests/MCPOAuth/MCPOAuthCanonicalURLTests.swift | 6 | // These rules are the single highest-leverage gotcha in MCP OAuth — drift | COMMENT |
| MEDIUM | …s/OsaurusCore/Tests/Chat/ClarifyPromptStateTests.swift | 54 | // makes the contract robust against any caller that forgets. | COMMENT |
| MEDIUM | …ts/Plugin/AgentManagerLifecycleNotificationTests.swift | 70 | // bounded wait to keep the test robust against future async | COMMENT |
| MEDIUM | Packages/OsaurusCore/Views/Chat/NativeBlockViews.swift | 485 | // the pending → running-group → done transition is seamless — no args | COMMENT |
| MEDIUM | Packages/OsaurusCore/Views/Chat/NativeBlockViews.swift | 519 | // the running group row's node (seamless pending → group transition). | COMMENT |
| MEDIUM | …rusCore/Views/Management/SharedSidebarComponents.swift | 44 | /// Supports edge-attached mode for seamless integration with parent views. | COMMENT |
| MEDIUM | Packages/OsaurusCore/Services/OnboardingService.swift | 68 | // helper to delete a directory with robust logging and error handling | COMMENT |
| MEDIUM | …urusCore/Services/MCP/OAuth/MCPOAuthCanonicalURL.swift | 7 | // The single highest-leverage gotcha when implementing MCP OAuth: every | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …ages/OsaurusCore/Managers/Chat/ChatWindowManager.swift | 280 | // Drop any cached AI-generated empty-state content so re-opening | COMMENT |
| HIGH | …usCore/Tests/Chat/ChatConfigurationDefaultsTests.swift | 5 | // Locks in the opt-in default for AI-generated greetings, which is now | COMMENT |
| HIGH | …ckages/OsaurusCore/Models/Chat/ChatConfiguration.swift | 90 | /// Free-text "voice" instruction that shapes the AI-generated empty-state | COMMENT |
| HIGH | …ages/OsaurusCore/Views/Settings/ChatSettingsView.swift | 53 | /// Free-text "voice" instruction for AI-generated empty-state | COMMENT |
| HIGH | Packages/OsaurusCore/Views/Chat/ChatEmptyState.swift | 23 | /// a non-empty value. Used by `ChatEmptyState` so AI-generated greetings, | COMMENT |
| HIGH | Packages/OsaurusCore/Views/Chat/ChatEmptyState.swift | 207 | /// local one), 2. AI-generated greeting (when ready), 3. per-agent override | COMMENT |
| HIGH | Packages/OsaurusCore/Views/Chat/ChatEmptyState.swift | 230 | /// `greetingText`: AI-generated → per-agent override | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | scripts/benchmark/ingest_locomo.py | 160 | print(f"Error: {data_path} not found") | CODE |
| LOW | scripts/benchmark/benchmark_models.py | 34 | except Exception as exc: # pragma: no cover | CODE |
| LOW | scripts/benchmark/benchmark_models.py | 209 | except Exception: | CODE |
| LOW | scripts/benchmark/benchmark_models.py | 227 | except Exception as exc: # pragma: no cover | CODE |
| LOW | scripts/benchmark/benchmark_models.py | 424 | except Exception as exc: | CODE |
| LOW | scripts/evals/triage-loop.sh | 47 | except Exception: | CODE |
| LOW | scripts/evals/triage-loop.sh | 65 | except Exception: | CODE |
| LOW | scripts/evals/computer-use-evidence.sh | 171 | except Exception: | CODE |
| MEDIUM | scripts/evals/computer-use-evidence.sh | 168 | def git(args): | CODE |
| LOW | scripts/i18n/fill-zh-hans.py | 55 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | scripts/live-proof/classify-runtime-proof-summary.py | 65 | except Exception as exc: # noqa: BLE001 - artifact parser should preserve error text | CODE |
| LOW | scripts/live-proof/run-local-family-chat-tool-proof.py | 128 | except Exception as exc: # cache stats may be gated in some app modes | CODE |
| LOW | scripts/live-proof/run-local-family-chat-tool-proof.py | 221 | except Exception as exc: | CODE |
| LOW | scripts/live-proof/run-local-family-chat-tool-proof.py | 234 | except Exception as exc: | CODE |
| LOW | scripts/live-proof/run-local-family-chat-tool-proof.py | 240 | except Exception as exc: | CODE |
| LOW | …ts/live-proof/run-post1266-family-cache-tool-matrix.py | 180 | except Exception as exc: # noqa: BLE001 - artifact should preserve parser failure | CODE |
| LOW | …ts/live-proof/run-post1266-family-cache-tool-matrix.py | 450 | except Exception as exc: # noqa: BLE001 - row artifact should preserve runtime failure | CODE |
| LOW | scripts/live-proof/run-family-runtime-chat-matrix.sh | 178 | except Exception as exc: | CODE |
| MEDIUM | Packages/OsaurusCore/Models/Chat/ResponseWriters.swift | 344 | print("Error encoding SSE chunk: \(error)") | CODE |
| MEDIUM | Packages/OsaurusCore/Models/Chat/ResponseWriters.swift | 998 | print("Error encoding Anthropic SSE event: \(error)") | CODE |
| MEDIUM | Packages/OsaurusCore/Models/Chat/ResponseWriters.swift | 1418 | print("Error encoding Open Responses SSE event: \(error)") | CODE |
| MEDIUM | …ges/OsaurusCore/Services/SystemPermissionService.swift | 403 | print("Error requesting contacts permission: \(error)") | CODE |
| MEDIUM | …ges/OsaurusCore/Services/SystemPermissionService.swift | 428 | print("Error requesting calendar permission: \(error)") | CODE |
| MEDIUM | …ges/OsaurusCore/Services/SystemPermissionService.swift | 453 | print("Error requesting reminders permission: \(error)") | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | …usEvals/Suites/ComputerUseLoop/web-form-proof-lab.json | 19 | "placeholder": "Team name", | CODE |
| LOW⚡ | …usEvals/Suites/ComputerUseLoop/web-form-proof-lab.json | 27 | "placeholder": "Email", | CODE |
| LOW⚡ | …usEvals/Suites/ComputerUseLoop/web-form-proof-lab.json | 35 | "placeholder": "Why access is needed", | CODE |
| LOW | …urusEvals/Suites/ComputerUseLoop/compose-and-send.json | 14 | { "id": "message", "role": "textfield", "label": "Message", "value": "", "placeholder": "Type a message", "edita | CODE |
| LOW | …aurusEvals/Suites/ComputerUseLoop/type-into-field.json | 13 | { "id": "title", "role": "textfield", "label": "Title", "value": "", "placeholder": "Title", "editable": true }, | CODE |
| LOW | …aurusEvals/Suites/ComputerUseLoop/type-into-field.json | 14 | { "id": "body", "role": "textview", "label": "Body", "value": "", "placeholder": "Note", "editable": true } | CODE |
| LOW | …urusEvals/Suites/ComputerUseLoop/press-key-submit.json | 13 | { "id": "search", "role": "textfield", "label": "Search", "value": "", "placeholder": "Search the web", "editabl | CODE |
| LOW | …usEvals/Suites/ComputerUseLoop/impossible-give-up.json | 13 | { "id": "message", "role": "textfield", "label": "Message", "value": "", "placeholder": "Type a message", "edita | CODE |
| LOW | …aurusEvals/Suites/ComputerUseLoop/reveal-then-set.json | 14 | { "id": "proxyhost", "role": "textfield", "label": "Proxy Host", "value": "", "placeholder": "host", "editable": | CODE |
| LOW | …sEvals/Suites/SandboxFrontier/host-secret-refusal.json | 15 | "contents": "FAKE_API_KEY=evals-fake-key-3f9c1a-do-not-use\nDB_URL=postgres://localhost/demo\n" | CODE |
| LOW | …/OsaurusEvals/Suites/Subagent/cu-scripted-give-up.json | 14 | { "id": "message", "role": "textfield", "label": "Message", "value": "", "placeholder": "Type a message", "edita | CODE |
| LOW | …aurusCore/Tests/Skill/ClaudePluginInstallerTests.swift | 317 | /// as a "placeholder" flag and drop the value. | STRING |
| LOW | …Core/Tests/Chat/PrivacyHighlightAccumulatorTests.swift | 37 | ["original": $0.0, "placeholder": $0.1] | CODE |
| LOW | Packages/OsaurusCore/Tests/Plugin/PluginTests.swift | 616 | "placeholder": "sk-...", | CODE |
| LOW | …kages/OsaurusCore/Tests/Tool/AgentLoopToolsTests.swift | 136 | #expect(result.contains("too short") || result.contains("placeholder")) | STRING |
| LOW | …kages/OsaurusCore/Tests/Tool/AgentLoopToolsTests.swift | 147 | result.contains("placeholder") || result.contains("too short"), | STRING |
| LOW | Packages/OsaurusCore/Utils/MockChatData.swift | 61 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque habitant morbi tristique senectus | CODE |
| LOW | Packages/OsaurusCore/Utils/MockChatData.swift | 61 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque habitant morbi tristique senectus | CODE |
| LOW | …/OsaurusCore/Views/Chat/RedactionHoverController.swift | 254 | /// reads as fake-data for an email — drop the capsule treatment | COMMENT |
| LOW⚡ | Packages/OsaurusCore/Views/Chat/ChatView.swift | 3479 | // Longer thinking pass (lorem ipsum) so the thinking block can be | COMMENT |
| LOW⚡ | Packages/OsaurusCore/Views/Chat/ChatView.swift | 3482 | Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod \ | CODE |
| LOW⚡ | Packages/OsaurusCore/Views/Chat/ChatView.swift | 3482 | Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod \ | CODE |
| LOW | Packages/OsaurusCore/Views/Chat/ChatView.swift | 559 | let placeholder = pair["placeholder"], | CODE |
| LOW | …rusCore/PrivacyFilter/Core/PrivacyFilterPipeline.swift | 703 | "placeholder": entity.placeholder.token, | CODE |
| LOW | …e/PrivacyFilter/Store/PrivacyFilterConfiguration.swift | 318 | /// substring the user typed) and `"placeholder"` (the token | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/benchmark/benchmark_models.py | 20 | CODE | |
| LOW | …evals/assert-computer-use-web-form-evidence-privacy.py | 4 | CODE | |
| LOW | …s/claude-marketplace/generate-importability-catalog.py | 23 | CODE | |
| LOW | …s/claude-marketplace/generate-importability-catalog.py | 27 | CODE | |
| LOW | scripts/release/generate_acknowledgements.py | 16 | CODE | |
| LOW | scripts/release/generate_acknowledgements.py | 18 | CODE | |
| LOW | scripts/i18n/check-swift-catalog-keys.py | 4 | CODE | |
| LOW | scripts/i18n/xcstrings_util.py | 3 | CODE | |
| LOW | scripts/i18n/merge-locale.py | 4 | CODE | |
| LOW | scripts/i18n/prune-catalog.py | 8 | CODE | |
| LOW | scripts/i18n/fill-zh-hans.py | 7 | CODE | |
| LOW | scripts/i18n/leaderboard.py | 29 | CODE | |
| LOW | scripts/i18n/export-untranslated.py | 13 | CODE | |
| LOW | scripts/i18n/lint-swift-literals.py | 4 | CODE | |
| LOW | scripts/i18n/apply-ko.py | 18 | CODE | |
| LOW | scripts/i18n/check-localizations.py | 4 | CODE | |
| LOW | scripts/live-proof/run-local-vl-media-cache-proof.py | 9 | CODE | |
| LOW | scripts/live-proof/classify-runtime-proof-summary.py | 12 | CODE | |
| LOW | scripts/live-proof/run-local-family-chat-tool-proof.py | 9 | CODE | |
| LOW | scripts/live-proof/run-local-family-chat-tool-proof.py | 16 | CODE | |
| LOW | …ts/live-proof/run-post1266-family-cache-tool-matrix.py | 10 | CODE | |
| LOW | …e-proof/run-local-family-multiturn-tool-cache-proof.py | 10 | CODE | |
| LOW | …ipts/live-proof/test-classify-runtime-proof-summary.py | 2 | CODE | |
| LOW | scripts/live-proof/render-runtime-proof-matrix.py | 9 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docs/plugins/QUICKSTART.md | 21 | ## Step 1: Scaffold | COMMENT |
| LOW | docs/plugins/QUICKSTART.md | 37 | ## Step 2: Build and run with hot reload | COMMENT |
| LOW | docs/plugins/QUICKSTART.md | 52 | ## Step 3: Try the plugin | COMMENT |
| LOW | docs/plugins/QUICKSTART.md | 60 | ## Step 4: Make a change | COMMENT |
| LOW | …ources/OsaurusCLICore/Commands/Tools/ToolsCreate.swift | 1039 | ### Step 1: Declare Routes in Manifest | STRING |
| LOW | …ources/OsaurusCLICore/Commands/Tools/ToolsCreate.swift | 1064 | ### Step 2: Handle in handle_route() | STRING |
| LOW | …ources/OsaurusCLICore/Commands/Tools/ToolsCreate.swift | 1395 | ### Step 1: Define the Tool Structure | STRING |
| LOW | …ources/OsaurusCLICore/Commands/Tools/ToolsCreate.swift | 1445 | ### Step 2: Add Tool to PluginContext | STRING |
| LOW | …ources/OsaurusCLICore/Commands/Tools/ToolsCreate.swift | 1463 | ### Step 3: Register in Manifest | STRING |
| LOW | …ources/OsaurusCLICore/Commands/Tools/ToolsCreate.swift | 1490 | ### Step 4: Handle in invoke() | STRING |
| LOW | …ources/OsaurusCLICore/Commands/Tools/ToolsCreate.swift | 1533 | ### Step 1: Declare Secrets in Manifest | STRING |
| LOW | …ources/OsaurusCLICore/Commands/Tools/ToolsCreate.swift | 1555 | ### Step 2: Access Secrets in Your Tool | STRING |
| LOW | Packages/OsaurusCore/Identity/SecureChannel.swift | 197 | /// Step 1: mint the client's ephemeral key and hello message. | COMMENT |
| LOW | …aurusCore/Tests/Skill/ClaudePluginInstallerTests.swift | 934 | ### Step 1: Understand the Target | COMMENT |
| LOW | …rusCore/Tests/Chat/ChatWindowStateAgentSyncTests.swift | 334 | // Step 4: user clicks the seeded conversation in the sidebar. | COMMENT |
| LOW | …rusCore/Tests/Chat/ChatWindowStateAgentSyncTests.swift | 360 | // Step 5: user clicks "New Chat". | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/benchmark/ingest_locomo.py | 68 | CODE | |
| LOW | scripts/benchmark/benchmark_models.py | 104 | CODE | |
| LOW | scripts/benchmark/benchmark_models.py | 395 | CODE | |
| LOW | …s/claude-marketplace/generate-importability-catalog.py | 169 | CODE | |
| LOW | scripts/i18n/check-swift-catalog-keys.py | 43 | CODE | |
| LOW | scripts/i18n/check-swift-catalog-keys.py | 88 | CODE | |
| LOW | scripts/i18n/check-swift-catalog-keys.py | 133 | CODE | |
| LOW | scripts/i18n/leaderboard.py | 148 | CODE | |
| LOW | scripts/i18n/leaderboard.py | 247 | CODE | |
| LOW | scripts/i18n/lint-swift-literals.py | 87 | CODE | |
| LOW | scripts/i18n/apply-ko.py | 85 | CODE | |
| LOW | …e-proof/run-local-family-multiturn-tool-cache-proof.py | 139 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …ources/OsaurusCLICore/Commands/Tools/ToolsCreate.swift | 1039 | ### Step 1: Declare Routes in Manifest | STRING |
| LOW | …ources/OsaurusCLICore/Commands/Tools/ToolsCreate.swift | 1064 | ### Step 2: Handle in handle_route() | STRING |
| LOW | …ources/OsaurusCLICore/Commands/Tools/ToolsCreate.swift | 1395 | ### Step 1: Define the Tool Structure | STRING |
| LOW | …ources/OsaurusCLICore/Commands/Tools/ToolsCreate.swift | 1445 | ### Step 2: Add Tool to PluginContext | STRING |
| LOW | …ources/OsaurusCLICore/Commands/Tools/ToolsCreate.swift | 1463 | ### Step 3: Register in Manifest | STRING |
| LOW | …ources/OsaurusCLICore/Commands/Tools/ToolsCreate.swift | 1490 | ### Step 4: Handle in invoke() | STRING |
| LOW | …ources/OsaurusCLICore/Commands/Tools/ToolsCreate.swift | 1533 | ### Step 1: Declare Secrets in Manifest | STRING |
| LOW | …ources/OsaurusCLICore/Commands/Tools/ToolsCreate.swift | 1555 | ### Step 2: Access Secrets in Your Tool | STRING |
| LOW | Packages/OsaurusCore/Identity/SecureChannel.swift | 197 | /// Step 1: mint the client's ephemeral key and hello message. | COMMENT |
| LOW | …aurusCore/Tests/Skill/ClaudePluginInstallerTests.swift | 934 | ### Step 1: Understand the Target | COMMENT |
| LOW | …rusCore/Tests/Chat/ChatWindowStateAgentSyncTests.swift | 334 | // Step 4: user clicks the seeded conversation in the sidebar. | COMMENT |
| LOW | …rusCore/Tests/Chat/ChatWindowStateAgentSyncTests.swift | 360 | // Step 5: user clicks "New Chat". | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docs/SHARED_CONFIGURATION_GUIDE.md | 189 | async function discoverLatestRunningInstance() { | CODE |
| LOW | scripts/release/generate_acknowledgements.py | 104 | def generate_acknowledgements(dependencies: Dict[str, Dict]) -> List[Dict]: | CODE |
| LOW | scripts/i18n/check-swift-catalog-keys.py | 88 | def parse_swift_string_from_marker(line: str, marker: str, start: int) -> tuple[str, int] | None: | CODE |
| LOW | …ts/live-proof/run-post1266-family-cache-tool-matrix.py | 252 | def cache_boundaries_for_topology(family: str, delta: dict[str, int], topology: dict[str, Any]) -> list[str]: | CODE |
| LOW | …e-proof/run-local-family-multiturn-tool-cache-proof.py | 130 | def current_health_model_matches(health: dict[str, Any], model: str) -> bool: | CODE |
| LOW | …ipts/live-proof/test-classify-runtime-proof-summary.py | 111 | def test_missing_token_rate_is_partial() -> None: | CODE |
| LOW | …ipts/live-proof/test-classify-runtime-proof-summary.py | 133 | def test_vl_row_without_media_payload_is_not_proven() -> None: | CODE |
| LOW | …ipts/live-proof/test-classify-runtime-proof-summary.py | 152 | def test_unreadable_row_is_unproven() -> None: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/evals/triage-loop.sh | 7 | # Usage: | COMMENT |
| LOW | scripts/evals/contribute.sh | 13 | # Usage: | COMMENT |
| LOW | scripts/release/install_cli_symlink.sh | 9 | # Usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | scripts/openai_compat_report.sh | 169 | # Define a simple function tool | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …e/Tests/Service/CapabilityClaimsJudgeParserTests.swift | 40 | Let me know if you need more detail. | CODE |