React data visualization library for streaming, networks, and AI-assisted development
This report presents the forensic synthetic code analysis of nteract/semiotic, a TypeScript project with 2,691 GitHub stars. SynthScan v2.0 examined 931,956 lines of code across 2581 source files, recording 2497 pattern matches distributed across 12 syntactic categories. The overall adjusted score of 6.3 places this repository in the Low AI signal band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 2497 distinct pattern matches across 12 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | integration-tests/process-sankey.spec.ts | 203 | // ── Visual regression baselines ──────────────────────────────────────── | COMMENT |
| MEDIUM | integration-tests/streaming-regression.spec.ts | 89 | // ─── Grey fill regression tests ────────────────────────────────────────────── | COMMENT |
| MEDIUM | integration-tests/streaming-regression.spec.ts | 136 | // ─── Legend regression tests ───────────────────────────────────────────────── | COMMENT |
| MEDIUM | integration-tests/streaming-regression.spec.ts | 169 | // ─── Tooltip regression tests ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | integration-tests/streaming-regression.spec.ts | 203 | // ─── LineChart infinite loop regression ────────────────────────────────────── | COMMENT |
| MEDIUM | integration-tests/streaming-regression.spec.ts | 233 | // ─── Force-directed graph centering regression ─────────────────────────────── | COMMENT |
| MEDIUM | integration-tests/streaming-regression.spec.ts | 292 | // ─── No JS errors during streaming ─────────────────────────────────────────── | COMMENT |
| MEDIUM | integration-tests/ssr-parity-fixtures.js | 710 | // ── SSR-fix regression fixtures data ─────────────────────────────────── | COMMENT |
| MEDIUM | integration-tests/ssr-parity-fixtures.js | 1569 | // ── SSR-fix regression fixtures ──────────────────────────────────── | COMMENT |
| MEDIUM | integration-tests/brush-selection.spec.ts | 278 | // ── Interaction-state visual snapshot ─────────────────────────────── | COMMENT |
| MEDIUM | integration-tests/coordinated-views.spec.ts | 9 | // ── Linked hover cross-highlighting ─────────────────────────────────── | COMMENT |
| MEDIUM | integration-tests/coordinated-views.spec.ts | 55 | // ── ChartGrid with emphasis ─────────────────────────────────────────── | COMMENT |
| MEDIUM | integration-tests/coordinated-views.spec.ts | 78 | // ── Empty state ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | integration-tests/coordinated-views.spec.ts | 93 | // ── Three-way linked charts ─────────────────────────────────────────── | COMMENT |
| MEDIUM | integration-tests/ordinal-frame.spec.ts | 261 | // ── Default-theme HOC coverage backfill ────────────────────────────── | COMMENT |
| MEDIUM | integration-tests/realtime-charts.spec.ts | 132 | // ── Default-theme HOC coverage backfill (static fixtures) ──────────── | COMMENT |
| MEDIUM | integration-tests/accessibility.spec.ts | 5 | // ─── 1. Canvas aria-labels describe chart type and data shape ───────────────── | COMMENT |
| MEDIUM | integration-tests/accessibility.spec.ts | 68 | // ─── 2. AriaLiveTooltip region with aria-live="polite" ──────────────────────── | COMMENT |
| MEDIUM | integration-tests/accessibility.spec.ts | 118 | // ─── 3. Legend keyboard traversal ───────────────────────────────────────────── | COMMENT |
| MEDIUM | integration-tests/accessibility.spec.ts | 237 | // ─── 4. Focus rings appear on keyboard focus ───────────────────────────────── | COMMENT |
| MEDIUM | integration-tests/accessibility.spec.ts | 326 | // ─── 5. SVG overlays have title/desc elements ──────────────────────────────── | COMMENT |
| MEDIUM | integration-tests/accessibility.spec.ts | 408 | // ─── 6. ChartContainer toolbar buttons have aria-labels ─────────────────────── | COMMENT |
| MEDIUM | integration-tests/accessibility.spec.ts | 499 | // ─── 7. Automated axe-core accessibility scanning ─────────────────────────── | COMMENT |
| MEDIUM | integration-tests/accessibility.spec.ts | 540 | // ─── Smoke test: no JS errors on page load ─────────────────────────────────── | COMMENT |
| MEDIUM | integration-tests/geo-charts.spec.ts | 186 | // ── Default-theme HOC coverage backfill ────────────────────────────── | COMMENT |
| MEDIUM | integration-tests/xy-frame.spec.ts | 285 | // ── Default-theme HOC coverage backfill ────────────────────────────── | COMMENT |
| MEDIUM | integration-tests/xy-frame.spec.ts | 314 | // ── Interaction-state visual snapshots ────────────────────────────── | COMMENT |
| MEDIUM | integration-tests/network-frame.spec.ts | 97 | // ── Default-theme HOC coverage backfill ────────────────────────────── | COMMENT |
| MEDIUM | integration-tests/xy-examples/index.js | 255 | // ── Default-theme HOC coverage backfill ───────────────────────────── | COMMENT |
| MEDIUM | integration-tests/xy-examples/index.js | 364 | // ── Interaction-state fixtures ────────────────────────────────────── | COMMENT |
| MEDIUM | integration-tests/xy-examples/index.js | 426 | // ── Multi-tooltip fixtures ─────────────────────────────────────────── | COMMENT |
| MEDIUM | integration-tests/xy-examples/index.js | 481 | // ── xExtent / yExtent override variants ──────────────────────────── | COMMENT |
| MEDIUM | integration-tests/status-scale-theme-examples/index.js | 24 | // ── Deterministic data ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | integration-tests/status-scale-theme-examples/index.js | 120 | // ── Waterfall: themeSemantic.success / .danger ──────────────────────── | COMMENT |
| MEDIUM | integration-tests/status-scale-theme-examples/index.js | 132 | // ── Heatmap: themeSequential ────────────────────────────────────────── | COMMENT |
| MEDIUM | integration-tests/status-scale-theme-examples/index.js | 146 | // ── Likert: themeDiverging ──────────────────────────────────────────── | COMMENT |
| MEDIUM | integration-tests/realtime-examples/index.js | 143 | // ── Static bounded fixtures for visual snapshots ───────────────────── | COMMENT |
| MEDIUM | integration-tests/realtime-examples/index.js | 225 | // ── Default-theme HOC coverage backfill (static) ──────────────────── | COMMENT |
| MEDIUM | integration-tests/network-examples/index.js | 143 | // ── Default-theme HOC coverage backfill ──────────────────────────── | COMMENT |
| MEDIUM | …tegration-tests/streaming-regression-examples/index.js | 27 | // ── 1. Streaming Stacked Bar (grey fill + legend regression) ───────────────── | COMMENT |
| MEDIUM | …tegration-tests/streaming-regression-examples/index.js | 63 | // ── 2. Streaming Pie (grey fill + legend regression) ───────────────────────── | COMMENT |
| MEDIUM | …tegration-tests/streaming-regression-examples/index.js | 94 | // ── 3. Streaming Bubble (grey fill regression) ─────────────────────────────── | COMMENT |
| MEDIUM | …tegration-tests/streaming-regression-examples/index.js | 127 | // ── 4. Streaming Grouped Bar (grey fill + legend regression) ───────────────── | COMMENT |
| MEDIUM | …tegration-tests/streaming-regression-examples/index.js | 161 | // ── 5. Streaming Stacked Area (grey fill regression) ───────────────────────── | COMMENT |
| MEDIUM | …tegration-tests/streaming-regression-examples/index.js | 193 | // ── 6. Area chart tooltip (shows "-" regression) ───────────────────────────── | COMMENT |
| MEDIUM | …tegration-tests/streaming-regression-examples/index.js | 215 | // ── 7. LineChart streaming (infinite loop regression) ───────────────────────── | COMMENT |
| MEDIUM | …tegration-tests/streaming-regression-examples/index.js | 249 | // ── 8. Force-Directed Graph centering ──────────────────────────────────────── | COMMENT |
| MEDIUM | …tegration-tests/streaming-regression-examples/index.js | 274 | // ── 9. Streaming Chord (blue-only regression) ──────────────────────────────── | COMMENT |
| MEDIUM | …tegration-tests/streaming-regression-examples/index.js | 301 | // ── 10. Streaming Donut (grey fill + legend regression) ────────────────────── | COMMENT |
| MEDIUM | …tegration-tests/streaming-regression-examples/index.js | 332 | // ── 11. Streaming Scatterplot (grey fill regression) ───────────────────────── | COMMENT |
| MEDIUM | integration-tests/coordinated-examples/index.js | 96 | // ── Shared test data (deterministic) ──────────────────────────────────── | COMMENT |
| MEDIUM | integration-tests/coordinated-examples/index.js | 979 | // ── Test cases ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | integration-tests/ordinal-examples/index.js | 405 | // ── Default-theme HOC coverage backfill ───────────────────────────── | COMMENT |
| MEDIUM | integration-tests/ordinal-examples/index.js | 436 | // ── valueExtent override variants ───────────────────────────────── | COMMENT |
| MEDIUM | integration-tests/themed-examples/index.js | 23 | // ── Deterministic data ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | integration-tests/themed-examples/index.js | 90 | // ── Charts to snapshot per theme ────────────────────────────────────────── | COMMENT |
| MEDIUM | integration-tests/themed-examples/index.js | 150 | // ── Render grid ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | integration-tests/custom-layout-examples/index.js | 156 | // ── Glyph unit chart: composite-pictogram scene nodes fed by unitize ──────── | COMMENT |
| MEDIUM | integration-tests/chart-modes-examples/index.js | 36 | // ── Deterministic fixtures ───────────────────────────────────────────────── | COMMENT |
| MEDIUM | integration-tests/primitive-props-examples/index.js | 34 | // ── Deterministic data ───────────────────────────────────────────────────── | COMMENT |
| 1532 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | etc/api-surface/semiotic-server.api.md | 16 | function renderPhysicsToAnimatedGif(props: PhysicsGifFrameProps, options?: PhysicsGifOptions | undefined): Promise<Buffe | CODE |
| LOW⚡ | etc/api-surface/semiotic-network.api.md | 22 | function diagnoseProcessSankeyLayout(layout: Pick<ProcessSankeyLayout, "compressedPadding" | "crossingsAfter" | "layoutQ | CODE |
| LOW⚡ | etc/api-surface/semiotic-network.api.md | 23 | function diagnoseProcessSankeyProps(props: Record<string, unknown>): Diagnosis[] | CODE |
| LOW⚡ | etc/api-surface/semiotic-network.api.md | 24 | function explainProcessSankeyLayout(layout: Pick<ProcessSankeyLayout, "compressedPadding" | "crossingsAfter" | "layoutQu | CODE |
| LOW | etc/api-surface/semiotic-network.api.md | 40 | function registerBuiltInNetworkLayouts(): void | CODE |
| LOW | etc/api-surface/semiotic-physics-rapier.api.md | 17 | function optionalEngineDependencyError(details: PhysicsOptionalEngineInstallDetails, cause?: unknown): PhysicsOptionalEn | CODE |
| LOW | etc/api-surface/semiotic-physics-rapier.api.md | 18 | function rapierPhysicsDependencyError(cause?: unknown): Error | CODE |
| LOW⚡ | etc/api-surface/semiotic-controls.api.md | 9 | function DirectManipulationControl({ value, onChange, pointerToValue, min, max, step, largeStep, x, y, controlType, cont | CODE |
| LOW⚡ | etc/api-surface/semiotic-controls.api.md | 12 | function auditVisualizationControls({ controls, minimumTargetSize, }: AuditVisualizationControlsOptions): ControlAuditRe | CODE |
| LOW⚡ | etc/api-surface/semiotic-controls.api.md | 14 | function createControlObservationAdapter({ controlType, controlId, chartId, chartType, onObservation, }: ControlObservat | CODE |
| LOW⚡ | etc/api-surface/semiotic-recipes.api.md | 70 | function composePhysicsControllers(controllers: null | readonly PhysicsController[] | undefined): ComposedPhysicsControl | CODE |
| LOW⚡ | etc/api-surface/semiotic-recipes.api.md | 71 | function computeTransitDiagramPositions(nodes: readonly {id: string; data: Datum;}[], edges: readonly TransitDiagramEdge | CODE |
| LOW⚡ | etc/api-surface/semiotic-recipes.api.md | 73 | function createCapacityQueueController(options: CapacityQueueControllerOptions): PhysicsController | CODE |
| LOW⚡ | etc/api-surface/semiotic-recipes.api.md | 74 | function createDependencyGateController(options: DependencyGateOptions): DependencyGateController | CODE |
| LOW⚡ | etc/api-surface/semiotic-recipes.api.md | 76 | function createProcessJourneyLedger(options: {stages: readonly ProcessJourneyStage[]; bodyIds?: readonly string[];}): Pr | CODE |
| LOW⚡ | etc/api-surface/semiotic-recipes.api.md | 77 | function createServiceLevelController(options: ServiceLevelControllerOptions): ServiceLevelController | CODE |
| LOW⚡ | etc/api-surface/semiotic-recipes.api.md | 78 | function createServiceResourcePoolController(options: ServiceResourcePoolOptions): ServiceResourcePoolController | CODE |
| LOW⚡ | etc/api-surface/semiotic-recipes.api.md | 87 | function describePhysicsStageGeography(geography: PhysicsStageGeography, nouns?: undefined | {charge?: string; apparatus | CODE |
| LOW | etc/api-surface/semiotic-recipes.api.md | 143 | function mobileSmallMultipleRecipe(options?: MobileChartFamilyRecipeOptions | undefined): MobileChartFamilyRecipe | CODE |
| LOW | etc/api-surface/semiotic-recipes.api.md | 164 | function parallelCoordinatesLayout(*: OrdinalLayoutContext<import("../semiotic-recipes-core").ParallelCoordinatesConfig> | CODE |
| LOW | etc/api-surface/semiotic-recipes.api.md | 187 | function regionCountsToProjectionRows(counts: RegionCountMap, order?: readonly string[] | undefined): {label: string; va | CODE |
| LOW | etc/api-surface/semiotic-recipes.api.md | 221 | function tokenTaskIntentToCapabilityIntents(intent: TokenTaskIntent): TokenCapabilityIntent[] | CODE |
| LOW | etc/api-surface/semiotic-recipes.api.md | 232 | function wordTrailsProgressiveReveal(options: WordTrailsProgressiveRevealOptions): Pick<WordTrailsConfig, "weightOpacity | CODE |
| LOW | etc/api-surface/semiotic-geo.api.md | 34 | function resolveReferenceGeography(name: ReferenceGeography): Promise<import("geojson").Feature<import("geojson").Geomet | CODE |
| LOW⚡ | etc/api-surface/semiotic-physics-matter.api.md | 16 | function matterBodiesToPhysicsColliders(bodies: readonly MatterBodyLike[], options?: MatterMigrationOptions | undefined) | CODE |
| LOW⚡ | etc/api-surface/semiotic-physics-matter.api.md | 17 | function matterBodiesToPhysicsSpawns(bodies: readonly MatterBodyLike[], options?: MatterMigrationOptions | undefined): P | CODE |
| LOW⚡ | etc/api-surface/semiotic-physics-matter.api.md | 18 | function matterBodyToPhysicsBodySpec(body: MatterBodyLike, index?: number | undefined, options?: MatterMigrationOptions | CODE |
| LOW⚡ | etc/api-surface/semiotic-physics-matter.api.md | 19 | function matterBodyToPhysicsColliderSpec(body: MatterBodyLike, index?: number | undefined, options?: MatterMigrationOpti | CODE |
| LOW⚡ | etc/api-surface/semiotic-physics-matter.api.md | 20 | function matterPhysicsDependencyError(cause?: unknown): Error | CODE |
| LOW⚡ | etc/api-surface/semiotic-physics-matter.api.md | 21 | function optionalEngineDependencyError(details: PhysicsOptionalEngineInstallDetails, cause?: unknown): PhysicsOptionalEn | CODE |
| LOW⚡ | etc/api-surface/semiotic-recipes-core.api.md | 69 | function composePhysicsControllers(controllers: null | readonly PhysicsController[] | undefined): ComposedPhysicsControl | CODE |
| LOW⚡ | etc/api-surface/semiotic-recipes-core.api.md | 70 | function computeTransitDiagramPositions(nodes: readonly {id: string; data: Datum;}[], edges: readonly TransitDiagramEdge | CODE |
| LOW⚡ | etc/api-surface/semiotic-recipes-core.api.md | 72 | function createCapacityQueueController(options: CapacityQueueControllerOptions): PhysicsController | CODE |
| LOW⚡ | etc/api-surface/semiotic-recipes-core.api.md | 73 | function createDependencyGateController(options: DependencyGateOptions): DependencyGateController | CODE |
| LOW⚡ | etc/api-surface/semiotic-recipes-core.api.md | 75 | function createProcessJourneyLedger(options: {stages: readonly ProcessJourneyStage[]; bodyIds?: readonly string[];}): Pr | CODE |
| LOW⚡ | etc/api-surface/semiotic-recipes-core.api.md | 76 | function createServiceLevelController(options: ServiceLevelControllerOptions): ServiceLevelController | CODE |
| LOW⚡ | etc/api-surface/semiotic-recipes-core.api.md | 77 | function createServiceResourcePoolController(options: ServiceResourcePoolOptions): ServiceResourcePoolController | CODE |
| LOW⚡ | etc/api-surface/semiotic-recipes-core.api.md | 86 | function describePhysicsStageGeography(geography: PhysicsStageGeography, nouns?: undefined | {charge?: string; apparatus | CODE |
| LOW | etc/api-surface/semiotic-recipes-core.api.md | 142 | function mobileSmallMultipleRecipe(options?: MobileChartFamilyRecipeOptions | undefined): MobileChartFamilyRecipe | CODE |
| LOW | etc/api-surface/semiotic-recipes-core.api.md | 163 | function parallelCoordinatesLayout(*: OrdinalLayoutContext<import("../semiotic-recipes-core").ParallelCoordinatesConfig> | CODE |
| LOW | etc/api-surface/semiotic-recipes-core.api.md | 186 | function regionCountsToProjectionRows(counts: RegionCountMap, order?: readonly string[] | undefined): {label: string; va | CODE |
| LOW | etc/api-surface/semiotic-recipes-core.api.md | 220 | function tokenTaskIntentToCapabilityIntents(intent: TokenTaskIntent): TokenCapabilityIntent[] | CODE |
| LOW | etc/api-surface/semiotic-recipes-core.api.md | 230 | function wordTrailsProgressiveReveal(options: WordTrailsProgressiveRevealOptions): Pick<WordTrailsConfig, "weightOpacity | CODE |
| LOW | etc/api-surface/semiotic-access.api.md | 11 | function createChartAccessContract({ component, props, options }: ChartAccessContractInput): ChartAccessContract | CODE |
| LOW⚡ | etc/api-surface/semiotic-physics.api.md | 104 | function bodiesToAnnotationAnchors(bodies: readonly PhysicsBodyState[]): PhysicsAnnotationAnchorNode[] | CODE |
| LOW⚡ | etc/api-surface/semiotic-physics.api.md | 110 | function buildCruciblePhysicsConfig(seed: number | string | undefined, colliders: readonly PhysicsColliderSpec[]): Physi | CODE |
| LOW⚡ | etc/api-surface/semiotic-physics.api.md | 111 | function buildCrucibleProductEvents(options: BuildCrucibleProductEventsOptions): CrucibleEvent[] | CODE |
| LOW⚡ | etc/api-surface/semiotic-physics.api.md | 118 | function buildPhysicsAnnotationContext(options: {width: number; height: number; pointNodes?: PhysicsAnnotationAnchorNode | CODE |
| LOW⚡ | etc/api-surface/semiotic-physics.api.md | 131 | function composePhysicsControllers(controllers: null | readonly PhysicsController[] | undefined): ComposedPhysicsControl | CODE |
| LOW⚡ | etc/api-surface/semiotic-physics.api.md | 133 | function createCapacityQueueController(options: CapacityQueueControllerOptions): PhysicsController | CODE |
| LOW⚡ | etc/api-surface/semiotic-physics.api.md | 134 | function createDefaultPhysicsEngineAdapter(options?: PhysicsKernelOptions | undefined): PhysicsEngineAdapter | CODE |
| LOW⚡ | etc/api-surface/semiotic-physics.api.md | 135 | function createDependencyGateController(options: DependencyGateOptions): DependencyGateController | CODE |
| LOW⚡ | etc/api-surface/semiotic-physics.api.md | 140 | function createProcessJourneyLedger(options: {stages: readonly ProcessJourneyStage[]; bodyIds?: readonly string[];}): Pr | CODE |
| LOW⚡ | etc/api-surface/semiotic-physics.api.md | 141 | function createServiceLevelController(options: ServiceLevelControllerOptions): ServiceLevelController | CODE |
| LOW⚡ | etc/api-surface/semiotic-physics.api.md | 142 | function createServiceResourcePoolController(options: ServiceResourcePoolOptions): ServiceResourcePoolController | CODE |
| LOW⚡ | etc/api-surface/semiotic-physics.api.md | 144 | function crucibleBoundaryColliders(layout: CrucibleLayout): PhysicsColliderSpec[] | CODE |
| LOW⚡ | etc/api-surface/semiotic-physics.api.md | 151 | function describePhysicsStageGeography(geography: PhysicsStageGeography, nouns?: undefined | {charge?: string; apparatus | CODE |
| LOW⚡ | etc/api-surface/semiotic-physics.api.md | 153 | function evaluatePhysicsBodyBudget(input: PhysicsBodyBudgetInput): PhysicsBodyBudgetDecision | CODE |
| LOW⚡ | etc/api-surface/semiotic-physics.api.md | 164 | function normalizePhysicsAnnotations(annotations: Datum[] | undefined): Datum[] | undefined | CODE |
| LOW⚡ | etc/api-surface/semiotic-physics.api.md | 168 | function physicsProcessBoundaryColliders(shape: PhysicsColliderShape, options?: PhysicsProcessBoundaryOptions | undefine | CODE |
| 674 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | deploy/cloud-run-nightly/cloudbuild.yaml | 1 | # Repository-built nightly deployment for the us-central1 Cloud Run service | COMMENT |
| LOW | .agents/skills/blog-post/templates/narrative.js | 1 | // TEMPLATE — narrative / case study | COMMENT |
| LOW | .agents/skills/blog-post/templates/narrative.js | 141 | // 2. Add metadata-only copy to docs/src/blog/entries-meta.js. | COMMENT |
| LOW | .agents/skills/blog-post/templates/release-summary.js | 101 | date: "TODO YYYY-MM-DD", // release date from CHANGELOG | COMMENT |
| LOW | .agents/skills/blog-post/templates/chart-explainer.js | 1 | // TEMPLATE — chart explainer | COMMENT |
| LOW | integration-tests/helpers.ts | 121 | state.stableCount = 0 | COMMENT |
| LOW | integration-tests/ordinal-frame.spec.ts | 41 | // SwarmPlot's `valueExtent` prop maps to the frame's `rExtent`. Each | COMMENT |
| LOW | integration-tests/realtime-charts.spec.ts | 121 | // by `computeCanvasAriaLabel` — it only carries a node count | COMMENT |
| LOW | integration-tests/status-scale-theme-examples/index.js | 1 | // Status-aware + scale theme matrix for Phase A milestone 3. | COMMENT |
| LOW | integration-tests/realtime-examples/index.js | 141 | } | COMMENT |
| LOW | integration-tests/ordinal-examples/index.js | 441 | // • [undefined, max] — only the max pinned, min stays data-derived | COMMENT |
| LOW | …gration-tests/histogram-theme-stroke-examples/index.js | 1 | // RealtimeHistogram theme-aware stroke regression harness. | COMMENT |
| LOW | integration-tests/background-graphics-examples/index.js | 1 | import * as Semiotic from "../../dist/semiotic.module.min.js" | COMMENT |
| LOW | integration-tests/chart-modes-examples/index.js | 1 | // Chart-mode visual regression matrix. | COMMENT |
| LOW | integration-tests/primitive-props-examples/index.js | 1 | // Primitive-props matrix for Phase B. | COMMENT |
| LOW | …gration-tests/primitive-theme-matrix-examples/index.js | 1 | // Primitive-theme matrix: Ordinal / Network / Geo under light + dark. | COMMENT |
| LOW | docs/src/blog/entries/difference-chart.jsx | 1 | import React, { useRef } from "react" | COMMENT |
| LOW | docs/src/components/codegen.js | 1 | // Pure code-string generation for LiveExample. | COMMENT |
| LOW | docs/src/components/reshapeSuggestions.js | 1 | // Generative reshape suggestions — the "your flat table could become this" layer. | COMMENT |
| LOW | docs/src/examples/recipes/AnscombesSankey.jsx | 41 | // starting from ER. The total path defines the patient's ward | COMMENT |
| LOW | docs/src/examples/recipes/PatientJourneys.jsx | 41 | // edge; (2) the band gains a bit more breathing room which makes the | COMMENT |
| LOW | docs/src/examples/recipes/data/kstreamsTopology.js | 1 | // ───────────────────────────────────────────────────────────────────────── | COMMENT |
| LOW | docs/src/examples/recipes/data/dagLayout.js | 1 | // ───────────────────────────────────────────────────────────────────────── | COMMENT |
| LOW | docs/src/pages/custom-charts/CustomLayoutsPage.jsx | 61 | // (h=32) — top edges align, bottom edges don't. | COMMENT |
| LOW | docs/src/pages/charts/ProcessSankeyPage.jsx | 221 | { id: "s-w1-b", source: "Service", target: "Worker1", value: 3, startTime: D(2026, 2, 1), endTime: D(2026, 2, 8) } | COMMENT |
| LOW | docs/src/pages/charts/ProcessSankeyPage.jsx | 241 | // The Sankey edge itself only encodes the routing transition (start | COMMENT |
| LOW | docs/src/pages/examples/data/worldDevelopment.js | 1 | // Real data: World Bank, World Development Indicators (data.worldbank.org), | COMMENT |
| LOW | docs/src/pages/examples/data/worldDevelopment.js | 601 | COMMENT | |
| LOW | docs/src/pages/examples/data/urineWheel.js | 1 | // The Wheel of Urines — data for a medieval uroscopy diagnostic chart. | COMMENT |
| LOW | docs/src/pages/examples/data/gestaltData.js | 1 | // Data + small deterministic layout helpers for the chapterized | COMMENT |
| LOW | docs/src/pages/accessibility/AccessibilityPage.jsx | 201 | COMMENT | |
| LOW | ai/mcp-server.ts | 3341 | // building a server per request — trivial at this QPS, and we use neither | COMMENT |
| LOW | scripts/check-ssr-alignment.js | 241 | COMMENT | |
| LOW | scripts/check-ssr-alignment.js | 281 | COMMENT | |
| LOW | scripts/rollback-release.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | .github/workflows/node.js.yml | 461 | e2e: | COMMENT |
| LOW | src/components/LinkedCharts.tsx | 301 | // `maxWidth` — so any label over ~100px causes the items to wrap one | COMMENT |
| LOW | src/components/Tooltip/Tooltip.tsx | 601 | } | COMMENT |
| LOW | src/components/Tooltip/Tooltip.tsx | 621 | return undefined | COMMENT |
| LOW | src/components/Tooltip/Tooltip.tsx | 681 | datum = datum.data | COMMENT |
| LOW | src/components/Tooltip/FlippingTooltip.tsx | 141 | // Heuristic fallback on first render (before measurement) | COMMENT |
| LOW | src/components/stream/StreamXYFrame.hydration.test.tsx | 121 | const html = renderToString(<StreamXYFrame {...baseProps} />) | COMMENT |
| LOW | src/components/stream/StreamXYFrame.tsx | 681 | COMMENT | |
| LOW | src/components/stream/StreamXYFrame.tsx | 1221 | const hasAnnotations = (annotations && annotations.length > 0) || false | COMMENT |
| LOW | src/components/stream/useFrame.ts | 241 | // (coalescing). The scheduler releases the token immediately before an | COMMENT |
| LOW | src/components/stream/useFrame.ts | 261 | cancelRender: () => void | COMMENT |
| LOW | src/components/stream/restylePaint.frame.test.tsx | 1 | import "../../test-utils/registerBuiltInXYPlugins" | COMMENT |
| LOW | src/components/stream/sampleCurvePath.test.ts | 41 | ] | COMMENT |
| LOW | src/components/stream/geoPipelineHelpers.ts | 81 | ): Style { | COMMENT |
| LOW | src/components/stream/PipelineStore.ts | 1421 | // immediately rather than leaving the new configuration inert until a | COMMENT |
| LOW | src/components/stream/SceneToSVGOrdinal.tsx | 221 | case "glyph": { | COMMENT |
| LOW | src/components/stream/useHydration.ts | 181 | cancelRender?.() | COMMENT |
| LOW | src/components/stream/NetworkPipelineStore.ts | 121 | // without an index. Above QUADTREE_THRESHOLD circles we lazily build a | COMMENT |
| LOW | src/components/stream/NetworkPipelineStore.ts | 421 | sankeyWidth: 0, | COMMENT |
| LOW | src/components/stream/PipelineStore.stackOrder.test.ts | 141 | // Regression: areaScene used to enter the totals branch for any | COMMENT |
| LOW | src/components/stream/OrdinalPipelineStore.ts | 481 | } | COMMENT |
| LOW | src/components/stream/OrdinalPipelineStore.ts | 701 | COMMENT | |
| LOW | src/components/stream/OrdinalPipelineStore.ts | 1501 | Object.assign(this.config, config) | COMMENT |
| LOW | src/components/stream/StreamNetworkFrame.test.tsx | 101 | // so identity comparison isn't meaningful here. Verify the user's | COMMENT |
| LOW | src/components/stream/NetworkCanvasHitTester.ts | 321 | if (!path || !ctx) return null | COMMENT |
| 55 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | MIGRATION.md | 30 | ## Step 1: Update React | COMMENT |
| LOW | MIGRATION.md | 41 | ## Step 2: Install Semiotic v3 | COMMENT |
| LOW | MIGRATION.md | 47 | ## Step 3: Understand the Frame Changes | COMMENT |
| LOW | MIGRATION.md | 120 | ## Step 4: Check for Removed APIs | COMMENT |
| LOW | MIGRATION.md | 172 | ## Step 5: Adopt Chart HOCs (Recommended) | COMMENT |
| LOW | MIGRATION.md | 228 | ## Step 6: Use Streaming (Optional) | COMMENT |
| LOW | MIGRATION.md | 300 | ## Step 7: Use Granular Imports for Smaller Bundles | COMMENT |
| LOW | MIGRATION.md | 325 | ## Step 8: TypeScript (Optional) | COMMENT |
| LOW | MIGRATION.md | 351 | ## Step 9: Next.js / SSR Frameworks | COMMENT |
| LOW⚡ | benchmarks/unit/large-dataset-processing.bench.ts | 217 | // Step 1: Parse CSV | COMMENT |
| LOW⚡ | benchmarks/unit/large-dataset-processing.bench.ts | 220 | // Step 2: Transform to typed points | COMMENT |
| LOW | benchmarks/unit/large-dataset-processing.bench.ts | 232 | // Step 3: Calculate extents | COMMENT |
| LOW | benchmarks/unit/large-dataset-processing.bench.ts | 245 | // Step 4: Project points (accessor application) | COMMENT |
| LOW⚡ | benchmarks/unit/hierarchy-processing.bench.ts | 175 | // Step 1: Build hierarchy + layout | COMMENT |
| LOW⚡ | benchmarks/unit/hierarchy-processing.bench.ts | 181 | // Step 2: Flatten to nodes/edges | COMMENT |
| LOW⚡ | scripts/rollback-release.sh | 78 | # Step 1: Deprecate the bad version | COMMENT |
| LOW⚡ | scripts/rollback-release.sh | 84 | # Step 2: Point dist-tag to previous good version | COMMENT |
| LOW⚡ | scripts/rollback-release.sh | 90 | # Step 3: Verify | COMMENT |
| LOW⚡ | src/components/stream/GeoPipelineStore.ts | 502 | // Step 1: Resolve projection | COMMENT |
| LOW⚡ | src/components/stream/GeoPipelineStore.ts | 506 | // Step 2: Compute bounds and fit projection | COMMENT |
| LOW⚡ | src/components/stream/GeoPipelineStore.ts | 512 | // Step 3: Build scales object | COMMENT |
| LOW⚡ | src/components/stream/GeoPipelineStore.ts | 556 | // Step 5: Apply distance cartogram transform | COMMENT |
| LOW⚡ | src/components/stream/GeoPipelineStore.ts | 561 | // Step 6: Apply realtime encodings | COMMENT |
| LOW⚡ | src/components/stream/GeoPipelineStore.ts | 569 | // Step 7: Intro animation — synthesize center-origin prev scene on first render | COMMENT |
| LOW⚡ | src/components/stream/GeoPipelineStore.ts | 583 | // Step 8: Data-change transition | COMMENT |
| LOW | src/components/stream/GeoPipelineStore.ts | 528 | // Step 4: Build scene nodes | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | benchmarks/unit/large-dataset-processing.bench.ts | 217 | // Step 1: Parse CSV | COMMENT |
| LOW⚡ | benchmarks/unit/large-dataset-processing.bench.ts | 220 | // Step 2: Transform to typed points | COMMENT |
| LOW | benchmarks/unit/large-dataset-processing.bench.ts | 232 | // Step 3: Calculate extents | COMMENT |
| LOW | benchmarks/unit/large-dataset-processing.bench.ts | 245 | // Step 4: Project points (accessor application) | COMMENT |
| LOW⚡ | benchmarks/unit/hierarchy-processing.bench.ts | 175 | // Step 1: Build hierarchy + layout | COMMENT |
| LOW⚡ | benchmarks/unit/hierarchy-processing.bench.ts | 181 | // Step 2: Flatten to nodes/edges | COMMENT |
| LOW⚡ | scripts/rollback-release.sh | 78 | # Step 1: Deprecate the bad version | COMMENT |
| LOW⚡ | scripts/rollback-release.sh | 84 | # Step 2: Point dist-tag to previous good version | COMMENT |
| LOW⚡ | scripts/rollback-release.sh | 90 | # Step 3: Verify | COMMENT |
| LOW⚡ | src/components/stream/GeoPipelineStore.ts | 502 | // Step 1: Resolve projection | COMMENT |
| LOW⚡ | src/components/stream/GeoPipelineStore.ts | 506 | // Step 2: Compute bounds and fit projection | COMMENT |
| LOW⚡ | src/components/stream/GeoPipelineStore.ts | 512 | // Step 3: Build scales object | COMMENT |
| LOW⚡ | src/components/stream/GeoPipelineStore.ts | 556 | // Step 5: Apply distance cartogram transform | COMMENT |
| LOW⚡ | src/components/stream/GeoPipelineStore.ts | 561 | // Step 6: Apply realtime encodings | COMMENT |
| LOW⚡ | src/components/stream/GeoPipelineStore.ts | 569 | // Step 7: Intro animation — synthesize center-origin prev scene on first render | COMMENT |
| LOW⚡ | src/components/stream/GeoPipelineStore.ts | 583 | // Step 8: Data-change transition | COMMENT |
| LOW | src/components/stream/GeoPipelineStore.ts | 528 | // Step 4: Build scene nodes | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | docs/src/pages/examples/aestheticPolicyStudio.test.js | 44 | const hierarchy = organization.selection.selected.report.features.find( | CODE |
| CRITICAL | src/__tests__/scenarios/chart-specs-round-trip.test.ts | 103 | events.items.properties.effects.items.oneOf.map( | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | .github/workflows/node.js.yml | 406 | # authored examples rather than the packaged visual harness. Keep it in an | COMMENT |
| MEDIUM | src/components/charts/shared/formatUtils.ts | 256 | // Use median gap to be robust against one-off outliers | COMMENT |
| MEDIUM | src/components/charts/shared/formatUtils.test.ts | 106 | // The local getters in the expected value make this robust in every CI TZ, | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | docs/src/IndexPages.jsx | 304 | in real time with auto-generated code. | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …cs/src/pages/examples/last-scarcity/FreedTimeWheel.jsx | 156 | { id: "sleep", label: "Sleep", hours: 8.5, color: "#aeb9ae", source: "scaffold" }, | CODE |
| MEDIUM | src/components/charts/custom/NetworkCustomChart.tsx | 169 | // Selection / linked-hover wiring — the custom-chart scaffold is the | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/add-legend-to-hocs.sh | 20 | # Check if createLegend import already exists | COMMENT |
| LOW | scripts/add-legend-to-hocs.sh | 27 | # Check if showLegend prop already exists | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docs/src/pages/playground/DonutChartPlayground.jsx | 36 | { category: "Acme Corp", amount: 34 }, | CODE |
| LOW | docs/src/pages/playground/DonutChartPlayground.jsx | 64 | { category: "Acme Corp", amount: 34 }, | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/rollback-release.sh | 6 | # Usage: | COMMENT |