Windows companion suite for OpenClaw
This report summarizes scanner evidence for openclaw/openclaw-windows-node, a C# project with 2,143 GitHub stars. SynthScan examined 490,276 lines of code across 1528 source files, recording 930 pattern matches distributed across 8 syntactic categories. The legacy adjusted pattern signal is 4.8 (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.
Can maintainers explain intent, assumptions, and trade-offs? 423 finding(s).
Are imports declared and package/API names verified? 68 finding(s).
Are wrappers, guards, and repeated structures necessary? 439 finding(s).
Which changes need focused human review? 930 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 930 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.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/OpenClaw.Tray.UITests/A2UIDashboardScaleTest.cs | 155 | // ── Top-level layout ────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/OpenClaw.Tray.UITests/A2UIDashboardScaleTest.cs | 161 | // ── Header row ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/OpenClaw.Tray.UITests/A2UIDashboardScaleTest.cs | 182 | // ── Tabs ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/OpenClaw.Tray.UITests/A2UIDashboardScaleTest.cs | 193 | // ── Tab 1: Overview ───────────────────────────────────────── | COMMENT |
| MEDIUM | tests/OpenClaw.Tray.UITests/A2UIDashboardScaleTest.cs | 229 | // ── Tab 2: Settings ───────────────────────────────────────── | COMMENT |
| MEDIUM | tests/OpenClaw.Tray.UITests/A2UIDashboardScaleTest.cs | 294 | // ── Tab 3: Help ───────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/OpenClaw.Tray.UITests/A2UIDashboardScaleTest.cs | 322 | // ── Footer row ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/OpenClaw.Tray.UITests/A2UIControlMatrixTests.cs | 27 | // ─── Containers ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/OpenClaw.Tray.UITests/A2UIControlMatrixTests.cs | 200 | // ─── Display ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/OpenClaw.Tray.UITests/A2UIControlMatrixTests.cs | 295 | // ─── Interactive ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/OpenClaw.Tray.UITests/A2UIControlMatrixTests.cs | 662 | // ─── helper ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/OpenClaw.Tray.UITests/A2UIRenderingTests.cs | 205 | // ───────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/OpenClaw.Tray.UITests/A2UIRenderingTests.cs | 207 | // ───────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/OpenClaw.Shared.Tests/CanonicalCmdCarrierTests.cs | 91 | // ── Pinned carrier reconstruction (D7) ──────────────────────────────────── | COMMENT |
| MEDIUM | …sts/OpenClaw.Shared.Tests/HttpUrlRiskEvaluatorTests.cs | 70 | // ── IsPublicAddress: IPv4 ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | …sts/OpenClaw.Shared.Tests/HttpUrlRiskEvaluatorTests.cs | 121 | // ── Evaluate: additional hostname / address forms ───────────────────────── | COMMENT |
| MEDIUM | tests/OpenClaw.Shared.Tests/ExecEnvSanitizerTests.cs | 14 | // ── null / empty input ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/OpenClaw.Shared.Tests/ExecEnvSanitizerTests.cs | 34 | // ── known-blocked names ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/OpenClaw.Shared.Tests/ExecEnvSanitizerTests.cs | 90 | // ── LD_ / DYLD_ prefix blocking ────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/OpenClaw.Shared.Tests/ExecEnvSanitizerTests.cs | 103 | // ── interpreter/tool code-injection variables ───────────────────────────── | COMMENT |
| MEDIUM | tests/OpenClaw.Shared.Tests/ExecEnvSanitizerTests.cs | 147 | // ── invalid / malformed names ───────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/OpenClaw.Shared.Tests/ExecEnvSanitizerTests.cs | 170 | // ── allowed names ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/OpenClaw.Shared.Tests/ExecEnvSanitizerTests.cs | 185 | // ── Sanitize: mixed allowed + blocked ──────────────────────────────────── | COMMENT |
| MEDIUM | tests/OpenClaw.Shared.Tests/ExecEnvSanitizerTests.cs | 254 | // ── case-insensitive lookup in Sanitize ─────────────────────────────────── | COMMENT |
| MEDIUM | tests/OpenClaw.Shared.Tests/ExecEnvSanitizerTests.cs | 272 | // ── LD_ prefix in Sanitize ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/OpenClaw.Shared.Tests/DeepLinkParserTests.cs | 9 | // ─── ParseDeepLink ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/OpenClaw.Shared.Tests/DeepLinkParserTests.cs | 126 | // ─── GetQueryParam ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/OpenClaw.Shared.Tests/TokenSanitizerTests.cs | 8 | // ── null / empty input ───────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/OpenClaw.Shared.Tests/TokenSanitizerTests.cs | 29 | // ── Authorization: Bearer ────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/OpenClaw.Shared.Tests/TokenSanitizerTests.cs | 71 | // ── JSON secret fields ───────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/OpenClaw.Shared.Tests/TokenSanitizerTests.cs | 120 | // ── Long base64-url token shape ──────────────────────────────────────── | COMMENT |
| MEDIUM | tests/OpenClaw.Shared.Tests/TokenSanitizerTests.cs | 219 | // ── combinations ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/OpenClaw.Shared.Tests/TokenSanitizerTests.cs | 547 | // ── URL tail redaction ────────────────────────────────────────────────── | STRING |
| MEDIUM | tests/OpenClaw.Shared.Tests/TokenSanitizerTests.cs | 618 | // ── URL log-injection defense ─────────────────────────────────────────── | STRING |
| MEDIUM | …enClaw.Shared.Tests/ExecEnvInvocationUnwrapperTests.cs | 14 | // ── helpers ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …enClaw.Shared.Tests/ExecEnvInvocationUnwrapperTests.cs | 18 | // ── Unwrap: basic passthrough ───────────────────────────────────────────── | COMMENT |
| MEDIUM | …enClaw.Shared.Tests/ExecEnvInvocationUnwrapperTests.cs | 54 | // ── Unwrap: flags (FlagOnly — no value) ─────────────────────────────────── | COMMENT |
| MEDIUM | …enClaw.Shared.Tests/ExecEnvInvocationUnwrapperTests.cs | 68 | // ── Unwrap: flags with values ───────────────────────────────────────────── | COMMENT |
| MEDIUM | …enClaw.Shared.Tests/ExecEnvInvocationUnwrapperTests.cs | 90 | // ── Unwrap: terminator handling ─────────────────────────────────────────── | COMMENT |
| MEDIUM | …enClaw.Shared.Tests/ExecEnvInvocationUnwrapperTests.cs | 108 | // ── Unwrap: unknown flag → fail-closed ──────────────────────────────────── | COMMENT |
| MEDIUM | …enClaw.Shared.Tests/ExecEnvInvocationUnwrapperTests.cs | 117 | // ── HasModifiers ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …enClaw.Shared.Tests/ExecEnvInvocationUnwrapperTests.cs | 143 | // ── UnwrapForResolution ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …penClaw.Shared.Tests/ExecReusableCommandBinderTests.cs | 747 | // ── Multi-element carrier tails ─────────────────────────────────────────── | COMMENT |
| MEDIUM | …penClaw.Shared.Tests/ExecReusableCommandBinderTests.cs | 898 | // ── cmd delimiters the tokenizer does not model ─────────────────────────── | COMMENT |
| MEDIUM | …penClaw.Shared.Tests/ExecReusableCommandBinderTests.cs | 913 | // ── PATHEXT targets that are not directly-executable images ─────────────── | COMMENT |
| MEDIUM | …penClaw.Shared.Tests/ExecReusableCommandBinderTests.cs | 962 | // ── Durable argument binding ────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/OpenClaw.Shared.Tests/WslShellQuotingTests.cs | 18 | // ── EscapePosixSingleQuoteInner (escape only, no wrapping) ────── | COMMENT |
| MEDIUM | tests/OpenClaw.Shared.Tests/WslShellQuotingTests.cs | 70 | // ── QuotePosixSingleQuote (fully wrapped token) ───────────────── | COMMENT |
| MEDIUM | tests/OpenClaw.Shared.Tests/WslShellQuotingTests.cs | 164 | // ── Cross-cutting invariants ──────────────────────────────────── | COMMENT |
| MEDIUM | tests/OpenClaw.Shared.Tests/WslShellQuotingTests.cs | 205 | // ── Null handling ─────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/OpenClaw.Shared.Tests/ExecApprovalsStoreTests.cs | 223 | // ── Unsupported version → default-deny + warning ───────────────────────── | COMMENT |
| MEDIUM | tests/OpenClaw.Shared.Tests/ExecApprovalsStoreTests.cs | 364 | // ── Allowlist resolution ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/OpenClaw.Shared.Tests/ExecApprovalsStoreTests.cs | 628 | // ── Atomic write ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/OpenClaw.Shared.Tests/ExecApprovalsStoreTests.cs | 1061 | // ── Write path: RecordAllowlistUseAsync ────────────────────────────────── | COMMENT |
| MEDIUM | tests/OpenClaw.Shared.Tests/ExecApprovalsStoreTests.cs | 83 | // ── Prompt-on-miss when file absent ────────────────────────────────────── | STRING |
| MEDIUM | tests/OpenClaw.Shared.Tests/ExecApprovalsStoreTests.cs | 199 | // ── Malformed JSON → default-deny + warning ─────────────────────────────── | STRING |
| MEDIUM | tests/OpenClaw.Shared.Tests/ExecApprovalsStoreTests.cs | 260 | // ── Deserialization: enum values ────────────────────────────────────────── | STRING |
| MEDIUM | tests/OpenClaw.Shared.Tests/ExecApprovalsStoreTests.cs | 297 | // ── Cascade resolution ──────────────────────────────────────────────────── | STRING |
| MEDIUM | tests/OpenClaw.Shared.Tests/ExecApprovalsStoreTests.cs | 449 | // ── Normalization: default→main migration ───────────────────────────────── | STRING |
| MEDIUM | tests/OpenClaw.Shared.Tests/ExecApprovalsStoreTests.cs | 504 | // ── Normalization: socket ───────────────────────────────────────────────── | STRING |
| 379 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | …ts/OpenClaw.Tray.UITests/OnboardingWindowsFlowTests.cs | 1196 | Assert.Same(control, Microsoft.UI.Xaml.Input.FocusManager.GetFocusedElement(control.XamlRoot)); | CODE |
| CRITICAL | tests/OpenClaw.Tray.UITests/OnboardingAiPageTests.cs | 314 | ReferenceEquals(Microsoft.UI.Xaml.Input.FocusManager.GetFocusedElement(page.XamlRoot), input) && | CODE |
| CRITICAL | tests/OpenClaw.Tray.UITests/A2UIControlMatrixTests.cs | 340 | harness.Router.Push(DataUpdate("s", ("subscribed", System.Text.Json.Nodes.JsonValue.Create(true)))); | CODE |
| CRITICAL | tests/OpenClaw.Tray.UITests/A2UIControlMatrixTests.cs | 438 | ("pwd", System.Text.Json.Nodes.JsonValue.Create("s3cret-value")), | CODE |
| CRITICAL | tests/OpenClaw.Tray.UITests/A2UIControlMatrixTests.cs | 439 | ("note", System.Text.Json.Nodes.JsonValue.Create("visible")))); | CODE |
| CRITICAL | tests/OpenClaw.Tray.UITests/A2UIControlMatrixTests.cs | 643 | h.Router.Push(DataUpdate("s", ("volume", System.Text.Json.Nodes.JsonValue.Create(25.0)))); | CODE |
| CRITICAL | tests/OpenClaw.Tray.UITests/A2UIRenderingTests.cs | 142 | var peer = Microsoft.UI.Xaml.Automation.Peers.FrameworkElementAutomationPeer.CreatePeerForElement(btn); | CODE |
| CRITICAL | tests/OpenClaw.Tray.UITests/OnboardingNativeProof.cs | 358 | Assert.Same(card, Microsoft.UI.Xaml.Input.FocusManager.GetFocusedElement(card.XamlRoot)); | STRING |
| CRITICAL | tests/OpenClaw.Tray.UITests/OnboardingNativeProof.cs | 375 | var peer = new Microsoft.UI.Xaml.Automation.Peers.ButtonAutomationPeer(button); | STRING |
| CRITICAL | …sts/OpenClaw.Tray.UITests/AiReadyPageRenderingTests.cs | 78 | Microsoft.UI.Xaml.Automation.AutomationProperties.GetName(choices.Children[0])); | CODE |
| CRITICAL | …s/OpenClaw.Tray.UITests/ReactorChatLayoutProofTests.cs | 152 | var reference = (Border)Microsoft.UI.Xaml.Markup.XamlReader.Load( | CODE |
| CRITICAL | …s/OpenClaw.Tray.UITests/ReactorChatLayoutProofTests.cs | 293 | var reference = (Border)Microsoft.UI.Xaml.Markup.XamlReader.Load( | CODE |
| CRITICAL | …s/OpenClaw.Tray.UITests/ReactorChatLayoutProofTests.cs | 1745 | surface = (Border)Microsoft.UI.Xaml.Markup.XamlReader.Load( | CODE |
| CRITICAL | …s/OpenClaw.Tray.UITests/ReactorChatLayoutProofTests.cs | 1936 | var labelSlot = Microsoft.UI.Xaml.Controls.Primitives.LayoutInformation.GetLayoutSlot(label); | CODE |
| CRITICAL | …ts/OpenClaw.Shared.Tests/OpenClawGatewayClientTests.cs | 1550 | var payload = System.Text.Json.Nodes.JsonNode.Parse(""" | CODE |
| CRITICAL | …OpenClaw.Tray.Tests/SetupDashboardHandoffStoreTests.cs | 26 | var json = System.Text.Json.Nodes.JsonNode.Parse(File.ReadAllText(path))!; | CODE |
| CRITICAL | …OpenClaw.Tray.Tests/SetupDashboardHandoffStoreTests.cs | 300 | var json = System.Text.Json.Nodes.JsonNode.Parse(File.ReadAllText(path))!.AsObject(); | CODE |
| CRITICAL | src/OpenClaw.Tray.WinUI/Chat/ReactorChatComposer.cs | 205 | Microsoft.UI.Xaml.Automation.AutomationProperties.SetItemStatus(button, itemStatus); | CODE |
| CRITICAL | src/OpenClaw.Tray.WinUI/Chat/ReactorChatComposer.cs | 257 | Microsoft.UI.Xaml.Automation.AutomationProperties.SetItemStatus(button, itemStatus); | CODE |
| CRITICAL | src/OpenClaw.Tray.WinUI/Chat/ReactorChatComposer.cs | 488 | Microsoft.UI.Xaml.Automation.AutomationProperties.SetItemStatus(control, sessionItemStatus); | CODE |
| CRITICAL | src/OpenClaw.Tray.WinUI/Chat/ReactorChatComposer.cs | 1080 | Microsoft.UI.Xaml.Automation.AutomationProperties.SetAutomationId( | CODE |
| CRITICAL | src/OpenClaw.Tray.WinUI/Chat/ReactorChatComposer.cs | 1199 | Microsoft.UI.Xaml.Automation.AutomationProperties.SetAccessibilityView( | CODE |
| CRITICAL | src/OpenClaw.Tray.WinUI/Chat/ReactorChatComposer.cs | 1228 | Microsoft.UI.Xaml.Automation.AutomationProperties.SetAccessibilityView( | CODE |
| CRITICAL | …ray.WinUI/A2UI/Rendering/Renderers/DisplayRenderers.cs | 259 | if (string.IsNullOrEmpty(Microsoft.UI.Xaml.Automation.AutomationProperties.GetName(fontIcon))) | CODE |
| CRITICAL | …ray.WinUI/A2UI/Rendering/Renderers/DisplayRenderers.cs | 261 | Microsoft.UI.Xaml.Automation.AutomationProperties.SetAccessibilityView( | CODE |
| CRITICAL | …WinUI/A2UI/Rendering/Renderers/InteractiveRenderers.cs | 49 | if (string.IsNullOrEmpty(Microsoft.UI.Xaml.Automation.AutomationProperties.GetName(btn))) | CODE |
| CRITICAL | src/OpenClaw.Tray.WinUI/Dialogs/ExecApprovalDialog.cs | 182 | Microsoft.UI.Xaml.Automation.AutomationProperties.SetAutomationId(_denyButton, "ExecApprovalDenyAction"); | CODE |
| CRITICAL | src/OpenClaw.Tray.WinUI/Dialogs/ExecApprovalDialog.cs | 188 | Microsoft.UI.Xaml.Automation.AutomationProperties.SetAutomationId(_allowAlwaysButton, "ExecApprovalAllowAlwaysAc | CODE |
| CRITICAL | src/OpenClaw.Tray.WinUI/Dialogs/ExecApprovalDialog.cs | 203 | Microsoft.UI.Xaml.Automation.AutomationProperties.SetAutomationId(_allowOnceButton, "ExecApprovalAllowOnceAction | CODE |
| CRITICAL⚡ | …c/OpenClaw.Tray.WinUI/Dialogs/PairingApprovalDialog.cs | 153 | Microsoft.UI.Xaml.Automation.AutomationProperties.SetAutomationId(_rejectButton, "PairingRejectAction"); | CODE |
| CRITICAL⚡ | …c/OpenClaw.Tray.WinUI/Dialogs/PairingApprovalDialog.cs | 159 | Microsoft.UI.Xaml.Automation.AutomationProperties.SetAutomationId(_laterButton, "PairingLaterAction"); | CODE |
| CRITICAL⚡ | …c/OpenClaw.Tray.WinUI/Dialogs/PairingApprovalDialog.cs | 169 | Microsoft.UI.Xaml.Automation.AutomationProperties.SetAutomationId(_approveButton, "PairingApproveAction"); | CODE |
| CRITICAL | src/OpenClaw.Tray.WinUI/Windows/ChatWindow.xaml.cs | 665 | foreach (var popup in Microsoft.UI.Xaml.Media.VisualTreeHelper.GetOpenPopupsForXamlRoot(d.XamlRo | CODE |
| CRITICAL | src/OpenClaw.Tray.WinUI/Windows/ChatWindow.xaml.cs | 793 | var count = Microsoft.UI.Xaml.Media.VisualTreeHelper.GetChildrenCount(root); | CODE |
| CRITICAL | src/OpenClaw.Tray.WinUI/Windows/ChatWindow.xaml.cs | 796 | var child = Microsoft.UI.Xaml.Media.VisualTreeHelper.GetChild(root, i); | CODE |
| CRITICAL | src/OpenClaw.Tray.WinUI/Pages/ConnectionPage.xaml.cs | 487 | Microsoft.UI.Xaml.Automation.AutomationProperties.SetName( | CODE |
| CRITICAL | src/OpenClaw.Tray.WinUI/Pages/ConnectionPage.xaml.cs | 512 | Microsoft.UI.Xaml.Automation.AutomationProperties.SetName( | CODE |
| CRITICAL | src/OpenClaw.Tray.WinUI/Pages/ConnectionPage.xaml.cs | 1707 | Microsoft.UI.Xaml.Automation.AutomationProperties.SetName(stack, label); | CODE |
| CRITICAL | src/OpenClaw.Tray.WinUI/Pages/ConnectionPage.xaml.cs | 1708 | Microsoft.UI.Xaml.Automation.AutomationProperties.SetLiveSetting( | CODE |
| CRITICAL | src/OpenClaw.Tray.WinUI/Pages/ConnectionPage.xaml.cs | 1815 | Microsoft.UI.Xaml.Automation.AutomationProperties.SetAutomationId( | CODE |
| CRITICAL | src/OpenClaw.Tray.WinUI/Pages/ConnectionPage.xaml.cs | 1838 | Microsoft.UI.Xaml.Automation.AutomationProperties.SetName(overflowBtn, | CODE |
| CRITICAL | src/OpenClaw.Tray.WinUI/Pages/ConnectionPage.xaml.cs | 1890 | Microsoft.UI.Xaml.Automation.AutomationProperties.SetName(card, row.DisplayName); | CODE |
| CRITICAL | src/OpenClaw.Tray.WinUI/Pages/ConnectionPage.xaml.cs | 3552 | Microsoft.UI.Xaml.Automation.AutomationProperties.SetName(btn, automationName); | CODE |
| CRITICAL | src/OpenClaw.Tray.WinUI/Pages/ConnectionPage.xaml.cs | 3553 | Microsoft.UI.Xaml.Automation.AutomationProperties.SetAutomationId(btn, automationId); | CODE |
| CRITICAL | src/OpenClaw.Tray.WinUI/Pages/ChatPage.xaml.cs | 437 | Microsoft.UI.Xaml.Input.FocusManager.FindFirstFocusableElement(ChatHost) is Control control) | CODE |
| CRITICAL | src/OpenClaw.Tray.WinUI/Pages/ChatPage.xaml.cs | 1398 | foreach (var popup in Microsoft.UI.Xaml.Media.VisualTreeHelper.GetOpenPopupsForXamlRoot(d.XamlRo | CODE |
| CRITICAL | src/OpenClaw.Tray.WinUI/Pages/CronPage.xaml.cs | 1219 | parent = Microsoft.UI.Xaml.Media.VisualTreeHelper.GetParent(parent) as FrameworkElement; | CODE |
| CRITICAL | src/OpenClaw.Tray.WinUI/Pages/CronPage.xaml.cs | 1626 | var count = Microsoft.UI.Xaml.Media.VisualTreeHelper.GetChildrenCount(parent); | CODE |
| CRITICAL | src/OpenClaw.Tray.WinUI/Pages/CronPage.xaml.cs | 1629 | var child = Microsoft.UI.Xaml.Media.VisualTreeHelper.GetChild(parent, i); | CODE |
| CRITICAL | src/OpenClaw.Tray.WinUI/Pages/CronPage.xaml.cs | 1798 | int count = Microsoft.UI.Xaml.Media.VisualTreeHelper.GetChildrenCount(parent); | CODE |
| CRITICAL | src/OpenClaw.Tray.WinUI/Pages/CronPage.xaml.cs | 1801 | var child = Microsoft.UI.Xaml.Media.VisualTreeHelper.GetChild(parent, i); | CODE |
| CRITICAL | src/OpenClaw.Tray.WinUI/Pages/CronPage.xaml.cs | 2143 | int count = Microsoft.UI.Xaml.Media.VisualTreeHelper.GetChildrenCount(parent); | CODE |
| CRITICAL | src/OpenClaw.Tray.WinUI/Pages/CronPage.xaml.cs | 2146 | var child = Microsoft.UI.Xaml.Media.VisualTreeHelper.GetChild(parent, i); | CODE |
| CRITICAL | src/OpenClaw.Tray.WinUI/Pages/PermissionsPage.xaml.cs | 167 | Microsoft.UI.Xaml.Automation.AutomationProperties.SetName(toggle, label); | CODE |
| CRITICAL | src/OpenClaw.Tray.WinUI/Pages/PermissionsPage.xaml.cs | 464 | Microsoft.UI.Xaml.Automation.AutomationProperties.SetHelpText( | CODE |
| CRITICAL | src/OpenClaw.Tray.WinUI/Pages/PermissionsPage.xaml.cs | 483 | Microsoft.UI.Xaml.Automation.AutomationProperties.SetHelpText( | CODE |
| CRITICAL | src/OpenClaw.Tray.WinUI/Pages/ChannelsPage.xaml.cs | 680 | Microsoft.UI.Xaml.Automation.AutomationProperties.SetName(expander, record.Label); | CODE |
| CRITICAL | src/OpenClaw.Tray.WinUI/Pages/ChannelsPage.xaml.cs | 843 | Microsoft.UI.Xaml.Automation.AutomationProperties.SetName(btn, label); | CODE |
| CRITICAL | src/OpenClaw.Tray.WinUI/Helpers/VisualTestCapture.cs | 138 | var backdrop = (Border)Microsoft.UI.Xaml.Markup.XamlReader.Load( | CODE |
| CRITICAL | src/OpenClaw.Tray.WinUI/Services/TrayMenuRenderer.cs | 101 | Source = new Microsoft.UI.Xaml.Media.Imaging.BitmapImage( | CODE |
| 3 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …sts/OpenClaw.Tray.UITests/MarkdownRendererListTests.cs | 1 | using OpenClawTray.Chat.Markdown; | COMMENT |
| LOW | …sts/OpenClaw.Tray.UITests/MarkdownRendererListTests.cs | 21 | /// a finite measure width, so wrap works correctly. | COMMENT |
| LOW | …OpenClaw.Tray.UITests/MarkdownRendererCoalesceTests.cs | 1 | using OpenClawTray.Chat.Markdown; | COMMENT |
| LOW | tests/OpenClaw.Tray.UITests/UIThreadFixture.cs | 21 | /// - Application.Start blocks the calling thread (it pumps the message loop), | COMMENT |
| LOW | tests/OpenClaw.Tray.UITests/A2UIControlMatrixTests.cs | 661 | COMMENT | |
| LOW | …penClaw.Tray.UITests/ThemeResolveColorFallbackTests.cs | 1 | using System.Threading.Tasks; | COMMENT |
| LOW | tests/OpenClaw.Tray.UITests/A2UI.cs | 1 | using System.Collections.Generic; | COMMENT |
| LOW | tests/OpenClaw.TestSupport/EnvironmentScope.cs | 1 | namespace OpenClaw.TestSupport; | COMMENT |
| LOW | …Claw.SetupEngine.Tests/KeepaliveProcessManagerTests.cs | 1 | using System.Text.Json; | COMMENT |
| LOW | tests/OpenClaw.WinNode.Cli.Tests/RunAsyncTests.cs | 321 | // The server received the request → env-based port resolution worked. | COMMENT |
| LOW | tests/OpenClaw.WinNode.Cli.Tests/SkillMdDriftTests.cs | 1 | using System.Text.RegularExpressions; | COMMENT |
| LOW | tests/OpenClaw.Shared.Tests/ChannelsStatusTests.cs | 321 | // Configured Signal exposes CanLogout — it's a QR channel and Logout | COMMENT |
| LOW | …Claw.Shared.Tests/GatewayProtocolLiveRoundTripTests.cs | 21 | /// the parsers against crafted <see cref="JsonElement"/> payloads), these tests | COMMENT |
| LOW | …Claw.Shared.Tests/GatewayProtocolLiveRoundTripTests.cs | 681 | /// <summary>Sends a raw server frame immediately after the WebSocket is | COMMENT |
| LOW | …ts/OpenClaw.Shared.Tests/IdentityFileMigrationTests.cs | 1 | using OpenClaw.Shared; | COMMENT |
| LOW | …OpenClaw.Shared.Tests/ExecApprovalsCoordinatorTests.cs | 21 | private readonly string _dir; | COMMENT |
| LOW | tests/OpenClaw.Shared.Tests/Markdown/Md4cParserTests.cs | 1 | using System.Collections.Generic; | COMMENT |
| LOW | …penClaw.Shared.Tests/Markdown/MdInlineEqualityTests.cs | 1 | using System; | COMMENT |
| LOW | …penClaw.Shared.Tests/Markdown/MdInlineEqualityTests.cs | 21 | /// members (primitives, <c>string</c>, enums) — record-generated equality | COMMENT |
| LOW | …w.Shared.Tests/Mxc/MxcCommandRunnerIntegrationTests.cs | 121 | COMMENT | |
| LOW | …law.Shared.Tests/Protocol/GatewayProtocolDriftTests.cs | 21 | /// <c>Protocol/gateway-protocol-snapshot.json</c> and cross-checks it against what | COMMENT |
| LOW | …law.Shared.Tests/Protocol/GatewayProtocolDriftTests.cs | 161 | /// <c>used</c> request method, the set of wire keys the client actually | COMMENT |
| LOW | …law.Shared.Tests/Protocol/GatewayProtocolDriftTests.cs | 401 | }) | COMMENT |
| LOW | …law.Shared.Tests/Protocol/GatewayProtocolDriftTests.cs | 521 | /// catches a client-side wire-key rename even when the old name survives as a | COMMENT |
| LOW | …law.Shared.Tests/Protocol/GatewayProtocolDriftTests.cs | 581 | if (start < text.Length) | COMMENT |
| LOW | …ests/Architecture/SetupStepsShellEscapeClosureTests.cs | 1 | using System; | COMMENT |
| LOW | …aw.Tray.IntegrationTests/A2UICanvasIntegrationTests.cs | 1 | using System; | COMMENT |
| LOW | tests/OpenClaw.Tray.IntegrationTests/TrayAppFixture.cs | 61 | public async Task InitializeAsync() | COMMENT |
| LOW | tests/OpenClaw.Tray.IntegrationTests/TrayAppFixture.cs | 161 | COMMENT | |
| LOW | …nClaw.Tray.Tests/ChatComposerFactoryDiFailFastTests.cs | 1 | using System.IO; | COMMENT |
| LOW | …ts/OpenClaw.Tray.Tests/AutoStartReconciliationTests.cs | 1 | using OpenClawTray.Services; | COMMENT |
| LOW | tests/OpenClaw.Tray.Tests/ChatComposerViewModelTests.cs | 541 | [Fact] | COMMENT |
| LOW | tests/OpenClaw.Tray.Tests/ChatComposerViewModelTests.cs | 681 | public void StressDisposeAcrossThreads_OffThreadMutationsNeverApplyOrNotifyAfterDisposalWithoutRelyingOnBlockingEven | COMMENT |
| LOW | …sts/OpenClaw.Tray.Tests/LocalAiSetupUxContractTests.cs | 281 | /// merely busy GPU (EligibleButBusy) is not reconciled away: CanInstall covers that case | COMMENT |
| LOW | …ts/OpenClaw.Tray.Tests/DiagnosticsPageContractTests.cs | 121 | { | COMMENT |
| LOW | …ts/OpenClaw.Tray.Tests/DiagnosticsPageContractTests.cs | 141 | @"OnOpenEventTimeline[\s\S]{0,200}IAppCommands[\s\S]{0,80}ShowConnectionStatus"), | COMMENT |
| LOW | …penClaw.Tray.Tests/NodeInvokeActivityFormatterTests.cs | 1 | using OpenClawTray.Services; | COMMENT |
| LOW | …sts/OpenClaw.Tray.Tests/LocalizationValidationTests.cs | 61 | // spelling in every locale so it matches diagnostics and process names. | COMMENT |
| LOW | …sts/OpenClaw.Tray.Tests/LocalizationValidationTests.cs | 241 | // Same precedent as the PermissionsPage / InstancesPage / ConfigPage | COMMENT |
| LOW | tests/OpenClaw.Tray.Tests/ChatTimelineReducerTests.cs | 61 | [Fact] | COMMENT |
| LOW | tests/OpenClaw.Tray.Tests/ChatTimelineReducerTests.cs | 2061 | public void IntraTurnLateReconcile_AfterTurnEnd_DoesNotPrependPriorSegments() | COMMENT |
| LOW | tests/OpenClaw.E2ETests/Setup/E2ESetupFixture.cs | 21 | /// TestResults/E2E directory so CI can upload them as artifacts for debugging. | COMMENT |
| LOW | …sts/OpenClaw.E2ETests/Setup/MxcSetupAndConnectTests.cs | 21 | // "Access is denied." with exit 1. Observed on hosts where the AppContainer cannot | COMMENT |
| LOW | tests/OpenClaw.Connection.Tests/GatewayRecordBuilder.cs | 1 | using OpenClaw.Connection; | COMMENT |
| LOW | src/OpenClaw.Tray.WinUI/App.xaml.cs | 61 | private ILocalAiRuntime? _localAiRuntime; | COMMENT |
| LOW | src/OpenClaw.Tray.WinUI/App.xaml.cs | 181 | _sshTunnelRecoveryBudget.Reset(); | COMMENT |
| LOW | src/OpenClaw.Tray.WinUI/App.xaml.cs | 561 | // Single instance check - keep mutex alive for app lifetime. | COMMENT |
| LOW | src/OpenClaw.Tray.WinUI/App.xaml.cs | 821 | var credentialResolver = new CredentialResolver(DeviceIdentityFileReader.Instance); | COMMENT |
| LOW | src/OpenClaw.Tray.WinUI/App.xaml.cs | 941 | // happens with empty caps and the gateway records this node as having no | COMMENT |
| LOW | src/OpenClaw.Tray.WinUI/App.xaml.cs | 3061 | private void OnGatewayNotificationReceived(object? sender, OpenClawNotification notification) | COMMENT |
| LOW | src/OpenClaw.Tray.WinUI/AppIdentity.cs | 1 | namespace OpenClawTray; | COMMENT |
| LOW | src/OpenClaw.Tray.WinUI/AppIdentity.cs | 61 | COMMENT | |
| LOW | src/OpenClaw.Tray.WinUI/Chat/ChatComposerInputs.cs | 1 | using OpenClaw.Chat; | COMMENT |
| LOW | src/OpenClaw.Tray.WinUI/Chat/ChatContentFormatting.cs | 61 | return string.Concat(text.AsSpan(0, lo), marker.AsSpan()); | COMMENT |
| LOW | src/OpenClaw.Tray.WinUI/Chat/ChatContentFormatting.cs | 181 | h *= 16777619u; | COMMENT |
| LOW | src/OpenClaw.Tray.WinUI/Chat/IChatComposerFactory.cs | 1 | using OpenClaw.Chat; | COMMENT |
| LOW | …law.Tray.WinUI/Chat/ChatComposerControllerClipboard.cs | 21 | /// back to its caller before any WinRT clipboard/decode work starts, so a | COMMENT |
| LOW | src/OpenClaw.Tray.WinUI/Chat/ChatComposerSession.cs | 1 | using System; | COMMENT |
| LOW | src/OpenClaw.Tray.WinUI/Chat/IChatGatewayBridge.cs | 21 | COMMENT | |
| LOW | …c/OpenClaw.Tray.WinUI/Chat/OpenClawChatDataProvider.cs | 41 | /// <see cref="OpenClawGatewayClient"/>) into the | COMMENT |
| 319 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | …OpenClaw.Shared.Tests/ExecApprovalsCoordinatorTests.cs | 1803 | // Step 1: AllowAlways → entry persisted (no lastUsed* yet). | COMMENT |
| LOW⚡ | …OpenClaw.Shared.Tests/ExecApprovalsCoordinatorTests.cs | 1811 | // Step 2: Same command again → allowlist hit, lastUsed* recorded. | COMMENT |
| LOW | .agents/skills/hanselman-code-review/SKILL.md | 36 | ### Step 1: Identify the Scope | COMMENT |
| LOW | .agents/skills/hanselman-code-review/SKILL.md | 52 | ### Step 2: Launch Two Parallel Reviews | COMMENT |
| LOW | .agents/skills/hanselman-code-review/SKILL.md | 88 | ### Step 3: Wait for Both to Complete | COMMENT |
| LOW | .agents/skills/hanselman-code-review/SKILL.md | 94 | ### Step 4: Cross-Reference and Build the Consensus Table | COMMENT |
| LOW | .agents/skills/hanselman-code-review/SKILL.md | 126 | ### Step 5: Present the Results | COMMENT |
| LOW | .agents/skills/hanselman-code-review/SKILL.md | 142 | ### Step 6: Act on Findings | COMMENT |
| LOW⚡ | …nClaw.Shared/ExecApprovals/ExecApprovalsCoordinator.cs | 55 | // Step 1: validate | COMMENT |
| LOW⚡ | …nClaw.Shared/ExecApprovals/ExecApprovalsCoordinator.cs | 61 | // Step 2: normalize (unwrap shell wrappers, resolve executables, build canonical identity) | COMMENT |
| LOW⚡ | …nClaw.Shared/ExecApprovals/ExecApprovalsCoordinator.cs | 68 | // Step 3: buildContext | COMMENT |
| LOW | …nClaw.Shared/ExecApprovals/ExecApprovalsCoordinator.cs | 100 | // Step 4: first pass (approvalDecision always null — pass2 decides based on user response) | COMMENT |
| LOW | …nClaw.Shared/ExecApprovals/ExecApprovalsCoordinator.cs | 231 | // Step 7: second pass — must never return RequiresPrompt | COMMENT |
| LOW | …nClaw.Shared/ExecApprovals/ExecApprovalsCoordinator.cs | 262 | // Step 8: build payload before any store writes — a fail-closed payload result | COMMENT |
| LOW⚡ | …nClaw.Shared/ExecApprovals/ExecApprovalsCoordinator.cs | 312 | // Step 9: side effects — only reached when the payload is valid. | COMMENT |
| LOW⚡ | …nClaw.Shared/ExecApprovals/ExecApprovalsCoordinator.cs | 322 | // Step 10: final allow log | COMMENT |
| LOW⚡ | …nClaw.Shared/ExecApprovals/ExecApprovalsCoordinator.cs | 327 | // Step 10: return Allow | COMMENT |
| LOW⚡ | …OpenClaw.Shared/ExecApprovals/ExecApprovalEvaluator.cs | 19 | // Step 1: security=deny is an absolute override. No user approval can bypass it. | COMMENT |
| LOW⚡ | …OpenClaw.Shared/ExecApprovals/ExecApprovalEvaluator.cs | 23 | // Step 2: explicit user denial. | COMMENT |
| LOW⚡ | …OpenClaw.Shared/ExecApprovals/ExecApprovalEvaluator.cs | 27 | // Step 3: prompt required — give the user a chance before checking for an allowlist miss. | COMMENT |
| LOW⚡ | …OpenClaw.Shared/ExecApprovals/ExecApprovalEvaluator.cs | 32 | // Step 4: allowlist miss — security=allowlist, ask=off, no match, no user approval. | COMMENT |
| LOW | …OpenClaw.Shared/ExecApprovals/ExecApprovalEvaluator.cs | 47 | // Step 5: allow. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | …OpenClaw.Shared.Tests/ExecApprovalsCoordinatorTests.cs | 1803 | // Step 1: AllowAlways → entry persisted (no lastUsed* yet). | COMMENT |
| LOW⚡ | …OpenClaw.Shared.Tests/ExecApprovalsCoordinatorTests.cs | 1811 | // Step 2: Same command again → allowlist hit, lastUsed* recorded. | COMMENT |
| LOW⚡ | …nClaw.Shared/ExecApprovals/ExecApprovalsCoordinator.cs | 55 | // Step 1: validate | COMMENT |
| LOW⚡ | …nClaw.Shared/ExecApprovals/ExecApprovalsCoordinator.cs | 61 | // Step 2: normalize (unwrap shell wrappers, resolve executables, build canonical identity) | COMMENT |
| LOW⚡ | …nClaw.Shared/ExecApprovals/ExecApprovalsCoordinator.cs | 68 | // Step 3: buildContext | COMMENT |
| LOW | …nClaw.Shared/ExecApprovals/ExecApprovalsCoordinator.cs | 100 | // Step 4: first pass (approvalDecision always null — pass2 decides based on user response) | COMMENT |
| LOW | …nClaw.Shared/ExecApprovals/ExecApprovalsCoordinator.cs | 231 | // Step 7: second pass — must never return RequiresPrompt | COMMENT |
| LOW | …nClaw.Shared/ExecApprovals/ExecApprovalsCoordinator.cs | 262 | // Step 8: build payload before any store writes — a fail-closed payload result | COMMENT |
| LOW⚡ | …nClaw.Shared/ExecApprovals/ExecApprovalsCoordinator.cs | 312 | // Step 9: side effects — only reached when the payload is valid. | COMMENT |
| LOW⚡ | …nClaw.Shared/ExecApprovals/ExecApprovalsCoordinator.cs | 322 | // Step 10: final allow log | COMMENT |
| LOW⚡ | …nClaw.Shared/ExecApprovals/ExecApprovalsCoordinator.cs | 327 | // Step 10: return Allow | COMMENT |
| LOW⚡ | …OpenClaw.Shared/ExecApprovals/ExecApprovalEvaluator.cs | 19 | // Step 1: security=deny is an absolute override. No user approval can bypass it. | COMMENT |
| LOW⚡ | …OpenClaw.Shared/ExecApprovals/ExecApprovalEvaluator.cs | 23 | // Step 2: explicit user denial. | COMMENT |
| LOW⚡ | …OpenClaw.Shared/ExecApprovals/ExecApprovalEvaluator.cs | 27 | // Step 3: prompt required — give the user a chance before checking for an allowlist miss. | COMMENT |
| LOW⚡ | …OpenClaw.Shared/ExecApprovals/ExecApprovalEvaluator.cs | 32 | // Step 4: allowlist miss — security=allowlist, ask=off, no match, no user approval. | COMMENT |
| LOW | …OpenClaw.Shared/ExecApprovals/ExecApprovalEvaluator.cs | 47 | // Step 5: allow. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …lobal-repo-triage/examples/global-triage-2026-09-01.md | 68 | | #1271 Visible New Chat/New Session action | Source-confirmed UX gap, hidden `/new` path exists | NEEDS_INFO | 75% | 90 | CODE |
| MEDIUM | docs/DATA_FLOW_ARCHITECTURE.md | 72 | ### App.xaml.cs - orchestration layer | COMMENT |
| MEDIUM | …Claw.Tray.WinUI/A2UI/Actions/GatewayActionTransport.cs | 117 | // matches the Android budget hint for a quick agentic step. | COMMENT |
| MEDIUM | ….Shared/Inference/Catalog/LocalInferenceEligibility.cs | 37 | /// Applies the pinned model capacity, driver, and CUDA guardrails after catalog | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | src/OpenClaw.Tray.WinUI/App.xaml.cs | 3575 | /// robust to either identifier space. | COMMENT |
| MEDIUM | src/OpenClaw.Tray.WinUI/Pages/ChannelsPage.xaml.cs | 648 | // The robust fix is to apply Margin to the header element | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …penClaw.SetupEngine.Tests/GatewayAiSetupClientTests.cs | 240 | "options":[{"value":{"id":42},"label":"Demo","hint":"Hint"}],"placeholder":"Code","initialValue":"initial"} | CODE |
| LOW | …enClaw.Tray.Tests/FlattenedToolOutputDetectionTests.cs | 73 | "Lorem ipsum dolor sit amet consectetur adipiscing elit. " + | CODE |
| LOW | …enClaw.Tray.Tests/FlattenedToolOutputDetectionTests.cs | 73 | "Lorem ipsum dolor sit amet consectetur adipiscing elit. " + | CODE |
| LOW | tests/OpenClaw.Connection.Tests/SetupCodeFlowTests.cs | 562 | public FakeClient() : base("ws://fake", "fake-token", NullLogger.Instance) { } | CODE |
| LOW | docs/A2UI_NATIVE_WINUI.md | 131 | "context": { "/email": "user@example.com" } | CODE |