AI Slop Code Risk Monitor

unicity-sphere/sphere

SlopCodeMonitor badge for unicity-sphere/sphere Adjusted legacy signal; badge bands: 25 / 50 / 75 (different from dashboard bands).

A Web3 wallet and agent platform for the Unicity network - crypto wallet, DMs, group chat, and marketplace.

3.1 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for unicity-sphere/sphere, a TypeScript project with 9,628 GitHub stars. SynthScan examined 109,380 lines of code across 608 source files, recording 204 pattern matches distributed across 8 syntactic categories. The legacy adjusted pattern signal is 3.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.

3.1
Adjusted Signal
3.1
Raw Pattern Score
100%
Time Factor
2026-10-29
Last Push
9.6K
Stars
TypeScript
Language
109.4K
Lines of Code
608
Files
204
Pattern Hits
2026-10-31
Scan Date
0.00
HC Hit Rate

Risk Review · Payload v1

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.

Cognitive Ownership Risk 6.7/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 0.1/100 · LOW

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

Agent Over-Engineering Ratio 9.6/100 · LOW

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

PR Review Velocity Impact 13.8/100 · LOW

Which changes need focused human review? 204 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 0HIGH 0MEDIUM 60LOW 144

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 204 distinct pattern matches across 8 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 Separators59 hits · 188 pts
SeverityFileLineSnippetContext
MEDIUM⚡run-sphere.sh17# ── App identity ─────────────────────────────────────────────────────────────COMMENT
MEDIUM⚡run-sphere.sh22# ── App networking ───────────────────────────────────────────────────────────COMMENT
MEDIUM⚡run-sphere.sh31# ── Source ssl-manager run library ───────────────────────────────────────────COMMENT
MEDIUM⚡run-sphere.sh41# ── App hooks ────────────────────────────────────────────────────────────────COMMENT
MEDIUMdeploy/runtime-config.sh109# ── Legacy single-URL compat ─────────────────────────────────────────────────COMMENT
MEDIUMdeploy/runtime-config.sh117# ── Fail-closed (#351) ───────────────────────────────────────────────────────COMMENT
MEDIUMdeploy/runtime-config.sh200# ── Subscription flag sanity ─────────────────────────────────────────────────COMMENT
MEDIUMdeploy/runtime-config.sh213# ── AGGREGATOR_API_KEY requirement (conditional on subscriptions) ─────────────COMMENT
MEDIUMdeploy/runtime-config.sh230# ── Build the substitution program ───────────────────────────────────────────COMMENT
MEDIUMdeploy/runtime-config.sh244# ── Runtime config global (window.__SPHERE_RUNTIME_CONFIG__) ────────────────COMMENT
MEDIUMdeploy/runtime-config.sh291# ── Announce the capability set ──────────────────────────────────────────────COMMENT
MEDIUMdeploy/runtime-config.sh338# ── Apply over the built JS (one sed program, all files) ─────────────────────COMMENT
MEDIUMdeploy/runtime-config.sh345# ── Content-Security-Policy ──────────────────────────────────────────────────COMMENT
MEDIUMdeploy/entrypoint.sh4# ── Export env so ssl-setup inherits our defaults ────────────────────────────COMMENT
MEDIUMdeploy/entrypoint.sh8# ── Normalize SSL_REQUIRED (fail closed on unknown values) ───────────────────COMMENT
MEDIUMdeploy/entrypoint.sh23# ── Validate env vars before use in nginx config ────────────────────────────COMMENT
MEDIUMdeploy/entrypoint.sh53# ── SSL setup (certs + HAProxy registration) ─────────────────────────────────COMMENT
MEDIUMdeploy/entrypoint.sh90# ── Generate nginx config ────────────────────────────────────────────────────COMMENT
MEDIUMdeploy/entrypoint.sh181# ── Graceful shutdown ────────────────────────────────────────────────────────COMMENT
MEDIUMdeploy/entrypoint.sh213# ── Runtime public config ────────────────────────────────────────────────────COMMENT
MEDIUMdeploy/entrypoint.sh220# ── Start nginx ──────────────────────────────────────────────────────────────COMMENT
MEDIUM⚡tests/e2e/two-profile-smoke.spec.ts229 // ── Onboard both profiles (A funds itself via open minting) ───────────COMMENT
MEDIUM⚡tests/e2e/two-profile-smoke.spec.ts234 // ── A reloads (F5): minted balance must survive the full pull ─────────COMMENT
MEDIUM⚡tests/e2e/two-profile-smoke.spec.ts237 // ── A sends 10 UCT to @B (mailbox delivery + B's claim/handoff) ───────COMMENT
MEDIUMtests/e2e/two-profile-smoke.spec.ts254 // ── B reloads (F5): received balance must survive the full pull ───────COMMENT
MEDIUMtests/e2e/two-profile-smoke.spec.ts257 // ── B requests 5 UCT from @A (§16 payment request) ────────────────────COMMENT
MEDIUMtests/e2e/two-profile-smoke.spec.ts272 // ── A pays it (payPaymentRequest: send + linked 'paid' respond) ───────COMMENT
MEDIUMtests/e2e/two-profile-smoke.spec.ts278 // ── Convergence: B holds 15 UCT, A holds 85 ───────────────────────────COMMENT
MEDIUMtests/e2e/perf-many-tokens.spec.ts93 // ── onboard ────────────────────────────────────────────────────────────────COMMENT
MEDIUMtests/e2e/perf-many-tokens.spec.ts135 // ── top up N times: each mint is one more UCT source token ────────────────COMMENT
MEDIUMtests/e2e/perf-many-tokens.spec.ts145 // ── send the whole balance, which must consume every token ────────────────COMMENT
MEDIUMpublic/boot.js18 // ── GitHub Pages SPA path restore ────────────────────────────────────────COMMENT
MEDIUMpublic/boot.js35 // ── Theme, applied before first paint ────────────────────────────────────COMMENT
MEDIUMsrc/components/desktop/DesktopShortcuts.tsx30// ── Sortable wrappers ──────────────────────────────────────────────────COMMENT
MEDIUMsrc/hooks/useInstalledProjects.ts19// ── Local (offline / unauthenticated) cache of slugs ──────────────────COMMENT
MEDIUMsrc/hooks/useInstalledProjects.ts54// ── Hook ──────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/hooks/useInstalledProjects.ts117 // ── Mutations ───────────────────────────────────────────────────────COMMENT
MEDIUMsrc/pages/ExplorePage.tsx24// ─── Constants ────────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/pages/ExplorePage.tsx50// ─── Featured Carousel ────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/pages/ExplorePage.tsx67// ─── Hero stat ────────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/pages/ExplorePage.tsx89// ─── ExplorePage ──────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/pages/ProjectPage.tsx22// ── Helpers ──────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/pages/ProjectPage.tsx31// ── Drag-scrollable media strip ──────────────────────────────────────COMMENT
MEDIUMsrc/pages/ProjectPage.tsx104// ── Lightbox with keyboard + thumbnails ───────────────────────────────COMMENT
MEDIUMsrc/services/userApi.ts14// ── Types ─────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/services/userApi.ts51// ── JWT storage ───────────────────────────────────────────────────────COMMENT
MEDIUMsrc/services/userApi.ts65// ── Sign-in ───────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/services/userApi.ts121// ── Authenticated fetch ───────────────────────────────────────────────COMMENT
MEDIUMsrc/services/userApi.ts151// ── Installed-apps endpoints ──────────────────────────────────────────COMMENT
MEDIUMsrc/services/userApi.ts187// ── Ratings: recommend / helpful voting / replies ────────────────────COMMENT
MEDIUMsrc/services/userApi.ts226// ── Helpful voting on a specific rating ──────────────────────────────COMMENT
MEDIUMsrc/services/userApi.ts243// ── Replies (Telegram-style comments on a review) ────────────────────COMMENT
MEDIUMsrc/services/userApi.ts295// ── Moderation: report content, appeal a hide ────────────────────────COMMENT
MEDIUMsrc/services/marketplaceApi.ts5// ── Types ─────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/services/marketplaceApi.ts88// ── Fetch helpers ─────────────────────────────────────────────────────COMMENT
MEDIUMsrc/services/marketplaceApi.ts108// ── API functions ─────────────────────────────────────────────────────COMMENT
MEDIUMsrc/services/marketplaceApi.ts159// ── Public project metrics (live user/install/completion counts) ──────COMMENT
MEDIUMsrc/services/marketplaceApi.ts216// ── Public project ratings (Steam-style reviews) ──────────────────────COMMENT
MEDIUMsrc/services/marketplaceApi.ts250// ── Public reply thread for a single rating ───────────────────────────COMMENT
Over-Commented Block101 hits · 100 pts
SeverityFileLineSnippetContext
LOWrun-sphere.sh1#!/bin/bashCOMMENT
LOWdocker-compose.yml21 # Subscriptions (SGW) ship dormant; set exactly "true" to turn on.COMMENT
LOWdeploy/runtime-config.sh1#!/bin/shCOMMENT
LOWdeploy/runtime-config.sh21# SPHERE_API_URL quest-api base (marketplace / user / maintenance)COMMENT
LOWdeploy/runtime-config.sh41# ship the in-app invitation instead.COMMENT
LOWdeploy/runtime-config.sh61# app. Not a secret; the project's allowlist names theCOMMENT
LOWdeploy/runtime-config.sh81#COMMENT
LOWdeploy/runtime-config.sh101#COMMENT
LOWdeploy/runtime-config.sh141 exit 1 ;;COMMENT
LOWdeploy/runtime-config.sh181# every browser, on every network, whatever REQUIRE_WALLET_API says — which isCOMMENT
LOWdeploy/runtime-config.sh201# The app enables these flags only on EXACTLY 'true' (src/config/subscription.ts),COMMENT
LOWdeploy/runtime-config.sh241add __RUNTIME_DEV_PORTAL_URL__ "${DEV_PORTAL_URL-}"COMMENT
LOWdeploy/runtime-config.sh341find "$WEBROOT" -type f -name '*.js' -exec sed -i -f "$SED_SCRIPT" {} \;COMMENT
LOWdeploy/runtime-config.sh381 CONNECT="$CONNECT wss://market-api.unicity.network"COMMENT
LOWtests/unit/chat/DMChatSection.peerParam.test.tsx1import { describe, it, expect, vi, beforeEach } from 'vitest';COMMENT
LOWtests/unit/chat/DMChatSection.peerParam.test.tsx21// and they belong here, against the component a user can actually hit.COMMENT
LOWtests/unit/components/transactionHistoryModal.test.tsx1import { describe, it, expect, vi, beforeEach } from 'vitest';COMMENT
LOWtests/unit/components/swapModalRates.test.tsx1import { describe, it, expect, vi, beforeEach } from 'vitest';COMMENT
LOWtests/unit/components/installedProjectIconSdk.test.tsx61 expect(openTab).toHaveBeenCalledWith('custom', { url: 'https://app.example.com', label: 'Agent Guild' });COMMENT
LOWtests/unit/components/installedProjectIconSdk.test.tsx201 });COMMENT
LOWtests/unit/sdk/gatewayErrors.test.ts81COMMENT
LOWpublic/boot.js41 // uses STORAGE_KEYS.THEME ('sphere_theme'), so the lookup always missed — and theCOMMENT
LOWpublic/runtime-config.js1// Default runtime config for dev / GitHub Pages builds: empty, so valuesCOMMENT
LOW.github/workflows/docker-build.yml41 push: trueCOMMENT
LOW.github/workflows/deploy-pages-branch.yml21# just-merged deploy was silently cancelled and staging kept the old bundle.COMMENT
LOW.github/workflows/deploy-pages-branch.yml41# So every writer now retries instead: the two peaceiris steps run again onCOMMENT
LOW.github/workflows/deploy-pages-branch.yml81 # Through env, not ${{ }} interpolation — see the deploy job's copy: a branchCOMMENT
LOW.github/workflows/deploy-pages-branch.yml141COMMENT
LOW.github/workflows/deploy-pages-branch.yml161 # selectable, which is exactly the switch a subscription/payment fixCOMMENT
LOW.github/workflows/deploy-pages-branch.yml181 # SUBSCRIPTION_ENABLED=true, PAID_PLANS_ENABLED=false). Staging feedsCOMMENT
LOW.github/workflows/deploy-pages-branch.yml201 # payment. The wallet says so on the screen — the network chip, theCOMMENT
LOW.github/workflows/deploy-pages-branch.yml221 # every branch push would report errors/replays against the sharedCOMMENT
LOW.github/workflows/docker-validate.yml121 || { echo "ERROR: index.html does not load runtime-config.js"; exit 1; }COMMENT
LOWsrc/config/storageKeys.ts41 // wallet-api device label — one session row per (owner, device) on theCOMMENT
LOWsrc/config/storageKeys.ts61 // so cold-storage tampering can't silently disable/shorten it. Written byCOMMENT
LOWsrc/config/storageKeys.ts121COMMENT
LOWsrc/config/network.ts501 localStorage.setItem(STORAGE_KEYS.ACTIVE_NETWORK, id);COMMENT
LOWsrc/config/walletApiNetworks.ts81 const key = RUNTIME_KEY[network];COMMENT
LOWsrc/utils/sentryScrub.ts21// 64+ hex chars: the shape of a raw private key (also matches sha256/txids —COMMENT
LOWsrc/utils/sentryScrub.ts121COMMENT
LOWsrc/components/upgrade/PlanScreen.tsx561 // waiting the record out. The way out is switching back, whichCOMMENT
LOWsrc/components/upgrade/PlanScreen.tsx781 if (!selectedPlan) return;COMMENT
LOWsrc/components/upgrade/NetworkSwitchPlanOffer.tsx61 // true there and the disarm above never sees it; that onboarding shows itsCOMMENT
LOWsrc/components/chat/dm/DMChatSection.tsx61 });COMMENT
LOWsrc/components/marketplace/ProjectCard.tsx21 // A chat agent is never installable — the API rejects an install call forCOMMENT
LOWsrc/components/marketplace/ProjectCard.tsx41 // mutually exclusive (both key off the same `type` field), so at most oneCOMMENT
LOWsrc/components/marketplace/ProjectReviewsSection.tsx81 const [appealComment, setAppealComment] = useState('');COMMENT
LOWsrc/components/agents/WalletRequiredBlocker.tsx21COMMENT
LOWsrc/components/agents/IframeAgent.tsx141 // Teardown. Its cleanup is the ONLY place the host and transport are destroyedCOMMENT
LOWsrc/components/desktop/InstalledProjectIcon.tsx41 setMenuOpen(false);COMMENT
LOWsrc/components/desktop/InstalledProjectIcon.tsx61 // migration was written to retire, and do it from stale localStorage dataCOMMENT
LOWsrc/components/desktop/InstalledProjectIcon.tsx101 // an entry that calls it — a non-https value gets no menu item at all,COMMENT
LOWsrc/components/desktop/DesktopLayout.tsx61 navigate(`/agents/custom?url=${encodeURIComponent(url)}`);COMMENT
LOWsrc/components/wallet/L3/modals/SendModal.tsx121 // Leaving confirm because the SEND started is the one exit that must NOTCOMMENT
LOWsrc/components/wallet/L3/modals/SendModal.tsx141 /** Only 'converging' finishes on its own (sphere-sdk 0.19.0); see KeepOpenKind. */COMMENT
LOWsrc/components/wallet/L3/modals/SendModal.tsx201 },COMMENT
LOW…mponents/wallet/L3/hooks/useIncomingPaymentRequests.ts141COMMENT
LOW…mponents/wallet/L3/hooks/useIncomingPaymentRequests.ts161 // CONTRACT DEPENDENCY: non-payability here is the SDK's job, not thisCOMMENT
LOW…omponents/wallet/onboarding/hooks/useOnboardingFlow.ts201 // Step management — start at "nametag" only if wallet is fully finalized but missing nametagCOMMENT
LOW…omponents/wallet/onboarding/hooks/useOnboardingFlow.ts241COMMENT
41 more matches not shown…
Hyper-Verbose Identifiers33 hits · 33 pts
SeverityFileLineSnippetContext
LOWtests/unit/config/network.test.ts573 function blockSessionStorageWrites() {CODE
LOWtests/unit/config/network.test.ts590 function breakSessionStorageGetter(): () => void {CODE
LOWtests/unit/components/importPassword.test.tsx77async function driveRestoreToSetPassword() {CODE
LOWtests/unit/components/importPassword.test.tsx179 async function selectAndImportEncryptedFile() {CODE
LOWsrc/sphere-sdk-browser.d.ts67 export function createUnicityAggregatorProvider(CODE
LOWsrc/config/storageKeys.ts110export function getOrCreateWalletApiDeviceId(): string {CODE
LOWsrc/config/storageKeys.ts110export function getOrCreateWalletApiDeviceId(): string {CODE
LOWsrc/config/network.ts179function forgetRetiredStoredNetwork(): void {CODE
LOWsrc/config/network.ts469export function applyClearedNetworkChoice(opts: { reload?: () => void } = {}): boolean {CODE
LOWsrc/config/networkCapabilities.ts92export function salesOptInMatchesTestMoney(network: string): boolean {CODE
LOWsrc/config/networkCapabilities.ts113export function allowsSharedAggregatorKey(network: string): boolean {CODE
LOWsrc/config/subscription.ts29function resolveSubscriptionApiUrl(): string {CODE
LOWsrc/utils/network-switch-prompts.ts193export function clearSwitchPromptSuppression(origin: string): boolean {CODE
LOWsrc/components/chat/utils/groupChatHelpers.ts26export function getGroupFormattedLastMessageTime(group: GroupData): string {CODE
LOWsrc/components/chat/utils/groupChatHelpers.ts65export function getMessageSenderDisplayName(message: GroupMessageData): string {CODE
LOWsrc/components/layout/PendingTransfersIndicator.tsx41export function PendingTransfersIndicator() {CODE
LOWsrc/components/layout/WalletApiSessionIndicator.tsx18export function WalletApiSessionIndicator() {CODE
LOWsrc/components/wallet/shared/nft/NftDetails.tsx304export function NftResolvedContentDetails({ content, fallbackTitle }: NftContentDetailsProps) {CODE
LOW…llet/onboarding/hooks/useOnboardingConnectionStatus.ts23export function useOnboardingConnectionStatus() {CODE
LOWsrc/components/connect/PaymentRequestIntentModal.tsx38export function PaymentRequestIntentModal({CODE
LOWsrc/components/connect/useNetworkMismatchHandler.ts134export function createNetworkMismatchHandler(deps: NetworkMismatchDeps): MismatchHandler {CODE
LOWsrc/components/connect/useNetworkMismatchHandler.ts234export function useNetworkMismatchHandler(): MakeNetworkMismatchHandler {CODE
LOWsrc/components/connect/useNetworkMismatchHandler.ts265export function claimGraceForSilentHandshake(host: ConnectHost, origin: string): boolean {CODE
LOWsrc/components/connect/rejectionMessage.ts62function describeProtocolRejection(data: Record<string, unknown>): string {CODE
LOWsrc/components/connect/rejectionMessage.ts171export function connectRejectionDiagnostics(CODE
LOWsrc/sdk/SphereProvider.tsx214function readCurrentAutoLockMinutes(oldPassword: string | null): AutoLockValue {CODE
LOWsrc/sdk/errors.ts200function isJsonRpcNetworkErrorShape(CODE
LOWsrc/sdk/hooks/payments/useTransfer.ts32function disambiguateGatewayAuthError(openUpgrade: (reason?: UpgradeReason) => void): void {CODE
LOWsrc/hooks/useKeyboardScrollIntoView.ts13export function useKeyboardScrollIntoView(_inputRef: RefObject<HTMLElement | null>) {CODE
LOWsrc/hooks/useMarketplace.ts188export function useProjectMetricsByGroups(groups: string[][]) {CODE
LOWsrc/modules/bridge/BridgeScreen.tsx442function byAssetThenNetwork(a: BridgeAsset, b: BridgeAsset): number {CODE
LOWsrc/services/announcementsClient.ts41export function createAnnouncementsClient(getSphere: () => Sphere | null): AnnouncementsClient {CODE
LOWsrc/services/telemetry.ts94export function getOrCreateClientId(): string {CODE
Verbosity Indicators4 hits · 8 pts
SeverityFileLineSnippetContext
LOW⚡tests/unit/modules/bridge/BridgeScreen.test.tsx48 // Step 0: which way. Both directions are offered; out counts the assets with a return path.COMMENT
LOW⚡tests/unit/modules/bridge/BridgeScreen.test.tsx53 // Step 1: every asset with its network, ordered by asset then network, tagged as testnets.COMMENT
LOWtests/unit/modules/bridge/BridgeScreen.test.tsx65 // Step 2: the form keeps the choice in view and names the signer.COMMENT
LOW…omponents/wallet/onboarding/hooks/useOnboardingFlow.ts688 // Step 1: Check nametag availability via Nostr (no wallet needed)COMMENT
Structural Annotation Overuse4 hits · 8 pts
SeverityFileLineSnippetContext
LOW⚡tests/unit/modules/bridge/BridgeScreen.test.tsx48 // Step 0: which way. Both directions are offered; out counts the assets with a return path.COMMENT
LOW⚡tests/unit/modules/bridge/BridgeScreen.test.tsx53 // Step 1: every asset with its network, ordered by asset then network, tagged as testnets.COMMENT
LOWtests/unit/modules/bridge/BridgeScreen.test.tsx65 // Step 2: the form keeps the choice in view and names the signer.COMMENT
LOW…omponents/wallet/onboarding/hooks/useOnboardingFlow.ts688 // Step 1: Check nametag availability via Nostr (no wallet needed)COMMENT
Modern AI Meta-Vocabulary1 hit · 2 pts
SeverityFileLineSnippetContext
MEDIUMpackage-lock.json1776 "resolved": "https://registry.npmjs.org/@reown/appkit-scaffold-ui/-/appkit-scaffold-ui-1.8.19.tgz",CODE
Example Usage Blocks1 hit · 2 pts
SeverityFileLineSnippetContext
LOWrun-sphere.sh5# Usage:COMMENT
Fake / Example Data1 hit · 1 pts
SeverityFileLineSnippetContext
LOWtests/unit/utils/sentryScrub.test.ts51 expect(scrubText('Auth failed for user@example.com')).not.toContain('user@example.com');CODE