Skip to content

feat: find conversations and settings through shared navigation search - #2016

Merged
bkudiess merged 22 commits into
openclaw:mainfrom
bkudiess:bkudiess-search-plan-review
Nov 6, 2026
Merged

bkudiess merged 22 commits into
openclaw:mainfrom
bkudiess:bkudiess-search-plan-review

Conversation

@bkudiess

@bkudiess bkudiess commented Nov 4, 2026 •

Copy link
Copy Markdown
Collaborator

What Problem This Solves

Companion needs one search that takes users to the right conversation, setting or Gateway destination without making changes on their behalf.

User Impact

User impact: existing search icons and Ctrl+K/Ctrl+E open shared, grouped navigation search in Chat and Settings. Settings retains Ctrl+F; Alt+Enter opens eligible Dashboard counterparts.

Search never toggles settings, runs automations, selects models or sends messages. Transcript hits open the exact conversation, not a precise message offset. The visible search footer/status messages are removed; conditional More/Retry actions sit beside the input. No migration is required.

Why This Change Was Made

Replace duplicate shell filters with one window-owned HubSearchController and shared native SearchHost, retaining existing conversation, Settings and Dashboard navigation owners. Offline local results are supplemented by bounded authenticated Gateway reads. Query, connection, agent and access fences plus private request IDs prevent stale activation and sidebar roster pollution.

Native names, Windows symbols, wrapping descriptions and one scroller preserve readable results. Incremental expansion retains the scroll anchor and focuses the first revealed row. Status uses nonvisual UI Automation ItemStatus and text-bearing notifications. Local MCP app.search returns navigation metadata without requesting transcript snippets. Unknown Dashboard versions remain conservative; the separately verified Skills route supports released 2026.11.1.

Closeout also corrected the stale design paragraph and repaired a real fixture cleanup failure. Owned-profile removal waits only for Windows sharing/lock errors within an explicit deadline; persistent locks and all other failures remain visible. Tests are not retried or weakened.

Evidence

Head 8c1813c0806f4a06ac3080e4aab6cd85c5925cb6: CI 42149147134, attempt 2 and CI Gate passed. ClawSweeper reviewed this head: Platinum overall (4/6), Diamond proof confidence (5/6), no actionable findings or before-merge items. The bot assigned its own rating; no rating label was manually applied.

Downloaded reports confirm hosted native UI 71/71, including all 17 search journeys, and actual app/MCP/profile 36/36, with zero skipped selected cases. A separate local ARM64 run passed the same 71/71 + 36/36. The image below is a newly captured, inspected ARM64 image from this head, not an earlier screenshot relabeled as current.

Current head: native ARM64 search with the complete keyboard-focused sixth multiline result and no footer

The real released-Gateway proof also passed on this head: OpenClaw 2026.11.1 (4ffdd20), production C# exact-session metadata/transcript matches, config schema metadata, restricted-operator FORBIDDEN, and actual authenticated Edge rendering root's Model Setup destination and /skills. No AI request was made. Root reaches Model Setup because no provider is verified; this does not prove exact skill selection.

Current head: actual authenticated released-Gateway root reaches Model Setup

Current head: actual authenticated released-Gateway Skills destination

Verified evidence downloads: successful UI/native reports and captures, real released-Gateway report, npm provenance and browser captures, Core/CLI reports, Tray/setup/integration reports. All were downloaded and their actual TRX outcomes inspected. The three uploaded images were fetched back as authenticated bytes and visually inspected. See the native proof report and released-Gateway report.

Retained failures: current run attempt 1 hit the existing unchanged Reactor reasoning-picker testhost crash and an unchanged historical-voice cached-view restoration timeout (fixture 70 passed / 1 failed, all 17 search cases passed). Logs, source ownership, the fully loaded 30-entry snapshot and absence of search RPCs were inspected before one failed-jobs-only replay. Attempt 2 passed both suites; no product fix is claimed for those unrelated failures. Earlier failures and the cleanup repair remain in the repair report and replay rationale.

Change Type

  • Bug fix
  • Feature
  • Refactor
  • Docs or instructions
  • Tests or validation
  • Security hardening
  • Chore or infrastructure

Scope

  • Tray or WinUI UX
  • Windows node capability
  • Local MCP or winnode
  • Gateway, connection, or pairing
  • Setup or onboarding
  • Permissions, privacy, or security
  • Tests, CI, or docs

Required proof pools

  • windows-winui-interactive: current-head isolated native search, keyboard focus, layout, expansion, Settings reveal and open-popup Axe journeys passed locally and in CI. High Contrast/Narrator remain unverified.
  • windows-11-arm64: current-head local native ARM64 Debug app/MCP/profile and full fixture UI passed; prior non-Dev Release history remains attributed to its original reports, not a new signed-package claim.
  • windows-wsl-gateway-e2e: current-head real released-Gateway search, denied access and authenticated Dashboard destinations passed in the existing disposable hosted setup/connect lane.

These are boundary-specific results, not certification of every command in a whole proof pool. Ordinary CI skips do not count as executed custom proof.

Validation

Source identity: local build/tests used the manually hash-recorded cleanup code subsequently committed as 8c1813c0; the native fixture ran on that committed head. CI run 42149147134 is associated with PR head 8c1813c and tested merge 2ef1f14 (refs/pull/2016/merge). Attempt 2 reran only the failed UI job and its dependents; successful unchanged jobs retain their actual attempt-1 reports.

