cmux NEXT: ship dev-only surfaces off by default

TE
9d ago
+339-17

Review (codex gpt-6-astra xhigh, review-26390g): SHIP at 1224ec6268b7e01b26a9ade6713c0094e283f898

What changed

Developer-only surfaces now ship off by default while remaining available as explicit Debug Settings opt-ins:

  • agent.inspector (Session Info) defaults to off; its header regression test now verifies the off-by-default state and explicit opt-in.
  • webDev.override (the web-dev.json live reload loop) defaults to off; its page test covers the default.
  • scripts/ci/defaults_guard.py now extracts literal Tunable<T>.*(... default:) values into the computed defaults snapshot. The parser ignores commented examples, handles nested/multiline arguments, and preserves quoted default contents. Tunable initializer/helper declarations and their same-file or qualified symbolic dependencies also have conservative token fingerprints, so helper-created and nonliteral defaults cannot silently evade review. Help/implementation edits inside a tracked declaration require review; unrelated declarations, comments, and whitespace do not. Regression cases change direct, helper, dynamic, and symbolic defaults.

Leo's order: "Dev-only surfaces ship off: AgentPaneTunables.swift:150 (agent.inspector on) and PageTunables.swift:62. Default them off and add tunables to scripts/ci/defaults_guard.py's snapshot." https://github.com/manaflow-ai/cmux/issues/13742

Validation

  • python3 scripts/verify-local.py (localization is a pre-existing base debt; all other selected checks passed; Swift syntax unavailable on this host)
  • python3 scripts/cmux-next/prepush-gate.py
  • cmux-ci test -- python3 -m unittest tests.test_defaults_guard (40 tests passed at prior parser head; run 40599602690)
  • Native Release compile passed for unchanged native sources at 643e5920 (run 40594450541)
  • Focused native AgentPaneInspectorHeaderTests and WebDevOverrideTests: both passed, step 458ffea69103558116825b23, unchanged native source/test tree at 81c49803.
  • python3 scripts/ci/defaults_guard.py snapshot && check-fresh (computed snapshot includes tunable.agent.inspector: false and tunable.webDev.override: false; generated snapshot is bot-owned and not committed)

Captures

Same fixture agent-pane scene at base and the reviewed native source.

No capture: The final follow-up at 1224ec6268b7e01b26a9ade6713c0094e283f898 changes only the defaults guard and its tests; native app sources are identical to captured 643e59209724d604c3211b010fec857f2db1c18f. Session Info remains an explicit Debug Settings opt-in.

BeforeAfter
BeforeAfter
DarkDark

Agent session: agent session