Read settings list directly from the daemon

Merged
AU
2d ago
+223-152

cmux settings list and cmux config list read typed settings.list rows directly from the session daemon. Listing works with the GUI app unavailable and preserves the daemon's schema order, effective/default values, and customized/managed metadata. --section filters rows; --keys, schema, and validate remain offline commands.

The rebase preserves the current daemon CRUD routes: keyed get and unconfirmed writes use the daemon, while get without a path and writes with --confirm retain their app path. English and Japanese help describe these routes. Generic MCP exposure stays excluded; the base's curated settings tools keep their own read policy and redaction.

Part of #21017.

Changelog

Changed: cmux settings list and cmux config list read effective settings directly from the daemon without opening the app.

Validation

  • Head: aabe289013ee5530a77d44e2338aff5d4e0e7ab9. Rebased onto feat-cmux-next at c9e07228381c36f8f82b587c2583170c3fd289c1, preserving the base's daemon CRUD changes. Published ancestry is retained by a reconciliation merge, and both updates used normal pushes.
  • Independent correctness review passed on this exact head. The sole finding, stale help routing after the rebase, is corrected in English and Japanese.
  • Exact-head settings suite passed 68/68 tests, including settings_list_reads_the_daemon_without_an_app: cmux-ci step 0127ea13f4c6fbae9acf76ff, remote run 40971454311. Command: cmux-ci run --class isolated --script scripts/ci/cmux-tui-rust-check.sh --ref aabe289013ee5530a77d44e2338aff5d4e0e7ab9 --key pr25768-settings-aabe2890 --arg test --arg settings --timeout 7200. This is a focused settings run; other workspace tests were filtered out.
  • The push hook reported no new violations; git diff --check passes. GitHub's final-head cmux-next checks and defaults guard passed.
  • The release-note guard fails on the unrelated inspector-error-colours.md highlight, absent from this PR head. The same test fails with the same missing docs/try-it field on base 20865c186d54c1a1ed42fe9122e0f9a8a99d79dd: base job. Its Guard status wrapper inherits that result.
  • GitHub's warn and PR status link jobs failed with shared installation API rate-limit errors (HTTP 403), before they could post comments; these are infrastructure failures. The earlier generated/default failures used a stale PR base snapshot; refreshing the existing base restored the intended 14-file diff.

Observed / Not run

No local builds or tests were run. The remote settings suite exercises daemon listing without the app, owner metadata, filtering, offline completion, confirmation routing, and existing settings policy coverage. No native UI changed, so no app screenshot or new GUI build was requested. The existing prior-head fleet compile remains historical evidence; it is not claimed as a final-head app build.

The Rust help change was manually checked in English and Japanese. An additional cmux-ci test localization/release-note audit could not start because the installed launcher lacks its required agent-identity helper; it executed no tests. The final-head GitHub localization check passed.