Exact local command Actual result
.\build.ps1 Passed all five product targets on native ARM64
dotnet test .\tests\OpenClaw.Shared.Tests\OpenClaw.Shared.Tests.csproj --no-restore 4,937 passed / 2 failed / 26 skipped. Host lacks symbolic-link creation privilege; unchanged RefusedTransport_ReportsNetworkWithoutClassifyingStackFrames hit its documented ephemeral-port Network-versus-Server classifier defect. Neither test was changed or omitted. Both cases passed in the current-head hosted Shared report below.
dotnet test .\tests\OpenClaw.Tray.Tests\OpenClaw.Tray.Tests.csproj --no-restore 5,123 passed / 0 failed / 0 skipped
dotnet test .\tests\OpenClaw.Tray.IntegrationTests\OpenClaw.Tray.IntegrationTests.csproj --no-restore --filter 'FullyQualifiedName~GatewayFixtureProfileTests|FullyQualifiedName~GatewayFixtureRunTests' 34 passed / 0 failed / 0 skipped. Both new real-file-lock cases failed with the intended sharing IOException before repair, then passed after it
.\scripts\test-gateway-fixture.ps1 -AppPath '.\src\OpenClaw.Tray.WinUI\bin\Debug\net10.0-windows10.0.22621.0\win-arm64\OpenClaw.Tray.WinUI.exe' -ArtifactsDirectory '.\TestResults\FixtureCleanupCloseout' -Screenshots Native UI 71/71, including 17/17 MainSearch, and actual app/MCP/profile 36/36, zero skips
.\scripts\validate-docs.ps1 Passed: 72 Markdown files, seven proof pools and documentation-flow checks
.\scripts\validate-agent-skills.ps1 Passed: 16 skills / 25 Markdown files
.\scripts\test-agent-skills-validator.ps1 Passed: 27 fixtures plus repository skills
git diff --check Passed; task worktree clean

Fresh test projects were built before the required --no-restore runs, and the actual TRX counts were checked. Managed tests cleared the inherited OPENCLAW_STATE_DIR and unrelated runtime opt-ins. The local Shared failures above remain disclosed, not relabeled green by the hosted result.

Exact hosted command Passed / failed / skipped
.\scripts\Invoke-CiTest.ps1 -Project tests\OpenClaw.Shared.Tests -ResultsDirectory TestResults\Shared -TrxFileName OpenClaw.Shared.Tests.trx -HangTimeoutSeconds 300 with CI OPENCLAW_RUN_INTEGRATION=1 4,957 / 0 / 8
.\scripts\Invoke-CiTest.ps1 -Project tests\OpenClaw.Connection.Tests -ResultsDirectory TestResults\Connection -TrxFileName OpenClaw.Connection.Tests.trx 1,746 / 0 / 1
.\scripts\Invoke-CiTest.ps1 -Project tests\OpenClaw.WinNode.Cli.Tests -ResultsDirectory TestResults\WinNodeCli -TrxFileName OpenClaw.WinNode.Cli.Tests.trx 129 / 0 / 0
.\scripts\Invoke-CiTest.ps1 -Project tests\OpenClaw.Tray.Tests -ResultsDirectory TestResults\Tray -TrxFileName OpenClaw.Tray.Tests.trx -Runtime win-x64 5,123 / 0 / 0
.\scripts\Invoke-CiTest.ps1 -Project tests\OpenClaw.SetupEngine.Tests -ResultsDirectory TestResults\SetupEngine -TrxFileName OpenClaw.SetupEngine.Tests.trx -Runtime win-x64 2,609 / 0 / 4
.\scripts\Invoke-CiTest.ps1 -Project tests\OpenClaw.Tray.IntegrationTests -ResultsDirectory TestResults\TrayIntegration -TrxFileName OpenClaw.Tray.IntegrationTests.trx -Runtime win-x64 with CI OPENCLAW_RUN_INTEGRATION=1 62 / 0 / 3
.\scripts\Invoke-CiTest.ps1 -Project tests\OpenClaw.Tray.UITests -ResultsDirectory TestResults\TrayUI -TrxFileName OpenClaw.Tray.UITests.trx -Runtime win-x64 -Filter "Category!=Accessibility&Category!=NativeOnboardingProof&Category!=GatewayFixture" -HangTimeoutSeconds 300 643 / 0 / 7
.\scripts\test-gateway-fixture.ps1 -AppPath .\src\OpenClaw.Tray.WinUI\bin\Debug\net10.0-windows10.0.22621.0\win-x64\OpenClaw.Tray.WinUI.exe -ArtifactsDirectory .\TestResults\GatewayFixture -Screenshots Native UI 71 / 0 / 0; app/MCP/profile 36 / 0 / 0

Other downloaded current-head reports: Functional UI 19 / 0 / 0, accessibility 22 / 0 / 11, Dev settings 31 / 0 / 0, hardware profile after-state 12 / 0 / 0. Skipped accessibility/other opt-in cases are not claimed as executed proof. All three WSL E2E shards, x64 release publishing smoke, x64/ARM64 MSIX artifacts, Store bundle and the overall CI Gate passed. Policy-skipped release publishing is not a failed check.

The exact hosted real-Gateway command was:

