AI Slop Code Risk Monitor

get-convex/convex-backend

SlopCodeMonitor badge for get-convex/convex-backend Adjusted legacy signal; badge bands: 25 / 50 / 75 (different from dashboard bands).

The open-source reactive database for app developers

1.7 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for get-convex/convex-backend, a TypeScript project with 12,770 GitHub stars. SynthScan examined 699,587 lines of code across 5145 source files, recording 1010 pattern matches distributed across 17 syntactic categories. The legacy adjusted pattern signal is 1.7 (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.

1.7
Adjusted Signal
1.7
Raw Pattern Score
100%
Time Factor
2026-10-31
Last Push
12.8K
Stars
TypeScript
Language
699.6K
Lines of Code
5.1K
Files
1.0K
Pattern Hits
2026-10-31
Scan Date
0.00
HC Hit Rate

Risk Review · Payload v1

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

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

Cognitive Ownership Risk 7.3/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 0.6/100 · LOW

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

Agent Over-Engineering Ratio 3.6/100 · LOW

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

PR Review Velocity Impact 7.5/100 · LOW

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

What These Metrics Mean

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

Pattern-Signal History

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

Severity Breakdown

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

CRITICAL 2HIGH 2MEDIUM 27LOW 979

Directory Score Breakdown

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

Pattern Findings

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

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

Hyper-Verbose Identifiers435 hits · 438 pts
SeverityFileLineSnippetContext
LOW…ommon/src/features/settings/components/UsageLimits.tsx1046function UsageLimitThresholdEditor({CODE
LOW…settings/components/DeploymentEnvironmentVariables.tsx25export function DeploymentEnvironmentVariables({CODE
LOW…settings/components/DeploymentEnvironmentVariables.tsx197function useEnvironmentVariablesDiff(): EnvironmentVariableDiff {CODE
LOW…ponents/integrations/WorkOSIntegrationOverflowMenu.tsx7export function WorkOSIntegrationOverflowMenu({CODE
LOW…mponents/integrations/PostHogLogsConfigurationForm.tsx25export function PostHogLogsConfigurationForm({CODE
LOW…tings/components/integrations/FivetranSyncProgress.tsx91function ActiveFivetranSyncsButton({ syncs }: { syncs: ActiveDataSync[] }) {CODE
LOW…/components/integrations/WorkOSProjectEnvironments.tsx154export function WorkOSProjectEnvironments({CODE
LOW…gs/components/integrations/WorkOSConfigurationForm.tsx76function getWorkOSNotSupportedReason(CODE
LOW…gs/components/integrations/WorkOSConfigurationForm.tsx263function ProvisionWorkOSTeamSection({CODE
LOW…gs/components/integrations/WorkOSConfigurationForm.tsx732function ConsolidatedEnvironmentSection({CODE
LOW…integrations/PostHogErrorTrackingConfigurationForm.tsx18export function PostHogErrorTrackingConfigurationForm({CODE
LOW…rc/features/health/components/ChartForFunctionRate.tsx27function SubscriptionInvalidationLabel({CODE
LOW…atures/health/components/DeploymentSummary.stories.tsx106function mockClientWithSchemaProgress(progress: SchemaValidationByTable) {CODE
LOW…atures/health/components/SubscriptionInvalidations.tsx5export function SubscriptionInvalidations() {CODE
LOW…disconnectOverlay/LocalDeploymentDisconnectOverlay.tsx8export function LocalDeploymentDisconnectOverlay() {CODE
LOW…/features/disconnectOverlay/CloudDisconnectOverlay.tsx157function useCanReachDeploymentOverHTTP(CODE
LOW…ures/disconnectOverlay/SelfHostedDisconnectOverlay.tsx5export function SelfHostedDisconnectOverlay() {CODE
LOW…mmon/src/features/schedules/components/emptyStates.tsx21export function NoScheduledJobsForFunction() {CODE
LOW…edules/components/ScheduledFunctionsContentToolbar.tsx34function DeleteScheduledFunctionsTableMessage() {CODE
LOW…edules/components/ScheduledFunctionsContentToolbar.tsx44export function ScheduledFunctionsContentToolbar({CODE
LOW…res/schedules/components/ScheduledFunctionsContent.tsx9export function ScheduledFunctionsContent({CODE
LOW…/schedules/components/ScheduledFunctionsListHeader.tsx11export function ScheduledFunctionsListHeader({CODE
LOW…rd-common/src/features/schedules/lib/CronsProvider.tsx28export function CronJobsProviderWithCronHistory({CODE
LOW…es/dashboard-common/src/features/schedules/lib/api.tsx87export function useDeleteScheduledJobsTable(): () => Promise<void> {CODE
LOW…rc/features/schedules/lib/usePaginatedScheduledJobs.ts11export function usePaginatedScheduledJobs(udfPath: string | undefined) {CODE
LOW…d-common/src/features/schema/components/SchemaView.tsx190function SchemaGraphWithNavigation({CODE
LOW…ard-common/src/features/schema/lib/buildSchemaGraph.ts74function collectReferencesFromValidator(CODE
LOW…ard-common/src/features/schema/lib/buildSchemaGraph.ts178function fieldsFromObjectValidator(CODE
LOW…ard-common/src/features/schema/lib/buildSchemaGraph.ts361function collectReferencesFromShape(shape: Shape, acc: Set<string>): void {CODE
LOW…mmon/src/features/logs/components/FunctionCallTree.tsx146function createCompletedExecutionNodes(logs: UdfLog[]): {CODE
LOW…mmon/src/features/logs/components/FunctionCallTree.tsx178function createRunningExecutionNodes(CODE
LOW…rc/features/functions/components/PerformanceGraphs.tsx222function SubscriptionInvalidationsGraph({CODE
LOW…tions/components/FunctionRunnerDisabledWhilePaused.tsx5export function FunctionRunnerDisabledWhilePaused() {CODE
LOW…rd-common/src/features/data/components/TableSchema.tsx75export function useSingleTableSchemaStatus(CODE
LOW…rd-common/src/features/data/components/TableSchema.tsx291export function topLevelFieldsForValidator(validator: ValidatorJSON): {CODE
LOW…src/features/data/components/Table/utils/validators.ts4export function documentValidatorForTable(CODE
LOW…mmon/src/elements/AuthorizeEditsConfirmationDialog.tsx6export function AuthorizeEditsConfirmationDialog({CODE
LOWnpm-packages/dashboard-common/src/elements/Calendar.tsx68 PreviousMonthButton: function CustomPreviousMonthButton({CODE
LOWnpm-packages/dashboard-common/src/elements/Calendar.tsx85 NextMonthButton: function CustomPreviousMonthButton({CODE
LOW…es/dashboard-common/src/elements/TimestampDistance.tsx54export function LiveTimestampDistanceInner({ date }: { date: Date }) {CODE
LOW…on/src/elements/ObjectEditor/ast/walkPatchDocuments.ts65function extractUndefinedValuesFromNode(CODE
LOW…hboard-common/src/elements/ObjectEditor/ast/walkAst.ts58function extractValueFromExpression(CODE
LOW…s/dashboard-common/src/layouts/SidebarDetailLayout.tsx156function NpmConvexServerVersionBanner() {CODE
LOW…board-common/src/layouts/DeploymentDashboardLayout.tsx47export function DeploymentDashboardLayout({CODE
LOWnpm-packages/dashboard-common/src/lib/deploymentApi.ts38export function useDeploymentIsDisconnected(): boolean {CODE
LOW…ackages/dashboard-common/src/lib/deploymentContext.tsx460export function useMaybeConnectedDeployment():CODE
LOW…ackages/dashboard-common/src/lib/deploymentContext.tsx740function DeploymentWithConnectionState({CODE
LOW…ckages/dashboard-common/src/lib/integrationHelpers.tsx212export function integrationUsingLegacyFormat(CODE
LOWnpm-packages/dashboard-common/src/lib/format.ts278function appendFilterFieldsOrEmpty(index: SearchIndex | VectorIndex): string {CODE
LOW…ages/dashboard-common/src/lib/useDeploymentAuditLog.ts34function processDeploymentAuditLogEvent(CODE
LOW…ages/dashboard-common/src/lib/useDeploymentAuditLog.ts181export function usePaginatedDeploymentEvents(CODE
LOW…dashboard-common/src/lib/deploymentTypeColorClasses.ts31export function deploymentTypeColorClasses(CODE
LOWnpm-packages/dashboard-common/src/lib/appMetrics.ts324export function useTopKFunctionRateHeatmap(CODE
LOWnpm-packages/dashboard-common/src/lib/appMetrics.ts513export function useSubscriptionInvalidationsTopK(CODE
LOWnpm-packages/dashboard-common/src/lib/appMetrics.ts789function mapFunctionTypeToDisplayName(CODE
LOW…packages/dashboard-common/src/lib/useTableMetadata.tsx89export function useTableMetadataAndUpdateURL(): TableMetadata | undefined {CODE
LOW…n/src/lib/useIsCloudDeploymentInSelfHostedDashboard.ts9export function useIsCloudDeploymentInSelfHostedDashboard():CODE
LOW…dashboard-common/src/lib/functions/generateFileTree.ts25export function functionIdentifierFromValue(value: string) {CODE
LOW…dashboard-common/src/lib/functions/generateFileTree.ts197export function processAnalyzedModuleFunction(CODE
LOW…te-demos/snippets/src/typescriptFunctionReturnTypes.ts11export function MyPaginationHelperComponent(props: {CODE
375 more matches not shown…
Over-Commented Block377 hits · 373 pts
SeverityFileLineSnippetContext
LOWcrates/metrics/src/metrics.rs1//! Common functions for metrics logging.COMMENT
LOWcrates/metrics/src/macros.rs1pub use paste::paste;COMMENT
LOWcrates/metrics/src/macros.rs81 vecCOMMENT
LOWcrates/database/src/committer.rs361 async fn go(mut self, mut rx: mpsc::Receiver<CommitterMessage>) -> anyhow::Result<()> {COMMENT
LOWcrates/database/src/transaction.rs1081 Ok(is_new)COMMENT
LOWcrates/database/src/transaction.rs1101 /// than any timestamp hashed in `tx1.hash_index_interval(..)`; so theCOMMENT
LOWcrates/database/src/database.rs301/// application. Internally, it only has read-only access to the databaseCOMMENT
LOWcrates/database/src/database.rs1161COMMENT
LOWcrates/database/src/streaming_export_selection.rs1//! Allows to select what is included in a streaming export.COMMENT
LOWcrates/database/src/streaming_export_selection.rs21//! # assert_obj,COMMENT
LOWcrates/database/src/streaming_export_selection.rs41//! /* columns: */ btreemap! {COMMENT
LOWcrates/database/src/streaming_export_selection.rs61//! let doc = DeveloperDocument::new(COMMENT
LOWcrates/database/src/lib.rs1#![feature(coroutines)]COMMENT
LOWcrates/database/src/write_log.rs981 index_keys: BTreeMap<TabletIndexName, Vec<Arc<[u8]>>>,COMMENT
LOWcrates/database/src/metrics.rs521/// How long a replaced index entry had been current, named by each bucket'sCOMMENT
LOWcrates/database/src/transaction_index.rs81COMMENT
LOWcrates/database/src/transaction_index.rs741 &self,COMMENT
LOWcrates/database/src/snapshot_manager.rs641 /// may not know yet that it is safe to read from that snapshot.COMMENT
LOWcrates/database/src/snapshot_manager.rs681 // first index that has a timestamp greater than `ts`. So, we'd like the immediatelyCOMMENT
LOWcrates/database/src/bootstrap_model/user_facing.rs161 if table.is_system() {COMMENT
LOW…database/src/bootstrap_model/schema_validations/mod.rs421 /// Removing an active table also invalidates `v.id` checks on unchangedCOMMENT
LOW…/database/src/bootstrap_model/index_backfills/types.rs21/// This structure stores the progress of an index backfill operation,COMMENT
LOW…es/database/src/database_index_workers/index_writer.rs261 /// current snapshot is backfilled, index snapshot reads at >=ts areCOMMENT
LOW…es/database/src/database_index_workers/index_writer.rs421 /// from this backfill. Note that since we're not building up a historicalCOMMENT
LOWcrates/database/src/query/mod.rs81 /// Return a position for a continuation cursor. A query defines a resultCOMMENT
LOWcrates/database/src/query/mod.rs101COMMENT
LOWcrates/database/src/query/mod.rs341 maximum_rows_read,COMMENT
LOWcrates/database/src/query/index_range.rs61 // interval: Interval,COMMENT
LOWcrates/fivetran_source/src/sync.rs61#[serde(rename_all = "camelCase")]COMMENT
LOWcrates/fivetran_source/src/sync.rs101 /// A checkpoint emitted by a version-2 connector after an initialCOMMENT
LOWcrates/packed_value/benches/packed_value.rs101 ];COMMENT
LOWcrates/packed_value/benches/packed_value.rs121// pack/sort_key/float-normalCOMMENT
LOWcrates/packed_value/benches/packed_value.rs141// time: [226.57 ns 228.39 ns 230.06 ns]COMMENT
LOWcrates/packed_value/benches/packed_value.rs161// pack/sort_key/array-4-intsCOMMENT
LOWcrates/packed_value/benches/packed_value.rs201 });COMMENT
LOWcrates/packed_value/benches/packed_value.rs221// time: [26.455 ns 26.502 ns 26.549 ns]COMMENT
LOWcrates/packed_value/benches/packed_value.rs241// time: [3.0232 µs 3.0299 µs 3.0374 µs]COMMENT
LOWcrates/packed_value/benches/packed_value.rs261// time: [1.5047 ms 1.5086 ms 1.5124 ms]COMMENT
LOWcrates/packed_value/benches/packed_value.rs281// unpack/flexbuffer/object-documentCOMMENT
LOWcrates/packed_value/benches/packed_value.rs321// json/json/idv5 time: [445.53 ns 445.63 ns 445.73 ns]COMMENT
LOWcrates/packed_value/benches/packed_value.rs341// time: [1.2683 µs 1.2706 µs 1.2732 µs]COMMENT
LOWcrates/local_backend/src/usage_limits.rs161}COMMENT
LOWcrates/local_backend/src/config.rs41 /// Host port daemon should bind toCOMMENT
LOWcrates/local_backend/src/config.rs61 /// e.g. if the client is running on localhost, you can use the default ofCOMMENT
LOWcrates/local_backend/src/config.rs81 /// Instance name for this backend.COMMENT
LOWcrates/local_backend/src/config.rs101 /// events generated by this backend. Sentry is disabledCOMMENT
LOWcrates/local_backend/src/config.rs121 /// server. This is to help Convex understand and improve the product.COMMENT
LOWcrates/local_backend/src/integrations.rs281#[derive(Deserialize, ToSchema)]COMMENT
LOWcrates/local_backend/src/integrations.rs321 /// Format for the webhook payload. JSONL sends one object per line ofCOMMENT
LOWcrates/local_backend/src/integrations.rs581 // TODO(ENG-11116): drop the access key fields once existing exports haveCOMMENT
LOWcrates/local_backend/src/integrations.rs681 #[schema(title = "Webhook")]COMMENT
LOWcrates/local_backend/src/integrations.rs1001 #[schema(title = "PostHogLogs")]COMMENT
LOWcrates/local_backend/src/integrations.rs1021 pub dd_tags: Vec<String>,COMMENT
LOWcrates/local_backend/src/integrations.rs1041 /// request, JSON sends one array per request.COMMENT
LOWcrates/local_backend/src/integrations.rs1061 /// Axiom in each log event.COMMENT
LOWcrates/local_backend/src/integrations.rs1081 pub tags: Option<BTreeMap<String, String>>,COMMENT
LOWcrates/local_backend/src/integrations.rs1101}COMMENT
LOWcrates/local_backend/src/integrations.rs1121 pub id: String,COMMENT
LOWcrates/local_backend/src/integrations.rs1301#[serde(rename_all = "camelCase")]COMMENT
LOWcrates/local_backend/src/integrations.rs1321 topics: Option<Option<Vec<LogTopic>>>,COMMENT
317 more matches not shown…
Verbosity Indicators56 hits · 101 pts
SeverityFileLineSnippetContext
LOWcrates/database/src/database.rs800 // Step 1: Fetch tables and indexes from persistence.COMMENT
LOWcrates/database/src/database.rs811 // Step 2: Load bootstrap tables indexes into memory.COMMENT
LOWcrates/database/src/database.rs843 // Step 3: Bootstrap our database metadata from the `_tables` documentsCOMMENT
LOWcrates/database/src/database.rs1470 // Step 0: Generate document ids for bootstrapping database system tables.COMMENT
LOWcrates/database/src/database.rs1518 // Step 1: Generate documents.COMMENT
LOWcrates/database/src/database.rs1607 // Step 2: Generate indexes updates.COMMENT
LOWcrates/database/src/database.rs1629 // Step 3: Add timestamp and write everything to persistence.COMMENT
LOWcrates/isolate/build.rs200 // Step 1: Ensure the `server`, `dashboard`, and `cli` deps are installed.COMMENT
LOWcrates/isolate/build.rs211 // Step 2: Use `build-server` to package up our builtin `_system` UDFs.COMMENT
LOW⚡crates/isolate/build.rs233 // Step 3: Use the output to generate a compile-time hashtable with all of theCOMMENT
LOW⚡crates/isolate/build.rs239 // Step 4: Copy node executor files. They are already bundled.COMMENT
LOW⚡crates/isolate/build.rs259 // Step 5: Build and bundle the udf test project.COMMENT
LOW⚡crates/isolate/build.rs263 // Step 6: Build and bundle component-test projects.COMMENT
LOWcrates/isolate/build.rs289 // Step 7: Record dependencies for the simulation test build. It's a bit of aCOMMENT
LOWcrates/isolate/src/execution_scope.rs376 // Step 1: Compile the module and discover its imports.COMMENT
LOW⚡crates/isolate/src/execution_scope.rs457 // Step 2: Register the module with the module map.COMMENT
LOW⚡crates/isolate/src/execution_scope.rs466 // Step 3: Recursively load the dependencies. Since we've already registeredCOMMENT
LOWcrates/shape_inference/src/union.rs71 // Step 1: Check the base cases.COMMENT
LOWcrates/shape_inference/src/union.rs90 // Step 2: If `new_shape <= u_i` for some `u_i` already in the union, just mergeCOMMENT
LOW⚡crates/shape_inference/src/union.rs113 // Step 3: Ensure that all of the shapes in `no_subtypes | {new_shape}` areCOMMENT
LOW⚡crates/shape_inference/src/union.rs117 // Step 4: To ensure our `MAX_UNION_LENGTH` invariant, contract our shapes ifCOMMENT
LOWcrates/search/src/lib.rs425 // Step 1: Map the old `CompiledQuery` struct onto `TokenQuery`s.COMMENT
LOWcrates/search/src/lib.rs467 // Step 2: Execute the token queries across both the memory and disk indexes,COMMENT
LOWcrates/search/src/lib.rs535 // Step 3: Given the terms we decided on, query BM25 statistics across all ofCOMMENT
LOWcrates/search/src/lib.rs563 // Step 4: Decide on our posting list queries given the previous results.COMMENT
LOWcrates/search/src/lib.rs593 // Step 5: Execute the posting list query against the memory index's tombstonesCOMMENT
LOWcrates/search/src/lib.rs615 // Step 6: Query the posting lists across the indexes and take the bestCOMMENT
LOWcrates/search/src/lib.rs649 // Step 7: Convert the matches into the final result format.COMMENT
LOWcrates/search/src/memory_index/term_list.rs102 // Step 1: Accumulate parallel lists of the unique sorted term IDs andCOMMENT
LOWcrates/application/src/cache/mod.rs430 // Step 1: Decide what we're going to do this iteration: use a cached value,COMMENT
LOWcrates/application/src/cache/mod.rs461 // Step 2: Perform our cache operation, potentially running the UDF.COMMENT
LOWcrates/application/src/cache/mod.rs489 // Step 3: Validate that the cache result we got is good enough. Is our desiredCOMMENT
LOWcrates/application/src/cache/mod.rs500 // Step 4: Rewrite the value into the cache. If this was a cache hit, this willCOMMENT
LOWcrates/application/src/cache/mod.rs512 // Step 5: Log some stuff and return.COMMENT
LOWcrates/application/src/snapshot_import/mod.rs1210 // Step 1: Read _tables if present in the import. If we're importing anCOMMENT
LOWcrates/application/src/snapshot_import/mod.rs1231 // Step 2: For tables that aren't listed in `_tables`, read their firstCOMMENT
LOWcrates/application/src/snapshot_import/mod.rs1253 // Step 3: For tables that don't have _id fields, reuse their table numberCOMMENT
LOWcrates/sync/src/worker.rs966 // Step 1: Add or remove queries from our query set.COMMENT
LOW⚡crates/sync/src/worker.rs981 // Step 2: Take all remaining subscriptions.COMMENT
LOW⚡crates/sync/src/worker.rs984 // Step 3: Refresh subscriptions up to new_ts and run queries whichCOMMENT
LOWcrates/sync/src/worker.rs1303 // Step 6: Send our transition to the client and update our version.COMMENT
LOW⚡…packages/private-demos/test-project/convex/workflow.ts13 // Step 1: Fetch the picture of the dayCOMMENT
LOW⚡…packages/private-demos/test-project/convex/workflow.ts18 // Step 2: Create a thumbnail from the fetched imageCOMMENT
LOW⚡…packages/private-demos/test-project/convex/workflow.ts23 // Step 3: Send message to chat with thumbnail data URLCOMMENT
LOW⚡npm-packages/demos/file-storage/src/App.tsx30 // Step 1: Get a short-lived upload URLCOMMENT
LOW⚡npm-packages/demos/file-storage/src/App.tsx32 // Step 2: POST the file to the URLCOMMENT
LOWnpm-packages/demos/file-storage/src/App.tsx43 // Step 3: Save the newly allocated storage id to the databaseCOMMENT
LOW⚡npm-packages/demos/file-storage/src/_simpleApp.tsx20 // Step 1: Get a short-lived upload URLCOMMENT
LOW⚡npm-packages/demos/file-storage/src/_simpleApp.tsx22 // Step 2: POST the file to the URLCOMMENT
LOW⚡npm-packages/demos/file-storage/src/_simpleApp.tsx29 // Step 3: Save the newly allocated storage id to the databaseCOMMENT
LOW⚡…m-packages/demos/file-storage-with-http/convex/http.ts13 // Step 1: Store the fileCOMMENT
LOW⚡…m-packages/demos/file-storage-with-http/convex/http.ts17 // Step 2: Save the storage ID to the database via a mutationCOMMENT
LOW⚡…m-packages/demos/file-storage-with-http/convex/http.ts27 // Step 3: Return a response with the correct CORS headersCOMMENT
LOW⚡npm-packages/demos/system-tables/src/App.tsx47 // Step 1: Get a short-lived upload URLCOMMENT
LOW⚡npm-packages/demos/system-tables/src/App.tsx49 // Step 2: POST the file to the URLCOMMENT
LOWnpm-packages/demos/system-tables/src/App.tsx60 // Step 3: Save the newly allocated storage id to the databaseCOMMENT
Structural Annotation Overuse56 hits · 101 pts
SeverityFileLineSnippetContext
LOWcrates/database/src/database.rs800 // Step 1: Fetch tables and indexes from persistence.COMMENT
LOWcrates/database/src/database.rs811 // Step 2: Load bootstrap tables indexes into memory.COMMENT
LOWcrates/database/src/database.rs843 // Step 3: Bootstrap our database metadata from the `_tables` documentsCOMMENT
LOWcrates/database/src/database.rs1470 // Step 0: Generate document ids for bootstrapping database system tables.COMMENT
LOWcrates/database/src/database.rs1518 // Step 1: Generate documents.COMMENT
LOWcrates/database/src/database.rs1607 // Step 2: Generate indexes updates.COMMENT
LOWcrates/database/src/database.rs1629 // Step 3: Add timestamp and write everything to persistence.COMMENT
LOWcrates/isolate/build.rs200 // Step 1: Ensure the `server`, `dashboard`, and `cli` deps are installed.COMMENT
LOWcrates/isolate/build.rs211 // Step 2: Use `build-server` to package up our builtin `_system` UDFs.COMMENT
LOW⚡crates/isolate/build.rs233 // Step 3: Use the output to generate a compile-time hashtable with all of theCOMMENT
LOW⚡crates/isolate/build.rs239 // Step 4: Copy node executor files. They are already bundled.COMMENT
LOW⚡crates/isolate/build.rs259 // Step 5: Build and bundle the udf test project.COMMENT
LOW⚡crates/isolate/build.rs263 // Step 6: Build and bundle component-test projects.COMMENT
LOWcrates/isolate/build.rs289 // Step 7: Record dependencies for the simulation test build. It's a bit of aCOMMENT
LOWcrates/isolate/src/execution_scope.rs376 // Step 1: Compile the module and discover its imports.COMMENT
LOW⚡crates/isolate/src/execution_scope.rs457 // Step 2: Register the module with the module map.COMMENT
LOW⚡crates/isolate/src/execution_scope.rs466 // Step 3: Recursively load the dependencies. Since we've already registeredCOMMENT
LOWcrates/shape_inference/src/union.rs71 // Step 1: Check the base cases.COMMENT
LOWcrates/shape_inference/src/union.rs90 // Step 2: If `new_shape <= u_i` for some `u_i` already in the union, just mergeCOMMENT
LOW⚡crates/shape_inference/src/union.rs113 // Step 3: Ensure that all of the shapes in `no_subtypes | {new_shape}` areCOMMENT
LOW⚡crates/shape_inference/src/union.rs117 // Step 4: To ensure our `MAX_UNION_LENGTH` invariant, contract our shapes ifCOMMENT
LOWcrates/search/src/lib.rs425 // Step 1: Map the old `CompiledQuery` struct onto `TokenQuery`s.COMMENT
LOWcrates/search/src/lib.rs467 // Step 2: Execute the token queries across both the memory and disk indexes,COMMENT
LOWcrates/search/src/lib.rs535 // Step 3: Given the terms we decided on, query BM25 statistics across all ofCOMMENT
LOWcrates/search/src/lib.rs563 // Step 4: Decide on our posting list queries given the previous results.COMMENT
LOWcrates/search/src/lib.rs593 // Step 5: Execute the posting list query against the memory index's tombstonesCOMMENT
LOWcrates/search/src/lib.rs615 // Step 6: Query the posting lists across the indexes and take the bestCOMMENT
LOWcrates/search/src/lib.rs649 // Step 7: Convert the matches into the final result format.COMMENT
LOWcrates/search/src/memory_index/term_list.rs102 // Step 1: Accumulate parallel lists of the unique sorted term IDs andCOMMENT
LOWcrates/application/src/cache/mod.rs430 // Step 1: Decide what we're going to do this iteration: use a cached value,COMMENT
LOWcrates/application/src/cache/mod.rs461 // Step 2: Perform our cache operation, potentially running the UDF.COMMENT
LOWcrates/application/src/cache/mod.rs489 // Step 3: Validate that the cache result we got is good enough. Is our desiredCOMMENT
LOWcrates/application/src/cache/mod.rs500 // Step 4: Rewrite the value into the cache. If this was a cache hit, this willCOMMENT
LOWcrates/application/src/cache/mod.rs512 // Step 5: Log some stuff and return.COMMENT
LOWcrates/application/src/snapshot_import/mod.rs1210 // Step 1: Read _tables if present in the import. If we're importing anCOMMENT
LOWcrates/application/src/snapshot_import/mod.rs1231 // Step 2: For tables that aren't listed in `_tables`, read their firstCOMMENT
LOWcrates/application/src/snapshot_import/mod.rs1253 // Step 3: For tables that don't have _id fields, reuse their table numberCOMMENT
LOWcrates/sync/src/worker.rs966 // Step 1: Add or remove queries from our query set.COMMENT
LOW⚡crates/sync/src/worker.rs981 // Step 2: Take all remaining subscriptions.COMMENT
LOW⚡crates/sync/src/worker.rs984 // Step 3: Refresh subscriptions up to new_ts and run queries whichCOMMENT
LOWcrates/sync/src/worker.rs1303 // Step 6: Send our transition to the client and update our version.COMMENT
LOW⚡…packages/private-demos/test-project/convex/workflow.ts13 // Step 1: Fetch the picture of the dayCOMMENT
LOW⚡…packages/private-demos/test-project/convex/workflow.ts18 // Step 2: Create a thumbnail from the fetched imageCOMMENT
LOW⚡…packages/private-demos/test-project/convex/workflow.ts23 // Step 3: Send message to chat with thumbnail data URLCOMMENT
LOW⚡npm-packages/demos/file-storage/src/App.tsx30 // Step 1: Get a short-lived upload URLCOMMENT
LOW⚡npm-packages/demos/file-storage/src/App.tsx32 // Step 2: POST the file to the URLCOMMENT
LOWnpm-packages/demos/file-storage/src/App.tsx43 // Step 3: Save the newly allocated storage id to the databaseCOMMENT
LOW⚡npm-packages/demos/file-storage/src/_simpleApp.tsx20 // Step 1: Get a short-lived upload URLCOMMENT
LOW⚡npm-packages/demos/file-storage/src/_simpleApp.tsx22 // Step 2: POST the file to the URLCOMMENT
LOW⚡npm-packages/demos/file-storage/src/_simpleApp.tsx29 // Step 3: Save the newly allocated storage id to the databaseCOMMENT
LOW⚡…m-packages/demos/file-storage-with-http/convex/http.ts13 // Step 1: Store the fileCOMMENT
LOW⚡…m-packages/demos/file-storage-with-http/convex/http.ts17 // Step 2: Save the storage ID to the database via a mutationCOMMENT
LOW⚡…m-packages/demos/file-storage-with-http/convex/http.ts27 // Step 3: Return a response with the correct CORS headersCOMMENT
LOW⚡npm-packages/demos/system-tables/src/App.tsx47 // Step 1: Get a short-lived upload URLCOMMENT
LOW⚡npm-packages/demos/system-tables/src/App.tsx49 // Step 2: POST the file to the URLCOMMENT
LOWnpm-packages/demos/system-tables/src/App.tsx60 // Step 3: Save the newly allocated storage id to the databaseCOMMENT
Decorative Section Separators14 hits · 63 pts
SeverityFileLineSnippetContext
MEDIUM⚡crates/search_index_workers/src/search_flusher.rs412 /// ┌──────────────┐COMMENT
MEDIUM⚡crates/search_index_workers/src/search_flusher.rs415 /// t0 ────├──────────────┼─────────────┐COMMENT
MEDIUM⚡crates/search_index_workers/src/search_flusher.rs418 /// t1 ────├──────────────┴─────────────┼──────────┐COMMENT
MEDIUM⚡crates/search_index_workers/src/search_flusher.rs422 /// t2 ────└────────────────────────────┴──────────┘COMMENT
MEDIUM⚡crates/table_iteration/src/data_sync.rs73//! ◄══════════════════════════════ ID ════════════════════════════════=══►COMMENT
MEDIUM⚡crates/table_iteration/src/data_sync.rs75//! │ ┌─────────┬─────────┐COMMENT
MEDIUM⚡crates/table_iteration/src/data_sync.rs77//! │ ├─────────┴─────────┤COMMENT
MEDIUM⚡crates/table_iteration/src/data_sync.rs80//! │ │ ├─────────┬─────────┬─────────┐COMMENT
MEDIUM⚡crates/table_iteration/src/data_sync.rs82//! │ ├───────────────────┴─────────┴─────────┴─────────┤COMMENT
MEDIUM⚡crates/table_iteration/src/data_sync.rs86//! │ ├─────────────────────────────────────────────────┤COMMENT
MEDIUM⚡crates/table_iteration/src/data_sync.rs89//! │ │ ├─────────┬─────────┐COMMENT
MEDIUM⚡crates/table_iteration/src/data_sync.rs91//! │ ├─────────────────────────────────────────────────┴─────────┴─────────┤COMMENT
MEDIUM⚡crates/table_iteration/src/data_sync.rs95//! │ ├─────────────────────────────────────────────────────────────────────┤COMMENT
MEDIUM⚡crates/table_iteration/src/data_sync.rs99//! │ └─────────────────────────────────────────────────────────────────────┘COMMENT
Fake / Example Data47 hits · 50 pts
SeverityFileLineSnippetContext
LOWcrates/convex/sync_types/src/types/mod.rs265 token_identifier: UserIdentifier::construct("convex", "fake_user"),CODE
LOW…es/private-demos/quickstarts/nextjs/pages/api/hello.js4 res.status(200).json({ name: "John Doe" });CODE
LOW…/dashboard/src/docs/components/ProjectCard.stories.tsx20 name: "Acme Corp",CODE
LOW…/dashboard/src/docs/components/ProjectCard.stories.tsx59 name: "Jane Doe",CODE
LOW…hboard/src/docs/components/TransferProject.stories.tsx14 name: "Acme Corp",CODE
LOW…rd/src/docs/components/UsageByProjectChart.stories.tsx42 name: "Acme Corp",CODE
LOW…packages/dashboard/src/docs/pages/Projects.stories.tsx33 name: "Acme Corp",CODE
LOW…packages/dashboard/src/docs/pages/Projects.stories.tsx100 { teamId: 2, teamName: "Acme Corp", email: "dana@acme.dev" },CODE
LOW…-packages/dashboard/src/docs/pages/Profile.stories.tsx94 { teamId: 14, teamName: "Acme Corp", email: "nicolas@acme.dev" },CODE
LOW…ard/src/docs/pages/project/deployment/Data.stories.tsx37 name: "Acme Corp",CODE
LOW…/docs/pages/project/deployment/FileStorage.stories.tsx17const mockTeam = { id: 2, slug: "acme", name: "Acme Corp" };CODE
LOW…/src/docs/pages/project/deployment/History.stories.tsx18const mockTeam = { id: 2, slug: "acme", name: "Acme Corp" };CODE
LOW…ages/project/deployment/DeploymentSettings.stories.tsx16 name: "Acme Corp",CODE
LOW…ard/src/docs/pages/project/deployment/Logs.stories.tsx24const mockTeam = { id: 2, slug: "acme", name: "Acme Corp" };CODE
LOW…d/src/docs/pages/project/deployment/Schema.stories.tsx24 name: "Acme Corp",CODE
LOW…t/deployment/settings/EnvironmentVariables.stories.tsx20 name: "Acme Corp",CODE
LOW…/pages/project/deployment/settings/Backups.stories.tsx37const mockTeam = { id: 2, slug: "acme", name: "Acme Corp" };CODE
LOW…es/project/deployment/settings/UsageLimits.stories.tsx19 name: "Acme Corp",CODE
LOW…s/project/deployment/settings/Integrations.stories.tsx14const mockTeam = { id: 2, slug: "acme", name: "Acme Corp" };CODE
LOW…s/pages/project/deployment/schedules/Crons.stories.tsx17const mockTeam = { id: 2, slug: "acme", name: "Acme Corp" };CODE
LOW…ct/deployment/schedules/ScheduledFunctions.stories.tsx18const mockTeam = { id: 2, slug: "acme", name: "Acme Corp" };CODE
LOW…eploymentSettings/BackupDeploymentSelector.stories.tsx64 name: "Jane Doe",CODE
LOW…/components/deploymentSettings/ImportState.stories.tsx12 memberName: "John Doe",CODE
LOW…c/components/teamSettings/InviteMemberForm.stories.tsx16 email: "user1@example.org",CODE
LOW…c/components/teamSettings/InviteMemberForm.stories.tsx23 email: "user2@example.org",CODE
LOW…d/src/components/teamSettings/AuditLogItem.stories.tsx21 name: "John Doe",CODE
LOW⚡…components/teamSettings/EditTeamRoleDialog.stories.tsx28 email: "user1@example.org",CODE
LOW⚡…components/teamSettings/EditTeamRoleDialog.stories.tsx36 email: "user2@example.org",CODE
LOW⚡…components/teamSettings/EditTeamRoleDialog.stories.tsx44 email: "user3@example.org",CODE
LOW⚡…src/components/teamSettings/TeamMemberList.stories.tsx20 email: "user1@example.org",CODE
LOW⚡…src/components/teamSettings/TeamMemberList.stories.tsx27 email: "user2@example.org",CODE
LOW⚡…src/components/teamSettings/TeamMemberList.stories.tsx34 email: "user3@example.org",CODE
LOW⚡…src/components/teamSettings/TeamMemberList.stories.tsx39 email: "user4@example.org",CODE
LOW…tings/teamAuthentication/SingleSignOnSheet.stories.tsx20 name: "Acme Corp",CODE
LOW…/teamAuthentication/ReviewDirectoryChanges.stories.tsx13 name: "Acme Corp",CODE
LOW…ings/teamAuthentication/DirectorySyncSheet.stories.tsx30 name: "Acme Corp",CODE
LOW…amSettings/teamAuthentication/DomainsSheet.stories.tsx20 name: "Acme Corp",CODE
LOW…oard/src/components/profile/AvailableTeams.stories.tsx19 email: "nicolas@example.org",CODE
LOW…oard/src/components/profile/AvailableTeams.stories.tsx24 email: "nicolas.ettlin@example.org",CODE
LOW…onents/header/JoinDirectorySyncedTeamModal.stories.tsx12 email: "nicolas@example.org",CODE
LOW…nts/header/ProjectSelector/ProjectSelector.stories.tsx31 name: "Acme Corp",CODE
LOW…nts/header/ProjectSelector/ProjectSelector.stories.tsx91 email: "nicolas@example.org",CODE
LOW…ges/dashboard/src/elements/DeploymentLabel.stories.tsx158 whoseName: "Jane Doe",CODE
LOW…src/elements/CommandPalette/CommandPalette.stories.tsx64 name: "Acme Corp",CODE
LOW…src/elements/CommandPalette/CommandPalette.stories.tsx126 email: "nicolas@example.org",CODE
LOW…/dashboard/src/hooks/useCreateProjectModal.stories.tsx17 name: "Acme Corp",CODE
LOW…s/dashboard-storybook/.storybook/docsPageDecorator.tsx152 name: "Acme Corp",CODE
Hallucination Indicators2 hits · 30 pts
SeverityFileLineSnippetContext
CRITICALnpm-packages/local-store/debug/DebugView.tsx109 // await syncQueryManager.clientStore.serverStore.indexedDbClient.db.delete();COMMENT
CRITICALnpm-packages/local-store/debug/DebugView.tsx123 // await syncQueryManager.clientStore.serverStore.indexedDbClient.db.delete();COMMENT
AI Slop Vocabulary10 hits · 27 pts
SeverityFileLineSnippetContext
MEDIUMcrates/udf/src/validation.rs207 // We do it here instead of within transaction in order to leverage the moduleCOMMENT
MEDIUM…application/src/snapshot_import/import_file_storage.rs140 // to be robust to manual modifications.COMMENT
MEDIUMcrates/sync/src/state.rs113/// Fundamentally, the state is determined by the current `StateVersion`, whichCOMMENT
MEDIUM.cargo/config.toml22# collides with this rusty_v8 build harness (duplicate gn arg cppgc_enable_api_checks);COMMENT
MEDIUM.cargo/config.toml23# a base bump needs a matching harness and is deferred. Built by convex/rusty_v8COMMENT
MEDIUM…private-demos/clerk-initial-auth/convex/auth.config.ts10 domain: "https://robust-maggot-29.clerk.accounts.dev",CODE
MEDIUMnpm-packages/convex/src/bundler/index.ts517 // robust than doing a regex. We only use regex as a fallback.COMMENT
MEDIUM…Settings/teamAuthentication/ReviewDirectoryChanges.tsx125// shared height keeps the join seamless whatever the cells hold.COMMENT
MEDIUM…m-packages/demos/users-and-clerk/convex/auth.config.ts10 domain: "https://robust-maggot-29.clerk.accounts.dev",CODE
MEDIUMnpm-packages/demos/clerk/convex/auth.config.ts10 domain: "https://robust-maggot-29.clerk.accounts.dev",CODE
Synthetic Comment Markers1 hit · 8 pts
SeverityFileLineSnippetContext
HIGHnpm-packages/dashboard-common/src/elements/GiftWrap.tsx1// NOTE: This file is mostly AI-generated with a frontier model. Any changes should be heavily tested and benchmarked foCOMMENT
Self-Referential Comments2 hits · 6 pts
SeverityFileLineSnippetContext
MEDIUM…es/private-demos/deploy-speed-test/generate-project.py7# Create a moduleCOMMENT
MEDIUMnpm-packages/convex/src/react/index.ts13 * ### Creating the clientCOMMENT
Empty Error Handlers1 hit · 5 pts
SeverityFileLineSnippetContext
HIGHnpm-packages/convex/scripts/build.py160except FileNotFoundError:CODE
Slop Phrases2 hits · 4 pts
SeverityFileLineSnippetContext
LOWcrates/common/src/query.rs673/// If you add a new expression type, don't forget to add it to the proptestCOMMENT
MEDIUM…/features/disconnectOverlay/CloudDisconnectOverlay.tsx30 const defaultMessage = `I'm unable to connect to my deployment "${deploymentName}".CODE
Redundant / Tautological Comments2 hits · 3 pts
SeverityFileLineSnippetContext
LOWscripts/check_cla.py70 # Check if the author is a member of convex organizationCOMMENT
LOWself-hosted/docker-build/run_backend.sh34# Check if all required S3 environment variables are presentCOMMENT
Overly Generic Function Names2 hits · 2 pts
SeverityFileLineSnippetContext
LOW…packages/private-demos/cjs-typescript/src/index-cjs.ts14async function doSomething() {CODE
LOW…s/private-demos/quickstarts/remix/app/entry.server.tsx17export default function handleRequest(CODE
TODO Padding1 hit · 2 pts
SeverityFileLineSnippetContext
LOWcrates/application/src/cron_jobs/mod.rs384 // TODO: implement Display for PendingValueCOMMENT
Excessive Try-Catch Wrapping1 hit · 1 pts
SeverityFileLineSnippetContext
LOWscripts/check_cla.py49 except Exception as e:CODE
Deep Nesting1 hit · 1 pts
SeverityFileLineSnippetContext
LOWscripts/check_cla.py12CODE