The Open Source DocuSign Alternative.
This report summarizes scanner evidence for documenso/documenso, a TypeScript project with 15,619 GitHub stars. SynthScan examined 304,159 lines of code across 2409 source files, recording 418 pattern matches distributed across 11 syntactic categories. The legacy adjusted pattern signal is 4.1 (Low pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.
Can maintainers explain intent, assumptions, and trade-offs? 185 finding(s).
Are imports declared and package/API names verified? 99 finding(s).
Are wrappers, guards, and repeated structures necessary? 172 finding(s).
Which changes need focused human review? 418 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 418 distinct pattern matches across 11 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | …/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 | 229 | const titles = json.result.data.json.data.map((t: { title: string }) => t.title); | CODE |
| CRITICAL | …app-tests/e2e/templates/organisation-templates.spec.ts | 247 | const titles = json.result.data.json.data.map((t: { title: string }) => t.title); | CODE |
| CRITICAL | …app-tests/e2e/templates/organisation-templates.spec.ts | 266 | const titles = json.result.data.json.data.map((t: { title: string }) => t.title); | CODE |
| CRITICAL | …app-tests/e2e/templates/organisation-templates.spec.ts | 294 | const titles = json.result.data.json.data.map((t: { title: string }) => t.title); | CODE |
| CRITICAL | …app-tests/e2e/templates/organisation-templates.spec.ts | 310 | const adminTitles = adminJson.result.data.json.data.map((t: { title: string }) => t.title); | CODE |
| CRITICAL | …app-tests/e2e/templates/organisation-templates.spec.ts | 478 | const titles = json.result.data.json.data.map((t: { title: string }) => t.title); | CODE |
| CRITICAL | …app-tests/e2e/templates/organisation-templates.spec.ts | 514 | 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 | 81 | 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 | 69 | 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 | 20 | 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 | …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 | 102 | 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 | 64 | 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 | …outes/_unauthenticated+/organisation.invite.$token.tsx | 177 | const acceptInvitation = trpc.organisation.member.invite.accept.useMutation({ | CODE |
| CRITICAL | …outes/_unauthenticated+/organisation.invite.$token.tsx | 195 | const declineInvitation = trpc.organisation.member.invite.decline.useMutation({ | CODE |
| CRITICAL | …/routes/_unauthenticated+/team.verify.email.$token.tsx | 123 | const { mutateAsync: completeTeamEmailVerification, isPending } = trpc.team.email.verification.complete.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 | 71 | trpc.enterprise.organisation.authenticationPortal.get.useQuery( | CODE |
| CRITICAL | …/app/routes/_authenticated+/o.$orgUrl.settings.sso.tsx | 124 | trpc.enterprise.organisation.authenticationPortal.update.useMutation(); | CODE |
| CRITICAL | …uthenticated+/o.$orgUrl.settings.email-domains.$id.tsx | 41 | const { data: emailDomain, isLoading: isLoadingEmailDomain } = trpc.enterprise.organisation.emailDomain.get.useQuery( | CODE |
| CRITICAL | …outes/_authenticated+/t.$teamUrl+/settings.general.tsx | 94 | trpc.team.email.verification.resend.useMutation({ | 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/admin/admin-global-search.ts | 103 | // ─── Documents ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/lib/server-only/admin/admin-global-search.ts | 149 | // ─── Users ──────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/lib/server-only/admin/admin-global-search.ts | 188 | // ─── Organisations ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/lib/server-only/admin/admin-global-search.ts | 235 | // ─── Teams ──────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/lib/server-only/admin/admin-global-search.ts | 275 | // ─── Recipients ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/lib/server-only/admin/admin-global-search.ts | 324 | // ─── Subscriptions ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/lib/server-only/document/find-documents.ts | 145 | // ─── Base query with common filters ────────────────────────────────── | COMMENT |
| MEDIUM | packages/lib/server-only/document/find-documents.ts | 217 | // ─── Personal path filters ─────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/lib/server-only/document/find-documents.ts | 332 | // ─── Team path filters ─────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/lib/server-only/document/find-documents.ts | 494 | // ─── Assemble and execute ──────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/lib/server-only/document/find-documents.ts | 534 | // ─── Hydrate with Prisma ───────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/lib/server-only/document/get-stats.ts | 100 | // ─── Base query builder ────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/lib/server-only/document/get-stats.ts | 153 | // ─── Shared filter helpers ─────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/lib/server-only/document/get-stats.ts | 177 | // ─── Per-status query builders ─────────────────────────────────────── | COMMENT |
| MEDIUM | packages/lib/server-only/document/get-stats.ts | 289 | // ─── Execute all counts in parallel ────────────────────────────────── | COMMENT |
| MEDIUM | packages/lib/server-only/envelope/find-envelopes.ts | 134 | // ─── Build Kysely query ────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/lib/server-only/envelope/find-envelopes.ts | 197 | // ─── Access control ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/lib/server-only/envelope/find-envelopes.ts | 231 | // ─── Execute: paginated data + count ────────────────────────────────── | COMMENT |
| MEDIUM | packages/lib/server-only/envelope/find-envelopes.ts | 256 | // ─── 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 |
| 74 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 | …sts/e2e/document-auth/assistant-signing-groups.spec.ts | 211 | value: 'John Doe', | 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 | 520 | 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 | 25 | recipientName = 'John Doe', | CODE |
| LOW | …/remix/app/components/forms/email-preferences-form.tsx | 56 | 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 | 58 | 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 | 11 | 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 | 37 | 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 | 20 | export default function OrganisationSettingsDocumentPage() { | CODE |
| LOW | …/app/routes/_authenticated+/o.$orgUrl.settings.sso.tsx | 64 | export default function OrganisationSettingSSOLoginPage() { | CODE |
| LOW | …es/_authenticated+/o.$orgUrl.settings.certificates.tsx | 13 | export default function OrganisationSettingsCertificatesPage() { | CODE |
| LOW | …pp/routes/_authenticated+/o.$orgUrl.settings.email.tsx | 16 | export default function OrganisationSettingsGeneral() { | CODE |
| LOW | …/routes/_authenticated+/o.$orgUrl.settings._layout.tsx | 43 | export default function OrganisationSettingsLayout({ loaderData }: Route.ComponentProps) { | CODE |
| LOW | …uthenticated+/o.$orgUrl.settings.email-domains.$id.tsx | 34 | export default function OrganisationEmailDomainSettingsPage({ params }: Route.ComponentProps) { | CODE |
| LOW | …pp/routes/_authenticated+/o.$orgUrl.settings.teams.tsx | 9 | export default function OrganisationSettingsTeamsPage() { | CODE |
| LOW | …/routes/_authenticated+/o.$orgUrl.analytics._index.tsx | 74 | export default function OrganisationAnalyticsPage({ loaderData }: Route.ComponentProps) { | CODE |
| LOW | …/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx | 38 | export default function OrganisationSettingsTeamsPage() { | CODE |
| LOW | …outes/_authenticated+/o.$orgUrl.settings.reminders.tsx | 13 | export default function OrganisationSettingsRemindersPage() { | 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 | …/_authenticated+/t.$teamUrl+/settings.certificates.tsx | 13 | export default function TeamsSettingsCertificatesPage() { | CODE |
| LOW | …tes/_authenticated+/t.$teamUrl+/settings.reminders.tsx | 13 | export default function TeamsSettingsRemindersPage() { | CODE |
| LOW | …app/routes/embed+/v2+/authoring+/envelope.edit.$id.tsx | 118 | export default function EmbeddingAuthoringEnvelopeEditPage() { | CODE |
| LOW | …outes/embed+/v2+/authoring+/envelope.create._index.tsx | 114 | 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 | …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/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 | …mix/app/components/forms/branding-preferences-form.tsx | 181 | // `defaultValues`), so `reset()` with no argument doesn't re-baseline the dirty check; | COMMENT |
| LOW | apps/remix/server/middleware.ts | 61 | // This regex matches any path that: | COMMENT |
| LOW | apps/remix/server/security-headers.ts | 81 | // PDF.js (apps/remix/app/components/general/pdf-viewer/pdf-viewer.tsx) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .github/workflows/publish.yml | 113 | # Check if the version is stable (no rc or beta in the version) | COMMENT |
| LOW | .github/workflows/publish.yml | 154 | # 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 | 50 | // TODO: Make this more robust, we need to ensure the owner is either | COMMENT |
| MEDIUM | apps/remix/app/routes/embed+/_v0+/sign.$token.tsx | 74 | // 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 | 18 | 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 |