Open source factory for one-shot engineering
This report summarizes scanner evidence for superplanehq/superplane, a Go project with 8,490 GitHub stars. SynthScan examined 1,689,229 lines of code across 9298 source files, recording 2874 pattern matches distributed across 16 syntactic categories. The legacy adjusted pattern signal is 2.0 (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-10-31.
Can maintainers explain intent, assumptions, and trade-offs? 2566 finding(s).
Are imports declared and package/API names verified? 153 finding(s).
Are wrappers, guards, and repeated structures necessary? 2618 finding(s).
Which changes need focused human review? 2874 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 2874 distinct pattern matches across 16 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 | release/component-release.test.js | 78 | function commitSharedReleaseChange(repository, subject) { | CODE |
| LOW | release/component-release.js | 223 | function commitsScopedToOtherComponents(component, range, repository) { | CODE |
| LOW | release/component-release.js | 475 | async function verifyPublishedPrerelease({ | CODE |
| LOW | …rplane-helm-chart/update-component-release-defaults.js | 260 | function fetchFleetManagerRegistryToken(registry) { | CODE |
| LOW | …rplane-helm-chart/update-component-release-defaults.js | 293 | function latestPublishedFleetManagerVersion(releases) { | CODE |
| LOW | web_src/public/assets/onboarding/superplane-art.js | 306 | function buildChevronArrowGeometry(){ | CODE |
| LOW | web_src/public/assets/onboarding/superplane-art.js | 678 | function updateLineThicknessVisibility(){ | CODE |
| LOW | web_src/public/assets/onboarding/superplane-art.js | 682 | function updateArrowGlobalSectionVisibility(){ | CODE |
| LOW | web_src/src/App.tsx | 153 | function organizationScopedRouteTree() { | CODE |
| LOW | web_src/src/App.tsx | 327 | function OrganizationOnboardingRoute() { | CODE |
| LOW | web_src/src/App.tsx | 349 | function organizationScopeQueryEnabled(segment: string | undefined, isReserved: boolean, guestLine: boolean): boolean { | CODE |
| LOW | web_src/src/App.tsx | 439 | function CreateWorkOrderComposeGate() { | CODE |
| LOW⚡ | web_src/src/App.tsx | 475 | function FactoryCanvasConfigureGate() { | CODE |
| LOW⚡ | web_src/src/App.tsx | 483 | function LegacyAutomationsNewLineRedirect() { | CODE |
| LOW⚡ | web_src/src/App.tsx | 489 | function LegacyAutomationsLineEditRedirect() { | CODE |
| LOW | web_src/src/sentry.ts | 53 | export function isMonacoClipboardDeniedEvent(event: Sentry.ErrorEvent): boolean { | CODE |
| LOW | web_src/src/sentry.ts | 86 | export function normalizeApiRouteTemplate(path: string): string | undefined { | CODE |
| LOW | web_src/src/posthog.ts | 39 | export function identifyOrganizationGroup(organization: { id: string; name: string; slug?: string }): void { | CODE |
| LOW | web_src/src/ui/buildingBlocks.ts | 13 | export function buildBuildingBlockCategories( | CODE |
| LOW | web_src/src/ui/buildingBlocks.ts | 112 | function buildIntegrationCategories(integrations: IntegrationsIntegrationDefinition[]): BuildingBlockCategory[] { | CODE |
| LOW | …/src/ui/IntegrationCreateDialog/configurationFields.ts | 35 | export function areRequiredCreateFieldsFilled(fields: ConfigurationField[], values: Record<string, unknown>): boolean { | CODE |
| LOW | …/src/ui/IntegrationCreateDialog/configurationFields.ts | 55 | function isConfigurationValueEmpty(value: unknown): boolean { | CODE |
| LOW | web_src/src/ui/IntegrationCreateDialog/generatedName.ts | 18 | export function useGeneratedIntegrationName(args: { | CODE |
| LOW | …egrationCreateDialog/IntegrationCreateDialogFooter.tsx | 23 | export function IntegrationCreateDialogFooter({ | CODE |
| LOW | web_src/src/ui/ConfigureIntegrationDialog/index.tsx | 27 | export function ConfigureIntegrationDialog({ | CODE |
| LOW | web_src/src/ui/componentBase/index.tsx | 114 | function resolveCustomFieldContent(customField: ComponentBaseProps["customField"]): React.ReactNode { | CODE |
| LOW | web_src/src/ui/BuildingBlocksSidebar/index.tsx | 90 | function OpenBuildingBlocksSidebar({ | CODE |
| LOW | web_src/src/ui/IntegrationStatusIndicator/index.tsx | 56 | export function IntegrationStatusIndicator({ | CODE |
| LOW | web_src/src/ui/factoryNodeChrome/status.ts | 47 | export function normalizeFactoryNodeStatus(status: string | undefined, stateMap?: EventStateMap): FactoryNodeStatus { | CODE |
| LOW | web_src/src/ui/factoryNodeChrome/status.ts | 88 | export function resolveFactoryRuntimeStatus({ | CODE |
| LOW | web_src/src/ui/factoryNodeChrome/status.ts | 103 | function factoryStatusFromEventStyle(style: EventStateStyle | undefined): FactoryNodeStatus | undefined { | CODE |
| LOW | web_src/src/ui/factoryNodeChrome/status.ts | 143 | export function factoryNodeStatusStripClass(status: FactoryNodeStatus): string { | CODE |
| LOW | web_src/src/ui/factoryNodeChrome/status.ts | 167 | export function formatFactoryNodeDuration(ms: number): string { | CODE |
| LOW | …/src/ui/factoryNodeChrome/resolveFactoryNodeMetrics.ts | 17 | export function resolveFactoryNodeMetrics({ | CODE |
| LOW | …c/ui/factoryNodeChrome/resolveFactorySidebarHeading.ts | 2 | export function resolveFactorySidebarHeading({ | CODE |
| LOW | …c/ui/factoryNodeChrome/resolveFactoryNodeCardTitles.ts | 2 | export function resolveFactoryNodeCardTitles({ | CODE |
| LOW | …rc/src/ui/factoryNodeChrome/factoryNodeSelectedRing.ts | 10 | export function factoryNodeCardFrameClassName(selected: boolean): string { | CODE |
| LOW | …rc/src/ui/factoryNodeChrome/factoryNodeSelectedRing.ts | 15 | export function factoryNodeCardSelectedAttr(selected: boolean): "true" | undefined { | CODE |
| LOW | …b_src/src/ui/factoryNodeChrome/factorySidebarChrome.ts | 26 | export function factorySidebarKindLabelClassName(kind: string): string { | CODE |
| LOW | …_src/src/ui/factoryNodeChrome/FactoryNodeCardShell.tsx | 31 | function shouldInvertMonoFactoryIcon(iconSrc: string | undefined): boolean { | CODE |
| LOW | …factoryNodeChrome/shouldShowFactoryNodeStatusFooter.ts | 2 | export function shouldShowFactoryNodeStatusFooter({ | CODE |
| LOW | web_src/src/ui/CanvasPage/index.tsx | 480 | function ComponentSidebarLoadingSkeleton({ layout = "sidebar" }: { layout?: "sidebar" | "bottom" }) { | CODE |
| LOW | web_src/src/ui/CanvasPage/index.tsx | 596 | function createNodeRenderFallbackData(data: BlockData): BlockData { | CODE |
| LOW | web_src/src/ui/CanvasPage/index.tsx | 655 | function didNodeErrorBoundaryDataChange(previous: BlockData, next: BlockData) { | CODE |
| LOW | web_src/src/ui/CanvasPage/index.tsx | 680 | function getAnnotationUpdateAction(callbacks?: CanvasNodeRendererCallbacks) { | CODE |
| LOW | web_src/src/ui/CanvasPage/index.tsx | 687 | function buildInteractiveNodeBlockProps( | CODE |
| LOW | web_src/src/ui/CanvasPage/index.tsx | 711 | function buildDefaultNodeBlockProps(args: { | CODE |
| LOW | web_src/src/ui/CanvasPage/index.tsx | 789 | function areDefaultNodeRendererPropsEqual( | CODE |
| LOW | web_src/src/ui/CanvasPage/index.tsx | 2207 | function shouldOpenSidebarSettingsTab(nodeData: NodeConfigurationWarningData, isEditMode: boolean): boolean { | CODE |
| LOW | web_src/src/ui/CanvasPage/index.tsx | 2211 | function applySidebarTabOnNodeOpen( | CODE |
| LOW | web_src/src/ui/CanvasPage/factoryRunLeafLayoutGate.ts | 2 | export function shouldUseFactoryRunLeafLayout(input: { | CODE |
| LOW | web_src/src/ui/CanvasPage/useFactoryConfigureFitView.ts | 25 | export function useFactoryConfigureFitView({ | CODE |
| LOW | web_src/src/ui/CanvasPage/enrichCanvasNodes.ts | 83 | function resolveFactoryLayoutFlags( | CODE |
| LOW | web_src/src/ui/CanvasPage/enrichCanvasNodes.ts | 102 | function buildFactoryLayoutDataFlags(flags: { | CODE |
| LOW | web_src/src/ui/CanvasPage/enrichCanvasNodes.ts | 153 | function buildEnrichedReactFlowNode(args: { | CODE |
| LOW | web_src/src/ui/CanvasPage/useCanvasState.ts | 14 | function areEdgeListsReferentiallyEqual(currentEdges: Edge[], nextEdges: Edge[]): boolean { | CODE |
| LOW | web_src/src/ui/CanvasPage/useCanvasState.ts | 97 | function withFactoryEditVerticalSpacing(nodes: Node[], specNodeIds: Set<string>): Node[] { | CODE |
| LOW⚡ | …_src/src/ui/CanvasPage/buildingBlocksSidebarRequest.ts | 13 | export function requestBuildingBlocksSidebar(canvasId: string, open: boolean): void { | CODE |
| LOW⚡ | …_src/src/ui/CanvasPage/buildingBlocksSidebarRequest.ts | 20 | export function clearBuildingBlocksSidebarRequests(): void { | CODE |
| LOW⚡ | …_src/src/ui/CanvasPage/buildingBlocksSidebarRequest.ts | 24 | export function publishBuildingBlocksSidebarChanged(canvasId: string, open: boolean): void { | CODE |
| 2403 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | release/superplane-demo-image/entrypoint.sh | 9 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | release/superplane-demo-image/entrypoint.sh | 11 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | release/superplane-demo-image/entrypoint.sh | 17 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | release/superplane-demo-image/entrypoint.sh | 19 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | release/superplane-demo-image/entrypoint.sh | 29 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | release/superplane-demo-image/entrypoint.sh | 31 | # =========================================================================== | COMMENT |
| MEDIUM | release/superplane-demo-image/entrypoint.sh | 59 | # =========================================================================== | COMMENT |
| MEDIUM | release/superplane-demo-image/entrypoint.sh | 61 | # =========================================================================== | COMMENT |
| MEDIUM | release/superplane-demo-image/entrypoint.sh | 85 | # =========================================================================== | COMMENT |
| MEDIUM | release/superplane-demo-image/entrypoint.sh | 87 | # =========================================================================== | COMMENT |
| MEDIUM | web_src/src/pages/app/mappers/logfire/base.spec.ts | 14 | // ── Helpers ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | web_src/src/pages/app/mappers/logfire/base.spec.ts | 83 | // ── baseMapper.props ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | web_src/src/pages/app/mappers/logfire/base.spec.ts | 120 | // ── baseMapper.getExecutionDetails ────────────────────────────────── | COMMENT |
| MEDIUM | web_src/src/pages/app/mappers/logfire/base.spec.ts | 189 | // ── baseMapper.subtitle ───────────────────────────────────────────── | COMMENT |
| MEDIUM | web_src/src/pages/app/mappers/logfire/base.spec.ts | 203 | // ── baseMapper metadata helpers ───────────────────────────────────── | COMMENT |
| MEDIUM | web_src/src/pages/app/mappers/logfire/base.spec.ts | 266 | // ── eventStateRegistry ────────────────────────────────────────────── | COMMENT |
| MEDIUM | …rc/pages/app/mappers/logfire/on_alert_received.spec.ts | 6 | // ── Helpers ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …rc/pages/app/mappers/logfire/on_alert_received.spec.ts | 42 | // ── getTitleAndSubtitle ───────────────────────────────────────────── | COMMENT |
| MEDIUM | …rc/pages/app/mappers/logfire/on_alert_received.spec.ts | 75 | // ── getRootEventValues ────────────────────────────────────────────── | COMMENT |
| MEDIUM | …rc/pages/app/mappers/logfire/on_alert_received.spec.ts | 126 | // ── getTriggerProps ───────────────────────────────────────────────── | COMMENT |
| MEDIUM | …/src/pages/app/mappers/gitlab/on_merge_request.spec.ts | 7 | // ── Helpers ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …/src/pages/app/mappers/gitlab/on_merge_request.spec.ts | 38 | // ── getTitleAndSubtitle ───────────────────────────────────────────── | COMMENT |
| MEDIUM | …/src/pages/app/mappers/gitlab/on_merge_request.spec.ts | 63 | // ── getRootEventValues ────────────────────────────────────────────── | COMMENT |
| MEDIUM | …/src/pages/app/mappers/gitlab/on_merge_request.spec.ts | 89 | // ── getTriggerProps ───────────────────────────────────────────────── | COMMENT |
| MEDIUM | …/src/pages/app/mappers/gitlab/on_issue_comment.spec.ts | 7 | // ── Helpers ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …/src/pages/app/mappers/gitlab/on_issue_comment.spec.ts | 43 | // ── getTitleAndSubtitle ───────────────────────────────────────────── | COMMENT |
| MEDIUM | …/src/pages/app/mappers/gitlab/on_issue_comment.spec.ts | 70 | // ── getRootEventValues ────────────────────────────────────────────── | COMMENT |
| MEDIUM | …/src/pages/app/mappers/gitlab/on_issue_comment.spec.ts | 96 | // ── getTriggerProps ───────────────────────────────────────────────── | COMMENT |
| MEDIUM | web_src/src/pages/app/mappers/gitlab/on_push.spec.ts | 7 | // ── Helpers ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | web_src/src/pages/app/mappers/gitlab/on_push.spec.ts | 52 | // ── getTitleAndSubtitle ───────────────────────────────────────────── | COMMENT |
| MEDIUM | web_src/src/pages/app/mappers/gitlab/on_push.spec.ts | 71 | // ── getRootEventValues ────────────────────────────────────────────── | COMMENT |
| MEDIUM | web_src/src/pages/app/mappers/gitlab/on_push.spec.ts | 99 | // ── getTriggerProps ───────────────────────────────────────────────── | COMMENT |
| MEDIUM | …src/pages/app/mappers/gitlab/on_branch_created.spec.ts | 7 | // ── Helpers ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …src/pages/app/mappers/gitlab/on_branch_created.spec.ts | 35 | // ── getTitleAndSubtitle ───────────────────────────────────────────── | COMMENT |
| MEDIUM | …src/pages/app/mappers/gitlab/on_branch_created.spec.ts | 54 | // ── getRootEventValues ────────────────────────────────────────────── | COMMENT |
| MEDIUM | …src/pages/app/mappers/gitlab/on_branch_created.spec.ts | 88 | // ── getTriggerProps ───────────────────────────────────────────────── | COMMENT |
| MEDIUM | …/src/pages/app/mappers/gitlab/on_merge_comment.spec.ts | 7 | // ── Helpers ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …/src/pages/app/mappers/gitlab/on_merge_comment.spec.ts | 43 | // ── getTitleAndSubtitle ───────────────────────────────────────────── | COMMENT |
| MEDIUM | …/src/pages/app/mappers/gitlab/on_merge_comment.spec.ts | 68 | // ── getRootEventValues ────────────────────────────────────────────── | COMMENT |
| MEDIUM | …/src/pages/app/mappers/gitlab/on_merge_comment.spec.ts | 94 | // ── getTriggerProps ───────────────────────────────────────────────── | COMMENT |
| MEDIUM | …c/src/pages/app/mappers/gitlab/on_mr_diff_note.spec.ts | 7 | // ── Helpers ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …c/src/pages/app/mappers/gitlab/on_mr_diff_note.spec.ts | 50 | // ── getTitleAndSubtitle ───────────────────────────────────────────── | COMMENT |
| MEDIUM | …c/src/pages/app/mappers/gitlab/on_mr_diff_note.spec.ts | 75 | // ── getRootEventValues ────────────────────────────────────────────── | COMMENT |
| MEDIUM | …c/src/pages/app/mappers/gitlab/on_mr_diff_note.spec.ts | 101 | // ── getTriggerProps ───────────────────────────────────────────────── | COMMENT |
| MEDIUM | web_src/src/pages/app/mappers/gitlab/on_job.spec.ts | 7 | // ── Helpers ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | web_src/src/pages/app/mappers/gitlab/on_job.spec.ts | 36 | // ── getTitleAndSubtitle ───────────────────────────────────────────── | COMMENT |
| MEDIUM | web_src/src/pages/app/mappers/gitlab/on_job.spec.ts | 55 | // ── getRootEventValues ────────────────────────────────────────────── | COMMENT |
| MEDIUM | web_src/src/pages/app/mappers/gitlab/on_job.spec.ts | 87 | // ── getTriggerProps ───────────────────────────────────────────────── | COMMENT |
| MEDIUM | …src/pages/app/mappers/digitalocean/gradient_ai.spec.ts | 13 | // ── Helpers ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …src/pages/app/mappers/digitalocean/gradient_ai.spec.ts | 59 | // ── createKnowledgeBaseMapper ──────────────────────────────────────── | COMMENT |
| MEDIUM | …src/pages/app/mappers/digitalocean/gradient_ai.spec.ts | 91 | // ── getKnowledgeBaseMapper ─────────────────────────────────────────── | COMMENT |
| MEDIUM | …src/pages/app/mappers/digitalocean/gradient_ai.spec.ts | 133 | // ── indexKnowledgeBaseMapper ──────────────────────────────────────── | COMMENT |
| MEDIUM | …src/pages/app/mappers/digitalocean/gradient_ai.spec.ts | 168 | // ── addDataSourceMapper ─────────────────────────────────────────── | COMMENT |
| MEDIUM | …src/pages/app/mappers/digitalocean/gradient_ai.spec.ts | 226 | // ── deleteDataSourceMapper ─────────────────────────────────────────── | COMMENT |
| MEDIUM | …src/pages/app/mappers/digitalocean/gradient_ai.spec.ts | 283 | // ── attachKnowledgeBaseMapper ──────────────────────────────────────── | COMMENT |
| MEDIUM | …src/pages/app/mappers/digitalocean/gradient_ai.spec.ts | 315 | // ── deleteKnowledgeBaseMapper ──────────────────────────────────────── | COMMENT |
| MEDIUM | …src/pages/app/mappers/digitalocean/gradient_ai.spec.ts | 356 | // ── runEvaluationMapper ────────────────────────────────────────────── | COMMENT |
| MEDIUM | …src/pages/app/mappers/digitalocean/gradient_ai.spec.ts | 427 | // ── RUN_EVALUATION_STATE_REGISTRY ──────────────────────────────────── | COMMENT |
| MEDIUM | …rc/src/pages/app/mappers/digitalocean/database.spec.ts | 84 | // ── createDatabaseMapper ───────────────────────────────────────────── | COMMENT |
| MEDIUM | …rc/src/pages/app/mappers/digitalocean/database.spec.ts | 184 | // ── deleteDatabaseMapper ───────────────────────────────────────────── | COMMENT |
| 94 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | web_src/test/__mocks__/canvas.ts | 22 | name: "Jane Doe", | CODE |
| LOW | web_src/src/posthog.spec.tsx | 26 | useOrganization: () => ({ data: { metadata: { name: "Acme Corp" } } }), | CODE |
| LOW | web_src/src/posthog.spec.tsx | 53 | name: "John Doe", | CODE |
| LOW | web_src/src/posthog.spec.tsx | 143 | name: "John Doe", | CODE |
| LOW | web_src/src/posthog.spec.tsx | 175 | name: "John Doe", | CODE |
| LOW | web_src/src/posthog.spec.tsx | 249 | name: "John Doe", | CODE |
| LOW | web_src/src/posthog.spec.tsx | 271 | name: "John Doe", | CODE |
| LOW | web_src/src/posthog.spec.tsx | 320 | name: "Acme Corp", | CODE |
| LOW | web_src/src/posthog.spec.tsx | 325 | name: "Acme Corp", | CODE |
| LOW | …/src/ui/CanvasPage/__fixtures__/canvasRunsExample.json | 1 | {"canvas":{"id":"4acc8018-86cb-44e8-aae9-d4de76b99469","organizationId":"3ee1aa47-3a60-4c1f-b645-0b9859ab91f8","name":"C | CODE |
| LOW | web_src/src/ui/componentSidebar/index.stories.tsx | 81 | Author: "John Doe", | CODE |
| LOW | …tSidebar/SidebarEventItem/SidebarEventItem.stories.tsx | 280 | name: "John Doe", | CODE |
| LOW | web_src/src/lib/organizationSlug.spec.ts | 7 | expect(slugifyOrganizationName("Acme Corp")).toBe("acme-corp"); | CODE |
| LOW | web_src/src/lib/organizationSlug.spec.ts | 56 | expect(validateOrganizationSlug("Acme Corp")).toBe("invalid-format"); | CODE |
| LOW | web_src/src/lib/hostedCreditOwnerContact.spec.ts | 10 | owners: [{ name: "Jane Doe" }], | CODE |
| LOW | web_src/src/lib/hostedCreditOwnerContact.spec.ts | 19 | owners: [{ name: "Jane Doe" }, { name: "John Smith" }], | CODE |
| LOW | web_src/src/lib/hostedCreditOwnerContact.spec.ts | 36 | owners: [{ name: "Jane Doe" }], | CODE |
| LOW | web_src/src/lib/hostedCreditOwnerContact.spec.ts | 54 | owners: [{}, { name: "Jane Doe" }], | CODE |
| LOW | …/src/pages/home/factories/software-factory/params.json | 11 | "placeholder": "owner/repo", | CODE |
| LOW | …/src/pages/home/factories/software-factory/params.json | 22 | "placeholder": "owner/repo", | CODE |
| LOW | web_src/src/pages/app/Markdown.spec.tsx | 311 | mentionPeople={[{ id: "u1", name: "test test", email: "test@test.com" }]} | CODE |
| LOW | web_src/src/pages/app/Markdown.spec.tsx | 325 | mentionPeople={[{ id: "u1", name: "test test", email: "test@test.com" }]} | CODE |
| LOW | web_src/src/pages/app/Markdown.spec.tsx | 332 | expect(card).toHaveTextContent("test@test.com"); | CODE |
| LOW⚡ | …src/src/pages/app/__fixtures__/canvasAppResponses.json | 1 | {"canvasId":"9725f25b-2947-4022-82f9-acb20a616bf6","organizationId":"3ee1aa47-3a60-4c1f-b645-0b9859ab91f8","versionId":" | CODE |
| LOW | web_src/src/pages/app/mappers/editModeActions.spec.tsx | 68 | email: "user@example.com", | CODE |
| LOW | web_src/src/pages/app/mappers/editModeActions.spec.tsx | 318 | email: "user@example.com", | CODE |
| LOW | web_src/src/pages/app/mappers/safeMappers.spec.ts | 55 | name: "John Doe", | CODE |
| LOW | …_src/src/pages/app/mappers/linear/create_issue.spec.ts | 99 | assignee: { id: "u1", name: "Jane Doe", displayName: "jane" }, | CODE |
| LOW | …_src/src/pages/app/mappers/linear/create_issue.spec.ts | 160 | outputs: { default: [buildOutput({ identifier: "ENG-1", assignee: { id: "u1", name: "Jane Doe" } })] }, | CODE |
| LOW | …_src/src/pages/app/mappers/linear/create_issue.spec.ts | 164 | expect(createIssueMapper.getExecutionDetails(ctx)["Assignee"]).toBe("Jane Doe"); | CODE |
| LOW | web_src/src/pages/app/mappers/linear/on_issue.spec.ts | 19 | actor: { id: "u1", name: "John Doe", email: "john@example.com", type: "user" }, | CODE |
| LOW | …rc/src/pages/app/mappers/linear/on_issue_label.spec.ts | 19 | actor: { id: "u1", name: "John Doe", email: "john@example.com", type: "user" }, | CODE |
| LOW | …c/src/pages/app/mappers/linear/add_issue_label.spec.ts | 99 | assignee: { id: "u1", name: "Jane Doe", displayName: "jane" }, | CODE |
| LOW | …_src/src/pages/app/mappers/linear/update_issue.spec.ts | 99 | assignee: { id: "u1", name: "Jane Doe", displayName: "jane" }, | CODE |
| LOW | web_src/src/pages/app/mappers/linear/get_issue.spec.ts | 99 | assignee: { id: "u1", name: "Jane Doe", displayName: "jane" }, | CODE |
| LOW | …src/src/pages/app/mappers/github/run_workflow.spec.tsx | 30 | name: "John Doe", | CODE |
| LOW | …p/mappers/github/wait_for_pull_request_checks.spec.tsx | 32 | name: "John Doe", | CODE |
| LOW | web_src/src/pages/admin/HostedLLMSettings.spec.tsx | 183 | expect(provisioningKey).toHaveAttribute("placeholder", "Leave blank to keep the current key"); | CODE |
| LOW | …ies/pages/settings/FactorySettingsApiKeysPage.spec.tsx | 158 | expect(screen.getByTestId("factory-settings-api-keys-search")).toHaveAttribute("placeholder", "Search API keys"); | CODE |
| LOW⚡ | …ges/work-order-split-run/implementation-claude-log.txt | 472 | /home/ubuntu/superplane/pkg/services/smtp_email_test.go:223: err := service.SendWorkOrderNotificationEmail("user@ex | CODE |
| LOW⚡ | …ges/work-order-split-run/implementation-claude-log.txt | 473 | /home/ubuntu/superplane/pkg/services/smtp_email_test.go:242: err := service.SendWorkOrderNotificationEmail("user@e | CODE |
| LOW⚡ | …ges/work-order-split-run/implementation-claude-log.txt | 474 | /home/ubuntu/superplane/pkg/services/smtp_email_test.go:256: err := service.SendWorkOrderNotificationEmail("user@e | CODE |
| LOW | …grpc/actions/canvases/invoke_node_trigger_hook_test.go | 378 | "placeholder": "Describe a small test task…", | CODE |
| LOW | pkg/triggers/start/start.go | 223 | Name: "placeholder", | CODE |
| LOW | pkg/models/account_installation_admin_test.go | 555 | account, err := CreateAccount("Test User", "user@example.com") | CODE |
| LOW | pkg/models/organization_slug_test.go | 18 | {name: "simple name", in: "Acme Corp", want: "acme-corp"}, | CODE |
| LOW | pkg/models/organization_slug_test.go | 60 | slug, err := GenerateUniqueOrganizationSlug(database.Conn(), "Acme Corp", uuid.Nil) | CODE |
| LOW | …integrations/gitlab/example_output_delete_release.json | 25 | "author_email": "admin@example.com", | CODE |
| LOW | …integrations/gitlab/example_output_delete_release.json | 28 | "committer_email": "admin@example.com", | CODE |
| LOW | pkg/integrations/gitlab/example_data_on_issue.json | 7 | "name": "John Doe", | CODE |
| LOW | pkg/integrations/gitlab/example_data_on_issue.json | 53 | "name": "John Doe", | CODE |
| LOW | pkg/integrations/gitlab/example_output_get_release.json | 25 | "author_email": "admin@example.com", | CODE |
| LOW | pkg/integrations/gitlab/example_output_get_release.json | 28 | "committer_email": "admin@example.com", | CODE |
| LOW | pkg/integrations/gitlab/example_data_on_release.json | 55 | "email": "user@example.com" | CODE |
| LOW | …integrations/gitlab/example_output_update_release.json | 25 | "author_email": "admin@example.com", | CODE |
| LOW | …integrations/gitlab/example_output_update_release.json | 28 | "committer_email": "admin@example.com", | CODE |
| LOW | …integrations/gitlab/example_output_create_release.json | 25 | "author_email": "admin@example.com", | CODE |
| LOW | …integrations/gitlab/example_output_create_release.json | 28 | "committer_email": "admin@example.com", | CODE |
| LOW | …egrations/gitlab/example_output_get_commit_status.json | 8 | "author_email": "admin@example.com", | CODE |
| LOW | …egrations/gitlab/example_output_get_commit_status.json | 11 | "committer_email": "admin@example.com", | CODE |
| 86 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docker-compose.ci.yml | 1 | # | COMMENT |
| LOW | deploy/coolify/docker-compose.source.yml | 1 | # Coolify Git build pack: base directory /, this file as the Compose path. | COMMENT |
| LOW | ee/billing/seatrenewal/reconcile.go | 1 | // Package seatrenewal reconciles the stored plan of an organization with its | COMMENT |
| LOW | ee/billing/organizations/purchase_seats.go | 381 | COMMENT | |
| LOW | ee/billing/organizations/purchase_seats.go | 461 | return nil, grpcerrors.Internal(errors.New("seat purchase operation conflict without a stored purchase"), "Could not b | COMMENT |
| LOW | ee/billing/organizations/purchase_seats_test.go | 41 | mu sync.Mutex | COMMENT |
| LOW | ee/billing/polar/deletion.go | 21 | // subscription and every other subscription in a terminal state. A live | COMMENT |
| LOW | ee/billing/polar/checkout_lifecycle.go | 41 | // organization has a live subscription. | COMMENT |
| LOW | ee/billing/models/organization_billing_checkout.go | 21 | // call has not returned yet. | COMMENT |
| LOW | ee/billing/models/seat_purchase.go | 181 | } | COMMENT |
| LOW | ee/billing/models/seat_purchase.go | 301 | // organization when the evidence proves it. Other evidence leaves the | COMMENT |
| LOW | ee/billing/entitlements/seat_renewal.go | 21 | COMMENT | |
| LOW | release/superplane-helm-chart/helm/values.yaml | 161 | COMMENT | |
| LOW | release/superplane-helm-chart/helm/values.yaml | 201 | ingress: | COMMENT |
| LOW | release/superplane-helm-chart/helm/values.yaml | 221 | enabled: true | COMMENT |
| LOW | release/superplane-helm-chart/helm/values.yaml | 361 | - ALL | COMMENT |
| LOW | release/superplane-helm-chart/helm/values.yaml | 401 | COMMENT | |
| LOW | scripts/verify_branch_migrations_are_latest.sh | 1 | #!/bin/bash | COMMENT |
| LOW | scripts/check_proto_field_numbers.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | scripts/ci_cache_store_go.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | scripts/verify_db_structure_clean.sh | 1 | #!/bin/bash | COMMENT |
| LOW | scripts/docker/install-postgresql-client.sh | 1 | #!/bin/sh | COMMENT |
| LOW | web_src/vite.config.ts | 121 | ], | COMMENT |
| LOW | web_src/public/assets/onboarding/superplane-art.js | 1961 | // Solid of revolution, so its silhouette's SHAPE (the concave | COMMENT |
| LOW | web_src/src/hooks/useCanvasData.ts | 781 | export const useInfiniteCanvasRuns = (canvasId: string, filters: CanvasRunsFilters = {}, enabled = true) => { | COMMENT |
| LOW | web_src/src/hooks/useOrganizationSpendingReport.ts | 61 | enabled: enabled && Boolean(organizationId), | COMMENT |
| LOW | web_src/src/lib/lastVisitedLocation.ts | 1 | // Instant, same-browser fallback for "resume where you left off". The | COMMENT |
| LOW | web_src/src/lib/seatPurchaseOperations.ts | 1 | // A seat purchase operation is one confirmed purchase request and its | COMMENT |
| LOW | web_src/src/pages/app/lib/normalize-yaml-diff.ts | 1 | import * as yaml from "js-yaml"; | COMMENT |
| LOW | web_src/src/pages/app/console/MarkdownPanelCard.tsx | 81 | // While the backing variable queries (including the per-run execution | COMMENT |
| LOW | web_src/src/pages/app/console/widget/celBuiltins.ts | 21 | // becomes 0, matching the legacy behavior authors relied on inside | COMMENT |
| LOW | web_src/src/pages/factories/lib/brokenIntegrations.ts | 21 | // Checked before REPLACE_KEY_HINTS so phrases like "refresh token", | COMMENT |
| LOW | pkg/core/factory.go | 21 | COMMENT | |
| LOW | pkg/core/factory.go | 41 | // reports with the same key update it in place and keep the prior | COMMENT |
| LOW | pkg/core/factory.go | 101 | // FindWorkOrder(by: artifactKey) can resolve the work order from it. | COMMENT |
| LOW | pkg/core/integration_setup_provider.go | 21 | COMMENT | |
| LOW | pkg/core/component.go | 181 | // | COMMENT |
| LOW | pkg/core/component.go | 201 | // Returns an ExecutionContext. | COMMENT |
| LOW | pkg/pathfilter/push_paths.go | 61 | // misuse does not block every webhook; github.onPush only calls when len(patterns) > 0. | COMMENT |
| LOW | pkg/grpc/server_error_report.go | 81 | } | COMMENT |
| LOW | pkg/grpc/actions/factories/intake_settings.go | 81 | // Severities that still create a task. Empty means every severity. | COMMENT |
| LOW | pkg/grpc/actions/factories/intake_seed.go | 41 | COMMENT | |
| LOW | pkg/models/canvas_run.go | 741 | // A/run1 -> A/run2 -> A/run1. | COMMENT |
| LOW | pkg/models/factory_work_order_status_note.go | 41 | COMMENT | |
| LOW | pkg/models/canvas_node_execution.go | 61 | // | COMMENT |
| LOW | pkg/models/canvas_node_execution.go | 81 | // State management fields. | COMMENT |
| LOW | pkg/models/integration_request.go | 121 | // CompletePendingActionRequestsInTransaction completes every pending invoke-action | COMMENT |
| LOW | pkg/models/factory_velocity_repository_merge.go | 21 | ) | COMMENT |
| LOW | pkg/models/canvas_node.go | 361 | return count > 0, nil | COMMENT |
| LOW | pkg/models/canvas_node.go | 601 | // | COMMENT |
| LOW | pkg/models/factory/events.go | 21 | // updates re-save the row in place and this reason tells the | COMMENT |
| LOW | pkg/models/factory/events.go | 41 | // setting one publishes a FactoryWorkOrderNotificationMessage the | COMMENT |
| LOW | pkg/integrations/claude/runcodeagent/types.go | 61 | AllowedHosts []string `json:"allowedHosts" mapstructure:"allowedHosts"` | COMMENT |
| LOW | pkg/integrations/linear/linear.go | 21 | const ( | COMMENT |
| LOW | pkg/integrations/linear/linear.go | 301 | } | COMMENT |
| LOW | pkg/integrations/gcp/compute/image_helpers.go | 21 | COMMENT | |
| LOW | pkg/integrations/jira/jira.go | 221 | COMMENT | |
| LOW | pkg/integrations/jira/common.go | 101 | return meta.CloudID, nil | COMMENT |
| LOW | pkg/integrations/aws/codepipeline/run_pipeline.go | 641 | return ctx.ExecutionState.Emit(PassedOutputChannel, PayloadType, []any{outputPayload}) | COMMENT |
| LOW | pkg/components/runner/workspace_agent_resources.go | 341 | // factory agent steps. It checks out the main repo to repo/, positions a | COMMENT |
| 12 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | ee/billing/polar/webhook_test.go | 135 | assert.True(t, parsed.Subscription.Data.ModifiedAt.Time.Equal(modifiedAt)) | CODE |
| CRITICAL | web_src/public/assets/onboarding/three.min.js | 6 | !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?def | CODE |
| CRITICAL | pkg/crypto/gcp_master_keys.go | 72 | response, err := k.service.Projects.Locations.KeyRings.CryptoKeys.Encrypt(name, request).Context(ctx).Do() | CODE |
| CRITICAL | pkg/crypto/gcp_master_keys.go | 92 | response, err := k.service.Projects.Locations.KeyRings.CryptoKeys.Decrypt(name, request).Context(ctx).Do() | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | docs/contributing/templates.md | 176 | - Use placeholder values that clearly need user customization (e.g., "YOUR_API_KEY") | CODE |
| HIGH | web_src/src/pages/factories/lib/agentEditPrompt.spec.ts | 30 | expect(instructions).toContain("<YOUR_TOKEN>"); | CODE |
| HIGH | web_src/src/pages/factories/lib/agentEditPrompt.ts | 4 | export const API_TOKEN_PLACEHOLDER = "<YOUR_TOKEN>"; | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …/src/ui/CanvasPage/__fixtures__/canvasRunsExample.json | 1 | {"canvas":{"id":"4acc8018-86cb-44e8-aae9-d4de76b99469","organizationId":"3ee1aa47-3a60-4c1f-b645-0b9859ab91f8","name":"C | CODE |
| MEDIUM⚡ | …src/src/pages/app/__fixtures__/canvasAppResponses.json | 1 | {"canvasId":"9725f25b-2947-4022-82f9-acb20a616bf6","organizationId":"3ee1aa47-3a60-4c1f-b645-0b9859ab91f8","versionId":" | CODE |
| MEDIUM⚡ | …src/pages/app/__fixtures__/console/superplaneSaas.json | 1 | {"organizationId":"139e02bc-8e83-4e7a-ad5e-228b2e81c5ef","canvasId":"b892c387-a436-43ef-a455-dec6b6231360","canvasName": | CODE |
| MEDIUM⚡ | …src/pages/app/__fixtures__/console/superplaneSaas.json | 1 | {"organizationId":"139e02bc-8e83-4e7a-ad5e-228b2e81c5ef","canvasId":"b892c387-a436-43ef-a455-dec6b6231360","canvasName": | CODE |
| MEDIUM⚡ | …src/pages/app/__fixtures__/console/superplaneSaas.json | 1 | {"organizationId":"139e02bc-8e83-4e7a-ad5e-228b2e81c5ef","canvasId":"b892c387-a436-43ef-a455-dec6b6231360","canvasName": | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …/src/pages/home/factories/software-factory/canvas.yaml | 833 | # Create an empty branch off the base: a single empty commit so a draft PR can be opened, | COMMENT |
| MEDIUM | …/src/pages/home/factories/software-factory/canvas.yaml | 882 | ## Creating a working branch | COMMENT |
| MEDIUM⚡ | …src/src/pages/app/__fixtures__/canvasAppResponses.json | 1 | {"canvasId":"9725f25b-2947-4022-82f9-acb20a616bf6","organizationId":"3ee1aa47-3a60-4c1f-b645-0b9859ab91f8","versionId":" | CODE |
| MEDIUM | pkg/integrations/logfire/logfire.go | 47 | return `## Create a Logfire API key for SuperPlane | CODE |
| MEDIUM | pkg/integrations/teams/teams.go | 49 | ### Create an Azure Bot | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | pkg/models/vcs_provider_catalog.go | 1094 | // still counts it as requested work until it ends. | COMMENT |
| HIGH | pkg/integrations/claude/text_prompt.go | 103 | - **text**: The content generated by Claude. | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docs/contributing/component-customization.md | 460 | #### Step 1: Add to Interface | COMMENT |
| LOW | docs/contributing/component-customization.md | 472 | #### Step 2: Use in Component | COMMENT |
| LOW | docs/contributing/component-customization.md | 493 | #### Step 3: Update Mapper | COMMENT |
| LOW⚡ | pkg/integrations/azure/actions.go | 626 | // Step 1: GET the VM to discover associated resources. | COMMENT |
| LOW⚡ | pkg/integrations/azure/actions.go | 635 | // Step 2: Build and send PATCH to set deleteOption on disks and NICs. | COMMENT |
| LOW | pkg/integrations/azure/actions.go | 646 | // Step 3: For each NIC, mark its public IPs for cascade deletion. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | release/generate-sbom.sh | 27 | # Check if syft is installed, install if missing | COMMENT |
| LOW | release/superplane-helm-chart/helm/values.yaml | 412 | # Set create to true to create it, or set name to use an existing account. | COMMENT |
| LOW | release/superplane-helm-chart/helm/values.yaml | 413 | # Set annotations to bind a cloud identity, for example GKE Workload Identity. | COMMENT |
| LOW | scripts/check_tool_config_guard.sh | 4 | # Read file bytes only. Do not import, eval, or run ESLint/Node on the files. | COMMENT |
| LOW | scripts/verify_no_future_migrations.sh | 59 | # Check if this is a valid timestamp (14 digits) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | pkg/integrations/azure/actions.go | 626 | // Step 1: GET the VM to discover associated resources. | COMMENT |
| LOW⚡ | pkg/integrations/azure/actions.go | 635 | // Step 2: Build and send PATCH to set deleteOption on disks and NICs. | COMMENT |
| LOW | pkg/integrations/azure/actions.go | 646 | // Step 3: For each NIC, mark its public IPs for cascade deletion. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/test_ui_autoparallel.sh | 7 | # Usage: | COMMENT |
| LOW | scripts/vscode_run_tests.sh | 5 | # Usage: | COMMENT |
| LOW | scripts/forge-deploy-dev.sh | 5 | # Usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | web_src/package-lock.json | 14997 | "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.3.tgz", | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | web_src/public/mockServiceWorker.js | 124 | async function handleRequest(event, requestId, requestInterceptedAt) { | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | pkg/runners/agent/python.go | 57 | except Exception: | CODE |