Record your screen, ship a demo. Free and open-source, GPU-accelerated, no watermarks, no subscriptions. Windows, macOS, Linux. Actively maintained.
This report summarizes scanner evidence for getopenscreen/openscreen, a TypeScript project with 7,246 GitHub stars. SynthScan examined 484,306 lines of code across 1551 source files, recording 1376 pattern matches distributed across 6 syntactic categories. The legacy adjusted pattern signal is 3.4 (Low pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-11-14.
Can maintainers explain intent, assumptions, and trade-offs? 1241 finding(s).
Are imports declared and package/API names verified? 5 finding(s).
Are wrappers, guards, and repeated structures necessary? 391 finding(s).
Which changes need focused human review? 1376 finding(s).
Run additional scans to build a history of the legacy pattern signal. Score changes are not a measure of AI adoption or code quality.
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 1376 distinct pattern matches across 6 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 | vitest.workbench.config.ts | 1 | import path from "node:path"; | COMMENT |
| LOW | vitest.workbench.config.ts | 21 | // this one sat at a hardcoded 120 s while the harness moved to 300 s, so | COMMENT |
| LOW | tsconfig.test.json | 1 | // Typechecks what tsconfig.json deliberately leaves out. | COMMENT |
| LOW | vite.config.ts | 1 | import path from "node:path"; | COMMENT |
| LOW | vite.config.ts | 61 | // aren't present here resolve UP into the main repo's node_modules and drag | COMMENT |
| LOW | vitest.config.ts | 1 | import path from "node:path"; | COMMENT |
| LOW | vitest.config.ts | 21 | // is not a signal about the test. Raising this costs nothing on a passing run: | COMMENT |
| LOW | crates/Cargo.toml | 1 | # Workspace Rust d'OpenScreen. | COMMENT |
| LOW | crates/compositor/wrapper_windows.h | 1 | #include <libavformat/avformat.h> | COMMENT |
| LOW | crates/compositor/Cargo.toml | 41 | # de 24 : dès la 25, la sortie HLSL ne passe plus FXC en SM 5.0 (voir `shader_fx::to_hlsl`). | COMMENT |
| LOW | crates/compositor/Cargo.toml | 61 | windows.workspace = true | COMMENT |
| LOW | crates/compositor/wrapper_macos.h | 1 | // Wrapper C pour bindgen — variante macOS. | COMMENT |
| LOW | crates/compositor/wrapper_macos.h | 21 | #include <libavfilter/avfilter.h> | COMMENT |
| LOW | crates/compositor/shim.c | 1 | // Accesseurs pour les champs d'AVFormatContext que bindgen rend opaque | COMMENT |
| LOW | crates/compositor/build.rs | 261 | /// | COMMENT |
| LOW | crates/compositor/build.rs | 301 | .take(1) | COMMENT |
| LOW | crates/compositor/build.rs | 401 | /// swresample. Un arbre n'ayant que les en-têtes passait le filtre, écartait le repli | COMMENT |
| LOW | crates/compositor/build.rs | 421 | .join(name); | COMMENT |
| LOW | crates/compositor/wrapper_linux.h | 21 | #include <libavutil/imgutils.h> | COMMENT |
| LOW | crates/compositor/tests/window_frame_render.rs | 1 | //! Le cadre de fenêtre (`effects.frame`) rendu par le vrai compositeur D3D11 : droit et incliné, | COMMENT |
| LOW | crates/compositor/tests/output_geometry_golden.rs | 1 | //! Golden pixel de la refonte « le RT est le cadre de sortie ». | COMMENT |
| LOW | crates/compositor/tests/device_frame_render.rs | 1 | //! Les cadres d'appareil modelés (`effects.frame`, mode 17) rendus par le vrai compositeur | COMMENT |
| LOW | crates/compositor/tests/device_frame_render.rs | 1201 | COMMENT | |
| LOW | crates/compositor/tests/tilt_parallax_render.rs | 1 | //! Sous un préset 3D, le plan penche vers le geste du curseur puis revient à la pose du préset | COMMENT |
| LOW | crates/compositor/tests/tilted_depth_of_field.rs | 1 | //! La profondeur de champ du mode 8 floute le coin LOINTAIN d'un écran incliné et laisse le | COMMENT |
| LOW | crates/compositor/tests/follow_camera_render.rs | 1 | //! La caméra réelle de `orbit` (en focus auto) rendue par le vrai compositeur D3D11. | COMMENT |
| LOW | crates/compositor/tests/click_impact_render.rs | 1 | //! Avec « Click impact » (réglage du curseur), un clic fait basculer le plan d'un préset 3D du | COMMENT |
| LOW | crates/compositor/tests/no_camera_stand_in.rs | 1 | //! Sans caméra, la preview compose partout avec la frame écran à la place de la webcam : le | COMMENT |
| LOW | crates/compositor/tests/cursor_tap_render.rs | 1 | //! Le contact du curseur modélisé et l'impact du clic (mode 16), rendus par le vrai compositeur | COMMENT |
| LOW | crates/compositor/tests/compose_linux.rs | 1 | //! Verifie que le port Linux reconciliie sur v1.8.0 REND une frame : | COMMENT |
| LOW | crates/compositor/tests/compose_linux.rs | 661 | /// | COMMENT |
| LOW | crates/compositor/tests/compose_linux.rs | 901 | assert!( | COMMENT |
| LOW | crates/compositor/tests/compose_linux.rs | 1001 | // pi/4 = 0,785 ; on tolere l'antialiasing du SDF sur le pourtour. | COMMENT |
| LOW | crates/compositor/tests/compose_linux.rs | 1101 | ); | COMMENT |
| LOW | crates/compositor/tests/compose_linux.rs | 1481 | assert!( | COMMENT |
| LOW | crates/compositor/tests/compose_linux.rs | 1501 | /// placement et pas ce que la video montre dessous. Ce rect est la plaque du | COMMENT |
| LOW | crates/compositor/tests/export_timing.rs | 1 | //! Frame-timing regression net for the export paths. | COMMENT |
| LOW | crates/compositor/tests/export_timing.rs | 21 | //! ffmpeg -f concat -safe 0 -i concat.txt -c copy screen_colors.mp4 | COMMENT |
| LOW | crates/compositor/tests/warp_device_cannot_decode.rs | 1 | //! Pourquoi le backend CPU décode en LOGICIEL et pas sur le device WARP (PR #162). | COMMENT |
| LOW | crates/compositor/tests/screen_trail_render.rs | 121 | } | COMMENT |
| LOW | crates/compositor/tests/render_frames_match_export.rs | 1 | //! Une frame rendue seule (`timeline_walk::render_frames`, ce que getFrames montre sans export) | COMMENT |
| LOW | crates/compositor/tests/tilted_depth_slot_inert.rs | 1 | //! La profondeur de champ éteinte ne change pas un octet du rendu. | COMMENT |
| LOW | crates/compositor/tests/format_fill_tilt_render.rs | 1 | //! Le remplissage du format sous la caméra en orbite, rendu par le vrai compositeur D3D11. | COMMENT |
| LOW | crates/compositor/tests/cpu_backend_linux.rs | 1 | //! Le backend CPU Linux (lavapipe) est ATTEIGNABLE, et se declare comme tel. | COMMENT |
| LOW | crates/compositor/tests/cursor_model_render.rs | 1 | //! Le curseur modélisé (`cursor.model3d`, mode 15) rendu par le vrai compositeur D3D11 : chaque | COMMENT |
| LOW | crates/compositor/tests/programme_time_seek.rs | 1 | //! Le temps programme de la preview est une fonction de l'image affichée : y arriver en | COMMENT |
| LOW | crates/compositor/tests/remux_seek_index.rs | 1 | //! Le remux doit doter un Matroska « live » (sans index) de ses `Cues`. | COMMENT |
| LOW | crates/compositor/tests/privacy_blur_under_zoom.rs | 1 | //! Un masque de confidentialité (annotation « flou », style mosaïque) doit couvrir le même | COMMENT |
| LOW | crates/compositor/tests/hevc10_decode.rs | 1 | //! Une vidéo HEVC Main 10 (iPhone, #1390) se rend avec ses couleurs, pas en bandes. | COMMENT |
| LOW | crates/compositor/tests/hevc10_decode.rs | 101 | #[test] | COMMENT |
| LOW | crates/compositor/tests/animated_background.rs | 1 | //! Un fond animé, dégradé (mode 5) ou image (mode 6), est une fonction pure du temps programme | COMMENT |
| LOW | crates/compositor/examples/live_free_run_bench_macos.rs | 1 | //! Bench de la lecture libre de la preview (macOS) : rejoue la boucle de `render_thread` sur | COMMENT |
| LOW | crates/compositor/src/scene.rs | 1 | //! Contrat de scène côté Rust — miroir exact de `SceneDescription` (TS, `src/native/sceneDescription.ts`). | COMMENT |
| LOW | crates/compositor/src/scene.rs | 41 | /// bloc découpent toujours un rectangle (côté app, cf. `computeCompositeLayout`). | COMMENT |
| LOW | crates/compositor/src/scene.rs | 61 | /// | COMMENT |
| LOW | crates/compositor/src/scene.rs | 81 | /// tenir en entier ? Vrai pour les layouts en bloc, dont la boîte écran est un slot au ratio | COMMENT |
| LOW | crates/compositor/src/scene.rs | 101 | /// Les champs scalaires ci-dessus sont ceux du PREMIER clip (repli pour un payload sans ce | COMMENT |
| LOW | crates/compositor/src/scene.rs | 141 | /// | COMMENT |
| LOW | crates/compositor/src/scene.rs | 281 | #[serde(deserialize_with = "blur_amount")] | COMMENT |
| LOW | crates/compositor/src/scene.rs | 301 | /// il n'y en a pas, et tout payload d'avant le cadre se lit « sans cadre ». | COMMENT |
| 915 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | design/openscreen-widget.html | 178 | "<!DOCTYPE html>\n<html><head>\n<meta charset=\"utf-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial- | CODE |
| MEDIUM | workbench/scenarios/wizard-enhance-bare.scn.ts | 21 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | workbench/scenarios/wizard-enhance-bare.scn.ts | 47 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | workbench/scenarios/real-screencast.scn.ts | 12 | // ─── THE GROUND TRUTH IS NOT IN THIS FILE'S OUTPUT PATH ──────────────────── | COMMENT |
| MEDIUM | workbench/scenarios/real-screencast.scn.ts | 22 | // ─── WHY THIS MATERIAL DISCRIMINATES ─────────────────────────────────────── | COMMENT |
| MEDIUM | workbench/scenarios/real-screencast.scn.ts | 49 | // ─── UN CHECK MIGRÉ QUI N'A JAMAIS ÉTÉ JUGÉ SUR SA PROPRE MATIÈRE ────────── | COMMENT |
| MEDIUM | workbench/scenarios/real-screencast.scn.ts | 86 | // ─── ground truth — ASSERTIONS ONLY ───────────────────────────────────────── | COMMENT |
| MEDIUM | workbench/scenarios/real-screencast.scn.ts | 131 | // ─── shared check builders ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | workbench/scenarios/real-screencast.scn.ts | 221 | // ─── 1. the wizard, verbatim, on real material ────────────────────────────── | COMMENT |
| MEDIUM | workbench/scenarios/real-screencast.scn.ts | 413 | // ─── 2. the cuts, alone ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | workbench/scenarios/real-screencast.scn.ts | 547 | // ─── 3. the zooms, alone ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | workbench/scenarios/real-screencast.scn.ts | 689 | // ─── 4. did it LOOK before deciding ───────────────────────────────────────── | COMMENT |
| MEDIUM | workbench/scenarios/wizard-enhance.scn.ts | 15 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | workbench/scenarios/wizard-enhance.scn.ts | 52 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | workbench/lib/quality.ts | 59 | // ─── pauses: the unit every cut oracle is measured against ────────────────── | COMMENT |
| MEDIUM | workbench/lib/quality.ts | 150 | // ─── (a) speech destroyed, named word by word ─────────────────────────────── | COMMENT |
| MEDIUM | workbench/lib/quality.ts | 230 | // ─── (b) cut precision, edge by edge ──────────────────────────────────────── | COMMENT |
| MEDIUM | workbench/lib/quality.ts | 373 | // ─── (c) coverage, with the edges kept apart ──────────────────────────────── | COMMENT |
| MEDIUM | workbench/lib/quality.ts | 470 | // ─── (e) zoom placement against declared zones ────────────────────────────── | COMMENT |
| MEDIUM | workbench/lib/quality.ts | 650 | // ─── (f) scope, documents and calls in one list ───────────────────────────── | COMMENT |
| MEDIUM | workbench/lib/scenario.ts | 104 | // ─── editorial quality (lib/editorial.ts) ──────────────────────────────── | COMMENT |
| MEDIUM | workbench/lib/scenario.ts | 124 | // ─── editorial QUALITY (lib/quality.ts) ────────────────────────────────── | COMMENT |
| MEDIUM | workbench/lib/editorial.ts | 36 | // ─── document geometry ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | workbench/lib/editorial.ts | 172 | // ─── 1. speech destroyed ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | workbench/lib/editorial.ts | 218 | // ─── 2. orphan fragments ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | workbench/lib/editorial.ts | 268 | // ─── 3. margins around the cut ────────────────────────────────────────────── | COMMENT |
| MEDIUM | workbench/lib/editorial.ts | 341 | // ─── 4. over-cut / under-cut ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | workbench/lib/editorial.ts | 388 | // ─── 5. zoom hygiene and placement ────────────────────────────────────────── | COMMENT |
| MEDIUM | workbench/lib/editorial.ts | 541 | // ─── 6. did it do THAT, and nothing else ──────────────────────────────────── | COMMENT |
| MEDIUM | workbench/lib/persist.ts | 286 | // ───────────────────────── relecture ───────────────────────── | COMMENT |
| MEDIUM | workbench/l0/persist.wb.ts | 250 | // ─── relecture ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | workbench/l0/quality.wb.ts | 75 | // ─── pauses ───────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | workbench/l0/quality.wb.ts | 136 | // ─── (a) speech destroyed, word by word ───────────────────────────────────── | COMMENT |
| MEDIUM | workbench/l0/quality.wb.ts | 202 | // ─── (b) cut precision ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | workbench/l0/quality.wb.ts | 289 | // ─── (c) coverage ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | workbench/l0/quality.wb.ts | 352 | // ─── (e) zoom placement ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | workbench/l0/quality.wb.ts | 456 | // ─── (f) scope ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | workbench/l1/end-to-end.wb.ts | 407 | // ─── D-TELEM ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | scripts/build-whisper-stt.sh | 110 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/build-whisper-stt.sh | 129 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/build-whisper-stt.sh | 411 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/build-whisper-stt.sh | 413 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/build_macos.sh | 11 | # ── Load .env ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | scripts/build_macos.sh | 25 | # ── Config ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | scripts/build_macos.sh | 31 | # ── Colors ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | scripts/build_macos.sh | 44 | # ── Preflight ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | scripts/build_macos.sh | 92 | # ── Clean ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | scripts/build_macos.sh | 99 | # ── Install Dependencies ───────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | scripts/build_macos.sh | 104 | # ── Build Vite + Electron ──────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | scripts/build_macos.sh | 109 | # ── Package, Sign, Notarize per Architecture ───────────────────────── | COMMENT |
| MEDIUM⚡ | scripts/build_macos.sh | 116 | # ── Package with electron-builder ───────────────────────────── | COMMENT |
| MEDIUM | scripts/build_macos.sh | 136 | # ── Verify codesign on .app ─────────────────────────────────── | COMMENT |
| MEDIUM | scripts/build_macos.sh | 141 | # ── Create DMG ──────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | scripts/build_macos.sh | 167 | # ── Sign DMG ────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | scripts/build_macos.sh | 172 | # ── Notarize DMG ────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | scripts/build_macos.sh | 179 | # ── Staple ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | scripts/build_macos.sh | 184 | # ── Validate ────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | scripts/build_macos.sh | 191 | # ── Clean up unpacked dirs (keep only DMGs) ─────────────────────────── | COMMENT |
| MEDIUM⚡ | scripts/build_macos.sh | 196 | # ── Done ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | .github/workflows/flatpak-spike.yml | 47 | # --------------------------------------------------------------------- | COMMENT |
| 70 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …rc/theme/NavbarItem/LocaleDropdownNavbarItem/index.tsx | 32 | export default function LocaleDropdownNavbarItemWrapper(props: Props): ReactNode { | CODE |
| LOW | workbench/lib/provenance.ts | 201 | function assertNoRelevantSubmodules(root: string): void { | CODE |
| LOW | workbench/lib/provenance.ts | 389 | export function sourceIdentityFromManifests(options: { | CODE |
| LOW | workbench/lib/real-fixture.ts | 73 | export function assertOriginalFixtureAvailable(): void { | CODE |
| LOW | workbench/lib/real-fixture.ts | 125 | export function realScreencastCursorReader(): CursorTelemetryReader { | CODE |
| LOW | workbench/lib/measurement.ts | 259 | export function assertReplaySourceCompatible(recorded: unknown, current: unknown): void { | CODE |
| LOW | workbench/lib/measurement.ts | 461 | export function recomputeMeasurementCounts(recorded: RecordedChecks): MeasurementCounts { | CODE |
| LOW | workbench/lib/measurement.ts | 577 | export function boundMeasurementFingerprints( | CODE |
| LOW | workbench/lib/measurement.ts | 679 | function cassetteTransportProfiles(files: string[]): TransportIdentity[] | null { | CODE |
| LOW | workbench/lib/measurement.ts | 736 | export function prepareMeasurementCandidate(options: PrepareMeasurementCandidateOptions): { | CODE |
| LOW | workbench/lib/measurement.ts | 819 | export function finalizeJudgedMeasurementCandidate(options: { | CODE |
| LOW | workbench/lib/measurement.ts | 1040 | function assertCountsAgainstReport(manifest: MeasurementManifest, report: WorkbenchReport): void { | CODE |
| LOW | workbench/lib/measurement.ts | 1219 | function assertTransportFingerprint(manifest: MeasurementManifest, root: string): void { | CODE |
| LOW | workbench/lib/measurement.ts | 1303 | export function verifyMeasurementDirectory( | CODE |
| LOW | workbench/lib/measurement.ts | 1614 | export function boundBaselineFromMeasurement(verified: VerifiedMeasurement): BoundBaseline { | CODE |
| LOW | workbench/lib/runner.ts | 178 | export function adoptCassetteForRetainedAttempt( | CODE |
| LOW | workbench/l0/provenance.wb.ts | 47 | function expectReplaySourceMismatch(recorded: unknown, current: unknown): void { | CODE |
| LOW | electron/hudWindowBounds.ts | 60 | export function clampHudContentToWorkArea( | CODE |
| LOW | electron/recording-source-settings.ts | 9 | export function recordingSourceKindFromId(id: string): RecordingSourceDescriptor["kind"] { | CODE |
| LOW | electron/recording-source-settings.ts | 49 | export function rememberedPickerSourceName( | CODE |
| LOW | electron/recording-source-settings.ts | 60 | export function enumerationIncludesSourceKind( | CODE |
| LOW | electron/recording-source-settings.ts | 88 | export function shouldPersistSelectedSource(options?: { persist?: boolean }): boolean { | CODE |
| LOW | electron/recording-source-settings.ts | 92 | export function sameRecordingSourceDescriptor( | CODE |
| LOW | electron/recording-source-settings.ts | 112 | export function shouldCommitRestoredRecordingSource(options: { | CODE |
| LOW | electron/recording-source-settings.ts | 124 | export function restoreRecordingSourceAfterEnumeration(options: { | CODE |
| LOW | electron/recording-source-settings.ts | 154 | export function shouldEnumerateRecordingSources( | CODE |
| LOW | electron/recording-source-settings.ts | 165 | export function resolveLiveRecordingSource( | CODE |
| LOW | electron/recording-source-settings.ts | 173 | export function resolveCurrentRecordingSource( | CODE |
| LOW | electron/dev-http-cache.ts | 5 | export function disableHttpCacheForDevServer( | CODE |
| LOW | electron/main.ts | 871 | function startBackgroundUpdateTimer() { | CODE |
| LOW | electron/main.ts | 1127 | function createEditorWindowWrapper() { | CODE |
| LOW | electron/main.ts | 1170 | function createSourceSelectorWindowWrapper() { | CODE |
| LOW | electron/main.ts | 1194 | function createCountdownOverlayWindowWrapper() { | CODE |
| LOW | electron/processGoneLog.ts | 15 | export function describeRenderProcessGone( | CODE |
| LOW | electron/windows.ts | 744 | export function createSourceSelectorWindow(): BrowserWindow { | CODE |
| LOW | electron/windows.ts | 792 | export function createCountdownOverlayWindow(): BrowserWindow { | CODE |
| LOW | electron/background-update.ts | 22 | export function shouldStartBackgroundUpdateTimer(input: { | CODE |
| LOW | electron/background-update.ts | 29 | export function shouldQuitAndInstallAfterRestartPrompt(response: number): boolean { | CODE |
| LOW | electron/background-update.ts | 44 | export async function runUnblockedDownloadAndInstall(deps: { | CODE |
| LOW | electron/globalShortcut.ts | 64 | export async function loadAndRegisterGlobalShortcut(onTrigger: () => void): Promise<void> { | CODE |
| LOW | electron/globalShortcut.ts | 75 | export function unregisterAllGlobalShortcuts(): void { | CODE |
| LOW | electron/main-process-errors.ts | 8 | export function shouldSwallowMainProcessError(error: unknown): boolean { | CODE |
| LOW | electron/main-process-errors.ts | 14 | export function installMainProcessErrorGuards(): void { | CODE |
| LOW | electron/recording/nativeWindowsCaptureStop.ts | 63 | export function isSalvageableFragmentedCapture( | CODE |
| LOW | electron/recording/nativeWindowsCaptureStop.ts | 132 | export function readSecondaryWindowsApplied(output: string) { | CODE |
| LOW | electron/recording/nativeWindowsCaptureStop.ts | 146 | export function readMicrophoneUnavailable(output: string) { | CODE |
| LOW | electron/recording/nativeWindowsCaptureStop.ts | 298 | export async function terminateNativeWindowsCapture( | CODE |
| LOW | electron/recording/nativeWindowsCaptureStop.ts | 333 | export function waitForNativeWindowsCaptureStop(options: { | CODE |
| LOW | electron/recording/nativeMacCaptureStop.ts | 120 | export function readNativeMacHelperEvents(output: string): HelperEvent[] { | CODE |
| LOW | electron/recording/nativeMacCaptureStop.ts | 251 | export function waitForNativeMacCaptureStop(options: { | CODE |
| LOW | electron/recording/webm-duration.ts | 157 | async function patchWebmDurationInMemory( | CODE |
| LOW | electron/recording/linuxCaptureBackend.ts | 70 | export function resetLinuxCaptureBackendProbe(): void { | CODE |
| LOW | electron/mcp/openscreen-mcp-server.ts | 856 | export function createOpenScreenMcpServer( | CODE |
| LOW | electron/cli/cliMain.ts | 124 | function registerAppHandlersForCli(cliWindowRef: () => BrowserWindow | null) { | CODE |
| LOW | electron/permissions/index.ts | 184 | export async function showPermissionsWindowIfNeeded(): Promise<void> { | CODE |
| LOW | electron/ai-edition/chat-execution.ts | 111 | export function createToolExecutionObserver(emit: (step: ToolExecutionStep) => void) { | CODE |
| LOW | electron/ai-edition/llm-provider-auth.ts | 66 | export async function listOpenAiCompatibleModels( | CODE |
| LOW | electron/ai-edition/provider-registry.ts | 156 | export function getReasoningEffortOptions(providerId: string): readonly ReasoningEffort[] { | CODE |
| LOW | electron/ai-edition/deep-agent/usage.ts | 60 | export function createTurnUsageAccumulator() { | CODE |
| LOW | electron/ai-edition/deep-agent/chat-model.ts | 132 | export function normalizeReasoningEffortForCapability( | CODE |
| 201 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | design/cursors/prism-glow/model/build_blend.py | 49 | bpy.context.scene.collection.children.link(col) | CODE |
| CRITICAL | design/cursors/prism-glow/model/build_blend.py | 248 | bpy.context.scene.collection.objects.link(tw) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | technical-documentation/testing/manual-e2e-checklist.md | 1010 | | 2026-09-24 | installed `v1.13.0-rc.6` — CI-built DMG `Openscreen-macOS-Apple-Silicon-1.13.0-rc.6.dmg` from the GitHub | CODE |
| MEDIUM | crates/compositor/src/mac_frames.rs | 26 | //! comme un « scaffold » à compléter plus tard) donne une allocation malloc ordinaire, et | COMMENT |
| MEDIUM | .github/workflows/ci.yml | 112 | # scaffold + engine-layer code added by #189 actually compiles for | COMMENT |
| MEDIUM | electron/ai-edition/chat-service.toolloop.test.ts | 5 | // crosses to drive the agentic turn. | COMMENT |
| MEDIUM | electron/ai-edition/chat-service.ts | 2 | // agentic loop itself lives in `deep-agent/service.ts` and is a port of | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/components/ai-edition/v4/FloatingInspector.test.tsx | 872 | "placeholder", | CODE |
| LOW | src/components/ai-edition/v4/ZoomLevelControl.test.tsx | 88 | expect(field).toHaveAttribute("placeholder", ""); | CODE |
| LOW | src/components/ai-edition/v4/ZoomLevelControl.test.tsx | 95 | expect(field).toHaveAttribute("placeholder", "2.75×"); | CODE |