Repository navigation
feat: Systems shows Gateway machines, live resource readings and related sessions - #1888
Conversation
…sessions and backups Replace the Instances page with a native Reactor Systems page that matches the web Systems page: one inventory of the Gateway host, workers, paired nodes and connected apps with search, filters and sort; machine details with status, platform, capabilities and last known info; host statistics with history; related and attached sessions; desktop availability; backups with storage probes; pairing approvals; live updates and a disconnected state. The systems route is new; instances and nodes now open it. Windows nodes publish node.host.stats. Reactor moves to 0.1.0-preview.16. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
|
🦞👀 Pull request received. I will update this pull request when review starts. ClawSweeper review completeClawSweeper finished reviewing this revision. The review result is being finalized. |
|
Codex review: needs real behavior proof before merge. What this changesThis PR replaces Instances with a native Systems inventory showing Gateway machines, resource readings, related sessions and node-management actions. Example: A Gateway reports node:studio with four processors, memory measurements and a related session.
Review scores
ProductKind: Feature · Worth it: Yes · Fix scope: Complete Merge readiness⛔ Blocked before merge - 4 items remain Keep this maintainer-authored feature open: main does not provide the Systems dashboard, and the prior findings are addressed in source; remove the unused session-attention machinery before landing. Priority: P2 Before merge
Findings
Tests
Agent review detailsHow this fits togetherAuthenticated Gateway inventory, node, presence and session data flow through shared projections and a page controller into native Reactor controls; node mutations use the existing operator client. flowchart LR
A[Windows node sampler] --> B[Authenticated Gateway]
B --> C[Operator client]
C --> D[Systems projections]
D --> E[Systems controller]
E --> F[Native Systems page]
F --> C
Technical reviewBest possible solution: Land the scoped Systems page using existing Gateway, session and shared-presentation owners, without the unused session-attention subsystem. Do we have a high-confidence way to reproduce the issue? This is a feature addition; source inspection confirms the earlier reported defects are addressed, but this review ran no application or tests. Is this the best way to solve the issue? The shared projections, page-scoped controller and existing operator client fit the feature; keep session admission in GatewayService and remove count/freshness state that no production consumer uses. Full review comments:
Overall correctness: patch is incorrect AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning medium; reviewed against 1c223f14f6b6. Merge-risk optionsMaintainer options:
Provenance checked
TestingProof path: in-process harness. SecurityNeeds attention: Package provenance checks pass, while current-build authorization evidence for deferred node mutations remains incomplete. EvidenceSecurity concerns:
What I checked:
Likely related people:
Preflight sourceSource unknown. Source comparison at the observed PR snapshot only. Completion is self-reported; body, policy, tests, execution, and report bytes are not verified. Review metrics
LabelsLabel changes:
Label justifications:
Rating scale6/6 🦀 challenger crab · 5/6 🦞 diamond lobster · 4/6 🐚 platinum hermit · 3/6 🦐 gold shrimp · 2/6 🦪 silver shellfish · 1/6 🧂 unranked krab. Overall follows the weaker of proof and patch quality; ✨ marks media proof (a screenshot, video, or linked artifact) that directly shows the changed behavior. WorkflowClawSweeper edits this one comment on every review. Comment HistoryReview history (3 earlier review cycles)
Reviewed November 9, 2026, 6:08 PM ET / 23:08 UTC (Revision 4). |
Keep the no-network assertion, but wait for the initial handshake request batch to finish before taking its baseline. Otherwise its node and agent reads race the config.changed observation in CI. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
The real-app fixture smoke reached projects.list while creating a conversation, but the browse fixture did not implement it. Keep the unexpected-request guard and cover the supported empty catalog through the real Gateway client. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Provide the empty environment read used after projects and agents, and drive the production catalog loader in the protocol regression. Keep unexpected calls as failures. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
|
Final-head dark worker capture (16183d3). Both full fixture lanes now pass: Debug 32 profile/app + 31 UI tests, Release 32 profile/app + 31 UI tests, all with zero skips. Hosted CI remains blocked by the separately recorded native UI testhost/bootstrap failures; this image is not a CI-pass claim. |
Record allowlisted fault module, exception code and installed runtime versions when opted-in UI tests fail. Preserve the test exit code and existing no-dump watchdog. Separate COM-wrapper and Windows App SDK startup phases so a stall is not misattributed. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Write exception types, HRESULTs and bounded managed method names to the OS stderr stream instead of per-test Console.Error buffering. Exclude messages, data and file paths, and leave the exception unhandled. This is diagnostic instrumentation, not a framework workaround. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Exercise the outer diagnostic failure handler with a blocked output path. Verify the original exit code and private-message redaction, reusing the existing child-process harness. Keep fixture paths short for Windows PowerShell 5.1. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Keep both Systems and Sandbox resources in all six locales. Preserve the completed startup-request barrier in native Ready-flow tests and the upstream Sandbox status integration. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Merge current main while retaining bootstrap diagnostics. Restore raw own-node pairing awareness without prompting for this PC, keep machine rows reachable at minimum height, prefer live desktop availability, and retain pending-only capability declarations. Add focused native and owner regressions, including stale approve/reject confirmations. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Keep one production catalog load and main's current Gateway environment assertions, retaining the default-workspace contract. Remove shadowed duplicate empty catalog handlers. This fixes the CS0128 semantic merge conflict exposed by CI without weakening the test. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
|
Addressed the four Systems findings, with latest head
Authority-chain proof ran against the explicitly approved, task-owned
The original desktop flag was restored, generated identities were removed, and the task-owned Gateway was stopped. No production machines, credentials, or settings were changed. Latest validation on frozen tree
Debug and Release real-app UI lanes ran sequentially on the shared desktop. Natural message-240 visibility, long-history restoration and session switching passed in both. Earlier overlapping attempts and a token-file startup lock remain recorded; serial passes are not claimed as a source fix for those failures. Independent bounded rubber-duck review found no blockers. The first CI attempt exposed a semantic collision with moving main: duplicate The successful authority proof and serial app fixtures ran on Build and Test for this head is running. Historical screenshots and the earlier host-statistics receipt retain their original revision labels. An extra current-source statistics replay was blocked by authentication on the old proof operator identity, so it is not counted as passed. The earlier native-crash cause, fresh whole-app Systems captures and signed-upgrade preservation are not claimed resolved. Gateway-switch proof is scoped above; it is not a two-live-Gateway test. @clawsweeper re-review |
|
🦞👀 Re-review progress:
|
… layout Preserve the authorized adaptive shell integration and official Reactor preview.17 dependency contracts. Add bounded Systems overflow diagnostics and pinned native regression coverage. Current-head native proof remains queued and unvalidated. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Keep actionable inventory and native recovery workflows, shared Fluent hero presentation, localized copy, and focused layout and UI regressions. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Reconcile current Companion navigation with Systems routes, responsive layout, disconnect retention, and explicit-toggle pane persistence. Preserve additive fixture and regression coverage. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Merge pinned main 045d13a. Retain canonical shared presentation and Settings ownership with Systems lifecycle and route integration. Required build, Shared and unfiltered Tray gates pass. Native mounted proof records 63 passed and 17 unresolved Systems failures; this local integration commit does not claim page readiness or visual acceptance. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
…ails - Advance visible ages and freshness on quiet polls without extra reads (SYS-01). - Correct Open in web accessible names, pinned instances IDs and per-row expansion assertions in native proof (SYS-02..04); require keyboard proof for the pinned Systems test. - Hold rows mounted expanded collapsed until their own native control loads, so systems:<id> deep links and remounted rows realize details while preserving user collapse and multiple expansions. - Use UIA-exposed anchors for the pinned embedding and focus checks. - Adopt the shared Reactor bootstrap and settings field alignment packets. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Preserve Systems host statistics and fixture coverage alongside main Inbox, file transport lifecycle, and native test diagnostics. Keep the shared Inbox owner and migrate the obsolete page-local layout source guard. Static integration checks passed. Windows build, test and native proof gates remain unrun because this host lacks PowerShell, .NET and WinApp. Co-authored-by: bkudiess <7658216+bkudiess@users.noreply.github.com>
|
@clawsweeper re-review |
|
🦞👀 Re-review progress:
|
Keep session publication in GatewayService behind its existing client, generation, connection and canonical epoch checks. Remove the unread AppState aggregate, mirrored freshness state and redundant admission. Replace aggregate-only coverage with seven real-dispatcher publication cases and retain canonical session routing and Systems hero ownership. Windows execution remains pending on the authorized validation host. Co-authored-by: bkudiess <7658216+bkudiess@users.noreply.github.com>
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
Observe initial inventory selection and preserve keyed inventory groups when pairing rows change. Align native proof with stock Expander border composition, measured tile columns and current pairing copy without weakening visibility, permission, spacing, focus or viewport assertions. Wait for exact-row realization and transformed expansion geometry. Explicitly cover collapsed and expanded gaps and delayed inventory selection with later user collapse. Preserve all 31 original native failures in the task handoff. Windows reruns are required on the authorized native proof host. Local build and test execution is blocked by absent PowerShell and .NET tooling. Co-authored-by: bkudiess <7658216+bkudiess@users.noreply.github.com>
Restore the closed master-detail row to one valid Type.Method guard and record delayed selection and group identity as separately guarded rows. Preserve all ownership invariants and leave the parser and tests unchanged. Co-authored-by: bkudiess <7658216+bkudiess@users.noreply.github.com>
…ions Observe loaded row details and the rendered selected header before semantic assertions. Use the accessible sessions heading within the expanded Gateway, and compare pane widths at one native window size. Co-authored-by: bkudiess <7658216+bkudiess@users.noreply.github.com>
Treat an absent or unmeasured UIA viewport as an incomplete bounded observation and reset width stability. Preserve inset, geometry and downstream capture assertions. Co-authored-by: bkudiess <7658216+bkudiess@users.noreply.github.com>

