Skip to content

Preserve installed Local AI runtime controls - #1206

Open
TheAngryPit wants to merge 4 commits into
openclaw:karkarl-refine-local-ai-setup-uxfrom
TheAngryPit:codex/fix-pr1204-managed-runtime-actions
Open

Preserve installed Local AI runtime controls#1206
TheAngryPit wants to merge 4 commits into
openclaw:karkarl-refine-local-ai-setup-uxfrom
TheAngryPit:codex/fix-pr1204-managed-runtime-actions

Conversation

@TheAngryPit

@TheAngryPit TheAngryPit commented Aug 22, 2026

Copy link
Copy Markdown
Contributor

Summary

This is a narrow follow-up for the ClawSweeper P1 on #1204.

Hardware eligibility now gates only fresh setup retry. It no longer disables management of an already installed Companion-managed Local AI runtime.

  • Preserve Start, Stop, Restart, Open logs, Repair connection, and Open chat when their existing runtime predicates allow them.
  • Stop disabling the three enclosing Local AI management cards.
  • Keep the unavailable InfoBar and See why diagnostics.
  • Keep fresh setup retry blocked when hardware eligibility fails.

This preserves #1204's UX work and does not change Core, WSL, credentials, or package trust behavior.

Validation

  • Focused failed-first proof: 3 relevant failures before the repair.
  • Focused final tests: 8 passed, 0 failed, 0 skipped.
  • ./build.ps1: PASS for Shared, CLI, WinNodeCli, SetupEngine, and WinUI.
  • Shared: 3,812 passed, 32 skipped, 0 failed.
  • Tray: 2,711 passed, 0 skipped, 0 failed.
  • git diff --check: PASS.
  • Independent exact-diff review: no actionable findings.

Exact-head native behavior proof

Fresh isolated Windows proof passed on exact PR head 2887846627225b2486ce297ba952e08ab439ef3d with candidate executable SHA-256 FAF6E425B7B5A6CAB92C9E65250A37FCC78810690F7DA20EF4C9DB3F0BA366AF.

A fresh real host probe classified new Local AI setup as unavailable (DriverTooOld). Before candidate launch, the harness prepared a previously qualified install through the production start → health → persist → stop route, retained its verified endpoint receipt, and proved the preparatory runtime and listener were absent. The exact candidate then background-started its managed runtime.

Native UI Automation showed:

  • unavailable InfoBar present, enabled, and on-screen;
  • Details affordance present, enabled, and on-screen;
  • Start present but disabled;
  • Stop, Restart, and Open logs present, enabled, and on-screen;
  • Open chat present and UIA-enabled (below the captured viewport);
  • Retry setup absent;
  • no action error.

Pairing used only a disposable Core. Final cleanup removed the candidate Tray, managed llama runtime, disposable Gateway processes/data, listener, and WSL distro.

Allowlisted evidence contained only the redacted native screenshot, UIA state, and proof provenance; no raw logs were included. Artifact SHA-256 values:

  • redacted native screenshot: 77F588CC316A8AF51ADB736B0B1A06FE6E0765CE7AF6811BB6B01D30E52ED9A4
  • UIA state: BE5A57019137AB7F2CAE5A8EE58D9DAF471418E4F42012479A1774FDD329EAB6
  • proof provenance: B51C58AE017184BE501C3077B28492ACCA0BAE4A343B78301FB34FF9C5EC896F
  • allowlist: 0A788DB0D24135014A894B1E710DD5D6E5A00CDFC5A0ED324CE1AD385C7AE62A

Proof level: runtime_proven and scoped end_to_end_proven for preserving healthy existing installed-runtime controls when fresh setup is unavailable.

This does not prove fresh installation on unsupported hardware, Details/Open chat action completion or inference, the stopped-state Start action, or #1208's null-endpoint first-start path.

@clawsweeper

clawsweeper Bot commented Aug 22, 2026

Copy link
Copy Markdown

🦞👀
ClawSweeper picked this up.

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

@clawsweeper clawsweeper Bot added P2 Normal priority bug or improvement with limited blast radius. rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. labels Aug 22, 2026
@clawsweeper

clawsweeper Bot commented Aug 22, 2026

Copy link
Copy Markdown

Codex review: needs maintainer review before merge. Reviewed August 23, 2026, 4:34 AM ET / 08:34 UTC.

ClawSweeper review

What this changes

The PR separates Local AI hardware eligibility for fresh setup from controls that manage an existing Companion-managed Local AI runtime.

Merge readiness

⚠️ Ready for maintainer review - 2 items remain

Keep open. This is a correct, focused stacked follow-up: it preserves installed-runtime controls while retaining hardware gating for fresh setup, with strong exact-head native UI evidence.

Priority: P2
Reviewed head: 2887846627225b2486ce297ba952e08ab439ef3d

Review scores

Measure Result What it means
Overall readiness 🦞 diamond lobster (5/6) A tightly scoped patch with focused regression coverage and credible exact-head native proof.
Proof confidence 🦞 diamond lobster (5/6) Sufficient (logs): The PR body supplies exact-head native UI Automation evidence for the changed unavailable-hardware and installed-runtime control state.
Patch quality 🦞 diamond lobster (5/6) No actionable review findings were identified.

Verification

Check Result Evidence
Real behavior Verified Sufficient (logs): The PR body supplies exact-head native UI Automation evidence for the changed unavailable-hardware and installed-runtime control state.
Evidence reviewed 7 items Scoped action gating: Hardware eligibility is now represented as setup availability, and only retry setup retains that gate; Start, Stop, Restart, logs, reconnect, and chat keep their existing runtime or gateway predicates.
UI no longer disables whole cards: The page removes the global card-level availability helper while continuing to apply each individual action predicate to its button.
Regression coverage: Focused tests cover unsupported hardware with a healthy installed runtime, connected chat, stopped-runtime start, and blocked fresh setup retry.
Findings None None.
Security None None.

Live Verification

Command: dotnet test ./tests/OpenClaw.Tray.Tests/OpenClaw.Tray.Tests.csproj --no-restore --filter FullyQualifiedName~UnsupportedHardware

Result: FAIL (failed) — execution before step 1 run: sh -lc pnpm install --ignore-scripts --frozen-lockfile failed: ! Corepack is about to download https://registry.npmjs.org/pnpm/-/pnpm-11.22.0.tgz

sh -lc pnpm install --ignore-scripts --frozen-lockfile failed: ! Corepack is about to download https://registry.npmjs.org/pnpm/-/pnpm-11.22.0.tgz

Assertions:

  • FAIL expect_output: Passed!

How this fits together

The Tray Local AI page combines hardware eligibility, managed-runtime state, and gateway state into setup and management controls. Its view model feeds the WinUI page, which then enables the appropriate runtime actions.

flowchart LR
A[Hardware eligibility] --> C[Local AI view model]
B[Managed runtime and gateway state] --> C
C --> D[Fresh setup retry]
C --> E[Installed runtime actions]
D --> F[Tray Local AI page]
E --> F
Loading

Before merge

  • Resolve merge risk (P1) - This PR is stacked on the open unavailable-state UX PR. Landing that prerequisite without this follow-up would globally disable controls for an already installed runtime on unsupported hardware.
  • Complete next step (P2) - No repair lane is needed because no actionable patch defect was found; the remaining work is normal stacked-PR merge handling.
Agent review details

Security

None.

Review metrics

Metric Value Why it matters
Production versus test delta production +8/-21, tests +108/-22 The small control-gating change is backed by substantially expanded focused coverage.

Merge-risk options

Maintainer options:

  1. Land the stack in order (recommended)
    Merge the unavailable-state UX prerequisite with this follow-up so upgrades retain runtime-management controls while fresh setup remains unavailable.

Technical review

Best possible solution:

Land the unavailable-state UX change and this follow-up together, preserving the fresh-setup block while leaving installed-runtime actions governed by ownership, health, and gateway state.

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

Yes. The parent availability implementation globally gates every control, while this branch's focused tests and exact-head native UI Automation scenario directly exercise the installed-runtime exception.

Is this the best way to solve the issue?

Yes. Restricting hardware eligibility to fresh setup while preserving each action's established runtime and gateway predicate is the narrowest maintainable solution.

AGENTS.md: found and applied where relevant.

Codex review notes: model internal, reasoning high; reviewed against ccd64bbb7d68.

Labels

Label changes:

  • add proof: sufficient: Contributor real behavior proof is sufficient. The PR body supplies exact-head native UI Automation evidence for the changed unavailable-hardware and installed-runtime control state.
  • add rating: 🦞 diamond lobster: Overall readiness is 🦞 diamond lobster; proof is 🦞 diamond lobster and patch quality is 🦞 diamond lobster.
  • add status: 👀 ready for maintainer look: ClawSweeper has no concrete contributor-facing blocker left for this PR. Sufficient (logs): The PR body supplies exact-head native UI Automation evidence for the changed unavailable-hardware and installed-runtime control state.
  • remove status: 📣 needs proof: Current PR status label is status: 👀 ready for maintainer look.
  • remove rating: 🦪 silver shellfish: Current PR rating is rating: 🦞 diamond lobster, so this older rating label is no longer current.

Label justifications:

  • P2: This fixes a bounded but user-visible Local AI control regression without evidence of a security issue or core-runtime outage.
  • merge-risk: 🚨 compatibility: The change intentionally alters which controls existing Local AI installations can use after the unavailable-state UX upgrade.
  • rating: 🦞 diamond lobster: Overall readiness is 🦞 diamond lobster; proof is 🦞 diamond lobster and patch quality is 🦞 diamond lobster.
  • status: 👀 ready for maintainer look: ClawSweeper has no concrete contributor-facing blocker left for this PR. Sufficient (logs): The PR body supplies exact-head native UI Automation evidence for the changed unavailable-hardware and installed-runtime control state.
  • proof: sufficient: Contributor real behavior proof is sufficient. The PR body supplies exact-head native UI Automation evidence for the changed unavailable-hardware and installed-runtime control state.

Evidence

What I checked:

Likely related people:

  • Joel: The current-main Local AI feature commit introduced the managed runtime and its Tray controls. (role: introduced managed Local AI runtime and Tray controls; confidence: high; commits: ccd64bbb7d68; files: src/OpenClaw.Tray.WinUI/Presentation/LocalAiPageViewModel.cs, src/OpenClaw.Connection/LocalAi/LlamaServerRuntimeService.cs)
  • Karen Lai: The stacked base commit added the Local AI availability presentation that this follow-up narrows. (role: introduced adjacent availability UX; confidence: high; commits: 03c5deff01ff; files: src/OpenClaw.Tray.WinUI/Pages/LocalAiPage.xaml.cs, src/OpenClaw.Tray.WinUI/Presentation/LocalAiPageViewModel.cs)

Rating scale

Score Internal tier Crab rank Meaning
6/6 S 🦀 challenger crab Exceptional readiness
5/6 A 🦞 diamond lobster Very strong readiness
4/6 B 🐚 platinum hermit Good normal PR; ordinary maintainer review
3/6 C 🦐 gold shrimp Useful, but confidence is limited
2/6 D 🦪 silver shellfish Proof or implementation needs work
1/6 F 🧂 unranked krab Not merge-ready
N/A NA 🌊 off-meta tidepool Rating does not apply

Overall follows the weaker of proof and patch quality.
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics.

Workflow

  • ClawSweeper keeps one durable marker-backed review comment per issue or PR.
  • Re-runs edit this comment so the latest verdict, findings, and automation markers stay together instead of adding duplicate bot comments.
  • A fresh review can be triggered by eligible @clawsweeper re-review comments, exact-item GitHub events, scheduled/background review runs, or manual workflow dispatch.
  • PR/issue authors and users with repository write access can comment @clawsweeper re-review or @clawsweeper re-run on an open PR or issue to request a fresh review only.
  • Maintainers can also comment @clawsweeper review to request a fresh review only.
  • Fresh-review commands do not start repair, autofix, rebase, CI repair, or automerge.
  • Maintainer-only repair and merge flows require explicit commands such as @clawsweeper autofix, @clawsweeper automerge, @clawsweeper fix ci, or @clawsweeper address review.
  • Maintainers can comment @clawsweeper explain to ask for more context, or @clawsweeper stop to stop active automation.

History

Review history (4 earlier review cycles)
  • reviewed 2026-08-22T15:18:48.007Z sha b327f55 :: needs real behavior proof before merge. :: none
  • reviewed 2026-08-22T15:57:25.281Z sha 74a8295 :: needs real behavior proof before merge. :: none
  • reviewed 2026-08-22T16:14:31.716Z sha edd4e75 :: needs real behavior proof before merge. :: none
  • reviewed 2026-08-22T16:32:52.235Z sha 2887846 :: needs real behavior proof before merge. :: none

@clawsweeper clawsweeper Bot added the merge-risk: 🚨 compatibility 🚨 Merging this PR could break existing users, config, migrations, defaults, or upgrades. label Aug 22, 2026
@TheAngryPit

Copy link
Copy Markdown
Contributor Author

Exact-head native proof and cleanup evidence are now in the PR body. @clawsweeper re-review

@clawsweeper clawsweeper Bot added proof: sufficient Contributor real behavior proof is sufficient. rating: 🦞 diamond lobster Very strong PR readiness with only minor maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. and removed status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. labels Aug 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

merge-risk: 🚨 compatibility 🚨 Merging this PR could break existing users, config, migrations, defaults, or upgrades. P2 Normal priority bug or improvement with limited blast radius. proof: sufficient Contributor real behavior proof is sufficient. rating: 🦞 diamond lobster Very strong PR readiness with only minor 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.

2 participants