AI Slop Code Risk Monitor

Emanuele-web04/remodex

SlopCodeMonitor badge for Emanuele-web04/remodex Adjusted legacy signal; badge bands: 25 / 50 / 75 (different from dashboard bands).

Remote Control for Codex.

3.4 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for Emanuele-web04/remodex, a Swift project with 3,348 GitHub stars. SynthScan examined 270,241 lines of code across 966 source files, recording 786 pattern matches distributed across 10 syntactic categories. The legacy adjusted pattern signal is 3.4 (Low pattern signal); it is not an authorship estimate.

Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.

3.4
Adjusted Signal
3.4
Raw Pattern Score
100%
Time Factor
2026-10-01
Last Push
3.3K
Stars
Swift
Language
270.2K
Lines of Code
966
Files
786
Pattern Hits
2026-10-31
Scan Date
0.01
HC Hit Rate

Risk Review · Payload v1

Use each vector to guide manual verification of the underlying findings.

Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.

Cognitive Ownership Risk 10.4/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 0.8/100 · LOW

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

Agent Over-Engineering Ratio 13.3/100 · LOW

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

PR Review Velocity Impact 17.4/100 · LOW

Which changes need focused human review? 786 finding(s).

What These Metrics Mean

Adjusted Signal
Legacy pattern score normalized per 1,000 scanned lines and multiplied by the repository-level time factor. It is not an estimate of AI authorship.
Raw Pattern Score
Sum of severity- and context-weighted pattern findings before applying the time factor.
Time Factor
A coarse multiplier based on repository last-push metadata. It does not identify when individual code was written.
Pattern Hits
Count of configured pattern findings. Review each location and surrounding code before acting.
HC Hit Rate
High- and critical-severity findings per scanned file. Severity is a configured detector weight, not proof of a vulnerability or authorship.
Lines / Files
Scan coverage denominators used by the legacy normalized score.

Pattern-Signal History

This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.

Severity Breakdown

Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.

CRITICAL 3HIGH 11MEDIUM 81LOW 691

Directory Score Breakdown

This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.

Pattern Findings

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

Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.