.\scripts\Invoke-CiE2e.ps1 -Name setup-connect -Filter "FullyQualifiedName~OpenClaw.E2ETests.Setup.SetupAndConnectTests|FullyQualifiedName~OpenClaw.E2ETests.Setup.MxcSetupAndConnectTests|FullyQualifiedName~OpenClaw.E2ETests.Setup.MirroredWslPortLeaseTests|FullyQualifiedName~OpenClaw.E2ETests.Setup.SshOwnershipAdversarialProofTests|FullyQualifiedName~OpenClaw.E2ETests.Setup.TrayExecutableResolutionTests"

Result: 53 passed / 0 failed / 7 ordinary opt-in skips. SetupAndConnectTestsSearchProof.ReleasedGateway_SearchDenialAndDashboardRoutes and all nine browser-storage admission cases passed, not skipped. The existing OPENCLAW_RUN_E2E=1 disposable hosted fixture owns provisioning and teardown. No local/shared Gateway was provisioned or mutated for closeout.

Review: ClawSweeper reviewed exact head 8c1813c0, Platinum overall / Diamond proof, no findings. Independent task / rubber-duck reviews covered the feature/proof plan and the new cleanup delta, with no blocking issues. The latter explicitly noted synchronous bounded cleanup as a test-harness tradeoff; no success fallback was added. Reviewer model identities were not independently observable. Earlier Hanselman repairs remain in the linked history. No shared-autoreview-helper-owned status or isolation claim is made.

Real Behavior Proof

  • Environment tested: local Windows 11 ARM64/.NET SDK 10.0.403 with isolated native Debug app and synthetic Gateway; hosted Windows x64 native fixture; separately disposable WSL2 released OpenClaw 2026.11.1 (4ffdd20) and actual preinstalled Edge.
  • PR head or commit tested: local source/captures 8c1813c0806f4a06ac3080e4aab6cd85c5925cb6; CI associated with that head and built tested merge 2ef1f14f6f46541f98dc7cef33ec56f9e4a13971. No older review, screenshot or binary is relabeled as a new execution.
  • Exact steps or command run: fixture and setup/connect commands above. Native cases exercise immediate cross-surface Enter/Ctrl+K, exact conversation navigation without sending, Settings/schema reveal without writes, disappearing-result focus, full multiline expansion, two-group indices, More/Retry and open-popup Axe. The passed GatewayFixtureAppTests.RealOperatorPopulatesSessionsWithoutEnablingNodeExecution performs MCP tools/list, discovers app.search, invokes it for camera, checks result metadata and verifies the setting is unchanged.
  • Evidence after fix: current-head images and linked downloaded reports above. Production metadata/transcript exact-session search, restricted FORBIDDEN and authenticated actual-browser destinations passed. gateway-release.json records exact npm version, tarball and SHA-512 integrity; downloaded setup archive contains zero browser-profile files.
  • Observed result: footer-free fully visible/focused multiline native results; navigation-only behavior preserves drafts and settings. Cleanup regressions prove both successful removal after lock release and explicit failure for a persistent lock, followed by recovery after release.
  • Screenshot or artifact links verified? (Yes/No/N/A): Yes. All three published images were fetched back as authenticated bytes and inspected; the linked evidence archives were downloaded and their TRX outcomes inspected.
  • Not verified or blocked: High Contrast/Narrator, upgrade preservation, signed distribution, native packaged-Gateway runtime and an executed base-fail/head-pass cancellation experiment remain unverified. Local Shared limitations are disclosed above. Ordinary CI skips and valid artifacts do not establish whole-pool acceptance.

Copied output from this head's selected hosted proof:

[Search proof] released Gateway: OpenClaw 2026.11.1 (4ffdd20)
[Search proof] metadata and transcript matched the exact synthetic session; restricted read returned FORBIDDEN.
[Search proof] authenticated browser rendered /.
[Search proof] authenticated browser rendered /skills.

Security Impact

  • New permissions or capabilities? (Yes/No): No
  • Secrets or tokens handling changed? (Yes/No): Yes, test-harness-only browser/profile handling; no production credential storage or precedence changes
  • New or changed network calls? (Yes/No): Yes
  • Command or tool execution surface changed? (Yes/No): Yes
  • Data access scope changed? (Yes/No): Yes
  • If any answer is Yes, explain the risk and mitigation: search reads authorized session metadata/transcript snippets and catalog/schema metadata over the existing authenticated operator connection. Explicit transcript scope excludes global/unknown/background sessions. Only schema metadata is indexed, not config values/sensitive subtrees. Query cancellation, identity/access fencing and private request IDs prevent stale publication and roster updates. Local MCP search is navigation metadata only; it neither requests snippets nor executes results. The disposable CI browser receives its fixture test token through CDP navigation, not process arguments; browser-profile storage is excluded from artifacts and the downloaded archive was checked clean. Earlier affected task-generated archives were removed defensively without inspecting credential values. Cleanup still checks reparse points before every attempt and deletes only owned fixture data.

Compatibility and Migration

  • Backward compatible? (Yes/No): Yes, with intentional search UX changes: setting matches navigate instead of toggle; MCP retains Title/Subtitle/Icon and adds navigation metadata. No visible search footer/status block remains.
  • Config or environment changes? (Yes/No): No required product changes. Optional bounded search timing controls remain. Test-only OPENCLAW_GATEWAY_FIXTURE_CLEANUP_TIMEOUT_SECONDS accepts a positive finite deadline, default 10 seconds.
  • Migration needed? (Yes/No): No
  • If yes, list the exact upgrade steps: N/A. Unsupported remote methods do not prevent local navigation.

