Open-source status page, incident response and uptime monitoring
This report summarizes scanner evidence for openstatusHQ/openstatus, a TypeScript project with 9,244 GitHub stars. SynthScan examined 791,461 lines of code across 3400 source files, recording 422 pattern matches distributed across 11 syntactic categories. The legacy adjusted pattern signal is 0.9 (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? 336 finding(s).
Are imports declared and package/API names verified? 48 finding(s).
Are wrappers, guards, and repeated structures necessary? 306 finding(s).
Which changes need focused human review? 422 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 422 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 |
|---|---|---|---|---|
| LOW | …/ui/src/components/blocks/status-page-get-in-touch.tsx | 57 | export function StatusPageGetInTouchButton({ | CODE |
| LOW | packages/ui/src/components/blocks/status-events.tsx | 383 | export function StatusEventTimelineImpact({ | CODE |
| LOW | packages/ui/src/components/blocks/status-events.tsx | 479 | export function StatusEventTimelineReport({ | CODE |
| LOW | packages/ui/src/components/blocks/status-events.tsx | 563 | export function StatusEventTimelineReportUpdate({ | CODE |
| LOW | packages/ui/src/components/blocks/status-events.tsx | 678 | export function StatusEventTimelineMaintenance({ | CODE |
| LOW | packages/ui/src/components/blocks/status-events.tsx | 824 | export function StatusEventTimelineMessage({ | CODE |
| LOW | packages/ui/src/components/blocks/status-events.tsx | 898 | export function StatusEventTimelineSeparator({ | CODE |
| LOW | …ckages/ui/src/components/blocks/status-page-header.tsx | 64 | export function StatusPageHeaderBrandButton({ | CODE |
| LOW | …ckages/ui/src/components/blocks/status-page-header.tsx | 85 | export function StatusPageHeaderBrandFallback({ | CODE |
| LOW | …ges/ui/src/components/blocks/status-theme-switcher.tsx | 91 | export function StatusThemeSwitcherSkeleton({ | CODE |
| LOW | …es/ui/src/components/blocks/status-locale-switcher.tsx | 91 | export function StatusLocaleSwitcherSkeleton({ | CODE |
| LOW | packages/ui/src/components/blocks/status-component.tsx | 151 | export function StatusComponentHeaderLeft({ | CODE |
| LOW | packages/ui/src/components/blocks/status-component.tsx | 185 | export function StatusComponentHeaderRight({ | CODE |
| LOW | packages/ui/src/components/blocks/status-component.tsx | 309 | export function StatusComponentDescription({ | CODE |
| LOW | packages/ui/src/components/blocks/status-component.tsx | 496 | export function StatusComponentUptimeSkeleton({ | CODE |
| LOW | packages/ui/src/components/blocks/status-component.tsx | 537 | export function StatusComponentLatencySkeleton({ | CODE |
| LOW | packages/ui/src/components/ui/chart.tsx | 308 | function getPayloadConfigFromPayload( | CODE |
| LOW | …ta-table-filters/data-table-filter-controls-drawer.tsx | 27 | export function DataTableFilterControlsDrawer() { | CODE |
| LOW | …rs/data-table-cell/data-table-cell-level-indicator.tsx | 10 | export function DataTableCellLevelIndicator({ | CODE |
| LOW | …es/ui/src/lib/data-table-filters/table-schema/index.ts | 87 | export function getDefaultColumnVisibility( | CODE |
| LOW | packages/status-fetcher/src/components.ts | 46 | function normalizeAtlassianComponents( | CODE |
| LOW | packages/importers/src/providers/betterstack/mapper.ts | 204 | function mapAffectedResourcesToImpacts( | CODE |
| LOW | packages/importers/src/providers/betterstack/mapper.ts | 323 | export function mapIncidentToStatusReport( | CODE |
| LOW | …ckages/importers/src/providers/betterstack/provider.ts | 23 | export function createBetterstackProvider(): ImportProvider<BetterstackImportConfig> { | CODE |
| LOW | packages/importers/src/providers/checkly/mapper.ts | 200 | export function mapIncidentToStatusReport( | CODE |
| LOW | packages/importers/src/providers/statuspage/mapper.ts | 86 | export function mapIncidentToStatusReport( | CODE |
| LOW | packages/importers/src/providers/instatus/mapper.ts | 118 | export function mapIncidentToStatusReport( | CODE |
| LOW | packages/importers/src/providers/instatus/mapper.ts | 154 | export function mapMaintenanceToMaintenance( | CODE |
| LOW | packages/emails/emails/member-access-ending.tsx | 18 | export function memberAccessEndingSubject( | CODE |
| LOW | packages/emails/emails/private-location-alert.tsx | 27 | export function privateLocationAlertSubject( | CODE |
| LOW | packages/emails/emails/ownership-transferred.tsx | 17 | export function ownershipTransferredSubject( | CODE |
| LOW | packages/emails/emails/monitor-deactivation.tsx | 30 | export function monitorDeactivationSubject( | CODE |
| LOW | packages/emails/src/billing.tsx | 204 | export async function scheduleMemberAccessEnding( | CODE |
| LOW | packages/emails/src/billing.tsx | 236 | export async function sendCancellationScheduled(req: { | CODE |
| LOW | packages/theme-store/src/custom-theme.ts | 128 | export function generateThemeVarsTemplate( | CODE |
| LOW | packages/subscriptions/src/dispatcher.ts | 16 | export async function dispatchStatusReportUpdate(statusReportUpdateId: number) { | CODE |
| LOW | packages/subscriptions/src/dispatcher.ts | 91 | export async function dispatchMaintenanceUpdate(maintenanceUpdateId: number) { | CODE |
| LOW | packages/db/src/test/factories.ts | 241 | export async function linkNotificationToMonitor( | CODE |
| LOW | packages/db/src/schema/page_components/constants.ts | 54 | export function currentImpactsFromUpdates( | CODE |
| LOW | packages/api/src/lib/vercel.ts | 148 | export async function removeDomainFromVercelIfUnused( | CODE |
| LOW | packages/api/src/lib/subscriber-verification.ts | 10 | export async function sendSubscriberVerification( | CODE |
| LOW⚡ | packages/api/src/router/statusPage.utils.ts | 116 | function calculateEventDurationMinutes( | CODE |
| LOW⚡ | packages/api/src/router/statusPage.utils.ts | 125 | function getMaintenanceDurationMinutes( | CODE |
| LOW⚡ | packages/api/src/router/statusPage.utils.ts | 133 | function getAdjustedTotalMinutesInDay( | CODE |
| LOW | packages/api/src/router/statusPage.utils.ts | 244 | function createProportionalBarData( | CODE |
| LOW | packages/api/src/router/statusPage.utils.ts | 367 | function calculateEventDurationMinutes( | CODE |
| LOW | packages/api/src/router/tinybird/index.ts | 143 | export function getMetricsRegionsProcedure(period: Period, type: Type) { | CODE |
| LOW | packages/api/src/router/tinybird/index.ts | 200 | export function getStatusInTimeZoneProcedure(type: Type) { | CODE |
| LOW | packages/api/src/router/tinybird/index.ts | 228 | export function getGlobalMetricsProcedure(type: Type) { | CODE |
| LOW | packages/api/src/router/tinybird/index.ts | 272 | export function getMetricsLatencyProcedure(_period: Period, type: Type) { | CODE |
| LOW | packages/api/src/router/tinybird/index.ts | 314 | export function getMetricsLatencyMultiProcedure(_period: Period, type: Type) { | CODE |
| LOW | packages/api/src/router/stripe/utils.ts | 29 | export function buildLimitsFromSubscription( | CODE |
| LOW | packages/api/src/router/stripe/shared.ts | 19 | export function buildFromSubscriptionOrThrow( | CODE |
| LOW | packages/api/src/router/stripe/shared.ts | 133 | export async function cancelSupersededSubscriptions( | CODE |
| LOW | packages/api/src/router/stripe/shared.ts | 227 | export async function syncCustomerEmailToNewOwner(args: { | CODE |
| LOW | packages/api/src/router/stripe/index.ts | 121 | async function createPaymentMethodSetupSession(args: { | CODE |
| LOW | packages/notifications/ms-teams/src/card.ts | 122 | function buildIncidentDurationBlock( | CODE |
| LOW | packages/services/src/limits.ts | 41 | export function syntheticChecksWindowStart(): { date: Date; seconds: number } { | CODE |
| LOW | packages/services/src/limits.ts | 48 | export async function countSyntheticChecksSince( | CODE |
| LOW | …kages/services/src/external-service-incident/upsert.ts | 92 | export async function upsertExternalIncidentsForService(args: { | CODE |
| 208 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | packages/api/src/router/statusPage.ts | 157 | const _page = await opts.ctx.db.query.page.findFirst({ | CODE |
| CRITICAL | packages/api/src/router/statusPage.ts | 321 | await opts.ctx.db.query.privateLocationToMonitors.findMany({ | CODE |
| CRITICAL | packages/api/src/router/statusPage.ts | 596 | const _page = await opts.ctx.db.query.page.findFirst({ | CODE |
| CRITICAL | packages/api/src/router/statusPage.ts | 707 | const _page = await opts.ctx.db.query.page.findFirst({ | CODE |
| CRITICAL | packages/api/src/router/statusPage.ts | 752 | const _maintenance = await opts.ctx.db.query.maintenance.findFirst({ | CODE |
| CRITICAL | packages/api/src/router/statusPage.ts | 797 | const _page = await opts.ctx.db.query.page.findFirst({ | CODE |
| CRITICAL | packages/api/src/router/statusPage.ts | 875 | const rows = await opts.ctx.db.query.privateLocationToMonitors.findMany( | CODE |
| CRITICAL | packages/api/src/router/statusPage.ts | 1015 | const _report = await opts.ctx.db.query.statusReport.findFirst({ | CODE |
| CRITICAL | packages/api/src/router/statusPage.ts | 1127 | const _page = await opts.ctx.db.query.page.findFirst({ | CODE |
| CRITICAL | packages/api/src/router/statusPage.ts | 1180 | const _page = await opts.ctx.db.query.page.findFirst({ | CODE |
| CRITICAL | packages/api/src/router/statusPage.ts | 1302 | const _page = await opts.ctx.db.query.page.findFirst({ | CODE |
| CRITICAL | packages/api/src/router/statusPage.ts | 1432 | const _page = await opts.ctx.db.query.page.findFirst({ | CODE |
| CRITICAL | packages/api/src/router/statusPage.ts | 1501 | const _page = await opts.ctx.db.query.page.findFirst({ | CODE |
| CRITICAL | packages/api/src/router/statusPage.ts | 1540 | const _page = await opts.ctx.db.query.page.findFirst({ | CODE |
| CRITICAL | packages/api/src/router/email/index.ts | 18 | const _invitation = await opts.ctx.db.query.invitation.findFirst({ | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …ages/ui/src/lib/data-table-filters/table-schema/col.ts | 24 | // ── Per-kind defaults — the ONE definition ────────────────────────────────── | COMMENT |
| MEDIUM | …ages/ui/src/lib/data-table-filters/table-schema/col.ts | 113 | // ── The builder ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ages/ui/src/lib/data-table-filters/table-schema/col.ts | 324 | // ── The public read model ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ages/ui/src/lib/data-table-filters/table-schema/col.ts | 350 | // ── Factories ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …es/ui/src/lib/data-table-filters/table-schema/types.ts | 377 | // ── Serializable descriptors (function-free) ──────────────────────────────── | COMMENT |
| MEDIUM | …i/src/lib/data-table-filters/table-schema/serialize.ts | 17 | // ── Serialization ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …i/src/lib/data-table-filters/table-schema/serialize.ts | 33 | // ── Deserialization ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …i/src/lib/data-table-filters/table-schema/serialize.ts | 53 | // ── Migration ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/ui/src/lib/data-table-filters/filters/index.ts | 81 | // ── Deriving specs ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/ui/src/lib/data-table-filters/filters/index.ts | 146 | // ── Coercion ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/ui/src/lib/data-table-filters/filters/index.ts | 184 | // ── Entry point ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/subscriptions/src/dispatcher.test.ts | 153 | // ─── dispatchPageUpdate - component filtering ───────────────────────────────── | COMMENT |
| MEDIUM | packages/subscriptions/src/dispatcher.test.ts | 225 | // ─── dispatchPageUpdate - edge cases ───────────────────────────────────────── | COMMENT |
| MEDIUM | packages/subscriptions/src/dispatcher.test.ts | 298 | // ─── dispatchStatusReportUpdate - impacts ───────────────────────────────────── | COMMENT |
| MEDIUM | packages/subscriptions/src/channels/email.test.ts | 68 | // ─── validateEmailConfig ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/subscriptions/src/channels/email.test.ts | 93 | // ─── sendEmailVerification ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | packages/subscriptions/src/channels/email.test.ts | 115 | // ─── sendEmailNotifications ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/subscriptions/src/channels/webhook.test.ts | 86 | // ─── validateWebhookConfig ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/subscriptions/src/channels/webhook.test.ts | 121 | // ─── sendWebhookVerification ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/subscriptions/src/channels/webhook.test.ts | 168 | // ─── sendWebhookNotifications ───────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/subscriptions/src/channels/webhook.test.ts | 327 | // ─── detectWebhookFlavor ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/subscriptions/src/channels/webhook.test.ts | 373 | // ─── flavor-specific notification payloads ──────────────────────────────────── | COMMENT |
| MEDIUM | packages/subscriptions/src/channels/webhook.test.ts | 553 | // ─── buildGenericPayload (staged, not yet reachable in production) ──────────── | COMMENT |
| MEDIUM | packages/subscriptions/src/channels/webhook.test.ts | 690 | // ─── buildTestPayload ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/subscriptions/src/channels/webhook.test.ts | 738 | // ─── sendTestWebhookRequest ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/api/src/router/tinybird/index.test.ts | 20 | // ─── metricsLatency ────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/api/src/router/tinybird/index.test.ts | 51 | // ─── metricsTimingPhases ───────────────────────────────────────── | COMMENT |
| MEDIUM | packages/api/src/router/tinybird/index.test.ts | 82 | // ─── listInfinite / listFacets ─────────────────────────────────── | COMMENT |
| MEDIUM | …/src/page-subscriber/__tests__/page-subscriber.test.ts | 99 | // ─── upsertSelfSignupSubscriber ────────────────────────────────────────────── | COMMENT |
| MEDIUM | …/src/page-subscriber/__tests__/page-subscriber.test.ts | 509 | // ─── verifySelfSignupSubscriber ────────────────────────────────────────────── | COMMENT |
| MEDIUM | …/src/page-subscriber/__tests__/page-subscriber.test.ts | 676 | // ─── getSubscriberByToken ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …/src/page-subscriber/__tests__/page-subscriber.test.ts | 733 | // ─── updateSubscriberScope ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …/src/page-subscriber/__tests__/page-subscriber.test.ts | 856 | // ─── unsubscribeSubscriber ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …/src/page-subscriber/__tests__/page-subscriber.test.ts | 939 | // ─── hasPendingSubscriber ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …/src/page-subscriber/__tests__/page-subscriber.test.ts | 1027 | // ─── createPageSubscriber ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …/src/page-subscriber/__tests__/page-subscriber.test.ts | 1055 | // ─── unsubscribePageSubscriber ─────────────────────────────────────────────── | COMMENT |
| MEDIUM | …dashboard/src/components/chat/tool-renderers/index.tsx | 79 | // ── Read tools ─────────────────────────────────────────────── | COMMENT |
| MEDIUM | …dashboard/src/components/chat/tool-renderers/index.tsx | 112 | // ── Destructive tools ──────────────────────────────────────── | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | COOLIFY_ENVIRONMENT_GUIDE.md | 7 | ### Step 1: Import the Stack | COMMENT |
| LOW | COOLIFY_ENVIRONMENT_GUIDE.md | 17 | ### Step 2: Configure Environment Variables | COMMENT |
| LOW | packages/api/src/router/statusPage.e2e.test.ts | 579 | // Step 1: Verify initial subscription state | COMMENT |
| LOW | packages/api/src/router/statusPage.e2e.test.ts | 591 | // Step 2: User unsubscribes | COMMENT |
| LOW | packages/api/src/router/statusPage.e2e.test.ts | 603 | // Step 3: User is excluded from emails | COMMENT |
| LOW | packages/api/src/router/statusPage.e2e.test.ts | 623 | // Step 4: User re-subscribes (simulating the re-subscription flow) | COMMENT |
| LOW | packages/api/src/router/statusPage.e2e.test.ts | 635 | // Step 5: User is still excluded (not yet verified) | COMMENT |
| LOW⚡ | packages/api/src/router/statusPage.e2e.test.ts | 651 | // Step 6: User verifies their email again | COMMENT |
| LOW⚡ | packages/api/src/router/statusPage.e2e.test.ts | 657 | // Step 7: User is now included in email list again | COMMENT |
| LOW⚡ | apps/web/src/content/convert.ts | 31 | // Step 1: Strip import statements (confirmed: always at top of file) | COMMENT |
| LOW⚡ | apps/web/src/content/convert.ts | 34 | // Step 2: Convert <ButtonLink> to markdown links | COMMENT |
| LOW⚡ | apps/web/src/content/convert.ts | 44 | // Step 3: Convert <Image> to markdown images | COMMENT |
| LOW⚡ | apps/web/src/content/convert.ts | 60 | // Step 4: Replace <Table> components with a note to use GFM tables | COMMENT |
| LOW⚡ | apps/web/src/content/convert.ts | 66 | // Step 5: Convert <Details> to native HTML <details>/<summary> (always closed) | COMMENT |
| LOW⚡ | apps/web/src/content/convert.ts | 74 | // Step 6: Replace interactive components with HTML comments | COMMENT |
| LOW⚡ | apps/web/src/content/convert.ts | 84 | // Step 7: Convert <Aside> to a blockquote callout | COMMENT |
| LOW⚡ | apps/web/src/content/convert.ts | 102 | // Step 8: Convert <ShowcaseYouTube href="…" title="…" /> to a link list item | COMMENT |
| LOW⚡ | apps/web/src/content/convert.ts | 112 | // Step 9: Convert card components (unwrap grid, then serialize each card) | COMMENT |
| LOW | apps/web/src/content/convert.ts | 15 | // Step 0: Generate YAML frontmatter from metadata | COMMENT |
| LOW | apps/web/src/content/convert.ts | 155 | // Step 10: Unwrap layout-only wrappers. Their children are real copy | COMMENT |
| LOW | apps/web/src/content/convert.ts | 178 | // Step 11: Strip generic HTML containers but extract their text | COMMENT |
| LOW | apps/web/src/content/convert.ts | 189 | // Step 12: Strip remaining unknown JSX components. Self-closing tags go | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | packages/api/src/router/statusPage.e2e.test.ts | 579 | // Step 1: Verify initial subscription state | COMMENT |
| LOW | packages/api/src/router/statusPage.e2e.test.ts | 591 | // Step 2: User unsubscribes | COMMENT |
| LOW | packages/api/src/router/statusPage.e2e.test.ts | 603 | // Step 3: User is excluded from emails | COMMENT |
| LOW | packages/api/src/router/statusPage.e2e.test.ts | 623 | // Step 4: User re-subscribes (simulating the re-subscription flow) | COMMENT |
| LOW | packages/api/src/router/statusPage.e2e.test.ts | 635 | // Step 5: User is still excluded (not yet verified) | COMMENT |
| LOW⚡ | packages/api/src/router/statusPage.e2e.test.ts | 651 | // Step 6: User verifies their email again | COMMENT |
| LOW⚡ | packages/api/src/router/statusPage.e2e.test.ts | 657 | // Step 7: User is now included in email list again | COMMENT |
| LOW⚡ | apps/web/src/content/convert.ts | 31 | // Step 1: Strip import statements (confirmed: always at top of file) | COMMENT |
| LOW⚡ | apps/web/src/content/convert.ts | 34 | // Step 2: Convert <ButtonLink> to markdown links | COMMENT |
| LOW⚡ | apps/web/src/content/convert.ts | 44 | // Step 3: Convert <Image> to markdown images | COMMENT |
| LOW⚡ | apps/web/src/content/convert.ts | 60 | // Step 4: Replace <Table> components with a note to use GFM tables | COMMENT |
| LOW⚡ | apps/web/src/content/convert.ts | 66 | // Step 5: Convert <Details> to native HTML <details>/<summary> (always closed) | COMMENT |
| LOW⚡ | apps/web/src/content/convert.ts | 74 | // Step 6: Replace interactive components with HTML comments | COMMENT |
| LOW⚡ | apps/web/src/content/convert.ts | 84 | // Step 7: Convert <Aside> to a blockquote callout | COMMENT |
| LOW⚡ | apps/web/src/content/convert.ts | 102 | // Step 8: Convert <ShowcaseYouTube href="…" title="…" /> to a link list item | COMMENT |
| LOW⚡ | apps/web/src/content/convert.ts | 112 | // Step 9: Convert card components (unwrap grid, then serialize each card) | COMMENT |
| LOW | apps/web/src/content/convert.ts | 15 | // Step 0: Generate YAML frontmatter from metadata | COMMENT |
| LOW | apps/web/src/content/convert.ts | 155 | // Step 10: Unwrap layout-only wrappers. Their children are real copy | COMMENT |
| LOW | apps/web/src/content/convert.ts | 178 | // Step 11: Strip generic HTML containers but extract their text | COMMENT |
| LOW | apps/web/src/content/convert.ts | 189 | // Step 12: Strip remaining unknown JSX components. Self-closing tags go | COMMENT |
| LOW | …oard)/status-pages/[id]/status-reports/(list)/page.tsx | 80 | // NOTE: for type safety, we need to check if the values have a date property | COMMENT |
| LOW | …rd/src/components/forms/status-report/sheet-create.tsx | 167 | // NOTE: for type safety, we need to check if the values have a date property | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | charts/openstatus/templates/configmap.yaml | 16 | "UPSTASH_REDIS_REST_TOKEN" "placeholder" | CODE |
| LOW | …ckages/importers/src/providers/betterstack/fixtures.ts | 108 | company_name: "Acme Corp", | CODE |
| LOW | …s/importers/src/providers/betterstack/provider.test.ts | 151 | expect(pagePhase?.resources[0].name).toBe("Acme Corp"); | CODE |
| LOW | …ges/importers/src/providers/betterstack/mapper.test.ts | 153 | expect(result.title).toBe("Acme Corp"); | CODE |
| LOW | …ges/importers/src/providers/betterstack/client.test.ts | 93 | expect(pages[0].attributes.company_name).toBe("Acme Corp"); | CODE |
| LOW | packages/importers/src/providers/statuspage/fixtures.ts | 368 | workspace_name: "Acme Corp", | CODE |
| LOW | …ages/importers/src/providers/statuspage/client.test.ts | 176 | email: "user@example.com", | CODE |
| LOW | …ages/importers/src/providers/statuspage/client.test.ts | 185 | expect(subscribers[0].email).toBe("user@example.com"); | CODE |
| LOW | packages/subscriptions/src/channels/email.test.ts | 33 | email: "user@example.com", | CODE |
| LOW | packages/subscriptions/src/channels/email.test.ts | 72 | const result = await validateEmailConfig("user@example.com"); | CODE |
| LOW⚡ | packages/subscriptions/src/channels/email.test.ts | 104 | const sub = makeSub({ email: "user@example.com", pageName: "My Page" }); | CODE |
| LOW⚡ | packages/subscriptions/src/channels/email.test.ts | 109 | expect(args.to).toBe("user@example.com"); | CODE |
| LOW | packages/subscriptions/src/channels/email.test.ts | 146 | const sub = makeSub({ email: "user@example.com" }); | CODE |
| LOW | …ages/services/src/agent-tools/__tests__/prompt.test.ts | 18 | workspaceName: "Acme Inc", | CODE |
| LOW | …ages/services/src/agent-tools/__tests__/prompt.test.ts | 20 | expect(prompt).toContain('workspace "Acme Inc"'); | CODE |
| LOW | …ckages/services/src/incident/__tests__/effects.test.ts | 93 | assignedBy: "Jane Doe", | CODE |
| LOW | …ckages/services/src/incident/__tests__/effects.test.ts | 174 | assignedBy: "Jane Doe", | CODE |
| LOW | apps/server/static/openapi.json | 6388 | "examples": ["user@example.com"], | CODE |
| LOW | apps/server/src/routes/v1/notifications/get_all.test.ts | 23 | data: '{"email":"test@test.com"}', | CODE |
| LOW | apps/server/src/routes/slack/interactions.test.ts | 1042 | ? { ok: true, user: { real_name: "Jane Doe", profile: {} } } | CODE |
| LOW | apps/server/src/routes/slack/registry-runner.test.ts | 381 | const prompt = buildSystemPrompt("Acme Corp"); | CODE |
| LOW | apps/server/src/routes/slack/system-prompt.test.ts | 23 | const prompt = buildSystemPrompt("Acme Corp"); | CODE |
| LOW⚡ | apps/server/src/routes/slack/system-prompt.test.ts | 34 | const prompt = buildSystemPrompt("Acme Corp"); | CODE |
| LOW⚡ | apps/server/src/routes/slack/system-prompt.test.ts | 42 | const prompt = buildSystemPrompt("Acme Corp"); | CODE |
| LOW⚡ | apps/server/src/routes/slack/system-prompt.test.ts | 43 | expect(prompt).toContain('workspace "Acme Corp"'); | CODE |
| LOW⚡ | apps/server/src/routes/slack/system-prompt.test.ts | 47 | const prompt = buildSystemPrompt("Acme Corp"); | CODE |
| LOW⚡ | apps/server/src/routes/slack/system-prompt.test.ts | 60 | const prompt = buildSystemPrompt("Acme Corp"); | CODE |
| LOW⚡ | apps/server/src/routes/slack/system-prompt.test.ts | 70 | const prompt = buildSystemPrompt("Acme Corp"); | CODE |
| LOW⚡ | apps/server/src/routes/slack/system-prompt.test.ts | 76 | const prompt = buildSystemPrompt("Acme Corp"); | CODE |
| LOW⚡ | apps/server/src/routes/slack/system-prompt.test.ts | 82 | expect(buildSystemPrompt("Acme Corp")).toContain("NEVER show internal ids"); | CODE |
| LOW⚡ | apps/server/src/routes/slack/system-prompt.test.ts | 86 | const prompt = buildSystemPrompt("Acme Corp", "\nSlack context:\n- note"); | CODE |
| LOW⚡ | apps/server/src/routes/slack/system-prompt.test.ts | 93 | expect(buildSystemPrompt("Acme Corp")).not.toContain("Slack context:"); | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | coolify-deployment.yaml | 1 | # Coolify Deployment Configuration | COMMENT |
| LOW | packages/ui/src/lib/data-table-filters/cookie.ts | 1 | // Controls panel open/close state (global). | COMMENT |
| LOW | packages/tinybird/src/audit-log/examples.ts | 41 | // const all = await history(); | COMMENT |
| LOW | packages/error/src/base-error.ts | 41 | COMMENT | |
| LOW | packages/services/test/preload.ts | 1 | // Bun test preload. Runs once before any test file is imported. | COMMENT |
| LOW | packages/services/src/monitor/delete.ts | 101 | if (existing.length !== ids.length) { | COMMENT |
| LOW | packages/services/src/page-component/schemas.ts | 1 | import { z } from "zod"; | COMMENT |
| LOW | .github/workflows/claude-code-review.yml | 41 | # See https://github.com/anthropics/claude-code-action/blob/main/docs/usage.md | COMMENT |
| LOW | .github/workflows/claude.yml | 61 | # prompt: 'Update the pull request description to include a summary of changes.' | COMMENT |
| LOW | apps/server/fly.toml | 61 | # timeout = "10s" | COMMENT |
| LOW | apps/server/CONNECTRPC_SPEC.md | 261 | ## Interceptors | COMMENT |
| LOW | apps/server/src/routes/mcp/tools/register-scoped.ts | 101 | const merged = { ...rest, annotations }; | COMMENT |
| LOW | …ps/server/src/routes/rpc/handlers/status-page/index.ts | 501 | COMMENT | |
| LOW | …ps/server/src/routes/rpc/handlers/maintenance/index.ts | 61 | }); | COMMENT |
| LOW | …ashboard/src/app/(dashboard)/monitors/[id]/sidebar.tsx | 201 | // label: "Last Logs", | COMMENT |
| LOW | …ashboard/src/app/(dashboard)/monitors/[id]/sidebar.tsx | 221 | // hour: "2-digit", | COMMENT |
| LOW | apps/dashboard/src/components/forms/api-key/form.tsx | 41 | // an array (`scopes: Scope[]`) so per-resource scopes can land | COMMENT |
| LOW | …oard/src/components/onboarding/status-page-preview.tsx | 1 | "use client"; | COMMENT |
| LOW | …shboard/src/components/data-table/monitors/columns.tsx | 181 | empty="No downtime" | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …ui/src/lib/data-table-filters/table-schema/validate.ts | 105 | // only hand-written or AI-generated JSON can. It has no chain form, | COMMENT |
| HIGH | …es/ui/src/lib/data-table-filters/table-schema/index.ts | 122 | * // Reconstruct from AI-generated JSON | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …d/src/components/forms/notifications/form-opsgenie.tsx | 177 | <Input placeholder="your-api-key" {...field} /> | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | packages/importers/README.md | 26 | provider.ts # Import orchestration (validate + multi-phase run) | CODE |
| MEDIUM | packages/importers/README.md | 34 | provider.ts # Import orchestration (validate + multi-phase run) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …statusReports/subscriber-filtering.integration.test.ts | 255 | // This test verifies the query uses conditions that can leverage indexes | COMMENT |