✨ AI Spreadsheet for Business
This report summarizes scanner evidence for teableio/teable, a TypeScript project with 21,942 GitHub stars. SynthScan examined 1,689,369 lines of code across 8585 source files, recording 943 pattern matches distributed across 10 syntactic categories. The legacy adjusted pattern signal is 1.4 (Low pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.
Can maintainers explain intent, assumptions, and trade-offs? 417 finding(s).
Are imports declared and package/API names verified? 518 finding(s).
Are wrappers, guards, and repeated structures necessary? 152 finding(s).
Which changes need focused human review? 943 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 943 distinct pattern matches across 10 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 |
|---|---|---|---|---|
| CRITICAL | …mplementation/src/handlers/tables/getTableById.spec.ts | 163 | expect(result.body.data.table.fields.every((field) => !field.computeMeta)).toBe(true); | CODE |
| CRITICAL | packages/v2/e2e/src/record-http-compat.e2e.spec.ts | 67 | const created = parsed.data.data.table.fields.find( | CODE |
| CRITICAL | packages/v2/e2e/src/createRecords.e2e.spec.ts | 79 | const created = parsed.data.data.table.fields.find( | CODE |
| CRITICAL | packages/v2/e2e/src/conditionalFields.e2e.spec.ts | 201 | const created = parsed.data.data.table.fields.find((f) => f.id === conditionalRollupFieldId); | CODE |
| CRITICAL | packages/v2/e2e/src/conditionalFields.e2e.spec.ts | 250 | const created = parsed.data.data.table.fields.find((f) => f.id === conditionalRollupFieldId); | CODE |
| CRITICAL | packages/v2/e2e/src/conditionalFields.e2e.spec.ts | 376 | const created = parsed.data.data.table.fields.find((f) => f.id === conditionalLookupFieldId); | CODE |
| CRITICAL | packages/v2/e2e/src/conditionalFields.e2e.spec.ts | 423 | const created = parsed.data.data.table.fields.find((f) => f.id === conditionalLookupFieldId); | CODE |
| CRITICAL | packages/v2/e2e/src/conditionalFields.e2e.spec.ts | 514 | const created = parsed.data.data.table.fields.find( | CODE |
| CRITICAL | packages/v2/e2e/src/createTable.e2e.spec.ts | 802 | const createdLinkFields = parsed.data.data.table.fields.filter( | CODE |
| CRITICAL | packages/v2/e2e/src/createView.e2e.spec.ts | 89 | const created = parsed.data.data.table.views.find( | CODE |
| CRITICAL | packages/v2/e2e/src/createView.e2e.spec.ts | 122 | parsed.data.data.table.views.find((view) => view.id === parsed.data.data.viewId) | CODE |
| CRITICAL | packages/v2/e2e/src/createView.e2e.spec.ts | 161 | parsed.data.data.table.views.find((view) => view.id === parsed.data.data.viewId)?.name | CODE |
| CRITICAL⚡ | packages/v2/e2e/src/formula.e2e.spec.ts | 132 | fieldParsed.data.data.table.fields.find((f) => f.name === 'Double Amount')?.id ?? ''; | CODE |
| CRITICAL⚡ | packages/v2/e2e/src/formula.e2e.spec.ts | 217 | fieldParsed.data.data.table.fields.find((f) => f.name === 'Plus Ten')?.id ?? ''; | CODE |
| CRITICAL⚡ | packages/v2/e2e/src/formula.e2e.spec.ts | 513 | fieldParsed.data.data.table.fields.find((f) => f.name === 'Upper Title')?.id ?? ''; | CODE |
| CRITICAL | packages/v2/e2e/src/formula.e2e.spec.ts | 328 | fieldParsed.data.data.table.fields.find((f) => f.name === 'Empty Check')?.id ?? ''; | CODE |
| CRITICAL | packages/v2/e2e/src/formula.e2e.spec.ts | 430 | fieldParsed.data.data.table.fields.find((f) => f.name === 'Status Formula')?.id ?? ''; | CODE |
| CRITICAL | packages/v2/e2e/src/formula.e2e.spec.ts | 596 | fieldParsed.data.data.table.fields.find((f) => f.name === 'Double Value')?.id ?? ''; | CODE |
| CRITICAL | packages/v2/e2e/src/formula.e2e.spec.ts | 677 | fieldParsed.data.data.table.fields.find((f) => f.name === 'Event Year')?.id ?? ''; | CODE |
| CRITICAL | packages/v2/e2e/src/formula.e2e.spec.ts | 759 | fieldParsed.data.data.table.fields.find((f) => f.name === 'ParsedDate')?.id ?? ''; | CODE |
| CRITICAL | packages/v2/e2e/src/formula.e2e.spec.ts | 838 | fieldParsed.data.data.table.fields.find((f) => f.name === 'Score Plus One')?.id ?? ''; | CODE |
| CRITICAL | packages/v2/e2e/src/formula.e2e.spec.ts | 919 | fieldParsed.data.data.table.fields.find((f) => f.name === 'Status')?.id ?? ''; | CODE |
| CRITICAL | packages/v2/e2e/src/formula.e2e.spec.ts | 1031 | fieldParsed.data.data.table.fields.find((f) => f.name === 'Selected Text')?.id ?? ''; | CODE |
| CRITICAL | packages/v2/e2e/src/formula.e2e.spec.ts | 1119 | fieldParsed.data.data.table.fields.find((f) => f.name === 'Joined Tags')?.id ?? ''; | CODE |
| CRITICAL | packages/v2/e2e/src/formula.e2e.spec.ts | 1198 | fieldParsed.data.data.table.fields.find((f) => f.name === 'Text Length')?.id ?? ''; | CODE |
| CRITICAL | packages/v2/e2e/src/formula.e2e.spec.ts | 1284 | fieldParsed.data.data.table.fields.find((f) => f.name === 'Assignment Status')?.id ?? ''; | CODE |
| CRITICAL | packages/v2/e2e/src/formula.e2e.spec.ts | 1382 | autoNumberParsed.data.data.table.fields.find((f) => f.name === 'Auto No')?.id ?? ''; | CODE |
| CRITICAL | packages/v2/e2e/src/formula.e2e.spec.ts | 1406 | formulaParsed.data.data.table.fields.find((f) => f.name === 'Auto Plus 1000')?.id ?? ''; | CODE |
| CRITICAL | packages/v2/e2e/src/formula.e2e.spec.ts | 1486 | createdTimeParsed.data.data.table.fields.find((f) => f.name === 'Created At')?.id ?? ''; | CODE |
| CRITICAL | packages/v2/e2e/src/formula.e2e.spec.ts | 1510 | formulaParsed.data.data.table.fields.find((f) => f.name === 'Created Year')?.id ?? ''; | CODE |
| CRITICAL | packages/v2/e2e/src/formula.e2e.spec.ts | 1588 | createdTimeParsed.data.data.table.fields.find((f) => f.type === 'createdTime')?.id ?? ''; | CODE |
| CRITICAL | packages/v2/e2e/src/formula.e2e.spec.ts | 1616 | formulaParsed.data.data.table.fields.find((f) => f.name === 'CreatedAgeDays')?.id ?? ''; | CODE |
| CRITICAL | packages/v2/e2e/src/formula.e2e.spec.ts | 1692 | lastModifiedParsed.data.data.table.fields.find((f) => f.name === 'Last Modified At')?.id ?? | CODE |
| CRITICAL | packages/v2/e2e/src/formula.e2e.spec.ts | 1717 | formulaParsed.data.data.table.fields.find((f) => f.name === 'Last Modified Date')?.id ?? ''; | CODE |
| CRITICAL | packages/v2/e2e/src/formula.e2e.spec.ts | 1825 | fieldParsed.data.data.table.fields.find((f) => f.name === 'Concat Result')?.id ?? ''; | CODE |
| CRITICAL | packages/v2/e2e/src/formula.e2e.spec.ts | 1904 | fieldParsed.data.data.table.fields.find((f) => f.name === 'Add Result')?.id ?? ''; | CODE |
| CRITICAL | packages/v2/e2e/src/formula.e2e.spec.ts | 1984 | fieldParsed.data.data.table.fields.find((f) => f.name === 'Bool Plus One')?.id ?? ''; | CODE |
| CRITICAL | packages/v2/e2e/src/formula.e2e.spec.ts | 2087 | fieldParsed.data.data.table.fields.find((f) => f.name === 'Subbed')?.id ?? ''; | CODE |
| CRITICAL | packages/v2/e2e/src/formula.e2e.spec.ts | 2173 | textSuffixParsed.data.data.table.fields.find((f) => f.name === 'TextSuffix')?.id ?? ''; | CODE |
| CRITICAL | packages/v2/e2e/src/formula.e2e.spec.ts | 2197 | textPrefixParsed.data.data.table.fields.find((f) => f.name === 'TextPrefix')?.id ?? ''; | CODE |
| CRITICAL | packages/v2/e2e/src/formula.e2e.spec.ts | 2221 | mixedParsed.data.data.table.fields.find((f) => f.name === 'Mixed')?.id ?? ''; | CODE |
| CRITICAL | packages/v2/e2e/src/formula.e2e.spec.ts | 2314 | fieldParsed.data.data.table.fields.find((f) => f.name === 'A And B')?.id ?? ''; | CODE |
| CRITICAL | packages/v2/e2e/src/formula.e2e.spec.ts | 2412 | fieldParsed.data.data.table.fields.find((f) => f.name === 'A Or B')?.id ?? ''; | CODE |
| CRITICAL | packages/v2/e2e/src/formula.e2e.spec.ts | 2508 | fieldParsed.data.data.table.fields.find((f) => f.name === 'Not A')?.id ?? ''; | CODE |
| CRITICAL | packages/v2/e2e/src/formula.e2e.spec.ts | 2608 | fieldParsed.data.data.table.fields.find((f) => f.name === 'Complex')?.id ?? ''; | CODE |
| CRITICAL | packages/v2/e2e/src/formula.e2e.spec.ts | 2727 | fieldParsed.data.data.table.fields.find((f) => f.name === 'Truthy')?.id ?? ''; | CODE |
| CRITICAL | packages/v2/e2e/src/formula.e2e.spec.ts | 2823 | fieldParsed.data.data.table.fields.find((f) => f.name === 'Truthy')?.id ?? ''; | CODE |
| CRITICAL | packages/v2/e2e/src/formula.e2e.spec.ts | 2928 | lastModifiedParsed.data.data.table.fields.find((f) => f.name === 'Tracked LMT')?.id ?? ''; | CODE |
| CRITICAL | packages/v2/e2e/src/formula.e2e.spec.ts | 3043 | lastModifiedParsed.data.data.table.fields.find((f) => f.name === 'Tracked LMT')?.id ?? ''; | CODE |
| CRITICAL | packages/v2/e2e/src/formula.e2e.spec.ts | 3157 | lastModifiedParsed.data.data.table.fields.find((f) => f.name === 'Tracked LMT')?.id ?? ''; | CODE |
| CRITICAL | packages/v2/e2e/src/formula.e2e.spec.ts | 3270 | fieldParsed.data.data.table.fields.find((f) => f.name === 'Rounded')?.id ?? ''; | CODE |
| CRITICAL | packages/v2/e2e/src/formula.e2e.spec.ts | 3351 | fieldParsed.data.data.table.fields.find((f) => f.name === 'Ceiling Value')?.id ?? ''; | CODE |
| CRITICAL | packages/v2/e2e/src/formula.e2e.spec.ts | 3432 | fieldParsed.data.data.table.fields.find((f) => f.name === 'Floor Value')?.id ?? ''; | CODE |
| CRITICAL | packages/v2/e2e/src/formula.e2e.spec.ts | 3513 | fieldParsed.data.data.table.fields.find((f) => f.name === 'Absolute Value')?.id ?? ''; | CODE |
| CRITICAL | packages/v2/e2e/src/formula.e2e.spec.ts | 3594 | fieldParsed.data.data.table.fields.find((f) => f.name === 'Square Root')?.id ?? ''; | CODE |
| CRITICAL | packages/v2/e2e/src/formula.e2e.spec.ts | 3675 | fieldParsed.data.data.table.fields.find((f) => f.name === 'Power Result')?.id ?? ''; | CODE |
| CRITICAL | packages/v2/e2e/src/formula.e2e.spec.ts | 3756 | fieldParsed.data.data.table.fields.find((f) => f.name === 'Mod Result')?.id ?? ''; | CODE |
| CRITICAL | packages/v2/e2e/src/formula.e2e.spec.ts | 3841 | fieldParsed.data.data.table.fields.find((f) => f.name === 'Max Result')?.id ?? ''; | CODE |
| CRITICAL | packages/v2/e2e/src/formula.e2e.spec.ts | 3928 | fieldParsed.data.data.table.fields.find((f) => f.name === 'Min Result')?.id ?? ''; | CODE |
| CRITICAL | packages/v2/e2e/src/formula.e2e.spec.ts | 4015 | fieldParsed.data.data.table.fields.find((f) => f.name === 'Sum Result')?.id ?? ''; | CODE |
| 208 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | packages/common-i18n/src/locales/he/sdk.json | 15 | "placeholder": "חיפוש...", | CODE |
| LOW | packages/common-i18n/src/locales/he/sdk.json | 81 | "placeholder": "בחירת תאריך", | CODE |
| LOW | packages/common-i18n/src/locales/he/sdk.json | 95 | "placeholder": "הזנת ביטוי", | CODE |
| LOW | packages/common-i18n/src/locales/he/sdk.json | 111 | "placeholder": "בחירת רשומות לקישור", | CODE |
| LOW | packages/common-i18n/src/locales/he/sdk.json | 177 | "placeholder": "הזנת ערך" | CODE |
| LOW | packages/common-i18n/src/locales/he/sdk.json | 909 | "placeholder": "כתיבת תגובה...", | CODE |
| LOW | packages/common-i18n/src/locales/he/space.json | 99 | "placeholder": "חיפוש פרויקטים או משאבים" | CODE |
| LOW | packages/common-i18n/src/locales/he/common.json | 84 | "placeholder": "חיפוש משאבים או פקודות…", | CODE |
| LOW | packages/common-i18n/src/locales/he/common.json | 366 | "placeholder": "DELETE" | CODE |
| LOW | packages/common-i18n/src/locales/he/common.json | 591 | "placeholder": "בחירת חבר ארגון או מחלקה" | CODE |
| LOW | packages/common-i18n/src/locales/he/chart.json | 21 | "placeholder": "בחירת סוג תרשים", | CODE |
| LOW | packages/common-i18n/src/locales/he/plugin.json | 31 | "placeholder": "ניתן לגרור את הלוגו לכאן או ללחוץ להעלאה", | CODE |
| LOW | packages/common-i18n/src/locales/he/dashboard.json | 11 | "placeholder": "יש להזין שם ללוח הבקרה" | CODE |
| LOW | packages/common-i18n/src/locales/he/oauth.json | 23 | "placeholder": "גרירת הלוגו לכאן או לחיצה להעלאה", | CODE |
| LOW | packages/common-i18n/src/locales/he/table.json | 419 | "placeholder": { | CODE |
| LOW | packages/common-i18n/src/locales/he/table.json | 1095 | "placeholder": { | CODE |
| LOW | packages/common-i18n/src/locales/he/auth.json | 33 | "placeholder": { | CODE |
| LOW | packages/common-i18n/src/locales/ja/sdk.json | 15 | "placeholder": "検索...", | CODE |
| LOW | packages/common-i18n/src/locales/ja/sdk.json | 81 | "placeholder": "日付を選択", | CODE |
| LOW | packages/common-i18n/src/locales/ja/sdk.json | 95 | "placeholder": "数式を入力", | CODE |
| LOW | packages/common-i18n/src/locales/ja/sdk.json | 111 | "placeholder": "リンクするレコードを選択", | CODE |
| LOW | packages/common-i18n/src/locales/ja/sdk.json | 175 | "placeholder": "値を入力してください" | CODE |
| LOW | packages/common-i18n/src/locales/ja/sdk.json | 901 | "placeholder": "コメントを残す...", | CODE |
| LOW | packages/common-i18n/src/locales/ja/space.json | 99 | "placeholder": "プロジェクトやリソースを検索" | CODE |
| LOW | packages/common-i18n/src/locales/ja/common.json | 84 | "placeholder": "リソースやコマンドを検索…", | CODE |
| LOW | packages/common-i18n/src/locales/ja/common.json | 366 | "placeholder": "DELETE" | CODE |
| LOW | packages/common-i18n/src/locales/ja/common.json | 587 | "placeholder": "組織のメンバーまたは部門を選択" | CODE |
| LOW | packages/common-i18n/src/locales/ja/chart.json | 21 | "placeholder": "チャートタイプを選択", | CODE |
| LOW | packages/common-i18n/src/locales/ja/plugin.json | 31 | "placeholder": "ロゴをここにドラッグ&ドロップするか、クリックしてアップロード", | CODE |
| LOW | packages/common-i18n/src/locales/ja/dashboard.json | 11 | "placeholder": "ダッシュボード名を入力" | CODE |
| LOW | packages/common-i18n/src/locales/ja/oauth.json | 23 | "placeholder": "ロゴをここにドラッグアンドドロップするか、クリックしてアップロードしてください", | CODE |
| LOW | packages/common-i18n/src/locales/ja/table.json | 409 | "placeholder": { | CODE |
| LOW | packages/common-i18n/src/locales/ja/table.json | 1085 | "placeholder": { | CODE |
| LOW | packages/common-i18n/src/locales/ja/auth.json | 33 | "placeholder": { | CODE |
| LOW | packages/common-i18n/src/locales/it/sdk.json | 15 | "placeholder": "Cerca...", | CODE |
| LOW | packages/common-i18n/src/locales/it/sdk.json | 81 | "placeholder": "Seleziona una data", | CODE |
| LOW | packages/common-i18n/src/locales/it/sdk.json | 95 | "placeholder": "Inserisci un'espressione", | CODE |
| LOW | packages/common-i18n/src/locales/it/sdk.json | 111 | "placeholder": "Seleziona record da collegare", | CODE |
| LOW | packages/common-i18n/src/locales/it/sdk.json | 177 | "placeholder": "Inserisci un valore" | CODE |
| LOW | packages/common-i18n/src/locales/it/sdk.json | 909 | "placeholder": "Leave a comment...", | CODE |
| LOW | packages/common-i18n/src/locales/it/space.json | 99 | "placeholder": "Cerca progetti o risorse" | CODE |
| LOW | packages/common-i18n/src/locales/it/common.json | 84 | "placeholder": "Cerca risorse o comandi…", | CODE |
| LOW | packages/common-i18n/src/locales/it/common.json | 366 | "placeholder": "DELETE" | CODE |
| LOW | packages/common-i18n/src/locales/it/common.json | 591 | "placeholder": "Seleziona membro dell'organizzazione o dipartimento" | CODE |
| LOW | packages/common-i18n/src/locales/it/chart.json | 21 | "placeholder": "Seleziona tipo di grafico", | CODE |
| LOW | packages/common-i18n/src/locales/it/plugin.json | 31 | "placeholder": "Trascina e rilascia il tuo logo qui o clicca per caricare", | CODE |
| LOW | packages/common-i18n/src/locales/it/dashboard.json | 11 | "placeholder": "Inserisci il nome della dashboard" | CODE |
| LOW | packages/common-i18n/src/locales/it/oauth.json | 23 | "placeholder": "Trascina e rilascia il tuo logo qui o clicca per caricare", | CODE |
| LOW | packages/common-i18n/src/locales/it/table.json | 419 | "placeholder": { | CODE |
| LOW | packages/common-i18n/src/locales/it/table.json | 1095 | "placeholder": { | CODE |
| LOW | packages/common-i18n/src/locales/it/auth.json | 33 | "placeholder": { | CODE |
| LOW | packages/common-i18n/src/locales/ru/sdk.json | 15 | "placeholder": "Поиск...", | CODE |
| LOW | packages/common-i18n/src/locales/ru/sdk.json | 81 | "placeholder": "Выберите дату", | CODE |
| LOW | packages/common-i18n/src/locales/ru/sdk.json | 95 | "placeholder": "Введите формулу", | CODE |
| LOW | packages/common-i18n/src/locales/ru/sdk.json | 111 | "placeholder": "Выберите записи для ссылки", | CODE |
| LOW | packages/common-i18n/src/locales/ru/sdk.json | 178 | "placeholder": "Введите значение" | CODE |
| LOW | packages/common-i18n/src/locales/ru/sdk.json | 913 | "placeholder": "Оставьте комментарий...", | CODE |
| LOW | packages/common-i18n/src/locales/ru/space.json | 99 | "placeholder": "Поиск проектов или ресурсов" | CODE |
| LOW | packages/common-i18n/src/locales/ru/common.json | 84 | "placeholder": "Поиск ресурсов или команд…", | CODE |
| LOW | packages/common-i18n/src/locales/ru/common.json | 366 | "placeholder": "DELETE" | CODE |
| 189 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | packages/core/src/utils/id-generator.ts | 146 | export function generateCredentialGrantId() { | CODE |
| LOW⚡ | packages/core/src/utils/id-generator.ts | 150 | export function generateWorkflowTriggerId() { | CODE |
| LOW⚡ | packages/core/src/utils/id-generator.ts | 158 | export function generateWorkflowDecisionId() { | CODE |
| LOW | packages/core/src/utils/id-generator.ts | 213 | export function generateAuthorityMatrixId() { | CODE |
| LOW | packages/core/src/utils/id-generator.ts | 217 | export function generateAuthorityMatrixRoleId() { | CODE |
| LOW | packages/core/src/utils/id-generator.ts | 265 | export function generateOrganizationDepartmentId() { | CODE |
| LOW | packages/core/src/utils/id-generator.ts | 277 | export function generateTemplateCategoryId() { | CODE |
| LOW | packages/core/src/utils/id-generator.ts | 313 | export function generateRoutineSnapshotId() { | CODE |
| LOW | packages/core/src/utils/id-generator.ts | 321 | export function generateConnectorEventSourceId() { | CODE |
| LOW⚡ | packages/core/src/models/channel.ts | 5 | export function getCellCollaboratorsChannel(tableId: string) { | CODE |
| LOW⚡ | packages/core/src/models/channel.ts | 9 | export function getUserNotificationChannel(userId: string) { | CODE |
| LOW⚡ | packages/core/src/models/channel.ts | 17 | export function getBasePermissionUpdateChannel(baseId: string) { | CODE |
| LOW | packages/core/src/models/channel.ts | 33 | export function getTableButtonClickChannel(tableId: string) { | CODE |
| LOW | packages/core/src/models/field/field.util.ts | 78 | function applyFieldPropertyOperation( | CODE |
| LOW | packages/core/src/models/view/filter/operator.ts | 485 | export function getValidFilterSubOperators( | CODE |
| LOW | packages/core/src/models/view/filter/field-reference.ts | 31 | export function getFieldReferenceComparisonKind(field: FieldShape): FieldReferenceComparisonKind { | CODE |
| LOW⚡ | packages/core/src/models/view/filter/field-reference.ts | 57 | export function isFieldReferenceComparable(field: FieldShape, reference: FieldShape): boolean { | CODE |
| LOW⚡ | packages/core/src/models/view/filter/field-reference.ts | 63 | export function getFieldReferenceSupportedOperators(field: FieldShape): IOperator[] { | CODE |
| LOW⚡ | packages/core/src/models/view/filter/field-reference.ts | 68 | export function isFieldReferenceOperatorSupported( | CODE |
| LOW | …ges/db-main-prisma/prisma/installUndoCaptureGlobals.ts | 7 | export async function installUndoCaptureGlobals( | CODE |
| LOW | packages/openapi/src/admin/setting/pricing.ts | 153 | export function pricingToCreditsFromUsage( | CODE |
| LOW | …es/openapi/src/ai/image-generation-input-capability.ts | 66 | export function getImageGenerationInputMode( | CODE |
| LOW | …es/openapi/src/ai/image-generation-input-capability.ts | 86 | export function supportsImageInputForImageGeneration( | CODE |
| LOW | …es/openapi/src/ai/image-generation-input-capability.ts | 96 | export function supportsImageEditPromptForImageGeneration( | CODE |
| LOW | packages/openapi/src/ai/image-model-dimensions.ts | 602 | export function getImageAspectRatioCandidates( | CODE |
| LOW | packages/openapi/src/ai/image-model-config.ts | 81 | export function getImageModelConfigByGatewayId( | CODE |
| LOW | packages/openapi/src/ai/image-model-config.ts | 203 | export function getImageModelIdFromModelKey(modelKey?: string): string | undefined { | CODE |
| LOW⚡ | packages/openapi/src/ai/image-model-config.ts | 216 | export function isPromptControlledImageGenerationModel(config: IImageModelConfig): boolean { | CODE |
| LOW⚡ | packages/openapi/src/ai/image-model-config.ts | 220 | export function supportsImageSizeSelection(config: IImageModelConfig): boolean { | CODE |
| LOW⚡ | packages/openapi/src/ai/image-model-config.ts | 228 | export function supportsImageAspectRatioSelection(config: IImageModelConfig): boolean { | CODE |
| LOW⚡ | packages/openapi/src/ai/image-model-config.ts | 236 | export function supportsImageCountSelection(config: IImageModelConfig): boolean { | CODE |
| LOW⚡ | packages/openapi/src/ai/image-model-config.ts | 240 | export function getImageResolutionCandidates(config: IImageModelConfig): IImageResolution[] { | CODE |
| LOW⚡ | packages/openapi/src/ai/image-model-config.ts | 247 | export function getSupportedImageResolution( | CODE |
| LOW⚡ | packages/openapi/src/ai/image-model-config.ts | 257 | export function getImageQualityCandidates(config: IImageModelConfig): ImageQuality[] { | CODE |
| LOW⚡ | packages/openapi/src/ai/image-model-config.ts | 262 | export function supportsImageInputForImageModel( | CODE |
| LOW | packages/openapi/src/ai/image-model-config.ts | 273 | export function supportsKnownImageInputForImageModel( | CODE |
| LOW | packages/openapi/src/ai/image-model-config.ts | 288 | export function getKnownImageModelAbility( | CODE |
| LOW | packages/openapi/src/ai/image-model-config.ts | 310 | export function getImageModelConfigByModelKey( | CODE |
| LOW | packages/v2/core/src/queries/RecordFilterMapper.ts | 338 | export function replaceCurrentUserTagInFilter( | CODE |
| LOW | packages/v2/core/src/commands/TableInputParser.ts | 292 | export function buildTableFromParsedInput( | CODE |
| LOW | …/core/src/commands/RestoreRecordsStreamHandler.spec.ts | 242 | async function collectRestoreStreamEvents(stream: AsyncIterable<RestoreRecordsStreamEvent>) { | CODE |
| LOW | …ges/v2/core/src/commands/CreateRecordsStreamHandler.ts | 148 | function toStreamCreatedEventRecords( | CODE |
| LOW | …kages/v2/core/src/domain/table/OnTeableFieldDeleted.ts | 47 | export function implementsOnTeableFieldDeleted(entity: unknown): entity is OnTeableFieldDeleted { | CODE |
| LOW | …kages/v2/core/src/domain/table/OnTeableTableDeleted.ts | 59 | export function implementsOnTeableTableDeleted(entity: unknown): entity is OnTeableTableDeleted { | CODE |
| LOW | …rc/domain/table/methods/createViewSelectionCopyPlan.ts | 143 | export function createViewSelectionCopyPlan( | CODE |
| LOW | …n/table/methods/createCollapsedGroupExclusionFilter.ts | 50 | export function createCollapsedGroupExclusionFilter( | CODE |
| LOW | …main/table/methods/createViewCollaboratorsQueryPlan.ts | 76 | export function createViewCollaboratorsQueryPlan( | CODE |
| LOW | …main/table/methods/createViewCollaboratorsQueryPlan.ts | 152 | export function createRecordCollaboratorsQueryPlan( | CODE |
| LOW | …/src/domain/table/methods/getOrderedVisibleFieldIds.ts | 73 | export function getOrderedVisibleFieldIds( | CODE |
| LOW | …domain/table/methods/createViewLinkRecordsQueryPlan.ts | 182 | export function createViewLinkRecordsQueryPlan( | CODE |
| LOW | …n/table/methods/createRecordCalendarDailyCollection.ts | 66 | export function createRecordCalendarDailyCollection( | CODE |
| LOW | …/core/src/domain/table/methods/records/updateRecord.ts | 52 | export function createUpdateRecordBuildContext(table: Table): UpdateRecordBuildContext { | CODE |
| LOW | …ges/v2/core/src/domain/table/fields/fieldPredicates.ts | 16 | export function isLastModifiedSystemField(f: Field): boolean { | CODE |
| LOW | …ges/v2/core/src/domain/table/fields/fieldPredicates.ts | 33 | export function isOmittedComputedEventField(f: Field): boolean { | CODE |
| LOW | …2/core/src/domain/table/fields/OnTeableFieldUpdated.ts | 74 | export function implementsOnTeableFieldUpdated( | CODE |
| LOW | …ore/src/domain/table/views/OnTeableViewFieldDeleted.ts | 31 | export function implementsOnTeableViewFieldDeleted( | CODE |
| LOW | …/command-explain/src/analyzers/PasteCommandAnalyzer.ts | 491 | function convertReadModelToTableRecord( | CODE |
| LOW | …v2/command-explain/src/utils/DirtyTableSetupBuilder.ts | 12 | export function buildDirtyTableSetupStatements( | CODE |
| LOW | …v2/command-explain/src/utils/DirtyTableSetupBuilder.ts | 47 | export function buildDirtyTableSetupWithPropagation( | CODE |
| LOW | …-explain/src/profile/collectSchemaComplexityProfile.ts | 123 | export function collectSchemaComplexityProfile(input: { | CODE |
| 84 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …table/records/specs/values/SetFieldValueSpecFactory.ts | 72 | // Step 2: Validate the value against the schema | COMMENT |
| LOW | …table/records/specs/values/SetFieldValueSpecFactory.ts | 95 | // Step 3: Create the SetValueSpec with the validated value | COMMENT |
| LOW | …y-postgres/src/record/computed/FieldDependencyGraph.ts | 999 | // Step 4: Build derived edges from field metadata | COMMENT |
| LOW | …cord/computed/ComputedFieldCascadeAfterSchemaUpdate.ts | 105 | // Step 1: Self-backfill computed fields whose definition changed | COMMENT |
| LOW | …ecord/query-builder/update/BatchRecordUpdateBuilder.ts | 192 | // Step 1: Process each record's mutation | COMMENT |
| LOW⚡ | …ecord/query-builder/update/BatchRecordUpdateBuilder.ts | 311 | // Step 2: Transpose data structure for batch SQL generation | COMMENT |
| LOW⚡ | …ecord/query-builder/update/BatchRecordUpdateBuilder.ts | 315 | // Step 3: Collect impact data (for now, simplified version) | COMMENT |
| LOW⚡ | …ecord/query-builder/update/BatchRecordUpdateBuilder.ts | 347 | // Step 4: Deduplicate and sort locks | COMMENT |
| LOW⚡ | …ecord/query-builder/update/BatchRecordUpdateBuilder.ts | 350 | // Step 5: Build impact structure | COMMENT |
| LOW | …tors/__tests__/TableSchemaUpdateVisitor.pglite.spec.ts | 1025 | // Step 1: Junction → FK | COMMENT |
| LOW | …tors/__tests__/TableSchemaUpdateVisitor.pglite.spec.ts | 1055 | // Step 2: FK → Junction | COMMENT |
| LOW⚡ | packages/v2/e2e/src/formula.e2e.spec.ts | 134 | // Step 3: create record | COMMENT |
| LOW⚡ | packages/v2/e2e/src/formula.e2e.spec.ts | 153 | // Step 4: process outbox to trigger formula calculation | COMMENT |
| LOW⚡ | packages/v2/e2e/src/formula.e2e.spec.ts | 156 | // Step 5: fetch records after formula calculation | COMMENT |
| LOW⚡ | packages/v2/e2e/src/formula.e2e.spec.ts | 162 | // Step 6: verify formula calculation result | COMMENT |
| LOW⚡ | packages/v2/e2e/src/formula.e2e.spec.ts | 172 | // Step 1: create table with numeric field | COMMENT |
| LOW⚡ | packages/v2/e2e/src/formula.e2e.spec.ts | 219 | // Step 3: create record | COMMENT |
| LOW⚡ | packages/v2/e2e/src/formula.e2e.spec.ts | 238 | // Step 4: process outbox to trigger formula calculation | COMMENT |
| LOW⚡ | packages/v2/e2e/src/formula.e2e.spec.ts | 241 | // Step 5: fetch records after formula calculation | COMMENT |
| LOW⚡ | packages/v2/e2e/src/formula.e2e.spec.ts | 248 | // Step 6: update record | COMMENT |
| LOW⚡ | packages/v2/e2e/src/formula.e2e.spec.ts | 266 | // Step 7: process outbox to trigger formula recalculation | COMMENT |
| LOW⚡ | packages/v2/e2e/src/formula.e2e.spec.ts | 269 | // Step 8: fetch records after formula recalculation | COMMENT |
| LOW⚡ | packages/v2/e2e/src/formula.e2e.spec.ts | 275 | // Step 9: verify formula recalculation | COMMENT |
| LOW⚡ | packages/v2/e2e/src/formula.e2e.spec.ts | 515 | // Step 3: create record | COMMENT |
| LOW⚡ | packages/v2/e2e/src/formula.e2e.spec.ts | 534 | // Step 4: process outbox to trigger formula calculation | COMMENT |
| LOW⚡ | packages/v2/e2e/src/formula.e2e.spec.ts | 537 | // Step 5: fetch records after formula calculation | COMMENT |
| LOW | packages/v2/e2e/src/formula.e2e.spec.ts | 88 | // Step 1: create table with numeric field | COMMENT |
| LOW | packages/v2/e2e/src/formula.e2e.spec.ts | 110 | // Step 2: create formula field | COMMENT |
| LOW | packages/v2/e2e/src/formula.e2e.spec.ts | 194 | // Step 2: create formula field | COMMENT |
| LOW | packages/v2/e2e/src/formula.e2e.spec.ts | 471 | // Step 1: create table | COMMENT |
| LOW | packages/v2/e2e/src/formula.e2e.spec.ts | 490 | // Step 2: create formula field | COMMENT |
| LOW | packages/v2/e2e/src/formula.e2e.spec.ts | 12538 | // Step 1: create table with numeric field | COMMENT |
| LOW | packages/v2/e2e/src/formula.e2e.spec.ts | 15086 | // Step 1: create table | COMMENT |
| LOW | packages/v2/e2e/src/formula.e2e.spec.ts | 15135 | // Step 1: create table | COMMENT |
| LOW | packages/v2/e2e/src/formula.e2e.spec.ts | 15180 | // Step 1: create table | COMMENT |
| LOW | …ckages/v2/e2e/src/field-condition-isSymbol.e2e.spec.ts | 48 | // Step 1: Create foreign table | COMMENT |
| LOW⚡ | …ckages/v2/e2e/src/field-condition-isSymbol.e2e.spec.ts | 61 | // Step 2: Create host table | COMMENT |
| LOW⚡ | …ckages/v2/e2e/src/field-condition-isSymbol.e2e.spec.ts | 70 | // Step 3: Create conditional lookup field WITH isSymbol | COMMENT |
| LOW | …ckages/v2/e2e/src/field-condition-isSymbol.e2e.spec.ts | 108 | // Step 5: Check if isSymbol is in the immediate response | COMMENT |
| LOW | …ckages/v2/e2e/src/field-condition-isSymbol.e2e.spec.ts | 129 | // Step 6: Re-fetch the table to see if isSymbol persisted | COMMENT |
| LOW⚡ | packages/v2/e2e/src/formula-datetime-format.e2e.spec.ts | 96 | // Step 3: Create record with date value | COMMENT |
| LOW⚡ | packages/v2/e2e/src/formula-datetime-format.e2e.spec.ts | 102 | // Step 4: Process outbox to compute formula | COMMENT |
| LOW⚡ | packages/v2/e2e/src/formula-datetime-format.e2e.spec.ts | 105 | // Step 5: Get record and check formula result | COMMENT |
| LOW⚡ | packages/v2/e2e/src/formula-datetime-format.e2e.spec.ts | 112 | // Step 1: Create table with date field | COMMENT |
| LOW⚡ | packages/v2/e2e/src/formula-datetime-format.e2e.spec.ts | 141 | // Step 3: Create record with date value | COMMENT |
| LOW⚡ | packages/v2/e2e/src/formula-datetime-format.e2e.spec.ts | 147 | // Step 4: Process outbox to compute formula | COMMENT |
| LOW⚡ | packages/v2/e2e/src/formula-datetime-format.e2e.spec.ts | 150 | // Step 5: Get record and check formula result | COMMENT |
| LOW⚡ | packages/v2/e2e/src/formula-datetime-format.e2e.spec.ts | 236 | // Step 3: Create record with date value | COMMENT |
| LOW⚡ | packages/v2/e2e/src/formula-datetime-format.e2e.spec.ts | 242 | // Step 4: Process outbox to compute formula | COMMENT |
| LOW⚡ | packages/v2/e2e/src/formula-datetime-format.e2e.spec.ts | 245 | // Step 5: Get record and check formula result | COMMENT |
| LOW⚡ | packages/v2/e2e/src/formula-datetime-format.e2e.spec.ts | 252 | // Step 1: Create table with date field | COMMENT |
| LOW⚡ | packages/v2/e2e/src/formula-datetime-format.e2e.spec.ts | 281 | // Step 3: Create record with date value | COMMENT |
| LOW⚡ | packages/v2/e2e/src/formula-datetime-format.e2e.spec.ts | 287 | // Step 4: Process outbox to compute formula | COMMENT |
| LOW⚡ | packages/v2/e2e/src/formula-datetime-format.e2e.spec.ts | 290 | // Step 5: Get record and check formula result | COMMENT |
| LOW⚡ | packages/v2/e2e/src/formula-datetime-format.e2e.spec.ts | 376 | // Step 3: Create record with text value | COMMENT |
| LOW⚡ | packages/v2/e2e/src/formula-datetime-format.e2e.spec.ts | 381 | // Step 4: Process outbox to compute formula | COMMENT |
| LOW⚡ | packages/v2/e2e/src/formula-datetime-format.e2e.spec.ts | 384 | // Step 5: Get record and check formula result | COMMENT |
| LOW | packages/v2/e2e/src/formula-datetime-format.e2e.spec.ts | 67 | // Step 1: Create table with date field | COMMENT |
| LOW | packages/v2/e2e/src/formula-datetime-format.e2e.spec.ts | 80 | // Step 2: Create formula field | COMMENT |
| LOW | packages/v2/e2e/src/formula-datetime-format.e2e.spec.ts | 125 | // Step 2: Create formula field | COMMENT |
| 33 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …table/records/specs/values/SetFieldValueSpecFactory.ts | 72 | // Step 2: Validate the value against the schema | COMMENT |
| LOW | …table/records/specs/values/SetFieldValueSpecFactory.ts | 95 | // Step 3: Create the SetValueSpec with the validated value | COMMENT |
| LOW | …y-postgres/src/record/computed/FieldDependencyGraph.ts | 999 | // Step 4: Build derived edges from field metadata | COMMENT |
| LOW | …cord/computed/ComputedFieldCascadeAfterSchemaUpdate.ts | 105 | // Step 1: Self-backfill computed fields whose definition changed | COMMENT |
| LOW | …ecord/query-builder/update/BatchRecordUpdateBuilder.ts | 192 | // Step 1: Process each record's mutation | COMMENT |
| LOW⚡ | …ecord/query-builder/update/BatchRecordUpdateBuilder.ts | 311 | // Step 2: Transpose data structure for batch SQL generation | COMMENT |
| LOW⚡ | …ecord/query-builder/update/BatchRecordUpdateBuilder.ts | 315 | // Step 3: Collect impact data (for now, simplified version) | COMMENT |
| LOW⚡ | …ecord/query-builder/update/BatchRecordUpdateBuilder.ts | 347 | // Step 4: Deduplicate and sort locks | COMMENT |
| LOW⚡ | …ecord/query-builder/update/BatchRecordUpdateBuilder.ts | 350 | // Step 5: Build impact structure | COMMENT |
| LOW | …tors/__tests__/TableSchemaUpdateVisitor.pglite.spec.ts | 1025 | // Step 1: Junction → FK | COMMENT |
| LOW | …tors/__tests__/TableSchemaUpdateVisitor.pglite.spec.ts | 1055 | // Step 2: FK → Junction | COMMENT |
| LOW⚡ | packages/v2/e2e/src/formula.e2e.spec.ts | 134 | // Step 3: create record | COMMENT |
| LOW⚡ | packages/v2/e2e/src/formula.e2e.spec.ts | 153 | // Step 4: process outbox to trigger formula calculation | COMMENT |
| LOW⚡ | packages/v2/e2e/src/formula.e2e.spec.ts | 156 | // Step 5: fetch records after formula calculation | COMMENT |
| LOW⚡ | packages/v2/e2e/src/formula.e2e.spec.ts | 162 | // Step 6: verify formula calculation result | COMMENT |
| LOW⚡ | packages/v2/e2e/src/formula.e2e.spec.ts | 172 | // Step 1: create table with numeric field | COMMENT |
| LOW⚡ | packages/v2/e2e/src/formula.e2e.spec.ts | 219 | // Step 3: create record | COMMENT |
| LOW⚡ | packages/v2/e2e/src/formula.e2e.spec.ts | 238 | // Step 4: process outbox to trigger formula calculation | COMMENT |
| LOW⚡ | packages/v2/e2e/src/formula.e2e.spec.ts | 241 | // Step 5: fetch records after formula calculation | COMMENT |
| LOW⚡ | packages/v2/e2e/src/formula.e2e.spec.ts | 248 | // Step 6: update record | COMMENT |
| LOW⚡ | packages/v2/e2e/src/formula.e2e.spec.ts | 266 | // Step 7: process outbox to trigger formula recalculation | COMMENT |
| LOW⚡ | packages/v2/e2e/src/formula.e2e.spec.ts | 269 | // Step 8: fetch records after formula recalculation | COMMENT |
| LOW⚡ | packages/v2/e2e/src/formula.e2e.spec.ts | 275 | // Step 9: verify formula recalculation | COMMENT |
| LOW⚡ | packages/v2/e2e/src/formula.e2e.spec.ts | 515 | // Step 3: create record | COMMENT |
| LOW⚡ | packages/v2/e2e/src/formula.e2e.spec.ts | 534 | // Step 4: process outbox to trigger formula calculation | COMMENT |
| LOW⚡ | packages/v2/e2e/src/formula.e2e.spec.ts | 537 | // Step 5: fetch records after formula calculation | COMMENT |
| LOW | packages/v2/e2e/src/formula.e2e.spec.ts | 88 | // Step 1: create table with numeric field | COMMENT |
| LOW | packages/v2/e2e/src/formula.e2e.spec.ts | 110 | // Step 2: create formula field | COMMENT |
| LOW | packages/v2/e2e/src/formula.e2e.spec.ts | 194 | // Step 2: create formula field | COMMENT |
| LOW | packages/v2/e2e/src/formula.e2e.spec.ts | 471 | // Step 1: create table | COMMENT |
| LOW | packages/v2/e2e/src/formula.e2e.spec.ts | 490 | // Step 2: create formula field | COMMENT |
| LOW | packages/v2/e2e/src/formula.e2e.spec.ts | 12538 | // Step 1: create table with numeric field | COMMENT |
| LOW | packages/v2/e2e/src/formula.e2e.spec.ts | 15086 | // Step 1: create table | COMMENT |
| LOW | packages/v2/e2e/src/formula.e2e.spec.ts | 15135 | // Step 1: create table | COMMENT |
| LOW | packages/v2/e2e/src/formula.e2e.spec.ts | 15180 | // Step 1: create table | COMMENT |
| LOW | …ckages/v2/e2e/src/field-condition-isSymbol.e2e.spec.ts | 48 | // Step 1: Create foreign table | COMMENT |
| LOW⚡ | …ckages/v2/e2e/src/field-condition-isSymbol.e2e.spec.ts | 61 | // Step 2: Create host table | COMMENT |
| LOW⚡ | …ckages/v2/e2e/src/field-condition-isSymbol.e2e.spec.ts | 70 | // Step 3: Create conditional lookup field WITH isSymbol | COMMENT |
| LOW | …ckages/v2/e2e/src/field-condition-isSymbol.e2e.spec.ts | 108 | // Step 5: Check if isSymbol is in the immediate response | COMMENT |
| LOW | …ckages/v2/e2e/src/field-condition-isSymbol.e2e.spec.ts | 129 | // Step 6: Re-fetch the table to see if isSymbol persisted | COMMENT |
| LOW⚡ | packages/v2/e2e/src/formula-datetime-format.e2e.spec.ts | 96 | // Step 3: Create record with date value | COMMENT |
| LOW⚡ | packages/v2/e2e/src/formula-datetime-format.e2e.spec.ts | 102 | // Step 4: Process outbox to compute formula | COMMENT |
| LOW⚡ | packages/v2/e2e/src/formula-datetime-format.e2e.spec.ts | 105 | // Step 5: Get record and check formula result | COMMENT |
| LOW⚡ | packages/v2/e2e/src/formula-datetime-format.e2e.spec.ts | 112 | // Step 1: Create table with date field | COMMENT |
| LOW⚡ | packages/v2/e2e/src/formula-datetime-format.e2e.spec.ts | 141 | // Step 3: Create record with date value | COMMENT |
| LOW⚡ | packages/v2/e2e/src/formula-datetime-format.e2e.spec.ts | 147 | // Step 4: Process outbox to compute formula | COMMENT |
| LOW⚡ | packages/v2/e2e/src/formula-datetime-format.e2e.spec.ts | 150 | // Step 5: Get record and check formula result | COMMENT |
| LOW⚡ | packages/v2/e2e/src/formula-datetime-format.e2e.spec.ts | 236 | // Step 3: Create record with date value | COMMENT |
| LOW⚡ | packages/v2/e2e/src/formula-datetime-format.e2e.spec.ts | 242 | // Step 4: Process outbox to compute formula | COMMENT |
| LOW⚡ | packages/v2/e2e/src/formula-datetime-format.e2e.spec.ts | 245 | // Step 5: Get record and check formula result | COMMENT |
| LOW⚡ | packages/v2/e2e/src/formula-datetime-format.e2e.spec.ts | 252 | // Step 1: Create table with date field | COMMENT |
| LOW⚡ | packages/v2/e2e/src/formula-datetime-format.e2e.spec.ts | 281 | // Step 3: Create record with date value | COMMENT |
| LOW⚡ | packages/v2/e2e/src/formula-datetime-format.e2e.spec.ts | 287 | // Step 4: Process outbox to compute formula | COMMENT |
| LOW⚡ | packages/v2/e2e/src/formula-datetime-format.e2e.spec.ts | 290 | // Step 5: Get record and check formula result | COMMENT |
| LOW⚡ | packages/v2/e2e/src/formula-datetime-format.e2e.spec.ts | 376 | // Step 3: Create record with text value | COMMENT |
| LOW⚡ | packages/v2/e2e/src/formula-datetime-format.e2e.spec.ts | 381 | // Step 4: Process outbox to compute formula | COMMENT |
| LOW⚡ | packages/v2/e2e/src/formula-datetime-format.e2e.spec.ts | 384 | // Step 5: Get record and check formula result | COMMENT |
| LOW | packages/v2/e2e/src/formula-datetime-format.e2e.spec.ts | 67 | // Step 1: Create table with date field | COMMENT |
| LOW | packages/v2/e2e/src/formula-datetime-format.e2e.spec.ts | 80 | // Step 2: Create formula field | COMMENT |
| LOW | packages/v2/e2e/src/formula-datetime-format.e2e.spec.ts | 125 | // Step 2: Create formula field | COMMENT |
| 33 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | lint-staged.common.js | 1 | // @ts-check | COMMENT |
| LOW | packages/db-main-prisma/src/prisma.service.ts | 61 | const logConfig = { | COMMENT |
| LOW | packages/openapi/src/admin/setting/get-public.ts | 61 | // Whether the login page offers "sign in with email code": password login is | COMMENT |
| LOW | …ord/computed/activity/ComputedActivityReadCoalescer.ts | 1 | COMMENT | |
| LOW | …/record/computed/activity/ComputedActivityProjector.ts | 61 | // cross-connection cycle that PostgreSQL's deadlock detector cannot see: the gate holder | COMMENT |
| LOW | …/record/computed/activity/ComputedActivityProjector.ts | 81 | const DEFAULT_ACTIVITY_ADVISORY_LOCK_CONTENTION_LOG_INTERVAL_MS = 60_000; | COMMENT |
| LOW | …rd/computed/activity/PostgresComputedActivityReader.ts | 201 | // Per-pod, per-table gate on read-time reconcile attempts. The advisory lock | COMMENT |
| LOW | …src/record/query-builder/insert/RecordInsertBuilder.ts | 401 | continue; | COMMENT |
| LOW | packages/v2/e2e/src/aggregate-records.e2e.spec.ts | 101 | let ratingFieldId: string; | COMMENT |
| LOW | …/src/computed-switch-mixed-branch-backfill.e2e.spec.ts | 261 | // - SWITCH over a singleSelect with three string-literal result branches | COMMENT |
| LOW | apps/nestjs-backend/test/table-duplicate.e2e-spec.ts | 261 | COMMENT | |
| LOW | apps/nestjs-backend/src/tracing.ts | 201 | const logExporter = logEndpoint | COMMENT |
| LOW | apps/nestjs-backend/src/tracing.ts | 341 | // Metric views — control auto-instrumented metrics we can't change at source. | COMMENT |
| LOW | …stjs-backend/src/middleware/session-csrf.middleware.ts | 21 | // victim enters next lands there. They run before any session cookie exists, so the | COMMENT |
| LOW | apps/nestjs-backend/src/types/cls.ts | 61 | // Queries: `WHERE origin->>'via' = 'app'` etc. Extensible (webhook/mcp/...). | COMMENT |
| LOW | apps/nestjs-backend/src/types/cls.ts | 161 | // cache for data-db routing resolution (table/base → spaceId, space → resolved | COMMENT |
| LOW | apps/nestjs-backend/src/share-db/share-db.spec.ts | 81 | // if (error) throw error; | COMMENT |
| LOW | …js-backend/src/share-db/metrics/compression-metrics.ts | 1 | import { metrics } from '@opentelemetry/api'; | COMMENT |
| LOW | …s/aggregation/open-api/aggregation-open-api.service.ts | 141 | ) { | COMMENT |
| LOW | …rc/features/airtable-import/airtable-import.service.ts | 1121 | await response.body.cancel(); | COMMENT |
| LOW | …ecord-removal-cold/record-removal-tombstone.service.ts | 1 | import { Injectable } from '@nestjs/common'; | COMMENT |
| LOW | …ures/record-removal-cold/record-removal-cold.config.ts | 21 | // plan read window (14/365/1095d) is a read-time filter over the merged | COMMENT |
| LOW | …ures/record-removal-cold/record-removal-cold.config.ts | 41 | // own queue job and lands on whatever worker is free | COMMENT |
| LOW | …ures/record-removal-cold/record-removal-cold.config.ts | 61 | // cell-value maximum, so no legitimate max-size cell is ever truncated; | COMMENT |
| LOW | …/record-removal-cold/record-removal-flusher.service.ts | 801 | truncatedRows, | COMMENT |
| LOW | …/record-removal-cold/record-removal-flusher.service.ts | 1061 | // serialization failure or timeout: rows stay buffered, next run retries | COMMENT |
| LOW | …/record-removal-cold/record-removal-flusher.service.ts | 1121 | COMMENT | |
| LOW | …backend/src/features/record-removal-cold/part-codec.ts | 1 | import type { Readable } from 'node:stream'; | COMMENT |
| LOW | …backend/src/features/record-removal-cold/part-codec.ts | 181 | bucket: IPartBucket | COMMENT |
| LOW | …s/record-removal-cold/record-removal-cold.processor.ts | 61 | } | COMMENT |
| LOW | …ecord-removal-cold/record-removal-compactor.service.ts | 41 | // fresh month parts, deduplicated by row id and canonically ordered via an | COMMENT |
| LOW | …ecord-removal-cold/record-removal-cold-read.service.ts | 221 | } | COMMENT |
| LOW | …ecord-removal-cold/record-removal-cold-read.service.ts | 421 | if (f.removedTimeEnd && lo > f.removedTimeEnd) return 'stop'; | COMMENT |
| LOW | …ackend/src/features/cold-archive/compaction-pending.ts | 1 | import ms from 'ms'; | COMMENT |
| LOW | …/record-history-cold/record-history-flusher.service.ts | 841 | ) { | COMMENT |
| LOW | …s/record-history-cold/record-history-cold.processor.ts | 61 | // feature was disabled everywhere" from "other pods still run it", | COMMENT |
| LOW | …-backend/src/features/calculation/link.service.spec.ts | 61 | // tableA: { | COMMENT |
| LOW | …-backend/src/features/calculation/link.service.spec.ts | 81 | // relationship: Relationship.OneMany, | COMMENT |
| LOW | …-backend/src/features/calculation/link.service.spec.ts | 101 | // const result1 = service['getRecordMapStructAndForeignKeyParams']( | COMMENT |
| LOW | …-backend/src/features/calculation/link.service.spec.ts | 121 | // dbForeignKeyName: '__fk_ManyOne-LinkB', | COMMENT |
| LOW | …-backend/src/features/calculation/link.service.spec.ts | 141 | // ctx1 | COMMENT |
| LOW | …-backend/src/features/calculation/link.service.spec.ts | 161 | // }, | COMMENT |
| LOW | …-backend/src/features/calculation/link.service.spec.ts | 181 | // expect(result1.recordMapByTableId).toEqual({ | COMMENT |
| LOW | …-backend/src/features/calculation/link.service.spec.ts | 201 | // fRecordId: 'B2', | COMMENT |
| LOW | …-backend/src/features/calculation/link.service.spec.ts | 221 | // tableA: { | COMMENT |
| LOW | …-backend/src/features/calculation/link.service.spec.ts | 241 | COMMENT | |
| LOW | …-backend/src/features/calculation/link.service.spec.ts | 261 | // tableB: { B1: { fieldB: undefined, 'OneMany-LinkA': undefined } }, | COMMENT |
| LOW | …-backend/src/features/calculation/link.service.spec.ts | 281 | // { | COMMENT |
| LOW | …-backend/src/features/calculation/link.service.spec.ts | 301 | // }); | COMMENT |
| LOW | …-backend/src/features/calculation/link.service.spec.ts | 321 | // foreignTableLookupFieldId: 'fieldB', | COMMENT |
| LOW | …-backend/src/features/calculation/link.service.spec.ts | 341 | // const ctx1: ILinkCellContext[] = [ | COMMENT |
| LOW | …-backend/src/features/calculation/link.service.spec.ts | 361 | // const recordMapByTableId = { | COMMENT |
| LOW | …-backend/src/features/calculation/link.service.spec.ts | 381 | // mainLinkFieldId: 'ManyOne-LinkB', | COMMENT |
| LOW | …-backend/src/features/calculation/link.service.spec.ts | 401 | // '__fk_ManyOne-LinkB': 'B1', | COMMENT |
| LOW | …-backend/src/features/calculation/link.service.spec.ts | 421 | // }, | COMMENT |
| LOW | …-backend/src/features/calculation/link.service.spec.ts | 441 | // }, | COMMENT |
| LOW | …-backend/src/features/calculation/link.service.spec.ts | 461 | // }, | COMMENT |
| LOW | …-backend/src/features/calculation/link.service.spec.ts | 481 | // fieldB: 'B2', | COMMENT |
| LOW | …-backend/src/features/calculation/link.service.spec.ts | 501 | // const result1 = service['updateForeignKeyInMemory']( | COMMENT |
| LOW | …-backend/src/features/calculation/link.service.spec.ts | 521 | // 'OneMany-LinkA': [{ id: 'A1', title: 'A1' }], | COMMENT |
| 25 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | packages/v2/e2e/src/link-migration-compat.e2e.spec.ts | 50 | // ═══════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | packages/v2/e2e/src/link-migration-compat.e2e.spec.ts | 52 | // ═══════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | packages/v2/e2e/src/link-migration-compat.e2e.spec.ts | 304 | // ═══════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | packages/v2/e2e/src/link-migration-compat.e2e.spec.ts | 306 | // ═══════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | packages/v2/e2e/src/link-migration-compat.e2e.spec.ts | 475 | // ═══════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | packages/v2/e2e/src/link-migration-compat.e2e.spec.ts | 478 | // ═══════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | apps/nestjs-backend/src/tracing.ts | 340 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | apps/nestjs-backend/src/tracing.ts | 346 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …res/app/blocks/setting/query-builder/codeGenerators.ts | 128 | print(response.json()) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …ostgres/src/record/visitors/FieldInsertValueVisitor.ts | 271 | // This is more robust than ON CONFLICT which requires a unique constraint | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | packages/core/src/asserts/asserts.ts | 70 | * function doSomething(arg: Union) { | COMMENT |