The world's best AI personal assistant for email. Open source app to help you reach inbox zero fast.
This report summarizes scanner evidence for elie222/inbox-zero, a TypeScript project with 12,443 GitHub stars. SynthScan examined 696,168 lines of code across 4027 source files, recording 3272 pattern matches distributed across 14 syntactic categories. The legacy adjusted pattern signal is 5.7 (Moderate 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.
Can maintainers explain intent, assumptions, and trade-offs? 2352 finding(s).
Are imports declared and package/API names verified? 772 finding(s).
Are wrappers, guards, and repeated structures necessary? 2013 finding(s).
Which changes need focused human review? 3272 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 3272 distinct pattern matches across 14 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/dev-setup.ts | 467 | async function writeGeneratedEmulateSeed(baseUrl: string) { | CODE |
| LOW | scripts/dev-setup.ts | 922 | function assertSafeLocalDatabaseUrl(databaseUrl: string) { | CODE |
| LOW | scripts/dev-setup.ts | 931 | function assertSafeWorktreeDatabaseName(databaseName: string) { | CODE |
| LOW | scripts/dev-setup.ts | 1006 | function resolveTemplateDatabaseUrl( | CODE |
| LOW | packages/image-proxy/src/proxy-service.ts | 262 | function getConfiguredSigningSecrets(config: ImageProxyConfig): string[] { | CODE |
| LOW | packages/image-proxy/src/proxy-service.ts | 271 | async function validateAssetProxySignatureAgainstSecrets({ | CODE |
| LOW | packages/image-proxy/src/proxy-url.ts | 51 | export async function validateAssetProxySignature({ | CODE |
| LOW | packages/image-proxy/src/node-safe-fetch.ts | 9 | export async function createSafeImageProxyFetch( | CODE |
| LOW | packages/mail-core/src/engine.ts | 1125 | async function rememberBootstrapContinuation( | CODE |
| LOW | packages/mail-core/src/query-semantics.ts | 88 | export function conversationMatchesPredicate( | CODE |
| LOW | packages/mail-core/src/query-semantics.ts | 211 | function conversationMatchesMailbox( | CODE |
| LOW | …kages/mail-core/src/protocol/routed-backend-adapter.ts | 12 | export function createRoutedBackendAdapter(input: { | CODE |
| LOW | packages/mail-core/src/protocol/backend-adapter.ts | 51 | export function createBackendMailboxSource(input: { | CODE |
| LOW | packages/mail-core/src/protocol/backend-adapter.ts | 389 | export function createBackendOperationExecutor(input: { | CODE |
| LOW | packages/mail-core/src/protocol/backend-adapter.ts | 456 | export function createBackendAssistantSource(input: { | CODE |
| LOW | packages/mail-core/src/protocol/mail-ipc-client.test.ts | 132 | function snapshotWithConversations(count: number) { | CODE |
| LOW | packages/scheduling/src/index.ts | 268 | function isAlignedToAvailabilityGrid({ | CODE |
| LOW | packages/scheduling/src/index.ts | 311 | function roundUpToLocalIntervalGrid({ | CODE |
| LOW | packages/scheduling/src/index.ts | 333 | function isAlignedToLocalIntervalGrid({ | CODE |
| LOW | packages/network/src/safe-url.ts | 51 | export async function resolveSafeExternalHttpUrl( | CODE |
| LOW | packages/mail-ui/src/MailSidebarRow.tsx | 4 | export function getMailSidebarRowPresentation({ | CODE |
| LOW | packages/mail-ui/src/MailBody.tsx | 555 | function buildStructuredMailHtmlDocument({ | CODE |
| LOW | packages/mail-ui/src/MailBody.tsx | 581 | function disableAuthoredDarkColorScheme(mailDocument: Document) { | CODE |
| LOW | packages/mail-ui/src/MailboxSurface.tsx | 289 | export function scrollElementIntoContainer( | CODE |
| LOW | packages/mail-ui/src/MailAccountSwitcherTrigger.tsx | 3 | export function MailAccountSwitcherTrigger({ | CODE |
| LOW | packages/tinybird-ai-analytics/src/query.ts | 58 | export async function getAiGenerationCountByEmailAccounts(options: { | CODE |
| LOW | packages/tinybird-ai-analytics/src/query.ts | 78 | export async function getAdminAiModelSpendByPeriod(options: { | CODE |
| LOW | packages/tinybird-ai-analytics/src/query.ts | 89 | export async function getAdminAiUserModelSpendByPeriod(options: { | CODE |
| LOW | packages/cli/src/setup-aws.ts | 1198 | function cleanupOrphanedEnvironment( | CODE |
| LOW | packages/cli/src/setup-aws.ts | 1365 | export function updateServiceManifestSecrets(config: { | CODE |
| LOW | packages/cli/src/setup-aws.ts | 1425 | function updateServiceManifestVariables(config: { | CODE |
| LOW | packages/cli/src/setup-aws.ts | 1447 | function updateServiceManifestHttp(config: { domain?: string }): void { | CODE |
| LOW | packages/cli/src/setup-aws.ts | 1472 | function resetServiceManifestVariables(): void { | CODE |
| LOW | packages/cli/src/setup-aws.ts | 1769 | function waitForEnvStackCompletion( | CODE |
| LOW | packages/cli/src/utils.ts | 307 | export function generateEncryptionSecrets(existing: EnvConfig): EnvConfig { | CODE |
| LOW | packages/cli/src/llm.ts | 75 | export function seedLlmPlaceholderCredentials( | CODE |
| LOW | packages/cli/src/llm.ts | 193 | async function promptOpenAICompatibleCreds(): Promise<{ | CODE |
| LOW | packages/cli/src/setup-terraform.ts | 740 | function getProviderDefaultLlmModel(provider: string): string | undefined { | CODE |
| LOW | packages/cli/src/aws-setup/ssm-urls.ts | 8 | export function ensureDatabaseUrlParameters( | CODE |
| LOW | packages/mail-sqlite/test-support/driver-contract.ts | 94 | async function assertTransactionalReadConsistency(driver: SqliteDriver) { | CODE |
| LOW | packages/mail-sqlite/test-support/driver-contract.ts | 146 | async function assertCloseWaitsForQueuedWork(driver: SqliteDriver) { | CODE |
| LOW | packages/mail-sqlite/src/store.test.ts | 4840 | function createLegacyMailboxWithoutExternalUrl(path: string) { | CODE |
| LOW | packages/mail-sqlite/src/conversation-index.ts | 35 | export async function migrateInboxUnreadExcludesArchive(tx: SqlTransaction) { | CODE |
| LOW | packages/mail-sqlite/src/conversation-index.ts | 63 | async function installConversationTriggers(tx: SqlTransaction) { | CODE |
| LOW | packages/mail-sqlite/src/mailbox-view-readers.ts | 252 | function mailboxConversationHaving(mailbox: WellKnownMailbox | null): { | CODE |
| LOW | packages/mail-sqlite/src/mailbox-view-readers.ts | 389 | async function readConversationSummaries( | CODE |
| LOW | packages/mail-sqlite/src/message-search-index.ts | 27 | export async function migrateMessageSearchIndex(tx: SqlTransaction) { | CODE |
| LOW | packages/mail-sqlite/src/message-search-index.ts | 152 | export async function completeSearchIndexIfFull(tx: SqlTransaction) { | CODE |
| LOW | packages/mail-sqlite/src/message-search-index.ts | 306 | function markSearchIndexIncomplete(tx: SqlTransaction) { | CODE |
| LOW | packages/mail-sqlite/src/migrations.ts | 427 | export async function migrateEmptyMeetingInvitationBodies(tx: SqlTransaction) { | CODE |
| LOW | packages/mail-sqlite/src/capabilities.ts | 16 | export async function probeSqliteCapabilitiesInTx( | CODE |
| LOW | packages/mail-sqlite/src/contact-suggestions.ts | 8 | export async function migrateContactSuggestions(tx: SqlTransaction) { | CODE |
| LOW | packages/mail-sqlite/src/contact-suggestions.ts | 282 | export async function deleteAccountContactSuggestions( | CODE |
| LOW | packages/mail-sqlite/src/message-body-migration.ts | 16 | export async function migrateCompressedMessageBodies( | CODE |
| LOW | packages/mail-sqlite/src/node-sqlite.ts | 69 | export async function openOrQuarantineNodeMailbox(path: string): Promise<{ | CODE |
| LOW | packages/mail-sqlite/src/maintenance.ts | 4 | export async function evictReplaceableMessageContent( | CODE |
| LOW | packages/mail-sqlite/src/store.ts | 2320 | async function resetAccountForGeneration( | CODE |
| LOW | packages/mail-sqlite/src/store.ts | 2443 | async function filterKeysNeedingBodyHydration( | CODE |
| LOW | packages/mail-sqlite/src/store.ts | 2469 | function contentCoversMessageVersion( | CODE |
| LOW | packages/mail-sqlite/src/store.ts | 2489 | async function snapshotBootstrapExistingMessages( | CODE |
| 1805 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .claude/skills/agent-browser/SKILL.md | 25 | agent-browser fill @e1 "user@example.com" | CODE |
| LOW | .claude/skills/agent-browser/SKILL.md | 41 | agent-browser fill @e1 "user@example.com" && agent-browser fill @e2 "password123" && agent-browser click @e3 | CODE |
| LOW | .claude/skills/agent-browser/SKILL.md | 211 | agent-browser fill @e1 "Jane Doe" | CODE |
| LOW | …aude/skills/agent-browser/references/authentication.md | 132 | agent-browser fill @e1 "user@example.com" | CODE |
| LOW | …aude/skills/agent-browser/references/authentication.md | 151 | agent-browser fill @e1 "user@example.com" | CODE |
| LOW | …aude/skills/agent-browser/references/authentication.md | 208 | agent-browser fill @e1 "user@example.com" | CODE |
| LOW | …laude/skills/agent-browser/references/snapshot-refs.md | 72 | agent-browser fill @e10 "user@example.com" | CODE |
| LOW | …/skills/agent-browser/references/session-management.md | 29 | agent-browser --session auth fill @e1 "user@example.com" | CODE |
| LOW⚡ | …aude/skills/agent-browser/templates/form-automation.sh | 32 | # agent-browser fill @e1 "John Doe" # Text input | COMMENT |
| LOW⚡ | …aude/skills/agent-browser/templates/form-automation.sh | 33 | # agent-browser fill @e2 "user@example.com" # Email input | COMMENT |
| LOW⚡ | packages/loops/src/loops.test.ts | 41 | await expect(createContact("user@example.com", "John")).resolves.toEqual({ | CODE |
| LOW⚡ | packages/loops/src/loops.test.ts | 44 | await startedTrial("user@example.com", "PLUS_MONTHLY"); | CODE |
| LOW⚡ | packages/loops/src/loops.test.ts | 48 | email: "user@example.com", | CODE |
| LOW | packages/loops/src/loops.test.ts | 60 | await expect(createContact("user@example.com", "John")).resolves.toBe( | CODE |
| LOW⚡ | packages/loops/src/loops.test.ts | 74 | await expect(createContact("user@example.com")).rejects.toBe(error); | CODE |
| LOW⚡ | packages/loops/src/loops.test.ts | 81 | await completedTrial("user@example.com", "PLUS_MONTHLY", subscriptionId); | CODE |
| LOW⚡ | packages/loops/src/loops.test.ts | 86 | email: "user@example.com", | CODE |
| LOW | packages/transactional-email/emails/action-required.tsx | 154 | email: "user@example.com", | CODE |
| LOW | packages/transactional-email/emails/reconnection.tsx | 143 | email: "user@example.com", | CODE |
| LOW | apps/unsubscribe-worker/src/browser.test.ts | 21 | "user@example.com", | CODE |
| LOW | apps/unsubscribe-worker/src/browser.test.ts | 38 | "user@example.com", | CODE |
| LOW | apps/unsubscribe-worker/src/browser.test.ts | 79 | "user@example.com", | CODE |
| LOW | apps/unsubscribe-worker/src/browser.test.ts | 113 | "user@example.com", | CODE |
| LOW | apps/unsubscribe-worker/src/browser.test.ts | 120 | "user@example.com", | CODE |
| LOW | apps/unsubscribe-worker/src/browser.test.ts | 142 | "user@example.com", | CODE |
| LOW | apps/unsubscribe-worker/src/service.test.ts | 41 | recipientEmail: "user@example.com", | CODE |
| LOW | apps/unsubscribe-worker/src/service.test.ts | 83 | recipientEmail: "user@example.com", | CODE |
| LOW | apps/unsubscribe-worker/src/service.test.ts | 113 | recipientEmail: "user@example.com", | CODE |
| LOW | apps/unsubscribe-worker/src/service.test.ts | 143 | recipientEmail: "user@example.com", | CODE |
| LOW | apps/unsubscribe-worker/src/service.test.ts | 167 | recipientEmail: "user@example.com", | CODE |
| LOW | apps/unsubscribe-worker/src/service.test.ts | 196 | recipientEmail: "user@example.com", | CODE |
| LOW | apps/unsubscribe-worker/src/service.test.ts | 243 | recipientEmail: "user@example.com", | CODE |
| LOW | apps/unsubscribe-worker/src/service.test.ts | 286 | recipientEmail: "user@example.com", | CODE |
| LOW | apps/unsubscribe-worker/src/service.test.ts | 306 | recipientEmail: "user@example.com", | CODE |
| LOW | apps/unsubscribe-worker/src/network.test.ts | 36 | recipientEmail: "user@example.com", | CODE |
| LOW | apps/unsubscribe-worker/src/server.test.ts | 67 | recipientEmail: "user@example.com", | CODE |
| LOW | apps/unsubscribe-worker/src/adapters/docker.test.ts | 29 | recipientEmail: "user@example.com", | CODE |
| LOW | apps/unsubscribe-worker/src/adapters/docker.test.ts | 49 | arg.includes("user@example.com") || | CODE |
| LOW | …s/unsubscribe-worker/src/eval/unsubscribe.eval.test.ts | 141 | "user@example.com", | CODE |
| LOW | …ailAccountId]/assistant/bulk-run-rules-reducer.test.ts | 23 | from: "test@test.com", | CODE |
| LOW | …countId]/calendars/ConfigureBookingLinkDialog.test.tsx | 86 | email: "user@example.com", | CODE |
| LOW | …/app/(app)/[emailAccountId]/mail/MailLabelChip.test.ts | 18 | const names = ["Acme Corp", "shipping", "🚀 launch", "", "a"]; | CODE |
| LOW | …/app/(app)/[emailAccountId]/mail/MailLabelChip.test.ts | 28 | const color = chipColorForLabel("Acme Corp"); | CODE |
| LOW | …(app)/[emailAccountId]/onboarding/paywallFirst.test.ts | 10 | email: "user@example.com", | CODE |
| LOW | …(app)/[emailAccountId]/onboarding/paywallFirst.test.ts | 50 | distinctId: "user@example.com", | CODE |
| LOW | apps/web/app/(app)/admin/GmailUrlConverter.tsx | 78 | placeholder="user@example.com" | CODE |
| LOW | apps/web/app/(app)/admin/AdminUserInfo.tsx | 56 | placeholder="user@example.com" | CODE |
| LOW | apps/web/app/(app)/admin/AdminHashEmail.tsx | 65 | placeholder="user@example.com" | CODE |
| LOW | …ps/web/app/api/chat/confirm-email-action/route.test.ts | 20 | email: "user@example.com", | CODE |
| LOW | …ps/web/app/api/chat/confirm-email-action/route.test.ts | 55 | email: "user@example.com", | CODE |
| LOW | …ps/web/app/api/chat/confirm-email-action/route.test.ts | 91 | email: "user@example.com", | CODE |
| LOW | …/api/mail/v1/accounts/[accountId]/splits/route.test.ts | 39 | vi.mocked(getEmailAccount).mockResolvedValue("user@example.com"); | CODE |
| LOW | apps/web/app/api/google/webhook/route.test.ts | 118 | emailAddress: "user@example.com", | CODE |
| LOW | apps/web/app/api/google/webhook/route.test.ts | 128 | { emailAddress: "user@example.com", historyId: "123" }, | CODE |
| LOW | apps/web/app/api/google/webhook/route.test.ts | 139 | emailAddress: "user@example.com", | CODE |
| LOW⚡ | apps/web/app/api/google/webhook/route.test.ts | 155 | { emailAddress: "user@example.com", historyId: "123" }, | CODE |
| LOW⚡ | apps/web/app/api/google/webhook/route.test.ts | 164 | emailAddress: "user@example.com", | CODE |
| LOW⚡ | apps/web/app/api/google/webhook/route.test.ts | 173 | emailAddress: "user@example.com", | CODE |
| LOW | apps/web/app/api/google/webhook/route.test.ts | 191 | emailAddress: "user@example.com", | CODE |
| LOW | apps/web/app/api/google/webhook/route.test.ts | 219 | emailAddress = "user@example.com", | CODE |
| 697 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | copilot/environments/addons/rds.yml | 51 | # ============================================================================= | COMMENT |
| MEDIUM | copilot/environments/addons/rds.yml | 53 | # ============================================================================= | COMMENT |
| MEDIUM | copilot/environments/addons/rds.yml | 67 | # ============================================================================= | COMMENT |
| MEDIUM | copilot/environments/addons/rds.yml | 69 | # ============================================================================= | COMMENT |
| MEDIUM | copilot/environments/addons/rds.yml | 89 | # ============================================================================= | COMMENT |
| MEDIUM | copilot/environments/addons/rds.yml | 91 | # ============================================================================= | COMMENT |
| MEDIUM | copilot/environments/addons/rds.yml | 108 | # ============================================================================= | COMMENT |
| MEDIUM | copilot/environments/addons/rds.yml | 110 | # ============================================================================= | COMMENT |
| MEDIUM | copilot/environments/addons/rds.yml | 167 | # ============================================================================= | COMMENT |
| MEDIUM | copilot/environments/addons/rds.yml | 169 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | copilot/environments/addons/addons.parameters.yml | 20 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | copilot/environments/addons/addons.parameters.yml | 22 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | copilot/environments/addons/addons.parameters.yml | 27 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | copilot/environments/addons/addons.parameters.yml | 29 | # ============================================================================= | COMMENT |
| MEDIUM | copilot/environments/addons/elasticache-redis.yml | 67 | # ============================================================================= | COMMENT |
| MEDIUM | copilot/environments/addons/elasticache-redis.yml | 69 | # ============================================================================= | COMMENT |
| MEDIUM | copilot/environments/addons/elasticache-redis.yml | 90 | # ============================================================================= | COMMENT |
| MEDIUM | copilot/environments/addons/elasticache-redis.yml | 92 | # ============================================================================= | COMMENT |
| MEDIUM | copilot/environments/addons/elasticache-redis.yml | 105 | # ============================================================================= | COMMENT |
| MEDIUM | copilot/environments/addons/elasticache-redis.yml | 107 | # ============================================================================= | COMMENT |
| MEDIUM | copilot/environments/addons/elasticache-redis.yml | 126 | # ============================================================================= | COMMENT |
| MEDIUM | copilot/environments/addons/elasticache-redis.yml | 128 | # ============================================================================= | COMMENT |
| MEDIUM | copilot/environments/addons/elasticache-redis.yml | 162 | # ============================================================================= | COMMENT |
| MEDIUM | copilot/environments/addons/elasticache-redis.yml | 164 | # ============================================================================= | COMMENT |
| MEDIUM | copilot/templates/webhook-gateway.yml | 51 | # ============================================================================= | COMMENT |
| MEDIUM | copilot/templates/webhook-gateway.yml | 53 | # ============================================================================= | COMMENT |
| MEDIUM | copilot/templates/webhook-gateway.yml | 64 | # ============================================================================= | COMMENT |
| MEDIUM | copilot/templates/webhook-gateway.yml | 66 | # ============================================================================= | COMMENT |
| MEDIUM | copilot/templates/webhook-gateway.yml | 85 | # ============================================================================= | COMMENT |
| MEDIUM | copilot/templates/webhook-gateway.yml | 87 | # ============================================================================= | COMMENT |
| MEDIUM | copilot/templates/webhook-gateway.yml | 113 | # ============================================================================= | COMMENT |
| MEDIUM | copilot/templates/webhook-gateway.yml | 115 | # ============================================================================= | COMMENT |
| MEDIUM | copilot/templates/webhook-gateway.yml | 127 | # ============================================================================= | COMMENT |
| MEDIUM | copilot/templates/webhook-gateway.yml | 129 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | copilot/templates/webhook-gateway.yml | 145 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | copilot/templates/webhook-gateway.yml | 147 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | copilot/templates/webhook-gateway.yml | 157 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | copilot/templates/webhook-gateway.yml | 159 | # ============================================================================= | COMMENT |
| MEDIUM | copilot/templates/webhook-gateway.yml | 177 | # ============================================================================= | COMMENT |
| MEDIUM | copilot/templates/webhook-gateway.yml | 179 | # ============================================================================= | COMMENT |
| MEDIUM | copilot/templates/webhook-gateway.yml | 192 | # ============================================================================= | COMMENT |
| MEDIUM | copilot/templates/webhook-gateway.yml | 194 | # ============================================================================= | COMMENT |
| MEDIUM | …kills/agent-browser/templates/authenticated-session.sh | 32 | # ================================================================ | COMMENT |
| MEDIUM | …kills/agent-browser/templates/authenticated-session.sh | 34 | # ================================================================ | COMMENT |
| MEDIUM | …kills/agent-browser/templates/authenticated-session.sh | 54 | # ================================================================ | COMMENT |
| MEDIUM | …kills/agent-browser/templates/authenticated-session.sh | 56 | # ================================================================ | COMMENT |
| MEDIUM | …kills/agent-browser/templates/authenticated-session.sh | 76 | # ================================================================ | COMMENT |
| MEDIUM | …kills/agent-browser/templates/authenticated-session.sh | 78 | # ================================================================ | COMMENT |
| MEDIUM⚡ | packages/cli/src/utils.test.ts | 337 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | packages/cli/src/utils.test.ts | 340 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | packages/cli/src/utils.test.ts | 342 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | packages/cli/src/utils.test.ts | 367 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | packages/cli/src/utils.test.ts | 374 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | packages/cli/src/utils.test.ts | 376 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | packages/cli/src/utils.test.ts | 380 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | packages/cli/src/utils.test.ts | 382 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | packages/cli/src/utils.test.ts | 390 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | packages/cli/src/utils.test.ts | 392 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | packages/cli/src/utils.test.ts | 398 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | packages/cli/src/utils.test.ts | 400 | # ============================================================================= | COMMENT |
| 88 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | …aude/skills/agent-browser/templates/form-automation.sh | 20 | # Step 1: Navigate to form | COMMENT |
| LOW⚡ | …aude/skills/agent-browser/templates/form-automation.sh | 24 | # Step 2: Snapshot to discover form elements | COMMENT |
| LOW⚡ | …aude/skills/agent-browser/templates/form-automation.sh | 29 | # Step 3: Fill form fields (customize these refs based on snapshot output) | COMMENT |
| LOW⚡ | …aude/skills/agent-browser/templates/form-automation.sh | 46 | # Step 4: Wait for submission | COMMENT |
| LOW⚡ | …aude/skills/agent-browser/templates/form-automation.sh | 50 | # Step 5: Verify result | COMMENT |
| LOW⚡ | .claude/skills/testing/e2e.md | 56 | ### Step 1: Determine Action | COMMENT |
| LOW⚡ | .claude/skills/testing/e2e.md | 64 | ### Step 2: Run Tests (if requested) | COMMENT |
| LOW⚡ | .claude/skills/testing/e2e.md | 74 | ### Step 3: Monitor Progress | COMMENT |
| LOW⚡ | .claude/skills/testing/e2e.md | 81 | ### Step 4: Debug Failures with Axiom | COMMENT |
| LOW | .claude/skills/testing/e2e.md | 137 | ### Step 5: Download Artifacts (on failure) | COMMENT |
| LOW⚡ | .claude/skills/testing/write-tests.md | 52 | ### Step 0: Determine Scope | COMMENT |
| LOW⚡ | .claude/skills/testing/write-tests.md | 60 | ### Step 1: Identify Test Targets | COMMENT |
| LOW⚡ | .claude/skills/testing/write-tests.md | 68 | ### Step 2: Create Test File | COMMENT |
| LOW | .claude/skills/testing/write-tests.md | 97 | ### Step 3: Run Tests | COMMENT |
| LOW | .claude/skills/testing/write-tests.md | 113 | ## Step 4: Summary | COMMENT |
| LOW | .claude/skills/test-feature/SKILL.md | 18 | ## Step 0: Environment setup | COMMENT |
| LOW | .claude/skills/test-feature/SKILL.md | 47 | ## Step 1: Plan the test | COMMENT |
| LOW | .claude/skills/test-feature/SKILL.md | 61 | ## Step 2: Set up test data | COMMENT |
| LOW | .claude/skills/test-feature/SKILL.md | 71 | ## Step 3: Execute the test | COMMENT |
| LOW | .claude/skills/test-feature/SKILL.md | 163 | ## Step 4: Report results | COMMENT |
| LOW | .claude/skills/test-feature/SKILL.md | 175 | ## Step 5: Persist (if appropriate) | COMMENT |
| LOW | .claude/skills/review/SKILL.md | 105 | ### Step 0: Determine Scope & Group Files | COMMENT |
| LOW | .claude/skills/review/SKILL.md | 124 | ### Step 1: Create Review Plan (TODO) | COMMENT |
| LOW | .claude/skills/review/SKILL.md | 138 | ### Step 2: Process Each Batch | COMMENT |
| LOW | .claude/skills/review/SKILL.md | 162 | ### Step 3: Summary & Options (After All Batches) | COMMENT |
| LOW | .claude/skills/review/SKILL.md | 188 | ### Step 4: Execute Fixes | COMMENT |
| LOW⚡ | packages/cli/src/setup-aws.ts | 632 | // Step 12: Update addons.parameters.yml with RDS and Redis configuration | COMMENT |
| LOW⚡ | packages/cli/src/setup-aws.ts | 641 | // Step 13: Generate and store secrets in SSM | COMMENT |
| LOW⚡ | packages/cli/src/setup-aws.ts | 718 | // Step 17: Webhook gateway is stored in templates/ and only copied to addons/ when needed | COMMENT |
| LOW⚡ | packages/cli/src/setup-aws.ts | 722 | // Step 18: Deploy environment (creates VPC, RDS) | COMMENT |
| LOW | packages/cli/src/setup-aws.ts | 125 | // Step 1: Check AWS prerequisites | COMMENT |
| LOW | packages/cli/src/setup-aws.ts | 167 | // Step 2: Get AWS profile | COMMENT |
| LOW | packages/cli/src/setup-aws.ts | 225 | // Step 3: Get AWS region | COMMENT |
| LOW | packages/cli/src/setup-aws.ts | 251 | // Step 4: Get environment name | COMMENT |
| LOW | packages/cli/src/setup-aws.ts | 275 | // Step 6: Select RDS instance size | COMMENT |
| LOW | packages/cli/src/setup-aws.ts | 293 | // Step 7: Get domain (optional) | COMMENT |
| LOW | packages/cli/src/setup-aws.ts | 312 | // Step 8: Ask about webhook gateway (for firewalled deployments) | COMMENT |
| LOW | packages/cli/src/setup-aws.ts | 366 | // Step 9: Google OAuth credentials (required) | COMMENT |
| LOW | packages/cli/src/setup-aws.ts | 419 | // Step 10: Ask about Google Cloud integration if gcloud is available | COMMENT |
| LOW | packages/cli/src/setup-aws.ts | 496 | // Step 11: Select LLM provider | COMMENT |
| LOW | packages/cli/src/setup-aws.ts | 680 | // Step 14: Initialize Copilot app (if not already done) | COMMENT |
| LOW | packages/cli/src/setup-aws.ts | 692 | // Step 15: Initialize environment | COMMENT |
| LOW | packages/cli/src/setup-aws.ts | 704 | // Step 16: Store secrets in SSM | COMMENT |
| LOW | packages/cli/src/setup-aws.ts | 833 | // Step 19: Initialize and deploy service | COMMENT |
| LOW | packages/cli/src/setup-aws.ts | 880 | // Step 20: Deploy webhook gateway addon (only if user requested it) | COMMENT |
| LOW | packages/cli/src/setup-aws.ts | 955 | // Step 21: Configure Google Pub/Sub if integrated | COMMENT |
| LOW⚡ | packages/cli/src/setup-google.ts | 35 | // Step 1: Check prerequisites | COMMENT |
| LOW | packages/cli/src/setup-google.ts | 53 | // Step 2: Ensure authentication | COMMENT |
| LOW | packages/cli/src/setup-google.ts | 70 | // Step 3: Get project ID | COMMENT |
| LOW | packages/cli/src/setup-google.ts | 90 | // Step 4: Get domain (needed for OAuth redirect URIs and Pub/Sub webhook) | COMMENT |
| LOW | packages/cli/src/setup-google.ts | 113 | // Step 5: Enable required APIs | COMMENT |
| LOW | packages/cli/src/setup-google.ts | 128 | // Step 6: OAuth Consent Screen guidance (if not skipped) | COMMENT |
| LOW | packages/cli/src/setup-google.ts | 175 | // Step 7: OAuth Credentials guidance | COMMENT |
| LOW | packages/cli/src/setup-google.ts | 242 | // Step 8: Pub/Sub setup (automated) | COMMENT |
| LOW | packages/cli/src/setup-google.ts | 287 | // Step 9: Output environment variables | COMMENT |
| LOW | apps/web/utils/calendar/handle-calendar-callback.ts | 35 | // Step 1: Validate OAuth callback parameters | COMMENT |
| LOW⚡ | apps/web/utils/calendar/handle-calendar-callback.ts | 74 | // Step 4: Verify user owns this email account | COMMENT |
| LOW⚡ | apps/web/utils/calendar/handle-calendar-callback.ts | 82 | // Step 5: Exchange code for tokens and get email | COMMENT |
| LOW⚡ | apps/web/utils/calendar/handle-calendar-callback.ts | 86 | // Step 6: Check if connection already exists | COMMENT |
| LOW⚡ | apps/web/utils/calendar/handle-calendar-callback.ts | 108 | // Step 7: Create calendar connection | COMMENT |
| 143 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | …aude/skills/agent-browser/templates/form-automation.sh | 20 | # Step 1: Navigate to form | COMMENT |
| LOW⚡ | …aude/skills/agent-browser/templates/form-automation.sh | 24 | # Step 2: Snapshot to discover form elements | COMMENT |
| LOW⚡ | …aude/skills/agent-browser/templates/form-automation.sh | 29 | # Step 3: Fill form fields (customize these refs based on snapshot output) | COMMENT |
| LOW⚡ | …aude/skills/agent-browser/templates/form-automation.sh | 46 | # Step 4: Wait for submission | COMMENT |
| LOW⚡ | …aude/skills/agent-browser/templates/form-automation.sh | 50 | # Step 5: Verify result | COMMENT |
| LOW⚡ | packages/cli/src/setup-aws.ts | 632 | // Step 12: Update addons.parameters.yml with RDS and Redis configuration | COMMENT |
| LOW⚡ | packages/cli/src/setup-aws.ts | 641 | // Step 13: Generate and store secrets in SSM | COMMENT |
| LOW⚡ | packages/cli/src/setup-aws.ts | 718 | // Step 17: Webhook gateway is stored in templates/ and only copied to addons/ when needed | COMMENT |
| LOW⚡ | packages/cli/src/setup-aws.ts | 722 | // Step 18: Deploy environment (creates VPC, RDS) | COMMENT |
| LOW | packages/cli/src/setup-aws.ts | 125 | // Step 1: Check AWS prerequisites | COMMENT |
| LOW | packages/cli/src/setup-aws.ts | 167 | // Step 2: Get AWS profile | COMMENT |
| LOW | packages/cli/src/setup-aws.ts | 225 | // Step 3: Get AWS region | COMMENT |
| LOW | packages/cli/src/setup-aws.ts | 251 | // Step 4: Get environment name | COMMENT |
| LOW | packages/cli/src/setup-aws.ts | 275 | // Step 6: Select RDS instance size | COMMENT |
| LOW | packages/cli/src/setup-aws.ts | 293 | // Step 7: Get domain (optional) | COMMENT |
| LOW | packages/cli/src/setup-aws.ts | 312 | // Step 8: Ask about webhook gateway (for firewalled deployments) | COMMENT |
| LOW | packages/cli/src/setup-aws.ts | 366 | // Step 9: Google OAuth credentials (required) | COMMENT |
| LOW | packages/cli/src/setup-aws.ts | 419 | // Step 10: Ask about Google Cloud integration if gcloud is available | COMMENT |
| LOW | packages/cli/src/setup-aws.ts | 496 | // Step 11: Select LLM provider | COMMENT |
| LOW | packages/cli/src/setup-aws.ts | 680 | // Step 14: Initialize Copilot app (if not already done) | COMMENT |
| LOW | packages/cli/src/setup-aws.ts | 692 | // Step 15: Initialize environment | COMMENT |
| LOW | packages/cli/src/setup-aws.ts | 704 | // Step 16: Store secrets in SSM | COMMENT |
| LOW | packages/cli/src/setup-aws.ts | 833 | // Step 19: Initialize and deploy service | COMMENT |
| LOW | packages/cli/src/setup-aws.ts | 880 | // Step 20: Deploy webhook gateway addon (only if user requested it) | COMMENT |
| LOW | packages/cli/src/setup-aws.ts | 955 | // Step 21: Configure Google Pub/Sub if integrated | COMMENT |
| LOW⚡ | packages/cli/src/setup-google.ts | 35 | // Step 1: Check prerequisites | COMMENT |
| LOW | packages/cli/src/setup-google.ts | 53 | // Step 2: Ensure authentication | COMMENT |
| LOW | packages/cli/src/setup-google.ts | 70 | // Step 3: Get project ID | COMMENT |
| LOW | packages/cli/src/setup-google.ts | 90 | // Step 4: Get domain (needed for OAuth redirect URIs and Pub/Sub webhook) | COMMENT |
| LOW | packages/cli/src/setup-google.ts | 113 | // Step 5: Enable required APIs | COMMENT |
| LOW | packages/cli/src/setup-google.ts | 128 | // Step 6: OAuth Consent Screen guidance (if not skipped) | COMMENT |
| LOW | packages/cli/src/setup-google.ts | 175 | // Step 7: OAuth Credentials guidance | COMMENT |
| LOW | packages/cli/src/setup-google.ts | 242 | // Step 8: Pub/Sub setup (automated) | COMMENT |
| LOW | packages/cli/src/setup-google.ts | 287 | // Step 9: Output environment variables | COMMENT |
| LOW | apps/web/utils/calendar/handle-calendar-callback.ts | 35 | // Step 1: Validate OAuth callback parameters | COMMENT |
| LOW⚡ | apps/web/utils/calendar/handle-calendar-callback.ts | 74 | // Step 4: Verify user owns this email account | COMMENT |
| LOW⚡ | apps/web/utils/calendar/handle-calendar-callback.ts | 82 | // Step 5: Exchange code for tokens and get email | COMMENT |
| LOW⚡ | apps/web/utils/calendar/handle-calendar-callback.ts | 86 | // Step 6: Check if connection already exists | COMMENT |
| LOW⚡ | apps/web/utils/calendar/handle-calendar-callback.ts | 108 | // Step 7: Create calendar connection | COMMENT |
| LOW⚡ | apps/web/utils/calendar/handle-calendar-callback.ts | 118 | // Step 8: Sync calendars | COMMENT |
| LOW⚡ | apps/web/utils/drive/filing-engine.ts | 131 | // Step 1: Download attachment | COMMENT |
| LOW⚡ | apps/web/utils/drive/filing-engine.ts | 139 | // Step 2: Extract text (optional - some file types like images can be filed by filename alone) | COMMENT |
| LOW⚡ | apps/web/utils/drive/filing-engine.ts | 228 | // Step 6: Determine target folder and drive connection | COMMENT |
| LOW⚡ | apps/web/utils/drive/filing-engine.ts | 232 | // Step 6: Create folder if needed | COMMENT |
| LOW⚡ | apps/web/utils/drive/filing-engine.ts | 253 | // Step 7: Determine if we should ask the user first | COMMENT |
| LOW⚡ | apps/web/utils/drive/filing-engine.ts | 256 | // Step 8: Upload file (unless low confidence - then we ask first) | COMMENT |
| LOW | apps/web/utils/drive/filing-engine.ts | 153 | // Step 3: Get saved filing folders (user-selected, not all folders) | COMMENT |
| LOW | apps/web/utils/drive/filing-engine.ts | 172 | // Step 4: Analyze with AI | COMMENT |
| LOW | apps/web/utils/drive/filing-engine.ts | 198 | // Step 5: Handle skip action | COMMENT |
| LOW | apps/web/utils/drive/filing-engine.ts | 272 | // Step 9: Create or replace DocumentFiling record | COMMENT |
| LOW | apps/web/utils/drive/filing-engine.ts | 304 | // Step 10: Send notification email as a reply to the source email | COMMENT |
| LOW | apps/web/utils/drive/handle-drive-callback.ts | 45 | // Step 1: Validate OAuth callback parameters | COMMENT |
| LOW⚡ | apps/web/utils/drive/handle-drive-callback.ts | 82 | // Step 3: Update redirect URL to include emailAccountId | COMMENT |
| LOW⚡ | apps/web/utils/drive/handle-drive-callback.ts | 85 | // Step 4: Verify user owns this email account | COMMENT |
| LOW⚡ | apps/web/utils/drive/handle-drive-callback.ts | 93 | // Step 5: Exchange code for tokens and get email | COMMENT |
| LOW⚡ | apps/web/utils/drive/handle-drive-callback.ts | 97 | // Step 6: Create or update drive connection | COMMENT |
| LOW⚡ | apps/web/__tests__/e2e/labeling/google-labeling.test.ts | 488 | // Step 1: Create label | COMMENT |
| LOW⚡ | apps/web/__tests__/e2e/labeling/google-labeling.test.ts | 495 | // Step 2: Verify label exists in list | COMMENT |
| LOW⚡ | apps/web/__tests__/e2e/labeling/google-labeling.test.ts | 502 | // Step 3: Apply label to message | COMMENT |
| LOW⚡ | apps/web/__tests__/e2e/labeling/google-labeling.test.ts | 511 | // Step 4: Verify label on message | COMMENT |
| 122 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | …(app)/[emailAccountId]/mail/use-thread-actions.test.ts | 81 | mail.client.submitConversations.mock.calls.map(([command]) => ({ | CODE |
| CRITICAL | …(app)/[emailAccountId]/mail/use-thread-actions.test.ts | 98 | mail.client.cancelOperation.mock.calls.map(([key]) => key.accountId), | CODE |
| CRITICAL | apps/web/app/api/chat/route.test.ts | 735 | return prisma.chat.updateMany.mock.calls.find( | CODE |
| CRITICAL | apps/web/app/api/outlook/linking/callback/route.test.ts | 129 | prisma.account.findUnique.mock.calls.map( | CODE |
| CRITICAL | apps/web/utils/organizations/rules.test.ts | 350 | const ruleIds = prisma.rule.create.mock.calls.map( | CODE |
| CRITICAL | apps/web/utils/meeting-recorder/reconcile.test.ts | 36 | const detachCall = prisma.meeting.updateMany.mock.calls.find( | CODE |
| CRITICAL | apps/web/utils/gmail/filter.ts | 111 | options.gmail.users.settings.filters.list({ userId: "me" }), | CODE |
| CRITICAL | …eb/__tests__/integration/gmail-mailbox-history.test.ts | 38 | const originalList = harness.gmailClient.users.history.list.bind( | CODE |
| CRITICAL | …__tests__/integration/recall-meeting-lifecycle.test.ts | 119 | const written = prismaMock.meetingRecording.updateMany.mock.calls.map( | CODE |
| CRITICAL | …__tests__/integration/recall-meeting-lifecycle.test.ts | 211 | const guards = prismaMock.meetingRecording.updateMany.mock.calls.map( | CODE |
| CRITICAL | …b/__tests__/eval/assistant-chat-rule-diagnosis.test.ts | 343 | return prisma.executedRule.findMany.mock.calls.some( | CODE |
| CRITICAL | …/eval/assistant-chat-microsoft-search-feedback.test.ts | 519 | prisma.executedRule.findMany.mock.calls.some( | CODE |
| CRITICAL | …/eval/assistant-chat-microsoft-search-feedback.test.ts | 666 | prisma.executedRule.findMany.mock.calls.some( | CODE |
| CRITICAL | …/eval/assistant-chat-microsoft-search-feedback.test.ts | 813 | prisma.executedRule.findMany.mock.calls.some( | CODE |
| CRITICAL | …/eval/assistant-chat-microsoft-search-feedback.test.ts | 946 | prisma.executedRule.findMany.mock.calls.some( | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …b/app/(app)/[emailAccountId]/assistant/ActionSteps.tsx | 294 | // For labelId field, only allow variables if AI generated is toggled on | COMMENT |
| HIGH | …b/app/(app)/[emailAccountId]/assistant/ActionSteps.tsx | 396 | // For AI-generated labelId, read from .name instead of .value | COMMENT |
| HIGH | apps/web/utils/risk.ts | 192 | // Fail safe: an unrecognised tool is assumed to write AI-generated content, | COMMENT |
| HIGH | apps/web/utils/ai/choose-rule/choose-args.ts | 205 | // Merge variables for each field that has AI-generated content | COMMENT |
| HIGH | apps/web/utils/ai/choose-rule/choose-args.ts | 309 | // Skip if no AI-generated fields are needed | COMMENT |
| HIGH | apps/web/utils/actions/rule.validation.ts | 201 | // folderId is optional: name-only input (from AI-generated rules) is | COMMENT |
| HIGH | apps/web/utils/follow-up/cleanup.ts | 74 | // Only delete drafts that are tracked in our database (AI-generated) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | apps/web/app/api/team-comments/activity/route.ts | 40 | async function getData( | CODE |
| LOW | apps/web/app/api/team-comments/conversations/route.ts | 19 | async function getData(userId: string, params: URLSearchParams) { | CODE |
| LOW | …/team-comments/conversations/[conversationId]/route.ts | 24 | async function getData( | CODE |
| LOW | …ments/conversations/[conversationId]/comments/route.ts | 46 | async function getData( | CODE |
| LOW | …ments/conversations/[conversationId]/messages/route.ts | 30 | async function getData( | CODE |
| LOW | apps/web/app/api/admin/top-spenders/route.ts | 27 | async function getData() { | CODE |
| LOW | apps/web/app/api/user/messaging-channels/route.ts | 27 | async function getData({ emailAccountId }: { emailAccountId: string }) { | CODE |
| LOW | …i/user/messaging-channels/[channelId]/targets/route.ts | 26 | async function getData({ | CODE |
| LOW | apps/web/app/api/user/executed-rules/batch/route.ts | 10 | async function getData({ | CODE |
| LOW | apps/web/app/api/user/snippets/route.ts | 13 | async function getData({ emailAccountId }: { emailAccountId: string }) { | CODE |
| LOW | apps/web/app/api/user/meeting-briefs/route.ts | 15 | async function getData({ emailAccountId }: { emailAccountId: string }) { | CODE |
| LOW | apps/web/app/api/user/meeting-briefs/history/route.ts | 18 | async function getData({ emailAccountId }: { emailAccountId: string }) { | CODE |
| LOW | apps/web/app/api/user/thread-plans/route.ts | 24 | async function getData({ | CODE |
| LOW | apps/web/app/api/user/calendars/route.ts | 14 | async function getData({ emailAccountId }: { emailAccountId: string }) { | CODE |
| LOW | apps/web/app/api/user/calendar/upcoming-events/route.ts | 23 | async function getData({ | CODE |
| LOW | apps/web/app/api/user/sent-message-opens/route.ts | 45 | async function getData(emailAccountId: string, threadIds: string[]) { | CODE |
| LOW | apps/web/app/api/user/contacts/photos/route.ts | 34 | async function getData({ | CODE |
| LOW | apps/web/app/api/user/booking-links/route.ts | 15 | async function getData({ emailAccountId }: { emailAccountId: string }) { | CODE |
| LOW | apps/web/app/api/user/digest-status/route.ts | 17 | async function getData({ emailAccountId }: { emailAccountId: string }) { | CODE |
| LOW | apps/web/app/api/user/availability/route.ts | 15 | async function getData({ emailAccountId }: { emailAccountId: string }) { | CODE |
| LOW | apps/web/app/api/user/draft-actions/route.ts | 16 | async function getData({ emailAccountId }: { emailAccountId: string }) { | CODE |
| LOW | apps/web/app/api/user/organization-membership/route.ts | 19 | async function getData({ emailAccountId }: { emailAccountId: string }) { | CODE |
| LOW | apps/web/app/api/user/persona/route.ts | 15 | async function getData({ emailAccountId }: { emailAccountId: string }) { | CODE |
| LOW | apps/web/app/api/user/meeting-recorder/route.ts | 20 | async function getData({ emailAccountId }: { emailAccountId: string }) { | CODE |
| LOW | …ps/web/app/api/user/meeting-recorder/upcoming/route.ts | 37 | async function getData({ | CODE |
| LOW | …ps/web/app/api/user/meeting-recorder/meetings/route.ts | 23 | async function getData({ emailAccountId }: { emailAccountId: string }) { | CODE |
| LOW | apps/web/app/api/user/drive/source-items/route.ts | 26 | async function getData({ | CODE |
| LOW | …eb/app/api/user/drive/source-items/[folderId]/route.ts | 38 | async function getData({ | CODE |
| LOW | apps/web/app/api/user/drive/connections/route.ts | 17 | async function getData({ emailAccountId }: { emailAccountId: string }) { | CODE |
| LOW | apps/web/app/api/user/drive/folders/route.ts | 23 | async function getData({ | CODE |
| LOW | apps/web/app/api/user/drive/folders/[folderId]/route.ts | 34 | async function getData({ | CODE |
| LOW | …p/api/user/public-contact-context/[messageId]/route.ts | 38 | async function getData({ | CODE |
| LOW | apps/web/app/api/user/automation-jobs/route.ts | 13 | async function getData({ emailAccountId }: { emailAccountId: string }) { | CODE |
| LOW | apps/web/app/api/mcp/integrations/route.ts | 15 | async function getData(emailAccountId: string) { | CODE |
| LOW | apps/web/app/api/mcp/[integration]/arg-options/route.ts | 29 | async function getData({ | CODE |
| LOW | apps/web/app/api/voice/status/route.ts | 14 | async function getData({ emailAccountId }: { emailAccountId: string }) { | CODE |
| LOW | apps/web/app/api/mobile/mailbox-sync/route.ts | 58 | async function getData({ | CODE |
| LOW | apps/web/__tests__/emulators/todoist-mcp.ts | 66 | async function handleRequest( | CODE |
| LOW | apps/web/__tests__/emulators/knowledge-base-mcp.ts | 111 | async function handleRequest( | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docker/docker-compose.local.yml | 1 | # docker-compose.local.yml - Run locally built inbox-zero image with dependencies | COMMENT |
| LOW | docker/scripts/run-local.sh | 1 | #!/bin/bash | COMMENT |
| LOW | docker/scripts/publish-ghcr.sh | 1 | #!/bin/bash | COMMENT |
| LOW | docker/scripts/publish-ghcr.sh | 21 | # ./docker/scripts/publish-ghcr.sh --local test # build locally with custom tag | COMMENT |
| LOW | copilot/environments/addons/rds.yml | 1 | # RDS PostgreSQL Database for Inbox Zero | COMMENT |
| LOW | copilot/environments/addons/addons.parameters.yml | 1 | # Parameters for environment addons | COMMENT |
| LOW | copilot/environments/addons/addons.parameters.yml | 21 | # RDS PostgreSQL Configuration | COMMENT |
| LOW | copilot/environments/addons/elasticache-redis.yml | 1 | # ElastiCache Redis Replication Group for Inbox Zero ECS | COMMENT |
| LOW | copilot/templates/webhook-gateway.yml | 1 | # API Gateway HTTP API with JWT Authorization for Google Pub/Sub Webhooks | COMMENT |
| LOW | …ude/skills/agent-browser/templates/capture-workflow.sh | 1 | #!/bin/bash | COMMENT |
| LOW | …aude/skills/agent-browser/templates/form-automation.sh | 1 | #!/bin/bash | COMMENT |
| LOW | …aude/skills/agent-browser/templates/form-automation.sh | 21 | agent-browser open "$FORM_URL" | COMMENT |
| LOW | …kills/agent-browser/templates/authenticated-session.sh | 1 | #!/bin/bash | COMMENT |
| LOW | …kills/agent-browser/templates/authenticated-session.sh | 81 | # | COMMENT |
| LOW | …kills/agent-browser/templates/authenticated-session.sh | 101 | # # Save state for future runs | COMMENT |
| LOW | scripts/run-e2e-local.sh | 1 | #!/bin/bash | COMMENT |
| LOW | packages/cli/src/utils.test.ts | 361 | expect(result).toContain("# Auth"); | COMMENT |
| LOW | packages/transactional-email/src/send.tsx | 161 | // export const sendStatsEmail = async ({ | COMMENT |
| LOW | .github/workflows/claude-code-review.yml | 41 | # Remove direct_prompt since we're using @claude mentions | COMMENT |
| LOW | .github/workflows/claude-code-review.yml | 61 | # - For tests: Coverage, edge cases, and test quality | COMMENT |
| LOW | .github/workflows/claude.yml | 41 | actions: read | COMMENT |
| LOW | .github/workflows/claude.yml | 61 | # Optional: Custom environment variables for Claude | COMMENT |
| LOW | …/app/api/user/categorize/senders/batch/handle-batch.ts | 121 | // for (const sender of uncategorizedSenders) { | COMMENT |
| LOW | apps/web/app/api/lemon-squeezy/webhook/route.ts | 321 | }); | COMMENT |
| LOW | apps/web/utils/categories.ts | 41 | // WORK: { name: "Work", enabled: false, description: "Professional contacts and work-related communications" }, | COMMENT |
| LOW | apps/web/utils/announcements.tsx | 21 | export const ANNOUNCEMENTS: Announcement[] = [ | COMMENT |
| LOW | apps/web/utils/announcements.tsx | 41 | // }, | COMMENT |
| LOW | apps/web/utils/mcp/integrations.ts | 141 | // "create_column", | COMMENT |
| LOW | …eb/utils/ai/choose-rule/ai-detect-recurring-pattern.ts | 201 | // emailCount: emails.length, | COMMENT |
| LOW | apps/web/utils/actions/premium.ts | 181 | }); | COMMENT |
| LOW | apps/web/utils/meeting-recorder/config.ts | 21 | // Transcribing an hour-long call takes a while, so wait well past the point a | COMMENT |
| LOW | apps/web/utils/follow-up/process.ts | 261 | COMMENT | |
| LOW | apps/web/utils/outlook/client.ts | 221 | // Background processes (watch-manager) will catch and log this as a warning | COMMENT |
| LOW | apps/web/components/ui/sidebar.tsx | 401 | )); | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | .github/workflows/e2e-flows.yml | 3 | # This workflow runs comprehensive E2E tests with real email accounts. | COMMENT |
| MEDIUM | .github/workflows/claude-code-review.yml | 44 | # - Code quality and best practices | COMMENT |
| MEDIUM | .github/workflows/claude-code-review.yml | 60 | # - For React components: Performance, accessibility, and best practices | COMMENT |
| MEDIUM | .github/workflows/claude-code-review.yml | 67 | # 'Please provide a thorough code review focusing on our coding standards and best practices.' }} | COMMENT |
| MEDIUM | .github/workflows/ai-evals.yml | 62 | # Minimal env vars required for test harness | COMMENT |
| MEDIUM | apps/web/utils/parse/calender-event.ts | 181 | // This is a simplistic approach - for production code, you'd want more robust parsing | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …app)/[emailAccountId]/assistant/rule/[ruleId]/page.tsx | 20 | These rules were AI generated, feel free to adjust them to your | CODE |
| MEDIUM | …egration/reply-context-search-thread-precedent.test.ts | 169 | I've assembled it all and the control panel for the rising desk just reads "RsT". I'm unable to raise or lower the desk. | CODE |
| MEDIUM | …egration/reply-context-search-thread-precedent.test.ts | 251 | I've assembled it all and the control panel for the rising desk just reads "RsT". I'm unable to raise or lower the desk. | CODE |
| MEDIUM | …egration/reply-context-search-thread-precedent.test.ts | 258 | I've assembled it all and the control panel for the rising desk just reads "RsT". I'm unable to raise or lower the desk. | CODE |
| MEDIUM | …s/web/__tests__/ai-regression/ai-writing-style.test.ts | 60 | "Here's the report you requested. Let me know if you need anything else.", | CODE |
| MEDIUM | …__/ai-regression/reply/reply-context-collector.test.ts | 63 | "Attached is your March invoice. Let me know if you need more.", | CODE |
| MEDIUM⚡ | …ps/web/__tests__/e2e/flows/follow-up-reminders.test.ts | 219 | body: "Thanks! Can you please confirm you received this and let me know if you need anything else?", | CODE |
| MEDIUM⚡ | …ps/web/__tests__/e2e/flows/follow-up-reminders.test.ts | 586 | body: "Thanks! Can you please confirm you received this and let me know if you need anything else?", | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docker/docker-compose.local.yml | 3 | # Usage: | COMMENT |
| LOW | docker/scripts/run-local.sh | 7 | # Usage: | COMMENT |
| LOW | docker/scripts/publish-ghcr.sh | 13 | # Usage: | COMMENT |
| LOW | scripts/run-e2e-local.sh | 5 | # Usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docker/scripts/run-local.sh | 51 | # Check if image exists locally | COMMENT |
| LOW | charts/inbox-zero/values.yaml | 86 | # Set NEXT_PUBLIC_BASE_URL to the public URL users and OAuth providers will use. | COMMENT |
| LOW | scripts/run-e2e-local.sh | 109 | # Check if tunnel is up via the API (cache response to avoid redundant calls) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …eb/__tests__/ai-regression/ai-meeting-briefing.test.ts | 19 | const TIMEOUT = 60_000; // Longer timeout for agentic flow with research | CODE |