Review Conversations

  • I replied to or resolved every bot review conversation addressed by this PR.
  • I left unresolved only conversations that still need maintainer judgment.

GitHub reports zero inline review threads. The stale design contract was corrected, the subsequent cleanup failure was repaired with negative controls and current runtime proof, and ClawSweeper's final source-head review has no actionable findings. Ready for human review is not an approval or merge claim.

bkudiess and others added 2 commits November 4, 2026 14:09
Keep the existing search icons and shortcuts, unify native results, and add bounded Gateway catalog and message reads without executing actions.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Adapt search to current Workspace selection and Dashboard-only skill destinations while retaining detached reads, cancellation fences, and native navigation proof.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@clawsweeper

clawsweeper Bot commented Nov 4, 2026

Copy link
Copy Markdown

🦞👀
ClawSweeper picked this up.

Pull request received. I will update this pull request when review starts.

Keep navigation-only search and host ownership while deferring reopen through the existing FlyoutShowRequest and preserving main footer composition.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@bkudiess

bkudiess commented Nov 4, 2026

Copy link
Copy Markdown
Collaborator Author

Current-head behavior proof for 806184f after integrating the shared Workspace footer and deferred flyout owner. Native ARM64 Release: all 15 search journeys passed without skips. Debug: 14 passed in the full run, and the page-name case passed a focused rerun after an isolated-profile cleanup file lock. Full build passed; Shared 4,908 passed plus 25 opt-in skips; Tray 5,043 passed; CLI 129 passed; actual Release MCP discovery/invocation 1 passed. These captures are from the current Release fixture, not user data. Live Gateway/browser-route and signed-distribution proof remain unverified.

search-native-agent-events

search-inline-status-and-actions

@bkudiess

bkudiess commented Nov 4, 2026

Copy link
Copy Markdown
Collaborator Author

@clawsweeper review

@clawsweeper

clawsweeper Bot commented Nov 4, 2026 •

Copy link
Copy Markdown

🦞👀
Exact review queued.

Re-review progress:

@clawsweeper clawsweeper Bot added P2 Normal priority bug or improvement with limited blast radius. rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. labels Nov 4, 2026
@clawsweeper

clawsweeper Bot commented Nov 4, 2026 •

Copy link
Copy Markdown

Codex review: needs maintainer review before merge.

What this changes

This PR shares navigation-only search across Chat and Settings, adding conversation, transcript, setting, and Gateway destinations.

Example: Search for “camera” using Ctrl+K.

  • Before: Search offers a command that changes camera access.
  • After: Search opens and focuses the Camera setting without changing its value.

Review scores

Measure Result What it means
Overall readiness 🐚 platinum hermit (4/6) Strong native and released-Gateway evidence supports a coherent implementation with no actionable findings; draft status and pending checks remain landing gates.
Proof confidence 🦞 diamond lobster (5/6) Sufficient (live_output): Native app evidence exercises shared search, focus, expansion, exact conversation navigation, and unchanged settings; released-Gateway output records exact metadata/transcript matches, restricted-operator FORBIDDEN, and authenticated Dashboard rendering at 85361c4. Production sources remain identical, and the latest contributor report adds actual app/MCP/profile validation of the cleanup repair. Browser-image inspection was limited by review infrastructure; High Contrast, Narrator, and signed distribution are not claimed.
Patch quality 🐚 platinum hermit (4/6) No actionable review findings were identified.

Product

Kind: Feature · Worth it: Yes · Fix scope: Complete
User problem: Users need to find a conversation, setting, or Gateway destination from either Chat or Settings without accidentally executing an action.
Reason: The collaborator-authored direction provides clear navigation value and explicitly records the intentional move from toggle commands to read-only destinations.

Merge readiness

✅ Ready for maintainer review

Keep this PR open: it adds useful, maintainer-directed search capabilities absent from main, and this review found no actionable correctness defect.

Priority: P2
Reviewed head: 8c1813c0806f4a06ac3080e4aab6cd85c5925cb6

Before merge

None.

Findings

None.

Tests

  • Missing end-to-end proof: No base-fail/head-pass experiment is recorded for shared-send cancellation, although real-socket fault-injection coverage is supplied.
Agent review details

How this fits together

The native search popup combines local navigation metadata with authenticated Gateway reads, then routes a selected result through existing conversation, Settings, or Dashboard navigation owners.

flowchart TD
  A[Chat and Settings] --> B[Shared SearchHost]
  B --> C[HubSearchController]
  D[Local navigation catalog] --> C
  E[Authenticated Gateway reads] --> C
  C --> F[Ranked grouped results]
  F --> G[Existing navigation owners]
Loading

Technical review

Best possible solution:

Land the shared navigation search through the existing landing gates, coordinating the transcript reader with the overlapping Sessions-search work.

Do we have a high-confidence way to reproduce the issue?

This is a feature expansion; source comparison confirms main has command search but lacks this shared grouped navigation and transcript-search flow.

Is this the best way to solve the issue?

The change consolidates duplicate shell filtering into focused shared owners while retaining existing navigation, Gateway authorization, and native page application boundaries.

AGENTS.md: found and applied where relevant.