Related: #1424 (Track WinUI ItemsView fix and retire Reactor preview.12 Markdown workaround)
What Problem This Solves
Windows users need a native view of the Gateway’s reported machines, workers, resource measurements and related sessions without losing node-management and legacy navigation paths.
User Impact
User impact: Systems replaces Instances with an online-first inventory of reported devices and the Gateway, separate worker and connected-app groups, and independently expandable machine details. It shows current or last-known resource measurements, capabilities, pending declarations, desktop availability and related-session links.
systems,instancesandnodesopen the same page; machine deep links expand the requested row.Pairing review stays on Connection. Desktop viewing/setup, backup and storage administration stay in the web interface through Open in web. The native page has no backup reads, trend/history charts, search/filter/sort toolbar, inline pairing decisions or desktop configuration writes. Rename and confirmed Forget remain native, permission-checked node actions.
Validation is incomplete for frozen head
75a1f38ec13dbcc88047949248dee409ed1c0470. Its one-file Daily viewport-readiness correction has not been executed natively. Current-head CI is in progress; no current-head Platinum verdict is verified. Historical Server 2022 x64 results below are not Windows 11/ARM64 proof. The Azure lease was released at 02:33 UTC with original 1024x768 restored and no proof processes remaining. No native runtime is retained; further Windows 11/ARM64 host approval has been requested, not granted. This PR remains draft, with no ready-for-review or merge-readiness claim.The candidate uses Reactor
0.1.0-preview.17, System.Drawing.Common10.0.14and main’s Windows App SDK2.6.5. The obsolete Markdown list workaround associated with #1424 is removed. These are source dependency versions, not current-build runtime proof.Why This Change Was Made
Shared projections own inventory joins, presence, session relations, measurement freshness and desktop availability;
SystemsControllerowns page state. Reactor renders native controls in one scroll with independent inline expanders. The shared page hero and responsive layout retain shell geometry and focus ownership. Status uses text and glyphs as well as theme-aware colors.The November 9 repair merges pinned main
1c223f14f6b66cf0928eeb8686f34208b5ea4d51into the existing PR head without rewriting its history. It retains both native diagnostic paths, Systems and Inbox fixtures, theme and timeout arguments, and host-statistics shutdown alongside main’s file/progress cancellation. Main’s shared Inbox remains authoritative; an obsolete notification-page source guard now checks the shared owner.Follow-up repairs removed unused session-attention/mirrored freshness state while retaining canonical Gateway publication guards, corrected delayed default expansion and inventory group identity, and aligned fixtures with actual row realization and accessible controls. The latest test-only correction treats a missing or unmeasured viewport as an incomplete observation inside the existing pane-expansion wait. It resets width stability without changing timeouts or geometry/capture assertions.
Current source scope, not a runtime completion checklist
The initial web reference was
openclaw/openclaw@5089aa71b681ee275515f2de037b7813d73b45c3. The current native scope is defined by this candidate’s source, DESIGN.md and architecture ledger, not the earlier feature-parity checklist.Evidence
openai/gpt-6-astra), not whole-PR approval, shared-helper certification or native acceptance.b2f91906cca771788ae78eb129d5ce516b632158. Fixtures passed 95/96; Daily frames failed on a null UIA viewport lookup. The current correction needs a fresh successful run.Historical review lineage
Four initial independent Opus 5.5/GPT-6 Astra rounds informed the implementation fixes. A historical two-stage Hanselman review used
claude-opus-5.5in an isolated child session andgpt-6-astra, both at high reasoning, on3fc16592versusb0059dc1: all 44 changed files plus the retained Ready-flow merge resolution. It found no new delta defects and one LOW stale-description finding. The later four ClawSweeper corrections and merge resolution received a separate bounded independent rubber-duck review of the exact88d5ad5tree, with no blockers. The runtime did not expose that reviewer's model identity. No earlier review verdict is presented as a fresh review of later code.Earlier safe native diagnostics correlated a testhost fault with
Microsoft.UI.Xaml.dll3.2.3.0 and0xC000027Bwhile a reasoning flyout test was active. This identifies a fault surface, not its root cause or a fix.Original feature and PR by Barbara Kudiess (@bkudiess). RoboClaw’s November 9-10 campaign scope is integration and follow-up source/test repairs, bounded verification and metadata reconciliation, not authorship of the original feature.
Work sessions
Linked for team reference; these sessions aren’t public.
These links refer to the November 9-10 readiness campaign. Implementation-session checks were source/static; the separate native session owns historical Windows executions and their limits.
Change Type
Scope
winnodeRequired proof pools
windows-winui-interactive: current Systems visuals, focus/keyboard behavior, rename/Forget confirmation fencing, Inbox integration and accessibility.windows-wsl-gateway-e2e: real Gateway-mediated Windows-node statistics and connection lifecycle. Historical WSL or protocol results are not current inventory-bound pool completion.windows-wsl-mxc: the integrated Windows-node teardown retains cancellation of file and system.run work. Validate the real containment/cancellation path on a capable authorized host; an AllowSkip result is not proof.windows-11-arm64: native dependency loading, build/launch and current rendering. Cross-compilation does not establish native ARM64 behavior.None is complete for the current head. Historical Server 2022 x64 executions provide bounded interactive evidence, not Windows 11/ARM64 pool completion. The lease was released at 02:33 UTC; no native runtime remains. Further Windows 11/ARM64 host approval is requested but not granted. Signed install/upgrade preservation is not claimed.
Validation
Frozen head:
75a1f38ec13dbcc88047949248dee409ed1c0470, treea5c2027f6d79b913a6f11c6b3ee0bcf62e49d9d0, parenta3fb18e6d5a552a672662b1266109d7b5922da4b. The earlier integration commit 1dd6f56 retained PR parent 3bfb542 and pinned main 1c223f1 history-preservingly; later repairs did not rewrite that history.Fresh exact-head checks read November 10 at 03:01 UTC: Build and Test 42744848034 is in progress, including Core/CLI, Tray/setup/integration, UI/accessibility, WSL and MSIX lanes. Fast validation, change classification, proof-pool contracts, release metadata and x64 publish smoke passed. CodeQL 42744848025 checks are skipped, not security-validation passes. ClawSweeper dispatch success is not completed review or Platinum. No green-CI claim.
git diff HEAD^ HEAD --checkgit -c core.whitespace=blank-at-eol,blank-at-eof,space-before-tab,cr-at-eol diff --check 1c223f14f6b66cf0928eeb8686f34208b5ea4d51 HEADpwsh -NoProfile -File ./scripts/setup-dev.ps1 -CheckOnlypwsh -NoProfile -File ./build.ps1dotnet test ./tests/OpenClaw.Shared.Tests/OpenClaw.Shared.Tests.csproj --no-restoredotnet test ./tests/OpenClaw.Tray.Tests/OpenClaw.Tray.Tests.csproj --no-restoredotnet test ./tests/OpenClaw.Tray.UITests/OpenClaw.Tray.UITests.csproj --filter 'FullyQualifiedName~GatewayFixtureUiTests.SystemsDaily_InsetAndExpandedNativeFrames'winapp --versionandwinapp --cli-schemaHistorical native a3fb only:
pwsh -NoProfile -File build.ps1 -NoTrustRepositorypassed. Fresh Shared/Tray project builds preceded requireddotnet test <project> --no-restore: Shared 5337 total, 5309 passed, 28 ordinary skips; Tray 5600 passed, zero failures/skips. Isolated OPENCLAW_REPO_ROOT and AppData roots were recorded. Focused 4/4, full Systems 75 + dispatcher 7 = 82/82, and the two earlier repaired fixtures 2/2 passed with zero selected skips. Execution receipt. This does not certify the full 96-case fixture lane, production-shaped Release, current 75a or live authority proof.The last native a3fb app DLL SHA256 was
9DF7EC6A1931D21BAF801C3E18C11B16ECAAD4F5F36E9143F7B8BE737637E0E2. Source correspondence is not a new binary execution. Server 2022 x64 leasecbx_2eea04ed8573was verified absent at 02:33:40 UTC after original 1024x768 restoration and zero remaining proof processes. No native runtime remains reserved; Windows 11/ARM64 approval is pending.Remaining required validation: current-head build and nonzero Shared/Tray closeout; Daily frames in both Light/Dark and the full 96 fixture lane; Debug/non-Dev Release, keyboard/focus, High Contrast and accessibility; controlled native-diagnostics failure paths; paired host-statistics lifecycle/transport teardown; real Rename/Forget success and missing-scope/revocation/two-live-Gateway switch rejection with independent final-state observers; applicable WSL/MXC, native ARM64 and install/upgrade proof. Ordinary skips or unpaired socket tests cannot satisfy these pools.
Use isolated roots and build fresh test projects before --no-restore. The real-app partial class is
GatewayFixtureUiTests, not the filename. Preserve timeouts, geometry and no-skip assertions;-KeyboardProofrequires an authorized exclusive desktop. The 75-case mounted class has no explicit unresolved-deep-link case, so no such mounted proof is claimed. No current-head Platinum verdict, complete before/after pair or readiness is verified.Historical validation and original failures, retained from the earlier PR body
Historical head f841d88, with main 65c7ddb. The earlier bootstrap resolution retained phase logs and DPI traces with one COM-wrapper initialization and SDK bootstrap. A fresh read during this campaign confirms Build and Test 40738600091 completed successfully for that historical head. CodeQL 40738600123 is retained as a historical link; its final outcome was not rechecked in this pass. Neither validates the current candidate.
The prior
ddd8e150CI attempt tested synthetic merge240d6675against a newer main tip and exposed a semantic merge conflict: twoplacementlocals in one protocol test (CS0128). That historical repair integrated the main change and keeps one typed catalog load, main's Gateway-environment assertions and the independent default-workspace assertion. Shadowed duplicate empty catalog handlers are removed. The original author reported the focused protocol test passing at that historical revision; this is a fixture-contract reconciliation, not a weakened assertion or a product workaround.Historical hosted evidence: Build and Test 40633651864, attempt 1 and its CI Gate passed for head
3fc16592. Its actual checkout was synthetic merge 56ea5aa, merging3fc16592intocb50915d. All selected jobs passed, with ARM64 release publish and publication-only jobs skipped as intended; CodeQL 40633651879 passed too. The checkout log and downloaded TRX establish that historical execution, not a pass for the new candidate.Historical local Windows 11 ARM64 closeout tested frozen tree e3ea87721d510766ea89414f394128397781c812, subsequently committed unchanged as
f841d88f, using isolated settings andOPENCLAW_REPO_ROOT. The successful full build used task-localUseSharedCompilation=false,MSBUILDDISABLENODEREUSE=1andDOTNET_CLI_DO_NOT_USE_MSBUILD_SERVER=1. Earlier attempts are retained rather than silently replaced..\build.ps1dotnet test .\tests\OpenClaw.Shared.Tests\OpenClaw.Shared.Tests.csproj --no-restore --blame-hang --blame-hang-timeout 5m --blame-hang-dump-type nonedotnet test .\tests\OpenClaw.Tray.Tests\OpenClaw.Tray.Tests.csproj --no-restore --blame-hang --blame-hang-timeout 5m --blame-hang-dump-type nonedotnet test .\tests\OpenClaw.Tray.UITests\OpenClaw.Tray.UITests.csproj -r win-arm64 --no-restore -p:BuildProjectReferences=false -p:UseSharedCompilation=false --filter 'FullyQualifiedName~SystemsPageProofTests|FullyQualifiedName~WindowCaptionThemeTests|FullyQualifiedName~NativeSharedFlowTests.ConfigurationChangeWithdrawsReadyWithoutReplayingSetup' --blame-hang --blame-hang-timeout 3m --blame-hang-dump-type nonedotnet test .\tests\OpenClaw.Shared.Tests\OpenClaw.Shared.Tests.csproj --no-restore --filter FullyQualifiedName~GatewayFixtureProtocolTests.RealClient_SupportingReadsUseTypedModelsAndConsistentConfiguration.\scripts\test-gateway-fixture.ps1 -AppPath '.\src\OpenClaw.Tray.WinUI\bin\Debug\net10.0-windows10.0.22621.0\win-arm64\OpenClaw.Tray.WinUI.exe' -Configuration Debug -Screenshotsddd8e150, serial desktop run: 32 profile/app + 31 UI passed, 0 skipped. Includes natural message-240 visibility, long-history restoration and session switching; not re-executed after the October 28 main integration or during this campaign.\scripts\test-gateway-fixture.ps1 -AppPath '.\src\OpenClaw.Tray.WinUI\bin\ARM64\Release\net10.0-windows10.0.22621.0\win-arm64\OpenClaw.Tray.WinUI.exe' -Configuration Release -Screenshotsddd8e150, production-shaped Release build and serial desktop run: 32 profile/app + 31 UI passed, 0 skipped; not re-executed after the October 28 main integration or during this campaign.\scripts\test-ci-native-failure-metadata.ps13fc16592: 9 privacy/parser/exit-code cases passed under PowerShell 7 and underWindowsPowerShell\v1.0\powershell.exe -NoLogo -NoProfile -File .\scripts\test-ci-native-failure-metadata.ps1. The added case forces metadata output failure; both original-exit and message-privacy mutations were rejected during the repair.\scripts\test-proof-evidence.ps109721901: 83 checks passed, including 24 controlled runner invocations.\scripts\test-ci-workflow-contract.ps1282e87e6repair tree: routing, watchdog and result guards passed; no new execution claimed for the later mergedotnet test .\tests\OpenClaw.Shared.Tests\OpenClaw.Shared.Tests.csproj --filter FullyQualifiedName~NativeTestFailureTraceTestsb0059dc1: 3 passed in Debug and 3 passed in Releasedotnet test .\tests\OpenClaw.Tray.Tests\OpenClaw.Tray.Tests.csproj --no-build --no-restore --filter 'FullyQualifiedName~SandboxStatusStoreTests|FullyQualifiedName~ChatComposerSessionTests|FullyQualifiedName~ChatComposerViewModelTests|FullyQualifiedName~LocalizationValidationTests'3fc16592: 70 passed, 0 failed, 0 skippedHistorical
3fc16592local Tray results were 4625 passed and fourBuildPrerequisiteTests.CheckOnly_UsesTheAppLocalRuntimeResolverfailures. That historical incomingmaincorrected the child-process architecture fixture without weakening its expected results; an intermediate local run was reported as passing all 4630 tests; its exact revision is not identified in this paragraph. No class was excluded. The older hosted x64 suite passed all 4629 cases at its own revision.At
b0059dc1, the full local Shared run had 4724 passed, 25 skipped and two failures:MarkdownParserFuzzTests.Build_ManyListItems_ScalingCurve(543 ms versus its 500 ms bound) andExecApprovalsStoreTests.Changed_ExternalCorruptThenValid_RaisesFailureThenRecovery(temporary file still in use). Both passed isolated, 2/2. The later full local run passed all 4726 executed cases, but the original failures are retained.At
3fc16592, a native selection executed 22 cases locally: 20 passed and two Sandbox flyout cases failed the pre-existing exact-size assertion at 175% scale (44versus43.999996185302734, widths 320 and 480). All 22 corresponding cases passed in that revision's hosted x64 TRX. Those historical DPI failures are not erased by the historical 11 selected passes or the SDK upgrade. A first follow-up UI attempt also exposed a test-harness popup lookup/teardown error; it was corrected by locatingPopup.Childand closing owned dialogs before disposing their host. The historical final native cases passed without suppressing exceptions or weakening assertions.Historical downloaded TRX results from run 40633651864, attempt 1, for the synthetic merge of 3fc1659, not the new candidate:
Ordinary CI skips are not custom proof. Earlier failures are retained: 40596342567 had a native crash and bootstrap stall; 40613723082 captured the correlated WinUI stowed exception. 40616319196 subsequently passed at the older
b0059dc1head. Neither that pass nor the historical green run establishes the earlier fault's root cause or a fix. No memory dumps were collected.Real Behavior Proof
GatewayFixtureUiTests.SystemsDaily_InsetAndExpandedNativeFrames, both themes, followed by the full fixture lane. No successor execution yet.Yes/No/N/A) No new media-link validation. Eight original image URLs remain unchanged as historical evidence; safe a3fb run links come from the verified native closeout.Historical proof limitations remain material: the additional old statistics replay could not authenticate with its previous operator identity; authority proof used separately qualified generated clients; Gateway identity switching was simulated rather than exercised across two live Gateways; overlapping Debug/Release attempts produced token-file startup and UI Automation failures before serial runs passed. No unsafe foreground bypass or product workaround is claimed.
Historical Windows and Gateway evidence: superseded design, not current-candidate proof
The following records preserve the original feature author’s receipts, limitations and artifact links. Native inline approve/reject, desktop-enable, backup and master/detail surfaces shown or exercised there have since been removed from the current Systems design. They must not be treated as current behavior or current-head validation.
The historical fixture lanes ran sequentially on the shared desktop, each with a separate
-ArtifactsDirectory. Earlier overlapping attempts were not accepted as complete proof: Debug recorded an MCP-token file-sharing startup failure, and Release recorded UI Automation selection/timeouts before being stopped. The serial runs passed without source edits, sleeps, weakened assertions or hidden skips. Those passes correct the test procedure; they do not prove a code fix for the earlier startup failure.systems-proofnative Gateway. The older hosted x64 CI is labeled by its revision.e3ea877, committed asf841d88f. Authority proof and the passing serial Debug/Release fixtures ran at the earlier four-fix tree88d5ad5/ddd8e150. The October 28 merge to f841d88 did not change those then-current Systems presentation/controller/Gateway-action owners, but that source correspondence is not a new whole-app or live-Gateway execution. Historical hosted CI tested synthetic merge56ea5aa1for head3fc16592and basecb50915d. Gallery screenshots are executions of16183d3a; contrast rendering and the older statistics run usede4c474e5. These old captures are not fresh executions of the corrected head.systems-inventory/systems-empty; discover withwinnode --mcp-url <fixture URL> --list-tools, then--command app.navigate --params '{"page":"systems"}'or a machine deep link, always binding the matching isolated profile. Discovery exposed 33 tools. Pairing confirmation was opened without approving; stopping only the synthetic Gateway closed it and disabled writes. The historical hosted TRX separately records all 22 selected native Ready-flow/Sandbox/disposal cases passing.Historical native-control diagnostics from the passing 11-case run:
Real authority proof at
88d5ad5/ddd8e150used productionOpenClawGatewayClient,SystemsGatewayClientand the WinUI-free productionSystemsController, with generated identities against the isolated Gateway. Authorized changes were checked by separate admin reads of persisted state. Read-only sessions received actual Gateway scope errors; revoked privileged sessions were invalidated and could not write. The original flag was restored, generated identities removed and the service stopped. No production machines or settings were touched.{ "Complete": true, "AuthorizedDesktopPersisted": true, "AuthorizedPairingPersisted": true, "MissingAdminDeniedWithoutDesktopChange": true, "MissingPairingDeniedWithoutPairingChange": true, "RevokedAdminDeniedWithoutDesktopChange": true, "RevokedPairingDeniedWithoutPairingChange": true, "GatewaySwitchCancelledBeforePatchDispatch": true, "OriginalDesktopSettingRestored": true, "GeneratedIdentitiesCleaned": true, "SharedAssemblySha256": "E57ADBF8F2E50E60F82B28010EB19846372700B6C0792475BFD9DD924D4BFF44" }This receipt comes from the real Gateway and production client/controller boundary, not a rendered desktop-enable dialog or two live Gateways. Separate historical mounted tests covered stale approve/reject dialogs. Earlier proof-driver attempts failed because the driver assumed in-band token delivery and then used an invalid empty constructor credential; those failures and successful cleanup were retained, not counted as complete proof.
Native runtime identity:
OpenClawFoundation.OpenClawGateway-systems-proof_rfcbke2p71se2, package0.1.2491.54761, packaging commit424969910aa55dc7c44f2fb82b17882345730e55, OpenClaw2026.10.8atdc2523e5a5c7a309517fd7fa834add938231d526. Only generated proof identities were paired. At the end of that historical run, the author reported the Gateway service stopped and the side-by-side registration retained; its present runtime state was not inspected. No production machines or Gateway state were changed.The historical live proof at
e4c474e5used productionWindowsNodeClient,SystemsGatewayClientandSystemsProjection, separately from the fixture UI, with the supportedOPENCLAW_NODE_HOST_STATS_INTERVAL_SECONDS=10override:{ "OperatorConnected": true, "TaskOwnedNodePaired": true, "DistinctHostStatsEvents": 2, "NodeListRetainedStatistics": true, "ProjectionRetainedStatistics": true, "EnvironmentsSupported": true, "GatewaySystemInfoSupported": true, "BackupsSupported": true, "SharedAssemblySha256": "604D2ED9504E8E3238882EFB8EE7DC4F21E36B511ABF7FBCBB95FB0540BAE081" }Historical captures at 16183d3: inventory, host, node statistics and dark worker details
Historical captures at 16183d3: offline, confirmation, disconnect fencing and empty state
Historical capture at e4c474e: Windows Aquatic high contrast
The original Windows contrast setting, None, was restored after capture.
Security Impact
Yes/No) NoYes/No) NoYes/No) YesYes/No) NoYes/No) NoYes, explain the risk and mitigation: relative to pinned main, Systems adds authenticated inventory/resource reads and operationalnode.host.statspublication. Native rename/Forget use existing operator methods with liveoperator.pairingchecks and connection-epoch fencing. Pairing decisions stay with Connection; Systems does not issue backup/storage reads or desktop configuration writes. No new credential store or local listener is introduced. Main’s file-transfer feature is inherited integration context, not a new capability introduced by this PR’s Systems delta. Current transport and mutation proof remains outstanding.Compatibility and Migration
Yes/No) Yes, by source contract; current runtime compatibility remains unverified.Yes/No) YesYes/No) NoOPENCLAW_SYSTEMS_POLL_SECONDS(default 15, minimum 5),OPENCLAW_SYSTEMS_EVENT_REFRESH_MS(default 1500, nonnegative) andOPENCLAW_NODE_HOST_STATS_INTERVAL_SECONDS(default 60, minimum 10). Older Gateways fall back to node inventory and the web root; legacy routes remain valid. Backup support is not probed by the native page.Review Conversations