Repair catalog: two working repairs, plus two UI defects found by driving the real TUI - #24
Merged
Merged
Conversation
…osed ClawFix detected five real problems and could repair one, which needed systemd. Two repairs are added, both built on OpenClaw's own commands and both verified against a real OpenClaw 2026.6.11 install: - auto-update-enabled-warning sets update.auto.enabled false and verifies by reading the key back (low risk, rollback restores it). - gateway-loopback-no-auth switches gateway.auth.mode to token and has OpenClaw generate one. Deliberately medium risk, not low: existing clients stop working until they carry the new token, and the preview says so. Verification reads the mode only — the token never enters a repair record. Repairable findings go from 1 to 3. On a real install: auto-update "true" -> applied, verify current "false", finding gone; auth "none" -> applied, verify mode "token", finding gone. Driving the compiled binary through a PTY on a broken install also exposed two defects that unit tests and frame captures could not see: - The sidebar sorted findings by severity and renumbered its own view, while `fix <#>` indexes the unsorted list. Reading "3. Auto-update enabled" and typing `fix 3` hit an advisory finding and answered "no reviewed automatic repair". The sidebar now carries each finding's real position; criticals still lead. - The status line printed the revision twice, pushing the finding count off the end of the line. The bridge's status already starts with it. Verified through the UI end to end: sidebar showed "4. Gateway auth missing on loopback", `fix 4` opened the approval dialog for gateway-loopback-no-auth with focus on Cancel, and approving left gateway.auth.mode = token on the real machine.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Follow-up to #23, which established that ClawFix detected five real problems and could repair
one — and that one needed systemd, so it could not fix anything in a container. This closes that
gap and fixes two UI defects that only surfaced by driving the shipped binary.
Two repairs added — ClawFix now fixes what it finds
Both use OpenClaw's own supported commands and were verified against a real OpenClaw 2026.6.11
install on a Blaxel sandbox.
auto-update-enabled-warningopenclaw config set update.auto.enabled falseconfig getgateway-loopback-no-authgateway.auth.modetotoken, thendoctor --fix --generate-gateway-tokenRepairable findings go from 1 to 3. On a real install, broken on purpose:
gateway-loopback-no-authis medium risk on purpose: existing clients stop working until theycarry the new token, and the preview says so before you approve. Verification reads a single
config key through OpenClaw rather than parsing
openclaw.json, and the auth repair never pullsthe token into a repair record.
Two UI defects, found only by driving the real thing
The compiled musl binary was driven through a PTY with a terminal emulator attached, against a
genuinely broken install. Neither defect was visible to unit tests or frame captures.
The sidebar's numbers did not match the numbers
fix <#>accepts. The sidebar sorted byseverity and renumbered its own view 1–4, while
fix <#>andexplain <#>index the unsortedfindings list. Reading "3. Auto-update enabled" and typing
fix 3reached an advisory findingand answered "This finding has no reviewed automatic repair." The sidebar now carries each
finding's real position — criticals still lead, but the numbers work.
The status line printed the revision twice, pushing the finding count off the end:
End to end through the UI, on a real machine
Sidebar listed "4. Gateway auth missing on loopback" → typed
fix 4→ approval dialog showedRisk: medium · gateway-loopback-no-auth, composer locked, focus on Cancel → approved →openclaw config get gateway.auth.modereturned token.Detect, propose, review, approve, apply, verify — fixing a real problem on a real OpenClaw
install through the shipped interface.
Gates
397 node tests, 91 TUI tests, tsc clean, prove:remediation, validate:repairs, npm audit clean,
node --checksweep, and the 21-file CLI package allowlist — all run locally before pushing.