Codex review notes: model internal, reasoning medium; reviewed against 4aee38a1bfaa.

Provenance checked

  • Shared shell search and command execution changes intended behavior with a stated reason (c9d11df: Expose the existing Settings command catalog from the main window while preserving chat, drafts, shortcuts, and shared execution.)
  • Navigation metadata ownership keeps the original intent (bc518f7: Centralize route mapping and command metadata in a WinUI-free presentation owner.)
  • Retired Skills surface keeps the original intent (29ef4f8: Remove the standalone native Skills page, polling, navigation registration, and setup handoff.)
  • Generation-bound WebSocket sends changes intended behavior with a stated reason (a51029e: Bind credential handoffs to their owning transport generation; the patch retains that admission check while allowing an already-started frame to finish under transport cancellation.)
  • Configuration detail rendering keeps the original intent (9de9b5b: Provide schema-guided editing with explicit permission states and retained pending changes.)
  • Owned fixture cleanup changes intended behavior with a stated reason (3e74082: Keep synthetic profiles isolated and reject cleanup through reparse points; bounded sharing-lock recovery preserves that ownership boundary.)

Testing

Proof path: shipped entry point.

Security

None.

Evidence

What I checked:

Likely related people:

  • Barbara Kudiess: Raw commit c9d11df adds src/OpenClaw.Tray.WinUI/Services/HubCommandExecutor.cs:29 relative to its recorded parents. This identifies author metadata, not feature responsibility or a PR merger. (role: source-line author; confidence: high; commits: c9d11df25d1b; files: src/OpenClaw.Tray.WinUI/Services/HubCommandExecutor.cs)
  • Scott Hanselman: Raw commit a51029e adds src/OpenClaw.Shared/WebSocketClientBase.cs:675 relative to its recorded parents. This identifies author metadata, not feature responsibility or a PR merger. (role: source-line author; confidence: high; commits: a51029ef6f77; files: src/OpenClaw.Shared/WebSocketClientBase.cs)
  • Ranjesh: Raw commit 9de9b5b adds src/OpenClaw.Tray.WinUI/Pages/ConfigPage.xaml.cs:373 relative to its recorded parents. This identifies author metadata, not feature responsibility or a PR merger. (role: source-line author; confidence: medium; commits: 9de9b5ba0f8a; files: src/OpenClaw.Tray.WinUI/Pages/ConfigPage.xaml.cs)

Preflight source

Source 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

Metric Value Why it matters
Production versus test delta Production +1739/-217; tests +2284/-88 Growth supplies shared search ownership, authenticated reads, native lifecycle coverage, released-Gateway proof, and fixture cleanup regressions.

Labels

Label changes:

No label changes.

Label justifications:

  • P2: Useful navigation and discoverability improvement without an established urgent production failure.
  • rating: 🐚 platinum hermit: Overall readiness is 🐚 platinum hermit; proof is 🦞 diamond lobster and patch quality is 🐚 platinum hermit.
  • status: 👀 ready for maintainer look: ClawSweeper has no concrete contributor-facing blocker left for this PR.
  • proof: sufficient: Contributor real behavior proof is sufficient.

Rating scale

6/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.

Workflow

ClawSweeper edits this one comment on every review. Comment @clawsweeper re-review for a fresh review only. Repair and merge execution lanes are retired.

History

Review history (5 earlier review cycles)
  • reviewed 2026-11-04T23:36:12.126Z sha 806184f :: needs maintainer review before merge. :: none
  • reviewed 2026-11-05T06:03:49.930Z sha a763511 :: needs changes before merge. :: none
  • reviewed 2026-11-05T17:33:09.524Z sha 5299ba0 :: needs maintainer review before merge. :: none
  • reviewed 2026-11-06T01:16:53.845Z sha 85361c4 :: needs changes before merge. :: [P3] Update the design contract for the footer-free search layout
  • reviewed 2026-11-06T01:35:08.146Z sha c27c8cd :: needs maintainer review before merge. :: none

Reviewed November 5, 2026, 9:22 PM ET / November 6, 2026, 02:22 UTC (Revision 6).

Target the shared search TextBox itself, inject Alt+Right as a native chord, and scroll the expanded list through its viewport while retaining full-description assertions.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@bkudiess

bkudiess commented Nov 5, 2026

Copy link
Copy Markdown
Collaborator Author

Current head: 73209369dafdfe349f8198be562c95c8ef74cfa1. The follow-up changes only two test files, not shipping code.

The four failures in CI run 41933164539 are diagnosed:

  • Light/Dark Settings chrome still searched for an Edit inside the former AutoSuggestBox. The shared input is itself a native Edit; the test now asserts its type, value and focus directly.
  • The shared native-input adapter omitted Alt+Right, typing %{RIGHT} literally into the composer. It now injects the actual chord, preserving existing history assertions.
  • The expanded-description test used UIA ScrollItemPattern on a rebuilt grouped list. It now focuses the input and uses the existing viewport ScrollPattern helper. The full-row viewport assertion remains, with added final-line/end-of-results assertions.

All four originally failing cases passed in the current local Debug run. Full selected results: Debug 16 passed / 2 failed (held-modifier refusal and foreground-activation refusal); unsigned non-Dev Release 14 passed / 4 failed (three UI-readiness timeouts and one foreground refusal). This is not a clean 18-case local pass. Settings Light/Dark and expanded-description checks pass in both configurations; pinned history passes Debug and was foreground-blocked in Release.

