Repository Analysis

wailsapp/wails

Create beautiful applications using Go

1.5 Likely human-written View on GitHub
1.5
Adjusted Score
1.5
Raw Score
100%
Time Factor
2026-05-30
Last Push
34,524
Stars
Go
Language
455,766
Lines of Code
4447
Files
535
Pattern Hits
2026-05-31
Scan Date

Score History

Severity Breakdown

CRITICAL 2HIGH 1MEDIUM 18LOW 514

Pattern Findings

535 matches across 11 categories. Click a row to expand file-level details.

Hyper-Verbose Identifiers262 hits · 320 pts
SeverityFileLineSnippet
LOWv2/internal/frontend/runtime/runtime_debug_desktop.js331 function WindowSetSystemDefaultTheme() {
LOWv2/internal/frontend/runtime/runtime_debug_desktop.js406 function WindowSetBackgroundColour(R, G, B, A) {
LOWv2/internal/frontend/runtime/runtime_debug_desktop.js593 function processDefaultContextMenu(event) {
LOWv2/internal/frontend/runtime/runtime_debug_desktop.js658 function RequestNotificationAuthorization() {
LOWv2/internal/frontend/runtime/runtime_debug_desktop.js661 function CheckNotificationAuthorization() {
LOWv2/internal/frontend/runtime/runtime_debug_desktop.js667 function SendNotificationWithActions(options) {
LOWv2/internal/frontend/runtime/runtime_debug_desktop.js670 function RegisterNotificationCategory(category) {
LOWv2/internal/frontend/runtime/runtime_debug_desktop.js673 function RemoveNotificationCategory(categoryId) {
LOWv2/internal/frontend/runtime/runtime_debug_desktop.js676 function RemoveAllPendingNotifications() {
LOWv2/internal/frontend/runtime/runtime_debug_desktop.js679 function RemovePendingNotification(identifier) {
LOWv2/internal/frontend/runtime/runtime_debug_desktop.js682 function RemoveAllDeliveredNotifications() {
LOWv2/internal/frontend/runtime/runtime_debug_desktop.js685 function RemoveDeliveredNotification(identifier) {
LOWv2/internal/frontend/runtime/wrapper/runtime.d.ts103export function WindowSetSystemDefaultTheme(): void;
LOWv2/internal/frontend/runtime/wrapper/runtime.d.ts203export function WindowSetBackgroundColour(R: number, G: number, B: number, A: number): void;
LOWv2/internal/frontend/runtime/wrapper/runtime.d.ts290export function RequestNotificationAuthorization(): Promise<boolean>;
LOWv2/internal/frontend/runtime/wrapper/runtime.d.ts294export function CheckNotificationAuthorization(): Promise<boolean>;
LOWv2/internal/frontend/runtime/wrapper/runtime.d.ts302export function SendNotificationWithActions(options: NotificationOptions): Promise<void>;
LOWv2/internal/frontend/runtime/wrapper/runtime.d.ts306export function RegisterNotificationCategory(category: NotificationCategory): Promise<void>;
LOWv2/internal/frontend/runtime/wrapper/runtime.d.ts310export function RemoveNotificationCategory(categoryId: string): Promise<void>;
LOWv2/internal/frontend/runtime/wrapper/runtime.d.ts314export function RemoveAllPendingNotifications(): Promise<void>;
LOWv2/internal/frontend/runtime/wrapper/runtime.d.ts318export function RemovePendingNotification(identifier: string): Promise<void>;
LOWv2/internal/frontend/runtime/wrapper/runtime.d.ts322export function RemoveAllDeliveredNotifications(): Promise<void>;
LOWv2/internal/frontend/runtime/wrapper/runtime.d.ts326export function RemoveDeliveredNotification(identifier: string): Promise<void>;
LOWv2/internal/frontend/runtime/wrapper/runtime.js76export function WindowSetSystemDefaultTheme() {
LOWv2/internal/frontend/runtime/wrapper/runtime.js164export function WindowSetBackgroundColour(R, G, B, A) {
LOWv2/internal/frontend/runtime/wrapper/runtime.js256export function RequestNotificationAuthorization() {
LOWv2/internal/frontend/runtime/wrapper/runtime.js260export function CheckNotificationAuthorization() {
LOWv2/internal/frontend/runtime/wrapper/runtime.js268export function SendNotificationWithActions(options) {
LOWv2/internal/frontend/runtime/wrapper/runtime.js272export function RegisterNotificationCategory(category) {
LOWv2/internal/frontend/runtime/wrapper/runtime.js276export function RemoveNotificationCategory(categoryId) {
LOWv2/internal/frontend/runtime/wrapper/runtime.js280export function RemoveAllPendingNotifications() {
LOWv2/internal/frontend/runtime/wrapper/runtime.js284export function RemovePendingNotification(identifier) {
LOWv2/internal/frontend/runtime/wrapper/runtime.js288export function RemoveAllDeliveredNotifications() {
LOWv2/internal/frontend/runtime/wrapper/runtime.js292export function RemoveDeliveredNotification(identifier) {
LOWv2/internal/frontend/runtime/desktop/window.js24export function WindowSetSystemDefaultTheme() {
LOWv2/internal/frontend/runtime/desktop/window.js265export function WindowSetBackgroundColour(R, G, B, A) {
LOWv2/internal/frontend/runtime/desktop/contextmenu.js8export function processDefaultContextMenu(event) {
LOWv2/internal/frontend/runtime/desktop/notifications.js56export function RequestNotificationAuthorization() {
LOWv2/internal/frontend/runtime/desktop/notifications.js68export function CheckNotificationAuthorization() {
LOWv2/internal/frontend/runtime/desktop/notifications.js106export function SendNotificationWithActions(options) {
LOWv2/internal/frontend/runtime/desktop/notifications.js127export function RegisterNotificationCategory(category) {
LOWv2/internal/frontend/runtime/desktop/notifications.js138export function RemoveNotificationCategory(categoryId) {
LOWv2/internal/frontend/runtime/desktop/notifications.js149export function RemoveAllPendingNotifications() {
LOWv2/internal/frontend/runtime/desktop/notifications.js161export function RemovePendingNotification(identifier) {
LOWv2/internal/frontend/runtime/desktop/notifications.js172export function RemoveAllDeliveredNotifications() {
LOWv2/internal/frontend/runtime/desktop/notifications.js184export function RemoveDeliveredNotification(identifier) {
LOW…ternal/binding/binding_test/binding_type_alias_test.go22export function MapWithImportedStructValue():Promise<Record<string, int_package.SomeStruct>>;
LOW…binding/binding_test/binding_returned_promises_test.go24export function SingleReturnStructPointer(arg1:any):Promise<binding_test.PromisesTestReturnStruct>;
LOW…binding/binding_test/binding_returned_promises_test.go26export function SingleReturnStructPointerSlice(arg1:any):Promise<Array<binding_test.PromisesTestReturnStruct>>;
LOW…ic-recovery-test/frontend/wailsjs/runtime/runtime.d.ts103export function WindowSetSystemDefaultTheme(): void;
LOW…ic-recovery-test/frontend/wailsjs/runtime/runtime.d.ts203export function WindowSetBackgroundColour(R: number, G: number, B: number, A: number): void;
LOW…anic-recovery-test/frontend/wailsjs/runtime/runtime.js76export function WindowSetSystemDefaultTheme() {
LOW…anic-recovery-test/frontend/wailsjs/runtime/runtime.js164export function WindowSetBackgroundColour(R, G, B, A) {
LOW…es/dragdrop-test/frontend/wailsjs/runtime/runtime.d.ts103export function WindowSetSystemDefaultTheme(): void;
LOW…es/dragdrop-test/frontend/wailsjs/runtime/runtime.d.ts203export function WindowSetBackgroundColour(R: number, G: number, B: number, A: number): void;
LOW…ples/dragdrop-test/frontend/wailsjs/runtime/runtime.js76export function WindowSetSystemDefaultTheme() {
LOW…ples/dragdrop-test/frontend/wailsjs/runtime/runtime.js164export function WindowSetBackgroundColour(R, G, B, A) {
LOW…te/assets/common/frontend/wailsjs/runtime/runtime.d.ts103export function WindowSetSystemDefaultTheme(): void;
LOW…te/assets/common/frontend/wailsjs/runtime/runtime.d.ts187export function WindowSetBackgroundColour(R: number, G: number, B: number, A: number): void;
LOW…rate/assets/common/frontend/wailsjs/runtime/runtime.js76export function WindowSetSystemDefaultTheme() {
202 more matches not shown…
Over-Commented Block228 hits · 228 pts
SeverityFileLineSnippet
LOW.fossa.yml1version: 3
LOWqodana.yaml1#-------------------------------------------------------------------------------#
LOWqodana.yaml21#Execute shell command before Qodana execution (Applied in CI/CD pipeline)
LOWwebview2/webviewloader/env_create_options.go21// compatible version of the WebView2 Runtime that is installed on the user machine (first at the machine level,
LOWwebview2/webviewloader/env_create_options.go41 wvep.userDataFolder = folder
LOWwebview2/webviewloader/env_create_options.go61// logic.\n\> * The features is the union of the specified features
LOWwebview2/webviewloader/env_create_options.go81// context menu and dialogs. It also applies to the `accept-languages` HTTP
LOWwebview2/webviewloader/env_create_options.go101// This defaults to the WebView2 Runtime version
LOWwebview2/webviewloader/env_create_options.go121// for the account associated for Windows account login, if any.
LOWdocs/src/env.d.ts1/// <reference path="../.astro/types.d.ts" />
LOWv2/test/4649/test_esc_fullscreen.go1//go:build darwin
LOWv2/internal/go-common-file-dialog/cfd/DialogConfig.go21type DialogConfig struct {
LOWv2/internal/go-common-file-dialog/cfd/vtblCommonFunc.go61
LOW…internal/go-common-file-dialog/cfd/CommonFileDialog.go1// Cross-platform.
LOW…internal/go-common-file-dialog/cfd/CommonFileDialog.go21 // This means that, for example, a dialog with role "Import" will have a different
LOWv2/internal/frontend/runtime/wrapper/runtime.d.ts101// *Windows only*
LOWv2/internal/frontend/desktop/linux/window.go1//go:build linux
LOWv2/internal/frontend/desktop/linux/frontend.go1//go:build linux
LOWv2/internal/frontend/desktop/linux/frontend.go41#if defined(SIGCHLD)
LOWv2/internal/frontend/desktop/linux/frontend.go61#endif
LOWv2/internal/frontend/desktop/linux/window.c1#include <JavaScriptCore/JavaScript.h>
LOWv2/internal/frontend/desktop/darwin/WindowDelegate.m1//go:build darwin
LOWv2/internal/frontend/desktop/darwin/WailsContext.h1//
LOWv2/internal/frontend/desktop/darwin/WailsMenu.m1//go:build darwin
LOWv2/internal/frontend/desktop/darwin/Application.h1//
LOWv2/internal/frontend/desktop/darwin/WailsMenu.h1//
LOWv2/internal/frontend/desktop/darwin/WailsContext.m1//
LOWv2/internal/frontend/desktop/darwin/AppDelegate.m1//
LOWv2/internal/frontend/desktop/darwin/WailsAlert.h1//
LOWv2/internal/frontend/desktop/darwin/Application.m1//go:build darwin
LOWv2/internal/frontend/desktop/windows/window.go261 case w32.WM_NCCALCSIZE:
LOWv2/internal/frontend/desktop/windows/notifications.go121 })
LOW…/internal/frontend/desktop/windows/winc/w32/typedef.go21// BYTE byte
LOW…/internal/frontend/desktop/windows/winc/w32/typedef.go41// HDDEDATA HANDLE
LOW…/internal/frontend/desktop/windows/winc/w32/typedef.go61// HRESULT int32
LOW…/internal/frontend/desktop/windows/winc/w32/typedef.go81// LPARAM LONG_PTR
LOW…/internal/frontend/desktop/windows/winc/w32/typedef.go101// PBYTE *BYTE
LOW…/internal/frontend/desktop/windows/winc/w32/typedef.go121// PLONG *LONG
LOW…/internal/frontend/desktop/windows/winc/w32/typedef.go141// PUINT8 *UINT8
LOW…/internal/frontend/desktop/windows/winc/w32/typedef.go161// SSIZE_T LONG_PTR
LOWv2/internal/project/project.go61 // Key: GOOS/GOARCH - Executed at build level before/after a build of the specific platform and arch
LOWv2/internal/system/operatingsystem/os_darwin.go41 // return stdo.String(), stde.String(), err
LOW…ic-recovery-test/frontend/wailsjs/runtime/runtime.d.ts101// *Windows only*
LOW…es/dragdrop-test/frontend/wailsjs/runtime/runtime.d.ts101// *Windows only*
LOWv2/pkg/options/mac/preferences.go21 // A string used as the application name portion of the user agent string.
LOWv2/pkg/options/linux/linux.go21 // WindowIsTranslucent sets the window's background to transparent when enabled.
LOWv2/pkg/options/assetserver/options.go21 // If not defined, the result is the following in cases where the Handler would have been called:
LOWv2/pkg/options/windows/windows.go121
LOWv2/pkg/runtime/signal_other.go1//go:build !linux
LOWv2/pkg/runtime/signal_linux.go41//
LOWv2/pkg/menu/menuroles.go1// Package menu provides all the functions and structs related to menus in a Wails application.
LOWv2/pkg/menu/menuroles.go21 // SelectAllRole Role = "selectAll"
LOW…te/assets/common/frontend/wailsjs/runtime/runtime.d.ts101// *Windows only*
LOW…templates/svelte/frontend/wailsjs/runtime/runtime.d.ts101// *Windows only*
LOW…/templates/templates/svelte/frontend/src/vite-env.d.ts1/// <reference types="svelte" />
LOW…es/templates/lit/frontend/wailsjs/runtime/runtime.d.ts101// *Windows only*
LOW…plates/svelte-ts/frontend/wailsjs/runtime/runtime.d.ts101// *Windows only*
LOW…mplates/templates/svelte-ts/frontend/src/vite-env.d.ts1/// <reference types="svelte" />
LOW…templates/vue-ts/frontend/wailsjs/runtime/runtime.d.ts101// *Windows only*
LOW…es/templates/vue/frontend/wailsjs/runtime/runtime.d.ts101// *Windows only*
168 more matches not shown…
Self-Referential Comments10 hits · 30 pts
SeverityFileLineSnippet
MEDIUMv3/build_ios.sh42# Create the iOS app structure
MEDIUMv3/build_ios.sh125# Create a simplified main.go that uses local packages
MEDIUMv3/build_ios.sh160 # Create a placeholder executable
MEDIUMv3/build_ios.sh178# Create a simple launch script
MEDIUMv3/test-new-ios-build.sh7# Create a test project structure manually
MEDIUMv3/test-new-ios-build.sh70# Create a minimal main.go
MEDIUMv3/test-new-ios-build.sh81# Create a simple Taskfile that includes iOS
MEDIUMv3/tasks/release/test_simple.sh12# Create a test UNRELEASED_CHANGELOG.md
MEDIUMv3/internal/commands/build_assets/config.yml1# This file contains the configuration for this project.
MEDIUMv3/internal/commands/build_assets/windows/Taskfile.yml124 # Create the Microsoft WebView2 bootstrapper if it doesn't exist
Verbosity Indicators10 hits · 21 pts
SeverityFileLineSnippet
LOWv3/tasks/release/release_test.go828 // Step 1: Check that file has content
LOWv3/tasks/release/release_test.go837 // Step 2: Perform safe cleanup operation
LOWv3/tasks/release/release_test.go845 // Step 3: Verify file was reset to template
LOWv3/tasks/release/release_test.go856 // Step 4: Verify original content is gone
LOWv3/tasks/release/release_test.go861 // Step 5: Verify file no longer has content
LOWv3/internal/debounce/debounce_test.go104 // Step 1: schedule fn1 with a 2ms timer.
LOWv3/internal/debounce/debounce_test.go107 // Step 2: acquire the mutex BEFORE sleeping, so the timer goroutine will
LOWv3/internal/debounce/debounce_test.go111 // Step 3: wait long enough for the timer to have fired (it will block on Lock).
LOWv3/internal/debounce/debounce_test.go114 // Step 4: bump the generation by calling add directly while holding the lock.
LOWv3/internal/debounce/debounce_test.go119 // Step 5: release; the blocked timer goroutine now acquires the lock, checks
Hallucination Indicators2 hits · 20 pts
SeverityFileLineSnippet
CRITICALwebview2/scripts/generator/types/param.go156 return p.decl.decl.decl.library.enums.Contains(p.Type)
CRITICALv3/internal/assetserver/bundledassets/runtime.js1var Qe=Object.defineProperty,Tn=Object.defineProperties;var Mn=Object.getOwnPropertyDescriptors;var Ye=Object.getOwnProp
AI Slop Vocabulary7 hits · 18 pts
SeverityFileLineSnippet
MEDIUMv2/internal/frontend/runtime/ipc_websocket.js32`)}}}function lo(e){let t=Ur.get(e);t&&(U(e,"message",{value:t.message}),U(e,"stack",{value:t.stack}))}var vi=-7169;func
MEDIUMv3/tests/window-visibility-test/main.go288 HTML: "<html><head><title>About</title><style>body{font-family:Arial,sans-serif;padding:20px;background:#f0f0f0;col
MEDIUMv3/internal/generator/testcases/aliases/main.go30 Bar, Baz string `json:",omitempty"` // Definitely not Foo.
MEDIUMv3/pkg/updater/extract.go35// would be more robust but every shipping CDN preserves extensions, and a
MEDIUMv3/pkg/application/webview_window_windows.go58 // Window visibility management - robust fallback for issue #2861
MEDIUMv3/pkg/application/webview_window_windows.go2261 // The new robust show() method handles window visibility independently
MEDIUMv3/pkg/application/webview_window_linux.go463 // Linux implementation is robust - window shows immediately
Redundant / Tautological Comments9 hits · 14 pts
SeverityFileLineSnippet
LOWv3/build_ios.sh187# Check if Simulator is available
LOWv3/verify-ios-setup.sh8# Check if files exist
LOWv3/fix-darwin-ios-constraints.sh37 # Check if file has the build constraint
LOWv3/tasks/release/test_simple.sh61 # Check if release_notes.md was created
LOWv3/internal/commands/build_assets/linux/Taskfile.yml37 # Check if a C compiler is available (gcc or clang) — cross-platform via wails3 tool
LOWv3/internal/commands/build_assets/android/Taskfile.yml162 # Check if an emulator is already running
LOW.github/workflows/nightly-release-v3.yml104 # Check if current commit has a release tag
LOW.github/workflows/weekly-release-v2.yml76 # Check if there are actual content lines (not just blank lines or section headers)
LOW.github/workflows/weekly-release-v2.yml111 # Check if docs changed since last release (website/docs/ content, not just config)
Cross-Language Confusion (JS/TS)1 hit · 8 pts
SeverityFileLineSnippet
HIGH…nternal/runtime/desktop/@wailsio/runtime/src/system.ts100 * @return True if the operating system is Windows, otherwise false.
Fake / Example Data4 hits · 4 pts
SeverityFileLineSnippet
LOWv3/internal/setupwizard/frontend/src/App.tsx649 placeholder="John Doe"
LOWv3/examples/web-apis/indexeddb/frontend/index.html89 <input type="text" id="name" placeholder="John Doe">
LOWv3/pkg/application/bindings_bench_test.go253 Name: "John Doe",
LOWv3/pkg/application/bindings_bench_test.go326 data := []byte(`{"name":"John","age":30,"email":"john@example.com","address":"123 Main St"}`)
Decorative Section Separators1 hit · 3 pts
SeverityFileLineSnippet
MEDIUMv3/examples/dialogs/Taskfile.yml24# ------------------------------------------------------------------------------
Example Usage Blocks1 hit · 2 pts
SeverityFileLineSnippet
LOWv2/pkg/runtime/signal_linux.go49// Example usage: