AI Slop Code RIsk Monitor

HeyPuter/puter

🌐 The Internet Computer! Free, Open-Source, and Self-Hostable.

5.1 Moderate pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for HeyPuter/puter, a TypeScript project with 43,669 GitHub stars. SynthScan examined 707,003 lines of code across 2087 source files, recording 1165 pattern matches distributed across 12 syntactic categories. The legacy adjusted pattern signal is 5.1 (Moderate pattern signal); it is not an authorship estimate.

Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.

5.1
Adjusted Signal
5.1
Raw Pattern Score
100%
Time Factor
2026-10-10
Last Push
43.7K
Stars
TypeScript
Language
707.0K
Lines of Code
2.1K
Files
1.2K
Pattern Hits
2026-10-12
Scan Date
0.04
HC Hit Rate

Risk Review · v3

Use each vector to guide manual verification of the underlying findings.

Cognitive Ownership Risk 2.3/100 · LOW

Can maintainers explain intent, assumptions, and trade-offs? 270 finding(s).

Hallucinated Dependency & Supply Chain Risk 6.7/100 · LOW

Are imports declared and package/API names verified? 115 finding(s).

Agent Over-Engineering Ratio 15.3/100 · LOW

Are wrappers, guards, and repeated structures necessary? 839 finding(s).

PR Review Velocity Impact 21.9/100 · LOW

Which changes need focused human review? 1165 finding(s).

What These Metrics Mean

Adjusted Signal
Legacy pattern score normalized per 1,000 scanned lines and multiplied by the repository-level time factor. It is not an estimate of AI authorship.
Raw Pattern Score
Sum of severity- and context-weighted pattern findings before applying the time factor.
Time Factor
A coarse multiplier based on repository last-push metadata. It does not identify when individual code was written.
Pattern Hits
Count of configured pattern findings. Review each location and surrounding code before acting.
HC Hit Rate
High- and critical-severity findings per scanned file. Severity is a configured detector weight, not proof of a vulnerability or authorship.
Lines / Files
Scan coverage denominators used by the legacy normalized score.

Pattern-Signal History

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.

Severity Breakdown

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.

CRITICAL 84HIGH 4MEDIUM 781LOW 296

Directory Score Breakdown

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.

Pattern Findings

The scanner identified 1165 distinct pattern matches across 12 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.

Decorative Section Separators775 hits · 2283 pts
SeverityFileLineSnippetContext
MEDIUMinstall.sh56# ── Step 1: dependency check ────────────────────────────────────────COMMENT
MEDIUMinstall.sh64# ── Step 2: install dir ─────────────────────────────────────────────COMMENT
MEDIUMinstall.sh82# ── Step 3: docker-compose.yml + Caddy config ──────────────────────COMMENT
MEDIUMinstall.sh100# ── Step 4: secrets, .env, config.json ──────────────────────────────COMMENT
MEDIUMinstall.sh220# ── Step 5: bring it up ─────────────────────────────────────────────COMMENT
MEDIUMdocker-compose.yml190 # ── Optional: local LLM ───────────────────────────────────────────COMMENT
MEDIUMsrc/dev-center/js/apps.js3050// ── App Users modal ──────────────────────────────────────────────COMMENT
MEDIUMsrc/puter-js/tests/api/suites/ai.suite.ts456 // ── Unified driver routing ──────────────────────────────────────COMMENT
MEDIUMsrc/backend/extensions.test.ts99// ── Registry writers ─────────────────────────────────────────────────COMMENT
MEDIUMsrc/backend/extensions.test.ts181// ── Event subscription ───────────────────────────────────────────────COMMENT
MEDIUMsrc/backend/extensions.test.ts209// ── Route registration ───────────────────────────────────────────────COMMENT
MEDIUMsrc/backend/extensions.test.ts342// ── Import proxy ─────────────────────────────────────────────────────COMMENT
MEDIUM…c/backend/clients/database/MySQLDatabaseClient.test.ts183// ── Replica read failover ───────────────────────────────────────────COMMENT
MEDIUMsrc/backend/drivers/driverPolicies.test.ts63// ── Non-AI drivers (migrated from hardcoded-permissions) ────────────COMMENT
MEDIUMsrc/backend/drivers/driverPolicies.test.ts275// ── Iface coordination cross-check ──────────────────────────────────COMMENT
MEDIUMsrc/backend/drivers/driverPolicies.test.ts291// ── Cross-driver invariants ────────────────────────────────────────COMMENT
MEDIUMsrc/backend/drivers/meta.test.ts38// ── validateDriverRateLimit ─────────────────────────────────────────COMMENT
MEDIUMsrc/backend/drivers/meta.test.ts149// ── resolveDriverMethodRateLimit ────────────────────────────────────COMMENT
MEDIUMsrc/backend/drivers/meta.test.ts188// ── @Driver decorator: rateLimit propagation ────────────────────────COMMENT
MEDIUMsrc/backend/drivers/meta.test.ts277// ── validateDriverConcurrent ────────────────────────────────────────COMMENT
MEDIUMsrc/backend/drivers/meta.test.ts346// ── resolveDriverMethodConcurrent ───────────────────────────────────COMMENT
MEDIUMsrc/backend/drivers/meta.test.ts377// ── @Driver — concurrent option ─────────────────────────────────────COMMENT
MEDIUMsrc/backend/drivers/meta.test.ts446// ── requireSubscription ─────────────────────────────────────────────COMMENT
MEDIUMsrc/backend/drivers/meta.test.ts550// ── requireReputation ───────────────────────────────────────────────COMMENT
MEDIUMsrc/backend/drivers/ai-ocr/OCRDriver.test.ts59// ── SDK mocks ───────────────────────────────────────────────────────COMMENT
MEDIUMsrc/backend/drivers/ai-ocr/OCRDriver.test.ts101// ── Test harness ────────────────────────────────────────────────────COMMENT
MEDIUMsrc/backend/drivers/ai-ocr/OCRDriver.test.ts179// ── getReportedCosts ────────────────────────────────────────────────COMMENT
MEDIUMsrc/backend/drivers/ai-ocr/OCRDriver.test.ts197// ── Argument validation ─────────────────────────────────────────────COMMENT
MEDIUMsrc/backend/drivers/ai-ocr/OCRDriver.test.ts241// ── AWS Textract ────────────────────────────────────────────────────COMMENT
MEDIUMsrc/backend/drivers/ai-ocr/OCRDriver.test.ts415// ── Mistral OCR ─────────────────────────────────────────────────────COMMENT
MEDIUMsrc/backend/drivers/ai-ocr/OCRDriver.test.ts780// ── Credit pre-flight ───────────────────────────────────────────────COMMENT
MEDIUMsrc/backend/drivers/ai-ocr/OCRDriver.test.ts980// ── Default provider selection ──────────────────────────────────────COMMENT
MEDIUMsrc/backend/drivers/kv/KVStoreDriver.test.ts1686 // ── Budget enforcement ───────────────────────────────────────────COMMENT
MEDIUMsrc/backend/drivers/util/fileInput.test.ts37// ── Test harness ────────────────────────────────────────────────────COMMENT
MEDIUMsrc/backend/drivers/util/fileInput.test.ts121// ── inferFilenameFromUrlOrPath ─────────────────────────────────────COMMENT
MEDIUMsrc/backend/drivers/util/fileInput.test.ts153// ── loadFileInput — argument validation ─────────────────────────────COMMENT
MEDIUMsrc/backend/drivers/util/fileInput.test.ts200// ── loadFileInput — data URL path ───────────────────────────────────COMMENT
MEDIUMsrc/backend/drivers/util/fileInput.test.ts298// ── loadFileInput — FS path ─────────────────────────────────────────COMMENT
MEDIUMsrc/backend/drivers/util/fileInput.test.ts421// ── loadFileInput web URL ──────────────────────────────────────────COMMENT
MEDIUM…ackend/drivers/notification/NotificationDriver.test.ts28// ── Test harness ────────────────────────────────────────────────────COMMENT
MEDIUM…ackend/drivers/notification/NotificationDriver.test.ts111// ── create ──────────────────────────────────────────────────────────COMMENT
MEDIUM…ackend/drivers/notification/NotificationDriver.test.ts236// ── read ────────────────────────────────────────────────────────────COMMENT
MEDIUM…ackend/drivers/notification/NotificationDriver.test.ts288// ── select / predicates ─────────────────────────────────────────────COMMENT
MEDIUM…ackend/drivers/notification/NotificationDriver.test.ts373// ── mark_shown / mark_acknowledged ─────────────────────────────────COMMENT
MEDIUM…ackend/drivers/notification/NotificationDriver.test.ts463// ── Audience scoping ────────────────────────────────────────────────COMMENT
MEDIUM…c/backend/drivers/ai-chat/ChatCompletionDriver.test.ts64// ── Test harness ────────────────────────────────────────────────────COMMENT
MEDIUM…c/backend/drivers/ai-chat/ChatCompletionDriver.test.ts110// ── Helpers ─────────────────────────────────────────────────────────COMMENT
MEDIUM…c/backend/drivers/ai-chat/ChatCompletionDriver.test.ts134// ── Model catalog ───────────────────────────────────────────────────COMMENT
MEDIUM…c/backend/drivers/ai-chat/ChatCompletionDriver.test.ts187// ── Auth + model resolution ─────────────────────────────────────────COMMENT
MEDIUM…c/backend/drivers/ai-chat/ChatCompletionDriver.test.ts421// ── Happy path: events + cost emission ──────────────────────────────COMMENT
MEDIUM…c/backend/drivers/ai-chat/ChatCompletionDriver.test.ts624// ── Validation event routing ────────────────────────────────────────COMMENT
MEDIUM…c/backend/drivers/ai-chat/ChatCompletionDriver.test.ts681// ── Credit gate + max_tokens cap ────────────────────────────────────COMMENT
MEDIUM…c/backend/drivers/ai-chat/ChatCompletionDriver.test.ts1110// ── Claude thinking_tokens ──────────────────────────────────────────COMMENT
MEDIUM…c/backend/drivers/ai-chat/ChatCompletionDriver.test.ts1257// ── Normalisation ───────────────────────────────────────────────────COMMENT
MEDIUM…c/backend/drivers/ai-chat/ChatCompletionDriver.test.ts1345// ── OpenAI-shape normalization ──────────────────────────────────────COMMENT
MEDIUM…c/backend/drivers/ai-chat/ChatCompletionDriver.test.ts1632// ── Fallback / error envelope ───────────────────────────────────────COMMENT
MEDIUM…c/backend/drivers/ai-chat/ChatCompletionDriver.test.ts1806// ── Streaming ───────────────────────────────────────────────────────COMMENT
MEDIUM…/drivers/ai-chat/providers/providerConsistency.test.ts78// ── Upstream SDK mocks ──────────────────────────────────────────────COMMENT
MEDIUM…/drivers/ai-chat/providers/providerConsistency.test.ts141// ── Harness ─────────────────────────────────────────────────────────COMMENT
MEDIUM…/drivers/ai-chat/providers/providerConsistency.test.ts339// ── Per-dialect upstream fixtures ───────────────────────────────────COMMENT
715 more matches not shown…
Hallucination Indicators84 hits · 945 pts
SeverityFileLineSnippetContext
CRITICALsrc/dev-center/js/libs/jquery-3.6.0.min.js2!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):fCODE
CRITICALsrc/puter-js/src/lib/utils.verificationGate.test.js90 const asked = puter.ui.requestVerificationGate.mock.calls.map(CODE
CRITICAL…backend/controllers/fs/sharedFolderWrites.http.test.ts156 const emit = env.server.clients.event.emit.bind(CODE
CRITICAL⚡src/backend/services/permission/GroupGrants.test.ts32 const user = await fx.env.server.stores.user.getById(userId);CODE
CRITICAL⚡src/backend/services/permission/GroupGrants.test.ts40 const owner = await fx.env.server.stores.user.getById(ownerId);CODE
CRITICAL⚡src/backend/services/permission/GroupGrants.test.ts42 await fx.env.server.clients.db.write(CODE
CRITICAL⚡src/backend/services/permission/GroupGrants.test.ts51 fx.env.server.clients.db.booleanValue(false),CODE
CRITICALsrc/backend/services/permission/GroupGrants.test.ts288 const owner = await fx.env.server.stores.user.getById(CODE
CRITICALsrc/backend/services/permission/GroupGrants.test.ts333 const rows = (await fx.env.server.clients.db.read(CODE
CRITICALsrc/backend/services/permission/GroupGrants.test.ts356 await fx.env.server.stores.team.softDelete(fx.b.uid);CODE
CRITICAL⚡src/backend/services/share/TeamShareAccess.test.ts40 const user = await fx.env.server.stores.user.getById(userId);CODE
CRITICAL⚡src/backend/services/share/TeamShareAccess.test.ts48 fx.env.server.services.acl.check(CODE
CRITICAL⚡src/backend/services/share/TeamShareAccess.test.ts53 fx.env.server.services.fs.getAncestorChain(path),CODE
CRITICAL⚡src/backend/services/share/TeamShareAccess.test.ts61 const owner = await fx.env.server.stores.user.getById(ownerId);CODE
CRITICAL⚡src/backend/services/share/TeamShareAccess.test.ts63 await fx.env.server.clients.db.write(CODE
CRITICAL⚡src/backend/services/share/TeamShareAccess.test.ts71 fx.env.server.clients.db.booleanValue(false),CODE
CRITICAL⚡src/backend/services/share/TeamShareNotify.test.ts46 const user = await fx.env.server.stores.user.getById(userId);CODE
CRITICAL⚡src/backend/services/share/TeamShareNotify.test.ts53 const owner = await fx.env.server.stores.user.getById(ownerId);CODE
CRITICAL⚡src/backend/services/share/TeamShareNotify.test.ts55 await fx.env.server.clients.db.write(CODE
CRITICAL⚡src/backend/services/share/TeamShareNotify.test.ts63 fx.env.server.clients.db.booleanValue(false),CODE
CRITICAL⚡src/backend/services/share/TeamShareNotify.test.ts77 const share = await fx.env.server.services.share.share(actor, {CODE
CRITICAL⚡src/backend/services/share/TeamShareNotify.test.ts82 await fx.env.server.services.shareNotification.notifyShared(actor, [CODE
CRITICAL⚡src/backend/services/share/TeamShareNotify.test.ts89 const rows = await fx.env.server.stores.notification.listByUserId(CODE
CRITICALsrc/backend/services/share/TeamShareNotify.test.ts177 const team = await fx.env.server.stores.team.getByUid(fx.a.uid);CODE
CRITICALsrc/backend/services/share/TeamShareNotify.test.ts178 await fx.env.server.stores.team.addMember(CODE
CRITICAL⚡src/backend/services/share/TeamShareNotify.test.ts219 const fresh = await fx.env.server.stores.user.create({CODE
CRITICAL⚡src/backend/services/share/TeamShareNotify.test.ts225 await fx.env.server.stores.team.addMember(fx.a.uid, fresh.id, {CODE
CRITICAL⚡src/backend/services/share/TeamShareNotify.test.ts230 await fx.env.server.stores.userBlock.create(CODE
CRITICALsrc/backend/services/share/TeamShareNotify.test.ts253 await fx.env.server.stores.userBlock.deleteByPair(CODE
CRITICALsrc/backend/services/share/TeamShareNotify.test.ts273 await fx.env.server.services.share.share(actor, {CODE
CRITICALsrc/backend/services/share/TeamShareNotify.test.ts282 await fx.env.server.services.shareNotification.notifyShared(CODE
CRITICAL⚡src/backend/services/share/TeamShareNotify.test.ts296 await fx.env.server.services.share.share(actor, {CODE
CRITICAL⚡src/backend/services/share/TeamShareNotify.test.ts305 await fx.env.server.services.shareNotification.notifyShared(CODE
CRITICAL⚡src/backend/services/share/TeamShareNotify.test.ts312 const team = await fx.env.server.stores.team.getByUid(fx.a.uid);CODE
CRITICAL⚡src/backend/services/share/TeamShareNotify.test.ts313 const members = await fx.env.server.stores.team.listMemberIdsByGroupId(CODE
CRITICAL⚡src/backend/services/share/TeamShare.test.ts43 const owner = await fx.env.server.stores.user.getById(ownerId);CODE
CRITICAL⚡src/backend/services/share/TeamShare.test.ts45 await fx.env.server.clients.db.write(CODE
CRITICAL⚡src/backend/services/share/TeamShare.test.ts53 fx.env.server.clients.db.booleanValue(false),CODE
CRITICAL⚡src/backend/services/share/TeamShare.test.ts62 const owner = await fx.env.server.stores.user.getById(ownerId);CODE
CRITICAL⚡src/backend/services/share/TeamShare.test.ts73 fx.env.server.clients.db.write(CODE
CRITICAL⚡src/backend/services/share/TeamShare.test.ts81 fx.env.server.clients.db.booleanValue(isDir),CODE
CRITICAL⚡src/backend/services/share/TeamShare.test.ts88 await fx.env.server.stores.fsEntry.getEntryByUuid(dirUid);CODE
CRITICAL⚡src/backend/services/share/TeamShare.test.ts442 const team = await fx.env.server.stores.team.getByUid(fx.a.uid);CODE
CRITICAL⚡src/backend/services/share/TeamShare.test.ts443 const entry = await fx.env.server.stores.fsEntry.getEntryByUuid(CODE
CRITICAL⚡src/backend/services/share/TeamShare.test.ts446 await fx.env.server.stores.share.upsertActiveGroup({CODE
CRITICAL⚡src/backend/services/share/TeamShare.test.ts458 const rows = await fx.env.server.stores.permission.readUserGroupPerms(CODE
CRITICAL⚡src/backend/services/share/TeamShare.test.ts468 const entry = await fx.env.server.stores.fsEntry.getEntryByUuid(CODE
CRITICAL⚡src/backend/services/share/TeamShare.test.ts475 await fx.env.server.stores.share.listGroupReachingMembers([CODE
CRITICAL⚡src/backend/services/share/TeamShare.test.ts566 const team = await fx.env.server.stores.team.getByUid(fx.a.uid);CODE
CRITICAL⚡src/backend/services/share/TeamShare.test.ts567 const entry = await fx.env.server.stores.fsEntry.getEntryByUuid(file.uid);CODE
CRITICAL⚡src/backend/services/share/TeamShare.test.ts568 await fx.env.server.stores.share.upsertActiveGroup({CODE
CRITICAL⚡src/backend/services/share/TeamShare.test.ts575 const rows = await fx.env.server.stores.share.listGroupOnFsentry(entry.id);CODE
CRITICAL⚡src/backend/services/share/TeamShare.test.ts582 const left = await fx.env.server.stores.permission.readUserGroupPerms(CODE
CRITICAL⚡src/backend/services/share/TeamShare.test.ts773 const fileEntry = await fx.env.server.stores.fsEntry.getEntryByUuid(CODE
CRITICAL⚡src/backend/services/share/TeamShare.test.ts776 await fx.env.server.stores.share.upsertActive({CODE
CRITICAL⚡src/backend/services/share/TeamShare.test.ts783 const dirEntry = await fx.env.server.stores.fsEntry.getEntryByUuid(CODE
CRITICAL⚡src/backend/services/share/TeamShare.test.ts786 const issuers = await fx.env.server.stores.share.listIssuerIdsBySubtree(CODE
CRITICAL⚡src/backend/services/share/TeamShare.test.ts793 const members = await fx.env.server.stores.team.memberIdsAmong(CODE
CRITICAL⚡src/backend/services/share/TeamShare.test.ts831 await fx.env.server.stores.permission.readUserGroupPerms(CODE
CRITICAL⚡src/backend/services/share/TeamShare.test.ts836 const entry = await fx.env.server.stores.fsEntry.getEntryByUuid(CODE
24 more matches not shown…
Over-Commented Block170 hits · 169 pts
SeverityFileLineSnippetContext
LOWinstall.sh1#!/usr/bin/env shCOMMENT
LOWinstall.sh21# PUTER_URL base URL to fetch docker-compose.yml (default: GitHub raw, main branch)COMMENT
LOWinstall.sh61docker compose version >/dev/null 2>&1 \COMMENT
LOWdocker-compose.yml1---COMMENT
LOWdocker-compose.yml21# grabs this file, generates secrets, writes .env + config.json, and runsCOMMENT
LOWdocker-compose.yml321 condition: service_startedCOMMENT
LOWextensions/whoami.ts41// Keys that must never leave the server, whoever put them on the response.COMMENT
LOWextensions/whoami.ts161 unconfirmed_email: user.email,COMMENT
LOWextensions/useremailrx/index.ts61 subdomain: 'api',COMMENT
LOW.github/workflows/puterjs-tests.yaml101 # SDK coverage on both refs, reported as a PR comment — same shape asCOMMENT
LOWsrc/dev-center/js/apps.js1921 `/${auth_username}/AppData/${dev_center_uid}/${app.uid ?? app.uuid}`,COMMENT
LOWsrc/puter-js/test/aiProviders.test.js1/* eslint-disable */COMMENT
LOWsrc/puter-js/test/signin.test.js1/* eslint-disable */COMMENT
LOWsrc/puter-js/tests/e2e/specs/requestPermission.spec.js761 expect(await page.evaluate(() => !!puter.authToken)).toBe(false);COMMENT
LOWsrc/puter-js/tests/e2e/specs/requestPermission.spec.js841 // as soon as it has answered, which can happen before a listenerCOMMENT
LOWsrc/puter-js/src/lib/networkUtils.js481COMMENT
LOWsrc/puter-js/src/modules/UI.js501 // we start from 1 because 0 is falsy and we want to avoid that for the message idCOMMENT
LOWsrc/puter-js/src/modules/UI.js521 // onWindowClose() is executed right before the window is closed. Users can override this functionCOMMENT
LOWsrc/puter-js/src/modules/UI.js541COMMENT
LOWsrc/puter-js/src/modules/UI.js561 // Also shared with the SDK, whose token handler pins on the same set.COMMENT
LOWsrc/puter-js/src/modules/UI.js1961 // reports a permission the user granted as denied. Parse once andCOMMENT
LOWsrc/puter-js/src/modules/UI.js2061 // the window the user is looking at — it reads `true` for aCOMMENT
LOWsrc/puter-js/src/modules/UI.js2081 // relationship is intact, so having seen it proves a close is aCOMMENT
LOWsrc/puter-js/src/modules/UI.js2181 // won't construct, no `document.body` yet because this was calledCOMMENT
LOWsrc/puter-js/src/modules/UI.js2341 checkClosed = null;COMMENT
LOWsrc/puter-js/src/modules/UI.js2581COMMENT
LOW…r-js/src/modules/FileSystem/operations/upload/index.js141 // we want to avoid uploading files in case there is not enough storage space.COMMENT
LOWsrc/backend/config.ts21import path from 'node:path';COMMENT
LOWsrc/backend/config.ts121 // API lives on the `api.` subdomain on the same host+port as the mainCOMMENT
LOWsrc/backend/server.ts261 servicesContainers[serviceName] = this.services[serviceName];COMMENT
LOWsrc/backend/server.ts581 cookieName: this.#config.cookie_name,COMMENT
LOWsrc/backend/server.ts821 this.#app.use(COMMENT
LOWsrc/backend/server.ts841 //COMMENT
LOWsrc/backend/server.ts1001 // that subdomain(s). Routes WITHOUT a `subdomain` option (and thatCOMMENT
LOWsrc/backend/server.ts1081 mwChain.push(requireVerifiedAccount());COMMENT
LOWsrc/backend/server.ts1261 // from req.body — body is already parsed by the global JSONCOMMENT
LOWsrc/backend/clients/event/types.ts341 // accounts) before any Stripe SetupIntent is created.COMMENT
LOWsrc/backend/clients/event/types.ts761 };COMMENT
LOWsrc/backend/drivers/callableMethods.test.ts21import { puterDrivers } from './index.js';COMMENT
LOWsrc/backend/drivers/util/aiLimits.ts21 DEFAULT_FREE_SUBSCRIPTION,COMMENT
LOW…c/backend/drivers/ai-chat/ChatCompletionDriver.test.ts1701 const line = warn.mock.callsCOMMENT
LOWsrc/backend/drivers/ai-chat/ChatCompletionDriver.ts1441 // What the request would get with money no object.COMMENT
LOWsrc/backend/drivers/ai-chat/providers/azure/models.ts21COMMENT
LOW…drivers/ai-chat/providers/mistral/MistralAiProvider.ts261 }COMMENT
LOWsrc/backend/drivers/subdomain/SubdomainDriver.ts181 if (!rootDirId) {COMMENT
LOWsrc/backend/drivers/subdomain/SubdomainDriver.ts661 // {COMMENT
LOWsrc/backend/drivers/workers/WorkerDriver.ts221 // Without this the driver falls back to the generic 600/minute default,COMMENT
LOWsrc/backend/drivers/workers/WorkerDriver.ts1041 400,COMMENT
LOWsrc/backend/drivers/apps/AppDriver.js701 // 2. Raw base64 (no prefix) of a real image — normalized to aCOMMENT
LOWsrc/backend/drivers/apps/AppDriver.js1081 // Icon sizing hook (for future AppIconService integration)COMMENT
LOWsrc/backend/core/reputation.ts21import { isSystemActor, type Actor } from './actor';COMMENT
LOWsrc/backend/core/http/types.ts321/** Internal: the property name used to stash decorator metadata on prototypes. */COMMENT
LOWsrc/backend/core/http/middleware/rateLimit.js261 else memoryConcurrentCounts.set(key, c - 1);COMMENT
LOWsrc/backend/core/http/middleware/puterSite.ts421 // mirror of the private redirect above. Covers two cases:COMMENT
LOWsrc/backend/core/http/middleware/privateAppGate.test.ts961 // app_uid=attacker; using it as a bootstrap on the target hostCOMMENT
LOWsrc/backend/util/nodeFetchDispatcherGuard.ts21// dispatcher slot — `Symbol.for('undici.globalDispatcher.1')`, shared withCOMMENT
LOWsrc/backend/util/nodeFetchDispatcherGuard.ts41 // data: fetch cannot fail meaningfully; if it ever does, the slot isCOMMENT
LOWsrc/backend/util/nativeImport.ts21// analysis, but the resulting function inherits a vm context with noCOMMENT
LOWsrc/backend/stores/index.ts81COMMENT
LOWsrc/backend/stores/app/AppStore.js101// - ownership: `owner_user_id`, `app_owner` — set via `create`'s secondCOMMENT
110 more matches not shown…
Hyper-Verbose Identifiers59 hits · 60 pts
SeverityFileLineSnippetContext
LOWextensions/thumbnails.ts148async function decodeAndValidateThumbnail(CODE
LOWsrc/dev-center/js/apps.js2709function getDefaultPreviewImagesState () {CODE
LOWsrc/dev-center/js/apps.js2717function createPreviewThumbElement (item) {CODE
LOWsrc/puter-js/test/index.html1220 function updateMasterCheckboxState() {CODE
LOWsrc/puter-js/src/modules/EmailConfirmationDialog.js259export function showEmailConfirmationDialog (message) {CODE
LOWsrc/puter-js/src/modules/Email/ComposerLib.js62export function determineTopLevelMimeType({ attachments = [], text, html }) {CODE
LOWsrc/backend/drivers/meta.ts180export function resolveDriverMethodRateLimit(CODE
LOWsrc/backend/drivers/meta.ts270export function resolveDriverMethodConcurrent(CODE
LOWsrc/backend/drivers/meta.ts296export function validateDriverRequireSubscription(CODE
LOWsrc/backend/drivers/meta.ts336export function resolveDriverMethodRequireSubscription(CODE
LOWsrc/backend/drivers/meta.ts363export function validateDriverRequireReputation(CODE
LOWsrc/backend/drivers/meta.ts403export function resolveDriverMethodRequireReputation(CODE
LOWsrc/backend/drivers/util/fileInput.ts343export function inferFilenameFromUrlOrPath(CODE
LOWsrc/backend/drivers/ai-video/creditCap.ts57export async function capSecondsToRemainingCredits({CODE
LOWsrc/backend/drivers/ai-speech2txt/providerAliases.ts55export function normalizeSpeechToTextProvider(CODE
LOWsrc/backend/drivers/subdomain/SubdomainDriver.ts916function mapEntryToSubdomainRootDir(entry: FSEntry): Record<string, unknown> {CODE
LOWsrc/backend/core/http/middleware/rateLimit.js477export function listConfiguredRateLimitBackends() {CODE
LOWsrc/backend/core/http/middleware/rateLimit.js568export function computeNetworkFingerprint(req) {CODE
LOWsrc/backend/core/http/middleware/privateAppGate.ts191export async function resolveOwnedAppForHostedSite(opts: {CODE
LOWsrc/backend/core/http/middleware/privateAppGate.ts478export async function resolvePublicHostedIdentity(opts: {CODE
LOW⚡src/backend/util/hostedAppBacking.ts61function normalizeHostedDomainValue(domainValue: unknown): string | null {CODE
LOW⚡src/backend/util/hostedAppBacking.ts70function normalizeConfiguredHostedDomain(domainValue: unknown): string | null {CODE
LOW⚡src/backend/util/hostedAppBacking.ts76function configuredHostedDomainValues(CODE
LOWsrc/backend/util/hostedAppBacking.ts107export function buildHostedSubdomainIndexUrlCandidates(CODE
LOWsrc/backend/util/hostedAppBacking.ts151export function extractPuterHostedSubdomain(CODE
LOWsrc/backend/util/hostedAppBacking.ts207export async function hostedIndexUrlBackingIsUnavailable({CODE
LOWsrc/backend/util/hostedAppBacking.ts238export async function hostedIndexUrlBackingsAreUnavailable({CODE
LOWsrc/backend/util/cardFallback.ts79export function cardFallbackAfterAttempts(CODE
LOWsrc/backend/util/cardFallback.ts139export function resetCardVerificationStatusCache(): void {CODE
LOWsrc/backend/util/cardFallback.ts147export async function isCardVerificationEnabled(CODE
LOWsrc/backend/util/inlineContentSecurity.ts38export function applyInlineContentSecurity(CODE
LOWsrc/backend/util/fileSigning.ts76function computeOwnerBoundSignature(CODE
LOWsrc/backend/util/fileSigning.ts224function noteLegacySignatureAccepted(): void {CODE
LOWsrc/backend/util/privateLaunchAccess.ts106export async function resolvePrivateLaunchAccess({CODE
LOWsrc/backend/stores/metering/retention.ts28export function resolveMeteringRetentionMonths(config: {CODE
LOWsrc/backend/stores/fs/S3ObjectStore.ts56export function clampSignedUploadExpirySeconds(requested: unknown): number {CODE
LOWsrc/backend/stores/fs/pendingUploadSessionHelpers.ts30export function toPendingUploadSessionKey(sessionId: string): string {CODE
LOWsrc/backend/stores/fs/pendingUploadSessionHelpers.ts34export function toPendingUploadSessionExpiresAtSeconds(CODE
LOWsrc/backend/stores/fs/pendingUploadSessionHelpers.ts97export function normalizePendingUploadSession(CODE
LOWsrc/backend/stores/fs/pendingUploadSessionHelpers.ts145export function withPendingUploadSessionStatus(CODE
LOWsrc/backend/controllers/fs/legacyFsHelpers.ts356function mapAppForLegacyAssociatedApp(CODE
LOWsrc/backend/controllers/fs/legacyFsHelpers.ts585export function signingConfigFromAppConfig(config: IConfig): SigningConfig {CODE
LOWsrc/docs/build.js115function createDirectoryRecursively (directoryPath) {CODE
LOWsrc/docs/build.js122function removeDirectoryRecursively (directoryPath) {CODE
LOWsrc/docs/build.js166function generateSearchTriggerHTML () {CODE
LOWsrc/docs/build.js195function generateTableOfContentsHTML (htmlContent, title) {CODE
LOWsrc/docs/build.js236function generatePlatformCompatibilityHTML (frontMatter) {CODE
LOWsrc/docs/build.js693function getDescriptionFromMarkdown (sourcePath) {CODE
LOWsrc/mcp-connector/src/oauth.js140function protectedResourceMetadata(event) {CODE
LOWsrc/gui/src/UI/UIWindowPasswordChangeRequired.js25function UIWindowPasswordChangeRequired (options) {CODE
LOWsrc/gui/src/UI/UIWindowEmailConfirmationRequired.js23function UIWindowEmailConfirmationRequired (options) {CODE
LOWsrc/gui/src/UI/UIWindowPhoneVerificationRequired.js81function UIWindowPhoneVerificationRequired(options) {CODE
LOWsrc/gui/src/UI/UIWindowCardVerificationRequired.js66function UIWindowCardVerificationRequired(options) {CODE
LOWsrc/gui/src/UI/UIWindowDesktopBGSettings.js22async function UIWindowDesktopBGSettings (options) {CODE
LOWsrc/gui/src/UI/Settings/UIWindowConfirmUserDeletion.js23async function UIWindowConfirmUserDeletion (options) {CODE
LOWsrc/gui/src/UI/Settings/UIWindowFinalizeUserDeletion.js24async function UIWindowFinalizeUserDeletion (options) {CODE
LOWsrc/gui/src/UI/Dashboard/UIProfilePictureCropModal.js61export default function UIProfilePictureCropModal ({ picture, onSave, $container, returnFocusTo }) {CODE
LOWsrc/gui/src/helpers/verification_gates.js48export async function openVerificationGateWindow (code, { factors } = {}) {CODE
LOWsrc/gui/src/helpers/notificationApi.js39export async function markNotificationAcknowledged (uid) {CODE
Verbosity Indicators18 hits · 36 pts
SeverityFileLineSnippetContext
LOW⚡src/dev-center/js/websites.js57 // Step 1: Show directory pickerCOMMENT
LOW⚡src/dev-center/js/websites.js67 // Step 2: Ask for website nameCOMMENT
LOW⚡src/dev-center/js/websites.js71 // Step 3: Create website with selected directoryCOMMENT
LOW⚡src/dev-center/js/websites.js447 // Step 1: Show directory pickerCOMMENT
LOW⚡src/dev-center/js/websites.js454 // Step 2: Confirm the change since it will replace the current websiteCOMMENT
LOW⚡src/dev-center/js/websites.js474 // Step 3: Show loading spinnerCOMMENT
LOW⚡src/dev-center/js/websites.js478 // Step 4: Delete the existing websiteCOMMENT
LOW⚡src/dev-center/js/websites.js481 // Step 5: Create a new website with the same name but new directoryCOMMENT
LOW⚡src/dev-center/js/websites.js484 // Step 6: Refresh the websites list to show the updated directoryCOMMENT
LOW⚡src/dev-center/js/websites.js487 // Step 7: Show success messageCOMMENT
LOWsrc/dev-center/js/workers.js75 // Step 1: Show file picker limited to .js filesCOMMENT
LOW⚡src/dev-center/js/workers.js87 // Step 2: Ask for worker nameCOMMENT
LOW⚡src/dev-center/js/workers.js91 // Step 3: Create worker with selected fileCOMMENT
LOWsrc/puter-js/test/ai.test.js113 // For streaming, we need to check if it's an async iterator or has a different structureCOMMENT
LOWsrc/docs/src/playground/examples/ai-image-edit.html8 // Step 1: Generate initial imageCOMMENT
LOWsrc/docs/src/playground/examples/ai-image-edit.html23 // Step 2: Edit the image in a follow-up turnCOMMENT
LOWsrc/gui/src/index.js58 // window.disable_temp_users might be set somewhere else, so we need to check if it is already set and if not, use tCOMMENT
LOWsrc/gui/src/lib/jquery-ui-1.13.2/jquery-ui.js17258 // IE sets focus asynchronously, so we need to check if focusCOMMENT
Structural Annotation Overuse17 hits · 34 pts
SeverityFileLineSnippetContext
LOW⚡src/dev-center/js/websites.js57 // Step 1: Show directory pickerCOMMENT
LOW⚡src/dev-center/js/websites.js67 // Step 2: Ask for website nameCOMMENT
LOW⚡src/dev-center/js/websites.js71 // Step 3: Create website with selected directoryCOMMENT
LOW⚡src/dev-center/js/websites.js447 // Step 1: Show directory pickerCOMMENT
LOW⚡src/dev-center/js/websites.js454 // Step 2: Confirm the change since it will replace the current websiteCOMMENT
LOW⚡src/dev-center/js/websites.js474 // Step 3: Show loading spinnerCOMMENT
LOW⚡src/dev-center/js/websites.js478 // Step 4: Delete the existing websiteCOMMENT
LOW⚡src/dev-center/js/websites.js481 // Step 5: Create a new website with the same name but new directoryCOMMENT
LOW⚡src/dev-center/js/websites.js484 // Step 6: Refresh the websites list to show the updated directoryCOMMENT
LOW⚡src/dev-center/js/websites.js487 // Step 7: Show success messageCOMMENT
LOWsrc/dev-center/js/workers.js75 // Step 1: Show file picker limited to .js filesCOMMENT
LOW⚡src/dev-center/js/workers.js87 // Step 2: Ask for worker nameCOMMENT
LOW⚡src/dev-center/js/workers.js91 // Step 3: Create worker with selected fileCOMMENT
LOWsrc/docs/src/playground/examples/ai-image-edit.html8 // Step 1: Generate initial imageCOMMENT
LOWsrc/docs/src/playground/examples/ai-image-edit.html23 // Step 2: Edit the image in a follow-up turnCOMMENT
LOWsrc/docs/src/AI/chat.md786 // Step 1: Generate initial imageCOMMENT
LOWsrc/docs/src/AI/chat.md801 // Step 2: Edit the image in a follow-up turnCOMMENT
Fake / Example Data31 hits · 32 pts
SeverityFileLineSnippetContext
LOWextensions/whoami.test.ts100 const { seat, team } = await seatOf('Acme Corp');CODE
LOWextensions/whoami.test.ts110 name: 'Acme Corp',CODE
LOWextensions/whoami.test.ts129 const { seat } = await seatOf('Acme Corp');CODE
LOWsrc/puter-js/tests/api/suites/components.suite.ts431 prompt.setAttribute('placeholder', 'e.g. Ada');CODE
LOWsrc/puter-js/tests/e2e/specs/requestAppData.spec.js62 phone: { value: '555-0101' },CODE
LOWsrc/puter-js/tests/e2e/specs/requestAppData.spec.js167 seed: { phone: { value: '555-0101' } },CODE
LOWsrc/puter-js/src/ui/components/PuterPrompt.js153 const placeholder = this.getAttribute('placeholder') || '';CODE
LOWsrc/puter-js/src/modules/UI.js1270 if ( placeholder ) el.setAttribute('placeholder', placeholder);CODE
LOW⚡src/puter-js/src/modules/teams/teams.test.js77 'PUT /teams/t-1': { ...TEAM_ROW, name: 'Acme Inc' },CODE
LOW⚡src/puter-js/src/modules/teams/teams.test.js81 await expect(teams.update('t-1', { name: 'Acme Inc' })).resolves.toEqual({ ...TEAM, name: 'Acme Inc' });CODE
LOW⚡src/puter-js/src/modules/teams/teams.test.js83 expect(call(1).body).toEqual({ name: 'Acme Inc' });CODE
LOWsrc/backend/drivers/kv/KVStoreDriver.readCache.test.ts42 email: 'test@test.com',CODE
LOWsrc/backend/drivers/kv/KVStoreDriver.test.ts48 email: 'test@test.com',CODE
LOWsrc/backend/drivers/workers/WorkerDriver.test.ts40 email: 'test@test.com',CODE
LOWsrc/docs/src/UI/prompt.md34 puter.ui.prompt('Please enter your name:', 'John Doe').then((resp) => {CODE
LOWsrc/docs/src/playground/examples/ui-prompt.html5 puter.ui.prompt('Please enter your name:', 'John Doe').then((resp) => {CODE
LOWsrc/docs/src/playground/examples/workers-exec.html187 profile: { name: 'John Doe', email: 'john@example.com' },CODE
LOWsrc/gui/src/UI/UIWindowPhoneVerificationRequired.js668 if (inp) inp.setAttribute('placeholder', phone_example_for(c.iso) || '');CODE
LOWsrc/gui/src/UI/UIQRCode.js78 if ( options.appendTo && options.appendTo.$ === 'placeholder' ) {CODE
LOWsrc/gui/src/UI/UIQRCode.js93 if ( destination && destination.$ === 'placeholder' ) {CODE
LOWsrc/gui/src/UI/UIWindowShare.js449 if ( teams.length ) $recipient.attr('placeholder', i18n('share_add_people_teams', [], false));CODE
LOWsrc/gui/src/UI/Dashboard/UIShareModal.js661 $recipient.attr('placeholder', label).attr('aria-label', label);CODE
LOWsrc/gui/src/UI/Dashboard/teamBadge.test.js14 const h = teamBadgeHtml({ team: { uid: 't-1', name: 'Acme Corp' } });CODE
LOWsrc/gui/src/UI/Dashboard/teamBadge.test.js16 expect(h).toContain('Acme Corp');CODE
LOWsrc/gui/src/util/Placeholder.js42 $: 'placeholder',CODE
LOWsrc/gui/src/util/Component.js160 if ( destination.$ === 'placeholder' ) {CODE
LOWsrc/gui/src/lib/jquery-ui-1.13.2/jquery-ui.min.js6!function(t){"use strict";"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)}(function(V){"use strict"CODE
LOWsrc/gui/src/lib/jquery-ui-1.13.2/jquery-ui.js2591 element.data( dataSpace + "placeholder", placeholder );CODE
LOWsrc/gui/src/lib/jquery-ui-1.13.2/jquery-ui.js2604 var dataKey = dataSpace + "placeholder",CODE
LOWsrc/gui/src/helpers/shareSuggest.test.js97 teams: [{ ...ACME, name: 'Acme Corp' }],CODE
LOWsrc/gui/src/helpers/shareSuggest.test.js100 expect(names(out)).toEqual(['Acme Corp']);CODE
Synthetic Comment Markers3 hits · 22 pts
SeverityFileLineSnippetContext
HIGHsrc/puter-js/src/modules/Workers.js192 // envelope from the backend, exactly as requested.COMMENT
HIGHsrc/backend/controllers/puterai/PuterAIController.ts256 // Reverse-proxies AI-generated video URLs that can't be givenCOMMENT
HIGHsrc/gui/src/lib/jquery-ui-1.13.2/jquery-ui.js8706 // Format a name, short or long as requestedCOMMENT
Excessive Try-Catch Wrapping5 hits · 10 pts
SeverityFileLineSnippetContext
MEDIUMsrc/docs/src/FS.md92 puter.print('Error creating directory:', error);CODE
MEDIUM…/docs/src/playground/examples/fs-write-from-input.html11 puter.print('Error writing file:', error);CODE
MEDIUMsrc/docs/src/playground/examples/fs-mkdir.html10 puter.print('Error creating directory:', error);CODE
MEDIUMsrc/docs/src/FS/mkdir.md51 puter.print('Error creating directory:', error);CODE
MEDIUMsrc/docs/src/FS/write.md76 puter.print('Error writing file:', error);CODE
AI Response Leakage1 hit · 5 pts
SeverityFileLineSnippetContext
HIGHsrc/gui/src/i18n/translations/nn.js187 confirm_2fa_setup: 'Eg har lagt til koden i autentikatorappen min', // In English: "I have added the code to my CODE
Modern AI Meta-Vocabulary1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUM…puter-js/src/modules/FileSystem/operations/scaffold.js1// Shared scaffold for the filesystem operations in this directory.COMMENT
Example Usage Blocks1 hit · 2 pts
SeverityFileLineSnippetContext
LOWinstall.sh4# Usage:COMMENT