Open source Ghostty-based macOS terminal with vertical tabs and notifications for AI coding agents. Built for multitasking, organization, and programmability.
This report summarizes scanner evidence for manaflow-ai/cmux, a Swift project with 28,087 GitHub stars. SynthScan examined 4,283,853 lines of code across 18751 source files, recording 16740 pattern matches distributed across 21 syntactic categories. The legacy adjusted pattern signal is 5.2 (Moderate 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.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 14225 finding(s).
Are imports declared and package/API names verified? 1302 finding(s).
Are wrappers, guards, and repeated structures necessary? 8372 finding(s).
Which changes need focused human review? 16740 finding(s).
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.
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.
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.
The scanner identified 16740 distinct pattern matches across 21 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.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | web/proxy.ts | 118 | function handleHostAndMachineRoutes( | CODE |
| LOW | web/proxy.ts | 202 | function handleAgentAndImageRoutes( | CODE |
| LOW | web/proxy.ts | 246 | function handleBillingAndCloudRoutes( | CODE |
| LOW | web/proxy.ts | 326 | function handleLocalizedContentRoutes( | CODE |
| LOW | web/proxy.ts | 554 | function setFallbackContentLinkHeader( | CODE |
| LOW | web/proxy.ts | 566 | function preferredFallbackContentLocale( | CODE |
| LOW | web/proxy.ts | 605 | function setFeatureWorkflowDocLinkHeader( | CODE |
| LOW | web/proxy.ts | 620 | function legacyOpenGraphImageRewritePath(pathname: string): string | undefined { | CODE |
| LOW | web/app/handler/app-session-handoff/route.ts | 144 | function contentLengthExceedsLimit(request: NextRequest): boolean { | CODE |
| LOW | web/app/handler/app-session-handoff/route.ts | 174 | export function makeAppSessionHandoffHandler( | CODE |
| LOW | web/app/handler/sign-out-and-sign-in/route.ts | 28 | function validatedNativeSignInTarget(request: NextRequest): string | null { | CODE |
| LOW | web/app/handler/sign-out-and-sign-in/route.ts | 69 | function validatedPublicationSignInTarget(request: NextRequest): string | null { | CODE |
| LOW | web/app/handler/sign-out-and-sign-in/route.ts | 129 | function stackCustomRefreshCookieDomain(name: string, projectId: string): string | null { | CODE |
| LOW | web/app/handler/sign-out-and-sign-in/route.ts | 162 | export function makeSignOutAndSignInHandler(dependencies: SignOutAndSignInDependencies) { | CODE |
| LOW | web/app/handler/after-sign-in/handler.ts | 304 | function anonymousPromotionFailureResponse( | CODE |
| LOW | web/app/coderouter/auth/complete/page.tsx | 19 | export default async function CoderouterAuthCompletePage() { | CODE |
| LOW | web/app/[locale]/stack-auth-observer.tsx | 36 | export function IsolatedStackAuthObserver() { | CODE |
| LOW | web/app/[locale]/testimonials.tsx | 400 | export function getTestimonialTranslation( | CODE |
| LOW | web/app/[locale]/components/docs-search-utils.ts | 72 | export function normalizeDocsSearchResult( | CODE |
| LOW | …nding)/blog/claude-code-best-worktree-manager/page.tsx | 68 | export default function ClaudeCodeBestWorktreeManagerPage() { | CODE |
| LOW | …le]/(landing)/browser/browser-download-card-action.tsx | 20 | export function BrowserDownloadCardAction({ | CODE |
| LOW | …le]/(landing)/jobs/founding-chromium-engineer/page.tsx | 18 | export default function FoundingChromiumEngineerPage() { | CODE |
| LOW | web/app/[locale]/(landing)/deeplink/[kind]/page.tsx | 106 | function containsUnsafeHiddenCharacter(value: string) { | CODE |
| LOW | web/app/cloud/access/page.tsx | 34 | export default async function CloudPublicationAccessPage({ | CODE |
| LOW | web/app/cloud/access/page.tsx | 123 | function publicationSwitchAccountHref(transaction: string, state: string): string { | CODE |
| LOW | web/app/cloud/access/page.tsx | 149 | async function publicationAccessMessages(headersList: Headers): Promise<{ | CODE |
| LOW | web/app/cloud/billing/page.tsx | 92 | async function cloudBillingReturnMessages(headersList: Headers): Promise<{ | CODE |
| LOW | web/app/lib/client-config-flags.ts | 84 | export function isClientConfigFlagEnabled( | CODE |
| LOW | web/app/lib/browser-nightly-download.ts | 106 | export async function resolveBrowserNightlyDownload( | CODE |
| LOW | web/app/lib/docs-channel.ts | 45 | export function docsPathAvailableInChannel( | CODE |
| LOW | web/app/lib/dashboard-return-path.ts | 12 | export function dashboardReturnPathForRequest( | CODE |
| LOW | web/app/lib/dashboard-return-path.ts | 30 | export function normalizeDashboardReturnPath( | CODE |
| LOW | web/app/lib/agent-page-markdown.ts | 312 | function spaceAdjacentMarkdownLinks(markdown: string): string { | CODE |
| LOW | web/app/lib/agent-page-markdown.ts | 369 | function tableCellsFromMarkdownLine(line: string): string[] | null { | CODE |
| LOW | web/app/lib/agent-page-markdown.ts | 415 | function isMatchingTopLevelHeading(line: string, title: string): boolean { | CODE |
| LOW | web/app/lib/request-origin.ts | 43 | export function responseWithInternalRewrite( | CODE |
| LOW | web/app/lib/client-config.ts | 63 | function getPostHogEvaluationContext(): ClientConfigEvaluationContext { | CODE |
| LOW | web/app/lib/client-config.ts | 97 | function getPostHogPersonProperties(): Record<string, unknown> { | CODE |
| LOW | web/app/lib/client-config.ts | 149 | function getPersistedPostHogAnonDistinctId(client: PostHogWithFlagContext): string | undefined { | CODE |
| LOW | web/app/lib/client-config.ts | 164 | function getPostHogEvaluationContexts(): string[] | undefined { | CODE |
| LOW | web/app/lib/agent-page-paths.ts | 437 | function normalizeCanonicalPagePath(pathWithoutExtension: string): string | null { | CODE |
| LOW | web/app/lib/agent-page-paths.ts | 457 | function normalizeEnglishLocalePrefix(path: string): string { | CODE |
| LOW | web/app/lib/stack.ts | 29 | export function getRequestScopedStackUser(flow: string): Promise<RequestStackUser> { | CODE |
| LOW | web/app/lib/stack.ts | 81 | export function createUncachedStackServerApp(): StackServerApp<true> { | CODE |
| LOW | web/app/lib/stack.ts | 98 | export function getNonRedirectingStackServerApp(): StackServerApp<true> { | CODE |
| LOW | web/app/lib/stack.ts | 127 | export async function markStackUserEmailVerifiedViaApi( | CODE |
| LOW | web/app/lib/stack.ts | 151 | export async function promoteStackUserFromAnonymousViaApi( | CODE |
| LOW | web/app/lib/stack.ts | 173 | export async function promoteStackUserFromAnonymousWithDeletionGuard( | CODE |
| LOW | web/app/lib/dashboard-auth.ts | 99 | export function dashboardAuthorizationSignInHref( | CODE |
| LOW | web/app/lib/posthog-client.ts | 32 | export function whenAnalyticsCaptureBuffered(): Promise<void> { | CODE |
| LOW | web/app/lib/posthog-client.ts | 37 | export function markAnalyticsCaptureBuffered() { | CODE |
| LOW | web/app/lib/changelog.ts | 35 | export function changelogVersionsForPrerender( | CODE |
| LOW | web/app/lib/changelog.ts | 155 | export function changelogVersionDescription( | CODE |
| LOW | web/app/lib/changelog.ts | 187 | function truncateMetadataDescription( | CODE |
| LOW⚡ | web/app/lib/native-callback.ts | 12 | export function nativeCallbackHrefForScheme(scheme: string): string { | CODE |
| LOW⚡ | web/app/lib/native-callback.ts | 16 | export function validatedNativeCallbackScheme( | CODE |
| LOW⚡ | web/app/lib/native-callback.ts | 25 | export function trustedNativeCallbackScheme( | CODE |
| LOW | web/app/lib/native-callback.ts | 63 | function localAllowedNativeSchemes(): Set<string> { | CODE |
| LOW | web/app/lib/localized-blog-feed.ts | 12 | export async function buildLocalizedBlogRssFeed(locale: Locale): Promise<string> { | CODE |
| LOW | web/app/lib/stack-session-cookies.ts | 10 | export function stackRefreshCookiePatterns(projectId: string): { | CODE |
| 7062 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | ghostty.h | 1 | #ifndef CMUX_GHOSTTY_BRIDGE_HEADER_H | COMMENT |
| LOW | …xUITests/SettingsAccountJSONResetBehaviorUITests.swift | 1 | import XCTest | COMMENT |
| LOW | …xUITests/SettingsAccountJSONResetBehaviorUITests.swift | 21 | /// - TIER 3: Account Sign In / Sign Out (browser auth round trip), | COMMENT |
| LOW | …xUITests/SettingsAccountJSONResetBehaviorUITests.swift | 181 | if let value = element.value as? Bool { | COMMENT |
| LOW | …xUITests/SettingsAccountJSONResetBehaviorUITests.swift | 201 | // cmux sign-in page in the system browser for an OAuth-style round trip; | COMMENT |
| LOW | cmuxUITests/SettingsBrowserBehaviorUITests.swift | 1 | import XCTest | COMMENT |
| LOW | cmuxUITests/SettingsBrowserBehaviorUITests.swift | 121 | // drives the `palette.enableBrowser` / `palette.disableBrowser` | COMMENT |
| LOW | cmuxUITests/SettingsBrowserBehaviorUITests.swift | 141 | // `BrowserThemeSettings.mode` is applied via | COMMENT |
| LOW | cmuxUITests/SettingsBrowserBehaviorUITests.swift | 161 | // to an http host, which is a WebKit-surface interaction not reachable | COMMENT |
| LOW | cmuxUITests/SettingsBrowserBehaviorUITests.swift | 181 | // MARK: - TIER 3 (not e2e) | COMMENT |
| LOW | cmuxUITests/SettingsAutomationBehaviorUITests.swift | 1 | import XCTest | COMMENT |
| LOW | cmuxUITests/SettingsAutomationBehaviorUITests.swift | 21 | /// surface, which is the contract this section actually owns: | COMMENT |
| LOW | cmuxUITests/SettingsAutomationBehaviorUITests.swift | 401 | COMMENT | |
| LOW | cmuxUITests/SettingsAutomationBehaviorUITests.swift | 421 | // transition is covered TIER 1; whether a client presenting that | COMMENT |
| LOW | cmuxUITests/SettingsAutomationBehaviorUITests.swift | 441 | // these select which `claude` / `rg` executable cmux resolves | COMMENT |
| LOW | cmuxUITests/ControlSocketReadinessUITestSupport.swift | 1 | import XCTest | COMMENT |
| LOW | cmuxUITests/ControlSocketReadinessUITestSupport.swift | 21 | /// | COMMENT |
| LOW | cmuxUITests/ControlSocketReadinessUITestSupport.swift | 41 | /// loop not yet answering, a sub-second window) makes the waiter sit on the | COMMENT |
| LOW | cmuxUITests/SettingsAppBehaviorUITests.swift | 1 | import AppKit | COMMENT |
| LOW | cmuxUITests/SettingsAppBehaviorUITests.swift | 21 | /// Each test below flips one of those, then asserts the toggle value | COMMENT |
| LOW | cmuxUITests/SettingsAppBehaviorUITests.swift | 41 | /// - Keep Workspace Open When Closing Last Surface | COMMENT |
| LOW | cmuxUITests/SettingsAppBehaviorUITests.swift | 61 | /// badge label; Dock tile state is not an XCUITest element. | COMMENT |
| LOW | cmuxUITests/SettingsAppBehaviorUITests.swift | 81 | /// has no stable accessibility id on its Settings toggle to flip. | COMMENT |
| LOW | cmuxUITests/SettingsAppBehaviorUITests.swift | 401 | /// effect of the Menu Bar Only setting (the actual Dock-icon hiding is | COMMENT |
| LOW | cmuxUITests/SettingsSidebarBetaBehaviorUITests.swift | 1 | import XCTest | COMMENT |
| LOW | cmuxUITests/SettingsSidebarBetaBehaviorUITests.swift | 21 | /// | COMMENT |
| LOW | cmuxUITests/SettingsSidebarBetaBehaviorUITests.swift | 161 | // Toggle back to the observed initial value to prove the binding is reversible. | COMMENT |
| LOW | cmuxUITests/SettingsSidebarBetaBehaviorUITests.swift | 181 | // | COMMENT |
| LOW | cmuxUITests/RemoteTmuxSizingUITests.swift | 1 | import XCTest | COMMENT |
| LOW | cmuxUITests/RemoteTmuxSizingUITests.swift | 41 | super.setUp() | COMMENT |
| LOW | cmuxUITests/RemoteTmuxSizingUITests.swift | 101 | // frame an earlier app run left behind — small enough, and the pane | COMMENT |
| LOW | cmuxUITests/RemoteTmuxSizingUITests.swift | 241 | /// visible window to vouch for it, and the resize while hidden | COMMENT |
| LOW | cmuxUITests/RemoteTmuxSizingUITests.swift | 261 | // Churn while hidden: one real window resize, so any size the hidden | COMMENT |
| LOW | cmuxUITests/FeedSidebarUITests.swift | 221 | pollUntil(timeout: timeout, interval: 0.2) { | COMMENT |
| LOW | cmuxUITests/FocusHistoryShortcutUITests.swift | 1 | import XCTest | COMMENT |
| LOW | cmuxUITests/SettingsTerminalBehaviorUITests.swift | 1 | import XCTest | COMMENT |
| LOW | cmuxUITests/SettingsTerminalBehaviorUITests.swift | 21 | /// | COMMENT |
| LOW | cmuxUITests/SettingsTerminalBehaviorUITests.swift | 41 | /// TIER 2 (needs runtime seam) — deep runtime effects not e2e-observable | COMMENT |
| LOW | cmuxUITests/SettingsTerminalBehaviorUITests.swift | 61 | /// only after enough wrapped lines are typed into a live terminal | COMMENT |
| LOW | cmuxUITests/SettingsTerminalBehaviorUITests.swift | 81 | /// idle lifecycle for the configured duration and exceeding the live | COMMENT |
| LOW | cmuxUITests/SettingsUITestSupport.swift | 1 | import XCTest | COMMENT |
| LOW | cmuxUITests/BrowserReliabilityRegressionUITests.swift | 101 | /// JavaScript context, so browser.wait used to hang for its full timeout | COMMENT |
| LOW | cmuxUITests/DogfoodScenarioUITests.swift | 1 | import XCTest | COMMENT |
| LOW | cmuxUITests/RemoteTmuxSizingUITests+Oracle.swift | 21 | ) | COMMENT |
| LOW | cmuxUITests/BrowserFixtureInteractionUITests.swift | 1 | import XCTest | COMMENT |
| LOW | cmuxUITests/SidebarEmptyAreaDoubleClickUITests.swift | 1 | import Foundation | COMMENT |
| LOW | cmuxUITests/RemoteTmuxSizingUITests+Content.swift | 1 | import XCTest | COMMENT |
| LOW | cmuxUITests/RemoteTmuxSizingUITests+Content.swift | 21 | /// runs; the printed size is the PTY's own view (`stty size`), so a pane that | COMMENT |
| LOW | cmuxUITests/DisplayResolutionRegressionUITests.swift | 301 | helperProcess = proc | COMMENT |
| LOW | cmuxUITests/SettingsShortcutsBehaviorUITests.swift | 1 | import XCTest | COMMENT |
| LOW | cmuxUITests/SettingsShortcutsBehaviorUITests.swift | 21 | /// - per-action `ShortcutRecorderView` + `ShortcutRecorderClearRestoreButton`. | COMMENT |
| LOW | cmuxUITests/SettingsShortcutsBehaviorUITests.swift | 101 | window.staticTexts[subtitle].exists, | COMMENT |
| LOW | cmuxUITests/SettingsShortcutsBehaviorUITests.swift | 181 | // MARK: - Tier 1: Reset Defaults re-binds a cleared action | COMMENT |
| LOW | cmuxUITests/SettingsShortcutsBehaviorUITests.swift | 281 | COMMENT | |
| LOW | cmuxUITests/SettingsShortcutsBehaviorUITests.swift | 301 | // detectConflict path in assign/assignChord). Surfacing the banner | COMMENT |
| LOW | cmuxUITests/SettingsShortcutsBehaviorUITests.swift | 321 | COMMENT | |
| LOW | …uxUITests/SettingsWorkspaceColorsBehaviorUITests.swift | 1 | import XCTest | COMMENT |
| LOW | …uxUITests/SettingsWorkspaceColorsBehaviorUITests.swift | 21 | /// - **Reset Palette** (action): restores the built-in palette and | COMMENT |
| LOW | …uxUITests/SettingsWorkspaceColorsBehaviorUITests.swift | 41 | /// `sidebarWorkspace.<uuid>` but no accessibility *value* that reflects | COMMENT |
| LOW | …uxUITests/SettingsWorkspaceColorsBehaviorUITests.swift | 61 | /// | COMMENT |
| 5016 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | web/services/vms/images/devbox/agent-config.sh | 8 | # Materializes per-harness model-proxy configs from the machine's boot env | COMMENT |
| MEDIUM | web/services/vms/images/devbox/agent-config.sh | 15 | # Idempotent and silent: each harness config is written only when missing, | COMMENT |
| MEDIUM⚡ | experiments/iroh-swift-ffi-spike/build.sh | 2 | # Builds the iroh FFI staticlib and the Swift harness. | COMMENT |
| MEDIUM⚡ | experiments/iroh-swift-ffi-spike/build.sh | 4 | # ./build.sh macos # aarch64-apple-darwin staticlib + macOS Swift harness | COMMENT |
| MEDIUM⚡ | experiments/iroh-swift-ffi-spike/build.sh | 5 | # ./build.sh ios-sim # aarch64-apple-ios-sim staticlib + iOS-simulator Swift harness | COMMENT |
| MEDIUM⚡ | Resources/agent-session-solid/index.html | 27 | var an=Object.create;var rt=Object.defineProperty;var ln=Object.getOwnPropertyDescriptor;var cn=Object.getOwnPropertyNam | CODE |
| MEDIUM⚡ | Resources/agent-session-solid/index.html | 27 | var an=Object.create;var rt=Object.defineProperty;var ln=Object.getOwnPropertyDescriptor;var cn=Object.getOwnPropertyNam | CODE |
| MEDIUM | Resources/agent-session-solid/assets/app.js | 1 | var an=Object.create;var rt=Object.defineProperty;var ln=Object.getOwnPropertyDescriptor;var cn=Object.getOwnPropertyNam | CODE |
| MEDIUM | Resources/agent-session-solid/assets/app.js | 1 | var an=Object.create;var rt=Object.defineProperty;var ln=Object.getOwnPropertyDescriptor;var cn=Object.getOwnPropertyNam | CODE |
| MEDIUM | Resources/agent-session-react/index.html | 35 | `).replace(Cb,"")}function tg(t,e){return e=fm(e),fm(t)===e}function te(t,e,n,l,i,r){switch(n){case"children":typeof l== | CODE |
| MEDIUM | Resources/agent-session-react/assets/app.js | 9 | `).replace(Cb,"")}function tg(t,e){return e=fm(e),fm(t)===e}function te(t,e,n,l,i,r){switch(n){case"children":typeof l== | CODE |
| MEDIUM | tests/test_claude_wrapper_mutual_shim_loop.py | 875 | except Exception as exc: # noqa: BLE001 - simple test harness | STRING |
| MEDIUM | tests/test_issue_13766_terminal_history.py | 19 | # Do not let the harness publish activity to a running cmux app. | COMMENT |
| MEDIUM | tests/test_cli_claude_teams_tmux_sequence.py | 454 | # harness itself. | COMMENT |
| MEDIUM | tests/test_cli_hook_enqueue_wall_clock.py | 178 | # An explicit password keeps the harness away from the user's keychain. | COMMENT |
| MEDIUM | tests/run_posthog_crash_launch.py | 235 | # Ignore persisted SDK retries from a prior failed harness run. | COMMENT |
| MEDIUM | …muxFeatureTests/TerminalInputScrollToBottomTests.swift | 105 | #expect(await waitUntil { viewportText(harness.view).contains(marker) }, | COMMENT |
| MEDIUM | …muxFeatureTests/TerminalInputScrollToBottomTests.swift | 107 | #expect(!harness.delegate.produced.isEmpty, | COMMENT |
| MEDIUM⚡ | …ts/cmuxFeatureTests/TerminalViewportSpacingTests.swift | 271 | #expect(await harness.waitForFill()) | COMMENT |
| MEDIUM⚡ | …ts/cmuxFeatureTests/TerminalViewportSpacingTests.swift | 287 | #expect(await harness.waitForFill()) | COMMENT |
| MEDIUM | …ts/cmuxFeatureTests/TerminalViewportSpacingTests.swift | 208 | #expect(await harness.waitForFill(), "top gap \(harness.topGap)pt, bottom gap \(harness.bottomGap)pt, cell \(har | COMMENT |
| MEDIUM | …ts/cmuxFeatureTests/TerminalViewportSpacingTests.swift | 224 | #expect(await harness.waitForFill()) | COMMENT |
| MEDIUM | …ts/cmuxFeatureTests/TerminalViewportSpacingTests.swift | 239 | #expect(harness.snapshot.viewportRect == settled.viewportRect) | COMMENT |
| MEDIUM | …ts/cmuxFeatureTests/TerminalViewportSpacingTests.swift | 240 | #expect(harness.snapshot.reportedSize == settled.reportedSize) | COMMENT |
| MEDIUM | …ts/cmuxFeatureTests/TerminalViewportSpacingTests.swift | 254 | #expect(harness.bottomGap <= 1) | COMMENT |
| MEDIUM⚡ | …ts/cmuxFeatureTests/TerminalViewportSpacingTests.swift | 269 | let initial = try #require(await harness.waitForReport(after: 0)) | CODE |
| MEDIUM⚡ | …ts/cmuxFeatureTests/TerminalViewportSpacingTests.swift | 277 | let openReport = try #require(await harness.waitForReport(after: beforeOpen)) | CODE |
| MEDIUM⚡ | …ts/cmuxFeatureTests/TerminalViewportSpacingTests.swift | 284 | let closeReport = try #require(await harness.waitForReport(after: beforeClose)) | CODE |
| MEDIUM | …ts/cmuxFeatureTests/TerminalViewportSpacingTests.swift | 304 | #expect(harness.bottomGap <= 1) | COMMENT |
| MEDIUM | …ts/cmuxFeatureTests/TerminalViewportSpacingTests.swift | 320 | #expect(await harness.waitForFill()) | COMMENT |
| MEDIUM | …ts/cmuxFeatureTests/TerminalViewportSpacingTests.swift | 332 | #expect(shrunkToLetterbox, "push shrink: bottom gap \(harness.bottomGap)pt, live font \(harness.snapshot.liveFon | COMMENT |
| MEDIUM | …ts/cmuxFeatureTests/TerminalViewportSpacingTests.swift | 344 | #expect(restored, "push grow: top gap \(harness.topGap)pt, live font \(harness.snapshot.liveFontSize)") | COMMENT |
| MEDIUM | …ts/cmuxFeatureTests/TerminalViewportSpacingTests.swift | 222 | let initial = try #require(await harness.waitForReport(after: 0)) | CODE |
| MEDIUM | …ts/cmuxFeatureTests/TerminalViewportSpacingTests.swift | 318 | let initial = try #require(await harness.waitForReport(after: 0)) | CODE |
| MEDIUM⚡ | …ts/cmuxFeatureTests/TerminalViewportSpacingTests.swift | 372 | let initial = try #require(await harness.waitForReport(after: 0)) | STRING |
| MEDIUM⚡ | …ts/cmuxFeatureTests/TerminalViewportSpacingTests.swift | 374 | #expect(await harness.waitForFill()) | STRING |
| MEDIUM⚡ | …ts/cmuxFeatureTests/TerminalViewportSpacingTests.swift | 381 | let openReport = try #require(await harness.waitForReport(after: beforeOpen)) | STRING |
| MEDIUM⚡ | …ts/cmuxFeatureTests/TerminalViewportSpacingTests.swift | 386 | let closeReport = try #require(await harness.waitForReport(after: beforeClose)) | STRING |
| MEDIUM⚡ | …ts/cmuxFeatureTests/TerminalViewportSpacingTests.swift | 517 | #expect(harness.snapshot.isLetterboxBorderVisible) | STRING |
| MEDIUM⚡ | …ts/cmuxFeatureTests/TerminalViewportSpacingTests.swift | 525 | #expect(harness.delegate.reports.count == reportsBeforeKeyboard) | STRING |
| MEDIUM⚡ | …ts/cmuxFeatureTests/TerminalViewportSpacingTests.swift | 526 | #expect(harness.snapshot.renderRect == settled.renderRect) | STRING |
| MEDIUM⚡ | …ts/cmuxFeatureTests/TerminalViewportSpacingTests.swift | 527 | #expect(abs(harness.snapshot.liveFontSize - harness.snapshot.baseFontSize) < 0.5) | STRING |
| MEDIUM⚡ | …ts/cmuxFeatureTests/TerminalViewportSpacingTests.swift | 531 | #expect(harness.delegate.reports.count == reportsBeforeKeyboard) | STRING |
| MEDIUM⚡ | …ts/cmuxFeatureTests/TerminalViewportSpacingTests.swift | 532 | #expect(harness.snapshot.renderRect == settled.renderRect) | STRING |
| MEDIUM⚡ | …ts/cmuxFeatureTests/TerminalViewportSpacingTests.swift | 533 | #expect(harness.topGap <= 1) | STRING |
| MEDIUM | …ts/cmuxFeatureTests/TerminalViewportSpacingTests.swift | 401 | #expect(await harness.waitForFill(), "after retry echo: top gap \(harness.topGap)pt") | STRING |
| MEDIUM | …ts/cmuxFeatureTests/TerminalViewportSpacingTests.swift | 414 | let initial = try #require(await harness.waitForReport(after: 0)) | STRING |
| MEDIUM | …ts/cmuxFeatureTests/TerminalViewportSpacingTests.swift | 416 | #expect(await harness.waitForFill()) | STRING |
| MEDIUM | …ts/cmuxFeatureTests/TerminalViewportSpacingTests.swift | 445 | #expect(harness.delegate.reports.count == exhaustedCount) | STRING |
| MEDIUM | …ts/cmuxFeatureTests/TerminalViewportSpacingTests.swift | 478 | let initial = try #require(await harness.waitForReport(after: 0)) | STRING |
| MEDIUM | cmux-tui/crates/cmux-wg/Cargo.toml | 17 | # Only the `testing` loopback harness needs randomness (fresh keypairs); | COMMENT |
| MEDIUM⚡ | cmux-tui/scripts/repro-10431-paste.py | 1 | # Repro harness for https://github.com/manaflow-ai/cmux/issues/10431. | COMMENT |
| MEDIUM⚡ | cmux-tui/scripts/repro-10431-paste.py | 9 | # CMUX_TUI_INPUT_AUDIT byte-accounting taps that this harness and | COMMENT |
| MEDIUM⚡ | cmux-tui/scripts/repro-10431-paste.py | 15 | # audit file only contains this harness's own marker lines. | COMMENT |
| MEDIUM | cmux-tui/scripts/smoke-tui.py | 716 | # program. The harness shares a filesystem with the TUI's shell, so | STRING |
| MEDIUM⚡ | …s/TerminalBytesDemoTests/TerminalBytesLogicTests.swift | 797 | #expect(await waitUntil { harness.firstStarted.value }) | COMMENT |
| MEDIUM⚡ | …s/TerminalBytesDemoTests/TerminalBytesLogicTests.swift | 800 | #expect(!harness.model.errorMessage.isEmpty) | COMMENT |
| MEDIUM⚡ | …s/TerminalBytesDemoTests/TerminalBytesLogicTests.swift | 810 | #expect(await waitUntil { harness.firstStarted.value }) | COMMENT |
| MEDIUM⚡ | …s/TerminalBytesDemoTests/TerminalBytesLogicTests.swift | 816 | #expect(!harness.model.errorMessage.isEmpty) | COMMENT |
| MEDIUM⚡ | scripts/remote-tmux-reconnect-auth-harness.sh | 3 | # Remote-tmux RECONNECT-AUTH harness. | COMMENT |
| 1181 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | web/scripts/devbox-agent-launch.py | 67 | except ProcessLookupError: | CODE |
| HIGH | Resources/bin/cmux-hermes-sitecustomize.py | 97 | except Exception: | CODE |
| HIGH | tests/test_issue_15066_zsh_watcher_sleep.py | 74 | except BlockingIOError: | CODE |
| HIGH | tests/test_ci_e2e_compilation_cache.py | 707 | except ProcessLookupError: | CODE |
| HIGH | tests/test_claude_wrapper_hooks.py | 1968 | except ProcessLookupError: | CODE |
| HIGH | tests/test_cli_tmux_wait_for_private_dir.py | 49 | except FileNotFoundError: | CODE |
| HIGH | tests/test_issue_13766_terminal_history.py | 80 | except OSError: | CODE |
| HIGH | tests/test_dev_fleet_warm_slot.py | 703 | except ProcessLookupError: | CODE |
| HIGH | tests/test_dev_fleet_warm_slot.py | 1131 | except ProcessLookupError: | CODE |
| HIGH | tests/test_cli_socket_autodiscovery.py | 234 | except OSError: | CODE |
| HIGH | tests/test_cli_socket_autodiscovery.py | 336 | except OSError: | CODE |
| HIGH | tests/test_cli_socket_autodiscovery.py | 626 | except OSError: | CODE |
| HIGH | tests/test_cli_socket_autodiscovery.py | 291 | except OSError: | CODE |
| HIGH | tests/test_cli_socket_autodiscovery.py | 449 | except OSError: | CODE |
| HIGH | tests/test_cli_socket_autodiscovery.py | 568 | except OSError: | CODE |
| HIGH | tests/test_ci_change_areas.py | 1339 | except ValueError: | CODE |
| HIGH | tests/test_ci_change_areas.py | 4254 | except TimeoutError: | CODE |
| HIGH | tests/test_ci_change_areas.py | 4269 | except TimeoutError: | CODE |
| HIGH | tests/test_workspace_churn_up_arrow_lag.py | 498 | except Exception: | CODE |
| HIGH | tests/test_ci_select_package_tests.py | 200 | except SystemExit: | CODE |
| HIGH | tests/test_claude_hook_push_notification.py | 186 | except json.JSONDecodeError: | CODE |
| HIGH | tests/test_issue_8953_zsh_prompt_wrap_guard.py | 218 | except ProcessLookupError: | CODE |
| HIGH | tests/test_issue_8953_zsh_prompt_wrap_guard.py | 222 | except ChildProcessError: | CODE |
| HIGH | tests/test_ghostty_zsh_job_table_saturation_guard.py | 70 | except ProcessLookupError: | CODE |
| HIGH | tests/test_nushell_integration_hooks.py | 120 | except socket.timeout: | CODE |
| HIGH | tests/test_nushell_integration_hooks.py | 335 | except ProcessLookupError: | CODE |
| HIGH | tests/test_nushell_integration_hooks.py | 342 | except ProcessLookupError: | CODE |
| HIGH | tests/test_shell_git_branch_stale_cwd.py | 50 | except FileNotFoundError: | CODE |
| HIGH | tests/test_claude_hook_missing_socket_error.py | 46 | except OSError: | CODE |
| HIGH | tests/claude_teams_test_utils.py | 230 | except OSError: | CODE |
| HIGH | tests/test_cmux_cua_mcp_smoke.py | 143 | except Exception: | CODE |
| HIGH | tests/test_ci_app_host_pipe_capture.py | 162 | except (ProcessLookupError, ValueError): | CODE |
| HIGH | tests/test_campfire_extension_install.py | 55 | except FileNotFoundError: | CODE |
| HIGH | tests/test_campfire_extension_install.py | 71 | except OSError: | CODE |
| HIGH | tests/test_campfire_extension_install.py | 79 | except FileNotFoundError: | CODE |
| HIGH | tests/cmux.py | 199 | except Exception: | CODE |
| HIGH | tests/test_cli_version_memory_guard.py | 171 | except (OSError, subprocess.SubprocessError): | CODE |
| HIGH | tests/test_cli_version_memory_guard.py | 123 | except ProcessLookupError: | CODE |
| HIGH | tests/test_remote_tmux_et_conformance.py | 136 | except ProcessLookupError: | CODE |
| HIGH | tests/test_plain_text_paste_worker.py | 306 | except ProcessLookupError: | CODE |
| HIGH | tests/test_issue_10926_watcher_pid_reuse_guard.py | 500 | except ProcessLookupError: | CODE |
| HIGH | tests/test_issue_10926_watcher_pid_reuse_guard.py | 492 | except ProcessLookupError: | CODE |
| HIGH | tests/test_issue_10926_watcher_pid_reuse_guard.py | 507 | except ProcessLookupError: | CODE |
| HIGH | tests/test_pr_media.py | 502 | except OSError: | CODE |
| HIGH | tests/test_bash_integration_no_done_notifications.py | 50 | except OSError: | CODE |
| HIGH | tests/test_bash_integration_no_done_notifications.py | 54 | except OSError: | CODE |
| HIGH | tests/test_bash_integration_no_done_notifications.py | 59 | except ProcessLookupError: | CODE |
| HIGH | tests/test_bash_integration_no_done_notifications.py | 68 | except ChildProcessError: | CODE |
| HIGH | tests/test_bash_integration_no_done_notifications.py | 64 | except ProcessLookupError: | CODE |
| HIGH | tests/test_omp_extension_install.py | 75 | except FileNotFoundError: | CODE |
| HIGH | tests/test_omp_extension_install.py | 91 | except OSError: | CODE |
| HIGH | tests/test_omp_extension_install.py | 99 | except FileNotFoundError: | CODE |
| HIGH | tests/test_omp_extension_install.py | 678 | except (ProcessLookupError, ValueError): | CODE |
| HIGH | tests/test_cli_hook_enqueue_wall_clock.py | 222 | except BrokenPipeError: | CODE |
| HIGH | tests/test_cli_hook_enqueue_wall_clock.py | 239 | except BrokenPipeError: | CODE |
| HIGH | tests/test_local_build_cache_preflight.py | 313 | except OSError: | CODE |
| HIGH | tests/test_merge_xcstrings.py | 550 | except OSError: | CODE |
| HIGH | tests/test_claude_hook_stop_last_assistant.py | 141 | except json.JSONDecodeError: | CODE |
| HIGH | tests/test_ci_prune_xcode_compilation_cache.py | 132 | except OSError: | CODE |
| HIGH | tests/test_shell_first_prompt_spawns.py | 179 | except FileNotFoundError: | CODE |
| 289 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tests/test_issue_15066_zsh_watcher_sleep.py | 170 | "zmodload() { return 1; }; disable -b sleep 2>/dev/null || true; rehash; " | CODE |
| HIGH | tests/test_issue_15066_zsh_watcher_sleep.py | 227 | disable -b sleep 2>/dev/null || true | CODE |
| HIGH | tests/test_issue_15066_zsh_watcher_sleep.py | 257 | ready_count="$(wc -l < "$CMUX_ZSELECT_READY_FILE" 2>/dev/null)" | CODE |
| HIGH | tests/test_issue_15066_zsh_watcher_sleep.py | 262 | zselect -t 5 || true | CODE |
| HIGH | tests/test_issue_15066_zsh_watcher_sleep.py | 275 | _cmux_sleep_cs 5 || true | CODE |
| HIGH⚡ | tests/test_issue_15066_zsh_watcher_sleep.py | 287 | kill -0 -- -"$pr_pid" 2>/dev/null || pr_alive=0 | CODE |
| HIGH⚡ | tests/test_issue_15066_zsh_watcher_sleep.py | 288 | kill -0 "$git_pid" 2>/dev/null || git_alive=0 | CODE |
| HIGH⚡ | tests/test_issue_15066_zsh_watcher_sleep.py | 291 | zselect -t 5 || true | CODE |
| HIGH⚡ | tests/test_issue_15066_zsh_watcher_sleep.py | 293 | _cmux_sleep_cs 5 || true | CODE |
| HIGH | tests/test_ci_e2e_compilation_cache.py | 145 | test "$1" = clang || exit 98 | CODE |
| HIGH⚡ | tests/test_indexnow_notification.py | 99 | self.assertIn("ref: ${{ github.event.deployment.sha || github.sha }}", workflow) | CODE |
| HIGH⚡ | tests/test_shell_no_git_watch.py | 140 | if typeset -f _cmux_start_pr_poll_loop >/dev/null; then | CODE |
| HIGH⚡ | tests/test_shell_no_git_watch.py | 143 | if typeset -f _cmux_start_git_head_watch >/dev/null; then | CODE |
| HIGH⚡ | tests/test_claude_wrapper_hooks.py | 97 | 'zmodload zsh/system zsh/datetime zsh/files 2>/dev/null || exec /bin/sh -c "$1" >&3', | CODE |
| HIGH⚡ | tests/test_claude_wrapper_hooks.py | 100 | f"[[ -n ${{CMUX_SURFACE_ID:-}} && ${{{disable_key}:-}} != 1 ]] || {{ (( cmux_e == 5 )) || /bin/cat >/dev/nul | CODE |
| HIGH⚡ | tests/test_claude_wrapper_hooks.py | 109 | '{ print -rn -- "$cmux_r" >| $cmux_n.tmp && mv -f -- $cmux_n.tmp $cmux_n.rec; } 2>/dev/null || { rm -f -- $c | CODE |
| HIGH⚡ | tests/test_claude_wrapper_hooks.py | 109 | '{ print -rn -- "$cmux_r" >| $cmux_n.tmp && mv -f -- $cmux_n.tmp $cmux_n.rec; } 2>/dev/null || { rm -f -- $c | CODE |
| HIGH⚡ | tests/test_claude_wrapper_hooks.py | 110 | "if zsystem flock -t 0 -r -f cmux_l $cmux_d/forwarder.lock 2>/dev/null; then", | CODE |
| HIGH⚡ | tests/test_claude_wrapper_hooks.py | 112 | ' rm -- $cmux_n.rec 2>/dev/null && cmux_fallback "$1"', | CODE |
| HIGH | tests/test_claude_wrapper_hooks.py | 79 | 'if [ -z "$cmux_cli" ] || [ ! -x "$cmux_cli" ]; then cmux_cli="$(command -v cmux 2>/dev/null || true)"; fi', | CODE |
| HIGH | tests/test_claude_wrapper_hooks.py | 81 | f'if [ -n "$CMUX_SURFACE_ID" ] && [ "${disabled_key}" != "1" ] && [ -n "$cmux_cli" ]; then if [ -n "${{CMUX_ | CODE |
| HIGH | tests/test_claude_wrapper_hooks.py | 173 | direct(f"{direct_cli} hooks claude inbox-drain 2>/dev/null || echo '{{}}'", 5), | CODE |
| HIGH | tests/test_claude_wrapper_hooks.py | 3483 | if (argc > 1 && strcmp(argv[1], "--help") == 0) { | CODE |
| HIGH⚡ | tests/test_seed_derived_data.py | 1304 | # An unset repository variable is null, and Actions compares null with | COMMENT |
| HIGH⚡ | tests/test_seed_derived_data.py | 1672 | self.assertEqual(evaluate("${{ vars.EMPTY && fromJSON(vars.EMPTY) || 'y' }}", context), "y") | CODE |
| HIGH⚡ | tests/test_seed_derived_data.py | 1673 | self.assertEqual(evaluate("${{ vars.A || fromJSON(vars.EMPTY) }}", context), "a") | CODE |
| HIGH⚡ | tests/test_seed_derived_data.py | 1678 | self.assertEqual(evaluate("${{ vars.MISSING || vars.A }}", context), "a") | CODE |
| HIGH⚡ | tests/test_seed_derived_data.py | 1687 | self.assertIs(evaluate("${{ vars.A > 0 || vars.A < 1 }}", numbers), False) | CODE |
| HIGH⚡ | tests/test_seed_derived_data.py | 1698 | self.assertEqual(offenders, [], "an unset variable is null, which equals '0'; give it a default first") | CODE |
| HIGH | tests/test_seed_derived_data.py | 1486 | self.assertIn("(github.run_attempt <= 2 || github.triggering_actor != 'github-actions[bot]')", | CODE |
| HIGH⚡ | tests/test_seed_derived_data.py | 712 | `a && b` is b when a is truthy, else a; `a || b` is a when truthy, | STRING |
| HIGH⚡ | tests/test_seed_derived_data.py | 712 | `a && b` is b when a is truthy, else a; `a || b` is a when truthy, | STRING |
| HIGH⚡ | tests/test_seed_derived_data.py | 713 | else b. Names resolve by dotted path in `context`; a missing one is null, | STRING |
| HIGH⚡ | tests/test_seed_derived_data.py | 717 | `&&` and `||` short-circuit, as in Actions, so `x && fromJSON(x)` never | STRING |
| HIGH | tests/test_claude_wrapper_mutual_shim_loop.py | 175 | const managedPath = process.env.NODE_SHIM_MANAGED_PATH || process.env.PATH || ""; | CODE |
| HIGH | tests/test_issue_5164_starship_prompt_composition.py | 76 | if [[ "$(declare -p PROMPT_COMMAND 2>/dev/null)" == "declare -a"* ]]; then | CODE |
| HIGH | tests/test_issue_5164_starship_prompt_composition.py | 120 | if [[ "$(declare -p PROMPT_COMMAND 2>/dev/null)" == "declare -a"* ]]; then | CODE |
| HIGH | tests/test_issue_5164_starship_prompt_composition.py | 152 | if [[ "$(declare -p PROMPT_COMMAND 2>/dev/null)" == "declare -a"* ]]; then | CODE |
| HIGH⚡ | tests/test_run_e2e.py | 709 | "((!inputs.runner || inputs.runner == 'auto') && (vars.MACOS_RUNNER_TESTS || '" | STRING |
| HIGH⚡ | tests/test_run_e2e.py | 710 | "blacksmith-6vcpu-macos-26') || inputs.runner) }}-${{ inputs.ref || github.ref_name }}-${{ inputs.test_filte | STRING |
| HIGH⚡ | tests/test_run_e2e.py | 1163 | for payload in ("null", '{"runs": []}', '[null, 3]'): | STRING |
| HIGH⚡ | tests/test_run_e2e.py | 1639 | " && needs.runner.outputs.label || needs.runner.outputs.retry_label }}") | STRING |
| HIGH⚡ | tests/test_run_e2e.py | 1766 | "${{ steps.route-token.outputs.token || steps.route-token-repo.outputs.token }}") | STRING |
| HIGH | tests/test_run_e2e.py | 1554 | "${{ steps.route-token.outputs.token || steps.route-token-repo.outputs.token }}": "", | STRING |
| HIGH | tests/test_run_e2e.py | 1556 | "${{ github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name || github.reposito | STRING |
| HIGH⚡ | tests/test_ci_guard_workflow_structure.py | 91 | assert package["scripts"]["check"] == "./node_modules/.bin/tsc --noEmit && bun run test" | CODE |
| HIGH⚡ | tests/test_cla_guard_metadata_routing.py | 13 | METADATA_IF = "${{ !(github.event_name == 'pull_request_target' && github.event.action == 'edited' && !github.event.chan | CODE |
| HIGH⚡ | tests/test_cla_guard_metadata_routing.py | 14 | METADATA_NAME = "${{ github.event_name == 'pull_request_target' && github.event.action == 'edited' && !github.event.chan | CODE |
| HIGH | tests/test_opencode_v2_tui_bridge.py | 69 | return new Promise((resolve) => observedWaiters.push({ predicate, resolve })); | CODE |
| HIGH | tests/test_opencode_v2_tui_bridge.py | 81 | observed.push(event); | CODE |
| HIGH | tests/test_opencode_v2_tui_bridge.py | 124 | prompt: async (value) => live.promptError ? { error: "prompt unavailable" } : (replies.feedback?.resolve(value), u | CODE |
| HIGH | tests/test_opencode_v2_tui_bridge.py | 154 | if (permissionA.requestID !== "perm-a" || permissionA.reply !== "once" || permissionA.decision !== undefined) throw new | CODE |
| HIGH | tests/test_opencode_v2_tui_bridge.py | 187 | if (feedbackA.sessionID !== "child-a" || feedbackA.text?.resume !== undefined || feedbackA.resume !== false || typeof fe | CODE |
| HIGH⚡ | tests/test_ci_linux_guard_routing.py | 119 | self.assertNotIn("inputs.ref || github.ref", workflow) | CODE |
| HIGH | tests/test_ci_test_execution_registry.py | 448 | "CMUX_TEST_REGISTRY_BASE_REF: ${{ github.event.pull_request.base.ref || github.event.merge_group.base_ref || | CODE |
| HIGH | tests/test_ghostty_zsh_pure_preprompt_redraw.py | 50 | zle && zle .reset-prompt | CODE |
| HIGH⚡ | tests/test_iroh_drift_issue.py | 21 | let issue = null; | CODE |
| HIGH⚡ | tests/test_iroh_drift_issue.py | 25 | listForRepo: async () => ({data: issue && issue.state === 'open' ? [issue] : []}), | CODE |
| HIGH⚡ | tests/test_iroh_drift_issue.py | 27 | create: async args => { writes.push(['create', args]); issue = {...args, number: 9, state: 'open'}; }, | CODE |
| HIGH⚡ | tests/test_iroh_drift_issue.py | 28 | createComment: async args => writes.push(['comment', args]), | CODE |
| 257 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | web/services/vms/guestAgentUpdates.ts | 474 | except Exception as error: | CODE |
| LOW | web/services/vms/guestAgentUpdates.ts | 493 | except Exception as error: | CODE |
| LOW | web/services/vms/guestAgentUpdates.ts | 498 | except Exception: | CODE |
| MEDIUM | web/services/vms/guestAgentUpdates.ts | 156 | def api(path): | CODE |
| LOW | web/services/vms/guestResourceReporter.ts | 62 | except Exception: | CODE |
| LOW | web/services/vms/drivers/guestCliInstallCommand.ts | 144 | except Exception as error: | CODE |
| LOW | web/services/vms/drivers/guestCliInstallCommand.ts | 163 | except Exception as error: | CODE |
| LOW⚡ | web/services/vms/drivers/guestCliInstallCommand.ts | 253 | except Exception as error: | CODE |
| LOW⚡ | web/services/vms/drivers/guestCliInstallCommand.ts | 258 | except Exception as cleanup_error: | CODE |
| LOW⚡ | web/services/vms/drivers/guestCliInstallCommand.ts | 263 | except Exception as restore_error: | CODE |
| LOW⚡ | web/services/vms/drivers/guestCliInstallCommand.ts | 268 | except Exception as directory_error: | CODE |
| LOW⚡ | web/services/vms/drivers/guestCliInstallCommand.ts | 273 | except Exception as backup_error: | CODE |
| LOW | Resources/bin/cmux-hermes-sitecustomize.py | 97 | except Exception: | CODE |
| LOW | tests/test_cli_omo_shadow_config_mirror.py | 156 | except Exception as exc: | CODE |
| MEDIUM | tests/test_cli_omo_shadow_config_mirror.py | 153 | def main() -> int: | CODE |
| LOW | tests/test_codex_permission_prompt_notification.py | 430 | except Exception as exc: | CODE |
| LOW | tests/test_codex_permission_prompt_notification.py | 449 | except Exception as exc: | CODE |
| MEDIUM | tests/test_codex_permission_prompt_notification.py | 427 | def main() -> int: | CODE |
| LOW | tests/test_cli_sigpipe_ignore.py | 58 | except Exception as exc: | CODE |
| MEDIUM | tests/test_cli_sigpipe_ignore.py | 55 | def main() -> int: | CODE |
| LOW | tests/test_cli_claude_teams_main_vertical.py | 287 | except Exception as exc: | CODE |
| MEDIUM | tests/test_cli_claude_teams_main_vertical.py | 284 | def main() -> int: | CODE |
| LOW | tests/test_cli_vm_resize.py | 78 | except Exception as error: | CODE |
| MEDIUM | tests/test_cli_vm_resize.py | 50 | def serve(self) -> None: | CODE |
| LOW | tests/test_multi_workspace_focus.py | 59 | except Exception: | CODE |
| LOW | tests/test_multi_workspace_focus.py | 65 | except Exception: | CODE |
| LOW | tests/test_multi_workspace_focus.py | 79 | except Exception: | CODE |
| LOW | tests/test_multi_workspace_focus.py | 376 | except Exception as e: | CODE |
| LOW | tests/test_claude_wrapper_mutual_shim_loop.py | 875 | except Exception as exc: # noqa: BLE001 - simple test harness | STRING |
| LOW | tests/test_cli_vm_transfer_progress.py | 84 | except Exception as error: | CODE |
| MEDIUM | tests/test_cli_vm_transfer_progress.py | 46 | def serve() -> None: | CODE |
| LOW | tests/test_cli_omx_hud_tmux_split.py | 161 | except Exception as exc: | CODE |
| LOW | tests/test_cli_omx_hud_tmux_split.py | 558 | except Exception as exc: | CODE |
| MEDIUM | tests/test_cli_omx_hud_tmux_split.py | 555 | def main() -> int: | CODE |
| LOW | tests/test_cli_tmux_compat_split_window_surface_ref.py | 131 | except Exception as exc: | CODE |
| LOW | tests/test_cli_tmux_compat_split_window_surface_ref.py | 220 | except Exception as exc: | CODE |
| MEDIUM | tests/test_cli_tmux_compat_split_window_surface_ref.py | 217 | def main() -> int: | CODE |
| LOW | tests/test_cli_version_flag.py | 52 | except Exception as exc: | CODE |
| MEDIUM | tests/test_cli_version_flag.py | 49 | def main() -> int: | CODE |
| MEDIUM | tests/test_cli_socket_autodiscovery.py | 648 | def main() -> int: | CODE |
| LOW | tests/test_cli_socket_autodiscovery.py | 96 | except Exception as exc: # pragma: no cover - explicit surface on failure | CODE |
| LOW | tests/test_cli_socket_autodiscovery.py | 227 | except Exception as exc: | CODE |
| LOW | tests/test_cli_socket_autodiscovery.py | 282 | except Exception as exc: | CODE |
| LOW | tests/test_cli_socket_autodiscovery.py | 329 | except Exception as exc: | CODE |
| LOW | tests/test_cli_socket_autodiscovery.py | 619 | except Exception as exc: | CODE |
| LOW | tests/test_cli_socket_autodiscovery.py | 651 | except Exception as exc: | CODE |
| LOW | tests/test_cli_claude_teams_moved_surface.py | 25 | except Exception as exc: | CODE |
| MEDIUM | tests/test_cli_claude_teams_moved_surface.py | 22 | def main() -> int: | CODE |
| LOW | tests/test_cli_omo_fallback_path.py | 24 | except Exception as exc: | CODE |
| MEDIUM | tests/test_cli_omo_fallback_path.py | 21 | def main() -> int: | CODE |
| LOW | tests/test_cli_omo_tmux_respawn_pane.py | 204 | except Exception as exc: | CODE |
| LOW | tests/test_cli_omo_tmux_respawn_pane.py | 457 | except Exception as exc: | CODE |
| MEDIUM | tests/test_cli_omo_tmux_respawn_pane.py | 454 | def main() -> int: | CODE |
| LOW | tests/test_workspace_churn_up_arrow_lag.py | 498 | except Exception: | CODE |
| LOW | tests/test_claude_hook_push_notification.py | 106 | except Exception as exc: | CODE |
| LOW | tests/test_claude_hook_push_notification.py | 320 | except Exception as exc: | CODE |
| MEDIUM | tests/test_claude_hook_push_notification.py | 90 | def _run(self) -> None: | CODE |
| MEDIUM | tests/test_claude_hook_push_notification.py | 317 | def main() -> int: | CODE |
| LOW⚡ | tests/test_e2e_warm_derived_data.py | 230 | except Exception: # the download mock leaves nothing to verify | CODE |
| LOW | tests/test_cli_claude_teams_skips_wrapper_claude.py | 24 | except Exception as exc: | CODE |
| 588 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | Resources/bin/cmux-hermes-sitecustomize.py | 9 | CODE | |
| LOW | tests/test_e2e_backend_scripts.py | 4 | CODE | |
| LOW | tests/test_issue_15066_zsh_watcher_sleep.py | 15 | CODE | |
| LOW | tests/test_cli_claude_teams_trust_optin.py | 9 | CODE | |
| LOW | tests/test_ci_cmux_unit_test_shard.py | 4 | CODE | |
| LOW | tests/test_cli_tmux_compat_targeted_read_budget.py | 3 | CODE | |
| LOW | tests/test_node_product_cache.py | 18 | CODE | |
| LOW | tests/test_cli_omo_shadow_config_mirror.py | 13 | CODE | |
| LOW | tests/test_ci_pull_request_caches_are_read_only.py | 11 | CODE | |
| LOW | tests/test_codex_permission_prompt_notification.py | 19 | CODE | |
| LOW | tests/test_shell_no_git_watch.py | 9 | CODE | |
| LOW | tests/test_shell_zdotdir_user_override.py | 18 | CODE | |
| LOW | tests/test_cli_codex_teams_informational.py | 4 | CODE | |
| LOW | tests/test_verify_local.py | 19 | CODE | |
| LOW | tests/test_issue_7028_claude_shim_persistence.py | 4 | CODE | |
| LOW | tests/tmux_compat_polling_fixture.py | 3 | CODE | |
| LOW | tests/test_claude_wrapper_hooks.py | 6 | CODE | |
| LOW | tests/test_ci_owned_spm_scratch.py | 4 | CODE | |
| LOW | tests/test_cli_sigpipe_ignore.py | 4 | CODE | |
| LOW | tests/test_cli_tmux_wait_for_private_dir.py | 8 | CODE | |
| LOW | tests/test_claude_wrapper_subrouter_resume_marker.py | 26 | CODE | |
| LOW | tests/test_claude_wrapper_subrouter_resume_marker.py | 28 | CODE | |
| LOW | tests/test_cli_claude_teams_main_vertical.py | 20 | CODE | |
| LOW | tests/test_claude_teams_test_utils.py | 4 | CODE | |
| LOW | tests/test_cli_vm_resize.py | 4 | CODE | |
| LOW | tests/test_shell_git_config_remote_url_parsing.py | 12 | CODE | |
| LOW | tests/test_seed_derived_data.py | 16 | CODE | |
| LOW | tests/test_claude_wrapper_mutual_shim_loop.py | 2 | CODE | |
| LOW | tests/test_issue_5164_starship_prompt_composition.py | 28 | CODE | |
| LOW | tests/test_cli_version_memory_guard_harness.py | 12 | CODE | |
| LOW | tests/test_ci_queue_janitor.py | 4 | CODE | |
| LOW | tests/test_cli_vm_transfer_progress.py | 4 | CODE | |
| LOW | tests/test_cli_omx_hud_tmux_split.py | 6 | CODE | |
| LOW | tests/test_cli_broken_pipe_writes.py | 4 | CODE | |
| LOW | tests/test_ci_owned_warm_state.py | 4 | CODE | |
| LOW | tests/agent_notification_test_utils.py | 6 | CODE | |
| LOW | tests/test_ci_repo_variable_defaults.py | 21 | CODE | |
| LOW | tests/test_poll_notary_submission.py | 4 | CODE | |
| LOW | tests/test_ci_workflow_guards_are_wired.py | 23 | CODE | |
| LOW | tests/test_ci_r2_cache_census.py | 3 | CODE | |
| LOW | tests/test_cli_workspace_mutation_arguments.py | 13 | CODE | |
| LOW | tests/test_swift_testing_require_not_nested.py | 25 | CODE | |
| LOW | tests/test_opencode_v2_tui_bridge.py | 3 | CODE | |
| LOW | tests/test_current_command_fixture.py | 3 | CODE | |
| LOW | tests/test_dev_fleet_warm_slot.py | 8 | CODE | |
| LOW | tests/test_dev_fleet_warm_slot.py | 16 | CODE | |
| LOW | tests/test_cmux_settings_jsonc.py | 4 | CODE | |
| LOW | tests/test_nushell_shim_path_refront.py | 38 | CODE | |
| LOW | tests/test_ci_required_checks_are_bounded.py | 22 | CODE | |
| LOW | tests/test_web_complexity_source_enumeration.py | 23 | CODE | |
| LOW | tests/test_web_complexity_source_enumeration.py | 31 | CODE | |
| LOW | tests/test_ci_test_execution_registry.py | 9 | CODE | |
| LOW | tests/test_ci_test_execution_registry.py | 21 | CODE | |
| LOW | tests/test_cli_tmux_compat_split_window_surface_ref.py | 6 | CODE | |
| LOW | tests/test_ghostty_zsh_pure_preprompt_redraw.py | 16 | CODE | |
| LOW | tests/test_cli_version_flag.py | 6 | CODE | |
| LOW | …est_shell_scrollback_restore_replay_path_regression.py | 10 | CODE | |
| LOW | tests/test_ci_health_report.py | 12 | CODE | |
| LOW | tests/test_cli_socket_autodiscovery.py | 4 | CODE | |
| LOW | tests/test_ci_change_areas.py | 5 | CODE | |
| 660 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | web/scripts/devbox-agent-launch.py | 22 | CODE | |
| LOW | tests/test_issue_15066_zsh_watcher_sleep.py | 33 | CODE | |
| LOW | tests/test_ci_cmux_unit_test_shard.py | 486 | CODE | |
| LOW | tests/test_ci_cmux_unit_test_shard.py | 842 | CODE | |
| LOW | tests/test_cli_tmux_compat_targeted_read_budget.py | 331 | CODE | |
| LOW | tests/test_cli_tmux_compat_targeted_read_budget.py | 81 | CODE | |
| LOW | tests/test_ci_e2e_compilation_cache.py | 607 | CODE | |
| LOW | tests/test_ci_pull_request_caches_are_read_only.py | 36 | CODE | |
| LOW | tests/test_shell_no_git_watch.py | 177 | CODE | |
| LOW | tests/test_issue_7028_claude_shim_persistence.py | 16 | CODE | |
| LOW | tests/test_claude_wrapper_hooks.py | 1128 | CODE | |
| LOW | tests/test_claude_wrapper_hooks.py | 1188 | CODE | |
| LOW | tests/test_claude_wrapper_hooks.py | 1747 | CODE | |
| LOW | tests/test_claude_wrapper_hooks.py | 1917 | CODE | |
| LOW | tests/test_claude_wrapper_hooks.py | 1996 | CODE | |
| LOW | tests/test_claude_wrapper_hooks.py | 2008 | CODE | |
| LOW | tests/test_claude_wrapper_hooks.py | 1920 | CODE | |
| LOW | tests/test_app_host_layer_transport.py | 157 | CODE | |
| LOW | tests/test_claude_teams_test_utils.py | 15 | CODE | |
| LOW | tests/test_cli_vm_resize.py | 50 | CODE | |
| LOW | tests/test_shell_git_config_remote_url_parsing.py | 30 | CODE | |
| LOW | tests/test_shell_git_config_remote_url_parsing.py | 131 | CODE | |
| LOW | tests/test_seed_derived_data.py | 1435 | CODE | |
| LOW | tests/test_claude_wrapper_mutual_shim_loop.py | 889 | CODE | |
| LOW | tests/test_cli_vm_transfer_progress.py | 22 | CODE | |
| LOW | tests/test_cli_vm_transfer_progress.py | 31 | CODE | |
| LOW | tests/test_cli_vm_transfer_progress.py | 46 | CODE | |
| LOW | tests/test_cli_omx_hud_tmux_split.py | 35 | CODE | |
| LOW | tests/test_ci_evidence_outcomes.py | 83 | CODE | |
| LOW | tests/test_cli_broken_pipe_writes.py | 166 | CODE | |
| LOW | tests/test_ci_repo_variable_defaults.py | 160 | CODE | |
| LOW | tests/test_ci_repo_variable_defaults.py | 188 | CODE | |
| LOW | tests/test_cmux_cua_drag_cursor_harness.py | 115 | CODE | |
| LOW | tests/test_cli_right_sidebar_aliases.py | 23 | CODE | |
| LOW | tests/test_swift_testing_require_not_nested.py | 46 | CODE | |
| LOW | tests/test_cmux_settings_jsonc.py | 461 | CODE | |
| LOW | tests/test_cmux_settings_jsonc.py | 551 | CODE | |
| LOW | tests/test_gh_merge_green.py | 1264 | CODE | |
| LOW | tests/test_ghostty_zsh_pure_preprompt_redraw.py | 103 | CODE | |
| LOW | …est_shell_scrollback_restore_replay_path_regression.py | 18 | CODE | |
| LOW | tests/test_cli_socket_autodiscovery.py | 462 | CODE | |
| LOW | tests/test_cli_socket_autodiscovery.py | 575 | CODE | |
| LOW | tests/test_cli_socket_autodiscovery.py | 105 | CODE | |
| LOW | tests/test_ci_change_areas.py | 155 | CODE | |
| LOW | tests/test_ci_change_areas.py | 2017 | CODE | |
| LOW | tests/test_ci_change_areas.py | 2037 | CODE | |
| LOW | tests/test_ci_change_areas.py | 2062 | CODE | |
| LOW | tests/test_ci_change_areas.py | 3405 | CODE | |
| LOW | tests/test_ci_change_areas.py | 7158 | CODE | |
| LOW | tests/test_merge_pbxproj.py | 129 | CODE | |
| LOW | tests/check_ghostty_zig_workflows.py | 551 | CODE | |
| LOW | tests/test_amp_wrapper_hooks.py | 63 | CODE | |
| LOW | tests/test_cloud_upgrade_rollout_retirement.py | 11 | CODE | |
| LOW | tests/test_hermes_wrapper_hooks.py | 138 | CODE | |
| LOW | tests/test_workspace_churn_up_arrow_lag.py | 159 | CODE | |
| LOW | tests/test_workspace_churn_up_arrow_lag.py | 399 | CODE | |
| LOW | tests/test_claude_hook_push_notification.py | 90 | CODE | |
| LOW | tests/test_claude_hook_push_notification.py | 110 | CODE | |
| LOW | tests/test_issue_8953_zsh_prompt_wrap_guard.py | 55 | CODE | |
| LOW | tests/test_issue_8953_zsh_prompt_wrap_guard.py | 132 | CODE | |
| 590 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | web/services/vms/guestCli.ts | 1561 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | web/services/vms/guestCli.ts | 1566 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | web/services/vms/guestCli.ts | 178 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | web/services/vms/guestCli.ts | 185 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | web/services/vms/guestCli.ts | 884 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | web/services/vms/guestCli.ts | 889 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | web/services/vms/guestCli.ts | 1227 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | web/services/vms/guestCli.ts | 1232 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | web/services/vms/guestCli.ts | 1338 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | web/services/vms/guestCli.ts | 1342 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | web/services/vms/guestCli.ts | 2031 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | web/services/vms/guestCli.ts | 2033 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_ci_queue_janitor.py | 722 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_ci_queue_janitor.py | 724 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_ci_pbxproj_test_wiring.sh | 89 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_ci_pbxproj_test_wiring.sh | 110 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_ci_pbxproj_test_wiring.sh | 144 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_ci_pbxproj_test_wiring.sh | 220 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | scripts/remote-tmux-reconnect-auth-harness.sh | 2 | # ============================================================================ | COMMENT |
| MEDIUM | scripts/remote-tmux-reconnect-auth-harness.sh | 21 | # ============================================================================ | COMMENT |
| MEDIUM | scripts/remote-tmux-et-host.sh | 2 | # ============================================================================ | COMMENT |
| MEDIUM | scripts/remote-tmux-et-host.sh | 13 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | scripts/remote-tmux-et-conformance.sh | 341 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | scripts/remote-tmux-et-conformance.sh | 354 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/remote-tmux-et-conformance.sh | 2 | # ============================================================================ | COMMENT |
| MEDIUM | scripts/remote-tmux-et-conformance.sh | 77 | # ============================================================================ | COMMENT |
| MEDIUM | scripts/lint-remote-tmux-no-polling.sh | 2 | # ============================================================================ | COMMENT |
| MEDIUM | scripts/lint-remote-tmux-no-polling.sh | 21 | # ============================================================================ | COMMENT |
| MEDIUM | scripts/remote-tmux-attach-wait-harness.sh | 2 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | scripts/remote-tmux-attach-wait-harness.sh | 34 | # ============================================================================ | COMMENT |
| MEDIUM | scripts/remote-tmux-layout-repro.sh | 2 | # ============================================================================ | COMMENT |
| MEDIUM | scripts/remote-tmux-layout-repro.sh | 22 | # ============================================================================ | COMMENT |
| MEDIUM | scripts/remote-tmux-et-e2e.sh | 2 | # ============================================================================ | COMMENT |
| MEDIUM | scripts/remote-tmux-et-e2e.sh | 16 | # ============================================================================ | COMMENT |
| MEDIUM | scripts/check-test-determinism.py | 62 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/check-test-determinism.py | 64 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/check-test-determinism.py | 108 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/check-test-determinism.py | 110 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/check-test-determinism.py | 182 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/check-test-determinism.py | 184 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/check-test-determinism.py | 3731 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/check-test-determinism.py | 3733 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/check-test-determinism.py | 3908 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/check-test-determinism.py | 3910 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/check-test-determinism.py | 3959 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/check-test-determinism.py | 3961 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/check-test-determinism.py | 5661 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/check-test-determinism.py | 5663 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/check-test-determinism.py | 530 | # --------------------------------------------------------------------------- | STRING |
| MEDIUM | scripts/check-test-determinism.py | 532 | # --------------------------------------------------------------------------- | STRING |
| MEDIUM⚡ | scripts/remote-tmux-et-conformance-selftest.sh | 2 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | scripts/remote-tmux-et-conformance-selftest.sh | 24 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | scripts/remote-tmux-et-conformance-selftest.sh | 157 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | scripts/remote-tmux-et-conformance-selftest.sh | 159 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | scripts/remote-tmux-et-conformance-selftest.sh | 291 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | scripts/remote-tmux-et-conformance-selftest.sh | 293 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | scripts/remote-tmux-et-conformance-selftest.sh | 306 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | scripts/remote-tmux-et-conformance-selftest.sh | 309 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/remote-tmux-et-conformance-selftest.sh | 45 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/remote-tmux-et-conformance-selftest.sh | 48 | # --------------------------------------------------------------------------- | COMMENT |
| 88 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | web/app/[locale]/(landing)/docs/api/page.tsx | 467 | print(rpc("workspace.list", req_id="ws")) | CODE |
| HIGH | web/app/[locale]/(landing)/docs/api/page.tsx | 470 | print(rpc( | CODE |
| HIGH | web/app/[locale]/(landing)/docs/notifications/page.tsx | 256 | elif [ "$event" = "SubagentStop" ]; then | CODE |
| HIGH | web/tests/vm-guest-resource-reporter.test.ts | 18 | print(json.dumps(sample())) | CODE |
| HIGH | web/tests/vm-guest-resource-reporter.test.ts | 51 | print(json.dumps({'url':request.full_url,'method':request.method,'body':json.loads(request.data),'headers':dict(requ | CODE |
| HIGH | web/tests/vm-agent-updates.test.ts | 76 | print(server.server_address[1], flush=True) | CODE |
| HIGH | web/tests/vm-guest-prompt.test.ts | 247 | print("default", ready.is_set()) | CODE |
| HIGH | web/tests/vm-guest-prompt.test.ts | 249 | print("named", ready.wait(2.0)) | CODE |
| HIGH | web/tests/vm-guest-prompt.test.ts | 273 | print("refused", run(refused, 11)) | CODE |
| HIGH | web/tests/vm-guest-prompt.test.ts | 274 | print("transport", run(urllib.error.URLError("timed out"), 8)) | CODE |
| HIGH | web/tests/vm-guest-prompt.test.ts | 310 | print(json.dumps([c for c in calls if c.startswith(("terminal list", "workspace create"))])) | CODE |
| HIGH | web/tests/vm-guest-prompt.test.ts | 341 | print(json.dumps(calls)) | CODE |
| HIGH | web/tests/vm-guest-prompt.test.ts | 367 | print(json.dumps(calls)) | CODE |
| HIGH | web/scripts/devbox-image-common.ts | 780 | elif [ "$a1" = server ] && [ "$a2" = start ]; then daemon="$daemon $(basename "$d")"; fi | CODE |
| HIGH | web/services/vms/guestAgentUpdates.ts | 128 | print(now_iso() + " " + mode + ": " + message, flush=True) | CODE |
| HIGH | web/services/vms/guestAgentUpdates.ts | 194 | return None | CODE |
| HIGH⚡ | web/services/vms/guestAgentUpdates.ts | 237 | return None | CODE |
| HIGH⚡ | web/services/vms/guestAgentUpdates.ts | 242 | return None | CODE |
| HIGH⚡ | web/services/vms/guestAgentUpdates.ts | 252 | return True | CODE |
| HIGH⚡ | web/services/vms/guestAgentUpdates.ts | 265 | return True | CODE |
| HIGH⚡ | web/services/vms/guestAgentUpdates.ts | 271 | return True | CODE |
| HIGH⚡ | web/services/vms/guestAgentUpdates.ts | 279 | return True | CODE |
| HIGH⚡ | web/services/vms/guestAgentUpdates.ts | 285 | return True | CODE |
| HIGH⚡ | web/services/vms/guestAgentUpdates.ts | 288 | return False | CODE |
| HIGH | web/services/vms/guestAgentUpdates.ts | 430 | return False | CODE |
| HIGH | web/services/vms/guestAgentUpdates.ts | 446 | elif source != "standalone" and current: | CODE |
| HIGH⚡ | web/services/vms/guestResourceReporter.ts | 42 | print(json.dumps(sample())) | CODE |
| HIGH⚡ | web/services/vms/guestCli.ts | 515 | elif [ "\$cmux_route_auth" = accepted ]; then | CODE |
| HIGH⚡ | web/services/vms/guestCli.ts | 517 | elif [ "\$cmux_route_auth" = rejected ]; then | CODE |
| HIGH⚡ | web/services/vms/guestCli.ts | 519 | elif [ "\$cmux_route_auth" = insecure_url ]; then | CODE |
| HIGH⚡ | web/services/vms/guestCli.ts | 521 | elif [ "\$cmux_route_auth" = unknown ]; then | CODE |
| HIGH⚡ | web/services/vms/guestCli.ts | 1575 | elif \$sel == "" or \$sel == "current" then | CODE |
| HIGH⚡ | web/services/vms/guestCli.ts | 1580 | elif (\$byname | length) > 1 then "ambiguous\\t\\(\$byname | map(.id) | join(" "))\\t" | CODE |
| HIGH⚡ | web/services/vms/guestCli.ts | 1624 | elif .kind == "split" then {direction: (if .direction == "vertical" then "vertical" else "horizontal" end), | CODE |
| HIGH⚡ | web/services/vms/guestCli.ts | 1626 | elif .kind == "stack" then ((.pane_ids // []) | stack_nodes) | CODE |
| HIGH⚡ | web/services/vms/guestCli.ts | 1627 | elif .kind == "viewport" then ((.columns // []) | viewport_nodes) | CODE |
| HIGH⚡ | web/services/vms/guestCli.ts | 1673 | elif (has("type") | not) then bad(\$p + ".type"; "surface needs type (terminal, browser, or project)") | CODE |
| HIGH⚡ | web/services/vms/guestCli.ts | 1674 | elif ((.type | tostring) as \$t | (\$t == "terminal" or \$t == "browser" or \$t == "project") | not) then bad(\$p + | CODE |
| HIGH⚡ | web/services/vms/guestCli.ts | 1675 | elif .type == "browser" and (((.url // "") | tostring) == "") then bad(\$p + ".url"; "browser surface needs url") | CODE |
| HIGH⚡ | web/services/vms/guestCli.ts | 1676 | elif has("env") and (.env | type) != "object" then bad(\$p + ".env"; "must be an object of KEY: VALUE strings") | CODE |
| HIGH⚡ | web/services/vms/guestCli.ts | 1677 | elif has("command") and (.command | type) != "string" then bad(\$p + ".command"; "must be a string") | CODE |
| HIGH⚡ | web/services/vms/guestCli.ts | 1678 | elif has("cwd") and (.cwd | type) != "string" then bad(\$p + ".cwd"; "must be a string") | CODE |
| HIGH⚡ | web/services/vms/guestCli.ts | 1682 | elif has("pane") and has("direction") then bad(\$p; "node must not have both pane and direction") | CODE |
| HIGH⚡ | web/services/vms/guestCli.ts | 1683 | elif has("pane") then | CODE |
| HIGH⚡ | web/services/vms/guestCli.ts | 1685 | elif (.pane.surfaces | type) != "array" or (.pane.surfaces | length) == 0 then bad(\$p + ".pane.surfaces"; "needs | CODE |
| HIGH⚡ | web/services/vms/guestCli.ts | 1687 | elif has("direction") then | CODE |
| HIGH⚡ | web/services/vms/guestCli.ts | 1689 | elif (.children | type) != "array" or (.children | length) != 2 then bad(\$p + ".children"; "split needs exactly | CODE |
| HIGH⚡ | web/services/vms/guestCli.ts | 1690 | elif has("split") and (.split | type) != "number" then bad(\$p + ".split"; "must be a number between 0.1 and 0.9" | CODE |
| HIGH⚡ | web/services/vms/guestCli.ts | 1694 | elif type == "object" and has("layout") then {doc: ., prefix: "\$.layout"} | CODE |
| HIGH⚡ | web/services/vms/guestCli.ts | 1695 | elif type == "object" and (has("pane") or has("direction")) then {doc: {layout: .}, prefix: "\$"} | CODE |
| HIGH | web/services/vms/guestCli.ts | 130 | elif [ -f /etc/cmux/model-plane.env ]; then | CODE |
| HIGH | web/services/vms/guestCli.ts | 323 | elif ! self_human "\$cmux_self_out" 2>/dev/null; then | CODE |
| HIGH | web/services/vms/guestCli.ts | 556 | elif [ "\$cmux_ua_age" -lt 1440 ]; then cmux_ua_rel="\$(cmux_message usageAgoHours "\$((cmux_ua_age / 60))")" | CODE |
| HIGH | web/services/vms/guestCli.ts | 670 | elif [ "\$2" -gt 0 ] 2>/dev/null; then | CODE |
| HIGH | web/services/vms/guestCli.ts | 1924 | elif [ "\$(printf '%s\\n' "\$cmux_step" | jq -r 'if .terminal then 1 else 0 end')" = 1 ]; then | CODE |
| HIGH | web/services/vms/guestCli.ts | 2187 | elif [ "\$cmux_aw_output" -eq 0 ]; then | CODE |
| HIGH | web/services/vms/guestCli.ts | 2362 | elif [ -z "\$cmux_pp_remote" ]; then cmux_pp_remote="\$1" | CODE |
| HIGH | web/services/vms/drivers/guestCliInstallCommand.ts | 295 | print("CMUX_GUEST_INSTALL_FAILURE=" + json.dumps(detail), file=sys.stderr) | CODE |
| HIGH | Resources/browser-repl/agent-tools.js | 1062 | print("warn", `# ${blockedMessage(p)}; the tab stayed on its page`); | CODE |
| HIGH | Resources/browser-repl/agent-tools.js | 1067 | print("warn", `# a new tab for ${p.url} was closed: ${reason}`); | CODE |
| 9 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL⚡ | Resources/agent-session-solid/index.html | 23 | !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?def | CODE |
| CRITICAL | Resources/markdown-viewer/vega-lite.min.js | 1 | !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("vega")):"function"==typeof define | CODE |
| CRITICAL | Resources/markdown-viewer/marked.min.js | 6 | !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?def | CODE |
| CRITICAL | …ources/markdown-viewer/webviews-app/agent-session.html | 16 | !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?def | CODE |
| CRITICAL | Resources/agent-session-react/index.html | 23 | !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?def | CODE |
| CRITICAL | cmux-tui/crates/cmux-tui/src/ui/pane.rs | 354 | let plus_label = app.config.tabs.plus.label.clone(); | CODE |
| CRITICAL | cmux-tui/crates/cmux-tui-core/tests/pty.rs | 1432 | assert!(attach.initial.frame.kitty_graphics.placements.is_empty()); | CODE |
| CRITICAL | …-tui-core/src/workspace_registry/journal_extensions.rs | 2043 | delivery.manifest.delivery.retry.backoff_ms.saturating_mul(u64::from(attempt)), | CODE |
| CRITICAL | cmux-tui/bindings/rust/src/resource/handles.rs | 1149 | &self.screen.workspace.session.client.read(ops::PANE_GET, self.params())?, | CODE |
| CRITICAL | cmux-tui/bindings/rust/src/resource/handles.rs | 1163 | let value = self.screen.workspace.session.client.mutate( | CODE |
| CRITICAL | cmux-tui/bindings/rust/src/resource/handles.rs | 1193 | self.screen.workspace.session.client.mutate( | CODE |
| CRITICAL | cmux-tui/bindings/rust/src/resource/handles.rs | 1208 | self.screen.workspace.session.client.mutate( | CODE |
| CRITICAL | cmux-tui/bindings/rust/src/resource/handles.rs | 1227 | self.screen.workspace.session.client.mutate( | CODE |
| CRITICAL | cmux-tui/bindings/rust/src/resource/handles.rs | 1237 | let value = self.screen.workspace.session.client.read( | CODE |
| CRITICAL | cmux-tui/bindings/rust/src/resource/handles.rs | 1255 | self.screen.workspace.session.client.mutate( | CODE |
| CRITICAL | cmux-tui/bindings/rust/src/resource/handles.rs | 1274 | self.screen.workspace.session.client.mutate( | CODE |
| CRITICAL | cmux-tui/bindings/rust/src/resource/handles.rs | 1297 | self.screen.workspace.session.client.mutate( | CODE |
| CRITICAL | cmux-tui/bindings/rust/src/resource/handles.rs | 1326 | self.screen.workspace.session.client.mutate( | CODE |
| CRITICAL | cmux-tui/bindings/rust/src/resource/handles.rs | 1340 | mutation_empty(self.screen.workspace.session.client.mutate( | CODE |
| CRITICAL | cmux-tui/bindings/rust/src/resource/handles.rs | 1356 | let value = self.screen.workspace.session.client.mutate( | CODE |
| CRITICAL | cmux-tui/bindings/rust/src/resource/handles.rs | 1380 | let value = self.screen.workspace.session.client.mutate( | CODE |
| CRITICAL | cmux-tui/bindings/rust/src/resource/handles.rs | 1404 | let value = self.screen.workspace.session.client.mutate( | CODE |
| CRITICAL | cmux-tui/bindings/rust/src/resource/handles.rs | 1429 | &self.screen.workspace.session.client.read(ops::TAB_LIST, self.params())?, | CODE |
| CRITICAL | cmux-tui/bindings/rust/src/resource/handles.rs | 1438 | &self.screen.workspace.session.client.read(ops::TAB_LIST, self.params())?, | CODE |
| CRITICAL | cmux-tui/bindings/rust/src/resource/handles.rs | 1477 | &self.pane.screen.workspace.session.client.read(ops::TAB_GET, self.params())?, | CODE |
| CRITICAL | cmux-tui/bindings/rust/src/resource/handles.rs | 1500 | self.pane.screen.workspace.session.client.mutate( | CODE |
| CRITICAL | cmux-tui/bindings/rust/src/resource/handles.rs | 1519 | self.pane.screen.workspace.session.client.mutate( | CODE |
| CRITICAL | cmux-tui/bindings/rust/src/resource/handles.rs | 1534 | self.pane.screen.workspace.session.client.mutate( | CODE |
| CRITICAL | cmux-tui/bindings/rust/src/resource/handles.rs | 1548 | mutation_empty(self.pane.screen.workspace.session.client.mutate( | CODE |
| CRITICAL | workers/iroh-v2/src/broker.ts | 227 | if (request.relayURLs.some(url => !this.dependencies.relays.configuration.relayURLs.includes(url))) throw new Op | CODE |
| CRITICAL | workers/iroh-v2/src/broker.ts | 296 | if (request.relayURLs.some(url => !this.dependencies.relays.configuration.relayURLs.includes(url))) throw new Op | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | web/messages/tr.json | 649 | "placeholder": "E-posta girin", | CODE |
| LOW | web/messages/ja.json | 990 | "placeholder": "メールアドレスを入力", | CODE |
| LOW | web/messages/ja.json | 3009 | "placeholder": "ドキュメントを検索...", | CODE |
| LOW | web/messages/ja.json | 7143 | "placeholder": "フィードを検索" | CODE |
| LOW | web/messages/de.json | 649 | "placeholder": "E-Mail-Adresse eingeben", | CODE |
| LOW | web/messages/ru.json | 649 | "placeholder": "Введите email", | CODE |
| LOW | web/messages/pl.json | 649 | "placeholder": "Wpisz e-mail", | CODE |
| LOW | web/messages/uk.json | 649 | "placeholder": "Введіть email", | CODE |
| LOW | web/messages/zh-CN.json | 649 | "placeholder": "输入邮箱", | CODE |
| LOW | web/messages/en.json | 990 | "placeholder": "Enter email", | CODE |
| LOW | web/messages/en.json | 3090 | "placeholder": "Search docs...", | CODE |
| LOW | web/messages/en.json | 7233 | "placeholder": "Search Feed" | CODE |
| LOW | web/messages/km.json | 649 | "placeholder": "បញ្ចូលអ៊ីមែល", | CODE |
| LOW | web/messages/it.json | 649 | "placeholder": "Inserisci l’e-mail", | CODE |
| LOW | web/messages/bs.json | 649 | "placeholder": "Unesite e-poštu", | CODE |
| LOW | web/messages/fr.json | 649 | "placeholder": "Saisissez une adresse e-mail", | CODE |
| LOW | web/messages/pt-BR.json | 649 | "placeholder": "Digite o e-mail", | CODE |
| LOW | web/messages/ko.json | 649 | "placeholder": "이메일 입력", | CODE |
| LOW | web/messages/zh-TW.json | 649 | "placeholder": "輸入電子郵件", | CODE |
| LOW | web/messages/no.json | 649 | "placeholder": "Skriv inn e-postadresse", | CODE |
| LOW | web/messages/da.json | 649 | "placeholder": "Indtast e-mail", | CODE |
| LOW | web/messages/th.json | 649 | "placeholder": "กรอกอีเมล", | CODE |
| LOW | web/messages/es.json | 649 | "placeholder": "Introduce un correo", | CODE |
| LOW | web/messages/ar.json | 649 | "placeholder": "أدخل البريد الإلكتروني", | CODE |
| LOW | web/app/handler/cmux-sign-in.tsx | 1042 | } & Pick<ComponentProps<"input">, "name" | "type" | "autoComplete" | "placeholder" | "value" | "autoFocus" | "inputMode" | CODE |
| LOW | web/app/[locale]/components/docs-search-dialog.tsx | 70 | <span className="flex-1 truncate">{t("placeholder")}</span> | CODE |
| LOW | web/app/[locale]/components/docs-search.tsx | 238 | placeholder={t("placeholder")} | CODE |
| LOW | web/tests/dashboard-router.test.tsx | 36 | primaryEmail: "user@example.com", | CODE |
| LOW | web/tests/mobile-feed-performance.test.ts | 33 | ["build_sha", "https://private.example"], ["app_version", "user@example.com"], | CODE |
| LOW | web/tests/dashboard-account-menu.test.tsx | 102 | primaryEmail: "user@example.com", | CODE |
| LOW | web/tests/dashboard-account-menu.test.tsx | 115 | expect(html).toContain("user@example.com"); | CODE |
| LOW | web/tests/billing-team-catalog.test.ts | 14 | primaryEmail: "user@example.com", | CODE |
| LOW | web/tests/hosted-subrouter-routes.test.ts | 831 | primaryEmail: "user@example.com", | CODE |
| LOW | web/tests/vm-route-auth.test.ts | 369 | primaryEmail: "user@example.com", | CODE |
| LOW | web/tests/vm-route-auth.test.ts | 400 | id: "user-1", displayName: null, primaryEmail: "user@example.com", | CODE |
| LOW | web/tests/vm-route-auth.test.ts | 418 | primaryEmail: "user@example.com", | CODE |
| LOW | web/tests/vm-route-auth.test.ts | 480 | primaryEmail: "user@example.com", | CODE |
| LOW | web/tests/vm-route-auth.test.ts | 1274 | primaryEmail: "user@example.com", | CODE |
| LOW | web/tests/vm-route-auth.test.ts | 1303 | primaryEmail: "user@example.com", | CODE |
| LOW | web/tests/vm-route-auth.test.ts | 1688 | primaryEmail: "user@example.com", | CODE |
| LOW | web/tests/vm-route-auth.test.ts | 1735 | primaryEmail: "user@example.com", | CODE |
| LOW | web/tests/vm-route-auth.test.ts | 1787 | primaryEmail: "user@example.com", | CODE |
| LOW | web/tests/vm-route-auth.test.ts | 1842 | primaryEmail: "user@example.com", | CODE |
| LOW | web/tests/vm-route-auth.test.ts | 1982 | primaryEmail: "user@example.com", | CODE |
| LOW | web/tests/vm-route-auth.test.ts | 2019 | primaryEmail: "user@example.com", | CODE |
| LOW | web/tests/vm-route-auth.test.ts | 2054 | primaryEmail: "user@example.com", | CODE |
| LOW | web/tests/vm-route-auth.test.ts | 2093 | primaryEmail: "user@example.com", | CODE |
| LOW | web/tests/vm-route-auth.test.ts | 2133 | primaryEmail: "user@example.com", | CODE |
| LOW | web/tests/vm-route-auth.test.ts | 3227 | primaryEmail: "user@example.com", | CODE |
| LOW | web/tests/coderouter-accounts.test.tsx | 82 | label: "user@example.com", | CODE |
| LOW | web/tests/coderouter-accounts.test.tsx | 153 | expect(html).toContain("user@example.com"); | CODE |
| LOW | web/tests/coderouter-accounts.test.tsx | 222 | expect(html).toContain("user@example.com"); | CODE |
| LOW | web/tests/coderouter-account-transfer.test.ts | 129 | primaryEmail: "user@example.com", | CODE |
| LOW | web/tests/billing-purchase.test.ts | 241 | "user@example.com", | CODE |
| LOW | web/tests/coderouter-organizations-deadline.test.ts | 15 | primaryEmail: "user@example.com", | CODE |
| LOW | web/tests/dashboard-session-procedure.test.ts | 81 | primaryEmail: "user@example.com", | CODE |
| LOW | web/tests/dashboard-session-procedure.test.ts | 92 | primaryEmail: "user@example.com", | CODE |
| LOW | web/tests/helpers/hexclave-fixtures.ts | 80 | "team.updated": serverTeam({ display_name: "Acme Inc" }), | CODE |
| LOW | …pp/screens/settings/components/auth/emails-section.tsx | 169 | placeholder={t("placeholder")} | CODE |
| LOW | Resources/browser-repl/page-agent.js | 752 | const placeholder = el.getAttribute("placeholder"); | CODE |
| 105 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tests/test_claude_wrapper_hooks.py | 0 | write a fixture that exits at once while primed, then prime it. | STRING |
| HIGH | tests/test_claude_wrapper_mutual_shim_loop.py | 0 | write a fixture that exits at once while primed, then prime it. | STRING |
| HIGH | tests/test_pi_extension_install.py | 0 | write a fixture that exits at once while primed, then prime it. | STRING |
| HIGH | tests/test_pi_extension_dispatch.py | 0 | write a fixture that exits at once while primed, then prime it. | STRING |
| HIGH | tests/test_nushell_shim_path_refront.py | 0 | locate a nu binary: cmux_test_nu_bin override, path, then homebrew paths. | STRING |
| HIGH | tests/test_nushell_integration_hooks.py | 0 | locate a nu binary: cmux_test_nu_bin override, path, then homebrew paths. | STRING |
| HIGH | tests/test_nushell_resume_command_dialect.py | 0 | locate a nu binary: cmux_test_nu_bin override, path, then homebrew paths. | STRING |
| HIGH | tests/test_nushell_shim_path_refront.py | 0 | return a nu path, skip loudly when absent locally, fail when ci is set. | STRING |
| HIGH | tests/test_nushell_integration_hooks.py | 0 | return a nu path, skip loudly when absent locally, fail when ci is set. | STRING |
| HIGH | tests/test_nushell_resume_command_dialect.py | 0 | return a nu path, skip loudly when absent locally, fail when ci is set. | STRING |
| HIGH | tests/test_cli_omo_fallback_path.py | 0 | #!/usr/bin/env bash set -euo pipefail printf 'helper:%s\\n' "$0" printf 'args:%s\\n' "$*" | STRING |
| HIGH | tests/test_cli_omc_fallback_path.py | 0 | #!/usr/bin/env bash set -euo pipefail printf 'helper:%s\\n' "$0" printf 'args:%s\\n' "$*" | STRING |
| HIGH | tests/test_cli_omx_fallback_path.py | 0 | #!/usr/bin/env bash set -euo pipefail printf 'helper:%s\\n' "$0" printf 'args:%s\\n' "$*" | STRING |
| HIGH | cmux-tui/scripts/repro-10431-dash-only.py | 0 | python3 - <<'py' import os, select, termios, time, tty fd = os.open('/dev/tty', os.o_rdwr) old = termios.tcgetattr(fd) t | STRING |
| HIGH | cmux-tui/scripts/repro-10431-paste.py | 0 | python3 - <<'py' import os, select, termios, time, tty fd = os.open('/dev/tty', os.o_rdwr) old = termios.tcgetattr(fd) t | STRING |
| HIGH | cmux-tui/scripts/analyze-10431-audit.py | 0 | python3 - <<'py' import os, select, termios, time, tty fd = os.open('/dev/tty', os.o_rdwr) old = termios.tcgetattr(fd) t | STRING |
| HIGH | cmux-tui/scripts/repro-10431-pure-pty.py | 0 | python3 - <<'py' import os, select, termios, time, tty fd = os.open('/dev/tty', os.o_rdwr) old = termios.tcgetattr(fd) t | STRING |
| HIGH | cmuxTests/ShellStartupMatrixTests.swift | 0 | #!/bin/sh [ "${1:-}" = "--internal-persistent-pty-exec" ] || exit 2 shift executable="${1:-}" [ -n "$executable" ] || ex | STRING |
| HIGH | cmuxTests/RemoteInitialCommandBootstrapTests.swift | 0 | #!/bin/sh [ "${1:-}" = "--internal-persistent-pty-exec" ] || exit 2 shift executable="${1:-}" [ -n "$executable" ] || ex | STRING |
| HIGH | cmuxTests/SSHRemoteCommandChainingTests.swift | 0 | #!/bin/sh [ "${1:-}" = "--internal-persistent-pty-exec" ] || exit 2 shift executable="${1:-}" [ -n "$executable" ] || ex | STRING |
| HIGH | cmuxTests/SSHRemoteCWDRegressionTests.swift | 0 | #!/bin/sh [ "${1:-}" = "--internal-persistent-pty-exec" ] || exit 2 shift executable="${1:-}" [ -n "$executable" ] || ex | STRING |
| HIGH | cmuxTests/FishShellIntegrationTests.swift | 0 | #!/bin/sh [ "${1:-}" = "--internal-persistent-pty-exec" ] || exit 2 shift executable="${1:-}" [ -n "$executable" ] || ex | STRING |
| HIGH | cmuxTests/WorkspaceRemoteConnectionTests.swift | 0 | #!/bin/sh [ "${1:-}" = "--internal-persistent-pty-exec" ] || exit 2 shift executable="${1:-}" [ -n "$executable" ] || ex | STRING |
| HIGH | …xTests/RemoteInitialCommandBootstrapFailureTests.swift | 0 | #!/bin/sh [ "${1:-}" = "--internal-persistent-pty-exec" ] || exit 2 shift executable="${1:-}" [ -n "$executable" ] || ex | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | Resources/shell-integration/cmux-bash-bootstrap.bash | 21 | # This file is the single source of truth. Sources/GhosttyTerminalView.swift | COMMENT |
| MEDIUM | tests/test_multi_workspace_focus.py | 259 | # Create a browser surface in the same pane | COMMENT |
| MEDIUM | tests/test_multi_workspace_focus.py | 303 | # Create a browser in workspace B | COMMENT |
| MEDIUM | scripts/remote-tmux-brokered-harness.sh | 1346 | # Create the server first, then install the trap that can kill it, so a failure in between | COMMENT |
| MEDIUM | scripts/ci/validate-cla-policy.rb | 4 | # This file is executed only from the immutable base revision by | COMMENT |
| MEDIUM | …on/Session/RemoteSessionCoordinator+DaemonUpload.swift | 107 | # Create the owner marker atomically after noclobber is enabled. | COMMENT |
| MEDIUM | skills/cmux-cua/link-policy.sh | 4 | # This file is bundled inside the signed cmux-cua resource and sourced by both | COMMENT |
| MEDIUM | tests_v2/test_new_tab_render_after_splits.py | 85 | # Create a dense layout (similar to "4 splits") to exercise attach/focus races. | COMMENT |
| MEDIUM | tests_v2/test_new_tab_render_after_splits.py | 98 | # Create a new nested tab in the focused pane. | COMMENT |
| MEDIUM | tests_v2/test_browser_custom_keybinds.py | 71 | # Create a browser pane to the right, loading a real page. | COMMENT |
| MEDIUM | tests_v2/test_ctrl_enter_keybind.py | 127 | # Create a fresh tab to avoid interfering with existing sessions | COMMENT |
| MEDIUM | tests_v2/test_browser_goto_split.py | 129 | # Create a browser pane to the right, loading a local ephemeral page | COMMENT |
| MEDIUM | tests_v2/test_new_tab_interactive_after_splits.py | 192 | # Create a multi-pane layout to exercise bonsplit/SwiftUI focus races. | COMMENT |
| MEDIUM | tests_v2/test_signals_auto.py | 21 | # Create a PTY pair | COMMENT |
| MEDIUM | tests_v2/test_terminal_focus_routing.py | 131 | # Create a bunch of terminals to stress layout/focus code paths. | COMMENT |
| MEDIUM | tests_v2/test_terminal_focus_routing.py | 141 | # Create a split to the right (this may trigger bonsplit reparenting/structural updates). | COMMENT |
| MEDIUM⚡ | tests_v2/test_browser_panel_stability.py | 121 | # Create a browser pane (split). This should leave us with at least 2 panes. | COMMENT |
| MEDIUM | tests_v2/test_windows_api.py | 52 | # Create a workspace in w1, ensure it has at least 2 surfaces, then move it to w2. | COMMENT |
| MEDIUM⚡ | tests_v2/test_tab_dragging.py | 307 | # Create a new tab for clean state | COMMENT |
| MEDIUM⚡ | tests_v2/test_tab_dragging.py | 511 | # Create a new workspace for clean state | COMMENT |
| MEDIUM⚡ | tests_v2/test_tab_dragging.py | 604 | # Create a new tab for clean state | COMMENT |
| MEDIUM⚡ | tests_v2/test_tab_dragging.py | 694 | # Create a new tab for clean state | COMMENT |
| MEDIUM⚡ | tests_v2/test_tab_dragging.py | 968 | # Create a new tab for clean state | COMMENT |
| MEDIUM⚡ | tests_v2/test_tab_dragging.py | 1021 | # Create a new tab for clean state | COMMENT |
| MEDIUM | tests_v2/test_tab_dragging.py | 371 | # Create a new tab | COMMENT |
| MEDIUM | tests_v2/test_tab_dragging.py | 424 | # Create a new tab for clean state | COMMENT |
| MEDIUM | tests_v2/test_tab_dragging.py | 428 | # Create a horizontal split | COMMENT |
| MEDIUM | tests_v2/test_tab_dragging.py | 559 | # Create a new tab | COMMENT |
| MEDIUM | tests_v2/test_tab_dragging.py | 563 | # Create a split to have multiple panes | COMMENT |
| MEDIUM | tests_v2/test_tab_dragging.py | 619 | # Create a horizontal split | COMMENT |
| MEDIUM | tests_v2/test_tab_dragging.py | 708 | # Create a vertical split | COMMENT |
| MEDIUM | tests_v2/test_tab_dragging.py | 787 | # Create a new tab for clean state | COMMENT |
| MEDIUM | tests_v2/test_tab_dragging.py | 801 | # Create a vertical split (first terminal on top, second on bottom) | COMMENT |
| MEDIUM | tests_v2/test_tab_dragging.py | 878 | # Create a new tab for clean state | COMMENT |
| MEDIUM | cmuxTests/FishShellIntegrationTests.swift | 402 | # This file contains fish universal variable definitions. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | README.md | 389 | ### Can cmux orchestrate multiple agents and subagents? | COMMENT |
| MEDIUM | .coderabbit.yaml | 195 | For Swift files under a production `Sources/` path (matching `**/Sources/**` and not under `**/Tests/**`), fai | CODE |
| MEDIUM | tests/test_claude_wrapper_hooks.py | 3291 | # Max-plan 1M context window must keep that selection inside cmux on the | COMMENT |
| MEDIUM | tests/test_ci_change_areas.py | 3935 | # Changing CI orchestration still exercises CI, but it does not make the | STRING |
| MEDIUM | tests/test_reuse_app_host_products.py | 206 | # Mutating an explicitly orchestration-only step must not change product identity. | COMMENT |
| MEDIUM | ios/cmuxUITests/cmuxUITests.swift | 7470 | /// sheet keyboard used to shrink the tab scaffold underneath it, dragging | COMMENT |
| MEDIUM | …tlane/streamed-sessions/opencode/opencode-session.json | 502 | "text": "## What `main.swift` does\n\nThe file imports SwiftUI and defines a single `ContentView` — a `View` w | CODE |
| MEDIUM | …xPackage/Sources/cmuxFeature/CMUXMobileRootScene.swift | 458 | // the Cloud tab: with no paired Mac, the tab scaffold only | COMMENT |
| MEDIUM | cmux-tui/crates/cmux-tui-core/src/journal_hooks.rs | 1872 | #[ignore = "manual release-mode multi-agent hook saturation probe"] | COMMENT |
| MEDIUM | cmux-tui/docs/PR-INTENT-BOARD.md | 312 | - [#10243](https://github.com/manaflow-ai/cmux/pull/10243), Lawrence Chen, release orchestration. Conflicting and outsid | CODE |
| MEDIUM | cmux-tui/scripts/smoke-tui.py | 636 | # runs on a 2s cadence, so wait event-driven for the seeded marker. | COMMENT |
| MEDIUM | scripts/dev-setup.sh | 262 | # --- orchestrate ------------------------------------------------------------ | COMMENT |
| MEDIUM | scripts/ci/product_input_identity.py | 144 | # of product identity unless it is explicitly classified as orchestration-only. | COMMENT |
| MEDIUM | …urces/CmuxPanes/SessionSplitContainerLayoutCodec.swift | 26 | /// The scaffold leaves and inert tabs created while rebuilding a tree. | COMMENT |
| MEDIUM | …urces/CmuxPanes/SessionSplitContainerLayoutCodec.swift | 33 | /// Creates a restore scaffold result. | COMMENT |
| MEDIUM | …ITests/MobileAuthenticatedShellPresentationTests.swift | 34 | // A Mac-less account with a Cloud machine must get the tab scaffold: | COMMENT |
| MEDIUM | …es/CmuxMobileShellUI/NotificationFeedPreviewView.swift | 9 | /// verification. It mounts the production tab scaffold and production feed. | COMMENT |
| MEDIUM | …CmuxMobileShellUI/MobilePrimarySearchCoordinator.swift | 6 | /// scaffold so search edits do not invalidate shell-wide presentation state. | COMMENT |
| MEDIUM | …/Sources/CmuxMobileShellUI/SSHWorkspaceListPanel.swift | 134 | /// layout (same scaffold, icon, and typography) with one SSH status line as | COMMENT |
| MEDIUM | …bileShellUI/Debug/WorkspaceListLayoutPreviewView.swift | 599 | /// scaffold mirroring the shell's TabView, so scroll-edge behavior against | COMMENT |
| MEDIUM | .github/workflows/ci-guard-attribution.yml | 25 | # Everything is event driven: nothing polls. | COMMENT |
| MEDIUM | .github/workflows/ci-failure-attribution.yml | 19 | # annotations as data. Everything is event driven: nothing polls. | COMMENT |
| MEDIUM | …ces/RestorableAgentSessionIndex+SnapshotLiveness.swift | 8 | /// scaffold, while the agent process and its hook are gone. | COMMENT |
| MEDIUM | Sources/Workspace.swift | 2686 | // The shell can be executing a stale restore scaffold after the | COMMENT |
| MEDIUM | Sources/Workspace+ForkConversationContextMenu.swift | 27 | /// A new workspace carries only a remote command; its local scaffold never runs the agent. | COMMENT |
| MEDIUM | Sources/RemoteTui/SSHTuiWorkspaceCoordinator.swift | 217 | /// Replace the local scaffold before yielding so an SSH workspace can never start a local shell. | COMMENT |
| MEDIUM | Sources/Surfaces/CloudWorkspaceCreationHost.swift | 53 | // The loading scaffold never runs a local shell. Replace it in this same | COMMENT |
| MEDIUM | .greptile/config.json | 177 | "rule": "Flag Swift files under a production Sources path (matching **/Sources/** and not under **/Tests/**) that | CODE |
| MEDIUM | .greptile/rules.md | 97 | Pass for `#if DEBUG` blocks that gate real product behavior, scaffolding inside `Tests/` or a test-support module, and e | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_ci_health_report.py | 564 | def update_comment(self, comment_id: int, body: str) -> None: | CODE |
| LOW | tests/test_ci_cloud_overflow_switch.py | 84 | def set_variable(self, name: str, value: str) -> None: | CODE |
| LOW | tests/test_ios_appstore_lane_identity.py | 855 | def _set_fixture_versions(repo: Path) -> None: | STRING |
| LOW | tests/cmux.py | 569 | def set_app_focus(self, active: Union[bool, None]) -> None: | CODE |
| LOW | tests/cmux.py | 722 | def set_progress(self, value: float, label: str = None, tab: str = None) -> None: | CODE |
| LOW | tests/cmux.py | 829 | def set_agent_pid(self, key: str, pid: int, tab: str = None) -> None: | CODE |
| LOW | tests/cmux.py | 1057 | def set_shortcut(self, name: str, combo: str) -> None: | CODE |
| LOW | cmux-tui/bindings/python/cmux/options.py | 285 | __all__ = [ | CODE |
| LOW | cmux-tui/bindings/python/cmux/client_defaults.py | 96 | __all__ = ["default_socket_path", "env_socket_path", "legacy_raw_socket_path", "validate_session_name"] | CODE |
| LOW | cmux-tui/bindings/python/cmux/models.py | 1039 | __all__ = [ | CODE |
| LOW | cmux-tui/bindings/python/cmux/transport.py | 72 | def set_timeout(self, timeout: Optional[float]) -> None: | CODE |
| LOW | cmux-tui/bindings/python/cmux/transport.py | 329 | __all__ = ["DEFAULT_MAX_LINE_BYTES", "JsonLineConnection"] | CODE |
| LOW | cmux-tui/bindings/python/cmux/_protocol.py | 1539 | __all__ = [ | CODE |
| LOW | cmux-tui/bindings/python/cmux/aio.py | 607 | __all__ = [ | CODE |
| LOW | cmux-tui/bindings/python/cmux/resources.py | 5232 | __all__ = [ | CODE |
| LOW | cmux-tui/bindings/python/cmux/errors.py | 162 | __all__ = [ | CODE |
| LOW | cmux-tui/bindings/python/cmux/ids.py | 139 | __all__ = [ | CODE |
| LOW | cmux-tui/bindings/python/cmux/_operations.py | 517 | __all__ = ["ALL_OPERATIONS", "Operation", "OperationClass", "Operations"] | CODE |
| LOW | cmux-tui/bindings/python/cmux/raw/convenience.py | 71 | __all__ = [ | CODE |
| LOW | cmux-tui/bindings/python/cmux/raw/client.py | 508 | __all__ = [ | CODE |
| LOW | …ux-tui/bindings/python/cmux/raw/_generated/metadata.py | 1632 | __all__ = [ | CODE |
| LOW | cmux-tui/bindings/python/cmux/raw/_generated/models.py | 2948 | __all__ = [ | CODE |
| LOW | cmux-tui/bindings/python/cmux/raw/_generated/client.py | 489 | __all__ = ["GeneratedClientMixin"] | CODE |
| LOW | cmux-tui/bindings/python/cmux/raw/_generated/codec.py | 612 | __all__ = [ | CODE |
| LOW | cmux-tui/bindings/codegen/__init__.py | 6 | __all__ = ["Emitter", "SdkIR", "load_ir"] | CODE |
| LOW | cmux-tui/bindings/codegen/emit_python.py | 944 | __all__ = [ | CODE |
| LOW | scripts/generate_dark_icon.py | 136 | def update_contents_json(icon_dir: str) -> None: | CODE |
| LOW | scripts/ci/nightly_release_notes.py | 150 | def update_appcasts(directory: Path, build: str, summary: str) -> None: | CODE |
| LOW | scripts/ci/triage-radar.py | 429 | def update_issue_body(self, number: int, body: str) -> None: | CODE |
| LOW | scripts/ci/cloud_overflow_switch.py | 363 | def set_variable(self, name: str, value: str) -> None: | CODE |
| LOW | scripts/ci/update-release-tag.py | 99 | def update_tag(repo: str, tag: str, sha: str, *, allow_non_descendant: bool = False) -> None: | CODE |
| LOW | scripts/ci/ci_health_report.py | 1314 | def update_comment(self, comment_id: int, body: str) -> None: | CODE |
| LOW | tests_v2/test_command_palette_fuzzy_ranking.py | 46 | def _set_palette_visible(client: cmux, window_id: str, visible: bool) -> None: | CODE |
| LOW | tests_v2/test_command_palette_modes.py | 69 | def _set_palette_visible(client: cmux, window_id: str, visible: bool) -> None: | CODE |
| LOW | …ts_v2/test_command_palette_switcher_renamed_surface.py | 36 | def _set_palette_visible(client: cmux, window_id: str, visible: bool) -> None: | CODE |
| LOW | tests_v2/test_command_palette_shortcut_hint_sync.py | 36 | def _set_palette_visible(client: cmux, window_id: str, visible: bool) -> None: | CODE |
| LOW | tests_v2/test_command_palette_switcher_all_windows.py | 39 | def _set_palette_visible(client: cmux, window_id: str, visible: bool) -> None: | CODE |
| LOW | tests_v2/test_command_palette_window_scope.py | 39 | def _set_palette_visible(client: cmux, window_id: str, visible: bool) -> None: | CODE |
| LOW⚡ | tests_v2/cmux.py | 947 | def set_shortcut(self, name: str, combo: str) -> None: | CODE |
| LOW | tests_v2/cmux.py | 870 | def set_app_focus(self, active: Union[bool, None]) -> None: | CODE |
| LOW | tests_v2/test_command_palette_switcher_type_labels.py | 40 | def _set_palette_visible(client: cmux, window_id: str, visible: bool) -> None: | CODE |
| LOW | tests_v2/test_command_palette_navigation_keys.py | 53 | def _set_palette_visible(client: cmux, window_id: str, visible: bool) -> None: | CODE |
| LOW | …mand_palette_switcher_cross_workspace_surface_focus.py | 40 | def _set_palette_visible(client: cmux, window_id: str, visible: bool) -> None: | CODE |
| LOW | …v2/test_command_palette_switcher_surface_precedence.py | 40 | def _set_palette_visible(client: cmux, window_id: str, visible: bool) -> None: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_claude_wrapper_hooks.py | 271 | CODE | |
| LOW | tests/test_claude_wrapper_hooks.py | 1996 | CODE | |
| LOW | tests/test_run_e2e.py | 50 | CODE | |
| LOW | tests/test_run_e2e.py | 1654 | CODE | |
| LOW | tests/test_ci_queue_janitor.py | 38 | CODE | |
| LOW | tests/test_ci_queue_janitor.py | 72 | CODE | |
| LOW | tests/test_gh_merge_green.py | 317 | CODE | |
| LOW | tests/test_gh_merge_green.py | 704 | CODE | |
| LOW | tests/test_amp_wrapper_hooks.py | 63 | CODE | |
| LOW | tests/test_hermes_wrapper_hooks.py | 138 | CODE | |
| LOW | tests/test_review_fabric.py | 82 | CODE | |
| LOW | tests/test_open_wrapper.py | 31 | CODE | |
| LOW | tests/claude_teams_test_utils.py | 170 | CODE | |
| LOW | tests/test_ci_pr_runner_pool.py | 70 | CODE | |
| LOW | tests/test_ci_pr_runner_pool.py | 2865 | CODE | |
| LOW | tests/test_ci_pr_runner_pool.py | 2141 | CODE | |
| LOW | tests/test_ci_classify_failures.py | 419 | CODE | |
| LOW | tests/test_ios_testflight_main_push_filter.py | 158 | CODE | |
| LOW | tests/test_ios_workflow_dispatch_ref.py | 222 | CODE | |
| LOW | tests/test_codex_wrapper_computer_use_mcp.py | 523 | CODE | |
| LOW | tests/test_claude_wrapper_computer_use_skill.py | 43 | CODE | |
| LOW | tests/test_codex_feed_hooks.py | 76 | CODE | |
| LOW | tests/test_ci_nightly_push_throttle.py | 136 | CODE | |
| LOW | cmux-tui/bindings/python/cmux/_protocol.py | 410 | CODE | |
| LOW | cmux-tui/bindings/python/cmux/raw/client.py | 206 | CODE | |
| LOW | cmux-tui/bindings/python/cmux/raw/_generated/client.py | 90 | CODE | |
| LOW | cmux-tui/bindings/python/cmux/raw/_generated/client.py | 93 | CODE | |
| LOW | cmux-tui/bindings/python/cmux/raw/_generated/client.py | 267 | CODE | |
| LOW | cmux-tui/bindings/python/cmux/raw/_generated/client.py | 294 | CODE | |
| LOW | cmux-tui/bindings/python/cmux/raw/_generated/client.py | 300 | CODE | |
| LOW | cmux-tui/bindings/tests/test_check_versions.py | 20 | CODE | |
| LOW | scripts/generate_dark_icon.py | 111 | CODE | |
| LOW | scripts/ci/pr_runner_pool.py | 1493 | CODE | |
| LOW | scripts/ci/pr_runner_pool.py | 1617 | CODE | |
| LOW | scripts/ci/pr_runner_pool.py | 1834 | CODE | |
| LOW | scripts/ci/ios_runner_pool.py | 334 | CODE | |
| LOW | scripts/mobile-stability-soak/mobile-soak.py | 244 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | ios/scripts/appstore-shots.sh | 15 | # Usage: | COMMENT |
| LOW | ios/scripts/bump-ios-version.sh | 11 | # Usage: | COMMENT |
| LOW | ios/scripts/set-testflight-notes.sh | 18 | # Usage: | COMMENT |
| LOW | ios/scripts/toast-debug.sh | 7 | # Usage: | COMMENT |
| LOW | ios/scripts/generate-testflight-notes.sh | 16 | # Usage: | COMMENT |
| LOW | scripts/bump-version.sh | 5 | # Usage: | COMMENT |
| LOW | scripts/verify-iphone-auth.sh | 25 | # Usage: | COMMENT |
| LOW | scripts/remote-tmux-et-conformance.sh | 59 | # Usage: | COMMENT |
| LOW | scripts/sign-cmux-bundle.sh | 4 | # Usage: | COMMENT |
| LOW | scripts/mobile-dev-launch.sh | 16 | # Usage: | COMMENT |
| LOW | scripts/remote-tmux-fuzz-run.sh | 38 | # Usage: | COMMENT |
| LOW | scripts/dev-setup.sh | 21 | # Usage: | COMMENT |
| LOW | scripts/lint-pbxproj-test-wiring.sh | 24 | # Usage: | COMMENT |
| LOW | scripts/reload-extension.sh | 22 | # Usage: | COMMENT |
| LOW | scripts/ci/embed-tunnel-extension-profile.sh | 6 | # Usage: | COMMENT |
| LOW | scripts/lib/dev-secrets.sh | 20 | # Usage: | COMMENT |
| LOW | workers/presence/scripts/deploy-dev.sh | 15 | # Usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | Sources/TerminalController+AgentTitle.swift | 93 | /// `workspace.set_auto_title`: applies an AI-generated title to a workspace | COMMENT |
| HIGH | Sources/DockSplitStore+PortalDrop.swift | 227 | /// Creates one file-preview tab and preserves or moves Dock focus as requested. | COMMENT |
| HIGH | cmuxTests/SetAutoTitleSocketTests.swift | 14 | /// auto-naming engines use to apply AI-generated titles with `.auto` | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_app_keystrokes.sh | 10 | # Check if cmux is running | COMMENT |
| LOW | scripts/smoke-test-ci.sh | 56 | # Check if process died while waiting | COMMENT |
| LOW | scripts/sparkle_generate_appcast.sh | 138 | # Check if generate_appcast added the edSignature. If not, use sign_update | COMMENT |
| LOW | scripts/ci/app-host-processes.sh | 988 | # Set CMUX_APP_HOST_SCOPE_RECOVERY_ELIGIBLE to 1 only for an authenticated v3 | COMMENT |
| LOW⚡ | tests_v2/test_ctrl_interactive.py | 80 | # Check if running in a terminal | COMMENT |
| LOW | tests_v2/test_tab_dragging.py | 468 | # Check if columns are approximately equal (within 5 columns tolerance) | COMMENT |
| LOW | tests_v2/test_tab_dragging.py | 993 | # Check if remaining terminal is responsive | COMMENT |
| LOW | tests_v2/test_tab_dragging.py | 1046 | # Check if remaining terminal is responsive | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | web/app/api/v1/[[...rest]]/route.ts | 9 | async function handleRequest(request: Request): Promise<Response> { | CODE |
| LOW | web/app/api/dashboard/rpc/[[...rest]]/route.ts | 6 | async function handleRequest(request: Request): Promise<Response> { | CODE |
| LOW | web/app/api/rpc/[[...rest]]/route.ts | 9 | async function handleRequest(request: Request): Promise<Response> { | CODE |
| LOW | tests/test_cmux_settings_supported_paths.py | 37 | def helper(self, layout, *, reference=True): | CODE |
| LOW | scripts/check-test-determinism.py | 4630 | "def helper():\n" | CODE |
| LOW | scripts/check-test-determinism.py | 5495 | "def helper():\n" | CODE |
| LOW | scripts/check-test-determinism.py | 5520 | "def helper(client):\n" | CODE |