The all-in-one, open-source backend platform for agentic coding. InsForge gives your coding agent database, auth, storage, compute, hosting, and AI gateway to ship full-stack apps end-to-end.
This report summarizes scanner evidence for InsForge/InsForge, a TypeScript project with 13,274 GitHub stars. SynthScan examined 296,014 lines of code across 1306 source files, recording 562 pattern matches distributed across 18 syntactic categories. The legacy adjusted pattern signal is 4.0 (Low pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.
Can maintainers explain intent, assumptions, and trade-offs? 240 finding(s).
Are imports declared and package/API names verified? 140 finding(s).
Are wrappers, guards, and repeated structures necessary? 296 finding(s).
Which changes need focused human review? 562 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 562 distinct pattern matches across 18 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 |
|---|---|---|---|---|
| MEDIUM | docker-compose.yml | 165 | # ─── Custom Compute: Docker provider (opt-in) ────────────────────────── | COMMENT |
| MEDIUM | docker-compose.prod.yml | 152 | # ─── Custom Compute: Docker provider (opt-in) ────────────────────────── | COMMENT |
| MEDIUM | deploy/dokploy/docker-compose.yml | 106 | # ─── Custom Compute: Docker provider (opt-in) ────────────────────────── | COMMENT |
| MEDIUM | deploy/coolify/docker-compose.yml | 117 | # ─── Custom Compute: Docker provider (opt-in) ────────────────────────── | COMMENT |
| MEDIUM | deploy/docker-compose/docker-compose.yml | 145 | # ─── Custom Compute: Docker provider (opt-in) ──────────────────────── | COMMENT |
| MEDIUM | …nd/tests/unit/schedules-http-timeout-migration.test.ts | 20 | // ── idempotency ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …nd/tests/unit/schedules-http-timeout-migration.test.ts | 38 | // ── HTTP timeouts are configured ───────────────────────────────────── | COMMENT |
| MEDIUM | …nd/tests/unit/schedules-http-timeout-migration.test.ts | 56 | // ── still uses the existing http extension (not pg_net) ────────────── | COMMENT |
| MEDIUM | …nd/tests/unit/schedules-http-timeout-migration.test.ts | 68 | // ── preserves the existing exception path ──────────────────────────── | COMMENT |
| MEDIUM | …nd/tests/unit/schedules-http-timeout-migration.test.ts | 73 | // ── ordering ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …/unit/secrets-deduplicate-and-unique-migration.test.ts | 55 | // ── Step 1: Dedupe ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …/unit/secrets-deduplicate-and-unique-migration.test.ts | 104 | // ── Step 2: UNIQUE(key) constraint ──────────────────────────────────── | COMMENT |
| MEDIUM | …/unit/secrets-deduplicate-and-unique-migration.test.ts | 150 | // ── Safety: no destructive operations ───────────────────────────────── | COMMENT |
| MEDIUM | …ests/unit/consolidate-retention-jobs-migration.test.ts | 29 | // ── schedules config table ──────────────────────────────────────── | COMMENT |
| MEDIUM | …ests/unit/consolidate-retention-jobs-migration.test.ts | 39 | // ── cleanup function ────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ests/unit/consolidate-retention-jobs-migration.test.ts | 64 | // ── idempotency ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ests/unit/consolidate-retention-jobs-migration.test.ts | 93 | // ── schedule configuration ──────────────────────────────────────── | COMMENT |
| MEDIUM | …ests/unit/consolidate-retention-jobs-migration.test.ts | 118 | // ── ordering ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | backend/tests/unit/database-backups-migration.test.ts | 19 | // ── Idempotency guards ─────────────────────────────────────────────── | COMMENT |
| MEDIUM | backend/tests/unit/database-backups-migration.test.ts | 38 | // ── Structure ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | backend/tests/unit/database-config-migration.test.ts | 19 | // ── Idempotency guards ─────────────────────────────────────────────── | COMMENT |
| MEDIUM | backend/tests/unit/database-config-migration.test.ts | 46 | // ── Structure ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …nd/tests/unit/redirect-url-whitelist-migration.test.ts | 19 | // ── Idempotent rename ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | …nd/tests/unit/redirect-url-whitelist-migration.test.ts | 32 | // ── Trigger idempotency ────────────────────────────────────────────── | COMMENT |
| MEDIUM | …nd/tests/unit/redirect-url-whitelist-migration.test.ts | 45 | // ── allowed_redirect_urls column ───────────────────────────────────── | COMMENT |
| MEDIUM | …nd/tests/unit/redirect-url-whitelist-migration.test.ts | 52 | // ── sign_in_redirect_to migration is guarded ───────────────────────── | COMMENT |
| MEDIUM | …nd/tests/unit/redirect-url-whitelist-migration.test.ts | 64 | // ── email_otps redirect_to column ──────────────────────────────────── | COMMENT |
| MEDIUM | …nd/tests/unit/redirect-url-whitelist-migration.test.ts | 71 | // ── Ordering ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | backend/tests/unit/app.config.test.ts | 49 | // ═══════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM⚡ | backend/tests/unit/app.config.test.ts | 51 | // ═══════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | backend/tests/unit/app.config.test.ts | 77 | // ── PORT regression ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | backend/tests/unit/app.config.test.ts | 91 | // ═══════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | backend/tests/unit/app.config.test.ts | 93 | // ═══════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | backend/tests/unit/app.config.test.ts | 133 | // ═══════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | backend/tests/unit/app.config.test.ts | 135 | // ═══════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | backend/tests/unit/app.config.test.ts | 174 | // ═══════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | backend/tests/unit/app.config.test.ts | 176 | // ═══════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | backend/tests/unit/app.config.test.ts | 206 | // ═══════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | backend/tests/unit/app.config.test.ts | 208 | // ═══════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | backend/tests/unit/app.config.test.ts | 232 | // ═══════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | backend/tests/unit/app.config.test.ts | 234 | // ═══════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | backend/tests/unit/app.config.test.ts | 341 | // ═══════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | backend/tests/unit/app.config.test.ts | 343 | // ═══════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | backend/tests/unit/app.config.test.ts | 414 | // ═══════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | backend/tests/unit/app.config.test.ts | 416 | // ═══════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | backend/tests/unit/app.config.test.ts | 464 | // ═══════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | backend/tests/unit/app.config.test.ts | 466 | // ═══════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | backend/tests/unit/app.config.test.ts | 502 | // ── storage.appKey regression ───────────────────────────────────────────── | COMMENT |
| MEDIUM | backend/tests/unit/app.config.test.ts | 609 | // ═══════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | backend/tests/unit/app.config.test.ts | 611 | // ═══════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | backend/tests/unit/app.config.test.ts | 625 | // ═══════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | backend/tests/unit/app.config.test.ts | 627 | // ═══════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | backend/tests/unit/app.config.test.ts | 676 | // ═══════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | backend/tests/unit/app.config.test.ts | 678 | // ═══════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | backend/tests/unit/app.config.test.ts | 692 | // ═══════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | backend/tests/unit/app.config.test.ts | 694 | // ═══════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | …/tests/unit/storage-third-party-auth-migration.test.ts | 19 | // ── FK drop is idempotent ──────────────────────────────────────────── | COMMENT |
| MEDIUM | …/tests/unit/storage-third-party-auth-migration.test.ts | 26 | // ── Column widen is idempotent ─────────────────────────────────────── | COMMENT |
| MEDIUM | …/tests/unit/storage-third-party-auth-migration.test.ts | 41 | // ── Path helpers use CREATE OR REPLACE ─────────────────────────────── | COMMENT |
| MEDIUM | …/tests/unit/storage-third-party-auth-migration.test.ts | 54 | // ── auth.jwt() helper ──────────────────────────────────────────────── | COMMENT |
| 119 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | backend/tests/unit/oauth-native-client-ids.test.ts | 93 | const insertCall = mocks.client.query.mock.calls.find( | CODE |
| CRITICAL | backend/tests/unit/oauth-native-client-ids.test.ts | 129 | const updateCall = mocks.client.query.mock.calls.find( | CODE |
| CRITICAL⚡ | backend/tests/unit/auth-email-otp.service.test.ts | 222 | const insertCall = mocks.client.query.mock.calls.find( | CODE |
| CRITICAL⚡ | backend/tests/unit/auth-email-otp.service.test.ts | 233 | mocks.client.query.mock.calls.some( | CODE |
| CRITICAL⚡ | backend/tests/unit/auth-email-otp.service.test.ts | 278 | mocks.client.query.mock.calls.some( | CODE |
| CRITICAL⚡ | backend/tests/unit/auth-email-otp.service.test.ts | 283 | mocks.client.query.mock.calls.some( | CODE |
| CRITICAL⚡ | backend/tests/unit/auth-email-otp.service.test.ts | 340 | const insertCall = mocks.client.query.mock.calls.find( | CODE |
| CRITICAL⚡ | backend/tests/unit/auth-email-otp.service.test.ts | 345 | mocks.client.query.mock.calls.filter( | CODE |
| CRITICAL⚡ | backend/tests/unit/auth-email-otp.service.test.ts | 350 | mocks.client.query.mock.calls.some( | CODE |
| CRITICAL | backend/tests/unit/auth-email-otp.service.test.ts | 257 | const updateCall = mocks.client.query.mock.calls.find( | CODE |
| CRITICAL | backend/tests/unit/auth-email-otp.service.test.ts | 308 | mocks.client.query.mock.calls.some( | CODE |
| CRITICAL | backend/tests/unit/auth-otp-attempts.test.ts | 234 | const sql = mocks.client.query.mock.calls.map(([q]) => q); | CODE |
| CRITICAL | backend/tests/unit/auth-otp-attempts.test.ts | 255 | const sql = mocks.client.query.mock.calls.map(([q]) => q); | CODE |
| CRITICAL | backend/tests/unit/auth-otp-attempts.test.ts | 275 | const sql = mocks.client.query.mock.calls.map(([q]) => q); | CODE |
| CRITICAL | backend/src/infra/socket/socket.manager.ts | 548 | return this.io.sockets.adapter.rooms.get(room)?.size || 0; | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .archive/docs/deprecated/insforge-auth-api.md | 16 | Body: `{"email": "user@example.com", "password": "password", "name": "User Name"}` | CODE |
| LOW | .archive/docs/deprecated/insforge-auth-api.md | 25 | Body: `{"email": "user@example.com", "password": "password"}` | CODE |
| LOW | .archive/docs/deprecated/insforge-db-api.md | 90 | "name": "John Doe", | CODE |
| LOW | .archive/docs/deprecated/insforge-db-api.md | 106 | "name": "John Doe", | CODE |
| LOW | backend/tests/unit/auth-create-user-route.test.ts | 127 | const validBody = { email: 'test@test.com', password: 'Pass1234', name: 'Test' }; | CODE |
| LOW | …end/tests/unit/auth-oauth-unsupported-provider.test.ts | 55 | email: 'test@test.com', | CODE |
| LOW | …end/tests/unit/auth-oauth-unsupported-provider.test.ts | 63 | email: 'test@test.com', | CODE |
| LOW⚡ | backend/tests/unit/smtp-link-validation.test.ts | 69 | await provider.sendWithTemplate('user@example.com', 'App', 'email-verification-link', { | CODE |
| LOW⚡ | backend/tests/unit/smtp-link-validation.test.ts | 78 | await provider.sendWithTemplate('user@example.com', 'App', 'email-verification-link', { | CODE |
| LOW⚡ | backend/tests/unit/smtp-link-validation.test.ts | 87 | await provider.sendWithTemplate('user@example.com', 'App', 'email-verification-link', { | CODE |
| LOW⚡ | backend/tests/unit/smtp-link-validation.test.ts | 97 | await provider.sendWithTemplate('user@example.com', 'App', 'email-verification-link', { | CODE |
| LOW⚡ | backend/tests/unit/smtp-link-validation.test.ts | 107 | await provider.sendWithTemplate('user@example.com', 'App', 'email-verification-link', { | CODE |
| LOW⚡ | backend/tests/unit/smtp-link-validation.test.ts | 116 | await provider.sendWithTemplate('user@example.com', 'App', 'email-verification-link', { | CODE |
| LOW | backend/tests/unit/email.test.ts | 88 | 'user@example.com', | CODE |
| LOW | backend/tests/unit/email.test.ts | 89 | 'John Doe', | CODE |
| LOW | backend/tests/unit/email.test.ts | 101 | email: 'user@example.com', | CODE |
| LOW | backend/tests/unit/email.test.ts | 102 | name: 'John Doe', | CODE |
| LOW | backend/tests/unit/email.test.ts | 122 | 'user@example.com', | CODE |
| LOW | backend/tests/unit/email.test.ts | 123 | 'John Doe', | CODE |
| LOW | backend/tests/unit/email.test.ts | 143 | await emailService.sendWithTemplate('user@example.com', 'Jane Smith', 'reset-password-code', { | CODE |
| LOW | backend/tests/unit/email.test.ts | 162 | await emailService.sendWithTemplate('user@example.com', 'Jane Smith', 'reset-password-link', { | CODE |
| LOW | backend/tests/unit/email.test.ts | 181 | emailService.sendWithTemplate('user@example.com', 'John', 'email-verification-code', { | CODE |
| LOW | backend/tests/unit/email.test.ts | 187 | emailService.sendWithTemplate('user@example.com', 'John', 'email-verification-code', { | CODE |
| LOW | backend/tests/unit/email.test.ts | 201 | emailService.sendWithTemplate('user@example.com', 'John', 'email-verification-code', { | CODE |
| LOW | backend/tests/unit/email.test.ts | 207 | emailService.sendWithTemplate('user@example.com', 'John', 'email-verification-code', { | CODE |
| LOW | backend/tests/unit/email.test.ts | 222 | emailService.sendWithTemplate('user@example.com', '', 'email-verification-code') | CODE |
| LOW | backend/tests/unit/email.test.ts | 229 | 'user@example.com', | CODE |
| LOW | backend/tests/unit/email.test.ts | 244 | emailService.sendWithTemplate('user@example.com', 'John', 'email-verification-code', { | CODE |
| LOW | backend/tests/unit/email.test.ts | 263 | emailService.sendWithTemplate('user@example.com', 'John', 'email-verification-code', { | CODE |
| LOW | backend/tests/unit/email.test.ts | 282 | emailService.sendWithTemplate('user@example.com', 'John', 'email-verification-code', { | CODE |
| LOW | backend/tests/unit/email.test.ts | 301 | emailService.sendWithTemplate('user@example.com', 'John', 'email-verification-code', { | CODE |
| LOW | backend/tests/unit/email.test.ts | 320 | emailService.sendWithTemplate('user@example.com', 'John', 'email-verification-code', { | CODE |
| LOW | backend/tests/unit/email.test.ts | 339 | emailService.sendWithTemplate('user@example.com', 'John', 'email-verification-code', { | CODE |
| LOW | backend/tests/unit/email.test.ts | 354 | emailService.sendWithTemplate('user@example.com', 'John', 'email-verification-code', { | CODE |
| LOW | backend/tests/unit/email.test.ts | 364 | emailService.sendWithTemplate('user@example.com', 'John', 'email-verification-code', { | CODE |
| LOW | backend/tests/unit/email.test.ts | 378 | 'user@example.com', | CODE |
| LOW | backend/tests/unit/email.test.ts | 379 | 'John Doe', | CODE |
| LOW | backend/tests/unit/email.test.ts | 400 | emailService.sendWithTemplate('user@example.com', 'John', 'email-verification-code', { | CODE |
| LOW | backend/tests/unit/smtp-schemas.test.ts | 45 | senderEmail: 'test@test.com', | CODE |
| LOW | backend/tests/unit/smtp-schemas.test.ts | 59 | senderEmail: 'test@test.com', | CODE |
| LOW | backend/tests/unit/smtp-schemas.test.ts | 71 | senderEmail: 'test@test.com', | CODE |
| LOW | backend/tests/unit/smtp-schemas.test.ts | 83 | senderEmail: 'test@test.com', | CODE |
| LOW | backend/tests/unit/smtp-schemas.test.ts | 107 | senderEmail: 'test@test.com', | CODE |
| LOW | backend/tests/unit/smtp-schemas.test.ts | 119 | senderEmail: 'test@test.com', | CODE |
| LOW | backend/tests/unit/auth-email-otp-route.test.ts | 57 | email: 'user@example.com', | CODE |
| LOW⚡ | backend/tests/unit/auth-email-otp-route.test.ts | 143 | expect(mocks.sendSignInOTP).toHaveBeenCalledWith('user@example.com'); | CODE |
| LOW⚡ | backend/tests/unit/auth-email-otp-route.test.ts | 149 | email: 'user@example.com', | CODE |
| LOW⚡ | backend/tests/unit/auth-email-otp-route.test.ts | 159 | expect(mocks.signInWithOTP).toHaveBeenCalledWith('user@example.com', '123456', 'Ada'); | CODE |
| LOW⚡ | backend/tests/unit/auth-email-otp-route.test.ts | 168 | { method: 'otp', email: 'user@example.com', otp: '123456' }, | CODE |
| LOW⚡ | backend/tests/unit/auth-email-otp-route.test.ts | 178 | email: 'user@example.com', | CODE |
| LOW⚡ | backend/tests/unit/auth-email-otp-route.test.ts | 183 | expect(mocks.login).toHaveBeenCalledWith('user@example.com', 'securepassword123'); | CODE |
| LOW⚡ | backend/tests/unit/auth-email-otp-route.test.ts | 191 | email: 'user@example.com', | CODE |
| LOW⚡ | backend/tests/unit/auth-email-otp-route.test.ts | 196 | expect(mocks.login).toHaveBeenCalledWith('user@example.com', 'securepassword123'); | CODE |
| LOW | backend/tests/unit/smtp-provider.test.ts | 85 | await provider.sendWithTemplate('user@example.com', 'Test App', 'email-verification-code', { | CODE |
| LOW | backend/tests/unit/smtp-provider.test.ts | 92 | to: 'user@example.com', | CODE |
| LOW | backend/tests/unit/smtp-provider.test.ts | 125 | provider.sendWithTemplate('user@example.com', 'App', 'email-verification-code', { | CODE |
| LOW | backend/tests/unit/smtp-provider.test.ts | 181 | to: 'user@example.com', | CODE |
| LOW⚡ | backend/tests/unit/auth-email-otp.service.test.ts | 173 | await authService.sendSignInOTP('user@example.com'); | CODE |
| LOW⚡ | backend/tests/unit/auth-email-otp.service.test.ts | 176 | 'user@example.com', | CODE |
| LOW⚡ | backend/tests/unit/auth-email-otp.service.test.ts | 181 | expect(mocks.sendWithTemplate).toHaveBeenCalledWith('user@example.com', 'User', 'request-otp', { | CODE |
| 54 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …d/tests/unit/payments-multi-provider-migration.test.ts | 46 | function getCandidateProviderObject(row: LegacyPaymentHistoryRow): { | CODE |
| LOW | …d/tests/unit/payments-multi-provider-migration.test.ts | 81 | function compareLegacyPaymentHistoryRows(a: LegacyPaymentHistoryRow, b: LegacyPaymentHistoryRow) { | CODE |
| LOW | …d/tests/unit/payments-multi-provider-migration.test.ts | 98 | function simulatePaymentHistoryBackfill( | CODE |
| LOW | …d/tests/unit/payments-multi-provider-migration.test.ts | 154 | function simulateWebhookEventBackfillAndCleanup(rows: LegacyWebhookEventRow[]) { | CODE |
| LOW⚡ | backend/tests/unit/razorpay-config.service.test.ts | 77 | function expectRazorpayScopedDelete(tableName: string, params: unknown[]) { | CODE |
| LOW⚡ | backend/tests/unit/razorpay-config.service.test.ts | 86 | function expectRazorpayRuntimeDelete(tableName: string, params: unknown[]) { | CODE |
| LOW⚡ | backend/tests/unit/razorpay-config.service.test.ts | 93 | function expectRazorpayTransactionDelete() { | CODE |
| LOW | backend/tests/unit/telemetry.service.test.ts | 75 | function clearDeploymentEnvironment(): void { | CODE |
| LOW | backend/tests/unit/apify-config.service.test.ts | 48 | function createBehaviouralSecretStore() { | CODE |
| LOW | backend/tests/unit/stripe-services.test.ts | 97 | function expectStripeRuntimeDelete( | CODE |
| LOW | backend/tests/unit/stripe-services.test.ts | 110 | function expectProviderRuntimeDelete( | CODE |
| LOW | …ckend/tests/unit/razorpay-subscription.service.test.ts | 88 | function buildProviderSubscription( | CODE |
| LOW | backend/src/providers/payments/stripe.provider.ts | 32 | function getExpectedStripeKeyPrefix(environment: StripeEnvironment): string { | CODE |
| LOW | backend/src/providers/payments/razorpay.provider.ts | 14 | function getExpectedRazorpayKeyPrefix(environment: RazorpayEnvironment): string { | CODE |
| LOW | backend/src/providers/deployments/vercel.provider.ts | 61 | export async function buildCloudCredentialsError(response: Response): Promise<Error> { | CODE |
| LOW | backend/src/utils/utils.ts | 9 | export function getPasswordRequirementsMessage(config: AuthConfigSchema): string { | CODE |
| LOW | backend/src/utils/validations.ts | 127 | export function getIdentifierErrorMessage(identifier: string, type: string = 'identifier'): string { | CODE |
| LOW | backend/src/utils/cookies.ts | 22 | export function setAdminRefreshTokenCookie(res: Response, value: string): void { | CODE |
| LOW | backend/src/utils/cookies.ts | 49 | export function clearAdminRefreshTokenCookie(res: Response): void { | CODE |
| LOW | backend/src/api/middlewares/rate-limiters.ts | 38 | export function destroyEmailCooldownInterval(): void { | CODE |
| LOW | backend/src/api/middlewares/rate-limiters.ts | 298 | function getWriteEndpointLimitsUrl(): string { | CODE |
| LOW | backend/src/api/middlewares/rate-limiters.ts | 336 | export function resetWriteEndpointLimitsToDefaults(): void { | CODE |
| LOW | backend/src/api/middlewares/rate-limiters.ts | 340 | async function fetchWriteEndpointLimitsConfig(): Promise<Partial< | CODE |
| LOW | backend/src/api/middlewares/rate-limiters.ts | 389 | function getWriteEndpointLimitsRefreshMs(): number { | CODE |
| LOW | backend/src/api/middlewares/rate-limiters.ts | 415 | export function startWriteEndpointLimitsRefresh(): void { | CODE |
| LOW | backend/src/api/middlewares/rate-limiters.ts | 438 | export function destroyWriteEndpointLimitsRefresh(): void { | CODE |
| LOW | backend/src/api/middlewares/rate-limiters.ts | 451 | function createWriteEndpointLimiter(category: WriteLimiterCategory) { | CODE |
| LOW | backend/src/api/routes/database/advance.routes.ts | 28 | function invalidateColumnTypeCacheFromChanges(changes: DatabaseResourceUpdate[]): void { | CODE |
| LOW | backend/src/api/routes/webscraper/index.routes.ts | 146 | function assertSelfHostedWebscraperConfig(): void { | CODE |
| LOW | backend/src/api/routes/ai/index.routes.ts | 204 | function assertSelfHostedModelGatewayConfig(): void { | CODE |
| LOW | backend/src/api/routes/webhooks/stripe.routes.ts | 9 | export function normalizeStripeWebhookError(error: unknown) { | CODE |
| LOW | backend/src/api/routes/analytics/index.routes.ts | 108 | function assertSelfHostedAnalyticsConfig(): void { | CODE |
| LOW | backend/src/services/database/helpers.ts | 14 | export function isInternalDashboardSchema(schemaName: string): boolean { | CODE |
| LOW | backend/src/services/database/helpers.ts | 18 | export function normalizeDatabaseSchemaName(schemaName: unknown): string { | CODE |
| LOW | backend/src/services/database/helpers.ts | 50 | export function postgrestProfileHeaderName(method: string): 'accept-profile' | 'content-profile' { | CODE |
| LOW | backend/src/services/database/helpers.ts | 128 | export function splitQualifiedTableReference( | CODE |
| LOW | backend/src/services/database/user-context.service.ts | 151 | async function setTransactionLocalConfig( | CODE |
| LOW | backend/src/services/database/database-table.service.ts | 42 | function getSafeDollarQuotedLiteral(s: string) { | CODE |
| LOW | backend/src/services/payments/helpers.ts | 28 | function formatPaymentValidationIssues(error: { | CODE |
| LOW | backend/src/services/payments/helpers.ts | 52 | export function getBillingSubjectFromProviderAttributes( | CODE |
| LOW | backend/src/services/payments/helpers.ts | 65 | export function addBillingSubjectToProviderAttributes( | CODE |
| LOW | backend/src/services/payments/helpers.ts | 112 | export function buildStripeIdempotencyKey( | CODE |
| LOW | backend/src/services/payments/helpers.ts | 124 | export function isPostgresPermissionError(error: unknown): boolean { | CODE |
| LOW | backend/src/services/payments/helpers.ts | 165 | export function normalizePaymentTransactionRow(row: PaymentTransactionRow): PaymentTransaction { | CODE |
| LOW | …ckend/src/services/payments/razorpay/config.service.ts | 57 | function getRazorpayWebhookSecretName(environment: RazorpayEnvironment): string { | CODE |
| LOW | backend/src/services/payments/stripe/constants.ts | 17 | export function getStripeWebhookSecretName(environment: StripeEnvironment): string { | CODE |
| LOW | backend/src/services/auth/shared-oauth.service.ts | 37 | export function buildSharedOAuthInitQuery(redirectUri: string, state: string): string { | CODE |
| LOW | backend/src/services/compute/services.service.ts | 472 | export function warnIfFlyCredentialsIncomplete(): void { | CODE |
| LOW | backend/src/services/telemetry/telemetry.service.ts | 96 | export function isTelemetryRuntimeDisabled(): boolean { | CODE |
| LOW | backend/src/services/email/helpers.ts | 11 | export async function lockEmailProviderConfiguration(client: PoolClient): Promise<void> { | CODE |
| LOW | backend/src/services/email/helpers.ts | 15 | export async function hasAvailableEmailProvider(client: PoolClient): Promise<boolean> { | CODE |
| LOW | backend/src/services/email/helpers.ts | 34 | export function emailProviderNotConfiguredError(): AppError { | CODE |
| LOW | packages/dashboard/src/layout/AppLayout.tsx | 59 | function getEmbeddedDashboardRoute(path: string): string | null { | CODE |
| LOW | packages/dashboard/src/features/database/helpers.ts | 256 | export function buildDatabaseSchemaSearch(schemaName: string): string { | CODE |
| LOW | packages/dashboard/src/features/database/helpers.ts | 262 | export function parseDatabaseTableReference( | CODE |
| LOW | …d/src/features/database/components/DatabaseSidebar.tsx | 83 | function DatabaseStudioSidebarItem({ label, href, sectionEnd }: DatabaseStudioSidebarItemProps) { | CODE |
| LOW | …d/src/features/database/components/DatabaseSidebar.tsx | 116 | export function DatabaseStudioSidebarPanel({ onBack }: DatabaseStudioSidebarPanelProps) { | CODE |
| LOW | …/src/features/database/components/DatabaseDataGrid.tsx | 64 | function DatabaseBooleanCellEditor({ | CODE |
| LOW | …/features/database/hooks/useDatabaseSchemaSelection.ts | 10 | export function useDatabaseSchemaSelection() { | CODE |
| LOW | …ard/src/features/database/hooks/useTablePreferences.ts | 23 | function createEmptyTablePreferences(): StoredTablePreferences { | CODE |
| 54 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | GITHUB_OAUTH_SETUP.md | 5 | ## Step 1: Create a GitHub OAuth Application | COMMENT |
| LOW | GITHUB_OAUTH_SETUP.md | 14 | ## Step 2: Fill in Application Information | COMMENT |
| LOW | GITHUB_OAUTH_SETUP.md | 29 | ## Step 3: Get Client ID and Client Secret | COMMENT |
| LOW | GITHUB_OAUTH_SETUP.md | 37 | ## Step 4: Configure Environment Variables | COMMENT |
| LOW | .archive/docs/deprecated/insforge-storage-api.md | 192 | // Step 1: Upload object with known key | COMMENT |
| LOW | .archive/docs/deprecated/insforge-storage-api.md | 201 | // Step 2: Store metadata | COMMENT |
| LOW | .archive/docs/deprecated/insforge-storage-api.md | 218 | // Step 1: Upload object with auto-generated key | COMMENT |
| LOW | .archive/docs/deprecated/insforge-storage-api.md | 228 | // Step 2: Store metadata with generated key | COMMENT |
| LOW | deploy/docker-deploy.md | 10 | ### Step 1: Get the repository | COMMENT |
| LOW | deploy/docker-deploy.md | 30 | ### Step 2: Start InsForge | COMMENT |
| LOW | deploy/docker-deploy.md | 37 | ### Step 3: Access InsForge | COMMENT |
| LOW | deploy/docker-deploy.md | 49 | ### Step 1: Run the setup script once per directory | COMMENT |
| LOW | deploy/docker-deploy.md | 60 | ### Step 2: Give each one its own project name and ports | COMMENT |
| LOW | deploy/docker-deploy.md | 86 | ### Step 3: Start each project | COMMENT |
| LOW⚡ | .agents/docs/insforge-instructions-sdk.md | 23 | ### Step 1: Download Template | COMMENT |
| LOW⚡ | .agents/docs/insforge-instructions-sdk.md | 27 | ### Step 2: Install SDK | COMMENT |
| LOW⚡ | .agents/docs/insforge-instructions-sdk.md | 33 | ### Step 3: Create SDK Client | COMMENT |
| LOW | backend/tests/local/test-public-bucket.sh | 48 | # Step 1: Create a public bucket | COMMENT |
| LOW | backend/tests/local/test-public-bucket.sh | 71 | # Step 2: Create a private bucket | COMMENT |
| LOW | backend/tests/local/test-public-bucket.sh | 93 | # Step 3: Upload a test file to public bucket | COMMENT |
| LOW | backend/tests/local/test-public-bucket.sh | 119 | # Step 4: Upload a test file to private bucket | COMMENT |
| LOW | backend/tests/local/test-public-bucket.sh | 145 | # Step 5: Test accessing PUBLIC file WITHOUT API key | COMMENT |
| LOW⚡ | backend/tests/local/test-public-bucket.sh | 156 | # Step 6: Test accessing PRIVATE file WITHOUT API key | COMMENT |
| LOW⚡ | backend/tests/local/test-public-bucket.sh | 166 | # Step 7: Test accessing PRIVATE file WITH API key | COMMENT |
| LOW | backend/tests/local/test-public-bucket.sh | 178 | # Step 8: List all buckets | COMMENT |
| LOW | backend/tests/local/test-public-bucket.sh | 196 | # Step 9: Test PUT upload with specified key | COMMENT |
| LOW | backend/tests/local/test-public-bucket.sh | 230 | # Step 10: Update bucket visibility | COMMENT |
| LOW | backend/tests/manual/test-universal-storage.sh | 27 | # Step 1: Login to get auth token | COMMENT |
| LOW | backend/tests/manual/test-universal-storage.sh | 42 | # Step 2: Create bucket | COMMENT |
| LOW | backend/tests/manual/test-universal-storage.sh | 55 | # Step 3: Request upload strategy | COMMENT |
| LOW | backend/tests/manual/test-universal-storage.sh | 88 | # Step 4: Upload based on strategy | COMMENT |
| LOW | backend/tests/manual/test-universal-storage.sh | 152 | # Step 5: Confirm upload if required | COMMENT |
| LOW | backend/tests/manual/test-universal-storage.sh | 179 | # Step 6: Get download URL | COMMENT |
| LOW | backend/tests/manual/test-universal-storage.sh | 200 | # Step 7: Test download | COMMENT |
| LOW | backend/tests/manual/test-universal-storage.sh | 225 | # Step 8: List objects | COMMENT |
| LOW⚡ | backend/tests/manual/test-rawsql-export-import.sh | 105 | # Step 1: Create the basic table | COMMENT |
| LOW | backend/tests/manual/test-rawsql-export-import.sh | 130 | # Step 2: Add indexes, triggers and RLS | COMMENT |
| LOW | backend/src/providers/compute/docker.provider.ts | 471 | // Step 1: Move the old container out of the way by renaming to a retire name. | COMMENT |
| LOW | backend/src/providers/compute/docker.provider.ts | 490 | // Step 2: Promote staging container to the primary name. | COMMENT |
| LOW | backend/src/providers/compute/docker.provider.ts | 512 | // Step 3: Tear down the retired container. It is now safely renamed and the | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docker-compose.rustfs.yml | 1 | # Optional bundled RustFS object storage for self-hosted InsForge. | COMMENT |
| LOW | docker-compose.minio.yml | 1 | # Optional bundled MinIO object storage for self-hosted InsForge. | COMMENT |
| LOW | docker-compose.yml | 161 | - INSFORGE_TELEMETRY_DISABLED=${INSFORGE_TELEMETRY_DISABLED:-} | COMMENT |
| LOW | docker-compose.yml | 181 | # Host address used to build URLs for `port` ingress. Unset, no URL is | COMMENT |
| LOW | docker-compose.prod.yml | 141 | - X_CLIENT_ID=${X_CLIENT_ID:-} | COMMENT |
| LOW | docker-compose.prod.yml | 161 | - COMPUTE_PROVIDER=${COMPUTE_PROVIDER:-} | COMMENT |
| LOW | docker-compose.prod.yml | 181 | # Seconds an upload may send nothing before it is treated as stalled and | COMMENT |
| LOW | .archive/docs/deprecated/insforge-auth-sdk.md | 41 | // After OAuth, user returns to redirectTo URL already authenticated | COMMENT |
| LOW | docker/entrypoint.sh | 1 | #!/bin/sh | COMMENT |
| LOW | deploy/setup.sh | 1 | #!/usr/bin/env sh | COMMENT |
| LOW | deploy/setup.sh | 121 | COMMENT | |
| LOW | deploy/backup.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | deploy/dokploy/docker-compose.yml | 1 | # InsForge on Dokploy | COMMENT |
| LOW | deploy/dokploy/docker-compose.yml | 121 | # Ceiling on an uploaded source-build context. Express buffers the whole | COMMENT |
| LOW | deploy/coolify/docker-compose.yml | 1 | # InsForge on Coolify | COMMENT |
| LOW | deploy/coolify/docker-compose.yml | 21 | # port 7130 in Coolify's UI, then set API_BASE_URL and VITE_API_BASE_URL to it — | COMMENT |
| LOW | deploy/coolify/docker-compose.yml | 121 | # labels. Treat it as untested until someone runs it. | COMMENT |
| LOW | deploy/docker-compose/docker-compose.yml | 141 | # Set S3_USE_PRESIGNED_URLS=false to proxy object bytes through the backend | COMMENT |
| LOW | deploy/docker-compose/docker-compose.yml | 181 | deno: | COMMENT |
| LOW | …t/ai-streaming-token-double-count.reproduction.test.ts | 121 | // Some providers send intermediate usage chunks (e.g., partial counts per | COMMENT |
| LOW | backend/tests/integration/utils.ts | 41 | // 2. Install real extensions + stub pg_cron | COMMENT |
| LOW | backend/tests/local/test-schedules.sh | 1 | #!/bin/bash | COMMENT |
| LOW | backend/tests/local/test-storage-rls.sh | 1 | #!/bin/bash | COMMENT |
| LOW | backend/tests/cloud/test-s3-gateway.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | backend/src/infra/config/app.config.ts | 201 | // host port at all, which is right for the majority of compute (queue | COMMENT |
| LOW | backend/src/providers/payments/razorpay-errors.ts | 61 | COMMENT | |
| LOW | backend/src/providers/compute/fly.provider.ts | 261 | autostart: true, | COMMENT |
| LOW | backend/src/providers/compute/docker.client.ts | 261 | }): Promise<DockerBuildResult> { | COMMENT |
| LOW | backend/src/services/compute/services.service.ts | 181 | status: row.status as ServiceSchema['status'], | COMMENT |
| LOW | backend/src/services/compute/services.service.ts | 321 | COMMENT | |
| LOW | scripts/sync-skills.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | scripts/update-mintlify-skill.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | …/src/features/webscraper/components/ApifyTokenForm.tsx | 1 | import { useId, useState } from 'react'; | COMMENT |
| LOW | …components/__tests__/WebScraperSettingsDialog.test.tsx | 81 | renderDialog(); | COMMENT |
| LOW | …oard/components/observability/ObservabilitySection.tsx | 261 | // number. Bars stack bottom-up (System, WAL, Database) so the gap above | COMMENT |
| LOW | …rc/features/compute/components/CreateServiceDialog.tsx | 61 | const [region, setRegion] = useState('iad'); | COMMENT |
| LOW | packages/dashboard/src/features/compute/lib/health.ts | 1 | // Derive a simple crash-loop signal from container lifecycle events. | COMMENT |
| LOW | …atures/analytics/components/posthog/PosthogKeyForm.tsx | 21 | }; | COMMENT |
| LOW | packages/shared-schemas/src/ai-api.schema.ts | 101 | // Content can be a string or an array of content parts (OpenAI-compatible). | COMMENT |
| LOW | functions/worker-template.js | 61 | // the handler AFTER the top-level `await import(...)` below (cold import can | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | backend/tests/local/test-public-bucket.sh | 48 | # Step 1: Create a public bucket | COMMENT |
| LOW | backend/tests/local/test-public-bucket.sh | 71 | # Step 2: Create a private bucket | COMMENT |
| LOW | backend/tests/local/test-public-bucket.sh | 93 | # Step 3: Upload a test file to public bucket | COMMENT |
| LOW | backend/tests/local/test-public-bucket.sh | 119 | # Step 4: Upload a test file to private bucket | COMMENT |
| LOW | backend/tests/local/test-public-bucket.sh | 145 | # Step 5: Test accessing PUBLIC file WITHOUT API key | COMMENT |
| LOW⚡ | backend/tests/local/test-public-bucket.sh | 156 | # Step 6: Test accessing PRIVATE file WITHOUT API key | COMMENT |
| LOW⚡ | backend/tests/local/test-public-bucket.sh | 166 | # Step 7: Test accessing PRIVATE file WITH API key | COMMENT |
| LOW | backend/tests/local/test-public-bucket.sh | 178 | # Step 8: List all buckets | COMMENT |
| LOW | backend/tests/local/test-public-bucket.sh | 196 | # Step 9: Test PUT upload with specified key | COMMENT |
| LOW | backend/tests/local/test-public-bucket.sh | 230 | # Step 10: Update bucket visibility | COMMENT |
| LOW | backend/tests/manual/test-universal-storage.sh | 27 | # Step 1: Login to get auth token | COMMENT |
| LOW | backend/tests/manual/test-universal-storage.sh | 42 | # Step 2: Create bucket | COMMENT |
| LOW | backend/tests/manual/test-universal-storage.sh | 55 | # Step 3: Request upload strategy | COMMENT |
| LOW | backend/tests/manual/test-universal-storage.sh | 88 | # Step 4: Upload based on strategy | COMMENT |
| LOW | backend/tests/manual/test-universal-storage.sh | 152 | # Step 5: Confirm upload if required | COMMENT |
| LOW | backend/tests/manual/test-universal-storage.sh | 179 | # Step 6: Get download URL | COMMENT |
| LOW | backend/tests/manual/test-universal-storage.sh | 200 | # Step 7: Test download | COMMENT |
| LOW | backend/tests/manual/test-universal-storage.sh | 225 | # Step 8: List objects | COMMENT |
| LOW⚡ | backend/tests/manual/test-rawsql-export-import.sh | 105 | # Step 1: Create the basic table | COMMENT |
| LOW | backend/tests/manual/test-rawsql-export-import.sh | 130 | # Step 2: Add indexes, triggers and RLS | COMMENT |
| LOW | backend/src/providers/compute/docker.provider.ts | 471 | // Step 1: Move the old container out of the way by renaming to a retire name. | COMMENT |
| LOW | backend/src/providers/compute/docker.provider.ts | 490 | // Step 2: Promote staging container to the primary name. | COMMENT |
| LOW | backend/src/providers/compute/docker.provider.ts | 512 | // Step 3: Tear down the retired container. It is now safely renamed and the | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | .archive/docs/deprecated/insforge-instructions.md | 101 | -H "x-api-key: your-api-key" \ | CODE |
| HIGH | .archive/docs/deprecated/insforge-instructions.md | 109 | -H "x-api-key: your-api-key" \ | CODE |
| HIGH⚡ | backend/tests/unit/app.config.test.ts | 60 | expect(c.app.apiKey).toBe('your_api_key'); | CODE |
| HIGH | backend/src/infra/config/app.config.ts | 159 | apiKey: process.env.ACCESS_API_KEY || 'your_api_key', | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | deploy/docker-init/logs/vector.yml | 86 | # Check if this is a request log (has duration field) | COMMENT |
| LOW | backend/tests/test-config.sh | 81 | # Check if required tools are installed | COMMENT |
| LOW | backend/tests/run-all-tests.sh | 60 | # Check if root admin credentials are set | COMMENT |
| LOW | backend/tests/run-all-tests.sh | 69 | # Check if running cloud tests | COMMENT |
| LOW | backend/tests/cleanup-all-test-data.sh | 110 | # Check if table matches any test pattern | COMMENT |
| LOW | backend/tests/cleanup-all-test-data.sh | 154 | # Check if bucket matches any test pattern | COMMENT |
| LOW | backend/tests/local/test-traditional-rest.sh | 96 | # Check if registration was successful | COMMENT |
| LOW | backend/tests/manual/test-ai-model-plugins.sh | 44 | # Check if annotations are present in the response | COMMENT |
| LOW | backend/tests/manual/test-database-advance.sh | 118 | # Check if file exists | COMMENT |
| LOW⚡ | backend/tests/manual/test-rawsql-export-import.sh | 90 | # Check if login was successful | COMMENT |
| LOW | backend/tests/manual/test-rawsql-export-import.sh | 211 | # Check if response contains success information | COMMENT |
| LOW⚡ | backend/scripts/test-deno-subhosting.sh | 52 | # Check if API is reachable | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | backend/tests/local/test-secrets.sh | 165 | # Create a simple function that returns the secret | COMMENT |
| MEDIUM | backend/tests/local/test-secrets.sh | 182 | # Create the function | COMMENT |
| MEDIUM | backend/tests/local/test-id-field.sh | 109 | # Create a test table | COMMENT |
| MEDIUM | backend/tests/local/test-traditional-rest.sh | 183 | # Create a test bucket | COMMENT |
| MEDIUM | backend/tests/manual/test-database-advance.sh | 247 | # Define the path to the SQL file | COMMENT |
| MEDIUM | backend/tests/cloud/test-s3-multitenant.sh | 38 | # Create a test bucket | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | .claude/skills/doc-author/INSFORGE.md | 43 | ## Sound human, not AI-generated | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | examples/python-ml-experiment-tracker/tracker/config.py | 1 | CODE | |
| LOW | examples/python-ml-experiment-tracker/tracker/models.py | 1 | CODE | |
| LOW | examples/python-ml-experiment-tracker/tracker/client.py | 1 | CODE | |
| LOW | examples/python-ml-experiment-tracker/tracker/serve.py | 1 | CODE | |
| LOW | examples/python-ml-experiment-tracker/tracker/cli.py | 1 | CODE | |
| LOW | examples/python-ml-experiment-tracker/tracker/cli.py | 14 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | packages/dashboard/src/features/ai/constants.ts | 47 | print(completion.choices[0].message)`, | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | .claude/skills/doc-author/SKILL.md | 238 | ## Verification guardrails | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | examples/python-ml-experiment-tracker/tracker/client.py | 65 | except Exception: | CODE |
| LOW | examples/python-ml-experiment-tracker/tracker/serve.py | 129 | except Exception: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | examples/python-ml-experiment-tracker/tracker/cli.py | 74 | CODE | |
| LOW | scripts/build-docs-langs.py | 31 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/sync-skills.sh | 14 | # Usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | examples/python-ml-experiment-tracker/tracker/config.py | 57 | def update_tokens(access_token: str, refresh_token: str) -> None: | CODE |