Skip to content

[2 of 4] tui: route app and skill enablement through app server#22914

Open
etraut-openai wants to merge 3 commits into
mainfrom
etraut/tui-config-app-server-2-catalog-state
Open

[2 of 4] tui: route app and skill enablement through app server#22914
etraut-openai wants to merge 3 commits into
mainfrom
etraut/tui-config-app-server-2-catalog-state

Conversation

@etraut-openai
Copy link
Copy Markdown
Collaborator

@etraut-openai etraut-openai commented May 15, 2026

Why

App and skill toggles are user config mutations too. When the TUI is attached to a remote app server, writing those toggles into the local config.toml makes the UI report success without updating the server that actually owns the session.

This is [2 of 4] in a stacked series that moves TUI-owned config mutations onto app-server APIs.

What changed

  • Routed app enable/disable persistence through app-server config batch writes.
  • Routed skill enable/disable persistence through skills/config/write.
  • Avoided refreshing local config from disk after these writes when the TUI is connected to a remote app server.

Config keys affected

  • apps.<app_id>.enabled
  • apps.<app_id>.disabled_reason
  • [[skills.config]] entries keyed by path, with enabled = false used for persisted disables

Suggested manual validation

  • Connect the TUI to a remote app server, disable an app, reconnect, and confirm the app remains disabled from remote config rather than local disk state.
  • Re-enable the same app and confirm both apps.<app_id>.enabled and apps.<app_id>.disabled_reason are cleared remotely.
  • Disable a skill in the manage-skills UI and confirm a remote [[skills.config]] disable entry appears.
  • Re-enable that skill and confirm the disable entry is removed and the effective enabled state updates without relying on local config reloads.

Stack

  1. #22913 [1 of 4] primary settings writes
  2. #22914 [2 of 4] app and skill enablement
  3. #22915 [3 of 4] feature and memory toggles
  4. #22916 [4 of 4] startup and onboarding bookkeeping

@etraut-openai etraut-openai marked this pull request as ready for review May 15, 2026 22:40
etraut-openai added a commit that referenced this pull request May 15, 2026
etraut-openai added a commit that referenced this pull request May 15, 2026
@etraut-openai etraut-openai force-pushed the etraut/tui-config-app-server-2-catalog-state branch from ff17872 to 6a181fa Compare May 15, 2026 22:48
etraut-openai added a commit that referenced this pull request May 16, 2026
## Why
The TUI can run against a remote app server, but several high-traffic
settings still persisted by editing the local config file. That sends
remote sessions' preference writes to the wrong machine and lets local
disk state drift from the app-server-owned config.

This is **[1 of 4]** in a stacked series that moves TUI-owned config
mutations onto app-server APIs.

## What changed
- Added a small TUI helper for typed app-server config writes.
- Routed primary interactive preference writes through
`config/batchWrite`.
- Preserved existing profile scoping for settings that already support
`profiles.<profile>.*` overrides.

## Config keys affected
- `model`
- `model_reasoning_effort`
- `personality`
- `service_tier`
- `plan_mode_reasoning_effort`
- `approvals_reviewer`
- `notice.fast_default_opt_out`
- Profile-scoped equivalents under `profiles.<profile>.*`

## Suggested manual validation
- Connect the TUI to a remote app server, change `model` and
`model_reasoning_effort`, reconnect, and confirm the remote config
retained both values while the local `config.toml` did not change.
- Change `personality`, `plan_mode_reasoning_effort`, and the explicit
auto-review selection, then reconnect and confirm those choices persist
through the app server.
- Clear the service tier back to default and confirm `service_tier` is
cleared while `notice.fast_default_opt_out = true` is persisted
remotely.
- Repeat one setting change with an active profile and confirm the write
lands under `profiles.<profile>.*`.

## Stack
1. [#22913](#22913) `[1 of 4]`
primary settings writes
2. [#22914](#22914) `[2 of 4]` app
and skill enablement
3. [#22915](#22915) `[3 of 4]`
feature and memory toggles
4. [#22916](#22916) `[4 of 4]`
startup and onboarding bookkeeping
Base automatically changed from etraut/tui-config-app-server-1-settings to main May 16, 2026 21:27
@etraut-openai etraut-openai force-pushed the etraut/tui-config-app-server-2-catalog-state branch from df4e122 to fd994c7 Compare May 16, 2026 21:31
Copy link
Copy Markdown
Contributor

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: fd994c7a16

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread codex-rs/tui/src/app/event_dispatch.rs Outdated
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.

1 participant