Below is the current-head Release capture after expanding and scrolling to the sixth result. The entire final description is readable, source status follows the results, and More is gone. Synthetic fixture Gateway data only; this does not prove a released Gateway or actual Dashboard browser routing.

The earlier complete 15/15 Release run and the existing destination screenshots are from 806184fa, whose shipping source is unchanged in this follow-up. Hosted CI is rerunning on the exact new head. The last ClawSweeper review found no defects but rated overall readiness Gold, with patch quality Platinum; released-Gateway search/denial and browser-route proof remains unverified.

Expanded sixth search result and full multiline description on current-head Release

@bkudiess

bkudiess commented Nov 5, 2026

Copy link
Copy Markdown
Collaborator Author

Repaired-head CI attempt 1 (7320936): all 63 mock-Gateway UI cases and 34 app/profile cases passed, including the formerly failing expanded-description and pinned-history checks. Functional UI passed19/19; broad accessibility passed22 with1 separately exercised opt-in skip. The general UI suite aborted after151 passes and7 ordinary skips because testhost crashed while running unchanged Reactor reasoning-picker coverage; there were no reported assertion failures in its partial TRX, and no crash dump was captured. This is not a green general UI suite. Preserved logs, TRX and blame sequence, and requested one bounded replay of only the aborted UI job plus dependent gates. No shipping source, assertion, skip or timeout was changed for the replay.

bkudiess and others added 2 commits November 4, 2026 20:51
Move focus off the disappearing More button, avoid restoring an obsolete viewport during expansion, and reveal the new native row after grouped layout settles. Keep metadata focus and scroll preservation separate. Strengthen native proof to require the actual focus handoff without test-driven scrolling.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
…sources

Retain all six search catalogs alongside the localized schema remove-item label. Preserve upstream accessibility fixture and keyboard-lane policy; no search assertions or scenarios are removed.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@bkudiess

bkudiess commented Nov 5, 2026

Copy link
Copy Markdown
Collaborator Author

Current head a763511 integrates main06187826 and the production Show more repair207c890e. Native ARM64 unsigned non-Dev Release:15/15 MainSearch journeys passed,0skips. The complete Debug15-case lane passed on207c890e before the resource-only conflict resolution/main integration. The strengthened long-description case fails before the repair because the new row never receives focus; after repair it requires both real keyboard focus and complete viewport containment without manually scrolling the expanded list. SearchHost now moves focus off the disappearing More button, separates expansion from normal same-query scroll preservation, and performs a generation/owner/selection-guarded reveal after grouped layout. This current-head Release capture shows the actual focused sixth result, all description lines and inline source status. The synthetic fixture does not establish released-Gateway search/denial or real Dashboard browser routing. Full local closeout and hostedCI41971001031 are still finishing; previous failures remain preserved, not reclassified as green.

Current-head Release: Show more focuses and fully reveals the sixth result without manual scrolling

@bkudiess

bkudiess commented Nov 5, 2026

Copy link
Copy Markdown
Collaborator Author

Current-head CI41971001031 attempt1: all67 fixture UI cases and34 app/profile cases passed, including every search scenario. General UI641 passed/1 failed/7 ordinary skips; Functional19 passed; broad accessibility22 passed/11 separately gated opt-in skips after the upstream accessibility-baseline integration. Ordinary skips are not claimed as executed proof.

Job Failing test Error Classification
UI, functional, accessibility OnboardingAiPageTests.CurrentModel_NativeUiaRespectsActionAvailability(disabled: True) Disabled-action invocation expected WinUI COM E_ELEMENTNOTENABLED, but the cached UIA element became unavailable Unrelated UIA lifetime failure: this mounted onboarding test and its fake PageTransport path are unchanged and do not mount search; both theory cases passed in the preceding complete UI run.

Requesting one replay of only this failed UI job and its dependent CI Gate. No test assertion, skip, timeout or product source is changed for it. A repeated same-head failure will require investigation, not another blind replay. Current local Release search proof is15/15 with0skips; full local mandatory closeout is still running after compiler locks released.

@bkudiess

bkudiess commented Nov 5, 2026

Copy link
Copy Markdown
Collaborator Author

@clawsweeper re-review

@clawsweeper

clawsweeper Bot commented Nov 5, 2026 •

Copy link
Copy Markdown

🦞👀
Exact review queued.

Re-review progress:

@clawsweeper clawsweeper Bot added proof: 📸 screenshot Contributor real behavior proof includes screenshot evidence. status: ⏳ waiting on author ClawSweeper has contributor-facing work open and is waiting for author action. and removed status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. labels Nov 5, 2026
bkudiess and others added 2 commits November 4, 2026 22:10
Retain typed detached-search errors, bounded user-profile error diagnostics, and existing speech/question exceptions. Preserve the upstream profile identity and bounded native-setup owners without restoring parallel paths.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Append new rows to observable groups rather than resetting the grouped ItemsSource. Retain the scroll anchor and refresh shifted automation indices, with native coverage for expansion in multiple groups.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@bkudiess

bkudiess commented Nov 5, 2026

Copy link
Copy Markdown
Collaborator Author

Head5299ba0adb4370f69929f064c84578161bf4be8c: native search expansion now appends rows to observable groups without resetting the native grouped view. Real multi-group proof checks both newly revealed Settings and Skills rows, including shifted indices. Current local required closeout is green: stockfullbuildall5; Shared4940passed/25expectedopt-in skips; Tray5115passed/0skips; CLI129passed/0skips. Current native ARM64 unsigned non-Dev Release is16/16passed/0skips. Debug latest11passed/5failed on shared-desktop foreground/focus/readiness, with both expansion regressions passed; no clean full Debug claim. Independent bounded rubber-duck review found no blocking defect in the incremental mechanism. Current screenshot shows actual newly revealed row focus and complete multiline description with inline status. This remains synthetic Gateway proof, not released-Gateway authorization/indexing or actual Dashboard browser routes. HostedCI42070187223 is still running; the last ClawSweeper review rated overallGold3/6 and qualityPlatinum4/6.

Current5299ba0a Release: incremental expansion keeps the focused sixth result fully visible

@bkudiess

bkudiess commented Nov 5, 2026

Copy link
Copy Markdown
Collaborator Author

@clawsweeper re-review

@clawsweeper

clawsweeper Bot commented Nov 5, 2026 •

Copy link
Copy Markdown

🦞👀
Exact review queued.

Re-review progress:

@clawsweeper clawsweeper Bot removed proof: 📸 screenshot Contributor real behavior proof includes screenshot evidence. status: ⏳ waiting on author ClawSweeper has contributor-facing work open and is waiting for author action. labels Nov 5, 2026
@clawsweeper clawsweeper Bot added rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. status: ⏳ waiting on author ClawSweeper has contributor-facing work open and is waiting for author action. labels Nov 6, 2026
Describe header actions and nonvisual UI Automation status after footer removal.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@bkudiess

bkudiess commented Nov 6, 2026

Copy link
Copy Markdown
Collaborator Author

Fixed the P3 design-contract finding in c27c8cd. DESIGN.md now places conditional More/Retry beside the input and documents nonvisual UI Automation ItemStatus/notifications. This commit changes only that prose paragraph; product, tests and workflows are unchanged from the runtime-tested parent. Local validation passed: .\scripts\validate-docs.ps1 (72 Markdown files, seven proof pools), .\scripts\validate-agent-skills.ps1 (16 skills/25 Markdown files), .\scripts\test-agent-skills-validator.ps1 (27 fixtures plus repository skills), and git diff --check. Existing Platinum overall/Diamond proof was awarded by the bot, not manually labeled. Final-head CI 42142995466 is in progress. @clawsweeper re-review

@bkudiess

bkudiess commented Nov 6, 2026

Copy link
Copy Markdown
Collaborator Author

@clawsweeper re-review

@clawsweeper

clawsweeper Bot commented Nov 6, 2026 •

Copy link
Copy Markdown

🦞👀
Exact review queued.

Re-review progress:

@clawsweeper clawsweeper Bot added status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. and removed status: ⏳ waiting on author ClawSweeper has contributor-facing work open and is waiting for author action. labels Nov 6, 2026
@bkudiess

bkudiess commented Nov 6, 2026

Copy link
Copy Markdown
Collaborator Author

Final-head ClawSweeper review now reports Platinum overall, Diamond proof confidence, no findings and no before-merge items at c27c8cd. CI attempt 1 failed two documented existing failure families: unchanged Reactor reasoning-picker native testhost crash (178 passed before abort), and pre-search E2E fixture MCP startup timeout (service initialization began about 79 seconds after spawn, leaving little of the existing 90-second window). The startup/capability owners and picker sources are unchanged; the E2E fixture delta only filters copied artifacts. Logs and failed attempt are retained. After the entire run completed, one failed-jobs-only replay was requested with gh run rerun 42142995466 --failed. No timeout/assertion was weakened, no product fix is claimed, and no second replay of this SHA is planned. The PR remains draft until this attempt finishes successfully.

Bound only Windows sharing/lock waits, retain explicit deadline failures and allow cleanup recovery after release. Cover transient and persistent held log handles.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@bkudiess

bkudiess commented Nov 6, 2026

Copy link
Copy Markdown
Collaborator Author

Published 8c1813c to repair the distinct attempt-2 teardown failure, not to rerun an unchanged failing SHA. The two real-file-lock regressions both failed before the repair with the exact openclaw-tray.log sharing IOException. After repair, all 34 selected profile/lifecycle tests passed; the actual ARM64 app/MCP/profile fixture also passed 36/36. Only Win32 sharing/lock codes 32/33 wait within a named 10-second cleanup deadline (explicit environment override); persistent locks still fail with the original I/O error, other errors still propagate, and reparse checks run before every delete attempt. No test assertion or timeout was weakened. Full build passed all five product targets; Tray passed 5123/5123; docs passed72 files. The local Shared run is retained as 4937 passed /2 failed /26 skipped: this host lacks symbolic-link creation privilege, and the unchanged ephemeral-port error-classifier test hit its known Network-versus-Server defect. Neither unrelated test was changed or silently omitted. Independent rubber-duck review of this cleanup delta found no blocking issues; synchronous bounded cleanup is an explicit test-harness tradeoff. Full native fixture and fresh exact-head CI are pending. The prior final-head ClawSweeper review was Platinum overall /Diamond proof with no findings, not relabeled as a review of this new harness delta.

@bkudiess

bkudiess commented Nov 6, 2026

