Network diagrams that update themselves
This report summarizes scanner evidence for scanopy/scanopy, a Rust project with 5,921 GitHub stars. SynthScan examined 569,993 lines of code across 2308 source files, recording 1464 pattern matches distributed across 16 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.
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? 1346 finding(s).
Are imports declared and package/API names verified? 11 finding(s).
Are wrappers, guards, and repeated structures necessary? 297 finding(s).
Which changes need focused human review? 1464 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 1464 distinct pattern matches across 16 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/tests/payload-perf.ts | 241 | await hostsTab.waitForQuiet(); | COMMENT |
| LOW | ui/scripts/generate-meta-messages.js | 101 | // A container host's LAN network driver (macvlan or ipvlan), keyed by `ContainerNetworkType`. | COMMENT |
| LOW | ui/src/tests/i18n-prop-defaults.test.ts | 21 | return files; | COMMENT |
| LOW | ui/src/lib/features/settings/BillingTab.svelte | 121 | let isCloudDeployment = $derived(configQuery.data ? isCloud(configQuery.data) : false); | COMMENT |
| LOW | ui/src/lib/features/settings/SettingsModal.svelte | 81 | const configQuery = useConfigQuery(); | COMMENT |
| LOW | ui/src/lib/features/settings/LicenseTab.svelte | 121 | // PlanLapsedBanner, which renders in this modal's frame. No date is quoted on | COMMENT |
| LOW | ui/src/lib/features/topology/interactions.ts | 101 | export const searchMatchNodeIds = writable<string[]>([]); | COMMENT |
| LOW | ui/src/lib/features/topology/pipeline/prepare.ts | 341 | // `topoKey` is `nodes|inline|hide` (see `getStructureKey`), and the three differ in what | COMMENT |
| LOW | ui/src/lib/features/topology/pipeline/prepare.ts | 441 | defaultsAppliedThisSession = true; | COMMENT |
| LOW | ui/src/lib/features/topology/pipeline/prepare.ts | 521 | collapsed = validCollapsed; | COMMENT |
| LOW | ui/src/lib/features/topology/pipeline/prepare.ts | 581 | // across a view switch. The existing layoutGraph belongs to the previous | COMMENT |
| LOW | ui/src/lib/features/topology/pipeline/prepare.ts | 601 | // the same reset behind the 0x0 containers, so this narrows that exposure rather than widening | COMMENT |
| LOW | ui/src/lib/features/topology/pipeline/measure.ts | 181 | if (node.node_type === 'Container') { | COMMENT |
| LOW | ui/src/lib/features/topology/pipeline/measure.ts | 221 | // and the view cache left the map *partial* — which is worse than empty, because the | COMMENT |
| LOW | ui/src/lib/features/topology/pipeline/measure.ts | 241 | COMMENT | |
| LOW | ui/src/lib/features/topology/pipeline/measure.ts | 261 | // cold load — with the other two triggered by unresolved element shape keys. | COMMENT |
| LOW | ui/src/lib/features/topology/pipeline/measure.ts | 321 | // mounted repeatedly. | COMMENT |
| LOW | ui/src/lib/features/topology/pipeline/measure.ts | 361 | // Persist the measurement here, not after the layout. | COMMENT |
| LOW | …src/lib/features/topology/pipeline/build-flow-nodes.ts | 261 | // A container's size comes from the layout graph, collapsed or not, with the measured | COMMENT |
| LOW | …src/lib/features/topology/pipeline/build-flow-nodes.ts | 281 | // Sizes SvelteFlow can cull against before the node has ever mounted. | COMMENT |
| LOW | …src/lib/features/topology/pipeline/build-flow-nodes.ts | 301 | // Gated on that branch specifically, not on `isNewStructure`. `isNewStructure` includes the | COMMENT |
| LOW | ui/src/lib/features/topology/layout/elk-layout.ts | 821 | } | COMMENT |
| LOW | ui/src/lib/features/topology/layout/elk-layout.ts | 1661 | // `await` and V8 does not clear bindings it can no longer reach — holding both passes' graphs | COMMENT |
| LOW | ui/src/lib/features/topology/layout/edge-bundling.ts | 61 | // addresses it ties together. Merging those would leave a bundle asserting "these subnets | COMMENT |
| LOW | …rc/lib/features/topology/components/TopologyTab.svelte | 301 | // a 500ms debounced PUT, then the rebuild and refetch — so for that window the view is empty | COMMENT |
| LOW | …s/topology/components/visualization/ElementNode.svelte | 181 | // 'element' — the card IS the hovered entity type (Service element in | COMMENT |
| LOW | …ogy/components/visualization/BaseTopologyViewer.svelte | 701 | // Counted at the point a run actually begins (as opposed to being queued), | COMMENT |
| LOW | …ogy/components/visualization/BaseTopologyViewer.svelte | 901 | let visibleNodes = initialVisibleNodes; | COMMENT |
| LOW | …ogy/components/visualization/BaseTopologyViewer.svelte | 961 | buildMeasureNodes: (onlyIds?: Set<string>) => { | COMMENT |
| LOW | …ogy/components/visualization/BaseTopologyViewer.svelte | 1001 | // We only need DOM presence for measurement, not full initialization. | COMMENT |
| LOW | …ogy/components/visualization/BaseTopologyViewer.svelte | 1121 | // Render | COMMENT |
| LOW | …ogy/components/visualization/BaseTopologyViewer.svelte | 1241 | COMMENT | |
| LOW | …opology/components/panel/options/OptionsContent.svelte | 81 | let topology = $derived(topologiesData.find((t) => t.id === $selectedTopologyId)); | COMMENT |
| LOW | …opology/components/panel/options/OptionsContent.svelte | 101 | // This used to be `useHostsQuery({ limit: 0 })` — every host in the | COMMENT |
| LOW | …anel/inspectors/edges/InspectorEdgePhysicalLink.svelte | 41 | let targetHost = $derived( | COMMENT |
| LOW | …ry/components/DiscoveryModal/DiscoveryEditModal.svelte | 621 | // discovery, so rendering it read-only left it impossible to remove or retarget and | COMMENT |
| LOW | ui/src/lib/features/billing/PaymentMethodModal.svelte | 81 | ); | COMMENT |
| LOW | ui/src/lib/features/billing/BillingPlanModal.svelte | 181 | // Only an immediate-payment selection (paid plan, no trial, no card on file) | COMMENT |
| LOW | ui/src/lib/features/billing/BillingPlanModal.svelte | 221 | // fall back to a same-tab redirect. | COMMENT |
| LOW | …res/credentials/components/CredentialWizardStep.svelte | 181 | const meta = credentialTypes.getMetadata(p.credential.credential_type.type); | COMMENT |
| LOW | …/features/credentials/components/CredentialsTab.svelte | 121 | let sitesData = $derived(sitesQuery.data ?? []); | COMMENT |
| LOW | …/features/credentials/components/CredentialForm.svelte | 381 | } | COMMENT |
| LOW | …/features/credentials/components/CredentialForm.svelte | 801 | export function validateTarget(): boolean { | COMMENT |
| LOW | ui/src/lib/shared/components/layout/GenericModal.svelte | 421 | // Modal closed (by parent, form submit, etc.) — clear URL params | COMMENT |
| LOW | ui/src/lib/api/client.ts | 481 | // `onResponse`, so until now it reported nothing anywhere except the handful | COMMENT |
| LOW | ui/src/routes/+page.svelte | 81 | ); | COMMENT |
| LOW | tools/snmp/snmp-test-env.sh | 421 | echo " Check with: journalctl -u <unit>" | COMMENT |
| LOW | tools/snmp/lxc/setup.sh | 1 | #!/bin/bash | COMMENT |
| LOW | tools/snmp/lxc/setup.sh | 81 | # | COMMENT |
| LOW | tools/snmp/lxc/setup.sh | 101 | EOF | COMMENT |
| LOW | tools/snmp/lxc/setup.sh | 161 | # KNOWN CHAOS — read this before chasing a truncation warning. | COMMENT |
| LOW | tools/snmp/lxc/setup.sh | 181 | # So: a scan here normally emits several "was incomplete" warnings. They mean the | COMMENT |
| LOW | tools/snmp/lxc/setup.sh | 241 | echo "NONE" | COMMENT |
| LOW | tools/snmp/lxc/lab-network-up.sh | 1 | #!/bin/bash | COMMENT |
| LOW | tools/snmp/lxc/lab-network-up.sh | 21 | # Deleting and recreating every link each run would be simpler to reason about, | COMMENT |
| LOW | tools/snmp/lxc/lab-network-up.sh | 101 | # Scope ARP to the interface that owns the address. At the kernel default the | COMMENT |
| LOW | tools/889/889-vendors.txt | 1 | # ============================================================================== | COMMENT |
| LOW | tools/889/889-evidence.sh | 1 | #!/bin/sh | COMMENT |
| LOW | tools/889/889-evidence.sh | 21 | # USAGE | COMMENT |
| LOW | tools/889/889-allow.txt | 1 | # ============================================================================== | COMMENT |
| 1046 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tools/snmp/lxc/setup.sh | 4 | # ══════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | tools/snmp/lxc/setup.sh | 20 | # ══════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | tools/snmp/lxc/setup.sh | 44 | # ── 1. Install net-snmp ─────────────────────────────────────────────── | COMMENT |
| MEDIUM | tools/snmp/lxc/setup.sh | 53 | # ── 2. Durable management address ──────────────────────────────────── | COMMENT |
| MEDIUM | tools/snmp/lxc/setup.sh | 159 | # ── 4. Write pass handler ──────────────────────────────────────────── | COMMENT |
| MEDIUM | tools/snmp/lxc/setup.sh | 366 | # ── 5. Install the generated devices ───────────────────────────────── | COMMENT |
| MEDIUM | tools/snmp/lxc/setup.sh | 412 | # ── 6. Create systemd services ─────────────────────────────────────── | COMMENT |
| MEDIUM | tools/snmp/lxc/setup.sh | 529 | # ── 7. Cap log volume ───────────────────────────────────────────────── | COMMENT |
| MEDIUM | tools/snmp/lxc/setup.sh | 553 | # ── 8. Start everything ────────────────────────────────────────────── | COMMENT |
| MEDIUM | tools/snmp/lxc/setup.sh | 577 | # ── 9. Verify ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tools/snmp/lxc/lab-network-up.sh | 2 | # ══════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM⚡ | tools/snmp/lxc/lab-network-up.sh | 15 | # ── eth0 is out of bounds ───────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tools/snmp/lxc/lab-network-up.sh | 20 | # ── Reconciled in place, not rebuilt ────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tools/snmp/lxc/lab-network-up.sh | 29 | # ── IPv4 only ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tools/snmp/lxc/lab-network-up.sh | 33 | # ══════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | tools/snmp/lxc/lab-network-up.sh | 49 | # ── 1. Drop links the current device list does not account for ──────── | COMMENT |
| MEDIUM | tools/snmp/lxc/lab-network-up.sh | 74 | # ── 2. Drop addresses that are not the link's own ───────────────────── | COMMENT |
| MEDIUM | tools/snmp/lxc/lab-network-up.sh | 92 | # ── 3. Create and address what is missing ───────────────────────────── | COMMENT |
| MEDIUM | tools/889/889-vendors.txt | 1 | # ============================================================================== | COMMENT |
| MEDIUM | tools/889/889-vendors.txt | 3 | # ============================================================================== | COMMENT |
| MEDIUM | tools/889/889-vendors.txt | 21 | # ============================================================================== | COMMENT |
| MEDIUM | tools/889/889-evidence.sh | 2 | # ============================================================================== | COMMENT |
| MEDIUM | tools/889/889-evidence.sh | 4 | # ============================================================================== | COMMENT |
| MEDIUM | tools/889/889-evidence.sh | 36 | # ============================================================================== | COMMENT |
| MEDIUM | tools/889/889-allow.txt | 1 | # ============================================================================== | COMMENT |
| MEDIUM | tools/889/889-allow.txt | 3 | # ============================================================================== | COMMENT |
| MEDIUM | tools/889/889-allow.txt | 17 | # ============================================================================== | COMMENT |
| MEDIUM | tools/889/check-889.sh | 2 | # ============================================================================== | COMMENT |
| MEDIUM | tools/889/check-889.sh | 4 | # ============================================================================== | COMMENT |
| MEDIUM | tools/889/check-889.sh | 17 | # ------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | tools/889/check-889.sh | 19 | # ------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | tools/889/check-889.sh | 54 | # ============================================================================== | COMMENT |
| MEDIUM | tools/dcp/dcp-test-env.sh | 4 | # ══════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | tools/dcp/dcp-test-env.sh | 18 | # ══════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | tools/middlebox/setup.sh | 4 | # ══════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | tools/middlebox/setup.sh | 19 | # ══════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM⚡ | tools/middlebox/setup.sh | 51 | # ── 1. Packages ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tools/middlebox/setup.sh | 60 | # ── 2. Forwarding, and a route for a range with nothing on it ───────── | COMMENT |
| MEDIUM⚡ | tools/middlebox/setup.sh | 68 | # ── 3. The sink ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tools/middlebox/setup.sh | 94 | # ── 4. The interception ─────────────────────────────────────────────── | COMMENT |
| MEDIUM | tools/middlebox/setup.sh | 108 | # ── 5. Verify ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tools/wol/provision.sh | 4 | # ══════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | tools/wol/provision.sh | 20 | # ══════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | tools/wol/wol-test-env.sh | 4 | # ══════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | tools/wol/wol-test-env.sh | 22 | # ══════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | tools/wol/wol-test-env.sh | 35 | # ── sleep ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tools/wol/wol-test-env.sh | 54 | # ── status ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tools/wol/wol-test-env.sh | 71 | # ── verify ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tools/wol/proxmox-api.sh | 2 | # ══════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | tools/wol/proxmox-api.sh | 22 | # ══════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | tools/wol/wol-listener.py | 81 | # ── MAC to VMID ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tools/wol/wol-listener.py | 189 | # ── Waking a VM ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tools/wol/wol-listener.py | 232 | # ── Main loop ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tools/probe-servers/run.sh | 4 | # ══════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | tools/probe-servers/run.sh | 29 | # ══════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | tools/ssh/setup.sh | 4 | # ══════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | tools/ssh/setup.sh | 22 | # ══════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | tools/ssh/setup.sh | 42 | # ── 1. Packages ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tools/ssh/setup.sh | 54 | # ── 2. Test user ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tools/ssh/setup.sh | 75 | # ── 3. Network: macvlan links, addresses, port-22 redirect ─────────── | COMMENT |
| 46 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | ui/tests/payload-perf.ts | 153 | function isUnboundedNestedHostRequest(record: RequestRecord): boolean { | CODE |
| LOW | ui/tests-support/topology-harness.ts | 148 | export async function enablePerfInstrumentation(page: Page): Promise<void> { | CODE |
| LOW | ui/src/lib/features/organizations/queries.ts | 53 | export function useUpdateOrganizationMutation() { | CODE |
| LOW | ui/src/lib/features/organizations/queries.ts | 133 | export function useResetOrganizationDataMutation() { | CODE |
| LOW | ui/src/lib/features/organizations/queries.ts | 154 | export function useDeleteOrganizationMutation() { | CODE |
| LOW | ui/src/lib/features/organizations/queries.ts | 177 | export function usePopulateDemoDataMutation() { | CODE |
| LOW | ui/src/lib/features/organizations/queries.ts | 209 | export function useDaemonPromptResponseMutation() { | CODE |
| LOW | ui/src/lib/features/organizations/queries.ts | 255 | export function useReferralSourceMutation() { | CODE |
| LOW | ui/src/lib/features/organizations/queries.ts | 277 | export function useBulkRevokeInvitesMutation() { | CODE |
| LOW | ui/src/lib/features/settings/BillingTab.svelte | 197 | function handlePayWrittenOffInvoice() { | CODE |
| LOW | ui/src/lib/features/topology/keyboard.ts | 22 | export function createTopologyKeydownHandler(handlers: KeyboardShortcutHandlers) { | CODE |
| LOW | ui/src/lib/features/topology/interactions.ts | 268 | function hideContainersAndDescendants( | CODE |
| LOW | ui/src/lib/features/topology/interactions.ts | 390 | function computePresentFilterValues( | CODE |
| LOW | ui/src/lib/features/topology/interactions.ts | 1298 | export function recomputeSearchNavigation( | CODE |
| LOW | ui/src/lib/features/topology/queries.ts | 95 | export function getInfrastructureRuleIdForTopology( | CODE |
| LOW | ui/src/lib/features/topology/queries.ts | 322 | export function useUpdateTopologyMutation() { | CODE |
| LOW | ui/src/lib/features/topology/queries.ts | 345 | export function useUpdateNodePositionMutation() { | CODE |
| LOW | ui/src/lib/features/topology/queries.ts | 374 | export function useUpdateNodeResizeMutation() { | CODE |
| LOW | ui/src/lib/features/topology/queries.ts | 405 | export function useUpdateEdgeHandlesMutation() { | CODE |
| LOW | ui/src/lib/features/topology/queries.ts | 682 | export function hydrateStoresFromTopology( | CODE |
| LOW | ui/src/lib/features/topology/queries.ts | 814 | export function loadSelectedSiteFromStorage(): string | null { | CODE |
| LOW | ui/src/lib/features/topology/queries.ts | 824 | function saveSelectedSiteToStorage(siteId: string | null): void { | CODE |
| LOW | ui/src/lib/features/topology/queries.ts | 838 | function saveOptionsForCurrentTopology(): void { | CODE |
| LOW | ui/src/lib/features/topology/queries.ts | 986 | export function invalidateAllLiveTopology() { | CODE |
| LOW | ui/src/lib/features/topology/element-render-data.ts | 981 | export function currentElementRenderContext(): Omit< | CODE |
| LOW | ui/src/lib/features/topology/collapse.ts | 566 | function autoCollapseCandidatesLeftExpanded( | CODE |
| LOW | ui/src/lib/features/topology/resolvers.ts | 326 | export function resolveEditDependencyTargets( | CODE |
| LOW | ui/src/lib/features/topology/pipeline/prepare.ts | 130 | function hiddenMetadataKeysByEntity(view: string): [string, string][] { | CODE |
| LOW | ui/src/lib/features/topology/pipeline/render-mode.ts | 36 | export function cullingDisabledForTooling(): boolean { | CODE |
| LOW | ui/src/lib/features/topology/pipeline/shape-verify.ts | 51 | export function fillMissingSizesByShapeKey( | CODE |
| LOW | …rc/lib/features/topology/pipeline/sync-edge-display.ts | 21 | export function computeEdgeDisplayUpdates( | CODE |
| LOW | …src/lib/features/topology/pipeline/build-flow-nodes.ts | 176 | function fallbackSubgroupSummaries( | CODE |
| LOW | ui/src/lib/features/topology/types/grouping.ts | 14 | export function getContainerRuleDiscriminant(rule: ContainerRule): ContainerRuleType { | CODE |
| LOW | ui/src/lib/features/topology/layout/elk-layout.ts | 1315 | export function applySubgroupCollapseAdjustment( | CODE |
| LOW | ui/src/lib/features/topology/layout/elk-layout.ts | 1405 | function repackDisconnectedContainers( | CODE |
| LOW | …rc/lib/features/topology/layout/edge-classification.ts | 41 | export function affectsLayoutWithinContainer(edge: TopologyEdge): boolean { | CODE |
| LOW | …rc/lib/features/topology/layout/edge-classification.ts | 175 | export function getDefaultHiddenEdgeTypes(view: TopologyView): EdgeTypeDiscriminants[] { | CODE |
| LOW | …rc/lib/features/topology/components/TopologyTab.svelte | 635 | function dismissDependencyTutorial() { | CODE |
| LOW | …rc/lib/features/topology/components/ExportModal.svelte | 310 | function handleDisabledFormatClick(value: string) { | CODE |
| LOW | …ogy/components/panel/options/GroupingRuleEditor.svelte | 179 | function getElementRuleDisabledTooltip(item: ElementGraphRule): string | undefined { | CODE |
| LOW | …ogy/components/panel/options/GroupingRuleEditor.svelte | 397 | function elementRuleEditUnavailable(item: ElementGraphRule): Unavailable | undefined { | CODE |
| LOW | …ogy/components/panel/options/GroupingRuleEditor.svelte | 405 | function elementRuleRemoveUnavailable(item: ElementGraphRule): Unavailable | undefined { | CODE |
| LOW | …ogy/components/panel/options/GroupingRuleEditor.svelte | 535 | function getElementEditButtonClass(item: ElementGraphRule): string { | CODE |
| LOW | …ogy/components/panel/options/GroupingRuleEditor.svelte | 544 | function handleVisibleElementRemove(visibleIndex: number) { | CODE |
| LOW | …opology/components/panel/options/OptionsContent.svelte | 310 | function countHiddenMetadataValues(filters: MetadataFilter[]): number { | CODE |
| LOW | …opology/components/panel/options/OptionsContent.svelte | 442 | function toggleMetadataFilterValue(filter: MetadataFilter, valueId: string) { | CODE |
| LOW | …omponents/panel/inspectors/InspectorMultiSelect.svelte | 394 | function createGroupingRuleFromTags(tagIds: string[]) { | CODE |
| LOW | …/panel/inspectors/edges/InspectorEdgeDependency.svelte | 129 | function getServiceForBindingFromTopology(bindingId: string) { | CODE |
| LOW | ui/src/lib/features/vlans/queries.ts | 95 | export function useBulkDeleteVlansMutation() { | CODE |
| LOW | ui/src/lib/features/daemons/queries.ts | 73 | export function useDaemonInstallCommandQuery( | CODE |
| LOW | ui/src/lib/features/daemons/queries.ts | 100 | export function useDaemonUpgradeCommandQuery(id: () => string) { | CODE |
| LOW | ui/src/lib/features/daemons/queries.ts | 162 | export function useBulkDeleteDaemonsMutation() { | CODE |
| LOW | ui/src/lib/features/daemons/queries.ts | 184 | export function useProvisionDaemonMutation() { | CODE |
| LOW | ui/src/lib/features/daemons/queries.ts | 212 | export function useRetryDaemonConnectionMutation() { | CODE |
| LOW | ui/src/lib/features/daemons/queries.ts | 234 | export function useTestReachabilityMutation() { | CODE |
| LOW | ui/src/lib/features/daemons/queries.ts | 249 | export function useEmailInstallCommandMutation() { | CODE |
| LOW | ui/src/lib/features/daemons/queries.ts | 271 | export function useProvisionEligibilityQuery(options: { enabled: () => boolean }) { | CODE |
| LOW | ui/src/lib/features/daemons/queries.ts | 285 | export function getDaemonIsRunningDiscovery( | CODE |
| LOW | ui/src/lib/features/daemons/queries.ts | 307 | export function useBulkRetryDaemonConnectionMutation() { | CODE |
| LOW | …/components/CreateDaemonModal/CreateDaemonModal.svelte | 153 | async function defaultDaemonHostCredentials(): Promise<Credential[]> { | CODE |
| 130 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | contributing.md | 325 | ### Step 1: Create Your Service File | COMMENT |
| LOW | contributing.md | 369 | ### Step 2: Register the Module | COMMENT |
| LOW | backend/tests/integration/infra.rs | 649 | // Step 1: Provision daemon on server (creates record + generates API key) | COMMENT |
| LOW | backend/tests/integration/infra.rs | 671 | // Step 2: Initialize daemon with site_id and API key | COMMENT |
| LOW | backend/src/server/services/service/upsert.rs | 11 | // NOTE: This function assumes the caller already holds the service lock. | COMMENT |
| LOW | backend/src/daemon/discovery/buffer.rs | 876 | // Step 1: Discovery pushes subnet | COMMENT |
| LOW⚡ | backend/src/daemon/discovery/buffer.rs | 908 | // Step 2: Server polls - get_pending() returns pending entities | COMMENT |
| LOW⚡ | backend/src/daemon/discovery/buffer.rs | 916 | // Step 3: Server processes (simulated - creates with same or different ID) | COMMENT |
| LOW⚡ | backend/src/daemon/discovery/buffer.rs | 932 | // Step 4: Daemon receives confirmation | COMMENT |
| LOW⚡ | backend/src/daemon/discovery/buffer.rs | 941 | // Step 5: await_subnet can now find the created subnet | COMMENT |
| LOW⚡ | backend/src/daemon/discovery/buffer.rs | 949 | // Step 6: Session ends - clear_all removes all entities | COMMENT |
| LOW | …rc/daemon/discovery/integration/snmp/queries/bridge.rs | 97 | // Step 2: Walk legacy dot1dTpFdbTable columns. | COMMENT |
| LOW | …rc/daemon/discovery/integration/snmp/queries/bridge.rs | 144 | // Step 3: Merge in VLAN-aware Q-BRIDGE dot1qTpFdbTable entries. Legacy rows | COMMENT |
| LOW | …rc/daemon/discovery/integration/snmp/queries/bridge.rs | 373 | // Step 2: Walk dot1qPvid for native VLAN per bridge port. OID suffix is the | COMMENT |
| LOW | …rc/daemon/discovery/integration/snmp/queries/bridge.rs | 391 | // Step 3: Walk dot1qVlanCurrentEgressPorts — PortList bitmap per VLAN, indexed | COMMENT |
| LOW | …rc/daemon/discovery/integration/snmp/queries/bridge.rs | 412 | // Step 4: Walk dot1qVlanCurrentUntaggedPorts — same bitmap format. | COMMENT |
| LOW | …rc/daemon/discovery/integration/snmp/queries/bridge.rs | 432 | // Step 5: Assemble per-port membership, resolving bridge port → ifIndex | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | backend/tests/integration/infra.rs | 649 | // Step 1: Provision daemon on server (creates record + generates API key) | COMMENT |
| LOW | backend/tests/integration/infra.rs | 671 | // Step 2: Initialize daemon with site_id and API key | COMMENT |
| LOW | backend/src/daemon/discovery/buffer.rs | 876 | // Step 1: Discovery pushes subnet | COMMENT |
| LOW⚡ | backend/src/daemon/discovery/buffer.rs | 908 | // Step 2: Server polls - get_pending() returns pending entities | COMMENT |
| LOW⚡ | backend/src/daemon/discovery/buffer.rs | 916 | // Step 3: Server processes (simulated - creates with same or different ID) | COMMENT |
| LOW⚡ | backend/src/daemon/discovery/buffer.rs | 932 | // Step 4: Daemon receives confirmation | COMMENT |
| LOW⚡ | backend/src/daemon/discovery/buffer.rs | 941 | // Step 5: await_subnet can now find the created subnet | COMMENT |
| LOW⚡ | backend/src/daemon/discovery/buffer.rs | 949 | // Step 6: Session ends - clear_all removes all entities | COMMENT |
| LOW | …rc/daemon/discovery/integration/snmp/queries/bridge.rs | 97 | // Step 2: Walk legacy dot1dTpFdbTable columns. | COMMENT |
| LOW | …rc/daemon/discovery/integration/snmp/queries/bridge.rs | 144 | // Step 3: Merge in VLAN-aware Q-BRIDGE dot1qTpFdbTable entries. Legacy rows | COMMENT |
| LOW | …rc/daemon/discovery/integration/snmp/queries/bridge.rs | 373 | // Step 2: Walk dot1qPvid for native VLAN per bridge port. OID suffix is the | COMMENT |
| LOW | …rc/daemon/discovery/integration/snmp/queries/bridge.rs | 391 | // Step 3: Walk dot1qVlanCurrentEgressPorts — PortList bitmap per VLAN, indexed | COMMENT |
| LOW | …rc/daemon/discovery/integration/snmp/queries/bridge.rs | 412 | // Step 4: Walk dot1qVlanCurrentUntaggedPorts — same bitmap format. | COMMENT |
| LOW | …rc/daemon/discovery/integration/snmp/queries/bridge.rs | 432 | // Step 5: Assemble per-port membership, resolving bridge port → ifIndex | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tools/snmp/lxc/setup.sh | 7 | # The host harness only: interfaces, the three `pass` handlers, systemd units and | COMMENT |
| MEDIUM | backend/scripts/compat-check.sh | 2 | # Backward-compat container harness: pulls the currently-deployed server image, | COMMENT |
| MEDIUM | …rc/daemon/discovery/integration/snmp/queries/bridge.rs | 8 | /// This is the highest-leverage truncation in the file: both FDB and VLAN-membership collection | COMMENT |
| MEDIUM | backend/src/daemon/discovery/service/network/scan.rs | 799 | // the post-channel-close formula (30 + deep_frac*65), a seamless handoff. | COMMENT |
| MEDIUM | .github/workflows/release.yml | 297 | echo "## Backward-compat container harness" | CODE |
| MEDIUM | .github/workflows/publish_release.yml | 105 | # parses it to decide whether to run the backward-compat harness / enum | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | …kend/src/daemon/discovery/service/bridge_containers.rs | 654 | let hostname_before = s.host_data.host.base.hostname.clone(); | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | ui/src/tests/i18n-hardcoded-strings.test.ts | 23 | 'placeholder', | CODE |
| LOW | messages/en.json | 2939 | "onboarding_internalItOrgPlaceholder": "Acme Inc", | CODE |
| LOW | backend/src/server/auth/disposable_email.rs | 139 | &email("user@example.com"), | CODE |
| LOW | backend/src/server/auth/impl/oidc.rs | 465 | .set_email(Some(EndUserEmail::new("user@example.com".to_string()))) | CODE |
| LOW | backend/src/server/auth/impl/oidc.rs | 499 | assert_eq!(user.email.as_deref(), Some("user@example.com")); | CODE |
| LOW | backend/src/server/auth/handlers/registration.rs | 95 | let fake_user = User::new(UserBase { | CODE |
| LOW | backend/src/server/auth/handlers/registration.rs | 105 | return Ok(Json(ApiResponse::success(fake_user))); | CODE |
| LOW | backend/src/server/shared/types/examples.rs | 437 | name: "Acme Corp".to_string(), | CODE |
| LOW | backend/src/server/users/impl/base.rs | 121 | email: EmailAddress::new_unchecked("user@example.com"), | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | backend/src/server/shared/types/api.rs | 73 | /// Maximum items per page (as requested) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | ui/scripts/find-single-word-duplicates.sh | 60 | # Check if there's already a common_ version of this value | COMMENT |
| LOW | tools/docker-proxy/docker-proxy-test-env.sh | 192 | # Check if already running | COMMENT |
| LOW | tools/podman-proxy/podman-proxy-test-env.sh | 237 | # Check if already running | COMMENT |
| LOW | .github/workflows/promote_to_latest.yml | 329 | # Check if there are changes to commit | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tools/wol/wol-listener.py | 117 | except OSError: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | backend/scripts/new-terms-update.sh | 2 | # Create a terms update: backend/release-notes/terms/<effective>.md, the file that | COMMENT |
| MEDIUM | backend/scripts/seed-l2-perf.sql | 56 | -- # Create the site first, then point the seed at it; dropping that one row | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/wol/wol-test-env.sh | 7 | # Usage: | COMMENT |
| LOW | backend/scripts/find-inlined-paths.sh | 9 | # Usage: | COMMENT |
| LOW | backend/scripts/test-migration-branch.sh | 14 | # Usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/wol/wol-listener.py | 88 | CODE | |
| LOW | tools/wol/wol-listener.py | 253 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | messages/en.json | 3129 | "settings_org_populateDemoHelp": "Fill the organization with sample data for demonstration purposes.", | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/wol/wol-listener.py | 24 | CODE |