feat(settings): expose pane divider metrics

Merged
TE
12d ago
+541-18

Fixes #4311.

Add user-facing appearance metrics for the visible split divider line and its draggable hit area: appearance.metrics.dividerThickness (0 to 6 pt) and appearance.metrics.dividerHitWidth (1 to 24 pt). The settings parser, design metrics, layout style and settings catalog share the same bounded values, so changing either setting takes effect through the existing live metric observation path. Defaults stay the same: 1 pt thickness and 7 pt drag width in both densities, still scaled by interface size. The two values move from fixed chrome tunables to density metric tunables, so their Debug Settings ids are now metrics.dividerThickness and metrics.dividerHitWidth.

Generated exports: schemas/settings/settings-schema.json, the source stamp schemas/settings-export/settings-schema.sources.sha256 and web/data/next-docs/settings-reference.generated.json were regenerated from the Swift sources by scripts/cmux-next/regenerate-settings-exports.sh in .patch mode on a Mac runner, after merging feat-cmux-next. The docs settings reference also picks up keys that were already in the base schema but missing from the reference. The MDM docs (docs/mdm/com.manaflow.cmux.json, .plist, managed-preferences.md) match the export output. The defaults snapshot schemas/defaults/cmux-next.json is bot-only (#21946) and is left to the autofix; no generated file was edited by hand.

No capture: native macOS Settings UI is unavailable for this change; the localization catalog and source changes are validated instead.

Validation:

  • python3 scripts/ci/defaults_guard.py check-stamp
  • bun web/scripts/export-next-docs.ts --settings (no diff)
  • git diff --check
  • public-lint --diff --base origin/feat-cmux-next
  • python3 -m json.tool Packages/macOS/CmuxNext/Sources/CmuxNextSettings/Localizable.xcstrings
  • python3 -m json.tool plans/cmux-next/spec-proposals/visuals/design-tokens.json

šŸ¤– Generated with Claude Code

Agent session: big-red