Hyper-Verbose Identifiers616 hits · 502 pts
SeverityFileLineSnippetContext
LOWphodex-bridge/test/rollout-live-mirror.test.js2692function createTemporaryRolloutHome({ threadId, originator, source, lines }) {CODE
LOWphodex-bridge/test/rollout-watch.test.js339function makeTemporarySessionsHome() {CODE
LOWphodex-bridge/test/secure-transport.test.js29function createTestBridgeSecureTransport(options) {CODE
LOWphodex-bridge/test/secure-transport.test.js1041function encodeLengthPrefixedBuffer(buffer) {CODE
LOWphodex-bridge/test/desktop-ipc-shared.test.js376function withIsolatedIpcEnvironment(t) {CODE
LOW…dex-bridge/test/bridge-desktop-ipc-integration.test.js1671function loadBridgeWithTestDoubles({CODE
LOW…dex-bridge/test/bridge-desktop-ipc-integration.test.js1726function createPlaintextSecureTransport() {CODE
LOW…dex-bridge/test/bridge-desktop-ipc-integration.test.js1742function createSecureDeviceStateDouble() {CODE
LOWphodex-bridge/test/worktree-origin.test.js9function makeCodexHomeWithWorktree({ token, repoName, checkoutRoot, worktreeName = repoName }) {CODE
LOWphodex-bridge/test/bridge.test.js155function expectedGeneratedImagePath(threadId, fileName) {CODE
LOWphodex-bridge/test/bridge.test.js2819 fs.openSync = function openSyncWithRolloutCounter(filePath, ...args) {CODE
LOWphodex-bridge/test/desktop-ipc-action-follower.test.js8375function backgroundConversationSnapshot(threadId, status, {CODE
LOWphodex-bridge/test/desktop-ipc-action-follower.test.js8456async function startInitializedIpcTestServer(t, prefix) {CODE
LOWphodex-bridge/test/secure-device-state.test.js333function readCanonicalStateFromDisk() {CODE
LOWphodex-bridge/bin/remodex.js359function sanitizeBridgeServiceStatusForOutput(status = {}) {CODE
LOWphodex-bridge/bin/remodex.js368function sanitizeDaemonConfigForOutput(config) {CODE
LOWphodex-bridge/bin/remodex.js380function sanitizePairingSessionForOutput(pairingSession) {CODE
LOWphodex-bridge/src/package-version-status.js15function createBridgePackageVersionStatusReader({CODE
LOWphodex-bridge/src/package-version-status.js29 return async function readBridgePackageVersionStatus() {CODE
LOWphodex-bridge/src/package-version-status.js70async function resolveReportedLatestVersion({CODE
LOWphodex-bridge/src/package-version-status.js94function refreshLatestVersionInBackground({CODE
LOWphodex-bridge/src/package-version-status.js137function fetchLatestPublishedVersion(registryUrl) {CODE
LOWphodex-bridge/src/workspace-checkpoints.js19async function workspaceCheckpointCapture(repoRoot, params) {CODE
LOWphodex-bridge/src/workspace-checkpoints.js83async function workspaceCheckpointRestorePreview(repoRoot, params) {CODE
LOWphodex-bridge/src/workspace-checkpoints.js110async function workspaceCheckpointRestoreApply(repoRoot, params) {CODE
LOWphodex-bridge/src/workspace-checkpoints.js148function resolveCheckpointDescriptor(params, prefix = "") {CODE
LOWphodex-bridge/src/workspace-checkpoints.js224function backupDescriptorForRestore(params) {CODE
LOWphodex-bridge/src/workspace-checkpoints.js295async function changedFilesAgainstCommit(repoRoot, commit) {CODE
LOWphodex-bridge/src/bridge-status.js14function createBridgeStatusPublisher({CODE
LOWphodex-bridge/src/bridge-status.js74function hasRelayConnectionGoneStale(CODE
LOWphodex-bridge/src/bridge-status.js87function buildHeartbeatBridgeStatus(CODE
LOWphodex-bridge/src/thread-row-enrichment.js11function forEachThreadRowInResponse(method, envelope, visit) {CODE
LOWphodex-bridge/src/thread-context-handler.js9function handleThreadContextRequest(rawMessage, sendResponse, parsedMessage = null) {CODE
LOW⚡phodex-bridge/src/desktop-ipc-live-owner.js1702 function applyFollowerModelAndReasoning(conversationId, params) {CODE
LOW⚡phodex-bridge/src/desktop-ipc-live-owner.js1708 function applyFollowerCollaborationMode(conversationId, params) {CODE
LOW⚡phodex-bridge/src/desktop-ipc-live-owner.js1714 function applyFollowerThreadSettings(conversationId, threadSettings, source = "desktop") {CODE
LOWphodex-bridge/src/desktop-ipc-live-owner.js136function createDesktopIpcLiveOwner({CODE
LOWphodex-bridge/src/desktop-ipc-live-owner.js546 function markTurnInterruptedOptimistically(threadId, params) {CODE
LOWphodex-bridge/src/desktop-ipc-live-owner.js601 function discardPendingTurnStartEntry(threadId, entry) {CODE
LOWphodex-bridge/src/desktop-ipc-live-owner.js627 function resolvePendingTurnStartResponse(responseId, message) {CODE
LOWphodex-bridge/src/desktop-ipc-live-owner.js656 function insertOptimisticPendingTurn(threadId, entry) {CODE
LOWphodex-bridge/src/desktop-ipc-live-owner.js707 function refreshOptimisticFallbackForThread(threadId) {CODE
LOWphodex-bridge/src/desktop-ipc-live-owner.js732 function removeOptimisticPendingTurn(threadId, entry) {CODE
LOWphodex-bridge/src/desktop-ipc-live-owner.js769 function claimStartedThreadForPendingLocalStart(message) {CODE
LOWphodex-bridge/src/desktop-ipc-live-owner.js836 function broadcastRemovedConversationState(threadId, { reason = "", skipArchiveMetadataBroadcast = false } = {}) {CODE
LOWphodex-bridge/src/desktop-ipc-live-owner.js873 function broadcastThreadUnarchived(threadId) {CODE
LOWphodex-bridge/src/desktop-ipc-live-owner.js881 function scheduleSidebarAnnouncement(threadId) {CODE
LOWphodex-bridge/src/desktop-ipc-live-owner.js901 function replaySidebarAnnouncementAfterMaterialization(message, threadId) {CODE
LOWphodex-bridge/src/desktop-ipc-live-owner.js937 function cancelSidebarAnnouncement(threadId) {CODE
LOWphodex-bridge/src/desktop-ipc-live-owner.js947 function queueThreadArchiveMetadataBroadcast(method, threadId, { cwd } = {}) {CODE
LOWphodex-bridge/src/desktop-ipc-live-owner.js960 function flushPendingThreadArchiveMetadataBroadcasts() {CODE
LOWphodex-bridge/src/desktop-ipc-live-owner.js982 function maybeYieldOwnedThreadForPeerArchive(envelope) {CODE
LOWphodex-bridge/src/desktop-ipc-live-owner.js1001 function upsertConversationFromThread(thread) {CODE
LOWphodex-bridge/src/desktop-ipc-live-owner.js1083 function shouldDelayInitialSnapshotForHistory(threadId) {CODE
LOWphodex-bridge/src/desktop-ipc-live-owner.js1099 function requestInitialHistoryBaselineIfDue(threadId) {CODE
LOWphodex-bridge/src/desktop-ipc-live-owner.js1127 function stopAwaitingInitialHistory(threadId) {CODE
LOWphodex-bridge/src/desktop-ipc-live-owner.js1135 function scheduleInitialHistoryRetryWakeup(threadId, delayMs) {CODE
LOWphodex-bridge/src/desktop-ipc-live-owner.js1149 function clearInitialHistoryRetryWakeup(threadId) {CODE
LOWphodex-bridge/src/desktop-ipc-live-owner.js1176 function hydrateOwnedThreadFromRead(threadId) {CODE
LOWphodex-bridge/src/desktop-ipc-live-owner.js1208 function broadcastAllOwnedSnapshots() {CODE
556 more matches not shown…
Decorative Section Separators71 hits · 213 pts
SeverityFileLineSnippetContext
MEDIUMphodex-bridge/test/secure-device-state.test.js23// ─── Relay Session Resolution ───────────────────────────────COMMENT
MEDIUMphodex-bridge/bin/remodex.js47// ─── ENTRY POINT ─────────────────────────────────────────────COMMENT
MEDIUMphodex-bridge/src/bridge.js1758 // ─── Bridge-owned auth snapshot ─────────────────────────────COMMENT
MEDIUMphodex-bridge/src/project-handler.js26// ─── ENTRY POINT ─────────────────────────────────────────────COMMENT
MEDIUMphodex-bridge/src/project-handler.js87// ─── Project Methods ─────────────────────────────────────────COMMENT
MEDIUMphodex-bridge/src/project-handler.js328// ─── Filesystem Helpers ──────────────────────────────────────COMMENT
MEDIUMphodex-bridge/src/voice-handler.js179// ─── Audio validation helpers ───────────────────────────────COMMENT
MEDIUMphodex-bridge/src/push-notification-tracker.js57 // ─── ENTRY POINT ─────────────────────────────────────────────COMMENT
MEDIUMphodex-bridge/src/account-status.js9// ─── Status composition ─────────────────────────────────────COMMENT
MEDIUMphodex-bridge/src/account-status.js90// ─── Settled snapshot helpers ───────────────────────────────COMMENT
MEDIUMphodex-bridge/src/voice-audio.js7// ─── WAV parsing ─────────────────────────────────────────────────COMMENT
MEDIUMphodex-bridge/src/voice-audio.js91// ─── M4A parsing ─────────────────────────────────────────────────COMMENT
MEDIUMphodex-bridge/src/git-handler.js177// ─── Git Status ───────────────────────────────────────────────COMMENT
MEDIUMphodex-bridge/src/git-handler.js273// ─── Git Diff ─────────────────────────────────────────────────COMMENT
MEDIUMphodex-bridge/src/git-handler.js289// ─── Git Commit ───────────────────────────────────────────────COMMENT
MEDIUMphodex-bridge/src/git-handler.js315// ─── Git Draft Generation ────────────────────────────────────COMMENT
MEDIUMphodex-bridge/src/git-handler.js422// ─── Git Push ─────────────────────────────────────────────────COMMENT
MEDIUMphodex-bridge/src/git-handler.js462// ─── Git Pull ─────────────────────────────────────────────────COMMENT
MEDIUMphodex-bridge/src/git-handler.js481// ─── Git Branches ─────────────────────────────────────────────COMMENT
MEDIUMphodex-bridge/src/git-handler.js545// ─── Git Checkout ─────────────────────────────────────────────COMMENT
MEDIUMphodex-bridge/src/git-handler.js584// ─── Git Log ──────────────────────────────────────────────────COMMENT
MEDIUMphodex-bridge/src/git-handler.js611// ─── Git Create Branch ────────────────────────────────────────COMMENT
MEDIUMphodex-bridge/src/git-handler.js978// ─── Git Stash ────────────────────────────────────────────────COMMENT
MEDIUMphodex-bridge/src/git-handler.js986// ─── Git Stash Pop ────────────────────────────────────────────COMMENT
MEDIUMphodex-bridge/src/git-handler.js997// ─── Git Reset to Remote ──────────────────────────────────────COMMENT
MEDIUMphodex-bridge/src/git-handler.js1026// ─── Git Remote URL ───────────────────────────────────────────COMMENT
MEDIUMphodex-bridge/src/git-handler.js1034// ─── Git Stacked Actions / Pull Requests ─────────────────────COMMENT
MEDIUMphodex-bridge/src/git-handler.js1877// ─── Git Branches With Status ─────────────────────────────────COMMENT
MEDIUMphodex-bridge/src/git-handler.js2793// ─── Helpers ──────────────────────────────────────────────────COMMENT
MEDIUM…dexMobile/Views/Shared/UsageStatusSummaryContent.swift69 // ─── Shared Sections ────────────────────────────────────────COMMENT
MEDIUM…dexMobile/Views/Shared/UsageStatusSummaryContent.swift136 // ─── Row Rendering ──────────────────────────────────────────COMMENT
MEDIUM…dexMobile/Views/Shared/UsageStatusSummaryContent.swift231 // ─── Formatting Helpers ─────────────────────────────────────COMMENT
MEDIUM…Mobile/Views/Turn/Messages/TurnMessageRegexCache.swift40 // ─── Shared Helpers ─────────────────────────────────────────────COMMENT
MEDIUM…odexMobile/Views/Turn/Messages/TurnMessageCaches.swift358// ─── Code Comment Directive Content Cache ───────────────────────────COMMENT
MEDIUM…odexMobile/Views/Turn/Messages/TurnMessageCaches.swift372// ─── Thinking Disclosure Content Cache ──────────────────────────────COMMENT
MEDIUM…odexMobile/Views/Turn/Messages/TurnMessageCaches.swift386// ─── Diff Block Detection Cache ─────────────────────────────────────COMMENT
MEDIUM…odexMobile/Views/Turn/Messages/TurnMessageCaches.swift406// ─── File Change Grouping Cache ─────────────────────────────────────COMMENT
MEDIUM…Mobile/Views/Turn/Messages/TurnMessageComponents.swift347// ─── Message row ────────────────────────────────────────────────────COMMENT
MEDIUMCodexMobile/CodexMobile/Views/Turn/Core/TurnView.swift74 // ─── ENTRY POINT ─────────────────────────────────────────────COMMENT
MEDIUM…le/Views/Turn/Core/TurnConversationContainerView.swift81 // ─── ENTRY POINT ─────────────────────────────────────────────COMMENT
MEDIUM…ile/CodexMobile/Views/Turn/Core/NewChatDraftView.swift771 // ─── Runtime + branch rows ───────────────────────────────────COMMENT
MEDIUM…xMobile/Views/Turn/Composer/TurnComposerHostView.swift61 // ─── ENTRY POINT ─────────────────────────────────────────────COMMENT
MEDIUM…CodexMobile/Views/Turn/Composer/TurnComposerView.swift161 // ─── ENTRY POINT ─────────────────────────────────────────────COMMENT
MEDIUM…obile/Views/Turn/Composer/TurnComposerMetaMapper.swift12 // ─── Model Mapping ────────────────────────────────────────────────COMMENT
MEDIUM…obile/Views/Turn/Composer/TurnComposerMetaMapper.swift77 // ─── Runtime pill label ──────────────────────────────────────────COMMENT
MEDIUM…obile/Views/Turn/Composer/TurnComposerMetaMapper.swift177 // ─── Reasoning Mapping ───────────────────────────────────────────COMMENT
MEDIUM…ile/CodexMobile/Views/Turn/Diff/TurnDiffRenderer.swift7// ─── Diff Classification ────────────────────────────────────────────COMMENT
MEDIUM…/CodexMobile/Views/Turn/Diff/TurnUnifiedDiffView.swift10// ─── Model ──────────────────────────────────────────────────────────COMMENT
MEDIUM…/CodexMobile/Views/Turn/Diff/TurnUnifiedDiffView.swift61// ─── Parser ─────────────────────────────────────────────────────────COMMENT
MEDIUM…/CodexMobile/Views/Turn/Diff/TurnUnifiedDiffView.swift247// ─── View ───────────────────────────────────────────────────────────COMMENT
MEDIUM…/CodexMobile/Views/Turn/Diff/TurnUnifiedDiffView.swift353// ─── Hunk section ───────────────────────────────────────────────────COMMENT
MEDIUM…/CodexMobile/Views/Turn/Diff/TurnUnifiedDiffView.swift456// ─── Row ────────────────────────────────────────────────────────────COMMENT
MEDIUM…/CodexMobile/Views/Turn/Diff/TurnUnifiedDiffView.swift513// ─── Palette ────────────────────────────────────────────────────────COMMENT
MEDIUM…Views/Turn/Timeline/TurnTimelineRenderProjection.swift9// ─── Render Item Models ───────────────────────────────────────COMMENT
MEDIUM…Views/Turn/Timeline/TurnTimelineRenderProjection.swift149// ─── Projection ────────────────────────────────────────────────COMMENT
MEDIUM…exMobile/Views/Turn/Timeline/TurnTimelineReducer.swift17 // ─── ENTRY POINT ─────────────────────────────────────────────COMMENT
MEDIUM…e/CodexMobile/Services/CodexService+AIChangeSets.swift233// ─── Ledger mutation helpers ───────────────────────────────────────COMMENT
MEDIUM…e/CodexMobile/Services/CodexService+AIChangeSets.swift378// ─── Private helpers ───────────────────────────────────────────────COMMENT
MEDIUM…odexMobile/Services/GPTVoiceTranscriptionManager.swift104 // ─── Recording lifecycle ─────────────────────────────────────COMMENT
MEDIUM…odexMobile/Services/GPTVoiceTranscriptionManager.swift260 // ─── Duration timer ─────────────────────────────────────────COMMENT
11 more matches not shown…
Cross-File Repetition11 hits · 55 pts
SeverityFileLineSnippetContext
HIGH…Mobile/CodexMobileTests/TurnTimelineReducerTests.swift0status: completed path: sources/app.swift kind: update totals: +2 -1STRING
HIGH…eTests/CodexServiceIncomingCommandExecutionTests.swift0status: completed path: sources/app.swift kind: update totals: +2 -1STRING
HIGH…ile/CodexMobileTests/TurnSessionDiffSummaryTests.swift0status: completed path: sources/app.swift kind: update totals: +2 -1STRING
HIGH…odexMobileTests/TurnFileChangeSummaryParserTests.swift0status: completed path: sources/app.swift kind: update totals: +2 -1STRING
HIGH…Mobile/CodexMobileTests/TurnTimelineReducerTests.swift0latest testflight inbox email says: remodex version 1.4, build 124 subject: "remodex - remote ai coding 1.4 (124) for ioSTRING
HIGH…eTests/CodexServiceIncomingCommandExecutionTests.swift0latest testflight inbox email says: remodex version 1.4, build 124 subject: "remodex - remote ai coding 1.4 (124) for ioSTRING
HIGH…obileTests/CodexServiceIncomingRunIndicatorTests.swift0latest testflight inbox email says: remodex version 1.4, build 124 subject: "remodex - remote ai coding 1.4 (124) for ioSTRING
HIGH…Mobile/CodexMobileTests/TurnTimelineReducerTests.swift0status: inprogress path: sources/app.swift kind: update totals: +2 -1STRING
HIGH…eTests/CodexServiceIncomingCommandExecutionTests.swift0status: inprogress path: sources/app.swift kind: update totals: +2 -1STRING
HIGH…ile/CodexMobileTests/TurnSessionDiffSummaryTests.swift0status: inprogress path: sources/app.swift kind: update totals: +2 -1STRING
HIGH…odexMobileTests/TurnFileChangeSummaryParserTests.swift0status: inprogress path: sources/app.swift kind: update totals: +2 -1STRING
Over-Commented Block52 hits · 50 pts
SeverityFileLineSnippetContext
LOWphodex-bridge/bin/phodex.js1#!/usr/bin/env nodeCOMMENT
LOWphodex-bridge/src/desktop-ipc-live-owner.js1961// steer ("Steered conversation"), so the prompt must live ONLY in params.COMMENT
LOWphodex-bridge/src/desktop-ipc-action-follower.js821 // Desktop echoes of a locally-streamed thread must not become followerCOMMENT
LOWphodex-bridge/src/desktop-ipc-action-follower.js1041 clearFollowerState();COMMENT
LOWphodex-bridge/src/thread-list-provenance.js1// FILE: thread-list-provenance.jsCOMMENT
LOW…yKit.xcframework/ios-arm64-simulator/Headers/ghostty.h1// Ghostty embedding API. The documentation for the embedding API isCOMMENT
LOW…yKit.xcframework/ios-arm64-simulator/Headers/ghostty.h21typedef SSIZE_T ssize_t;COMMENT
LOW…yKit.xcframework/ios-arm64-simulator/Headers/ghostty.h41 #ifdef GHOSTTY_BUILD_SHAREDCOMMENT
LOW…dor/GhosttyKit.xcframework/ios-arm64/Headers/ghostty.h1// Ghostty embedding API. The documentation for the embedding API isCOMMENT
LOW…dor/GhosttyKit.xcframework/ios-arm64/Headers/ghostty.h21typedef SSIZE_T ssize_t;COMMENT
LOW…dor/GhosttyKit.xcframework/ios-arm64/Headers/ghostty.h41 #ifdef GHOSTTY_BUILD_SHAREDCOMMENT
LOW…Mobile/CodexMobile/Models/String+PathDisplayName.swift1// FILE: String+PathDisplayName.swiftCOMMENT
LOW…ile/CodexMobile/Models/CodexSyntheticIdentifiers.swift1// FILE: CodexSyntheticIdentifiers.swiftCOMMENT
LOWCodexMobile/CodexMobile/Views/SidebarView.swift1// FILE: SidebarView.swiftCOMMENT
LOW…bile/CodexMobile/Views/Sidebar/SidebarHeaderView.swift1// FILE: SidebarHeaderView.swiftCOMMENT
LOW…CodexMobile/Views/Sidebar/SidebarBottomActionBar.swift1// FILE: SidebarBottomActionBar.swiftCOMMENT
LOW…Mobile/Views/Sidebar/SidebarProjectSectionHeader.swift1// FILE: SidebarProjectSectionHeader.swiftCOMMENT
LOW…bile/CodexMobile/Views/Sidebar/SidebarActionPill.swift1// FILE: SidebarActionPill.swiftCOMMENT
LOW…exMobile/Views/Sidebar/SidebarContentScopePicker.swift1// FILE: SidebarContentScopePicker.swiftCOMMENT
LOW…e/CodexMobile/Views/Sidebar/SidebarSectionHeader.swift1// FILE: SidebarSectionHeader.swiftCOMMENT
LOW…dexMobile/Views/Sidebar/SidebarToolbarIconButton.swift1// FILE: SidebarToolbarIconButton.swiftCOMMENT
LOW…dexMobile/Views/Sidebar/SidebarThreadContextMenu.swift1// FILE: SidebarThreadContextMenu.swiftCOMMENT
LOW…CodexMobile/Views/Sidebar/SidebarForegroundStyle.swift1// FILE: SidebarForegroundStyle.swiftCOMMENT
LOW…odexMobile/Views/Settings/SettingsBaseComponents.swift1// FILE: SettingsBaseComponents.swiftCOMMENT
LOW…e/CodexMobile/Views/Shared/AdaptiveGlassModifier.swift221 }COMMENT
LOWCodexMobile/CodexMobile/Views/Shared/ToolCallIcon.swift1// FILE: ToolCallIcon.swiftCOMMENT
LOW…ile/CodexMobile/Views/Shared/AppMenuPresentation.swift1// FILE: AppMenuPresentation.swiftCOMMENT
LOW…obile/CodexMobile/Views/Shared/FullScreenOverlay.swift1// FILE: FullScreenOverlay.swiftCOMMENT
LOW…obile/CodexMobile/Views/Shared/FullScreenOverlay.swift21// the keyboard stays visible on top.COMMENT
LOW…obile/CodexMobile/Views/Shared/CircularIconBadge.swift1// FILE: CircularIconBadge.swiftCOMMENT
LOW…Mobile/CodexMobile/Views/Shared/UIKitContextMenu.swift1// FILE: UIKitContextMenu.swiftCOMMENT
LOW…Mobile/CodexMobile/Views/Shared/UIKitContextMenu.swift21// itself to. SwiftUI does not expose the underlying host view of anCOMMENT
LOWCodexMobile/CodexMobile/Views/Shared/HapticButton.swift1// FILE: HapticButton.swiftCOMMENT
LOWCodexMobile/CodexMobile/Views/Shared/RemodexIcon.swift261 if explicitSize != nil {COMMENT
LOW…ws/Turn/Messages/StreamingInlineMarkupAutoCloser.swift1// FILE: StreamingInlineMarkupAutoCloser.swiftCOMMENT
LOW…Turn/Messages/StreamingAssistantMarkdownTextView.swift21 // when the user flips theme or accent mid-stream (otherwise equality would suppress it).COMMENT
LOW…ews/Turn/Messages/StreamingMarkdownBlockSplitter.swift1// FILE: StreamingMarkdownBlockSplitter.swiftCOMMENT
LOW…bile/Views/Turn/Messages/StreamingMarkdownReveal.swift21 static let positionQuantization = 4.0COMMENT
LOW…Mobile/Views/Turn/Messages/TurnMessageComponents.swift1// FILE: TurnMessageComponents.swiftCOMMENT
LOW…Views/Turn/Composer/TurnComposerRuntimeUIKitMenu.swift1// FILE: TurnComposerRuntimeUIKitMenu.swiftCOMMENT
LOW…Views/Turn/Composer/ComposerRuntimeSliderOverlay.swift1// FILE: ComposerRuntimeSliderOverlay.swiftCOMMENT
LOW…CodexMobile/Views/Turn/Composer/TurnComposerView.swift101 let onSteerQueuedDraft: (String) -> VoidCOMMENT
LOW…/CodexMobile/Views/Turn/Composer/UIKitMenuButton.swift1// FILE: UIKitMenuButton.swiftCOMMENT
LOW…/CodexMobile/Views/Turn/Composer/UIKitMenuButton.swift21// to that VC's view instead.COMMENT
LOW…n/Composer/TurnComposerCollapsibleContextCluster.swift1// FILE: TurnComposerCollapsibleContextCluster.swiftCOMMENT
LOW…CodexMobile/Views/Turn/Composer/TurnMentionChips.swift1// FILE: TurnMentionChips.swiftCOMMENT
LOW…exMobile/Views/Turn/Timeline/TurnTimelineReducer.swift1341 key: key,COMMENT
LOW…CodexMobile/Views/Turn/Git/TurnGitActionsToolbar.swift161// NSUnknownKeyException if a future iOS removes the private property, and theCOMMENT
LOW…obile/CodexMobile/Services/CodexService+Incoming.swift3501 requestImmediateActiveThreadSync(threadId: threadId, forceHistoryRefresh: true)COMMENT
LOWCodexMobile/CodexMobile/Services/CodexService.swift661 // buffered reconnect replay): timeline refreshes and derived-output cacheCOMMENT
LOW…dexMobile/Services/StreamingUIInteractionMonitor.swift1// FILE: StreamingUIInteractionMonitor.swiftCOMMENT
LOW…le/Services/Coordination/WorktreeFlowCoordinator.swift21COMMENT
Hallucination Indicators3 hits · 30 pts
SeverityFileLineSnippetContext
CRITICALphodex-bridge/test/desktop-ipc-live-owner.test.js3340 const turnIds = snapshot.params.change.conversationState.turns.map((turn) => turn.turnId);CODE
CRITICALphodex-bridge/test/desktop-ipc-live-owner.test.js4527 && frame.params.change.conversationState.turns.some((turn) => turn.turnId === "turn-fresh")CODE
CRITICALphodex-bridge/test/desktop-ipc-live-owner.test.js4529 const turnIds = reclaimBroadcast.params.change.conversationState.turns.map((turn) => turn.turnId);CODE
Modern AI Meta-Vocabulary8 hits · 24 pts
SeverityFileLineSnippetContext
MEDIUMAGENTS.md7## Core guardrailsCOMMENT
MEDIUMAGENTS.md21## iOS runtime + timeline guardrailsCOMMENT
MEDIUMAGENTS.md32## Local connection guardrailsCOMMENT
MEDIUMAGENTS.md41## Build guardrailsCOMMENT
MEDIUMCLAUDE.md7## Core guardrailsCOMMENT
MEDIUMCLAUDE.md21## iOS runtime + timeline guardrailsCOMMENT
MEDIUMCLAUDE.md32## Local connection guardrailsCOMMENT
MEDIUMCLAUDE.md41## Build guardrailsCOMMENT
Fake / Example Data14 hits · 14 pts
SeverityFileLineSnippetContext
LOWphodex-bridge/test/account-status.test.js59 email: "user@example.com",CODE
LOWphodex-bridge/test/account-status.test.js77 email: "user@example.com",CODE
LOWphodex-bridge/test/account-status.test.js94 email: "user@example.com",CODE
LOWphodex-bridge/test/account-status.test.js112 email: "user@example.com",CODE
LOWphodex-bridge/test/account-status.test.js130 email: "user@example.com",CODE
LOWphodex-bridge/test/account-status.test.js148 email: "user@example.com",CODE
LOWphodex-bridge/test/account-status.test.js166 email: "user@example.com",CODE
LOWphodex-bridge/test/account-status.test.js359 email: "user@example.com",CODE
LOWphodex-bridge/test/account-status.test.js377 email: "user@example.com",CODE
LOWCodexMobile/CodexMobileTests/CodexGPTAccountTests.swift64 "email": .string("user@example.com"),CODE
LOWCodexMobile/CodexMobileTests/CodexGPTAccountTests.swift78 XCTAssertEqual(service.gptAccountSnapshot.email, "user@example.com")CODE
LOWCodexMobile/CodexMobileTests/CodexGPTAccountTests.swift457 "email": .string("user@example.com"),CODE
LOWCodexMobile/CodexMobileTests/CodexGPTAccountTests.swift527 email: "user@example.com",CODE
LOWCodexMobile/CodexMobileTests/CodexGPTAccountTests.swift541 "email": .string("user@example.com"),CODE
Structural Annotation Overuse7 hits · 10 pts
SeverityFileLineSnippetContext
LOWplans/001-prevent-launchagent-restart-loops.md192### Step 1: Add regression tests that define the launch and removal contractCOMMENT
LOWplans/001-prevent-launchagent-restart-loops.md244### Step 2: Guard launchd execution without weakening real failure recoveryCOMMENT
LOWplans/001-prevent-launchagent-restart-loops.md289### Step 3: Regenerate legacy plists during restartCOMMENT
LOWplans/001-prevent-launchagent-restart-loops.md325### Step 4: Add an idempotent service-uninstall operationCOMMENT
LOWplans/001-prevent-launchagent-restart-loops.md357### Step 5: Expose `remodex uninstall-service`COMMENT
LOWplans/001-prevent-launchagent-restart-loops.md393### Step 6: Document upgrade migration and clean removalCOMMENT
LOWplans/001-prevent-launchagent-restart-loops.md426### Step 7: Run the complete bridge verification and inspect scopeCOMMENT
Slop Phrases2 hits · 6 pts
SeverityFileLineSnippetContext
MEDIUM…ramework/ios-arm64-simulator/Headers/ghostty/vt/wasm.h32 * Here's a simple example of using the Wasm utilities with the key encoder:COMMENT
MEDIUM…ttyKit.xcframework/ios-arm64/Headers/ghostty/vt/wasm.h32 * Here's a simple example of using the Wasm utilities with the key encoder:COMMENT
Overly Generic Function Names2 hits · 2 pts
SeverityFileLineSnippetContext
LOWphodex-bridge/src/opencode-runtime.js1228 async function handleRequest(parsed) {CODE
LOWphodex-bridge/src/thread-activity-store.js36 function handleRequest(message) {CODE