Copy link
Copy Markdown
Collaborator Author

@clawsweeper re-review

@clawsweeper

clawsweeper Bot commented Nov 6, 2026 •

Copy link
Copy Markdown

🦞👀
Exact review queued.

Re-review progress:

@bkudiess

bkudiess commented Nov 6, 2026

Copy link
Copy Markdown
Collaborator Author

Fresh native ARM64 proof at 8c1813c: the full isolated fixture passed71/71 native UI cases (all17 MainSearch journeys) and36/36 actual app/MCP/profile cases, with zero skipped selected cases. This newly captured image was inspected directly and shows the complete keyboard-focused sixth multiline result without a footer. The fixture used the task-worktree Debug ARM64 app, synthetic Gateway data and owned profiles; all fixture processes completed cleanup. This is native UI/MCP proof, not a released-Gateway or signed-package claim. ClawSweeper independently reviewed this new head: Platinum overall, Diamond proof, no findings. Exact-head hosted CI is still in progress; the separately recorded local Shared failures remain disclosed.

Head8c1813c0 native ARM64 search: focused sixth multiline result fully visible without a footer

@bkudiess

bkudiess commented Nov 6, 2026

Copy link
Copy Markdown
Collaborator Author

8c1813c hosted attempt1: all17 MainSearch cases passed, including the formerly failing teardown path; app/MCP/profile and actual released-Gateway setup/connect passed. Overall CI is not green: the framework UI testhost hit the existing unchanged ReasoningPicker_PreservesCurrentValueWithoutInventingSupportedOptions crash, and the fixture had70pass/1fail in the unchanged HistoricalFractionalVoiceConversationRendersWithoutLoadingPlaceholder cached-view restoration step. Its retained snapshot proves all30 voice entries initially loaded; the failure is after navigating away/back, with no search RPC. Chat rendering/cached restoration owners and these tests are unchanged. The new cleanup tests and all search cases passed; no weakened assertion, timeout or product change was made. After inspecting logs, receipt, snapshot and source ownership, one failed-jobs-only replay was requested for this new head. No further replay of8c1813c0 is planned if it fails again. The local complete native fixture remains71/71 plus36/36 app/MCP/profile. PR remains draft pending green CI.

@bkudiess

bkudiess commented Nov 6, 2026

Copy link
Copy Markdown
Collaborator Author

Fresh released-Gateway/browser proof for PR head8c1813c0, CI42149147134 attempt1 (tested merge2ef1f14f6f46541f98dc7cef33ec56f9e4a13971). The selected ReleasedGateway_SearchDenialAndDashboardRoutes passed, not skipped: released OpenClaw2026.11.1(4ffdd20), production exact-session metadata/transcript matches, config schema, approvals-only FORBIDDEN, and authenticated actual Edge rendering root Model Setup and /skills. Setup/connect report:53passed/0failed/7ordinary opt-in skips; all9browser-storage admission cases passed; downloaded archive contains0browser-profile files. These are newly downloaded and visually inspected captures from that exact invocation, not relabeled earlier images. npm provenance is in gateway-release.json. This does not claim exact skill selection, provider inference or native packaged-Gateway proof. Core/CLI and Tray/setup reports on this head also passed. Only the diagnosed UI-job replay remains pending.

Head8c1813c0 actual released Gateway root renders Model Setup

Head8c1813c0 actual authenticated released Gateway Skills destination

@bkudiess bkudiess mentioned this pull request Nov 6, 2026
8 of 16 tasks
@bkudiess
bkudiess marked this pull request as ready for review November 6, 2026 03:02
@bkudiess
bkudiess merged commit 4ea07e8 into openclaw:main Nov 6, 2026
50 of 52 checks passed
@clawsweeper clawsweeper Bot mentioned this pull request Nov 6, 2026
10 of 16 tasks
bkudiess added a commit that referenced this pull request Nov 6, 2026
Merge origin/main (4ea07e8) into the Automations page. The only textual
conflict was CronPage.xaml.cs, where main still edited the retired XAML
page; the Reactor host is kept.

Main's shared navigation search (#2016) opens a found automation through
CronPage.RevealSearchJob, which the Reactor page did not have. Port it:

- AutomationsStore.RevealAsync looks the job up on the Gateway, selects it
  and reports Revealed, NotFound, Failed or Superseded. A missing job
  selects nothing instead of leaving a phantom selection, and a reveal
  that loses to a newer load changes nothing.
- A reveal can widen a specific-agent filter to All agents so a job owned
  by another agent is shown. Search and the post-save reveal widen; agenda
  and attention reveals stay in the current scope. New automations still
  belong to the route agent.
- A job that no longer exists shows the Hub search "unavailable" wording
  as a neutral, auto-dismissing in-page notice. It is not a global
  notification and adds no new localized strings.
- AutomationsRevealChannel carries the page request to the mounted root,
  holds one pending request until the root attaches, and supersedes it on
  dispose, so a search that lands before the first render is not lost.
- SettingsShellView and the search catalog from main are unchanged.

Docs: update the architecture ledger rows for the Automations page and add
the search reveal owner with its behavioral guard.

Tests: store reveal tests (found, missing, filtered, widened, saved for
another agent, disconnected, superseded), channel tests and source
contract tests.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

P2 Normal priority bug or improvement with limited blast radius. proof: sufficient Contributor real behavior proof is sufficient. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant