Repository Analysis

super-productivity/super-productivity

Super Productivity is an advanced todo list app with integrated Timeboxing and time tracking capabilities. It also comes with integrations for Jira, GitLab, GitHub and Open Project.

1.5 Likely human-written View on GitHub
1.5
Adjusted Score
1.5
Raw Score
100%
Time Factor
2026-05-30
Last Push
19,756
Stars
TypeScript
Language
819,549
Lines of Code
3784
Files
655
Pattern Hits
2026-05-31
Scan Date

Score History

Severity Breakdown

CRITICAL 3HIGH 2MEDIUM 165LOW 485

Pattern Findings

655 matches across 11 categories. Click a row to expand file-level details.

Decorative Section Separators154 hits · 496 pts
SeverityFileLineSnippet
MEDIUM.github/dependabot.yml6 # ==========================================
MEDIUM.github/dependabot.yml8 # ==========================================
MEDIUM.github/dependabot.yml30 # ==========================================
MEDIUM.github/dependabot.yml32 # ==========================================
MEDIUM.github/workflows/wiki-sync.yml102 # --------------------------------------------------------------------
MEDIUM.github/workflows/wiki-sync.yml111 # --------------------------------------------------------------------
MEDIUM.github/workflows/wiki-sync.yml120 # --------------------------------------------------------------------
MEDIUMe2e/store-screenshots/fixture.ts148 // window outer bounds. ─────────────────────────────────────────
MEDIUMe2e/store-screenshots/fixture.ts319 // ─── electron mode ────────────────────────────────────────────────
MEDIUMe2e/store-screenshots/fixture.ts445 // ─── web mode (default) ───────────────────────────────────────────
MEDIUM…/tests/recurring/invalid-clock-string-bug-7067.spec.ts26 // ── Phase 1: Create a task with a timed repeat config ─────────────────────
MEDIUM…/tests/recurring/invalid-clock-string-bug-7067.spec.ts58 // ── Phase 2: Corrupt the startTime ────────────────────────────────────────
MEDIUM…/tests/recurring/invalid-clock-string-bug-7067.spec.ts205 // ── Phase 3: Verify no "Invalid clock string" crash ───────────────────────
MEDIUM…ests/recurring/repeat-task-day-change-bug-6230.spec.ts98 // ──────────────────────────────────────────────────────────────────────────
MEDIUM…ests/recurring/repeat-task-day-change-bug-6230.spec.ts112 // ──────────────────────────────────────────────────────────────────────────
MEDIUMe2e/store-video/scenarios/keyboard.spec.ts125 // ── Pre-roll (trimmed off the reel) ──────────────────────────────────
MEDIUMe2e/store-video/scenarios/keyboard.spec.ts132 // ── Lead-in ──────────────────────────────────────────────────────────
MEDIUMe2e/store-video/scenarios/keyboard.spec.ts135 // ── Beat 1 — "Keyboard-first." ───────────────────────────────────────
MEDIUMe2e/store-video/scenarios/keyboard.spec.ts141 // ── Beat 2 — Shift+A → quick capture ─────────────────────────────────
MEDIUMe2e/store-video/scenarios/keyboard.spec.ts250 // ── Beat 3 — J / K → navigate task list ──────────────────────────────
MEDIUMe2e/store-video/scenarios/keyboard.spec.ts264 // ── Beat 4 — F → focus mode ──────────────────────────────────────────
MEDIUMe2e/store-video/scenarios/keyboard.spec.ts312 // ── Beat 4 → 5 — dismiss focus mode behind the end card ──────────────
MEDIUMe2e/store-video/scenarios/keyboard.spec.ts341 // ── Loop boundary ────────────────────────────────────────────────────
MEDIUMe2e/store-video/scenarios/mobile.spec.ts42 // ── Pre-roll (trimmed off the reel) ──────────────────────────────────
MEDIUMe2e/store-video/scenarios/mobile.spec.ts48 // ── Lead-in ──────────────────────────────────────────────────────────
MEDIUMe2e/store-video/scenarios/mobile.spec.ts51 // ── Beat 1 — "On the go." ────────────────────────────────────────────
MEDIUMe2e/store-video/scenarios/mobile.spec.ts57 // ── Beat 2 — Tap + → quick capture ───────────────────────────────────
MEDIUMe2e/store-video/scenarios/mobile.spec.ts99 // ── Beat 3 — Tap captured task → focus mode ──────────────────────────
MEDIUMe2e/store-video/scenarios/mobile.spec.ts141 // ── Beat 4 — End card "Mobile · iOS · Android" ──────────────────────
MEDIUMe2e/store-video/scenarios/mobile.spec.ts172 // ── Loop boundary ────────────────────────────────────────────────────
MEDIUMe2e/store-video/scenarios/reel.spec.ts76 // ── Pre-roll (trimmed off the gif) ────────────────────────────────────
MEDIUMe2e/store-video/scenarios/reel.spec.ts108 // ── Lead-in ──────────────────────────────────────────────────────────
MEDIUMe2e/store-video/scenarios/reel.spec.ts111 // ── Beat 1 — Capture in seconds. ─────────────────────────────────────
MEDIUMe2e/store-video/scenarios/reel.spec.ts133 // ── Beat 1 → next: cut to black, swap state ──────────────────────────
MEDIUMe2e/store-video/scenarios/reel.spec.ts190 // ── Beat 1.5 → 2 transition (full variant only) ──────────────────────
MEDIUMe2e/store-video/scenarios/reel.spec.ts206 // ── Beat 2 — Plan your day. (native app drag) ────────────────────────
MEDIUMe2e/store-video/scenarios/reel.spec.ts240 // ── Beat 2 → 3 transition: cut to black, dispatch focus mode ─────────
MEDIUMe2e/store-video/scenarios/reel.spec.ts334 // ── Beat 4 → 5 transition: crossfade between controlled cards ───────
MEDIUMe2e/store-video/scenarios/reel.spec.ts357 // ── Loop boundary ────────────────────────────────────────────────────
MEDIUM…s/issue/providers/caldav/caldav-client.service.spec.ts6// ─── _getParentRelatedTo ──────────────────────────────────────────────────────
MEDIUM…s/issue/providers/caldav/caldav-client.service.spec.ts72// ─── _getXhrProvider / _getAndroidXhrProvider ─────────────────────────────────
MEDIUM…s/issue/providers/caldav/caldav-client.service.spec.ts343 // ── abort() ───────────────────────────────────────────────────────────────────
MEDIUMsrc/app/root-store/meta/meta-reducer-registry.ts78 // ═══════════════════════════════════════════════════════════════════════════
MEDIUMsrc/app/root-store/meta/meta-reducer-registry.ts80 // ═══════════════════════════════════════════════════════════════════════════
MEDIUMsrc/app/root-store/meta/meta-reducer-registry.ts85 // ═══════════════════════════════════════════════════════════════════════════
MEDIUMsrc/app/root-store/meta/meta-reducer-registry.ts87 // ═══════════════════════════════════════════════════════════════════════════
MEDIUMsrc/app/root-store/meta/meta-reducer-registry.ts94 // ═══════════════════════════════════════════════════════════════════════════
MEDIUMsrc/app/root-store/meta/meta-reducer-registry.ts96 // ═══════════════════════════════════════════════════════════════════════════
MEDIUMsrc/app/root-store/meta/meta-reducer-registry.ts106 // ═══════════════════════════════════════════════════════════════════════════
MEDIUMsrc/app/root-store/meta/meta-reducer-registry.ts108 // ═══════════════════════════════════════════════════════════════════════════
MEDIUMsrc/app/root-store/meta/meta-reducer-registry.ts115 // ═══════════════════════════════════════════════════════════════════════════
MEDIUMsrc/app/root-store/meta/meta-reducer-registry.ts117 // ═══════════════════════════════════════════════════════════════════════════
MEDIUMsrc/app/root-store/meta/meta-reducer-registry.ts123 // ═══════════════════════════════════════════════════════════════════════════
MEDIUMsrc/app/root-store/meta/meta-reducer-registry.ts125 // ═══════════════════════════════════════════════════════════════════════════
MEDIUMsrc/app/root-store/meta/meta-reducer-registry.ts128 // ═══════════════════════════════════════════════════════════════════════════
MEDIUMsrc/app/root-store/meta/meta-reducer-registry.ts130 // ═══════════════════════════════════════════════════════════════════════════
MEDIUMsrc/app/root-store/meta/meta-reducer-registry.ts134 // ═══════════════════════════════════════════════════════════════════════════
MEDIUMsrc/app/root-store/meta/meta-reducer-registry.ts136 // ═══════════════════════════════════════════════════════════════════════════
MEDIUM…/app/op-log/apply/archive-operation-handler.service.ts106 // ═══════════════════════════════════════════════════════════════════════════
MEDIUM…/app/op-log/apply/archive-operation-handler.service.ts108 // ═══════════════════════════════════════════════════════════════════════════
94 more matches not shown…
Verbosity Indicators224 hits · 404 pts
SeverityFileLineSnippet
LOWtools/generate-ios-icon.js36 // Step 1: Read source PNG
LOWtools/generate-ios-icon.js45 // Step 2: Resize and remove alpha channel
LOWtools/generate-ios-icon.js61 // Step 3: Write to output file
LOWtools/generate-ios-icon.js73 // Step 4: Verify output
LOW…und/__tests__/sync/markdown-parser-integration.test.ts11 // Step 1: Parse markdown
LOW…und/__tests__/sync/markdown-parser-integration.test.ts20 // Step 2: Generate operations for empty SP
LOW…ackground/__tests__/sync/add-subtask-from-file.test.ts173 // Step 1: Start with SP tasks (parent + 1 subtask)
LOW…ackground/__tests__/sync/add-subtask-from-file.test.ts187 // Step 2: SP→MD generates the markdown
LOW…ackground/__tests__/sync/add-subtask-from-file.test.ts192 // Step 3: User adds a new subtask to the markdown
LOW…ackground/__tests__/sync/add-subtask-from-file.test.ts195 // Step 4: MD→SP parses and generates operations
LOW…ackground/__tests__/sync/add-subtask-from-file.test.ts209 // Step 5: Simulate what happens after the batch update -
LOW…ackground/__tests__/sync/add-subtask-from-file.test.ts231 // Step 6: Parse the final markdown and check no more operations needed
LOW…und/__tests__/sync/sync-oscillation-prevention.test.ts268 // Step 1: Initialize with existing tasks
LOW…und/__tests__/sync/sync-oscillation-prevention.test.ts276 // Step 2: User edits file - adds new subtask
LOW…und/__tests__/sync/sync-oscillation-prevention.test.ts281 // Step 3: File watcher detects change → MD→SP sync
LOW…und/__tests__/sync/sync-oscillation-prevention.test.ts299 // Step 4: SP hook fires from batch update — should be suppressed
LOW…c-md/src/background/__tests__/sync/integration.test.ts60 // Step 1: Parse markdown to internal format
LOW…c-md/src/background/__tests__/sync/integration.test.ts63 // Step 2: Convert to SP Task format
LOW…c-md/src/background/__tests__/sync/integration.test.ts76 // Step 3: Convert back to markdown
LOW…c-md/src/background/__tests__/sync/integration.test.ts79 // Step 4: Parse regenerated markdown
LOW…ackground/sync/header-preservation.integration.spec.ts81 // Step 1: Parse markdown and sync to SP
LOW…ackground/sync/header-preservation.integration.spec.ts84 // Step 2: Mock the file read to return the original content with header
LOW…ackground/sync/header-preservation.integration.spec.ts125 // Step 3: Run spToMd and verify header is preserved
LOWpackages/super-sync-server/tools/backup-encrypted.sh70# Step 1: Stream database dump → compression → encryption
LOWpackages/super-sync-server/tools/backup-encrypted.sh84# Step 2: Verify encrypted file
LOWpackages/super-sync-server/tools/backup-encrypted.sh110# Step 3: Log backup event (audit trail)
LOW…attempts-openvz-incompatible/setup-encrypted-volume.sh62# Step 1: Create loop device file
LOW…attempts-openvz-incompatible/setup-encrypted-volume.sh68# Step 2: Initialize LUKS with Argon2id
LOW…attempts-openvz-incompatible/setup-encrypted-volume.sh86# Step 3: Add emergency recovery key (Slot 1)
LOW…attempts-openvz-incompatible/setup-encrypted-volume.sh96# Step 4: Open and format
LOW…attempts-openvz-incompatible/setup-encrypted-volume.sh104# Step 5: Mount and set permissions
LOW…attempts-openvz-incompatible/setup-encrypted-volume.sh114# Step 6: Verify AES-NI hardware acceleration
LOW…attempts-openvz-incompatible/setup-encrypted-volume.sh125# Step 7: Backup LUKS header (CRITICAL for disaster recovery)
LOW…ttempts-openvz-incompatible/unlock-encrypted-volume.sh47# Step 1: Unlock LUKS volume
LOW…ttempts-openvz-incompatible/unlock-encrypted-volume.sh68# Step 2: Mount filesystem
LOW…ttempts-openvz-incompatible/unlock-encrypted-volume.sh75# Step 3: Verify mount and permissions
LOW…ttempts-openvz-incompatible/unlock-encrypted-volume.sh106# Step 4: Audit logging (GDPR compliance)
LOW…pts-openvz-incompatible/migrate-to-encrypted-volume.sh44# Step 1: Pre-migration validation
LOW…pts-openvz-incompatible/migrate-to-encrypted-volume.sh85# Step 2: Create pre-migration backup
LOW…pts-openvz-incompatible/migrate-to-encrypted-volume.sh102# Step 3: Stop PostgreSQL cleanly
LOW…pts-openvz-incompatible/migrate-to-encrypted-volume.sh134# Step 4: Copy data with hard link preservation
LOW…pts-openvz-incompatible/migrate-to-encrypted-volume.sh153# Step 5: Verify data integrity
LOW…pts-openvz-incompatible/migrate-to-encrypted-volume.sh193# Step 6: Set proper permissions
LOW…pts-openvz-incompatible/migrate-to-encrypted-volume.sh200# Step 7: Summary
LOW…ption-attempts-openvz-incompatible/verify-migration.sh26# Step 1: File count verification
LOW…ption-attempts-openvz-incompatible/verify-migration.sh40# Step 2: Total size verification
LOW…ption-attempts-openvz-incompatible/verify-migration.sh55# Step 3: Checksum verification (detects silent corruption)
LOW…ption-attempts-openvz-incompatible/verify-migration.sh88# Step 4: PostgreSQL-specific integrity checks
LOW…ption-attempts-openvz-incompatible/verify-migration.sh121# Step 5: Database-level verification (if PostgreSQL is running)
LOW…ges/super-sync-server/tests/conflict-detection.spec.ts881 // Step 1: Create an entity with a clock that has exactly MAX entries
LOW…ges/super-sync-server/tests/conflict-detection.spec.ts897 // Step 2: clientA resolves conflict by merging entity clock + its own ID → MAX+1 entries.
LOWpackages/super-sync-server/tests/sync-fixes.spec.ts307 // Step 1: Client A uploads with requestId
LOWpackages/super-sync-server/tests/sync-fixes.spec.ts324 // Step 2: Client B uploads ops
LOWpackages/super-sync-server/tests/sync-fixes.spec.ts336 // Step 3: Client A retries with same requestId but updated lastKnownServerSeq
LOWpackages/super-sync-server/tests/sync.service.spec.ts1795 // Step 1: Initial State
LOWpackages/super-sync-server/tests/sync.service.spec.ts1817 // Step 2: Add more operations
LOW…ests/integration/multi-client-sync.integration.spec.ts996 // Step 1: Desktop creates initial tasks
LOW…ests/integration/multi-client-sync.integration.spec.ts1004 // Step 2: Mobile comes online and downloads
LOW…ests/integration/multi-client-sync.integration.spec.ts1015 // Step 3: Mobile makes changes
LOW…ests/integration/multi-client-sync.integration.spec.ts1026 // Step 4: Desktop syncs
164 more matches not shown…
Over-Commented Block170 hits · 170 pts
SeverityFileLineSnippet
LOWelectron-builder.yaml101# GenericName: ToDo List and Time Tracker
LOWelectron-builder.yaml121 # https://github.com/super-productivity/super-productivity/issues/4920
LOWelectron-builder.yaml201 publish:
LOWcapacitor.config.ts21 // to-edge-support; ignored on iOS where this key has no effect.
LOWtools/notarizeMacApp.js61
LOWtools/notarizeMacApp.js81 // eslint-disable-next-line @typescript-eslint/no-explicit-any -- Old code before rule was applied
LOWtools/afterPack.js1// Post-pack hook for Linux builds.
LOWtools/remove-woff.js21// fs.writeFileSync(filePath, newFileContent);
LOWdocs/long-term-plans/electron-upgrade-to-v40.md81 # Fix for issue #4920: Isolate fontconfig cache to prevent GTK dialog rendering issues
LOWpackages/plugin-dev/PLUGIN_I18N.md201api.formatDate(now, 'short');
LOWpackages/plugin-dev/doc-mode/src/persistence.spec.ts121test('persistContextDocRaw: writes the exact raw string under doc:<ctxId>', async () => {
LOWpackages/plugin-dev/doc-mode/src/ui/editor.ts41
LOWpackages/plugin-dev/doc-mode/src/ui/editor.ts81// back to an empty seed. Gates scheduleSave so the empty seed is not
LOWpackages/plugin-dev/doc-mode/src/ui/editor.ts241const flushSave = async (): Promise<void> => {
LOWpackages/plugin-dev/doc-mode/src/ui/editor.ts461 }
LOW…kages/plugin-dev/ai-productivity-prompts/src/plugin.ts1// Procrastination Buster Plugin for Super Productivity
LOWpackages/plugin-api/src/types.ts781 MESSAGE_ERROR = 'PLUGIN_MESSAGE_ERROR',
LOW…ckages/super-sync-server/docker-compose.monitoring.yml1# Monitoring stack for SuperSync Server
LOW…mpts-openvz-incompatible/docker-compose.encrypted.yaml1# Docker Compose overlay for encrypted PostgreSQL data at rest
LOW…kages/super-sync-server/tests/snapshot.service.spec.ts1681 // implementation used `Object.assign(state, fullState)`. Because
LOW…kages/super-sync-server/tests/snapshot.service.spec.ts1741 expect(result.polluted).toBeUndefined();
LOWpackages/super-sync-server/scripts/migrate-deploy.sh1#!/bin/sh
LOWpackages/super-sync-server/scripts/migrate-deploy.sh21# invoke it, so it carries its own step timeout as defense-in-depth (deploy.sh
LOWpackages/super-sync-server/scripts/health-alert.sh1#!/bin/bash
LOWpackages/super-sync-server/scripts/backup.sh1#!/bin/bash
LOWpackages/super-sync-server/scripts/docker-monitor.sh1#!/bin/bash
LOWpackages/super-sync-server/scripts/build-and-push.sh1#!/bin/bash
LOWpackages/super-sync-server/scripts/deploy.sh1#!/bin/bash
LOWpackages/super-sync-server/helm/supersync/values.yaml141 memory: 512Mi
LOW…ages/super-sync-server/src/sync/sync.routes.payload.ts41// Different limits for ops vs snapshots:
LOW…erver/src/sync/services/snapshot-generation.service.ts201 // only writes when our seq is newer; if no row exists yet (first-time
LOW…rver/src/sync/services/websocket-connection.service.ts81 const existingSet = this.connections.get(userId);
LOW…server/src/sync/services/operation-download.service.ts341 ): Promise<VectorClock> {
LOW…sync-server/src/sync/services/storage-quota.service.ts441 batchLimit,
LOW…er-sync-server/src/sync/services/validation.service.ts141 valid: false,
LOWpackages/sync-core/tests/vector-clock.spec.ts541 // Normal ops carry full (unpruned) vector clocks. The server prunes
LOWpackages/sync-providers/tests/errors.spec.ts181 });
LOW…ub/workflows/build-create-windows-store-on-release.yml121 name: WinStoreReleaseNotes
LOW.github/workflows/build-publish-to-snap-on-release.yml61 upload sp.snap --release edge,stable
LOW.github/workflows/build-publish-to-snap-on-release.yml81# id: npm-cache # use this to check for `cache-hit` ==> if: steps.npm-cache.outputs.cache-hit != 'true'
LOW.github/workflows/build-publish-to-snap-on-release.yml101# - name: Build Frontend & Electron
LOW.github/workflows/codeql-analysis.yml61 languages: ${{ matrix.language }}
LOW.github/workflows/electron-smoke.yml1name: Electron Packaging Smoke Test
LOW.github/workflows/claude.yml41 additional_permissions: |
LOWelectron/debug.ts61
LOWelectron/start-app.ts61 // https://github.com/super-productivity/super-productivity/issues/4375#issuecomment-2883838113
LOWelectron/start-app.ts141 ) {
LOWelectron/start-app.ts161 // (Chromium may still run a GPU process in SwiftShader or
LOWelectron/start-app.ts461 // ------------
LOWelectron/gpu-startup-guard.ts1import * as fs from 'fs';
LOW…sts/daily-summary/issue-7487-malformed-archive.spec.ts1import { expect, test } from '../../fixtures/test.fixture';
LOW…ests/sync/supersync-encryption-password-change.spec.ts561 await waitForTask(clientB.page, taskBeforeChange);
LOW…ests/recurring/repeat-task-day-change-bug-6230.spec.ts101 // commented out in src/main.ts. Uncomment both if investigating #6230 further.
LOWe2e/utils/runtime-errors.ts21 });
LOWe2e/pages/supersync.page.ts321 }
LOWe2e/pages/supersync.page.ts401 // 3. Sync completes successfully (server has no data - this is Client A)
LOWe2e/store-video/fixture.ts301 );
LOWsrc/test.ts1// This file is required by karma.conf.js and loads recursively all the .spec and framework files
LOWsrc/test.ts41 // getter-only in browsers, so direct assignment throws — same
LOWsrc/app/ui/progress-bar/progress-bar.component.scss21 border-radius: var(--card-border-radius);
110 more matches not shown…
Fake / Example Data56 hits · 58 pts
SeverityFileLineSnippet
LOWdocs/plugin-development.md120 "author": "John Doe",
LOWpackages/super-sync-server/README.md176 "email": "user@example.com",
LOWpackages/super-sync-server/README.md187 "email": "user@example.com"
LOWpackages/super-sync-server/README.md198 "email": "user@example.com",
LOWpackages/super-sync-server/README.md208 "user": { "id": 1, "email": "user@example.com" }
LOW…ges/super-sync-server/tests/conflict-detection.spec.ts306 email: 'test@test.com',
LOWpackages/super-sync-server/tests/gap-detection.spec.ts278 email: 'test@test.com',
LOW…ckages/super-sync-server/tests/sync-operations.spec.ts573 email: 'test@test.com',
LOWpackages/super-sync-server/tests/auth-cache.spec.ts28 jwt.sign({ userId: 1, email: 'user@example.com', tokenVersion }, jwtSecret, {
LOWpackages/super-sync-server/tests/auth-cache.spec.ts50 email: 'user@example.com',
LOWpackages/super-sync-server/tests/auth-cache.spec.ts55 email: 'user@example.com',
LOW…ges/super-sync-server/tests/password-reset-api.spec.ts18 getAuthUser: vi.fn().mockReturnValue({ userId: 1, email: 'test@test.com' }),
LOWpackages/super-sync-server/tests/middleware.spec.ts127 req.user = { userId: 1, email: 'test@test.com' };
LOWpackages/super-sync-server/tests/middleware.spec.ts131 expect(user).toEqual({ userId: 1, email: 'test@test.com' });
LOW…kages/super-sync-server/tests/websocket.routes.spec.ts101 email: 'test@test.com',
LOWpackages/super-sync-server/tests/setup.ts357 .mockResolvedValue({ valid: true, userId: 1, email: 'test@test.com' }),
LOW…/super-sync-server/tests/storage-quota-cleanup.spec.ts269 .mockResolvedValue({ valid: true, userId: 1, email: 'test@test.com' }),
LOW…/super-sync-server/tests/storage-quota-cleanup.spec.ts350 email: 'test@test.com',
LOW…/super-sync-server/tests/storage-quota-cleanup.spec.ts541 email: 'test@test.com',
LOW…/super-sync-server/tests/storage-quota-cleanup.spec.ts562 email: 'test@test.com',
LOW…/super-sync-server/tests/storage-quota-cleanup.spec.ts583 email: 'test@test.com',
LOW…/super-sync-server/tests/storage-quota-cleanup.spec.ts605 email: 'test@test.com',
LOW…/super-sync-server/tests/storage-quota-cleanup.spec.ts631 email: 'test@test.com',
LOW…/super-sync-server/tests/storage-quota-cleanup.spec.ts662 email: 'test@test.com',
LOW…/super-sync-server/tests/storage-quota-cleanup.spec.ts694 email: 'test@test.com',
LOW…/super-sync-server/tests/storage-quota-cleanup.spec.ts729 email: 'test@test.com',
LOW…/super-sync-server/tests/storage-quota-cleanup.spec.ts782 email: 'test@test.com',
LOW…/super-sync-server/tests/storage-quota-cleanup.spec.ts820 email: 'test@test.com',
LOWpackages/super-sync-server/tests/sync-fixes.spec.ts239 .mockResolvedValue({ valid: true, userId: 1, email: 'test@test.com' }),
LOW…per-sync-server/tests/time-tracking-operations.spec.ts438 email: 'test@test.com',
LOWpackages/super-sync-server/tests/api.routes.spec.ts16 const email = 'test@test.com';
LOWpackages/super-sync-server/tests/sync.routes.spec.ts59 VALUES (?, 'test@test.com', 'hash', 1, ?)`,
LOWpackages/super-sync-server/tests/sync.routes.spec.ts66 authToken = createToken(userId, 'test@test.com');
LOWpackages/super-sync-server/tests/sync.routes.spec.ts684 VALUES (?, 'test@test.com', 'hash', 1, ?)`,
LOWpackages/super-sync-server/tests/sync.routes.spec.ts688 authToken = createToken(userId, 'test@test.com');
LOWpackages/super-sync-server/tests/sync.routes.spec.ts939 VALUES (?, 'test@test.com', 'hash', 1, ?)`,
LOWpackages/super-sync-server/tests/sync.routes.spec.ts943 authToken = createToken(userId, 'test@test.com');
LOWpackages/super-sync-server/tests/sync.routes.spec.ts1034 VALUES (?, 'test@test.com', 'hash', 1, ?)`,
LOWpackages/super-sync-server/tests/sync.routes.spec.ts1038 authToken = createToken(userId, 'test@test.com');
LOW…-sync-server/tests/sync-compressed-body.routes.spec.ts48 email: 'test@test.com',
LOW…s/super-sync-server/tests/replace-token-expiry.spec.ts17 verifyToken: vi.fn().mockResolvedValue({ valid: true, userId: 1, email: 'test@test.com' }),
LOW…s/super-sync-server/tests/replace-token-expiry.spec.ts83 await replaceToken(1, 'user@example.com');
LOW…s/super-sync-server/tests/replace-token-expiry.spec.ts103 await replaceToken(1, 'user@example.com');
LOW…s/super-sync-server/tests/replace-token-expiry.spec.ts110 email: 'user@example.com',
LOW…s/super-sync-server/tests/replace-token-expiry.spec.ts117 const result = await replaceToken(7, 'test@test.com');
LOW…s/super-sync-server/tests/replace-token-expiry.spec.ts121 user: { id: 7, email: 'test@test.com' },
LOW…s/super-sync-server/tests/replace-token-expiry.spec.ts141 await replaceToken(3, 'user@example.com');
LOWpackages/super-sync-server/tests/sync.service.spec.ts597 .mockResolvedValue({ valid: true, userId: 1, email: 'test@test.com' }),
LOWpackages/super-sync-server/tests/sync.service.spec.ts632 email: 'test@test.com',
LOW…gration/snapshot-skip-optimization.integration.spec.ts38 .mockResolvedValue({ valid: true, userId: 1, email: 'test@test.com' }),
LOW…ests/integration/multi-client-sync.integration.spec.ts225 VALUES (?, 'test@test.com', 'hash', 1, ?)`,
LOW…ests/integration/multi-client-sync.integration.spec.ts970 VALUES (?, 'test@test.com', 'hash', 1, ?)`,
LOW…ests/integration/multi-client-sync.integration.spec.ts1127 VALUES (?, 'test@test.com', 'hash', 1, ?)`,
LOWsrc/app/imex/file-imex/privacy-export.spec.ts123 name: 'John Doe',
LOW…ures/issue/providers/linear/linear-api.service.spec.ts65 name: 'John Doe',
LOW…ures/issue/providers/linear/linear-api.service.spec.ts71 name: 'Jane Doe',
Hallucination Indicators3 hits · 30 pts
SeverityFileLineSnippet
CRITICAL…roductivity/superproductivity/CapacitorMainActivity.kt340 com.superproductivity.superproductivity.widget.ReminderTapQueue.setTaskId(this, sanitizedId)
CRITICALsrc/app/imex/file-imex/file-imex.component.spec.ts203 mockEvent.target.files.item.and.returnValue(null);
CRITICAL…ject-attachments/open-project-attachments.component.ts56 ? issue._embedded.attachments._embedded.elements.map((att) =>
Redundant / Tautological Comments16 hits · 28 pts
SeverityFileLineSnippet
LOW…ages/super-sync-server/tools/test-environment-setup.sh17# Check if PostgreSQL is running
LOWpackages/super-sync-server/tools/backup-encrypted.sh29# Check if running as root (needed for secure file permissions)
LOWpackages/super-sync-server/tools/backup-encrypted.sh38# Check if backup passphrase file exists
LOWpackages/super-sync-server/tools/backup-encrypted.sh49# Check if container is running
LOWpackages/super-sync-server/tools/backup-encrypted.sh58# Check if PostgreSQL is ready to accept connections
LOW…attempts-openvz-incompatible/setup-encrypted-volume.sh49# Check if running as root
LOW…attempts-openvz-incompatible/setup-encrypted-volume.sh55# Check if volume file already exists
LOW…attempts-openvz-incompatible/setup-encrypted-volume.sh134# Check if backup passphrase file exists
LOW…ttempts-openvz-incompatible/unlock-encrypted-volume.sh13# Check if running as root
LOW…ttempts-openvz-incompatible/unlock-encrypted-volume.sh25# Check if volume file exists
LOW…ttempts-openvz-incompatible/unlock-encrypted-volume.sh31# Check if already unlocked
LOW…ttempts-openvz-incompatible/unlock-encrypted-volume.sh35 # Check if mounted
LOW…pts-openvz-incompatible/migrate-to-encrypted-volume.sh28# Check if running as root
LOW…-attempts-openvz-incompatible/discover-docker-names.sh8# Check if docker-compose.yml exists
LOWpackages/super-sync-server/scripts/docker-monitor.sh24# Check if container is running
LOWpackages/super-sync-server/scripts/deploy.sh178# Check if monitoring compose exists and include it
AI Slop Vocabulary8 hits · 23 pts
SeverityFileLineSnippet
MEDIUMpackages/plugin-dev/api-test-plugin/index.html684 <textarea style="width: 100%; min-height: 100px; padding: 10px; border: 1px solid #ddd; border-radius:
MEDIUMe2e/tests/sync/supersync-repeat-task.spec.ts36 // Use the robust workView.addTask helper
MEDIUMe2e/tests/sync/supersync-edge-cases.spec.ts690 // Wait for UI to update - use waitForTask which has robust polling
MEDIUMe2e/tests/sync/supersync-models.spec.ts295 // Check for tag text content in the task (more robust than finding specific tag element structure)
MEDIUMe2e/tests/sync/supersync-models.spec.ts505 // Use toPass() to make tag deletion more robust
MEDIUM…ing/recurring-move-start-date-earlier-bug-7423.spec.ts39// far more robust than driving the calendar overlay across Material versions.
MEDIUM…app/core-ui/magic-side-nav/magic-side-nav.component.ts444 // Handle seamless mode transitions
MEDIUM…tures/bottom-panel/bottom-panel-container.component.ts120 // Rolling window of recent move samples for robust velocity at release.
Example Usage Blocks8 hits · 12 pts
SeverityFileLineSnippet
LOW…ckages/super-sync-server/docker-compose.monitoring.yml8# Usage:
LOWpackages/super-sync-server/docker-compose.build.yml3# Usage:
LOWpackages/super-sync-server/docker-compose.yml3# Usage:
LOW…mpts-openvz-incompatible/docker-compose.encrypted.yaml6# Usage:
LOWpackages/super-sync-server/scripts/backup.sh4# Usage:
LOWpackages/super-sync-server/scripts/docker-monitor.sh4# Usage:
LOWpackages/super-sync-server/scripts/build-and-push.sh4# Usage:
LOWpackages/super-sync-server/scripts/deploy.sh4# Usage:
Hyper-Verbose Identifiers11 hits · 11 pts
SeverityFileLineSnippet
LOWdocs/unused-translations-analysis.md169function detectDynamicObjectAccess(content) {
LOWdocs/research/recurring-events-implementation-plan.md95export function getNextOccurrenceFromRRule(
LOWdocs/research/recurring-events-implementation-plan.md418export function migrateTaskRepeatCfgToRRule(
LOW…term-plans/calendar-two-way-sync-technical-analysis.md1369function taskNotesToEventDescription(notes: string): string {
LOW…term-plans/calendar-two-way-sync-technical-analysis.md1381function eventDescriptionToTaskNotes(description: string): string {
LOW…s/plans/2026-05-23-stage-a-keyed-plugin-persistence.md212async function migrateToKeyedPersistence(): Promise<void> {
LOW…ity/superproductivity/webview/WebViewRequestHandler.kt17class WebViewRequestHandler(private val activity: Activity, private val serviceHost: String) {
LOWpackages/plugin-dev/voice-reminder/plugin.js125 async function openVoiceReminderSettings() {
LOW…ges/super-sync-server/tests/sync.service.test-state.ts39export function hasOperationUniqueConflict(
LOW…ckages/super-sync-server/src/sync/sync.routes.quota.ts260export async function enforceCleanSlateStorageQuota(
LOWpackages/shared-schema/src/migrate.ts253export function validateMigrationRegistry(): string[] {
Magic Placeholder Names2 hits · 10 pts
SeverityFileLineSnippet
HIGHdocs/ENV_SETUP.md38 DROPBOX_API_KEY=your-api-key-here
HIGHdocs/ENV_SETUP.md105 NEW_API_KEY=your-api-key-here
Self-Referential Comments3 hits · 9 pts
SeverityFileLineSnippet
MEDIUMdocker-compose.e2e.yaml3# This file is standalone for app/webdav tests only
MEDIUMscripts/wait-for-supersync.sh19 # Create a dummy user to verify test endpoints are available
MEDIUM.github/workflows/build-ios.yml84 # Create the provisioning profiles directory if it doesn't exist