Skip to content

[ryoku] rashin: make Updates AI repair respond and support Codex - #732

Merged
aethctl merged 4 commits into
Ryoku-dev:unstable-devfrom
AkiVonAkira:fix-ai-updates
Nov 5, 2026
Merged

aethctl merged 4 commits into
Ryoku-dev:unstable-devfrom
AkiVonAkira:fix-ai-updates

Conversation

@AkiVonAkira

Copy link
Copy Markdown
Contributor

What changed

Fix with AI on the Updates completion screen could appear unresponsive for 50 to 94 seconds while a health scan ran before the terminal opened. Launch failures disappeared because the page discarded the command output. Codex was also missing from the supported repair harnesses.

Open the terminal before scanning, show an immediate opening state, reject duplicate pending launches, and display the launch result or error. The terminal keeps scan errors visible. Rashin can now select Codex for repairs independently of its chat agent, with a model and reasoning effort for that session only. For example:

"fix": {"agent": "codex", "model": "gpt-6.1-sol", "effort": "low"}

Existing harness preferences stay the same when fix is unset. General Codex settings are unchanged.

Area

ryoku, including the Settings Hub and Rashin.

How it was tested

  • Backend go test ./... and go vet ./... passed. Regression tests cover the configured Codex arguments and opening a terminal before the health scan.
  • The real Updates QML page ran in an isolated headless Quickshell harness with a simulated completed update and fake terminal, doctor and agent boundaries. Invoking the button's action twice produced one launch, immediate feedback, and the expected Codex arguments. A failed terminal launcher produced a visible error and allowed retry.
  • A separate offscreen Quickshell process probe confirmed a missing Rashin command returns collected stderr and exit 127.
  • The repository's Hub QML lint gate and commit/push hooks passed.
  • Local packages containing only the changed binary and QML were installed on an existing packaged system. Package integrity, materialized QML, service executable and repair settings were checked.
  • Earlier harmless codex exec probing confirmed the requested model and low effort work. No actual AI repair ran.

The headless check invoked the button's action signal, not a pointer click. The user's live Hub button and native terminal window were not exercised. The scan timeout still applies inside the terminal. New UI strings await translation.

Isolated fixture captures, before and one second after activation:

Before After
Before: no response after activation After: terminal launch acknowledged

Checklist

  • One logical change, with clear [area] scope: summary commit subjects.
  • Matching area changelogs updated.
  • Git hooks pass locally without --no-verify.
  • Applicable QML load lint passes; no Lua or shell files changed.
  • No duplicated config, dead code, commented-out code, or em-dash.
  • Behavior documented.

Fix with AI knew only Hermes, Oh My Pi and one other harness, so a machine
with Codex installed never opened Codex. A fix setting in rashin.json now
names the harness apart from the chat agent and, for Codex, the model and
reasoning effort of that one session, passed as -m and
-c model_reasoning_effort so Codex's own config stays untouched.

Note: New: Fix with AI can open Codex, with the model and effort set under "fix" in rashin.json
The Updates page button ran the full health check (50 to 94 s, with a 90 s
cap) before any terminal opened, and threw away the command's output, so a
press showed nothing and a failure left no trace. Off a terminal the fix now
opens the terminal at once and runs the check there, held open on an error,
and the button shows OPENING, then the command's answer or its error.

Note: Fixed: Fix with AI on the Updates page now reacts at once and shows why when it cannot open
Use a shell so a missing Rashin executable returns a collected error. Clear the previous repair response when dismissing an update.

Note: Fixed: Fix with AI shows missing-command errors and clears old feedback
@aethctl
aethctl merged commit 5dca77d into Ryoku-dev:unstable-dev Nov 5, 2026
19 checks passed
@AkiVonAkira
AkiVonAkira deleted the fix-ai-updates branch November 5, 2026 09:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants