The Open Source DocuSign Alternative.
This report presents the forensic synthetic code analysis of documenso/documenso, a TypeScript project with 13,802 GitHub stars. SynthScan v2.0 examined 270,089 lines of code across 2207 source files, recording 384 pattern matches distributed across 11 syntactic categories. The overall adjusted score of 4.2 places this repository in the Likely human-written band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 384 distinct pattern matches across 11 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. 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 diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | …/ui/primitives/template-flow/add-template-settings.tsx | 125 | const { data: emailData, isLoading: isLoadingEmails } = trpc.enterprise.organisation.email.find.useQuery({ | CODE |
| CRITICAL | packages/ui/primitives/document-flow/add-subject.tsx | 90 | const { data: emailData, isLoading: isLoadingEmails } = trpc.enterprise.organisation.email.find.useQuery({ | CODE |
| CRITICAL | …app-tests/e2e/templates/organisation-templates.spec.ts | 217 | const titles = json.result.data.json.data.map((t: { title: string }) => t.title); | CODE |
| CRITICAL | …app-tests/e2e/templates/organisation-templates.spec.ts | 235 | const titles = json.result.data.json.data.map((t: { title: string }) => t.title); | CODE |
| CRITICAL | …app-tests/e2e/templates/organisation-templates.spec.ts | 254 | const titles = json.result.data.json.data.map((t: { title: string }) => t.title); | CODE |
| CRITICAL | …app-tests/e2e/templates/organisation-templates.spec.ts | 282 | const titles = json.result.data.json.data.map((t: { title: string }) => t.title); | CODE |
| CRITICAL | …app-tests/e2e/templates/organisation-templates.spec.ts | 298 | const adminTitles = adminJson.result.data.json.data.map((t: { title: string }) => t.title); | CODE |
| CRITICAL | …app-tests/e2e/templates/organisation-templates.spec.ts | 466 | const titles = json.result.data.json.data.map((t: { title: string }) => t.title); | CODE |
| CRITICAL | …app-tests/e2e/templates/organisation-templates.spec.ts | 502 | const titles = json.result.data.json.data.map((t: { title: string }) => t.title); | CODE |
| CRITICAL | …ponents/tables/organisation-billing-invoices-table.tsx | 26 | const { data, isLoading, isLoadingError } = trpc.enterprise.billing.invoices.get.useQuery( | CODE |
| CRITICAL | …components/tables/organisation-email-domains-table.tsx | 35 | trpc.enterprise.organisation.emailDomain.verify.useMutation({ | CODE |
| CRITICAL | …components/tables/organisation-email-domains-table.tsx | 44 | const { data, isLoading, isLoadingError } = trpc.enterprise.organisation.emailDomain.find.useQuery( | CODE |
| CRITICAL | …p/components/tables/admin-organisation-stats-table.tsx | 80 | const { data, isLoading, isLoadingError } = trpc.admin.organisation.stats.find.useQuery({ | CODE |
| CRITICAL | …omponents/tables/organisation-member-invites-table.tsx | 39 | const { data, isLoading, isLoadingError } = trpc.organisation.member.invite.find.useQuery( | CODE |
| CRITICAL | …omponents/tables/organisation-member-invites-table.tsx | 52 | const { mutateAsync: resendOrganisationMemberInvitation } = trpc.organisation.member.invite.resend.useMutation({ | CODE |
| CRITICAL | …omponents/tables/organisation-member-invites-table.tsx | 68 | const { mutateAsync: deleteOrganisationMemberInvitations } = trpc.organisation.member.invite.deleteMany.useMutation({ | CODE |
| CRITICAL | …/remix/app/components/forms/email-preferences-form.tsx | 56 | const { data: emailData, isLoading: isLoadingEmails } = trpc.enterprise.organisation.email.find.useQuery({ | CODE |
| CRITICAL | apps/remix/app/components/general/billing-plans.tsx | 155 | trpc.enterprise.billing.subscription.create.useMutation(); | CODE |
| CRITICAL | apps/remix/app/components/general/billing-plans.tsx | 313 | const { mutateAsync: createSubscription, isPending } = trpc.enterprise.billing.subscription.create.useMutation(); | CODE |
| CRITICAL | …components/general/organisation-usage-reset-button.tsx | 18 | const { mutateAsync: reset, isPending } = trpc.admin.organisation.stats.reset.useMutation({ | CODE |
| CRITICAL | …l/organisations/organisation-billing-portal-button.tsx | 23 | const { mutateAsync: manageSubscription, isPending } = trpc.enterprise.billing.subscription.manage.useMutation(); | CODE |
| CRITICAL | …/general/organisations/organisation-billing-banner.tsx | 36 | const { mutateAsync: manageSubscription, isPending } = trpc.enterprise.billing.subscription.manage.useMutation(); | CODE |
| CRITICAL | …nts/general/organisations/organisation-invitations.tsx | 25 | const { data, isLoading } = trpc.organisation.member.invite.getMany.useQuery({ | CODE |
| CRITICAL | …nts/general/organisations/organisation-invitations.tsx | 125 | } = trpc.organisation.member.invite.accept.useMutation({ | CODE |
| CRITICAL | …nts/general/organisations/organisation-invitations.tsx | 165 | } = trpc.organisation.member.invite.decline.useMutation({ | CODE |
| CRITICAL | …x/app/components/general/teams/team-email-dropdown.tsx | 27 | trpc.team.email.verification.resend.useMutation({ | CODE |
| CRITICAL | …al/envelope-editor/envelope-editor-settings-dialog.tsx | 224 | const { data: emailData, isLoading: isLoadingEmails } = trpc.enterprise.organisation.email.find.useQuery( | CODE |
| CRITICAL | …/components/dialogs/admin-swap-subscription-dialog.tsx | 70 | const { mutateAsync: swapSubscription } = trpc.admin.organisation.subscription.swap.useMutation(); | CODE |
| CRITICAL | …/app/components/dialogs/organisation-create-dialog.tsx | 78 | const { data: plansData } = trpc.enterprise.billing.plans.get.useQuery(undefined, { | CODE |
| CRITICAL | …ts/dialogs/organisation-email-domain-create-dialog.tsx | 67 | const { mutateAsync: createOrganisationEmail } = trpc.enterprise.organisation.emailDomain.create.useMutation(); | CODE |
| CRITICAL | …remix/app/components/dialogs/team-email-add-dialog.tsx | 53 | const { mutateAsync: sendTeamEmailVerification, isPending } = trpc.team.email.verification.send.useMutation(); | CODE |
| CRITICAL | …ts/dialogs/organisation-email-domain-delete-dialog.tsx | 56 | trpc.enterprise.organisation.emailDomain.delete.useMutation({ | CODE |
| CRITICAL | …omponents/dialogs/organisation-email-update-dialog.tsx | 62 | const { mutateAsync: updateOrganisationEmail, isPending } = trpc.enterprise.organisation.email.update.useMutation(); | CODE |
| CRITICAL | …omponents/dialogs/organisation-email-delete-dialog.tsx | 32 | const { mutateAsync: deleteEmail, isPending: isDeleting } = trpc.enterprise.organisation.email.delete.useMutation({ | CODE |
| CRITICAL | …omponents/dialogs/organisation-email-create-dialog.tsx | 70 | const { mutateAsync: createOrganisationEmail, isPending } = trpc.enterprise.organisation.email.create.useMutation(); | CODE |
| CRITICAL | …/app/components/dialogs/envelope-distribute-dialog.tsx | 100 | const { data: emailData, isLoading: isLoadingEmails } = trpc.enterprise.organisation.email.find.useQuery( | CODE |
| CRITICAL | …mponents/dialogs/organisation-member-invite-dialog.tsx | 119 | const { mutateAsync: createOrganisationMemberInvites } = trpc.organisation.member.invite.createMany.useMutation(); | CODE |
| CRITICAL | …ialogs/admin-organisation-sync-subscription-dialog.tsx | 52 | const { mutateAsync: syncSubscription } = trpc.admin.organisation.subscription.sync.useMutation(); | CODE |
| CRITICAL | …ix/app/components/dialogs/team-email-delete-dialog.tsx | 67 | trpc.team.email.verification.delete.useMutation({ | CODE |
| CRITICAL | …uthenticated+/organisation.sso.confirmation.$token.tsx | 124 | trpc.enterprise.organisation.authenticationPortal.declineLinkAccount.useMutation({ | CODE |
| CRITICAL | …uthenticated+/organisation.sso.confirmation.$token.tsx | 141 | trpc.enterprise.organisation.authenticationPortal.linkAccount.useMutation({ | CODE |
| CRITICAL | …/routes/_authenticated+/o.$orgUrl.settings.billing.tsx | 32 | trpc.enterprise.billing.subscription.get.useQuery({ | CODE |
| CRITICAL | …/routes/_authenticated+/o.$orgUrl.settings.billing.tsx | 37 | trpc.enterprise.billing.subscription.sync.useMutation(); | CODE |
| CRITICAL | …/app/routes/_authenticated+/o.$orgUrl.settings.sso.tsx | 67 | trpc.enterprise.organisation.authenticationPortal.get.useQuery({ | CODE |
| CRITICAL | …/app/routes/_authenticated+/o.$orgUrl.settings.sso.tsx | 98 | trpc.enterprise.organisation.authenticationPortal.update.useMutation(); | CODE |
| CRITICAL | …uthenticated+/o.$orgUrl.settings.email-domains.$id.tsx | 40 | const { data: emailDomain, isLoading: isLoadingEmailDomain } = trpc.enterprise.organisation.emailDomain.get.useQuery( | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …kills/agent-browser/templates/authenticated-session.sh | 27 | # ================================================================ | COMMENT |
| MEDIUM | …kills/agent-browser/templates/authenticated-session.sh | 29 | # ================================================================ | COMMENT |
| MEDIUM | …kills/agent-browser/templates/authenticated-session.sh | 46 | # ================================================================ | COMMENT |
| MEDIUM | …kills/agent-browser/templates/authenticated-session.sh | 48 | # ================================================================ | COMMENT |
| MEDIUM | …kills/agent-browser/templates/authenticated-session.sh | 68 | # ================================================================ | COMMENT |
| MEDIUM | …kills/agent-browser/templates/authenticated-session.sh | 70 | # ================================================================ | COMMENT |
| MEDIUM | packages/ee/server-only/signing/csc/client/oauth.ts | 40 | // ─── Client construction ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/ee/server-only/signing/csc/client/oauth.ts | 62 | // ─── Authorize URL builders (§8.3.2) ───────────────────────────────────────── | COMMENT |
| MEDIUM | packages/ee/server-only/signing/csc/client/oauth.ts | 192 | // ─── Token exchange (§8.3.3) ───────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/ee/server-only/signing/csc/client/oauth.ts | 256 | // ─── Revoke (§8.3.4) ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/ee/server-only/signing/csc/client/oauth.ts | 284 | // ─── Error normalisation ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/ee/server-only/signing/csc/client/types.ts | 14 | // ─── §10.1 common error envelope ───────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/ee/server-only/signing/csc/client/types.ts | 23 | // ─── §11.1 info ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/ee/server-only/signing/csc/client/types.ts | 49 | // ─── §11.4 credentials/list ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/ee/server-only/signing/csc/client/types.ts | 68 | // ─── §11.5 credentials/info ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/ee/server-only/signing/csc/client/types.ts | 133 | // ─── §11.9 signatures/signHash ─────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/ee/server-only/signing/csc/client/types.ts | 158 | // ─── §11.10 signatures/timestamp ───────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/lib/server-only/document/find-documents.ts | 138 | // ─── Base query with common filters ────────────────────────────────── | COMMENT |
| MEDIUM | packages/lib/server-only/document/find-documents.ts | 205 | // ─── Personal path filters ─────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/lib/server-only/document/find-documents.ts | 311 | // ─── Team path filters ─────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/lib/server-only/document/find-documents.ts | 461 | // ─── Assemble and execute ──────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/lib/server-only/document/find-documents.ts | 501 | // ─── Hydrate with Prisma ───────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/lib/server-only/document/get-stats.ts | 99 | // ─── Base query builder ────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/lib/server-only/document/get-stats.ts | 152 | // ─── Shared filter helpers ─────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/lib/server-only/document/get-stats.ts | 176 | // ─── Per-status query builders ─────────────────────────────────────── | COMMENT |
| MEDIUM | packages/lib/server-only/document/get-stats.ts | 275 | // ─── Execute all counts in parallel ────────────────────────────────── | COMMENT |
| MEDIUM | packages/lib/server-only/envelope/find-envelopes.ts | 127 | // ─── Build Kysely query ────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/lib/server-only/envelope/find-envelopes.ts | 185 | // ─── Access control ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/lib/server-only/envelope/find-envelopes.ts | 219 | // ─── Execute: paginated data + count ────────────────────────────────── | COMMENT |
| MEDIUM | packages/lib/server-only/envelope/find-envelopes.ts | 244 | // ─── Hydrate with Prisma ───────────────────────────────────────────── | COMMENT |
| MEDIUM | …ts/e2e/admin/organisations/delete-organisation.spec.ts | 63 | // ─── Happy path ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ts/e2e/admin/organisations/delete-organisation.spec.ts | 101 | // ─── Confirmation text validation ──────────────────────────────────────────── | COMMENT |
| MEDIUM | …ts/e2e/admin/organisations/delete-organisation.spec.ts | 154 | // ─── Cancel ────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ts/e2e/admin/organisations/delete-organisation.spec.ts | 182 | // ─── Email checkbox ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ts/e2e/admin/organisations/delete-organisation.spec.ts | 237 | // ─── Documents are orphaned, not deleted ───────────────────────────────────── | COMMENT |
| MEDIUM | …ts/e2e/admin/organisations/delete-organisation.spec.ts | 251 | // ── Owner-authored envelopes ────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ts/e2e/admin/organisations/delete-organisation.spec.ts | 266 | // ── Member-authored envelopes ───────────────────────────────────────────── | COMMENT |
| MEDIUM | …ts/e2e/admin/organisations/delete-organisation.spec.ts | 281 | // ── Manager-authored envelope (third author for good measure) ───────────── | COMMENT |
| MEDIUM | …ts/e2e/admin/organisations/delete-organisation.spec.ts | 293 | // ── Trigger the deletion via the admin UI ───────────────────────────────── | COMMENT |
| MEDIUM | …ts/e2e/admin/organisations/delete-organisation.spec.ts | 316 | // ── Owner-authored envelopes ────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ts/e2e/admin/organisations/delete-organisation.spec.ts | 336 | // ── Member-authored envelopes (the critical case) ───────────────────────── | COMMENT |
| MEDIUM | …ts/e2e/admin/organisations/delete-organisation.spec.ts | 356 | // ── Manager-authored rejected envelope: also orphaned ───────────────────── | COMMENT |
| MEDIUM | …ts/e2e/admin/organisations/delete-organisation.spec.ts | 365 | // ── Original team is gone, member users still exist ─────────────────────── | COMMENT |
| MEDIUM | …ts/e2e/admin/organisations/delete-organisation.spec.ts | 382 | // ─── Owner can no longer access the deleted organisation ───────────────────── | COMMENT |
| MEDIUM | …ts/e2e/admin/organisations/delete-organisation.spec.ts | 417 | // ─── Access control: UI ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ts/e2e/admin/organisations/delete-organisation.spec.ts | 477 | // ─── Org with multiple members triggers email to the OWNER only ───────────── | COMMENT |
| MEDIUM | …ts/e2e/admin/organisations/delete-organisation.spec.ts | 539 | // ─── EnvelopeType.TEMPLATE is also cleaned up via orphan flow ─────────────── | COMMENT |
| MEDIUM | packages/app-tests/e2e/admin/users/create-user.spec.ts | 33 | // ─── Happy path ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/app-tests/e2e/admin/users/create-user.spec.ts | 66 | // ─── emailVerified is set + password is null for admin-created users ──────── | COMMENT |
| MEDIUM | packages/app-tests/e2e/admin/users/create-user.spec.ts | 109 | // ─── Welcome email side effect: a PasswordResetToken is issued ─────────────── | COMMENT |
| MEDIUM | packages/app-tests/e2e/admin/users/create-user.spec.ts | 173 | // ─── Duplicate email is rejected ───────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/app-tests/e2e/admin/users/create-user.spec.ts | 217 | // ─── Validation: empty form ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/app-tests/e2e/admin/users/create-user.spec.ts | 249 | // ─── Validation: malformed email ───────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/app-tests/e2e/admin/users/create-user.spec.ts | 293 | // ─── Cancel button closes dialog without creating ─────────────────────────── | COMMENT |
| MEDIUM | packages/app-tests/e2e/admin/users/create-user.spec.ts | 326 | // ─── Email is lowercased when stored ───────────────────────────────────────── | COMMENT |
| MEDIUM | packages/app-tests/e2e/admin/users/create-user.spec.ts | 362 | // ─── Access control: non-admin cannot see the Create User affordance ──────── | COMMENT |
| MEDIUM | …/admin/email-transports/email-transport-claims.spec.ts | 11 | // ─── Cleanup ───────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …/admin/email-transports/email-transport-claims.spec.ts | 24 | // ─── Helpers ───────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …/admin/email-transports/email-transport-claims.spec.ts | 120 | // ─── Subscription claim: NO backport ───────────────────────────────────────── | COMMENT |
| MEDIUM | …/admin/email-transports/email-transport-claims.spec.ts | 158 | // ─── Subscription claim: WITH backport ─────────────────────────────────────── | COMMENT |
| 48 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | …nts/plans/swift-pink-sky-simplewebauthn-v13-upgrade.md | 119 | ### Step 1: Update package.json dependencies | COMMENT |
| LOW⚡ | …nts/plans/swift-pink-sky-simplewebauthn-v13-upgrade.md | 125 | ### Step 2: Update type imports | COMMENT |
| LOW⚡ | …nts/plans/swift-pink-sky-simplewebauthn-v13-upgrade.md | 128 | ### Step 3: Update browser-side API calls | COMMENT |
| LOW⚡ | …nts/plans/swift-pink-sky-simplewebauthn-v13-upgrade.md | 132 | ### Step 4: Update server-side registration | COMMENT |
| LOW⚡ | …nts/plans/swift-pink-sky-simplewebauthn-v13-upgrade.md | 137 | ### Step 5: Update server-side authentication | COMMENT |
| LOW⚡ | …nts/plans/swift-pink-sky-simplewebauthn-v13-upgrade.md | 142 | ### Step 6: Update credential storage/retrieval | COMMENT |
| LOW⚡ | …nts/plans/swift-pink-sky-simplewebauthn-v13-upgrade.md | 146 | ### Step 7: Test passkey flows | COMMENT |
| LOW⚡ | .agents/plans/pale-lemon-rock-pnpm-migration.md | 26 | #### Step 1: Enable pnpm via corepack | COMMENT |
| LOW⚡ | .agents/plans/pale-lemon-rock-pnpm-migration.md | 35 | #### Step 2: Create `pnpm-workspace.yaml` | COMMENT |
| LOW⚡ | .agents/plans/pale-lemon-rock-pnpm-migration.md | 45 | #### Step 3: Convert lockfile | COMMENT |
| LOW⚡ | .agents/plans/pale-lemon-rock-pnpm-migration.md | 53 | #### Step 4: Create `.npmrc` for pnpm | COMMENT |
| LOW | .agents/plans/pale-lemon-rock-pnpm-migration.md | 65 | #### Step 5: Clean install | COMMENT |
| LOW | .agents/plans/pale-lemon-rock-pnpm-migration.md | 74 | #### Step 6: Convert `overrides` to `pnpm.overrides` | COMMENT |
| LOW | .agents/plans/pale-lemon-rock-pnpm-migration.md | 93 | #### Step 7: Convert patch-package to pnpm patches | COMMENT |
| LOW | .agents/plans/pale-lemon-rock-pnpm-migration.md | 109 | #### Step 8: Identify catalog candidates | COMMENT |
| LOW | .agents/plans/pale-lemon-rock-pnpm-migration.md | 134 | #### Step 9: Define catalogs in `pnpm-workspace.yaml` | COMMENT |
| LOW | .agents/plans/pale-lemon-rock-pnpm-migration.md | 193 | #### Step 10: Update workspace `package.json` files | COMMENT |
| LOW | .agents/plans/pale-lemon-rock-pnpm-migration.md | 211 | #### Step 11: Convert internal references to `workspace:*` | COMMENT |
| LOW | .agents/plans/pale-lemon-rock-pnpm-migration.md | 228 | #### Step 12: Update primary Dockerfile (`docker/Dockerfile`) | COMMENT |
| LOW⚡ | .agents/plans/pale-lemon-rock-pnpm-migration.md | 244 | #### Step 13: Update CI workflows | COMMENT |
| LOW⚡ | .agents/plans/pale-lemon-rock-pnpm-migration.md | 254 | #### Step 14: Update turborepo config | COMMENT |
| LOW⚡ | .agents/plans/pale-lemon-rock-pnpm-migration.md | 260 | #### Step 15: Remove npm-specific tooling | COMMENT |
| LOW⚡ | .agents/plans/pale-lemon-rock-pnpm-migration.md | 268 | #### Step 16: Tighten hoisting (optional, future) | COMMENT |
| LOW | .agents/plans/pale-lemon-rock-pnpm-migration.md | 281 | #### Step 17: Remove root-level dependency hoisting | COMMENT |
| LOW⚡ | …ents/skills/agent-browser/templates/form-automation.sh | 20 | # Step 1: Navigate to form | COMMENT |
| LOW⚡ | …ents/skills/agent-browser/templates/form-automation.sh | 24 | # Step 2: Snapshot to discover form elements | COMMENT |
| LOW⚡ | …ents/skills/agent-browser/templates/form-automation.sh | 29 | # Step 3: Fill form fields (customize these refs based on snapshot output) | COMMENT |
| LOW⚡ | …ents/skills/agent-browser/templates/form-automation.sh | 46 | # Step 4: Wait for submission | COMMENT |
| LOW⚡ | …ents/skills/agent-browser/templates/form-automation.sh | 50 | # Step 5: Verify result | COMMENT |
| LOW | …c/server/embedding-router/update-embedding-envelope.ts | 95 | // Step 1: Update the envelope items. | COMMENT |
| LOW | …c/server/embedding-router/update-embedding-envelope.ts | 312 | // Step 2: Update the general envelope data and meta. | COMMENT |
| LOW | …c/server/embedding-router/update-embedding-envelope.ts | 332 | // Step 3: Update the recipients | COMMENT |
| LOW | …c/server/embedding-router/update-embedding-envelope.ts | 380 | // Step 4: Update the fields. | COMMENT |
| LOW | …c/server/embedding-router/update-embedding-envelope.ts | 451 | // Step 5: Handle attachments (set semantics: delete all existing, create new). | COMMENT |
| LOW⚡ | …-tests/e2e/templates-flow/duplicate-recipients.spec.ts | 15 | // Step 1: Settings - Continue with defaults | COMMENT |
| LOW⚡ | …-tests/e2e/templates-flow/duplicate-recipients.spec.ts | 19 | // Step 2: Add duplicate recipients with real emails for testing | COMMENT |
| LOW | …-tests/e2e/templates-flow/duplicate-recipients.spec.ts | 37 | // Step 3: Add fields for each recipient instance | COMMENT |
| LOW⚡ | …-tests/e2e/templates-flow/duplicate-recipients.spec.ts | 179 | // Step 1: Settings | COMMENT |
| LOW⚡ | …-tests/e2e/templates-flow/duplicate-recipients.spec.ts | 182 | // Step 2: Add multiple recipients with duplicate emails | COMMENT |
| LOW | packages/app-tests/e2e/api/v2/envelopes-api.spec.ts | 345 | // Step 1: Create initial envelope with Prisma (with first envelope item) | COMMENT |
| LOW | packages/app-tests/e2e/api/v2/envelopes-api.spec.ts | 387 | // Step 2: Create second envelope item via API | COMMENT |
| LOW | packages/app-tests/e2e/api/v2/envelopes-api.spec.ts | 404 | // Step 3: Update envelope via API | COMMENT |
| LOW | packages/app-tests/e2e/api/v2/envelopes-api.spec.ts | 421 | // Step 4: Create recipient via API | COMMENT |
| LOW | packages/app-tests/e2e/api/v2/envelopes-api.spec.ts | 443 | // Step 5: Get envelope to retrieve recipients and envelope items | COMMENT |
| LOW | packages/app-tests/e2e/api/v2/envelopes-api.spec.ts | 465 | // Step 6: Create fields for first PDF (alignment fields) | COMMENT |
| LOW | packages/app-tests/e2e/api/v2/envelopes-api.spec.ts | 489 | // Step 7: Create fields for second PDF (field-meta fields) | COMMENT |
| LOW | packages/app-tests/e2e/api/v2/envelopes-api.spec.ts | 513 | // Step 8: Verify final envelope structure | COMMENT |
| LOW | …ts/e2e/envelope-editor-v2/envelope-replace-pdf.spec.ts | 306 | // Step 1: Get a 3-page PDF loaded. | COMMENT |
| LOW⚡ | …ts/e2e/envelope-editor-v2/envelope-replace-pdf.spec.ts | 319 | // Step 2: Add a recipient. | COMMENT |
| LOW⚡ | …ts/e2e/envelope-editor-v2/envelope-replace-pdf.spec.ts | 322 | // Step 3: Navigate to addFields step and verify 3-page PDF is loaded. | COMMENT |
| LOW⚡ | …ts/e2e/envelope-editor-v2/envelope-replace-pdf.spec.ts | 327 | // Step 4: Place a Signature field on page 1. | COMMENT |
| LOW⚡ | …ts/e2e/envelope-editor-v2/envelope-replace-pdf.spec.ts | 332 | // Step 5: Scroll to page 2 and place a Text field. | COMMENT |
| LOW⚡ | …ts/e2e/envelope-editor-v2/envelope-replace-pdf.spec.ts | 340 | // Step 6: Navigate back to upload step. | COMMENT |
| LOW⚡ | …ts/e2e/envelope-editor-v2/envelope-replace-pdf.spec.ts | 344 | // Step 7: Replace with 1-page PDF. | COMMENT |
| LOW⚡ | …ts/e2e/envelope-editor-v2/envelope-replace-pdf.spec.ts | 347 | // Step 8: Navigate to addFields step to verify. | COMMENT |
| LOW⚡ | …p-tests/e2e/document-flow/duplicate-recipients.spec.ts | 17 | // Step 1: Settings - Continue with defaults | COMMENT |
| LOW⚡ | …p-tests/e2e/document-flow/duplicate-recipients.spec.ts | 21 | // Step 2: Add duplicate recipients | COMMENT |
| LOW | …p-tests/e2e/document-flow/duplicate-recipients.spec.ts | 39 | // Step 3: Add fields for each recipient | COMMENT |
| LOW | …p-tests/e2e/document-flow/duplicate-recipients.spec.ts | 62 | // Step 4: Complete with subject and send | COMMENT |
| LOW⚡ | …p-tests/e2e/document-flow/duplicate-recipients.spec.ts | 105 | // Step 1: Settings - Continue with defaults | COMMENT |
| 9 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | …ents/skills/agent-browser/templates/form-automation.sh | 20 | # Step 1: Navigate to form | COMMENT |
| LOW⚡ | …ents/skills/agent-browser/templates/form-automation.sh | 24 | # Step 2: Snapshot to discover form elements | COMMENT |
| LOW⚡ | …ents/skills/agent-browser/templates/form-automation.sh | 29 | # Step 3: Fill form fields (customize these refs based on snapshot output) | COMMENT |
| LOW⚡ | …ents/skills/agent-browser/templates/form-automation.sh | 46 | # Step 4: Wait for submission | COMMENT |
| LOW⚡ | …ents/skills/agent-browser/templates/form-automation.sh | 50 | # Step 5: Verify result | COMMENT |
| LOW | …c/server/embedding-router/update-embedding-envelope.ts | 95 | // Step 1: Update the envelope items. | COMMENT |
| LOW | …c/server/embedding-router/update-embedding-envelope.ts | 312 | // Step 2: Update the general envelope data and meta. | COMMENT |
| LOW | …c/server/embedding-router/update-embedding-envelope.ts | 332 | // Step 3: Update the recipients | COMMENT |
| LOW | …c/server/embedding-router/update-embedding-envelope.ts | 380 | // Step 4: Update the fields. | COMMENT |
| LOW | …c/server/embedding-router/update-embedding-envelope.ts | 451 | // Step 5: Handle attachments (set semantics: delete all existing, create new). | COMMENT |
| LOW⚡ | …-tests/e2e/templates-flow/duplicate-recipients.spec.ts | 15 | // Step 1: Settings - Continue with defaults | COMMENT |
| LOW⚡ | …-tests/e2e/templates-flow/duplicate-recipients.spec.ts | 19 | // Step 2: Add duplicate recipients with real emails for testing | COMMENT |
| LOW | …-tests/e2e/templates-flow/duplicate-recipients.spec.ts | 37 | // Step 3: Add fields for each recipient instance | COMMENT |
| LOW⚡ | …-tests/e2e/templates-flow/duplicate-recipients.spec.ts | 179 | // Step 1: Settings | COMMENT |
| LOW⚡ | …-tests/e2e/templates-flow/duplicate-recipients.spec.ts | 182 | // Step 2: Add multiple recipients with duplicate emails | COMMENT |
| LOW | packages/app-tests/e2e/api/v2/envelopes-api.spec.ts | 345 | // Step 1: Create initial envelope with Prisma (with first envelope item) | COMMENT |
| LOW | packages/app-tests/e2e/api/v2/envelopes-api.spec.ts | 387 | // Step 2: Create second envelope item via API | COMMENT |
| LOW | packages/app-tests/e2e/api/v2/envelopes-api.spec.ts | 404 | // Step 3: Update envelope via API | COMMENT |
| LOW | packages/app-tests/e2e/api/v2/envelopes-api.spec.ts | 421 | // Step 4: Create recipient via API | COMMENT |
| LOW | packages/app-tests/e2e/api/v2/envelopes-api.spec.ts | 443 | // Step 5: Get envelope to retrieve recipients and envelope items | COMMENT |
| LOW | packages/app-tests/e2e/api/v2/envelopes-api.spec.ts | 465 | // Step 6: Create fields for first PDF (alignment fields) | COMMENT |
| LOW | packages/app-tests/e2e/api/v2/envelopes-api.spec.ts | 489 | // Step 7: Create fields for second PDF (field-meta fields) | COMMENT |
| LOW | packages/app-tests/e2e/api/v2/envelopes-api.spec.ts | 513 | // Step 8: Verify final envelope structure | COMMENT |
| LOW | …ts/e2e/envelope-editor-v2/envelope-replace-pdf.spec.ts | 306 | // Step 1: Get a 3-page PDF loaded. | COMMENT |
| LOW⚡ | …ts/e2e/envelope-editor-v2/envelope-replace-pdf.spec.ts | 319 | // Step 2: Add a recipient. | COMMENT |
| LOW⚡ | …ts/e2e/envelope-editor-v2/envelope-replace-pdf.spec.ts | 322 | // Step 3: Navigate to addFields step and verify 3-page PDF is loaded. | COMMENT |
| LOW⚡ | …ts/e2e/envelope-editor-v2/envelope-replace-pdf.spec.ts | 327 | // Step 4: Place a Signature field on page 1. | COMMENT |
| LOW⚡ | …ts/e2e/envelope-editor-v2/envelope-replace-pdf.spec.ts | 332 | // Step 5: Scroll to page 2 and place a Text field. | COMMENT |
| LOW⚡ | …ts/e2e/envelope-editor-v2/envelope-replace-pdf.spec.ts | 340 | // Step 6: Navigate back to upload step. | COMMENT |
| LOW⚡ | …ts/e2e/envelope-editor-v2/envelope-replace-pdf.spec.ts | 344 | // Step 7: Replace with 1-page PDF. | COMMENT |
| LOW⚡ | …ts/e2e/envelope-editor-v2/envelope-replace-pdf.spec.ts | 347 | // Step 8: Navigate to addFields step to verify. | COMMENT |
| LOW⚡ | …p-tests/e2e/document-flow/duplicate-recipients.spec.ts | 17 | // Step 1: Settings - Continue with defaults | COMMENT |
| LOW⚡ | …p-tests/e2e/document-flow/duplicate-recipients.spec.ts | 21 | // Step 2: Add duplicate recipients | COMMENT |
| LOW | …p-tests/e2e/document-flow/duplicate-recipients.spec.ts | 39 | // Step 3: Add fields for each recipient | COMMENT |
| LOW | …p-tests/e2e/document-flow/duplicate-recipients.spec.ts | 62 | // Step 4: Complete with subject and send | COMMENT |
| LOW⚡ | …p-tests/e2e/document-flow/duplicate-recipients.spec.ts | 105 | // Step 1: Settings - Continue with defaults | COMMENT |
| LOW⚡ | …p-tests/e2e/document-flow/duplicate-recipients.spec.ts | 109 | // Step 2: Add initial recipient | COMMENT |
| LOW⚡ | …p-tests/e2e/document-flow/duplicate-recipients.spec.ts | 230 | // Step 1: Settings | COMMENT |
| LOW⚡ | …p-tests/e2e/document-flow/duplicate-recipients.spec.ts | 233 | // Step 2: Add duplicate recipients with different roles | COMMENT |
| LOW | …p-tests/e2e/document-flow/duplicate-recipients.spec.ts | 251 | // Step 3: Add different field types for each duplicate | COMMENT |
| LOW⚡ | …/e2e/document-flow/duplicate-recipients-simple.spec.ts | 18 | // Step 1: Settings - Continue with defaults | COMMENT |
| LOW⚡ | …/e2e/document-flow/duplicate-recipients-simple.spec.ts | 22 | // Step 2: Add duplicate recipients | COMMENT |
| LOW | …/e2e/document-flow/duplicate-recipients-simple.spec.ts | 34 | // Step 3: Add fields | COMMENT |
| LOW | …ges/app-tests/e2e/envelopes/envelope-alignment.spec.ts | 73 | // Step 1: Create initial envelope with Prisma (with first envelope item) | COMMENT |
| LOW | …ages/app-tests/e2e/envelopes/envelope-overflow.spec.ts | 72 | // Step 1: Create initial envelope with overflow PDF | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | WRITING_STYLE.md | 218 | recipients: [{ email: "signer@example.com", name: "John Doe" }], | CODE |
| LOW | WRITING_STYLE.md | 226 | recipients: [{ email: "signer@example.com", name: "John Doe" }], | CODE |
| LOW | …old-emerald-earth-pdf-placeholder-field-positioning.md | 52 | "placeholder": "{{signature}}" | CODE |
| LOW | .agents/skills/agent-browser/SKILL.md | 23 | agent-browser fill @e1 "user@example.com" | CODE |
| LOW | .agents/skills/agent-browser/SKILL.md | 74 | agent-browser fill @e1 "Jane Doe" | CODE |
| LOW | …ents/skills/agent-browser/references/authentication.md | 31 | agent-browser fill @e1 "user@example.com" | CODE |
| LOW | …ents/skills/agent-browser/references/authentication.md | 50 | agent-browser fill @e1 "user@example.com" | CODE |
| LOW | …ents/skills/agent-browser/references/authentication.md | 107 | agent-browser fill @e1 "user@example.com" | CODE |
| LOW | …gents/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⚡ | …ents/skills/agent-browser/templates/form-automation.sh | 32 | # agent-browser fill @e1 "John Doe" # Text input | COMMENT |
| LOW⚡ | …ents/skills/agent-browser/templates/form-automation.sh | 33 | # agent-browser fill @e2 "user@example.com" # Email input | COMMENT |
| LOW | packages/ui/primitives/multiselect.tsx | 74 | 'value' | 'placeholder' | 'disabled' | CODE |
| LOW | …ment-flow/field-items-advanced-settings/text-field.tsx | 61 | id="placeholder" | CODE |
| LOW | …ment-flow/field-items-advanced-settings/text-field.tsx | 65 | onChange={(e) => handleFieldChange('placeholder', e.target.value)} | CODE |
| LOW | …nt-flow/field-items-advanced-settings/number-field.tsx | 71 | id="placeholder" | CODE |
| LOW | …nt-flow/field-items-advanced-settings/number-field.tsx | 75 | onChange={(e) => handleFieldChange('placeholder', e.target.value)} | CODE |
| LOW | packages/lib/constants/pdf.test.ts | 17 | expectCaveat(getSignatureFontFamily('John Doe')); | CODE |
| LOW | …ckages/lib/server-only/field/create-envelope-fields.ts | 61 | return 'placeholder' in position; | CODE |
| LOW | …ib/server-only/ai/envelope/detect-recipients/prompt.ts | 33 | - "Signed: _________ John Doe" → { name: "John Doe", role: "SIGNER", signingOrder: 1 } | CODE |
| LOW | …b/server-only/webhooks/trigger/generate-sample-data.ts | 60 | name: 'John Doe', | CODE |
| LOW | …b/server-only/webhooks/trigger/generate-sample-data.ts | 82 | name: 'John Doe', | CODE |
| LOW | packages/api/v1/examples/05-add-a-recipient.ts | 20 | name: 'John Doe', | CODE |
| LOW | packages/api/v1/examples/01-create-and-send-document.ts | 18 | name: 'John Doe', | CODE |
| LOW | packages/api/v1/examples/01-create-and-send-document.ts | 23 | name: 'Jane Doe', | CODE |
| LOW | packages/app-tests/constants/field-overflow-pdf.ts | 371 | signature: 'John Doe', | CODE |
| LOW | packages/app-tests/constants/field-overflow-pdf.ts | 400 | signature: 'John Doe', | CODE |
| LOW | packages/app-tests/constants/field-alignment-pdf.ts | 121 | customText: 'John Doe', | CODE |
| LOW | packages/app-tests/constants/field-alignment-pdf.ts | 131 | customText: 'John Doe', | CODE |
| LOW | packages/app-tests/constants/field-alignment-pdf.ts | 142 | customText: 'John Doe', | CODE |
| LOW | packages/app-tests/constants/field-alignment-pdf.ts | 713 | 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore mag | CODE |
| LOW | packages/app-tests/constants/field-alignment-pdf.ts | 713 | 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore mag | CODE |
| LOW | packages/app-tests/constants/field-alignment-pdf.ts | 726 | 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore mag | CODE |
| LOW | packages/app-tests/constants/field-alignment-pdf.ts | 726 | 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore mag | CODE |
| LOW | packages/app-tests/constants/field-alignment-pdf.ts | 739 | 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore mag | CODE |
| LOW | packages/app-tests/constants/field-alignment-pdf.ts | 739 | 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore mag | CODE |
| LOW | packages/app-tests/e2e/user/update-name.spec.ts | 13 | await page.getByLabel('Full Name').fill('John Doe'); | CODE |
| LOW | packages/app-tests/e2e/user/update-name.spec.ts | 24 | expect((await getUserByEmail({ email: user.email })).name).toEqual('John Doe'); | CODE |
| LOW | …kages/app-tests/e2e/templates/direct-templates.spec.ts | 480 | const currentName = 'John Doe'; | CODE |
| LOW | packages/email/templates/document-recipient-signed.tsx | 18 | recipientName = 'John Doe', | CODE |
| LOW | packages/email/templates/organisation-invite.tsx | 21 | senderName = 'John Doe', | CODE |
| LOW | packages/email/templates/recipient-expired.tsx | 14 | recipientName = 'John Doe', | CODE |
| LOW | packages/email/templates/organisation-join.tsx | 22 | memberName = 'John Doe', | CODE |
| LOW | packages/email/templates/organisation-leave.tsx | 22 | memberName = 'John Doe', | CODE |
| LOW | …il/templates/document-created-from-direct-template.tsx | 21 | recipientName = 'John Doe', | CODE |
| LOW | packages/email/templates/document-reminder.tsx | 23 | recipientName = 'John Doe', | CODE |
| LOW | …mix/app/components/forms/document-preferences-form.tsx | 110 | const placeholderEmail = user.email ?? 'user@example.com'; | CODE |
| LOW | …app/components/forms/editor/editor-field-text-form.tsx | 137 | name="placeholder" | CODE |
| LOW | …p/components/forms/editor/editor-field-number-form.tsx | 148 | name="placeholder" | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …mponents/document/envelope-recipient-field-tooltip.tsx | 45 | export function EnvelopeRecipientFieldTooltip({ | CODE |
| LOW | packages/lib/utils/embed-config.ts | 14 | export function buildEmbeddedEditorOptions( | CODE |
| LOW | …ges/lib/server-only/recipient/get-is-recipient-turn.ts | 8 | export async function getIsRecipientsTurnToSign({ token }: GetIsRecipientTurnOptions) { | CODE |
| LOW | …erver-only/admin/get-organisation-detailed-insights.ts | 59 | export async function getOrganisationDetailedInsights({ | CODE |
| LOW | …e-components/template-document-rejection-confirmed.tsx | 12 | export function TemplateDocumentRejectionConfirmed({ | CODE |
| LOW | …kages/email/templates/document-rejection-confirmed.tsx | 17 | export function DocumentRejectionConfirmedEmail({ | CODE |
| LOW | …cument-signing/document-signing-recipient-provider.tsx | 51 | export function useDocumentSigningRecipientContext() { | CODE |
| LOW | …al/document-signing/document-signing-reject-dialog.tsx | 36 | export function DocumentSigningRejectDialog({ | CODE |
| LOW | …p/components/dialogs/assistant-confirmation-dialog.tsx | 43 | export function AssistantConfirmationDialog({ | CODE |
| LOW | …uthenticated+/organisation.sso.confirmation.$token.tsx | 114 | export default function OrganisationSsoConfirmationTokenPage({ loaderData }: Route.ComponentProps) { | CODE |
| LOW | …x/app/routes/_unauthenticated+/verify-email._index.tsx | 13 | export default function EmailVerificationWithoutTokenPage() { | CODE |
| LOW | …routes/_authenticated+/o.$orgUrl.settings.branding.tsx | 28 | export default function OrganisationSettingsBrandingPage() { | CODE |
| LOW | …/routes/_authenticated+/o.$orgUrl.settings.general.tsx | 18 | export default function OrganisationSettingsGeneral() { | CODE |
| LOW | …enticated+/o.$orgUrl.settings.email-domains._index.tsx | 20 | export default function OrganisationSettingsEmailDomains() { | CODE |
| LOW | …routes/_authenticated+/o.$orgUrl.settings.document.tsx | 30 | export default function OrganisationSettingsDocumentPage() { | CODE |
| LOW | …/app/routes/_authenticated+/o.$orgUrl.settings.sso.tsx | 62 | export default function OrganisationSettingSSOLoginPage() { | CODE |
| LOW | …pp/routes/_authenticated+/o.$orgUrl.settings.email.tsx | 16 | export default function OrganisationSettingsGeneral() { | CODE |
| LOW | …uthenticated+/o.$orgUrl.settings.email-domains.$id.tsx | 33 | export default function OrganisationEmailDomainSettingsPage({ params }: Route.ComponentProps) { | CODE |
| LOW | …pp/routes/_authenticated+/o.$orgUrl.settings.teams.tsx | 11 | export default function OrganisationSettingsTeamsPage() { | CODE |
| LOW | …/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx | 33 | export default function OrganisationSettingsTeamsPage() { | CODE |
| LOW | …utes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx | 41 | export default function OrganisationGroupSettingsPage({ params }: Route.ComponentProps) { | CODE |
| LOW | …_authenticated+/settings+/security.linked-accounts.tsx | 30 | export default function SettingsSecurityLinkedAccounts() { | CODE |
| LOW | …pp/routes/_authenticated+/admin+/organisations.$id.tsx | 62 | export default function OrganisationGroupSettingsPage({ params, loaderData }: Route.ComponentProps) { | CODE |
| LOW | …pp/routes/_authenticated+/admin+/email-domains.$id.tsx | 41 | export default function AdminEmailDomainDetailPage({ loaderData }: Route.ComponentProps) { | CODE |
| LOW | …s/_authenticated+/admin+/unsealed-documents._index.tsx | 19 | export default function AdminUnsealedDocumentsPage() { | CODE |
| LOW | …app/routes/embed+/v2+/authoring+/envelope.edit.$id.tsx | 105 | export default function EmbeddingAuthoringEnvelopeEditPage() { | CODE |
| LOW | …outes/embed+/v2+/authoring+/envelope.create._index.tsx | 88 | export default function EmbeddingAuthoringEnvelopeCreatePage() { | CODE |
| LOW | …/app/routes/embed+/v1+/authoring_.completed.create.tsx | 6 | export default function EmbeddingAuthoringCompletedPage() { | CODE |
| LOW | …x/app/routes/embed+/v1+/authoring+/template.create.tsx | 19 | export default function EmbeddingAuthoringTemplateCreatePage() { | CODE |
| LOW | …app/routes/embed+/v1+/authoring+/template.edit.$id.tsx | 81 | export default function EmbeddingAuthoringTemplateEditPage() { | CODE |
| LOW | …x/app/routes/embed+/v1+/authoring+/document.create.tsx | 20 | export default function EmbeddingAuthoringDocumentCreatePage() { | CODE |
| LOW | …app/routes/embed+/v1+/authoring+/document.edit.$id.tsx | 81 | export default function EmbeddingAuthoringDocumentEditPage() { | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docker/development/compose.yml | 61 | # Basic auth credentials Gotenberg checks when `--api-enable-basic-auth` | COMMENT |
| LOW | …nts/skills/agent-browser/templates/capture-workflow.sh | 1 | #!/bin/bash | COMMENT |
| LOW | …ents/skills/agent-browser/templates/form-automation.sh | 1 | #!/bin/bash | COMMENT |
| LOW | …ents/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 | 61 | echo " 2. Update the LOGIN FLOW section below with your refs" | COMMENT |
| LOW | …kills/agent-browser/templates/authenticated-session.sh | 81 | # agent-browser click @e3 | COMMENT |
| LOW | …ment-flow/field-items-advanced-settings/date-field.tsx | 21 | // const handleInput = (field: keyof DateFieldMeta, value: string | boolean) => { | COMMENT |
| LOW | packages/trpc/server/team-router/update-team.types.ts | 1 | import { ZNameSchema } from '@documenso/lib/types/name'; | COMMENT |
| LOW | …pc/server/envelope-router/bulk-move-envelopes.types.ts | 1 | import { EnvelopeType } from '@prisma/client'; | COMMENT |
| LOW | …/server/envelope-router/bulk-delete-envelopes.types.ts | 1 | import { z } from 'zod'; | COMMENT |
| LOW | packages/lib/constants/crypto.ts | 1 | import { env } from '../utils/env'; | COMMENT |
| LOW | packages/lib/constants/crypto.ts | 21 | // console.warn('*'); | COMMENT |
| LOW | packages/lib/server-only/user/create-user.ts | 41 | // const user = await prisma.$transaction(async (tx) => { | COMMENT |
| LOW | packages/lib/server-only/envelope/update-envelope.ts | 281 | from: envelope.visibility, | COMMENT |
| LOW | packages/lib/server-only/envelope/update-envelope.ts | 301 | // } | COMMENT |
| LOW | packages/lib/jobs/client/index.ts | 1 | // Empty file for build reasons. | COMMENT |
| LOW | packages/app-tests/playwright.config.ts | 121 | // use: { ...devices['Pixel 5'] }, | COMMENT |
| LOW | packages/app-tests/playwright.config.ts | 141 | // command: 'npm run start', | COMMENT |
| LOW | …tests/e2e/templates-flow/template-signers-step.spec.ts | 1 | import { seedBlankTemplate } from '@documenso/prisma/seed/templates'; | COMMENT |
| LOW | …tests/e2e/templates-flow/template-signers-step.spec.ts | 21 | // await seedUserSubscription({ | COMMENT |
| LOW | …tests/e2e/templates-flow/template-signers-step.spec.ts | 41 | // await page.getByRole('button', { name: 'Add Placeholder Recipient' }).click(); | COMMENT |
| LOW | …/app-tests/e2e/api/v1/organisation-rate-limits.spec.ts | 441 | } | COMMENT |
| LOW | …p/routes/_authenticated+/settings+/security._index.tsx | 21 | return appMetaTags(msg`Security`); | COMMENT |
| LOW | apps/remix/server/middleware.ts | 61 | // 1. Starts with /api/, /ingest/, /__manifest/, or /assets/ | COMMENT |
| LOW | apps/remix/server/security-headers.ts | 81 | `script-src 'self' 'nonce-${nonce}' 'strict-dynamic'`, | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .github/workflows/publish.yml | 111 | # Check if the version is stable (no rc or beta in the version) | COMMENT |
| LOW | .github/workflows/publish.yml | 152 | # Check if the version is stable (no rc or beta in the version) | COMMENT |
| LOW | apps/remix/.bin/stripe-dev.sh | 37 | # Check if NEXT_PUBLIC_FEATURE_BILLING_ENABLED is equal to true | COMMENT |
| LOW | apps/remix/.bin/stripe-dev.sh | 46 | # Check if NEXT_PRIVATE_STRIPE_API_KEY exists | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | apps/remix/app/routes/embed+/_v0+/direct.$token.tsx | 47 | // TODO: Make this more robust, we need to ensure the owner is either | COMMENT |
| MEDIUM | apps/remix/app/routes/embed+/_v0+/sign.$token.tsx | 67 | // TODO: Make this more robust, we need to ensure the owner is either | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | packages/email/preview/app/entry.server.tsx | 11 | export default function handleRequest( | CODE |
| LOW | apps/remix/app/entry.server.tsx | 17 | export default async function handleRequest( | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | packages/lib/server-only/email/get-email-context.ts | 61 | * Force meta options as a typesafe way to ensure developers don't forget to | COMMENT |