AI Slop Code Risk Monitor

nocodb/nocodb

SlopCodeMonitor badge for nocodb/nocodb Adjusted legacy signal; badge bands: 25 / 50 / 75 (different from dashboard bands).

🔥 🔥 🔥 A Free & Self-hostable Airtable Alternative

1.6 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for nocodb/nocodb, a TypeScript project with 65,396 GitHub stars. SynthScan examined 1,183,125 lines of code across 3491 source files, recording 1393 pattern matches distributed across 11 syntactic categories. The legacy adjusted pattern signal is 1.6 (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.6
Adjusted Signal
1.6
Raw Pattern Score
100%
Time Factor
2026-10-31
Last Push
65.4K
Stars
TypeScript
Language
1.2M
Lines of Code
3.5K
Files
1.4K
Pattern Hits
2026-10-31
Scan Date
0.01
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 3.0/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 4.2/100 · LOW

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

Agent Over-Engineering Ratio 2.3/100 · LOW

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

PR Review Velocity Impact 6.9/100 · LOW

Which changes need focused human review? 1393 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 13HIGH 6MEDIUM 71LOW 1303

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 1393 distinct pattern matches across 11 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.

Fake / Example Data681 hits · 868 pts
SeverityFileLineSnippetContext
LOW⚡packages/nocodb/tests/pg-cy-quick/01-cy-quick.sql3296nc_ue47dz5lnghqq4 Slack Slack brings team communication and collaboration into one place so you can get more work done, CODE
LOW⚡packages/nocodb/tests/pg-cy-quick/01-cy-quick.sql3297nc_2enis5bzipn39y Microsoft Teams Microsoft Teams is for everyone · Instantly go from group chat to video call with the CODE
LOW⚡packages/nocodb/tests/pg-cy-quick/01-cy-quick.sql3298nc_wl4r0wn8ui6czq Discord Discord is the easiest way to talk over voice, video, and text. Talk, chat, hang out, and stayCODE
LOW⚡packages/nocodb/tests/pg-cy-quick/01-cy-quick.sql3299nc_o0cyb86587fx2p Whatsapp Twilio With Twilio, unite communications and strengthen customer relationships across your buCODE
LOW⚡packages/nocodb/tests/pg-cy-quick/01-cy-quick.sql3300nc_6zhcewe1rgii7s Twilio With Twilio, unite communications and strengthen customer relationships across your business – CODE
LOW⚡packages/nocodb/tests/pg-cy-quick/01-cy-quick.sql3301nc_z6zkc3aqd0t0x9 S3 Amazon Simple Storage Service (Amazon S3) is an object storage service that offers industry-leadingCODE
LOW⚡packages/nocodb/tests/pg-cy-quick/01-cy-quick.sql3302nc_kx9hp5fmld1m1v Minio MinIO is a High Performance Object Storage released under Apache License v2.0. It is API compatiCODE
LOW⚡packages/nocodb/tests/pg-cy-quick/01-cy-quick.sql3303nc_vatp4ktlx399ns GCS Google Cloud Storage is a RESTful online file storage web service for storing and accessing data oCODE
LOW⚡packages/nocodb/tests/pg-cy-quick/01-cy-quick.sql3304nc_3mzqbwr0746lef Mattermost Mattermost brings all your team communication into one place, making it searchable and acceCODE
LOW⚡packages/nocodb/tests/pg-cy-quick/01-cy-quick.sql3305nc_bdt98lalossz1t Spaces Store & deliver vast amounts of content with a simple architecture. f \N 0.0.1 \N install \N plCODE
LOW⚡packages/nocodb/tests/pg-cy-quick/01-cy-quick.sql3306nc_f0iy05qtnwniu4 Backblaze B2 Backblaze B2 is enterprise-grade, S3 compatible storage that companies around the world uCODE
LOW⚡packages/nocodb/tests/pg-cy-quick/01-cy-quick.sql3307nc_iyhlectialukbv Vultr Object Storage Using Vultr Object Storage can give flexibility and cloud storage that allows appCODE
LOW⚡packages/nocodb/tests/pg-cy-quick/01-cy-quick.sql3308nc_lr8pcvg64g5bho OvhCloud Object Storage Upload your files to a space that you can access via HTTPS using the OpenStackCODE
LOW⚡packages/nocodb/tests/pg-cy-quick/01-cy-quick.sql3309nc_3f19m6v5iyudty Linode Object Storage S3-compatible Linode Object Storage makes it easy and more affordable to manage CODE
LOW⚡packages/nocodb/tests/pg-cy-quick/01-cy-quick.sql3310nc_ikemr7ajwzfcr3 UpCloud Object Storage The perfect home for your data. Thanks to the S3-compatible programmable interfCODE
LOW⚡packages/nocodb/tests/pg-cy-quick/01-cy-quick.sql3311nc_tv5fgn17fgvcwh SMTP SMTP email client f \N 0.0.1 \N install \N \N \N Email Email {"title":"Configure Email SMTP","iteCODE
LOW⚡packages/nocodb/tests/pg-cy-quick/01-cy-quick.sql3312nc_hcnsq71s0tr8um MailerSend MailerSend email client f \N 0.0.1 \N install \N plugins/mailersend.svg \N Email Email {"tiCODE
LOW⚡packages/nocodb/tests/pg-cy-quick/01-cy-quick.sql3313nc_z2zas0qdy0cz7e Scaleway Object Storage Scaleway Object Storage is an S3-compatible object store from Scaleway Cloud PCODE
LOW⚡packages/nocodb/tests/pg-cy-quick/01-cy-quick.sql3314nc_96vkc0jdyw7los SES Amazon Simple Email Service (SES) is a cost-effective, flexible, and scalable email service that eCODE
LOWpackages/nocodb/tests/pg-cy-quick/01-cy-quick.sql32791 \N \N Google Google OAuth2 login. f \N 0.0.1 \N install \N plugins/google.png \N Authentication Google {"title":"ConfiCODE
LOWpackages/nocodb/tests/pg-cy-quick/01-cy-quick.sql32803 \N \N Metadata LRU Cache A cache object that deletes the least-recently-used items. t \N 0.0.1 \N install \N plugins/xCODE
LOWpackages/nocodb/src/plugins/smtp/index.ts23 placeholder: 'admin@example.com',CODE
LOW…codb/src/strategies/google.strategy/google.strategy.ts141 clientID: process.env.NC_GOOGLE_CLIENT_ID ?? 'dummy-id',CODE
LOWpackages/nocodb/src/schema/swagger-v3.json684 "email": "user@example.com",CODE
LOWpackages/nocodb/src/schema/swagger-v3.json737 "email": "user@example.com",CODE
LOWpackages/nocodb/src/schema/swagger-v3.json16809 "example": "user@example.com"CODE
LOWpackages/nocodb/src/schema/swagger-v2.json540 "email": "user@example.com",CODE
LOWpackages/nocodb/src/schema/swagger-v2.json644 "email": "user@example.com",CODE
LOWpackages/nocodb/src/schema/swagger-v2.json676 "email": "user@example.com",CODE
LOWpackages/nocodb/src/schema/swagger-v2.json756 "email": "user@example.com"CODE
LOWpackages/nocodb/src/schema/swagger-v2.json1141 "email": "user@example.com",CODE
LOWpackages/nocodb/src/schema/swagger-v2.json1293 "email": "user@example.com",CODE
LOWpackages/nocodb/src/schema/swagger-v2.json1479 "email": "user@example.com",CODE
LOWpackages/nocodb/src/schema/swagger-v2.json6757 "email": "user@example.com",CODE
LOWpackages/nocodb/src/schema/swagger-v2.json6823 "email": "user@example.com",CODE
LOWpackages/nocodb/src/schema/swagger-v2.json11644 "name": "John Doe",CODE
LOWpackages/nocodb/src/schema/swagger-v2.json11649 "street": "123 Main Street",CODE
LOWpackages/nocodb/src/schema/swagger-v2.json11794 "name": "John Doe",CODE
LOWpackages/nocodb/src/schema/swagger-v2.json11799 "street": "123 Main Street",CODE
LOWpackages/nocodb/src/schema/swagger-v2.json12047 "name": "John Doe",CODE
LOWpackages/nocodb/src/schema/swagger-v2.json12052 "street": "123 Main Street",CODE
LOWpackages/nocodb/src/schema/swagger-v2.json14379 "email": "user@example.com",CODE
LOWpackages/nocodb/src/schema/swagger-v2.json14511 "email": "user@example.com",CODE
LOWpackages/nocodb/src/schema/swagger-v2.json18449 "email": "user@example.com",CODE
LOWpackages/nocodb/src/schema/swagger-v2.json18559 "email": "user@example.com"CODE
LOWpackages/nocodb/src/schema/swagger-v2.json19107 "email": "user@example.com",CODE
LOWpackages/nocodb/src/schema/swagger-v2.json19569 "email": "user@example.com",CODE
LOWpackages/nocodb/src/schema/swagger-v2.json19598 "email": "user@example.com",CODE
LOWpackages/nocodb/src/schema/swagger-v2.json19611 "example": "user@example.com",CODE
LOWpackages/nocodb/src/schema/swagger-v2.json20696 "email": "user@example.com",CODE
LOWpackages/nocodb/src/schema/swagger-v2.json20748 "email": "user@example.com",CODE
LOWpackages/nocodb/src/schema/swagger-v2.json22242 "email": "user@example.com",CODE
LOWpackages/nocodb/src/schema/swagger.json175 "email": "user@example.com",CODE
LOWpackages/nocodb/src/schema/swagger.json279 "email": "user@example.com",CODE
LOWpackages/nocodb/src/schema/swagger.json316 "email": "user@example.com",CODE
LOWpackages/nocodb/src/schema/swagger.json396 "email": "user@example.com"CODE
LOWpackages/nocodb/src/schema/swagger.json1150 "email": "user@example.com",CODE
LOWpackages/nocodb/src/schema/swagger.json1214 "example": "user@example.com"CODE
LOWpackages/nocodb/src/schema/swagger.json1222 "email": "user@example.com"CODE
LOWpackages/nocodb/src/schema/swagger.json1242 "email": "user@example.com",CODE
621 more matches not shown…
Hyper-Verbose Identifiers358 hits · 360 pts
SeverityFileLineSnippetContext
LOW…ocodb/src/filters/global-exception/exception-mapper.ts229export function unhandledExceptionResponse(CODE
LOW⚡packages/nocodb/src/types/column-internal-meta.ts34export function withAttachmentCleanupMark(CODE
LOW⚡packages/nocodb/src/types/column-internal-meta.ts38export function withAttachmentCleanupMark(CODE
LOW⚡packages/nocodb/src/types/column-internal-meta.ts42export function withAttachmentCleanupMark(CODE
LOW⚡packages/nocodb/src/types/column-internal-meta.ts46export function withAttachmentCleanupMark(CODE
LOWpackages/nocodb/src/types/column-internal-meta.ts71export function validateColumnInternalMeta(CODE
LOWpackages/nocodb/src/utils/acl.ts1191export function generateReadablePermissionErr(CODE
LOWpackages/nocodb/src/utils/dataUtils.ts173export function pickChangedFieldsForUpdatePrev(CODE
LOWpackages/nocodb/src/utils/emailUtils.ts109export function emailAliasNotAllowedMessage(aliases: string[] = []): string {CODE
LOWpackages/nocodb/src/utils/tsUtils.ts48export function validateAndStringifyJson<T>(val: T): {CODE
LOWpackages/nocodb/src/mcp/attachment-read.ts14export async function resolveReadableAttachmentPath(CODE
LOW…b/src/dbQueryClient/cross-db-utils/applyAggregation.ts182export async function applyAggregationExpression(CODE
LOWpackages/nocodb/src/models/oauth-token.queries.ts13export function buildRevokeIfActiveUpdate(CODE
LOWpackages/nocodb/src/public/js/vue.global.js860 function createArrayInstrumentations() {CODE
LOWpackages/nocodb/src/public/js/vue.global.js1279 function createInstrumentationGetter(isReadonly, shallow) {CODE
LOWpackages/nocodb/src/public/js/vue.global.js1799 function callWithAsyncErrorHandling(fn, instance, type, args) {CODE
LOWpackages/nocodb/src/public/js/vue.global.js2265 function createDevtoolsComponentHook(hook) {CODE
LOWpackages/nocodb/src/public/js/vue.global.js2272 function createDevtoolsPerformanceHook(hook) {CODE
LOWpackages/nocodb/src/public/js/vue.global.js2431 function setCurrentRenderingInstance(instance) {CODE
LOWpackages/nocodb/src/public/js/vue.global.js3167 function normalizeSuspenseChildren(vnode) {CODE
LOWpackages/nocodb/src/public/js/vue.global.js4889 function exposePropsOnRenderContext(instance) {CODE
LOWpackages/nocodb/src/public/js/vue.global.js4903 function exposeSetupStateOnRenderContext(instance) {CODE
LOWpackages/nocodb/src/public/js/vue.global.js9799 function patchStopImmediatePropagation(e, value) {CODE
LOWpackages/nocodb/src/public/js/vue.global.js11028 function injectCompilerOptionsCheck(app) {CODE
LOWpackages/nocodb/src/public/js/vue.global.js11363 function createConditionalExpression(test, consequent, alternate, newline = true) {CODE
LOWpackages/nocodb/src/public/js/vue.global.js11506 function advancePositionWithMutation(pos, source, numberOfCharacters = source.length) {CODE
LOWpackages/nocodb/src/public/js/vue.global.js12792 function getConstantTypeOfHelperCall(value, context) {CODE
LOWpackages/nocodb/src/public/js/vue.global.js12807 function getGeneratedPropsConstantType(node, context) {CODE
LOWpackages/nocodb/src/public/js/vue.global.js13108 function createStructuralDirectiveTransform(name, fn) {CODE
LOWpackages/nocodb/src/public/js/vue.global.js13491 function genExpressionAsPropertyKey(node, context) {CODE
LOWpackages/nocodb/src/public/js/vue.global.js13703 function validateBrowserExpression(node, context, asParams = false, asRawStatements = false) {CODE
LOWpackages/nocodb/src/public/js/vue.global.js13899 function createCodegenNodeForBranch(branch, keyIndex, context) {CODE
LOWpackages/nocodb/src/public/js/vue.global.js13913 function createChildrenCodegenNode(branch, keyIndex, context) {CODE
LOWpackages/nocodb/src/public/js/vue.global.js14996 function stringifyDynamicPropNames(props) {CODE
LOW…-upgrader/upgraders/0111002_ncXcdbLTARIndexUpgrader.ts15async function upgradeModelRelationsIndex(CODE
LOW…version-upgrader/upgraders/0105003_ncFilterUpgrader.ts27function removeLikeAndNlikeFilters(CODE
LOW…version-upgrader/upgraders/0105003_ncFilterUpgrader.ts62function migrateEmptyAndNullFilters(CODE
LOWpackages/nocodb/src/db/CustomKnex.ts783function parseNestedConditionAndJoin(obj, qb, pKey?, table?, tableAlias?) {CODE
LOWpackages/nocodb/src/db/linkedRecordDynamicFilter.ts57async function buildLinkedRecordIdsQuery({CODE
LOWpackages/nocodb/src/db/linkedRecordDynamicFilter.ts239export async function resolveLinkedRecordDynamicFilter(CODE
LOWpackages/nocodb/src/db/lookupSortLimit.ts238export async function applyNestedLookupLevelLimit(param: {CODE
LOWpackages/nocodb/src/db/lookupSortLimit.ts262export async function buildNestedLookupLevelLimit(param: {CODE
LOWpackages/nocodb/src/db/lookupSortLimit.ts359export async function applyLookupFilterWindowLimit(param: {CODE
LOWpackages/nocodb/src/db/generateLookupSelectQuery.ts41export async function getDisplayValueOfRefTable(CODE
LOWpackages/nocodb/src/db/generateLookupSelectQuery.ts76export async function getRefTableColumnForFilter(CODE
LOWpackages/nocodb/src/db/generateLookupSelectQuery.ts124export default async function generateLookupSelectQuery({CODE
LOWpackages/nocodb/src/db/conditionV2.ts109function oracleNarrowFormulaClobForCompare(CODE
LOWpackages/nocodb/src/db/conditionV2.ts1047async function resolveDynamicFilterValue(CODE
LOWpackages/nocodb/src/db/conditionV2.ts1135async function resolveCrossTableDynamicFilter(CODE
LOWpackages/nocodb/src/db/conditionV2.ts1238export async function extractLinkRelFiltersAndApply(_: {CODE
LOWpackages/nocodb/src/db/sql-client/lib/pg/typeCast.ts80function generateDateTimeCastQuery(CODE
LOWpackages/nocodb/src/db/sql-client/lib/pg/typeCast.ts130function generateNumberBoundingQuery(CODE
LOWpackages/nocodb/src/db/functionMappings/commonFns.ts273function unifyOracleClobCaseBranches(CODE
LOWpackages/nocodb/src/db/links/requestHandler.ts7export class LinksRequestHandler {CODE
LOW…kages/nocodb/src/db/formulav2/formulaQueryBuilderv2.ts652async function invalidateSingleQueryPlans(CODE
LOW…kages/nocodb/src/db/formulav2/formulaQueryBuilderv2.ts674async function persistFormulaColumnError(CODE
LOWpackages/nocodb/src/db/formulav2/pg-ieee.ts16export function isNonFiniteFormulaHandlingEnabled(): boolean {CODE
LOW…s/nocodb/src/db/formulav2/assertParsedTreeFunctions.ts46export function assertParsedTreeFunctions(node: unknown): void {CODE
LOW…kages/nocodb/src/db/BaseModelSqlv2/mssql-insert-sql.ts30export function mssqlBuildBulkInsertWithCapture(_args: {CODE
LOWpackages/nocodb/src/run/cloud.ts124function setupWorkerSignalHandlers(): void {CODE
298 more matches not shown…
Over-Commented Block214 hits · 206 pts
SeverityFileLineSnippetContext
LOWpackages/nocodb/docker/litestream.yml21 # recipients:COMMENT
LOW…odb/src/middlewares/extract-ids/extract-ids.helpers.ts121 'filterUpdate',COMMENT
LOWpackages/nocodb/src/mcp/tools/tool-helpers.ts121COMMENT
LOW…odb/src/dbQueryClient/cross-db-utils/bulk-aggregate.ts61// Ops the grid's group-by emits (nc-gui `buildNestedFilterArr`). Each pins aCOMMENT
LOWpackages/nocodb/src/models/Source.ts381COMMENT
LOWpackages/nocodb/src/models/HookFilter.ts261 // filterObj = await ncMeta.metaGet2(context.workspace_id, context.base_id, MetaTable.FILTER_EXP, {COMMENT
LOWpackages/nocodb/src/models/HookFilter.ts301 }COMMENT
LOWpackages/nocodb/src/models/HookFilter.ts421 return result;COMMENT
LOWpackages/nocodb/src/models/HookFilter.ts501 // static async parentFilterList(COMMENT
LOWpackages/nocodb/src/models/HookFilter.ts521 // }COMMENT
LOWpackages/nocodb/src/models/Filter.ts721COMMENT
LOWpackages/nocodb/src/models/View.ts2281 );COMMENT
LOWpackages/nocodb/src/models/View.ts2461 // return await ncMeta.metaUpdate(COMMENT
LOWpackages/nocodb/src/models/View.ts3381COMMENT
LOWpackages/nocodb/src/models/Model.ts961 // from UICOMMENT
LOWpackages/nocodb/src/public/js/vue.global.js15261 // if this is a plain element with a single text child, leave itCOMMENT
LOW…version-upgrader/upgraders/0104004_ncFilterUpgrader.ts21// - Checkbox columns:COMMENT
LOWpackages/nocodb/src/db/sortV2.ts41 if (!sortList?.length) return;COMMENT
LOW…kages/nocodb/src/db/relation-update-webhook-handler.ts41COMMENT
LOWpackages/nocodb/src/db/BaseModelSqlv2.ts3161 );COMMENT
LOWpackages/nocodb/src/db/BaseModelSqlv2.ts4461 // if timezone info is not found - considered as utcCOMMENT
LOWpackages/nocodb/src/db/BaseModelSqlv2.ts6421 // The webhook listener runs asynchronously (it yields on its first await),COMMENT
LOWpackages/nocodb/src/db/genRollupSelectv2.ts241 // doesn't bind them. But `knex.raw(rawObj)` resolves the inner Raw viaCOMMENT
LOWpackages/nocodb/src/db/generateLookupSelectQuery.ts861 // builder: knexCOMMENT
LOWpackages/nocodb/src/db/generateLookupSelectQuery.ts881 )COMMENT
LOWpackages/nocodb/src/db/generateLookupSelectQuery.ts901 // aggregate so numeric lookups become quotedCOMMENT
LOWpackages/nocodb/src/db/conditionV2.ts121 return expr;COMMENT
LOWpackages/nocodb/src/db/conditionV2.ts921 // FieldHandler — only Formula-with-CWC and string-likeCOMMENT
LOWpackages/nocodb/src/db/sql-client/lib/data.helper.ts261 // if (colType.indexOf(typesArr[i]) !== -1) {COMMENT
LOWpackages/nocodb/src/db/sql-client/lib/KnexClient.ts841 (d) => d.aggrDataType === args['aggrDataType'],COMMENT
LOWpackages/nocodb/src/db/sql-client/lib/KnexClient.ts861 // * @param {String} - args.columns[].pk -COMMENT
LOWpackages/nocodb/src/db/sql-client/lib/KnexClient.ts881 // const result = new Result();COMMENT
LOWpackages/nocodb/src/db/sql-client/lib/KnexClient.ts981 // *COMMENT
LOWpackages/nocodb/src/db/sql-client/lib/KnexClient.ts1001 // * @param {String} - args.columns[].cdf -COMMENT
LOWpackages/nocodb/src/db/sql-client/lib/KnexClient.ts1021 // for (let i = 0; i < args.columns.length; ++i) {COMMENT
LOWpackages/nocodb/src/db/sql-client/lib/KnexClient.ts1041 // args.columns[i],COMMENT
LOWpackages/nocodb/src/db/sql-client/lib/KnexClient.ts1061 // upQuery += alterTablePK(args.columns, args.originalColumns, upQuery);COMMENT
LOWpackages/nocodb/src/db/sql-client/lib/KnexClient.ts1381 );COMMENT
LOWpackages/nocodb/src/db/sql-client/lib/KnexClient.ts1421 // 'float',COMMENT
LOWpackages/nocodb/src/db/sql-client/lib/KnexClient.ts1461 return 'enu';COMMENT
LOWpackages/nocodb/src/db/sql-client/lib/KnexClient.ts1481 // "longblob",COMMENT
LOWpackages/nocodb/src/db/sql-client/lib/KnexClient.ts1501 // "mediumint",COMMENT
LOWpackages/nocodb/src/db/sql-client/lib/KnexClient.ts1521 // "double precision",COMMENT
LOWpackages/nocodb/src/db/sql-client/lib/KnexClient.ts1541 // "interval day"COMMENT
LOWpackages/nocodb/src/db/sql-client/lib/KnexClient.ts1581 // if (args.where) {COMMENT
LOWpackages/nocodb/src/db/sql-client/lib/KnexClient.ts1601 // return args;COMMENT
LOW…es/nocodb/src/db/sql-client/lib/sqlite/SqliteClient.ts241 // // log.debug("SET autocommit = 1:", err);COMMENT
LOW…es/nocodb/src/db/sql-client/lib/sqlite/SqliteClient.ts1601 // args.columns[i],COMMENT
LOW…es/nocodb/src/db/sql-client/lib/sqlite/SqliteClient.ts2021 );COMMENT
LOW…es/nocodb/src/db/sql-client/lib/sqlite/SqliteClient.ts2241 // }COMMENT
LOWpackages/nocodb/src/db/sql-client/lib/pg/PgClient.ts301 // "string",COMMENT
LOWpackages/nocodb/src/db/sql-client/lib/pg/PgClient.ts641 // async commit() {COMMENT
LOW…ocodb/src/db/sql-client/lib/mysql/fakerFunctionList.ts381 // name: 'randomize',COMMENT
LOW…ocodb/src/db/sql-client/lib/mysql/fakerFunctionList.ts401 // value: 'helpers.replaceSymbols',COMMENT
LOW…ages/nocodb/src/db/sql-client/lib/mysql/MysqlClient.ts161 // "float",COMMENT
LOW…ages/nocodb/src/db/sql-client/lib/mysql/MysqlClient.ts401 // async commit() {COMMENT
LOWpackages/nocodb/src/db/util/dbVersion.ts1// Reads the major version preset on the knex client byCOMMENT
LOWpackages/nocodb/src/db/sql-data-mapper/index.ts1// import XKnex, { Knex } from './lib/sql/CustomKnex';COMMENT
LOW…ocodb/src/db/sql-data-mapper/__tests__/xSelect.test.js161 // let queryOutput = knex.table('city').select({COMMENT
LOWpackages/nocodb/src/db/sql-data-mapper/lib/BaseModel.ts21//COMMENT
154 more matches not shown…
Decorative Section Separators66 hits · 201 pts
SeverityFileLineSnippetContext
MEDIUMpackages/nocodb/src/db/BaseModelSqlv2.ts10783 // ── V1 BT / V1 OO BT-side ─────────────────────────────────────────COMMENT
MEDIUMpackages/nocodb/src/db/BaseModelSqlv2.ts10843 // ── V1 HM / V1 OO HM-side ─────────────────────────────────────────COMMENT
MEDIUMpackages/nocodb/src/db/BaseModelSqlv2.ts10907 // ── V1 MM + ALL V2 (mm/om/mo/oo/bt) ───────────────────────────────COMMENT
MEDIUMpackages/nocodb-sdk/src/lib/interface/pageConfigs.ts22// ────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/nocodb-sdk/src/lib/interface/pageConfigs.ts24// ────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/nocodb-sdk/src/lib/interface/pageConfigs.ts386// ────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/nocodb-sdk/src/lib/interface/pageConfigs.ts388// ────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/nocodb-sdk/src/lib/interface/pageConfigs.ts428// ────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/nocodb-sdk/src/lib/interface/pageConfigs.ts430// ────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/nocodb-sdk/src/lib/interface/pageConfigs.ts476// ────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/nocodb-sdk/src/lib/interface/pageConfigs.ts478// ────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/nocodb-sdk/src/lib/interface/pageConfigs.ts513// ────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/nocodb-sdk/src/lib/interface/pageConfigs.ts515// ────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/nocodb-sdk/src/lib/interface/pageConfigs.ts593// ────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/nocodb-sdk/src/lib/interface/pageConfigs.ts595// ────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM⚡packages/nocodb-sdk/src/lib/interface/pageConfigs.ts639// ────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM⚡packages/nocodb-sdk/src/lib/interface/pageConfigs.ts641// ────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/nocodb-sdk/src/lib/interface/pageConfigs.ts710// ────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/nocodb-sdk/src/lib/interface/pageConfigs.ts712// ────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/nocodb-sdk/src/lib/interface/elements.ts76// ────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/nocodb-sdk/src/lib/interface/elements.ts78// ────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/nocodb-sdk/src/lib/interface/elements.ts232// ────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/nocodb-sdk/src/lib/interface/elements.ts234// ────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/nocodb-sdk/src/lib/interface/elements.ts302// ────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/nocodb-sdk/src/lib/interface/elements.ts304// ────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/nocodb-sdk/src/lib/interface/elements.ts477// ────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/nocodb-sdk/src/lib/interface/elements.ts480// ────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/nocodb-sdk/src/lib/interface/elements.ts528// ────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/nocodb-sdk/src/lib/interface/elements.ts530// ────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/nocodb-sdk/src/lib/dashboard/charts.ts94 // ── Right-hand entries only ──────────────────────────────────────────────COMMENT
MEDIUMpackages/nocodb-sdk/src/lib/dashboard/charts.ts237// ────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/nocodb-sdk/src/lib/dashboard/charts.ts240// ────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/nocodb-sdk/src/lib/v3/record-transform.ts44// ─── Primary Key Helpers ────────────────────────────────────────────COMMENT
MEDIUMpackages/nocodb-sdk/src/lib/v3/record-transform.ts78// ─── Shared helpers ─────────────────────────────────────────────────COMMENT
MEDIUMpackages/nocodb-sdk/src/lib/v3/record-transform.ts108// ─── V2 → V3 ───────────────────────────────────────────────────────COMMENT
MEDIUMpackages/nocodb-sdk/src/lib/v3/record-transform.ts289// ─── V3 → V2 ───────────────────────────────────────────────────────COMMENT
MEDIUMpackages/nc-gui/composables/useBaseSettingsNav.ts65 // ── App section ──────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/nc-gui/composables/useBaseSettingsNav.ts102 // ── Per-pane gates ───────────────────────────────────────────────────────COMMENT
MEDIUMpackages/nc-gui/composables/useBaseSettingsNav.ts191 // ── The nav ──────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/nc-gui/composables/useImageAnnotations.ts98 // ─── state ───────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/nc-gui/composables/useImageAnnotations.ts117 // ─── derived ─────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/nc-gui/composables/useImageAnnotations.ts200 // ─── actions ─────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/nc-gui/components/smartsheet/Form.vue545// ─── Grid layout (multi-field rows) ────────────────────────────────────COMMENT
MEDIUM…ckages/nc-gui/components/smartsheet/details/Fields.vue1429 // ── Surface deletions ──────────────────────────────────────────COMMENT
MEDIUM…ckages/nc-gui/components/smartsheet/details/Fields.vue1454 // ── Surface updates affecting the active field ────────────────COMMENT
MEDIUM…nc-gui/components/dashboard/FeatureExperimentation.vue133// ─── Easter eggs ─────────────────────────────────────────────────────────────COMMENT
MEDIUM…es/nc-gui/components/cell/attachment/Preview/Image.vue288// ─── annotation drawing ────────────────────────────────────────────────────COMMENT
MEDIUM…gui/components/virtual-cell/components/LinkedItems.vue125// ── Per-link drag-to-reorder (v2 mm on Postgres) ──────────────────────────────COMMENT
MEDIUMpackages/nc-gui/components/nc/Drawer.vue50// ── Swipe-to-close (scroll-aware, works on entire drawer) ───────────COMMENT
MEDIUMpackages/nc-gui/components/nc/Drawer.vue195// ── Scroll-aware fade ────────────────────────────────────────────────COMMENT
MEDIUMpackages/nc-gui/components/nc/Drawer.vue223// ── Dynamic body height (avoids flex-1 min-content issues) ──────────COMMENT
MEDIUM…c-gui/components/nc/form-builder/input/Attachments.vue166// ── URL popover ────────────────────────────────────────────────────────────COMMENT
MEDIUM…c-gui/components/nc/form-builder/input/Attachments.vue241// ── Upload ─────────────────────────────────────────────────────────────────COMMENT
MEDIUM…c-gui/components/nc/form-builder/input/Attachments.vue342// ── Open ───────────────────────────────────────────────────────────────────COMMENT
MEDIUM…c-gui/components/nc/form-builder/input/Attachments.vue374// ── Chip presentation ──────────────────────────────────────────────────────COMMENT
MEDIUMdocker-compose/1_Auto_Upstall/noco.sh19# ── Colors ────────────────────────────────────────────────────────────────────COMMENT
MEDIUMdocker-compose/1_Auto_Upstall/noco.sh27# ── State (set by prompts or flags) ───────────────────────────────────────────COMMENT
MEDIUMdocker-compose/1_Auto_Upstall/noco.sh48# ── Helpers ───────────────────────────────────────────────────────────────────COMMENT
MEDIUMdocker-compose/1_Auto_Upstall/noco.sh113# ── Prerequisites ─────────────────────────────────────────────────────────────COMMENT
MEDIUMdocker-compose/1_Auto_Upstall/noco.sh168# ── Prompts ───────────────────────────────────────────────────────────────────COMMENT
6 more matches not shown…
Hallucination Indicators13 hits · 145 pts
SeverityFileLineSnippetContext
CRITICALpackages/nocodb/src/db/field-handler/index.ts358 this.info.baseModel.model.columns.find((col) => col.id === filter.id);CODE
CRITICAL…nc-gui/components/cell/RichText/LinkOrImageOptions.vue141 editor.value.view.state.tr.removeStoredMark(linkMark).addStoredMark(linkMark.create({ href: formatedHref })),CODE
CRITICAL…nc-gui/components/cell/RichText/LinkOrImageOptions.vue162 editor.value.view.dispatch(editor.value.view.state.tr.removeStoredMark(linkMark))CODE
CRITICAL…nc-gui/components/cell/RichText/LinkOrImageOptions.vue167 editor.value.view.dispatch(editor.value.view.state.tr.removeMark(markSelection.from, markSelection.to, linkMark))CODE
CRITICALpackages/nc-gui/components/ai/PromptWithFields.vue151 tr.replaceSelectionWith(view.state.schema.nodes.mention.create({ id }))CODE
CRITICALpackages/nc-gui/helpers/tiptap-markdown/Markdown.ts27 return commands.setContent(props.editor.storage.markdown.parser.parse(content), emitUpdate, parseOptions)(props)CODE
CRITICALpackages/nc-gui/helpers/tiptap-markdown/Markdown.ts32 props.editor.storage.markdown.parser.parse(content, { inline: true }),CODE
CRITICAL⚡packages/nc-gui/helpers/tiptap-markdown/Markdown.ts44 const markdown = this.editor.storage.markdown.serializer.serialize(this.editor.state.doc)CODE
CRITICAL⚡packages/nc-gui/helpers/tiptap-markdown/Markdown.ts51 return this.editor.storage.markdown.parser.parse(md)CODE
CRITICAL⚡packages/nc-gui/helpers/tiptap-markdown/Markdown.ts55 this.editor.options.content = this.editor.storage.markdown.parser.parse(this.editor.options.content)CODE
CRITICAL…ckages/nc-gui/helpers/tiptap-markdown/util/markdown.ts6 md.inline.State.prototype.scanDelims.call({ src: text, posMax: text.length })CODE
CRITICAL…helpers/tiptap-markdown/extensions/tiptap/clipboard.ts32 const parsed = this.editor.storage.markdown.parser.parse(text, { inline: true })CODE
CRITICAL…helpers/tiptap-markdown/extensions/tiptap/clipboard.ts42 return this.editor.storage.markdown.serializer.serialize(slice.content)CODE
Verbosity Indicators24 hits · 47 pts
SeverityFileLineSnippetContext
LOW⚡…/db/BaseModelSqlv2/attachment-url-upload-preparator.ts80 // Step 1: Create FileReference without workspace info and mark as deletedCOMMENT
LOW⚡…/db/BaseModelSqlv2/attachment-url-upload-preparator.ts82 // Step 2: Create FileReference with workspace info and deleted: falseCOMMENT
LOWpackages/nocodb/src/helpers/ltarDisplayValueResolver.ts180 // Step 1: case-sensitive exact match (eq)COMMENT
LOWpackages/nocodb/src/helpers/ltarDisplayValueResolver.ts199 // Step 2: case-insensitive fallback for the values eq didn't matchCOMMENT
LOW…s/nocodb/src/services/v3/data-attachment-v3.service.ts107 // Step 1: Create FileReference without workspace info and mark as deletedCOMMENT
LOW…s/nocodb/src/services/v3/data-attachment-v3.service.ts125 // Step 2: update fileSize, url due to fileName, fileSize etcCOMMENT
LOW…s/nocodb/src/services/v3/data-attachment-v3.service.ts362 // Step 1: Create FileReference without workspace info and mark as deletedCOMMENT
LOW…s/nocodb/src/services/v3/data-attachment-v3.service.ts380 // Step 2: Create FileReference with workspace info and deleted: falseCOMMENT
LOW⚡packages/nc-gui/composables/useViewColumns.ts560 // Step 1: Apply default filterCOMMENT
LOW⚡packages/nc-gui/composables/useViewColumns.ts563 // Step 2: Apply search basis options if default filter failsCOMMENT
LOW⚡packages/nc-gui/composables/useViewColumns.ts572 // Step 1: Apply default filterCOMMENT
LOW⚡packages/nc-gui/composables/useViewColumns.ts575 // Step 2: Apply search basis options if default filter failsCOMMENT
LOWpackages/nc-gui/composables/usePlugin/index.ts242 // Step 1: Load assets for all plugin typesCOMMENT
LOW⚡…ages/nc-gui/components/smartsheet/column/EditOrAdd.vue730 // Step 1: apply default filterCOMMENT
LOW⚡…ages/nc-gui/components/smartsheet/column/EditOrAdd.vue733 // Step 2: apply search basis optionsCOMMENT
LOW⚡…ponents/smartsheet/column/UITypesOptionsWithSearch.vue33 // Step 1: apply default filterCOMMENT
LOW⚡…ponents/smartsheet/column/UITypesOptionsWithSearch.vue36 // Step 2: apply search basis optionsCOMMENT
LOWpackages/nc-gui/components/template/Editor.vue108 // If it is import data only, then we need to check if the field is editableCOMMENT
LOW⚡packages/nc-gui/components/nc/List/index.vue138 // Step 1: apply default filterCOMMENT
LOW⚡packages/nc-gui/components/nc/List/index.vue141 // Step 2: apply search basis optionsCOMMENT
LOW⚡packages/nc-integration-scaffolder/src/index.ts25 // Step 1: Read the content of the fileCOMMENT
LOW⚡packages/nc-integration-scaffolder/src/index.ts28 // Step 2: Use TypeScript Compiler API to parse the source fileCOMMENT
LOW⚡packages/nc-integration-scaffolder/src/index.ts36 // Step 3: Traverse the AST to find the abstract classCOMMENT
LOWpackages/nc-integration-scaffolder/src/index.ts153 // Step 4: Generate the new class codeCOMMENT
Structural Annotation Overuse23 hits · 46 pts
SeverityFileLineSnippetContext
LOW⚡…/db/BaseModelSqlv2/attachment-url-upload-preparator.ts80 // Step 1: Create FileReference without workspace info and mark as deletedCOMMENT
LOW⚡…/db/BaseModelSqlv2/attachment-url-upload-preparator.ts82 // Step 2: Create FileReference with workspace info and deleted: falseCOMMENT
LOWpackages/nocodb/src/helpers/ltarDisplayValueResolver.ts180 // Step 1: case-sensitive exact match (eq)COMMENT
LOWpackages/nocodb/src/helpers/ltarDisplayValueResolver.ts199 // Step 2: case-insensitive fallback for the values eq didn't matchCOMMENT
LOW…s/nocodb/src/services/v3/data-attachment-v3.service.ts107 // Step 1: Create FileReference without workspace info and mark as deletedCOMMENT
LOW…s/nocodb/src/services/v3/data-attachment-v3.service.ts125 // Step 2: update fileSize, url due to fileName, fileSize etcCOMMENT
LOW…s/nocodb/src/services/v3/data-attachment-v3.service.ts362 // Step 1: Create FileReference without workspace info and mark as deletedCOMMENT
LOW…s/nocodb/src/services/v3/data-attachment-v3.service.ts380 // Step 2: Create FileReference with workspace info and deleted: falseCOMMENT
LOW⚡packages/nc-gui/composables/useViewColumns.ts560 // Step 1: Apply default filterCOMMENT
LOW⚡packages/nc-gui/composables/useViewColumns.ts563 // Step 2: Apply search basis options if default filter failsCOMMENT
LOW⚡packages/nc-gui/composables/useViewColumns.ts572 // Step 1: Apply default filterCOMMENT
LOW⚡packages/nc-gui/composables/useViewColumns.ts575 // Step 2: Apply search basis options if default filter failsCOMMENT
LOWpackages/nc-gui/composables/usePlugin/index.ts242 // Step 1: Load assets for all plugin typesCOMMENT
LOW⚡…ages/nc-gui/components/smartsheet/column/EditOrAdd.vue730 // Step 1: apply default filterCOMMENT
LOW⚡…ages/nc-gui/components/smartsheet/column/EditOrAdd.vue733 // Step 2: apply search basis optionsCOMMENT
LOW⚡…ponents/smartsheet/column/UITypesOptionsWithSearch.vue33 // Step 1: apply default filterCOMMENT
LOW⚡…ponents/smartsheet/column/UITypesOptionsWithSearch.vue36 // Step 2: apply search basis optionsCOMMENT
LOW⚡packages/nc-gui/components/nc/List/index.vue138 // Step 1: apply default filterCOMMENT
LOW⚡packages/nc-gui/components/nc/List/index.vue141 // Step 2: apply search basis optionsCOMMENT
LOW⚡packages/nc-integration-scaffolder/src/index.ts25 // Step 1: Read the content of the fileCOMMENT
LOW⚡packages/nc-integration-scaffolder/src/index.ts28 // Step 2: Use TypeScript Compiler API to parse the source fileCOMMENT
LOW⚡packages/nc-integration-scaffolder/src/index.ts36 // Step 3: Traverse the AST to find the abstract classCOMMENT
LOWpackages/nc-integration-scaffolder/src/index.ts153 // Step 4: Generate the new class codeCOMMENT
Synthetic Comment Markers6 hits · 38 pts
SeverityFileLineSnippetContext
HIGH…src/modules/jobs/jobs/at-import/at-import.processor.ts2347 // AI generated textCOMMENT
HIGH…jobs/jobs/at-import/engine/mockResponses/initialize.ts86window.initData = {"baseUrl":"https:\\u002F\\u002Fairtable.com","browserId":"brwVEsvxsca6PfACz","csrfToken":"dibFITyM--GCODE
HIGHpackages/nocodb/src/helpers/nestedLinkQueryHelpers.ts440 // reappear and the leaves combine as requested. Bare values cover what theCOMMENT
HIGHpackages/nc-gui/composables/useViewFilters.ts1020 // Preserve 'logical_op' from the draft when provided (e.g. AI-generated filters may use 'or'),COMMENT
HIGHpackages/nc-gui/lang/en.json3766 "chooseOutputFieldsForAi": "Choose Output Fields To Be Generated by AI",CODE
HIGHpackages/nc-gui/lang/en.json3784 "generatedByAi": "Generated by AI",CODE
AI Slop Vocabulary6 hits · 16 pts
SeverityFileLineSnippetContext
MEDIUM…odb/src/middlewares/extract-ids/extract-ids.helpers.ts140// reason about nuanced transitions (e.g. collab → locked on the newCOMMENT
MEDIUMpackages/nocodb/src/utils/duplicate-model.utils.ts12// need to use class to utilize inheritanceCOMMENT
MEDIUMpackages/nocodb/src/public/js/vuetify.2.x.min.js6!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("vue")):"function"==typeof defCODE
LOWpackages/nocodb/src/public/js/vue.global.js6784 // #1689 For inside suspense + suspense resolved case, just call itCOMMENT
MEDIUM…mponents/smartsheet/calendar/DayView/DateTimeField.vue428// but we window both axes so it stays robust to any distribution. The dragged / resized record isCOMMENT
MEDIUM…s/nc-gui/components/dashboard/TreeView/ProjectNode.vue221 // We do not wait for tables api, so that add new table is seamless.COMMENT
Slop Phrases1 hit · 2 pts
SeverityFileLineSnippetContext
LOWpackages/nocodb/src/public/js/vue.global.js8338 // #2078 make sure to merge refs during the clone instead of overwriting itCOMMENT
TODO Padding1 hit · 2 pts
SeverityFileLineSnippetContext
LOWpackages/nocodb/src/services/columns.service.ts7987 // TODO: implement for snowflake (right now create index does not work with identifier quoting in snowflake - bug?)COMMENT